From 4f1618f0df5c8ac19970f3bf0efa218b770cfb61 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 05 六月 2026 10:14:05 +0800
Subject: [PATCH] 【丽水】随访统计全部-修改

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |  114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 113 insertions(+), 1 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
index 8d3c13c..5d702d7 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java
@@ -1,6 +1,8 @@
 package com.ruoyi.web.controller.smartor;
 
 import com.github.pagehelper.ISelect;
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
 import com.ruoyi.common.annotation.AddOrgId;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.HttpStatus;
@@ -13,6 +15,7 @@
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.enums.PreachFormEnum;
+import com.ruoyi.common.enums.SendStateEnum;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
@@ -230,6 +233,10 @@
             for (ServiceSubtaskExport serviceSubtaskExport : serviceSubtaskExports) {
                 String pf = PreachFormEnum.getDescByCode(serviceSubtaskExport.getPreachform());
                 serviceSubtaskExport.setPreachform(pf);
+                if(serviceSubtaskExport.getSendstate() != null) {
+                    String stName = SendStateEnum.getDescByCode("" + serviceSubtaskExport.getSendstate());
+                    serviceSubtaskExport.setStName(stName);
+                }
 
                 //璁$畻鍑洪櫌澶╂暟
                 if (!Objects.isNull(serviceSubtaskExport.getEndtime())) {
@@ -541,6 +548,33 @@
         Integer offset = PageUtils.getOffset(serviceSubtaskCountReq.getPageNum(), serviceSubtaskCountReq.getPageSize());
         serviceSubtaskCountReq.setPageNum(offset);
 
+        Integer statisticaltype = serviceSubtaskCountReq.getStatisticaltype();
+
+        if(ObjectUtils.isNotEmpty(statisticaltype)){
+            SysUser user = getLoginUser().getUser();
+            if(statisticaltype==1){
+                if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getLeavehospitaldistrictcodes())){
+                    //鍏ㄩ儴鐥呭尯
+                    String hospInfo = user.getHospInfo();
+                    Gson gson = new Gson();
+                    // 3. 瀹氫箟 List 绫诲瀷锛堟牳蹇冿級
+                    TypeToken<List<String>> typeToken = new TypeToken<List<String>>() {};
+                    List<String> leavehospitaldistrictcodes = gson.fromJson(hospInfo, typeToken.getType());
+                    serviceSubtaskCountReq.setLeavehospitaldistrictcodes(leavehospitaldistrictcodes);
+                }
+            }else if(statisticaltype==2){
+                if(CollectionUtils.isEmpty(serviceSubtaskCountReq.getDeptcodes())){
+                    //鍏ㄩ儴绉戝
+                    String deptInfo = user.getDeptInfo();
+                    Gson gson = new Gson();
+                    // 3. 瀹氫箟 List 绫诲瀷锛堟牳蹇冿級
+                    TypeToken<List<String>> typeToken = new TypeToken<List<String>>() {};
+                    List<String> deptCodes = gson.fromJson(deptInfo, typeToken.getType());
+                    serviceSubtaskCountReq.setDeptcodes(deptCodes);
+                }
+            }
+        }
+
         String followUpCountStyle = configService.selectConfigByKey("followUpCountStyle", serviceSubtaskCountReq.getOrgid());
         if (ObjectUtils.isNotEmpty(followUpCountStyle)) {
             serviceSubtaskCountReq.setFollowUpCountStyle(followUpCountStyle);
@@ -551,6 +585,31 @@
         serviceSubtaskCountReq.setPageSize(null);
         List<ServiceSubtaskStatistic> sfStatistics = serviceSubtaskService.getSfStatistics(serviceSubtaskCountReq);
         return getDataTable4(CollectionUtils.isEmpty(sfStatistics) ? sfStatistics.size() : 0, serviceSubtaskService.getSfStatistics(serviceSubtaskCountReq));
+    }
+
+    /**
+     * 鑾峰彇涓撶梾闅忚缁熻姣斾緥
+     */
+    @ApiOperation("鑾峰彇涓撶梾闅忚缁熻姣斾緥")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/getSpecialSfStatistics")
+    public Map<String, Object> getSpecialSfStatistics(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
+        if (CollectionUtils.isEmpty(serviceSubtaskCountReq.getServiceType())) {
+            return error("鏈嶅姟绫诲瀷涓嶈兘涓虹┖");
+        }
+        Integer offset = PageUtils.getOffset(serviceSubtaskCountReq.getPageNum(), serviceSubtaskCountReq.getPageSize());
+        serviceSubtaskCountReq.setPageNum(offset);
+
+        String followUpCountStyle = configService.selectConfigByKey("followUpCountStyle", serviceSubtaskCountReq.getOrgid());
+        if (ObjectUtils.isNotEmpty(followUpCountStyle)) {
+            serviceSubtaskCountReq.setFollowUpCountStyle(followUpCountStyle);
+        } else {
+            serviceSubtaskCountReq.setFollowUpCountStyle("1");
+        }
+        serviceSubtaskCountReq.setPageNum(null);
+        serviceSubtaskCountReq.setPageSize(null);
+        List<ServiceSubtaskStatistic> sfStatistics = serviceSubtaskService.getSpecialSfStatistics(serviceSubtaskCountReq);
+        return getDataTable4(CollectionUtils.isEmpty(sfStatistics) ? sfStatistics.size() : 0, serviceSubtaskService.getSpecialSfStatistics(serviceSubtaskCountReq));
     }
 
     /**
@@ -614,12 +673,60 @@
     }
 
     /**
-     * 鑾峰彇闅忚缁熻姣斾緥
+     * 鑾峰彇闅忚缁熻瓒呴摼鎺�
+     * dischargeCountInfo
+     * followUpNeededAllInfo - sendstate != 4 (1,2,3,5,6,7)
+     * nonFollowUpInfo - sendstate = 4
+     * needFollowUpInfo - visitCount = 1 && sendstate != 4
+     * pendingFollowUpInfo - visitCount = 1 && sendstate = 2
+     * followUpSuccessInfo - visitCount = 1 && sendstate = 6
+     * followUpFailInfo - visitCount = 1 && (sendstate = 5 || sendstate = 7)
+     * manualInfo - visitCount = 1 && currentPreachForm = "1"
+     * voiceInfo - visitCount = 1 && currentPreachForm = "3"
+     * smsInfo - visitCount = 1 && currentPreachForm = "4"
+     * wechatInfo - visitCount = 1 && currentPreachForm = "5"
+     * abnormalInfo - visitCount = 1 && excep = "1"
+     * needFollowUpAgainInfo - visitCount > 1 && sendstate != 4
+     * pendingFollowUpAgainInfo -  visitCount > 1 && sendstate = 2
+     * followUpSuccessAgainInfo - visitCount > 1 && sendstate =6
+     * followUpFailAgainInfo - visitCount > 1 && (sendstate = 5 || sendstate = 7)
+     * manualAgainInfo - visitCount > 1 && currentPreachForm = "1"
+     * voiceAgainInfo - visitCount > 1 && currentPreachForm = "3"
+     * smsAgainInfo - visitCount > 1 && currentPreachForm = "4"
+     * wechatAgainInfo -  visitCount > 1 && currentPreachForm = "5"
+     * abnormalAgainInfo- visitCount > 1 && excep = "1"
+     * taskSituation1Info - taskSituation = 1
+     * taskSituation2Info - taskSituation = 2
+     * taskSituation3Info - taskSituation = 3
+     * taskSituation4Info - taskSituation = 4
+     * taskSituation5Info - taskSituation = 5
+     * taskSituation6Info - taskSituation = 7
+     * filterCountList - taskSituation = 6 && sendstate = 4
+     *
      */
     @ApiOperation("鑾峰彇闅忚缁熻瓒呴摼鎺�")
     @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
     @PostMapping("/getSfStatisticsHyperlink")
     public AjaxResult getSfStatisticsHyperlink(@RequestBody ServiceSubtaskCountReq serviceSubtaskCountReq) {
+        LoginUser loginUser = getLoginUser();
+        String orgid = loginUser.getUser().getOrgid();
+        String configKey = serviceSubtaskCountReq.getConfigKey();
+        if (StringUtils.isNotEmpty(configKey)) {
+            String configValue = configService.selectConfigByKey(configKey, orgid);
+            serviceSubtaskCountReq.setConfigValue(configValue);
+            if (StringUtils.isEmpty(configValue)) {
+                String logInfo = "getSfStatisticsCount-鍙傛暟 " + configKey + " 鏈厤缃�, 璇烽厤缃ソ鍚庨噸璇�";
+                log.error(logInfo);
+                return error(logInfo);
+            }
+        }
+
+        String followUpCountStyle = configService.selectConfigByKey("followUpCountStyle", orgid);
+        if (ObjectUtils.isNotEmpty(followUpCountStyle)) {
+            serviceSubtaskCountReq.setFollowUpCountStyle(followUpCountStyle);
+        } else {
+            serviceSubtaskCountReq.setFollowUpCountStyle("1");
+        }
         return success(serviceSubtaskService.getSfStatisticsHyperlink(serviceSubtaskCountReq));
     }
 
@@ -776,4 +883,9 @@
     public void syncMedInhospForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
         collectHISService.syncMedInhosp(startTime, endTime);
     }
+
+    @PostMapping("/syncMedOperForShiyi")
+    public void syncMedOperForShiyi(@RequestParam("startTime") String startTime, @RequestParam("endTime") String endTime) {
+        collectHISService.syncOper(startTime, endTime);
+    }
 }

--
Gitblit v1.9.3