From 21ce122193e2fb57d206dbfca59e8d2ab2114fd0 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 23 三月 2026 17:12:56 +0800
Subject: [PATCH] 新增病区与科室组合

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   75 ++++++++++++++++++++++++++-----------
 1 files changed, 53 insertions(+), 22 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 968c490..ed24b0b 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -104,10 +104,16 @@
     private IServiceOutPathService iServiceOutPathService;
 
     @Autowired
+    private IPatMedOuthospService iPatMedOuthospService;
+
+    @Autowired
     private FtpService ftpService;
 
     @Autowired
     private PatMedInhospMapper patMedInhospMapper;
+
+    @Autowired
+    private PatMedOuthospMapper patMedOuthospMapper;
 
     @Autowired
     private PatArchiveMapper patArchiveMapper;
@@ -315,7 +321,7 @@
         List<ServiceSubtaskRes> serviceSubtaskResList = new ArrayList<>();
         for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
             ServiceSubtaskRes serviceSubtaskRes = DtoConversionUtils.sourceToTarget(serviceSubtask, ServiceSubtaskRes.class);
-            if(ObjectUtils.isNotEmpty(serviceSubtask.getContinueContent())){
+            if (ObjectUtils.isNotEmpty(serviceSubtask.getContinueContent())) {
                 serviceSubtaskRes.setContinueContent(serviceSubtask.getContinueContent());
             }
             serviceSubtaskResList.add(serviceSubtaskRes);
@@ -593,6 +599,7 @@
                     ServiceTaskoper serviceTaskoper = new ServiceTaskoper();
                     serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
                     serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
+                    serviceTaskoper.setOplevelcode(serviceTaskVO.getOplevelcode());
                     serviceTaskoper.setTaskId(serviceTask.getTaskid());
                     serviceTaskoper.setTaskName(serviceTask.getTaskName());
                     serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask()));
@@ -834,31 +841,32 @@
                     }
 //                serviceTaskoper.setOpcode(serviceTaskVO.getOpcode());
                     serviceTaskoper.setOpdesc(serviceTaskVO.getOpdesc());
+                    serviceTaskoper.setOplevelcode(serviceTaskVO.getOplevelcode());
                     serviceTaskoper.setTaskId(serviceTask.getTaskid());
                     serviceTaskoper.setTaskName(serviceTask.getTaskName());
                     serviceTaskoper.setLongtask(Long.valueOf(serviceTask.getLongTask()));
                     serviceTaskoper.setGuid(serviceTask.getGuid());
                     serviceTaskoper.setOrgid(serviceTask.getOrgid());
                     serviceTaskoper.setCreateTime(new Date());
-                    if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
-                        String[] opcodes = serviceTaskVO.getOpcode().split(",");
-                        for (String opcode : opcodes) {
-                            //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦�
-                            ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
-                            serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
-                            serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode());
-                            List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
-
-                            serviceTaskoper.setOpcode(opcode);
-                            log.info("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper);
-                            if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
-                                serviceTaskoper.setId(serviceTaskopers.get(0).getId());
-                                serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
-                            } else {
-                                serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
-                            }
-                        }
-                    }
+//                    if (StringUtils.isNotEmpty(serviceTaskVO.getOpcode())) {
+//                        String[] opcodes = serviceTaskVO.getOpcode().split(",");
+//                        for (String opcode : opcodes) {
+//                            //鍏堟煡璇竴涓嬫槸鍚﹀瓨鍦�
+//                            ServiceTaskoper serviceTaskoper2 = new ServiceTaskoper();
+//                            serviceTaskoper2.setTaskId(serviceTaskVO.getTaskid());
+//                            serviceTaskoper2.setOpcode(serviceTaskVO.getOpcode());
+//                            List<ServiceTaskoper> serviceTaskopers = serviceTaskoperService.selectServiceTaskoperList(serviceTaskoper2);
+//
+//                            serviceTaskoper.setOpcode(opcode);
+//                            log.info("----serviceTaskoper鐨勫�间负锛歿}", serviceTaskoper);
+//                            if (CollectionUtils.isNotEmpty(serviceTaskopers)) {
+//                                serviceTaskoper.setId(serviceTaskopers.get(0).getId());
+//                                serviceTaskoperService.updateServiceTaskoper(serviceTaskoper);
+//                            } else {
+//                                serviceTaskoperService.insertServiceTaskoper(serviceTaskoper);
+//                            }
+//                        }
+//                    }
                 }
             }
             if (ObjectUtils.isNotEmpty(serviceTaskVO.getIvrTaskTemplateVO())) {
@@ -2194,6 +2202,26 @@
 
         List<ServiceStatisticsResponse> result = serviceSubtaskMapper.getServiceStatistics(request);
 
+        //鑾峰彇闂ㄦ�ヨ瘖鏁版嵁
+
+        //濉厖闂ㄨ瘖鏁版嵁
+        for (ServiceStatisticsResponse serviceStatisticsResponse : result) {
+            PatMedOuthospQueryReq req = new PatMedOuthospQueryReq();
+            String deptcodes = CollectionUtils.isEmpty(request.getDeptcodes()) ? null : String.join(",", request.getDeptcodes());
+            if (!request.getTimeType().equals("month")) {
+                req.setBeginAdmitdate(DateUtils.parseDate(serviceStatisticsResponse.getTimePeriod()));
+                req.setEndAdmitdate(DateUtils.parseDate(serviceStatisticsResponse.getTimePeriod()));
+            } else {
+                // year 绫诲瀷锛歵imePeriod 鏍煎紡涓� "yyyy-MM"锛屽彇褰撴湀绗竴澶╁拰鏈�鍚庝竴澶�
+                java.time.YearMonth ym = java.time.YearMonth.parse(serviceStatisticsResponse.getTimePeriod());
+                req.setBeginAdmitdate(DateUtils.toDate(ym.atDay(1)));
+                req.setEndAdmitdate(DateUtils.toDate(ym.atEndOfMonth()));
+            }
+            req.setDeptcode(deptcodes);
+            req.setOrgid(request.getOrgid());
+            Long count = patMedOuthospMapper.callSpQueryOuthospCount(req);
+            serviceStatisticsResponse.setPmoCount(count);
+        }
 
         log.info("getServiceStatistics杩斿洖缁撴灉鏁伴噺锛歿}", result.size());
         return result;
@@ -3180,7 +3208,7 @@
      * @return
      */
     @Override
-    @Cacheable(value = "getSfStatisticsScript", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
+//    @Cacheable(value = "getSfStatisticsScript", key = "T(org.springframework.util.DigestUtils).md5DigestAsHex(#serviceSubtaskCountReq.toString().getBytes())", unless = "#result == null or #result.isEmpty()")
     public List<ServiceSubtaskStatistic> getSfStatisticsScript(ServiceSubtaskCountReq serviceSubtaskCountReq) {
         log.info("getSfStatisticsScript鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
         List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
@@ -3535,7 +3563,7 @@
             diagname.setSuggest(subtask.getSuggest());
             diagname.setOperator(subtask.getOperator());
             diagname.setFinishtime(subtask.getFinishtime());
-            diagname.setLongSendTime(subtask.getLongSendTime());
+            diagname.setVisitTime(subtask.getVisitTime());
             diagname.setEndtime(subtask.getEndtime());
             //璁$畻鍑洪櫌澶╂暟
             if (!Objects.isNull(diagname.getEndtime())) {
@@ -3556,4 +3584,7 @@
         }).collect(Collectors.toList());
     }
 
+    public Map<String, Object> getCurrentUserServiceSubtaskCount(ServiceSubtaskEntity entity){
+        return serviceSubtaskMapper.getCurrentUserServiceSubtaskCount(entity);
+    }
 }

--
Gitblit v1.9.3