From 25f0083c533bc4632d14dfe6b7f6f40777f86c32 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 14 十月 2026 15:47:10 +0800
Subject: [PATCH] 【丽水】getCurrentUserServiceSubtaskCount 和 patItem对不上总数

---
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/smartor/ServiceSubtaskController.java |   58 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 37 insertions(+), 21 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 c826b55..986a89d 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
@@ -23,6 +23,7 @@
 import com.ruoyi.quartz.task.RyTask;
 import com.ruoyi.system.service.ISysConfigService;
 import com.ruoyi.system.service.ISysUserDeptService;
+import com.smartor.common.MydOptionRatioChartBuilder;
 import com.smartor.domain.*;
 import com.smartor.domain.DTO.QuestionResultDTO;
 import com.smartor.domain.VO.*;
@@ -194,13 +195,14 @@
     //@PreAuthorize("@ss.hasPermi('system:taskcall:export')")
     @Log(title = "鍗曚竴浠诲姟", businessType = BusinessType.EXPORT)
     @PostMapping("/patItemExport")
-    public void patItemExport(HttpServletResponse response, ServiceSubtaskEntity serviceSubtaskVO) {
+    public void patItemExport(HttpServletResponse response, ServiceSubtaskVO serviceSubtaskVO) {
         LoginUser loginUser = getLoginUser();
         SysUser user = loginUser.getUser();
         serviceSubtaskVO.setOrgid(user.getOrgid());
         List<ServiceSubtaskRes> serviceSubtaskList = null;
         if (serviceSubtaskVO != null) {
-            serviceSubtaskList = serviceSubtaskService.patItem(serviceSubtaskVO);
+           ServiceSubtaskEntity serviceSubtaskEntity = DtoConversionUtils.sourceToTarget(serviceSubtaskVO, ServiceSubtaskEntity.class);
+            serviceSubtaskList = serviceSubtaskService.patItem(serviceSubtaskEntity);
         }
         List<ServiceSubtaskExport> serviceSubtaskExports = null;
         List<ServiceSubtaskDetailRatioExport> serviceSubtaskDetailRatioExports = null;
@@ -220,16 +222,22 @@
                     serviceSubtaskExport.setEndDay(endDay);
                 }
             }
-            QuestionResultVO questionResultVO = new QuestionResultVO();
-            questionResultVO.setServiceType(serviceSubtaskVO.getServiceType());
-            questionResultVO.setEndOutHospTime(serviceSubtaskVO.getEndOutHospTime());
-            questionResultVO.setStartOutHospTime(serviceSubtaskVO.getStartOutHospTime());
-            serviceSubtaskDetailRatioExports = serviceSubtaskService.getDetailRatio(questionResultVO, serviceSubtaskList);
+            //闂璇︽儏鍗犳瘮锛氬彧缁熻鏈瀵煎嚭鐨勮繖鎵规偅鑰咃紝鏁伴噺=閫夎閫夐」鐨勬偅鑰呮暟锛屾瘮渚�=鍗犺棰樹綔绛斾汉鏁�
+            List<Long> subtaskIds = new ArrayList<>();
+            for (ServiceSubtaskRes serviceSubtaskRes : serviceSubtaskList) {
+                if (serviceSubtaskRes.getId() != null) {
+                    subtaskIds.add(serviceSubtaskRes.getId());
+                }
+            }
+            serviceSubtaskDetailRatioExports = serviceSubtaskService.statMydQuestionOptionForExport(subtaskIds, null);
         }
 
 
         ExcelUtil<ServiceSubtaskExport> util = new ExcelUtil<ServiceSubtaskExport>(ServiceSubtaskExport.class);
-        util.exportExcelTwoSheet(response, serviceSubtaskExports, "鎮h�呴殢璁夸俊鎭〃鍗�", serviceSubtaskDetailRatioExports, "闂璇︽儏鍗犳瘮", ServiceSubtaskDetailRatioExport.class);
+        //绗笁涓猄heet锛氶棶棰樿鎯呭崰姣斿浘琛紙鎸変换鍔″悕绉板垎缁勶紝涓�涓换鍔′竴寮犳煴鐘跺浘锛�
+        util.exportExcelTwoSheetWithChart(response, serviceSubtaskExports, "鎮h�呴殢璁夸俊鎭〃鍗�",
+                serviceSubtaskDetailRatioExports, "闂璇︽儏鍗犳瘮", ServiceSubtaskDetailRatioExport.class,
+                new MydOptionRatioChartBuilder(serviceSubtaskDetailRatioExports));
     }
 
     /**
@@ -836,29 +844,31 @@
     @PostMapping("/getCurrentUserServiceSubtaskCount")
     public Map<String, Object> getCurrentUserServiceSubtaskCount() {
         Map<String, Object> map = new HashMap<>();
-        LoginUser loginUser = getLoginUser();
-        SysUser sysUser = loginUser.getUser();
+        SysUser sysUser = SecurityUtils.getLoginUser().getUser();
         SysUserDept sysUserDept = new SysUserDept();
         sysUserDept.setUserId(sysUser.getUserId());
         sysUserDept.setOrgid(sysUser.getOrgid());
         sysUserDept.setCampusid(sysUser.getCampusid());
         sysUserDept.setDeptType("1");
-        List<SysUserDept> sysUserDepts = sysUserDeptService.selectSysUserDeptList(sysUserDept);
-        SysUserDept sysUserWard = new SysUserDept();
-        sysUserWard.setUserId(sysUser.getUserId());
-        sysUserWard.setOrgid(sysUser.getOrgid());
-        sysUserWard.setCampusid(sysUser.getCampusid());
-        sysUserWard.setDeptType("2");
-        List<SysUserDept> sysUserWards = sysUserDeptService.selectSysUserDeptList(sysUserWard);
-        List<String> deptCodes = sysUserDepts.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList());
-        List<String> wardCodes = sysUserWards.stream().map(SysUserDept::getDeptCode).collect(Collectors.toList());
+        List<Map<String, Object>> deptCodesMap = sysUser.getBelongDepts();
+        List<Map<String, Object>> wardCodesMap = sysUser.getBelongWards();
+        List<String> deptCodes = deptCodesMap.stream()
+                        .map(item -> item.get("deptCode"))
+                        .filter(obj -> obj != null) // 鍓旈櫎null
+                        .map(Object::toString)
+                        .collect(Collectors.toList());
+        List<String> wardCodes = wardCodesMap.stream()
+                .map(item -> item.get("districtCode"))
+                .filter(obj -> obj != null) // 鍓旈櫎null
+                .map(Object::toString)
+                .collect(Collectors.toList());
         ServiceSubtaskEntity entity = new ServiceSubtaskEntity();
         entity.setOrgid(sysUser.getOrgid());
         entity.setLeaveldeptcodes(deptCodes);
         entity.setLeavehospitaldistrictcodes(wardCodes);
         if (ObjectUtils.isNotEmpty(sysUser)) {
             if (!("admin").equals(sysUser.getUserName())) {
-                if (ObjectUtils.isNotEmpty(sysUserWards) && ObjectUtils.isNotEmpty(sysUserDepts)) {
+                if (CollectionUtils.isNotEmpty(deptCodes) && CollectionUtils.isNotEmpty(wardCodes)) {
                     map = serviceSubtaskService.getCurrentUserServiceSubtaskCount(entity);
                 }
             } else {
@@ -1021,5 +1031,11 @@
     }
 
 
-
+    @ApiOperation("鑾峰彇缁熻鏁�")
+    @AddOrgId(field = "orgid", paramIndex = 0, campusField = "campusid")
+    @PostMapping("/countByCondition")
+    public Map<String, Object>  countByCondition(@RequestBody ServiceSubtaskEntity condition) {
+        Map<String, Object> map = serviceSubtaskService.countByCondition(condition);
+        return map;
+    }
 }

--
Gitblit v1.9.3