From ab2884ade73fed97d1e7d7daf4b9b5b6dee83fdd Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期四, 29 十月 2026 09:26:12 +0800
Subject: [PATCH] 代码提交

---
 ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceSubtaskServiceImpl.java |   77 ++++++++++++++++++++++++++++++--------
 1 files changed, 61 insertions(+), 16 deletions(-)

diff --git a/ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceSubtaskServiceImpl.java b/ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceSubtaskServiceImpl.java
index bad652a..12ad312 100644
--- a/ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceSubtaskServiceImpl.java
+++ b/ruoyi-task/src/main/java/com/ruoyi/task/service/impl/ServiceSubtaskServiceImpl.java
@@ -101,11 +101,8 @@
 import com.ruoyi.task.mapper.ServiceOutPathMapper;
 import com.ruoyi.task.service.IServiceOutPathService;
 import com.ruoyi.task.domain.ServiceSubtaskPreachform;
-import com.ruoyi.task.api.spi.TaskPreachformPort;
+import com.ruoyi.task.mapper.ServiceSubtaskPreachformMapper;
 import com.ruoyi.task.api.spi.TaskArchivePort;
-import com.ruoyi.task.api.spi.TaskFtpPort;
-import com.ruoyi.task.api.spi.TaskSysConfigPort;
-import com.ruoyi.task.api.spi.TaskSysDeptPort;
 import com.ruoyi.task.common.ScheduleSubtaskBuilder;
 import com.ruoyi.task.domain.ServiceTaskScheduleVO;
 import com.ruoyi.task.service.IServiceSubtaskService;
@@ -124,6 +121,8 @@
 import com.ruoyi.task.domain.ServiceSubtaskTemplateVO;
 import com.ruoyi.task.domain.ServiceTaskVO;
 import com.ruoyi.task.domain.VO.TransferDeptVO;
+import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.mapper.ext.SysDept2Mapper;
 
 /**
  * 鍗曚竴浠诲姟锛堥殢璁匡級Service涓氬姟灞傚鐞�
@@ -166,7 +165,7 @@
     private ServiceSubtaskMapper serviceSubtaskMapper;
 
     @Autowired
-    private TaskPreachformPort taskPreachformPort;
+    private ServiceSubtaskPreachformMapper taskPreachformPort;
 
     @Autowired
     private ServiceSubtaskDetailMapper serviceSubtaskDetailMapper;
@@ -221,9 +220,6 @@
     @Autowired
     private ScheduleSubtaskBuilder scheduleSubtaskBuilder;
 
-    @Autowired
-    private TaskFtpPort taskFtpPort;
-
 
 
 
@@ -236,7 +232,7 @@
 
 
     @Autowired
-    private TaskSysConfigPort taskSysConfigPort;
+    private ISysConfigService sysConfigService;
 
     /**
      * 娑堟伅鍙戦�佹柟宸ュ巶锛堢煭淇�/寰俊鍏紬鍙凤級锛屾浛浠e師鏉ョ洿鎺ヨ皟鐢ㄥ悇绔欑偣鍙戦�佷唬鐮佺殑鍐欐硶
@@ -255,7 +251,7 @@
 
 
     @Autowired
-    private TaskSysDeptPort taskSysDeptPort;
+    private SysDept2Mapper sysDept2Mapper;
 
     @Value("${spring.profiles.active}")
     private String active;
@@ -1085,7 +1081,7 @@
             }
             serviceTask.setLeaveldeptcodes(serviceTaskVO.getLeaveldeptcodes());
             if (StringUtils.isEmpty(serviceTask.getLeavehospitaldistrictname()) && StringUtils.isNotEmpty(serviceTask.getLeavehospitaldistrictcode())) {
-                SysDept sysDept = taskSysDeptPort.selectDeptByCode(serviceTask.getLeavehospitaldistrictcode(), null);
+                SysDept sysDept = sysDept2Mapper.selectDeptByCode(serviceTask.getLeavehospitaldistrictcode(), null);
                 serviceTask.setLeavehospitaldistrictname(sysDept.getDeptName());
             }
             if (serviceTaskVO.getLongTask() == 1) serviceTask.setSendState(2L);
@@ -3574,6 +3570,55 @@
         return serviceSubtaskMapper.getCurrentUserServiceSubtaskCount(entity);
     }
 
+    /**
+     * 褰撳墠鐧诲綍浜哄緟澶勭悊闅忚浠诲姟锛屾寜鍑洪櫌骞存湀鍒嗙粍缁熻锛堝嚭闄㈤殢璁裤�侀棬璇婇殢璁垮垎寮�璁℃暟锛�
+     * <p>
+     * 鍙繑鍥炴湁鏁版嵁鐨勬湀浠斤紝鍓嶇鎸夈�屽綋鏈� + 鍓� 3 涓湀銆嶈ˉ榻愶紝娌℃湁鏁版嵁鏄剧ず 0 涓��
+     */
+    @Override
+    public Map<String, Object> getPendingManualTaskMonthStats(ServiceSubtaskEntity entity) {
+        List<Map<String, Object>> rows = serviceSubtaskMapper.countPendingManualTaskByMonth(entity);
+        List<Map<String, Object>> months = new ArrayList<>();
+        long total = 0L;
+        if (rows != null) {
+            for (Map<String, Object> row : rows) {
+                if (row == null || row.get("month") == null) {
+                    continue;
+                }
+                long dischargeCount = parsePendingCount(row.get("dischargeCnt"));
+                long outpatientCount = parsePendingCount(row.get("outpatientCnt"));
+                if (dischargeCount <= 0 && outpatientCount <= 0) {
+                    continue;
+                }
+                Map<String, Object> item = new LinkedHashMap<>();
+                item.put("month", row.get("month").toString());
+                item.put("dischargeCount", dischargeCount);
+                item.put("outpatientCount", outpatientCount);
+                months.add(item);
+                total += dischargeCount + outpatientCount;
+            }
+        }
+        Map<String, Object> result = new LinkedHashMap<>();
+        result.put("total", total);
+        result.put("months", months);
+        return result;
+    }
+
+    /**
+     * 缁熻缁撴灉閲岀殑鏁伴噺杞� long锛岃В鏋愬け璐ユ寜 0 澶勭悊
+     */
+    private long parsePendingCount(Object value) {
+        if (value == null) {
+            return 0L;
+        }
+        try {
+            return Long.parseLong(value.toString());
+        } catch (NumberFormatException e) {
+            log.warn("缁熻寰呭鐞嗛殢璁夸换鍔″け璐ワ紝鏁伴噺鏃犳硶瑙f瀽锛歿}", value);
+            return 0L;
+        }
+    }
+
     @Override
     public Map<String, Object> getContinueNurseCount(ServiceSubtaskCotinueCountVO vo) {
         boolean hasDistrict = !CollectionUtils.isEmpty(vo.getLeavehospitaldistrictcodes());
@@ -3641,8 +3686,8 @@
     public void setFailSubTaskDefalutVal(Long failDay) {
         //1.鍏堝幓sys_config涓紝鑾峰彇鍝簺绉戝鎴栫梾鍖洪渶瑕侀粯璁ら棶鍗烽粯璁ゅ��
         IConfigService configService = SpringUtils.getBean(IConfigService.class);
-        String deptConfigValue = taskSysConfigPort.selectConfigValue("hosp.default.dept");
-        String wardConfigValue = taskSysConfigPort.selectConfigValue("hosp.default.ward");
+        String deptConfigValue = sysConfigService.selectConfigByKey("hosp.default.dept");
+        String wardConfigValue = sysConfigService.selectConfigByKey("hosp.default.ward");
         List<String> leaveWard = null;
         List<String> leaveDept = null;
         if (deptConfigValue != null && !deptConfigValue.isEmpty()) {
@@ -3870,8 +3915,8 @@
 
         // 鍙傛暟鍊肩粡绔彛鍙栫敤锛堝師涓� sysConfigMapper.checkConfigKeyUnique + getConfigValue锛夈��
         // 璇箟绛変环锛氬師鍒ゅ畾"琛屽瓨鍦�"銆佽繖閲屽垽瀹�"鍊奸潪 null"锛岃�� sys_config.config_value 鏄�
-        // varchar(500) NOT NULL DEFAULT '' 鈬� 浜岃�呬笉鍙兘涓嶅悓锛堣瑙� TaskSysConfigPort javadoc锛夈��
-        String smsContemt = taskSysConfigPort.findConfigValueByKey("wj.sms.template");
+        // varchar(500) NOT NULL DEFAULT '' 鈬� 浜岃�呬笉鍙兘涓嶅悓锛堣瑙� ISysConfigService javadoc锛夈��
+        String smsContemt = sysConfigService.selectConfigByKey("wj.sms.template");
 
         if (smsContemt != null) {
             sendMagParam.setContent(smsContemt.replace("${wjurl}", sendMagParam.getUrl()));
@@ -4214,7 +4259,7 @@
             return null;
         }
         try {
-            SysDept sysDept = taskSysDeptPort.selectDeptByCode(deptCode, orgid);
+            SysDept sysDept = sysDept2Mapper.selectDeptByCode(deptCode, orgid);
             return sysDept == null ? null : sysDept.getCampusid();
         } catch (Exception e) {
             log.warn("鎸夌紪鐮佸弽鏌ラ櫌鍖哄け璐ワ細deptCode={}, orgid={}, err={}", deptCode, orgid, e.getMessage());

--
Gitblit v1.9.3