From 5de71af808d0e5838826ea641b92f5bf1af91571 Mon Sep 17 00:00:00 2001
From: zxh <279049017@qq.com>
Date: Mon, 24 Aug 2020 19:45:03 +0800
Subject: [PATCH] Merge branch 'dev' of ssh://192.168.2.240:29418/kidgrow-microservices-platform into dev

---
 kidgrow-business/kidgrow-opration-center/pom.xml                                                                                                              |    4 +
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java  |   38 ++++++++----
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml                                    |   16 +++++
 kidgrow-config/src/main/resources/application-uat.properties                                                                                                  |   77 +++++++++++++++++++++++++
 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html                                                                        |    1 
 kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java                                    |    1 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java             |    6 ++
 kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java                              |    1 
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java |   21 ++++---
 9 files changed, 142 insertions(+), 23 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java
index 2b1214e..d2f2d08 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ConsumptionRecordMapper.java
@@ -37,4 +37,10 @@
      * @return
      */
     List<ConsumptionRecord> findList(@Param("p") Map<String, Object> params);
+    /**
+     * 查询有效预扣费
+     * @param DetailList 有效的套餐
+     * @return
+     */
+    List<ConsumptionRecord> findDetailList(@Param("p") List<Long> DetailList);
 }
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java
index ed6c767..1a3955b 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java
@@ -20,7 +20,6 @@
 import org.apache.commons.collections4.MapUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.amqp.rabbit.annotation.RabbitListener;
 import org.springframework.amqp.rabbit.core.RabbitTemplate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -116,7 +115,8 @@
                 //2.没有扣费,检查是否已经预扣费
                 if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.BEFORE_DEDUCTION)) {
                     //3.没有预扣,查询余额
-                    if (VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId())) {
+                    Map<String,Object> vateMap=VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId());
+                    if (Boolean.parseBoolean(vateMap.get("vateRe").toString())) {
                         //4.余额充足 获取要扣的套餐 写预扣费记录
                         if (beforeConsumption(consumptionRequest)) {
                             //预扣费成功
@@ -129,9 +129,9 @@
                             bcode = ConsumptionConstant.BUSINESS_CODE_ERROR;
                         }
                     } else {
-                        //余额不足
+                        //余额不足 或获取异常
                         isSuccess = false;
-                        reMsg = "余额不足或获取失败!";
+                        reMsg = vateMap.get("vateMsg").toString();
                         bcode = ConsumptionConstant.BUSINESS_CODE_FAIL;
                     }
                 } else {
@@ -179,7 +179,8 @@
                 //2.没有扣费,检查是否已经预扣费
                 if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.BEFORE_DEDUCTION)) {
                     //2.1.没有预扣,查询余额
-                    if (VateUserNowProduct(consumptionRequest.getConsumptionCount(),hospitalId,consumptionRequest.getDepartmentId())) {
+                    Map<String,Object> vateMap=VateUserNowProduct(consumptionRequest.getConsumptionCount(),hospitalId,consumptionRequest.getDepartmentId());
+                    if (Boolean.parseBoolean(vateMap.get("vateRe").toString())) {
                         //2.2.余额充足 获取要扣的套餐 写预扣费记录
                         if (beforeConsumption(consumptionRequest)) {
                             //预扣费成功
@@ -194,7 +195,7 @@
                     } else {
                         //余额不足
                         isSuccess = false;
-                        reMsg = "余额不足或获取失败!";
+                        reMsg = vateMap.get("vateMsg").toString();
                         bcode = ConsumptionConstant.BUSINESS_CODE_FAIL;
                         return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess);
                     }
@@ -380,7 +381,8 @@
                 //2.没有扣费,检查是否已经预扣费
                 if (!isBeforeDeduction(consumptionRecordList, ConsumptionConstant.BEFORE_DEDUCTION)) {
                     //3.没有预扣,查询余额
-                    if (VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId())) {
+                    Map<String,Object> vateMap=VateUserNowProduct(consumptionRequest.getConsumptionCount(),consumptionRequest.getHospitalId(),consumptionRequest.getDepartmentId());
+                    if (Boolean.parseBoolean(vateMap.get("vateRe").toString())) {
                         //4.余额充足 获取要扣的套餐 写预扣费记录
                         if (!beforeConsumption(consumptionRequest)) {
                             //预扣费执行失败
@@ -395,7 +397,7 @@
                         }
                     } else {
                         //余额不足
-                        reMsg = "余额不足或获取失败!";
+                        reMsg = vateMap.get("vateMsg").toString();
                         bcode = ConsumptionConstant.BUSINESS_CODE_FAIL;
                         return ResultReturn(consumptionRequest, bcode,ConsumptionConstant.BEFORE_DEDUCTION, reMsg, isSuccess);
                     }
@@ -564,24 +566,32 @@
      * @param consumptionCount 要扣的数量
      * @return
      */
-    private Boolean VateUserNowProduct(int consumptionCount,Long hospitalId,Long departmentId) {
+    private Map<String,Object> VateUserNowProduct(int consumptionCount,Long hospitalId,Long departmentId) {
+        Map<String,Object> returnMap=new HashMap<>();
         ResultBody biUserPro = productOrderDetailService.biUserNowProduct(hospitalId, departmentId);
         if (biUserPro.getCode() == 0) {
             if (StringUtils.isNotBlank(biUserPro.getData().toString())) {
                 //余额
                 int userAICount = Integer.parseInt(biUserPro.getData().toString());
                 if (userAICount >= consumptionCount) {
-                    return true;
+                    returnMap.put("vateRe",true);
+                    returnMap.put("vateMsg","余额足够!");
                 } else {
+                    returnMap.put("vateRe",false);
+                    returnMap.put("vateMsg","余额不足!");
                     logger.info("医院id:【{}】余额不足!", hospitalId);
                 }
             } else {
+                returnMap.put("vateRe",false);
+                returnMap.put("vateMsg","余额获取异常,data为空!");
                 logger.error("医院id:【{}】余额获取异常!", hospitalId);
             }
-        } else {
+         }else {
+            returnMap.put("vateRe",false);
+            returnMap.put("vateMsg","余额获取异常,Code非0!");
             logger.info("医院id:【{}】余额获取异常,返回非0!", hospitalId);
         }
-        return false;
+        return returnMap;
     }
 
     /**
@@ -672,7 +682,7 @@
      * 发消息到消息队列
      * @return
      */
-    @RabbitListener(queues = "BoneAgeEvaluationData")
+    //@RabbitListener(queues = "BoneAgeEvaluationData")
     private void MessageToBI(ConsumptionRequest consumptionRequest)
     {
         //发消息到队列
@@ -681,5 +691,7 @@
                 "\",\"doctorId\":\"" + consumptionRequest.getDoctorId() +
                 "\",\"date\":\"" + DateUtils.formatDate(new Date(),"yyyy-MM-dd")+"\"}";
         rabbitTemplate.convertAndSend(ConsumptionConstant.EXCHANGE_DATA, ConsumptionConstant.ROUTINGKEY_DATA+envName, context);
+
+        log.error("骨龄评价扣费消息已发送:"+context);
     }
 }
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java
index 413a1fa..9f7c20a 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java
@@ -2,7 +2,6 @@
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.kidgrow.common.constant.ConsumptionConstant;
 import com.kidgrow.common.model.*;
 import com.kidgrow.common.service.impl.SuperServiceImpl;
 import com.kidgrow.common.utils.DateUtils;
@@ -315,18 +314,22 @@
                 int depCount = productOrderJoinDetailsListDep.stream().collect(Collectors.summingInt(ProductOrderJoinDetail::getAilightCount));
                 //可用的总量
                 userAICount = shareCount + depCount;
+
+                //共享套餐里面的detailid
+                List<Long> shareDetailId = productOrderJoinDetailListShare.stream().map(m -> m.getId()).collect(Collectors.toList());
+                //私有套餐里面的detailid
+                List<Long> depDetailId = productOrderJoinDetailsListDep.stream().map(m -> m.getId()).collect(Collectors.toList());
+
+                //获取所有有效的套餐id
+                List<Long> nowDetailList=shareDetailId;
+                nowDetailList.addAll(depDetailId);
+                //查询已预扣 未退还  未扣费的数据
+                List<ConsumptionRecord> consumptionRecordList = consumptionRecordMapper.findDetailList(nowDetailList);
                 //计算预扣费的总量
-                Map<String, Object> selectMap = new HashMap<>();
-                selectMap.put("recordType", ConsumptionConstant.BEFORE_DEDUCTION);
-                List<ConsumptionRecord> consumptionRecordList = consumptionRecordMapper.findList(selectMap);;
                 if (consumptionRecordList.size() > 0) {
-                    //共享套餐里面的detailid
-                    List<Long> shareDetailId = productOrderJoinDetailListShare.stream().map(m -> m.getId()).collect(Collectors.toList());
-                    //私有套餐里面的detailid
-                    List<Long> depDetailId = productOrderJoinDetailsListDep.stream().map(m -> m.getId()).collect(Collectors.toList());
                     //共享套餐里面预扣费总数
                     int shareConCount = consumptionRecordList.stream().filter(f -> shareDetailId.contains(f.getProOrderDetailId())).collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount));
-                    //共享套餐里面预扣费总数
+                    //私有套餐里面预扣费总数
                     int depConCount = consumptionRecordList.stream().filter(f -> depDetailId.contains(f.getProOrderDetailId())).collect(Collectors.summingInt(ConsumptionRecord::getConsumptionCount));
                     userAICount -= (shareConCount + depConCount);
                 }
diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml
index 18f8617..5eefa38 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ConsumptionRecordMapper.xml
@@ -60,4 +60,20 @@
         <include refid="where"/>
         order by id desc
     </select>
+    <!--定义根据-ConsumptionRecord当作查询条件返回对象集合-->
+    <select id="findDetailList" resultType="com.kidgrow.oprationcenter.model.ConsumptionRecord">
+        SELECT * FROM `consumption_record`
+        where record_type=1
+        and update_time is null
+        <where>
+            <if test="p!=null and p.size()>0">
+                and pro_order_detail_id in
+                <foreach item="item" index="index" collection="p" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+        and pro_order_detail_id in (1,1)
+        order by id desc
+    </select>
 </mapper>
\ No newline at end of file
diff --git a/kidgrow-business/kidgrow-opration-center/pom.xml b/kidgrow-business/kidgrow-opration-center/pom.xml
index 13d2729..9fb3c1b 100644
--- a/kidgrow-business/kidgrow-opration-center/pom.xml
+++ b/kidgrow-business/kidgrow-opration-center/pom.xml
@@ -43,6 +43,10 @@
             <groupId>com.kidgrow</groupId>
             <artifactId>kidgrow-ribbon-spring-boot-starter</artifactId>
         </dependency>
+<!--        <dependency>-->
+<!--            <groupId>com.kidgrow</groupId>-->
+<!--            <artifactId>kidgrow-rabbitmq-spring-boot-starter</artifactId>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>com.kidgrow</groupId>
             <artifactId>kidgrow-usercenter-api</artifactId>
diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java
index 072fbec..602ad88 100644
--- a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java
+++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpInterceptorConfig.java
@@ -30,6 +30,7 @@
     @PostConstruct
     public void initialize() {
         requestHeaders.add(SecurityConstants.USER_ID_HEADER);
+        requestHeaders.add(SecurityConstants.DOCTOR_ID_HEADER);
         requestHeaders.add(SecurityConstants.USER_HEADER);
         requestHeaders.add(SecurityConstants.USER_DEP_ID_HEADER);
         requestHeaders.add(SecurityConstants.USER_DEP_NAME_HEADER);
diff --git a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java
index 91b68fa..7f57d7e 100644
--- a/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java
+++ b/kidgrow-commons/kidgrow-ribbon-spring-boot-starter/src/main/java/com/kidgrow/ribbon/config/FeignHttpTenantInterceptorConfig.java
@@ -30,6 +30,7 @@
     @PostConstruct
     public void initialize() {
         requestHeaders.add(SecurityConstants.USER_ID_HEADER);
+        requestHeaders.add(SecurityConstants.DOCTOR_ID_HEADER);
         requestHeaders.add(SecurityConstants.USER_HEADER);
         requestHeaders.add(SecurityConstants.USER_DEP_ID_HEADER);
         requestHeaders.add(SecurityConstants.USER_DEP_NAME_HEADER);
diff --git a/kidgrow-config/src/main/resources/application-uat.properties b/kidgrow-config/src/main/resources/application-uat.properties
index f969f4d..4f16308 100644
--- a/kidgrow-config/src/main/resources/application-uat.properties
+++ b/kidgrow-config/src/main/resources/application-uat.properties
@@ -1 +1,76 @@
-# \u9884\u4E0A\u7EBF\u73AF\u5883
\ No newline at end of file
+# \u9884\u4E0A\u7EBF\u73AF\u5883
+########################## \u7EDF\u4E00\u53D8\u91CF\u914D\u7F6E ##########################
+##### \u6570\u636E\u5E93\u914D\u7F6E
+kidgrow.datasource.ip=rm-2ze84sb2l40k33a034o.mysql.rds.aliyuncs.com
+kidgrow.datasource.username=yingdawangluo
+kidgrow.datasource.password=Yingdawangluo2020
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+##### Redis\u914D\u7F6E
+# \u662F\u5426\u5F00\u542FRedis\u7F13\u5B58  true\u5F00\u542F   false \u5173\u95ED
+spring.redis.open=true
+spring.redis.host=182.92.99.224
+spring.redis.port=6379
+spring.redis.password=kidgrow
+spring.redis.timeout=5000
+
+#rabbitmq\u914D\u7F6E
+kidgrow.rabbitmq.host=182.92.99.224
+kidgrow.rabbitmq.port=5672
+kidgrow.rabbitmq.username=liuke
+kidgrow.rabbitmq.password=kidgrow2020
+kidgrow.rabbitmq.exchangeName=BoneAgeEvaluation
+kidgrow.rabbitmq.queueName=test_queue
+kidgrow.rabbitmq.routingKeyName=Kidgrow2020
+kidgrow.rabbitmq.virtual-host=kidgrow
+
+
+#\u963F\u91CCDruid\u914D\u7F6E
+kidgrow.druid.loginname=admin
+kidgrow.druid.loginpwd=123456
+
+#eureka \u6CE8\u518C\u4E2D\u5FC3Url
+kidgrow.eureka.client.serviceUrl.defaultZone=http://172.17.97.143:9001/eureka/,http://172.17.64.228:9001/eureka/
+kidgrow.eureka.instance.hostname=127.0.0.1
+##eureka client\u53D1\u9001\u5FC3\u8DF3\u7ED9server\u7AEF\u7684\u9891\u7387
+eureka.instance.lease-renewal-interval-in-seconds=30
+#eureka client\u95F4\u9694\u591A\u4E45\u53BB\u62C9\u53D6\u670D\u52A1\u6CE8\u518C\u4FE1\u606F\uFF0C\u9ED8\u8BA4\u4E3A30\u79D2\uFF0C\u5BF9\u4E8Eapi-gateway\uFF0C\u5982\u679C\u8981\u8FC5\u901F\u83B7\u53D6\u670D\u52A1\u6CE8\u518C\u72B6\u6001\uFF0C\u53EF\u4EE5\u7F29\u5C0F\u8BE5\u503C\uFF0C\u6BD4\u59825\u79D2
+eureka.instance.lease-expiration-duration-in-seconds=30
+
+##### elasticsearch\u914D\u7F6E
+kidgrow.elasticsearch.cluster-name=kidgrow-es
+kidgrow.elasticsearch.cluster-nodes=123.57.164.62
+
+##### sentinel\u914D\u7F6E
+kidgrow.sentinel.dashboard=127.0.0.1:6999
+
+##### fastDFS\u914D\u7F6E
+kidgrow.fdfs.web-url=127.0.0.1
+kidgrow.fdfs.trackerList=${kidgrow.fdfs.web-url}:22122
+
+####\u963F\u91CCOSS\u914D\u7F6E
+kidgrow.oss.access-key=LTAI4FennfcwZupz3B6hkK3N
+kidgrow.oss.accessKeySecret=NzBBGe8SS41qJlp0nA3tlJ3t74lBZM
+kidgrow.oss.endpoint=123.kidgrow.cloud
+kidgrow.oss.bucketName=kidgrow
+kidgrow.oss.domain=http://123.kidgrow.cloud/
+
+
+##### \u65E5\u5FD7\u94FE\u8DEF\u8FFD\u8E2A
+kidgrow.trace.enable=true
+
+##### \u8D1F\u8F7D\u5747\u8861\u9694\u79BB(version\u9694\u79BB\uFF0C\u53EA\u9002\u7528\u4E8E\u5F00\u53D1\u73AF\u5883)
+kidgrow.ribbon.isolation.enabled=false
+
+##### mybatis-plus\u6253\u5370\u5B8C\u6574sql(\u53EA\u9002\u7528\u4E8E\u5F00\u53D1\u73AF\u5883)
+mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
+
+##### \u5BA1\u8BA1\u65E5\u5FD7\u914D\u7F6E
+kidgrow.audit-log.enabled=true
+kidgrow.audit-log.log-type=db
+kidgrow.audit-log.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+kidgrow.audit-log.datasource.jdbc-url=jdbc:mysql://${kidgrow.datasource.ip}:3306/logger_center_${spring.profiles.active}?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
+kidgrow.audit-log.datasource.username=${kidgrow.datasource.username}
+kidgrow.audit-log.datasource.password=${kidgrow.datasource.password}
+
+##### \u79FB\u52A8\u7AEF\u4E0A\u4F20\u5149\u7247Web\u5E94\u7528URL
+appUrl=https://upload.kidgrow.cloud/
\ No newline at end of file
diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
index eac4af8..dfffdb2 100644
--- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
+++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html
@@ -75,6 +75,7 @@
             headers: { 'Authorization': 'Bearer ' + config.getToken().access_token },
             page: true,
             cols: [[
+                { field: 'hospitalId', width: 180, title: '医院编号', fixed: 'left' },
                 { field: 'hospitalName', width: 250, title: '医院名称', fixed: 'left' },
                 { field: 'departmentName', width: 100, title: '科室/部门', fixed: 'left' },
                 {

--
Gitblit v1.8.0