浏览代码

服务单元概览报表修改

wangliang 1 年之前
父节点
当前提交
dabdd53d18

+ 17 - 9
sop-business/src/main/java/com/qmth/sop/business/service/impl/ServiceAnalyseServiceImpl.java

@@ -21,10 +21,7 @@ import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 @Service
 public class ServiceAnalyseServiceImpl extends ServiceImpl<ServiceAnalyseMapper, TBService> implements ServiceAnalyseService {
@@ -77,13 +74,24 @@ public class ServiceAnalyseServiceImpl extends ServiceImpl<ServiceAnalyseMapper,
         Integer distributed = 0;
         if (!CollectionUtils.isEmpty(sopPassageMap)) {
             for (Map m : sopPassageMap) {
-                Integer regionUserSum = Objects.nonNull(m.get("regionUserSum")) ? Integer.parseInt(m.get("regionUserSum").toString()) : 0;
-                Integer engineerUserSum = Objects.nonNull(m.get("engineerUserSum")) ? Integer.parseInt(m.get("engineerUserSum").toString()) : 0;
-                distributed = distributed + regionUserSum + engineerUserSum;
-                String assistantEngineerUserId = Objects.nonNull(m.get("assistantEngineerUserIds")) ? m.get("assistantEngineerUserIds").toString() : null;
+                //需要去重
+                String regionUserStr = Objects.nonNull(m) && Objects.nonNull(m.get("regionUserIds")) ? m.get("regionUserIds").toString() : null;
+                if (Objects.nonNull(regionUserStr)) {
+                    String[] strs = regionUserStr.split(",");
+                    Set<String> set = new HashSet<>(Arrays.asList(strs));
+                    distributed = distributed + set.size();
+                }
+                String engineerUserStr = Objects.nonNull(m) && Objects.nonNull(m.get("engineerUserIds")) ? m.get("engineerUserIds").toString() : null;
+                if (Objects.nonNull(engineerUserStr)) {
+                    String[] strs = engineerUserStr.split(",");
+                    Set<String> set = new HashSet<>(Arrays.asList(strs));
+                    distributed = distributed + set.size();
+                }
+                String assistantEngineerUserId = Objects.nonNull(m) && Objects.nonNull(m.get("assistantEngineerUserIds")) ? m.get("assistantEngineerUserIds").toString() : null;
                 if (Objects.nonNull(assistantEngineerUserId)) {
                     String[] strs = assistantEngineerUserId.split(",");
-                    distributed = distributed + strs.length;
+                    Set<String> set = new HashSet<>(Arrays.asList(strs));
+                    distributed = distributed + set.size();
                 }
             }
         }

+ 3 - 3
sop-business/src/main/resources/mapper/TBSopInfoMapper.xml

@@ -247,9 +247,9 @@
 
     <select id="findSopPassage" resultType="java.util.Map">
         select
-            IFNULL(sum(case when tbsid.region_user_id is not null then 1 else 0 end),0) as regionUserSum,
-            IFNULL(sum(case when tbsid.engineer_user_id is not null then 1 else 0 end),0) as engineerUserSum,
-            group_concat(tbsid.assistant_engineer_user_ids) as assistantEngineerUserIds
+            group_concat(distinct tbsid.region_user_id) as regionUserIds,
+            group_concat(distinct tbsid.engineer_user_id) as engineerUserIds,
+            group_concat(distinct tbsid.assistant_engineer_user_ids) as assistantEngineerUserIds
         from
             t_b_sop_info_detail tbsid
         where