From 10aaa035f5be0312304d20f022bdb714a8f4900a Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 11 十二月 2024 22:16:23 +0800
Subject: [PATCH] 代码提交

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |   96 +++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 91 insertions(+), 5 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 e6c1691..a34347b 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -4,6 +4,7 @@
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
+import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.*;
@@ -252,13 +253,18 @@
         Integer yc = 0;
         Integer fssb = 0;
         Integer yfs = 0;
-        Integer blq = 0;
+        Integer xj = 0;
+        Integer dfs = 0;
+        Integer ywc = 0;
+        Integer ywc2 = 0;
         for (ServiceSubtask serviceSubtask : selectServiceSubtaskList) {
             if (serviceSubtask.getSendstate() == 4L) wzx = wzx + 1;
             else if (serviceSubtask.getSendstate() != 4L) ysf = ysf + 1;
             if (serviceSubtask.getSendstate() == 5L) fssb = fssb + 1;
             if (serviceSubtask.getSendstate() == 3L) yfs = yfs + 1;
-            if (serviceSubtask.getSendstate() == 1L) blq = blq + 1;
+            if (serviceSubtask.getSendstate() == 1L) xj = xj + 1;
+            if (serviceSubtask.getSendstate() == 2L) dfs = dfs + 1;
+            if (serviceSubtask.getSendstate() == 6L) ywc = ywc + 1;
             if (serviceSubtask.getExcep().equals("1")) yc = yc + 1;
         }
         map.put("wzx", wzx);
@@ -266,8 +272,10 @@
         map.put("yc", yc);
         map.put("fssb", fssb);
         map.put("yfs", yfs);
-        map.put("blq", blq);
-
+        map.put("xj", xj);
+        map.put("dfs", dfs);
+        map.put("ywc", ywc);
+        map.put("yfs2", yfs + ywc);
         return map;
     }
 
@@ -391,7 +399,7 @@
                     serviceSubtask.setEndtime(patTaskRelevance.getEndtime());
                     serviceSubtask.setNurseId(patTaskRelevance.getNurseId());
                     serviceSubtask.setNurseName(patTaskRelevance.getNurseName());
-                    if (serviceTaskVO.getLongTask() != null &&serviceTaskVO.getLongTask() == 1)
+                    if (serviceTaskVO.getLongTask() != null && serviceTaskVO.getLongTask() == 1)
                         serviceSubtask.setLongSendTime(patTaskRelevance.getLongSendTime());
                     serviceSubtaskMapper.insertServiceSubtask(serviceSubtask);
                     integer = serviceSubtask.getId().intValue();
@@ -1775,6 +1783,80 @@
         return result2;
     }
 
+    /**
+     * 鑾峰彇闅忚缁熻姣斾緥
+     *
+     * @param serviceSubtaskCountReq
+     * @return
+     */
+    @Override
+    public List<ServiceSubtaskStatistic> getSfStatistics(ServiceSubtaskCountReq serviceSubtaskCountReq) {
+        log.error("getSfStatistics鐨勫叆鍙備负锛歿}", serviceSubtaskCountReq);
+        List<ServiceSubtaskStatistic> serviceSubtaskStatistics = new ArrayList<>();
+        Map<String, List<ServiceSubtask>> collect = serviceSubtaskMapper.getSfStatistics(serviceSubtaskCountReq).stream().collect(Collectors.groupingBy(ServiceSubtask::getLeavehospitaldistrictname));
+        for (List<ServiceSubtask> serviceSubtaskList : collect.values()) {
+            if (CollectionUtils.isEmpty(serviceSubtaskList)) {
+                continue;
+            }
+            ServiceSubtaskStatistic statistic = getStatistic(serviceSubtaskList);
+            if (ObjectUtils.isNotEmpty(statistic)) {
+                serviceSubtaskStatistics.add(statistic);
+            }
+        }
+        return serviceSubtaskStatistics;
+    }
+
+    private ServiceSubtaskStatistic getStatistic(List<ServiceSubtask> serviceSubtaskList) {
+        ServiceSubtaskStatistic serviceSubtaskStatistic = new ServiceSubtaskStatistic();
+        serviceSubtaskStatistic.setLeavehospitaldistrictname(serviceSubtaskList.get(0).getLeavehospitaldistrictname());
+        serviceSubtaskStatistic.setLeavehospitaldistrictcode(serviceSubtaskList.get(0).getLeavehospitaldistrictcode());
+        serviceSubtaskStatistic.setServiceCount(serviceSubtaskList.size());
+        for (ServiceSubtask serviceSubtask : serviceSubtaskList) {
+            //涓嶉殢璁挎暟閲�
+            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 4) {
+                serviceSubtaskStatistic.setBzxCount(serviceSubtaskStatistic.getBzxCount() + 1L);
+            }
+            //搴旈殢璁挎暟閲�
+            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() != 4) {
+                serviceSubtaskStatistic.setYsfCount(serviceSubtaskStatistic.getYsfCount() + 1L);
+            }
+            //鍙戦�佸け璐ユ暟閲�
+            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 5) {
+                serviceSubtaskStatistic.setFssbCount(serviceSubtaskStatistic.getFssbCount() + 1L);
+            }
+            //寰呭彂閫佹暟閲�
+            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 2) {
+                serviceSubtaskStatistic.setDfsCount(serviceSubtaskStatistic.getDfsCount() + 1L);
+            }
+            //宸插彂閫佹暟閲�
+            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 3) {
+                serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L);
+            }
+            //宸插畬鎴愭暟閲�
+            if (serviceSubtask.getSendstate() != null && serviceSubtask.getSendstate() == 6) {
+                //宸插彂閫侊紝鍖呭惈宸插畬鎴�
+                serviceSubtaskStatistic.setYfsCount(serviceSubtaskStatistic.getYfsCount() + 1L);
+                serviceSubtaskStatistic.setYwcCount(serviceSubtaskStatistic.getYwcCount() + 1L);
+            }
+
+            if (StringUtils.isNotEmpty(serviceSubtask.getExcep()) && serviceSubtask.getExcep().equals("1")) {
+                //寮傚父鏍囪瘑
+                serviceSubtaskStatistic.setYczs(serviceSubtaskStatistic.getYczs() + 1L);
+
+            }
+
+        }
+        //闅忚瀹屾垚鐜�=宸插彂閫�/闅忚鏁�
+        if (serviceSubtaskStatistic.getYfsCount() == 0 || CollectionUtils.isEmpty(serviceSubtaskList)) {
+            serviceSubtaskStatistic.setSfwcl("0");
+        } else {
+            BigDecimal multiply = BigDecimal.valueOf(serviceSubtaskStatistic.getYfsCount()).divide(BigDecimal.valueOf(serviceSubtaskList.size()), 2, BigDecimal.ROUND_HALF_UP);
+            serviceSubtaskStatistic.setSfwcl(multiply.toString());
+        }
+
+        return serviceSubtaskStatistic;
+    }
+
     private IvrTaskTemplateScriptVO getNextQuestion(List<IvrTaskTemplateScriptVO> IvrTaskTemplateScriptVOList, IvrTaskTemplateScriptVO IvrTaskTemplateScriptVO) {
 
         for (int j = 0; j < IvrTaskTemplateScriptVOList.size(); j++) {
@@ -1856,6 +1938,10 @@
         redisCache.setCacheObject(subTaskId + "recordAccept-hungup", "1", 10, TimeUnit.MINUTES);
         if (StringUtils.isNotEmpty(serviceSubtask.getRemark())) serviceSubtask.setRemark("鐢佃瘽鍙戦�佹嫆鎺�,鐭俊琛ュ伩鍙戦�佹垚鍔�");
         else serviceSubtask.setRemark("鐭俊琛ュ伩鍙戦�佹垚鍔�");
+        //璁板綍涓�涓嬭ˉ鍋挎柟寮�
+        if (StringUtils.isNotEmpty(serviceSubtask.getPreachform())) {
+            serviceSubtask.setPreachform(serviceSubtask.getPreachform() + ",1");
+        }
         serviceSubtaskMapper.updateServiceSubtask(serviceSubtask);
     }
 }

--
Gitblit v1.9.3