From 91f8f35123a27c923e5006e0324829fbe3d9da65 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 19 一月 2026 17:52:29 +0800
Subject: [PATCH] 【丽水】smartor/servicetask/list 接口优化

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java |   92 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 76 insertions(+), 16 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
index dd7e71e..3cba63a 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceTaskController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.web.controller.smartor;
 
 import com.github.pagehelper.ISelect;
+import com.ruoyi.common.annotation.AddOrgId;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
@@ -24,7 +25,10 @@
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
+import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -42,7 +46,7 @@
     private IServiceTaskService serviceTaskService;
 
     @Autowired
-    private IServiceSubtaskService iServiceTaskCallService;
+    private IServiceSubtaskService iServiceSubtaskService;
 
     @Value("${pub_key}")
     private String pub_key;
@@ -58,27 +62,41 @@
      */
     @ApiOperation("鏌ヨ浠诲姟鍒楄〃")
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:list')")
-    @PostMapping("/list")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("list")
     public TableDataInfo list(@RequestBody ServiceTask serviceTask) {
         PageUtils.startPageByPost(serviceTask.getPageNum(), serviceTask.getPageSize());
 //        List<ServiceTask> list = serviceTaskService.selectServiceTaskList(serviceTask);
         List<ServiceTask> list = serviceTaskService.selectServiceTaskAndtaskDeptList(serviceTask);
         List<ServiceTaskVO> serviceTaskVOS = DtoConversionUtils.sourceToTarget(list, ServiceTaskVO.class);
 
+        List<Long> taskIds = list.stream().map(ServiceTask::getTaskid).collect(Collectors.toList());
+
+        ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
+        serviceSubtaskVO.setTaskIds(taskIds);
+        serviceSubtaskVO.setStartOutHospTime(serviceTask.getStartOutHospTime());
+        serviceSubtaskVO.setEndOutHospTime(serviceTask.getEndOutHospTime());
+        // 鎵归噺鏌ヨ鎵�鏈夊瓙浠诲姟
+        Map<Long, List<ServiceSubtask>> subtaskMap = iServiceSubtaskService
+                .selectServiceSubtaskList(serviceSubtaskVO)
+                .stream()
+                .collect(Collectors.groupingBy(ServiceSubtask::getTaskid));
+
+
         if (CollectionUtils.isNotEmpty(serviceTaskVOS)) {
-            for (ServiceTaskVO ServiceTaskVO : serviceTaskVOS) {
-                ServiceSubtaskVO serviceSubtaskVO = new ServiceSubtaskVO();
-                serviceSubtaskVO.setTaskid(ServiceTaskVO.getTaskid());
-                serviceSubtaskVO.setStartOutHospTime(serviceTask.getStartOutHospTime());
-                serviceSubtaskVO.setEndOutHospTime(serviceTask.getEndOutHospTime());
-                List<ServiceSubtask> ServiceTaskcalls = iServiceTaskCallService.selectServiceSubtaskList(serviceSubtaskVO);
-                if (CollectionUtils.isNotEmpty(ServiceTaskcalls)) {
+            for (ServiceTaskVO taskVO : serviceTaskVOS) {
+                List<ServiceSubtask> subtasks = subtaskMap.getOrDefault(taskVO.getTaskid(), Collections.emptyList());
+
+                if (CollectionUtils.isNotEmpty(subtasks)) {
                     //宸插彂閫侊紙瀛愪换鍔′腑鐨� sendstate=1涓鸿棰嗗彇锛�
-                    long yfs = ServiceTaskcalls.stream().filter(serviceTaskcall1 -> (serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() >= 3L) || (serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() == 1L)).collect(Collectors.toList()).stream().count();
+                    long yfs = subtasks.stream().filter(s -> s.getSendstate() != null &&
+                            (s.getSendstate() >= 3L || s.getSendstate() == 1L)).count();
                     //鏈彂閫�
-                    long wfs = ServiceTaskcalls.stream().filter(serviceTaskcall1 -> serviceTaskcall1.getSendstate() != null && serviceTaskcall1.getSendstate() == 2L).collect(Collectors.toList()).stream().count();
-                    ServiceTaskVO.setYfs(yfs);
-                    ServiceTaskVO.setWfs(wfs);
+                    long wfs = subtasks.stream().filter(s -> s.getSendstate() != null &&
+                            s.getSendstate() == 2L).count();
+                    taskVO.setYfs(yfs);
+                    taskVO.setWfs(wfs);
+
                 }
 
             }
@@ -127,6 +145,7 @@
     @ApiOperation("鏂板浠诲姟")
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:add')")
     @Log(title = "璇煶浠诲姟", businessType = BusinessType.INSERT)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
     @PostMapping("/add")
     public AjaxResult add(@RequestBody ServiceTask ServiceTask) {
         SysUser user = getLoginUser().getUser();
@@ -135,11 +154,25 @@
     }
 
     /**
+     * 鑾峰彇闅忚鍙婃椂鐜�
+     */
+    @ApiOperation("鑾峰彇闅忚鍙婃椂鐜�")
+    //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:add')")
+    @Log(title = "鑾峰彇闅忚鍙婃椂鐜�", businessType = BusinessType.INSERT)
+    @PostMapping("/selectTimelyRate")
+    public AjaxResult selectTimelyRate(@RequestBody ServiceSubtask serviceSubtask) {
+        SysUser user = getLoginUser().getUser();
+        serviceSubtask.setOrgid(user.getOrgid());
+        return success(serviceTaskService.selectTimelyRate(serviceSubtask));
+    }
+
+    /**
      * 淇敼璇煶浠诲姟
      */
     @ApiOperation("淇敼浠诲姟")
     //@PreAuthorize("@ss.hasPermi('smartor:ServiceTask:edit')")
     @Log(title = "浠诲姟", businessType = BusinessType.UPDATE)
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody ServiceTask ServiceTask) {
         return toAjax(serviceTaskService.updateServiceTask(ServiceTask));
@@ -182,7 +215,7 @@
     public AjaxResult getScriptInfoByCondition(@RequestBody ServiceTaskScriptQues serviceTaskScriptQues) {
         Long tid = null;
         Long pid = null;
-        log.error("getScriptInfoByCondition鍏ュ弬涓猴細{}", serviceTaskScriptQues);
+        log.info("getScriptInfoByCondition鍏ュ弬涓猴細{}", serviceTaskScriptQues);
         try {
             tid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam1(), pri_key));
             pid = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam2(), pri_key));
@@ -190,7 +223,7 @@
             log.error("getScriptInfoByCondition鎶ラ敊浜嗭細{}", e.getMessage());
         }
 
-        log.error("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
+        log.info("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
         if (StringUtils.isEmpty(serviceTaskScriptQues.getPatfrom())) serviceTaskScriptQues.setPatfrom("0");
         return success(serviceTaskService.getScriptInfoByCondition(tid, pid, true, serviceTaskScriptQues.getPatfrom()));
     }
@@ -214,9 +247,36 @@
             log.error("getScriptInfoByCondition鎶ラ敊浜嗭細{}", e.getMessage());
         }
 
-        log.error("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
+        log.info("tid鍜宲id鐨勫�间负锛歿},{}", tid, pid);
         if (StringUtils.isEmpty(serviceTaskScriptQues.getPatfrom())) serviceTaskScriptQues.setPatfrom("0");
         return success(serviceTaskService.getScriptInfoByCondition(tid, pid, true, serviceTaskScriptQues.getPatfrom()));
     }
 
+
+    /**
+     * 閫氳繃浠诲姟ID鍜屾偅鑰匢D鑾峰彇鍗曚釜浜虹殑棰樼洰淇℃伅
+     *
+     * @return
+     */
+    @ApiOperation("閫氳繃浠诲姟ID鍜岃瘖鐤楄褰曞彿鑾峰彇鍗曚釜浜虹殑棰樼洰淇℃伅")
+    @PostMapping("/getScriptByCondition")
+    public AjaxResult getScriptByCondition(@RequestBody ServiceTaskScriptQues serviceTaskScriptQues) {
+        RSAPublicKeyExample rsaPublicKeyExample = new RSAPublicKeyExample();
+        Long taskId = Long.valueOf(rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam1(), pri_key));
+        String zyserialnum = null;
+        String mzserialnum = null;
+        String tsserialnum = null;
+        if (StringUtils.isNotEmpty(serviceTaskScriptQues.getParam2()))
+            zyserialnum = rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam2(), pri_key);
+        if (StringUtils.isNotEmpty(serviceTaskScriptQues.getParam3()))
+            mzserialnum = rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam3(), pri_key);
+        if (StringUtils.isNotEmpty(serviceTaskScriptQues.getParam4()))
+            tsserialnum = rsaPublicKeyExample.decryptedData(serviceTaskScriptQues.getParam4(), pri_key);
+        Map<String, Object> scriptByCondition = serviceTaskService.getScriptByCondition(taskId, zyserialnum, mzserialnum, tsserialnum);
+        scriptByCondition.put("zy", serviceTaskScriptQues.getParam2());
+        scriptByCondition.put("mz", serviceTaskScriptQues.getParam3());
+        scriptByCondition.put("tid", serviceTaskScriptQues.getParam1());
+        return success(scriptByCondition);
+    }
+
 }

--
Gitblit v1.9.3