Browse Source

Merge branch 'V0.0.2' of http://10.87.10.227:4000/jzyd_yyds/soc into V0.0.2

jiawuxian 1 year ago
parent
commit
99a9fdc1af
24 changed files with 320 additions and 87 deletions
  1. 48 3
      project_data/sql/0.0.3/soc/soc.sql
  2. 6 1
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/DictConstants.java
  3. 32 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/safetyindex/dto/SafeScoreSourceDto.java
  4. 39 0
      soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/safetyindex/vo/SafeScoreResumptionDataVo.java
  5. 16 3
      soc-common/soc-common-security/src/main/java/com/xunmei/common/security/utils/DictUtils.java
  6. 2 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/SocCoreApplication.java
  7. 10 34
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java
  8. 1 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/dto/EvaluateTaskStatisticsDTO.java
  9. 6 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java
  10. 5 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/ResumptionService.java
  11. 53 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/ResumptionServiceImpl.java
  12. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskServiceImpl.java
  13. 4 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java
  14. 1 1
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java
  15. 15 11
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java
  16. 9 3
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/controller/CoreSafeMonthScoreController.java
  17. 3 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/ICoreSafeMonthScoreService.java
  18. 1 0
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/ICoreSafetyExceptionDataService.java
  19. 28 9
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/impl/CoreSafeMonthScoreServiceImpl.java
  20. 24 12
      soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/impl/CoreSafetyExceptionDataServiceImpl.java
  21. 8 4
      soc-modules/soc-modules-core/src/main/resources/mapper/evaluate/CoreEvaluateTaskMapper.xml
  22. 1 1
      soc-modules/soc-modules-core/src/main/resources/mapper/safetyindex/CoreSafeMonthScoreMapper.xml
  23. 3 0
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java
  24. 4 2
      soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeSetServiceImpl.java

+ 48 - 3
project_data/sql/0.0.3/soc/soc.sql

@@ -582,14 +582,21 @@ ALTER TABLE `core_protection_log`
 MODIFY COLUMN `status_updator_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '上报人姓名' AFTER `status_updator_id`;
 -- 修改安全指数机构分数表机构path字段长度
 alter table core_safe_month_score modify org_path varchar(225) null comment '机构path';
-DELETE FROM sys_menu WHERE id IN(01719287834364436482,01719288533101928450,01719892877586239490);
+DELETE FROM sys_menu WHERE id IN(01719287834364436482,01719288533101928450,01719892877586239490,01720000571298115585);
 INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
 VALUES (01719287834364436482, '统计报表', 0, 1, 'reportForms', NULL, NULL, 1, 0, 'M', '0', '0', 'core:send:list', '1', 'chart', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
 INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
 VALUES (01719288533101928450, '安全检查统计报表', 1719287834364436482, 1, 'core/reportForms', 'core/reportForms/safetyInspectReport', NULL, 1, 1, 'C', '0', '0', 'core:safetyInspectReport:list', '1', 'chart', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
 INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
-VALUES (01719892877586239490, '外包履职评价统计表', 1719287834364436482, 1, 'evaluateTable', 'evaluateTable/index', NULL, 1, 1, 'C', '0', '0', 'core:safetyInspectReport:list', '1', 'chart', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
-delete from sys_role_menu where menu_id IN(01719287834364436482,01719288533101928450,01719892877586239490);
+VALUES (01719892877586239490, '外包履职评价统计表', 1719287834364436482, 2, 'evaluateTable', 'evaluateTable/index', NULL, 1, 1, 'C', '0', '0', 'core:safetyInspectReport:list', '1', 'chart', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
+INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
+VALUES (01720000571298115585, '监控调阅统计报表', 1719287834364436482, 3, 'core', 'core/reportForms/monitorAccessReport', NULL, 1, 1, 'C', '0', '0', 'core:monitorAccessReport:list', '1', 'chart', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
+
+delete from sys_role_menu where menu_id IN(01719287834364436482,01719288533101928450,01719892877586239490,01720000571298115585);
+INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 01720000571298115585);
+INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (120, 01720000571298115585);
+INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (121, 01720000571298115585);
+INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (122, 01720000571298115585);
 
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (116, 01719287834364436482);
 INSERT INTO `sys_role_menu`(`role_id`, `menu_id`) VALUES (120, 01719287834364436482);
@@ -661,6 +668,44 @@ INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `co
 VALUES (01717076927401005058, '评价计划管理', 01720259442805620738, 1, 'resumption', 'resumptionEvaluate/evaluate/index', NULL, 1, 1, 'C', '0', '0', 'core:evaluatePlan:list', '1', 'excel', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
 INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `platform_type`, `icon`, `image_path`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
 VALUES (01717079254782545922, '外包评价', 01720259442805620738, 2, 'wbpj', 'resumptionEvaluate/evaluatePlan/index', NULL, 1, 1, 'C', '0', '0', 'core:evaluateTask:list', '1', 'checkbox', NULL, '超级管理员', '2023-09-21 10:37:52', '超级管理员', '2023-09-22 09:42:43', '');
+
+DELETE from `sys_role_menu` WHERE `menu_id` in(01720259442805620738,01717076927401005058,01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (114, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (115, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (116, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (117, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (118, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (119, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (120, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (121, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (122, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (128, 01720259442805620738);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (129, 01720259442805620738);
+
+
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (114, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (115, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (116, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (117, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (118, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (119, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (120, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (121, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (122, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (128, 01717076927401005058);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (129, 01717076927401005058);
+
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (114, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (115, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (116, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (117, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (118, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (119, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (120, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (121, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (122, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (128, 01717079254782545922);
+INSERT INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (129, 01717079254782545922);
 -- 天气接口配置
 delete from sys_config where config_key='WEATHER_URL';
 INSERT INTO sys_config (config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark) VALUES (191, '天气接口', 'WEATHER_URL', 'https://ali-weather.showapi.com', 'Y', NULL, now(), NULL, now(), NULL);

+ 6 - 1
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/DictConstants.java

@@ -1,6 +1,10 @@
 package com.xunmei.common.core.constant;
 
 
+import cn.hutool.core.util.ObjectUtil;
+
+import java.util.List;
+
 /**
  * @author jingyuanchao
  * @date 2023/9/8 18:33
@@ -205,7 +209,7 @@ public class DictConstants {
     /**
      * 机构扩展平台品牌
      */
-   public static final String ORG_PLATFORM_BRAND = "org_platform_brand";
+    public static final String ORG_PLATFORM_BRAND = "org_platform_brand";
 
     /**
      * 机构扩展平台供应商品牌
@@ -244,4 +248,5 @@ public class DictConstants {
     public static final String DRILL_TASK_REC_STATUS = "drill_task_rec_status";
 
 
+
 }

+ 32 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/safetyindex/dto/SafeScoreSourceDto.java

@@ -0,0 +1,32 @@
+package com.xunmei.common.core.domain.safetyindex.dto;
+
+import cn.hutool.core.date.DateUtil;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SafeScoreSourceDto {
+
+    private Long orgId;
+
+    private Date date;
+
+    private String typeCode;
+
+    private Integer dataMonth;
+
+    private Integer dataYear;
+
+    public void setDate(Date date) {
+        this.date = date;
+        if (null != this.date){
+            this.dataMonth = DateUtil.month(date) + 1;
+            this.dataYear = DateUtil.year(date);
+        }
+    }
+}

+ 39 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/safetyindex/vo/SafeScoreResumptionDataVo.java

@@ -0,0 +1,39 @@
+package com.xunmei.common.core.domain.safetyindex.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * 指数扣分详细-安保履职
+ */
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class SafeScoreResumptionDataVo {
+
+    private String resumptionId;
+
+    private String resumptionTaskName;
+
+    private String orgName;
+
+    private String execManName;
+
+    private String execPostName;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date planTimeStart;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date planTimeEnd;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date execTimeStart;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date execTimeEnd;
+
+    private Integer execStatus;
+    private String execStatusText;
+}

+ 16 - 3
soc-common/soc-common-security/src/main/java/com/xunmei/common/security/utils/DictUtils.java

@@ -1,14 +1,14 @@
 package com.xunmei.common.security.utils;
 
-import com.alibaba.fastjson2.JSONArray;
+import cn.hutool.core.util.ObjectUtil;
 import com.xunmei.common.core.constant.CacheConstants;
-import com.xunmei.common.core.utils.SpringUtils;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.system.api.domain.SysDictData;
+import io.netty.util.internal.StringUtil;
 
-import java.util.Collection;
 import java.util.List;
+import java.util.Optional;
 
 /**
  * 字典工具类
@@ -71,4 +71,17 @@ public class DictUtils {
     public static String getCacheKey(String configKey) {
         return CacheConstants.SYS_DICT_KEY + configKey;
     }
+
+    public static String getDictLabel(String status, Integer statusNum) {
+        final List<SysDictData> statusTextList = DictUtils.getDictCache(status);
+        if (ObjectUtil.isNotEmpty(statusTextList) && ObjectUtil.isNotNull(statusNum)) {
+            Optional<SysDictData> optional = statusTextList.stream()
+                    .filter(dict -> ObjectUtil.equal(dict.getDictValue(), String.valueOf(statusNum)))
+                    .findFirst();
+            if (optional.isPresent()) {
+                return optional.get().getDictLabel();
+            }
+        }
+        return StringUtil.EMPTY_STRING;
+    }
 }

+ 2 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/SocCoreApplication.java

@@ -7,6 +7,7 @@ import com.xunmei.common.swagger.annotation.EnableCustomSwagger2;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableAsync;
 
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
@@ -19,6 +20,7 @@ import java.util.Date;
 @EnableCustomSwagger2
 @EnableSocFeignClients
 @SpringBootApplication
+@EnableAsync
 public class SocCoreApplication {
     public static void main(String[] args) {
         SpringApplication.run(SocCoreApplication.class, args);

+ 10 - 34
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillTaskServiceImpl.java

@@ -198,15 +198,9 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 
         }
         //处理演练任务类型字典
-        final List<SysDictData> drillTypeDictList = DictUtils.getDictCache(DictConstants.CORE_DRILL_TYPE);
-        if (ObjectUtil.isNotEmpty(drillTypeDictList) && ObjectUtil.isNotEmpty(record.getType())) {
-            drillTypeDictList.stream().filter(dict -> ObjectUtil.equal(dict.getDictValue(), record.getType().toString())).findFirst().ifPresent(dict -> record.setTypeText(dict.getDictLabel()));
-        }
+        record.setTypeText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_TYPE, record.getType()));
         //处理演练任务推荐状态字典
-        final List<SysDictData> drillTaskRecStatusList = DictUtils.getDictCache(DictConstants.DRILL_TASK_REC_STATUS);
-        if (ObjectUtil.isNotEmpty(drillTaskRecStatusList) && ObjectUtil.isNotEmpty(record.getRecStatus())) {
-            drillTaskRecStatusList.stream().filter(dict -> ObjectUtil.equal(dict.getDictValue(), record.getRecStatus().toString())).findFirst().ifPresent(dict -> record.setRecStatusText(dict.getDictLabel()));
-        }
+        record.setRecStatusText(DictUtils.getDictLabel(DictConstants.DRILL_TASK_REC_STATUS, record.getRecStatus()));
     }
 
     @Override
@@ -236,14 +230,9 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
            /* detailVo.setAbsenceList(collect.get(1));
             detailVo.setAbsentList(collect.get(2));*/
         }
-        final List<SysDictData> drillTypeDictList = DictUtils.getDictCache(DictConstants.CORE_DRILL_TYPE);
-        if (ObjectUtil.isNotEmpty(drillTypeDictList) && ObjectUtil.isNotEmpty(detailVo.getType())) {
-            drillTypeDictList.stream().filter(dict -> ObjectUtil.equal(dict.getDictValue(), detailVo.getType().toString())).findFirst().ifPresent(dict -> detailVo.setTypeText(dict.getDictLabel()));
-        }
-        final List<SysDictData> recStatusDictList = DictUtils.getDictCache(DictConstants.DRILL_TASK_REC_STATUS);
-        if (ObjectUtil.isNotEmpty(recStatusDictList) && ObjectUtil.isNotEmpty(detailVo.getRecStatus())) {
-            recStatusDictList.stream().filter(dict -> ObjectUtil.equal(dict.getDictValue(), detailVo.getRecStatus().toString())).findFirst().ifPresent(dict -> detailVo.setRecStatusText(dict.getDictLabel()));
-        }
+        //处理演练任务类型字典
+        detailVo.setTypeText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_TYPE, detailVo.getType()));
+        detailVo.setRecStatusText(DictUtils.getDictLabel(DictConstants.DRILL_TASK_REC_STATUS, detailVo.getRecStatus()));
         return detailVo;
     }
 
@@ -745,18 +734,12 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         IPage<CoreDrillTaskRecPageVo> page;
 
         page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request);
-
-        final List<SysDictData> drillTypeDictList = DictUtils.getDictCache(DictConstants.CORE_DRILL_TYPE);
-        final List<SysDictData> drillTaskRecStatusList = DictUtils.getDictCache(DictConstants.DRILL_TASK_REC_STATUS);
         for (CoreDrillTaskRecPageVo record : page.getRecords()) {
             //处理演练任务类型字典
-            if (ObjectUtil.isNotEmpty(drillTypeDictList) && ObjectUtil.isNotEmpty(record.getType())) {
-                drillTypeDictList.stream().filter(dict -> ObjectUtil.equal(dict.getDictValue(), record.getType().toString())).findFirst().ifPresent(dict -> record.setTypeText(dict.getDictLabel()));
-            }
+            record.setTypeText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_TYPE, record.getType()));
             //处理演练任务推荐状态字典
-            if (ObjectUtil.isNotEmpty(drillTaskRecStatusList) && ObjectUtil.isNotEmpty(record.getRecStatus())) {
-                drillTaskRecStatusList.stream().filter(dict -> ObjectUtil.equal(dict.getDictValue(), record.getRecStatus().toString())).findFirst().ifPresent(dict -> record.setRecStatusText(dict.getDictLabel()));
-            }
+            record.setRecStatusText(DictUtils.getDictLabel(DictConstants.DRILL_TASK_REC_STATUS, record.getRecStatus()));
+
         }
         return TableDataInfo.build(page);
     }
@@ -770,16 +753,9 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         if (ObjectUtil.isEmpty(records)) {
             return TableDataInfo.build(page);
         }
-        //处理演练任务类型字典
-        final List<SysDictData> drillTypeDictList = DictUtils.getDictCache(DictConstants.CORE_DRILL_TYPE);
-        if (ObjectUtil.isEmpty(drillTypeDictList)) {
-            return TableDataInfo.build(page);
-        }
         for (CoreDrillTaskRecTaskPageVo record : records) {
-            if (record.getType() == null) {
-                continue;
-            }
-            drillTypeDictList.stream().filter(dict -> ObjectUtil.equal(dict.getDictValue(), record.getType().toString())).findFirst().ifPresent(dict -> record.setTypeText(dict.getDictLabel()));
+            //处理演练任务类型字典
+            record.setTypeText(DictUtils.getDictLabel(DictConstants.CORE_DRILL_TYPE, record.getType()));
         }
         return TableDataInfo.build(page);
     }

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/dto/EvaluateTaskStatisticsDTO.java

@@ -23,4 +23,5 @@ public class EvaluateTaskStatisticsDTO {
     @TableField(exist = false)
     @ApiModelProperty(value = "每页大小")
     private Long pageSize;
+    private Integer type;
 }

+ 6 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/evaluate/service/impl/CoreEvaluateTaskServiceImpl.java

@@ -117,6 +117,11 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
         }
         SysOrg sysOrg = remoteOrgService.selectSysOrgById(evaluateTaskStatisticsDTO.getOrgId(), SecurityConstants.INNER);
         evaluateTaskStatisticsDTO.setOrgPath(sysOrg.getPath());
+        if (sysOrg.getType().equals(1)){
+            evaluateTaskStatisticsDTO.setType(3);
+        }else {
+            evaluateTaskStatisticsDTO.setType(4);
+        }
         evaluateTaskStatisticsDTO.setOrgId(null);
         evaluateTaskStatisticsDTO.setOrgPath(null);
         List<LinkedHashMap> rows = baseMapper.statisticsAll(evaluateTaskStatisticsDTO);
@@ -133,6 +138,7 @@ public class CoreEvaluateTaskServiceImpl extends ServiceImpl<CoreEvaluateTaskMap
                     total += score;
                 }
                 rows.get(i).put("合计", total);
+                rows.get(i).put("平均值",total/contentByTaskId.size());
             }
         }
         return rows;

+ 5 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/ResumptionService.java

@@ -6,11 +6,13 @@ import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafetyIndexReCalculateDto;
+import com.xunmei.common.core.domain.safetyindex.dto.SafeScoreSourceDto;
+import com.xunmei.common.core.domain.safetyindex.vo.SafeScoreResumptionDataVo;
 import com.xunmei.common.core.utils.ResumptionType;
 import com.xunmei.core.resumption.domain.AppPlan;
 import com.xunmei.core.resumption.domain.Resumption;
-import com.xunmei.core.resumption.dto.resumptionRegister.ResumptionTaskDataDto;
 import com.xunmei.core.resumption.dto.TaskDetailsDto;
+import com.xunmei.core.resumption.dto.resumptionRegister.ResumptionTaskDataDto;
 import com.xunmei.core.resumption.vo.AppRulePointTaskVo;
 import com.xunmei.core.resumption.vo.ResumptionAppVo;
 import com.xunmei.core.resumption.vo.ResumptionTaskNewDto;
@@ -51,4 +53,6 @@ public interface ResumptionService extends IService<Resumption> {
 
     List<CoreSafetyExceptionData> findResumptionList(DateTime time);
     List<CoreSafetyExceptionData> findResumptionListNew(List<Long> orgIds, Date startTime, Date endTime, CoreSafetyIndexReCalculateDto request);
+
+    List<SafeScoreResumptionDataVo>  findSource(SafeScoreSourceDto request);
 }

+ 53 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/ResumptionServiceImpl.java

@@ -4,17 +4,23 @@ import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xunmei.common.core.constant.DictConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.panel.dto.PanelListDto;
 import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafetyIndexReCalculateDto;
+import com.xunmei.common.core.domain.safetyindex.dto.SafeScoreSourceDto;
+import com.xunmei.common.core.domain.safetyindex.vo.SafeScoreResumptionDataVo;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.ResumptionType;
+import com.xunmei.common.core.utils.StreamHelper;
 import com.xunmei.common.core.utils.Ymd;
+import com.xunmei.common.security.utils.DictUtils;
 import com.xunmei.core.resumption.domain.AppPlan;
 import com.xunmei.core.resumption.domain.Resumption;
 import com.xunmei.core.resumption.dto.TaskDetailsDto;
@@ -27,6 +33,9 @@ import com.xunmei.core.resumption.vo.AppRulePointTaskVo;
 import com.xunmei.core.resumption.vo.ResumptionAppVo;
 import com.xunmei.core.resumption.vo.ResumptionTaskNewDto;
 import com.xunmei.core.resumption.vo.WorkChangeResumptionVo;
+import com.xunmei.core.safetyindex.mapper.CoreSafeMonthScoreMapper;
+import com.xunmei.core.safetyindex.mapper.CoreSafetyExceptionDataMapper;
+import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.RemoteRoleService;
 import com.xunmei.system.api.domain.SysRole;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,7 +59,12 @@ public class ResumptionServiceImpl extends ServiceImpl<ResumptionMapper, Resumpt
 
     @Autowired
     private RemoteRoleService roleService;
-
+    @Autowired
+    private RemoteOrgService orgService;
+    @Autowired
+    private CoreSafetyExceptionDataMapper exceptionDataMapper;
+    @Autowired
+    private CoreSafeMonthScoreMapper safeMonthScoreMapper;
     @Override
     public List<Map<String, Object>> findDayTaskList(int year, int quarter, String dateTime, Long roleId, Long orgid) {
         return resumptionMapper.findDayTaskList(year, quarter, dateTime, roleId, orgid);
@@ -322,4 +336,42 @@ public class ResumptionServiceImpl extends ServiceImpl<ResumptionMapper, Resumpt
         SysRole role = roleService.getRoleByName("网点安全员", SecurityConstants.INNER);
         return baseMapper.findResumptionListNew(orgIds,startTime ,endTime,role.getId(),request);
     }
+
+    @Override
+    public List<SafeScoreResumptionDataVo>  findSource(SafeScoreSourceDto request) {
+
+
+        List<CoreSafetyExceptionData> excetionDataList = exceptionDataMapper.selectList(new LambdaQueryWrapper<CoreSafetyExceptionData>()
+                .eq(CoreSafetyExceptionData::getOrgId, request.getOrgId())
+                .eq(CoreSafetyExceptionData::getDataSource, "core_resumption")
+                .between(CoreSafetyExceptionData::getDataTime, DateUtil.beginOfMonth(request.getDate()), DateUtil.endOfMonth(request.getDate())));
+        List<SafeScoreResumptionDataVo> voList = StreamHelper.to(excetionDataList, safetyExcetionData -> {
+            SafeScoreResumptionDataVo resumptionDataVo = new SafeScoreResumptionDataVo();
+            int year = DateUtil.year(request.getDate());
+            int quarter = DateUtil.quarter(request.getDate());
+            Resumption resumption = baseMapper.selectOne(new LambdaQueryWrapper<Resumption>()
+                    .eq(Resumption::getId, safetyExcetionData.getDataId())
+                    .eq(Resumption::getYmdYear, year)
+                    .eq(Resumption::getYmdQuarter, quarter));
+            resumptionDataVo.setResumptionId(resumption.getId().toString());
+            resumptionDataVo.setExecManName(resumption.getUpdateBy());
+            String roleName = this.roleService.getRoleById(resumption.getRoleId(),SecurityConstants.INNER).getRoleName();
+            resumptionDataVo.setExecPostName(roleName);
+            resumptionDataVo.setExecStatus(resumption.getStatus());
+            String dictLabel = DictUtils.getDictLabel(DictConstants.RESUMPTION_STATUS, resumption.getStatus());
+            resumptionDataVo.setExecStatusText(dictLabel);
+            resumptionDataVo.setExecTimeStart(resumption.getStartTime());
+            resumptionDataVo.setExecTimeEnd(resumption.getEndTime());
+            resumptionDataVo.setPlanTimeStart(resumption.getPlanStartTime());
+            resumptionDataVo.setPlanTimeEnd(resumption.getPlanEndTime());
+//            Org org = resumption.getOrg();
+//            System.out.println(org);
+            String orgName = this.orgService.selectOrgById(resumption.getOrgId(),SecurityConstants.INNER).getName();
+            resumptionDataVo.setOrgName(orgName);
+            String planName = this.appPlanMapper.selectPlanNameById(resumption.getPlanId());
+            resumptionDataVo.setResumptionTaskName(planName);
+            return resumptionDataVo;
+        });
+        return voList;
+    }
 }

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskServiceImpl.java

@@ -622,7 +622,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 
     @Override
     public List<CoreSafetyExceptionData> selectMonitorExceptionData(DateTime time) {
-        SysRole role = roleService.getRoleByName("网点安全员", SecurityConstants.INNER);
+        SysRole role = roleService.getRoleByName("网点负责人", SecurityConstants.INNER);
         //扩展字段1:任务状态 扩展字段2 计划id
         List<CoreSafetyExceptionData> exceptionData = baseMapper.selectMonitorExceptionData(time.year(), time.quarter(), time.month() + 1, role.getId());
         exceptionData.removeIf(item -> ObjectUtil.isNull(item.getDataId()));

+ 4 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java

@@ -128,6 +128,10 @@ public class CoreSafecheckPlanController extends BaseController {
             coreSafecheckPlan.setBuildTaskNow(true);
         }
         Long returnId = coreSafecheckPlanService.insertCoreSafecheckPlan(coreSafecheckPlan);
+        //如果编辑需要处理子计划
+        if (planId != null) {
+            coreSafecheckPlanService.childrenPlan(planId);
+        }
         //判断是否是编辑并且计划所属任务不存在已完成或者逾期,需要删除所有任务重新生成
         boolean isEditAll = coreSafecheckPlan.getHasEdit() == null && planId != null && coreSafecheckPlan.isBuildTaskNow();
         //如果是新增计划并且勾选立即执行并且是行社或者无周期,立即生成计划

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/ICoreSafecheckPlanService.java

@@ -46,7 +46,7 @@ public interface ICoreSafecheckPlanService extends IService<CoreSafecheckPlan> {
      * @return 结果
      */
     int updateCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan);
-
+    public void childrenPlan(Long id);
     /**
      * 批量删除常规安全检查计划
      *

+ 15 - 11
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/service/impl/CoreSafecheckPlanServiceImpl.java

@@ -27,6 +27,7 @@ import com.xunmei.core.safetyCheck.vo.ruleItem.SafetyCheckRulePointVo;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import java.util.stream.Collectors;
@@ -204,9 +205,9 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 
             //撤回需要删除本周期所有任务
             DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
-            if (plan.getPlanCycle()==6L){
+            if (plan.getPlanCycle() == 6L) {
                 coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
-            }else {
+            } else {
                 coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
             }
         }
@@ -216,9 +217,9 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         baseMapper.updateById(plan);
         //撤回需要删除本周期所有任务
         DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
-        if (plan.getPlanCycle()==6L) {
+        if (plan.getPlanCycle() == 6L) {
             coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
-        }else{
+        } else {
             coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).in(CoreSafetyTask::getStatus, 1, 2).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 
         }
@@ -230,7 +231,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         plan.setPlanStatus(1L);
 
         //行社下发
-        if ((plan.getPlanOfOrgType() == 3 && "0".equals(plan.getDistribute()))||(plan.getExecOrgType()==1||plan.getExecOrgType()==2)) {
+        if ((plan.getPlanOfOrgType() == 3 && "0".equals(plan.getDistribute())) || (plan.getExecOrgType() == 1 || plan.getExecOrgType() == 2)) {
             plan.setDistribute("1");
         } else {
             plan.setDistribute("0");
@@ -368,12 +369,17 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         }
 
 
-//如果编辑需要处理子计划
-        if (pid != null) {
+
+        return returnId;
+    }
+
+    @Async
+    @Override
+    public void childrenPlan(Long id) {
             //处理子计划
             //拿到所有子计划
-            List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, coreSafecheckPlan.getId()));
-            coreSafecheckPlan = baseMapper.selectById(coreSafecheckPlan.getId());
+            List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
+            CoreSafecheckPlan coreSafecheckPlan = baseMapper.selectById(id);
             for (CoreSafecheckPlan p :
                     children) {
                 p.setUpdateTime(DateUtils.getNowDate());
@@ -456,8 +462,6 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
                 coreSafetyTaskMapper.update(temp, new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, coreSafecheckPlan.getId()).in(CoreSafetyTask::getStatus, 1, 2));
 
             }
-        }
-        return returnId;
     }
 
     /**

+ 9 - 3
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/controller/CoreSafeMonthScoreController.java

@@ -3,8 +3,8 @@ package com.xunmei.core.safetyindex.controller;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafeMonthScore;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafeMonthScoreDetailPageDto;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafeMonthScorePageDto;
+import com.xunmei.common.core.domain.safetyindex.dto.SafeScoreSourceDto;
 import com.xunmei.common.core.domain.safetyindex.vo.CoreSafeMonthScoreDetailPageVo;
-import com.xunmei.common.core.domain.safetyindex.vo.CoreSafeMonthScoreDetailVo;
 import com.xunmei.common.core.domain.safetyindex.vo.CoreSafeMonthScorePageVo;
 import com.xunmei.common.core.web.controller.BaseController;
 import com.xunmei.common.core.web.domain.AjaxResult;
@@ -50,8 +50,14 @@ public class CoreSafeMonthScoreController extends BaseController {
     @ApiOperation(value = "获取某机构指数分布详情")
     //@RequiresPermissions("core:safeMonthScore:query")
     @PostMapping("/find/singleOrg")
-    public CoreSafeMonthScoreDetailVo singleOrg(@RequestBody CoreSafeMonthScorePageDto request) {
-        return coreSafeMonthScoreService.singleOrg(request);
+    public AjaxResult singleOrg(@RequestBody CoreSafeMonthScorePageDto request) {
+        return success(coreSafeMonthScoreService.singleOrg(request));
+    }
+
+    @PostMapping("/singleData/detail")
+    public AjaxResult findSource(@RequestBody SafeScoreSourceDto request){
+        Object source = this.coreSafeMonthScoreService.findSource(request);
+        return success(source);
     }
 
 

+ 3 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/ICoreSafeMonthScoreService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafeMonthScore;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafeMonthScoreDetailPageDto;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafeMonthScorePageDto;
+import com.xunmei.common.core.domain.safetyindex.dto.SafeScoreSourceDto;
 import com.xunmei.common.core.domain.safetyindex.vo.CoreSafeMonthScoreDetailPageVo;
 import com.xunmei.common.core.domain.safetyindex.vo.CoreSafeMonthScoreDetailVo;
 import com.xunmei.common.core.domain.safetyindex.vo.CoreSafeMonthScorePageVo;
@@ -81,4 +82,6 @@ public interface ICoreSafeMonthScoreService extends IService<CoreSafeMonthScore>
 
     CoreSafeMonthScoreDetailVo singleOrg(CoreSafeMonthScorePageDto request);
 
+    Object findSource(SafeScoreSourceDto request);
+
 }

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/ICoreSafetyExceptionDataService.java

@@ -33,4 +33,5 @@ public interface ICoreSafetyExceptionDataService extends IService<CoreSafetyExce
     void reCalculate(CoreSafetyIndexReCalculateDto request);
 
     void deleteAndUpdateByOrgIdAndDataTime(List<Long> orgIds, DateTime startTime, DateTime endTime, CoreSafetyIndexReCalculateDto request);
+
 }

+ 28 - 9
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/impl/CoreSafeMonthScoreServiceImpl.java

@@ -12,10 +12,12 @@ import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafeMonthScore;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafeMonthScoreDetailPageDto;
 import com.xunmei.common.core.domain.safetyindex.dto.CoreSafeMonthScorePageDto;
+import com.xunmei.common.core.domain.safetyindex.dto.SafeScoreSourceDto;
 import com.xunmei.common.core.domain.safetyindex.vo.*;
 import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.util.BeanHelper;
 import com.xunmei.common.core.web.page.TableDataInfo;
+import com.xunmei.core.resumption.service.ResumptionService;
 import com.xunmei.core.safetyindex.mapper.CoreSafeLevelMapper;
 import com.xunmei.core.safetyindex.mapper.CoreSafeMonthScoreMapper;
 import com.xunmei.core.safetyindex.service.ICoreSafeMonthScoreService;
@@ -31,6 +33,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import static com.xunmei.core.safetyindex.service.impl.CoreSafetyExceptionDataServiceImpl.RESUMPTION_DICT_CODE;
+
 /**
  * 安全指数机构月度得分Service业务层处理
  *
@@ -42,6 +46,8 @@ public class CoreSafeMonthScoreServiceImpl extends ServiceImpl<CoreSafeMonthScor
     @Autowired
     private CoreSafeMonthScoreMapper coreSafeMonthScoreMapper;
     @Autowired
+    private ResumptionService resumptionService;
+    @Autowired
     private RemoteOrgService orgService;
     @Autowired
     private CoreSafeLevelMapper safeLevelMapper;
@@ -74,10 +80,9 @@ public class CoreSafeMonthScoreServiceImpl extends ServiceImpl<CoreSafeMonthScor
             wrapper.eq(CoreSafeMonthScore::getDataMonth, request.getDataMonth())
                     .eq(CoreSafeMonthScore::getDataYear, request.getDataYear());
         }
-        Long levelId = request.getLevelId();
-        if (null != levelId) {
-            wrapper.eq(CoreSafeMonthScore::getLevelId, levelId);
-        }
+
+        wrapper.eq(ObjectUtil.isNull(request.getLevelId()),CoreSafeMonthScore::getLevelId, request.getLevelId());
+
         Page<CoreSafeMonthScore> pageRequest = request.getPageRequest();
         Page<CoreSafeMonthScore> page = baseMapper.selectPage(pageRequest, wrapper);
         if (page.getRecords().size() > 0) {
@@ -104,7 +109,7 @@ public class CoreSafeMonthScoreServiceImpl extends ServiceImpl<CoreSafeMonthScor
 
     @Override
     public CoreSafeMonthScoreDetailVo singleOrg(CoreSafeMonthScorePageDto request) {
-        CoreSafeMonthScoreDetailVo detailVo=new CoreSafeMonthScoreDetailVo();
+        CoreSafeMonthScoreDetailVo detailVo = new CoreSafeMonthScoreDetailVo();
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
                 orgService.selectOrgById(request.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
         List<Long> collect = Arrays.stream(sysOrg.getPath().split("-")).map(Long::valueOf).collect(Collectors.toList());
@@ -115,7 +120,7 @@ public class CoreSafeMonthScoreServiceImpl extends ServiceImpl<CoreSafeMonthScor
         detailVo.setSecondOrgName(sysOrgList.get(1).getName());
         detailVo.setOrgTypeText(OrgTypeEnum.getName(sysOrg.getType()));
 
-       List<MonthScoreDetailDictDetailTempVo> tempVoList= baseMapper.selectDetailVoData(request);
+        List<MonthScoreDetailDictDetailTempVo> tempVoList = baseMapper.selectDetailVoData(request);
         Map<String, List<MonthScoreDetailDictDetailTempVo>> listMap = tempVoList.stream().collect(Collectors.groupingBy(MonthScoreDetailDictDetailTempVo::getTypeCode));
         List<MonthScoreDetailDictVo> dataList = new ArrayList<MonthScoreDetailDictVo>();
         detailVo.setDataList(dataList);
@@ -128,14 +133,28 @@ public class CoreSafeMonthScoreServiceImpl extends ServiceImpl<CoreSafeMonthScor
 
             List<MonthScoreDetailDictDetailVo> detailVoList = BeanHelper.copyProperties(voList, MonthScoreDetailDictDetailVo.class);
             dictVo.setDetailList(detailVoList);
-
+            dictVo.setScore(voList.stream().mapToDouble(MonthScoreDetailDictDetailTempVo::getScore).sum());
+            dictVo.setTimes(voList.stream().mapToInt(MonthScoreDetailDictDetailTempVo::getTimes).sum());
             dataList.add(dictVo);
         }
-
-
         return detailVo;
     }
 
+    @Override
+    public Object findSource(SafeScoreSourceDto request) {
+
+        switch (request.getTypeCode()) {
+            case RESUMPTION_DICT_CODE:
+                List<SafeScoreResumptionDataVo> source = resumptionService.findSource(request);
+                return source;
+           /* case MONITORING_DICT_CODE:
+                return monitoringRetrievalTaskService.findSource(request);
+            case QUESTION_DICT_CODE:
+                return questionService.findSource(request);*/
+        }
+        return null;
+    }
+
     /**
      * 查询安全指数机构月度得分列表
      *

+ 24 - 12
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyindex/service/impl/CoreSafetyExceptionDataServiceImpl.java

@@ -21,10 +21,13 @@ import com.xunmei.core.resumption.service.ResumptionService;
 import com.xunmei.core.retrieval.service.ICoreMonitoringRetrievalTaskService;
 import com.xunmei.core.safetyindex.mapper.CoreSafetyExceptionDataMapper;
 import com.xunmei.core.safetyindex.service.*;
+import com.xunmei.core.thread.ThreadPoolConfig;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
 import com.xunmei.system.api.vo.SysOrgVO;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -33,6 +36,7 @@ import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
+import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
@@ -82,7 +86,9 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
     private ICoreSafeLevelService safeLevelService;
     @Autowired
     private RemoteOrgService orgService;
-
+    @Autowired
+    @Qualifier(ThreadPoolConfig.SOC_EXECUTOR)
+    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void countExceptionData(String date) {
@@ -90,13 +96,21 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
 
         //清空本月的异常数据
         this.deleteExceptionData(time);
-        //获取安保履职的数据
-        doResumptionExceptionData(time);
-        //获取问题整改的异常数据
-        doQuestionExceptionData(null, time);
-        //获取监控调阅的异常数据
-        doMonitorExceptionData(time);
 
+        CompletableFuture.runAsync(() -> {
+            //获取安保履职的数据
+            doResumptionExceptionData(time);
+        },threadPoolTaskExecutor);
+
+        CompletableFuture.runAsync(() -> {
+            //获取问题整改的异常数据
+            doQuestionExceptionData(null, time);
+        },threadPoolTaskExecutor);
+
+        CompletableFuture.runAsync(() -> {
+            //获取监控调阅的异常数据
+            doMonitorExceptionData(time);
+        },threadPoolTaskExecutor);
     }
 
 
@@ -106,7 +120,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
 
         DateTime time = dealTimeParam(date);
         int year = time.year();
-        int month = time.month()+1;
+        int month = time.month() + 1;
         //获取指标配置
         List<SafeIndexRuleCountVo> safeIndexConfigVoList = ruleService.findSafeIndexRuleVoList();
         //履职的指标配置
@@ -736,7 +750,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
 
     private DateTime dealTimeParam(String date) {
         DateTime parse = DateUtil.beginOfMonth(DateUtil.parse(date));
-        parse.setField(DateField.MONTH, DateUtil.offsetMonth(parse,-1).month());
+        parse.setField(DateField.MONTH, DateUtil.offsetMonth(parse, -1).month());
 
         return parse;
     }
@@ -788,9 +802,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         //监控巡检
         doMonitorExceptionData(orgIds, startTime);
 
-
         reCalculateSafetyIndex(orgIds, DateUtil.format(startTime, "yyyy-MM-dd"));
-
     }
 
 
@@ -807,7 +819,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         //删除现有的异常数据,并重新拉取数据计算
         List<Long> idList = sysOrgList.stream().map(SysOrg::getId).collect(Collectors.toList());
         this.deleteAndUpdateByOrgIdAndDataTime(idList, startTime, endTime, request);
+    }
 
 
-    }
 }

+ 8 - 4
soc-modules/soc-modules-core/src/main/resources/mapper/evaluate/CoreEvaluateTaskMapper.xml

@@ -140,7 +140,7 @@
               ( b.content_type = 1, 0, SUM( b.score ) ) score
       FROM
           core_evaluate_task_user_content b
-              LEFT JOIN core_evaluate_task_user a ON a.id = b.task_user_id AND b.`code`!=1
+              LEFT JOIN core_evaluate_task_user a ON a.id = b.task_user_id AND b.`code`!=0
       WHERE
           a.id = #{id}
       GROUP BY
@@ -191,11 +191,15 @@
             d.score AS '被评价机构名称'
             FROM
             core_evaluate_task_user_content d LEFT JOIN
-            core_evaluate_task_user c ON d.task_user_id=c.id AND d.code=1 LEFT JOIN
+            core_evaluate_task_user c ON d.task_user_id=c.id AND d.code=0 LEFT JOIN
             core_evaluate_task a ON a.id=c.task_id
             LEFT JOIN core_evaluate_plan b ON a.plan_id = b.id
-            WHERE
-            a.`status` = 2
+        LEFT JOIN sys_org e ON e.id=a.org_id
+        WHERE
+        a.`status` = 2
+        <if test="request.type != null">
+            AND   e.type= #{request.type}
+        </if>
             <if test="request.orgPath != null  and request.orgPath != ''">
                 AND a.org_path like concat(#{request.orgPath}, '%')
             </if>

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/safetyindex/CoreSafeMonthScoreMapper.xml

@@ -214,7 +214,7 @@
 
     <select id="selectDetailVoData"
             resultType="com.xunmei.common.core.domain.safetyindex.vo.MonthScoreDetailDictDetailTempVo">
-        select q.typeCode,q.typeName, d.code as projectCode, d.name projectName,d2.code as pointName,d2.name pointName, q.indicator_note itemName, q.score score, q.times times,q.score_real realScore,q.rule_id indexId
+        select q.typeCode,q.typeName, d.code as projectCode, d.name projectName,d2.code as pointCode,d2.name pointName, q.indicator_note itemName, q.score as score, q.times as times,q.score_real realScore,q.rule_id
         from core_safety_dict d,
              (
                  select q.*, c.project_code,c.point_code

+ 3 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -552,6 +552,9 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public SysOrg selectByShortName(String shortName) {
         List<SysOrg> sysOrgs = baseMapper.selectByShortName(shortName);
         if (!CollectionUtil.isEmpty(sysOrgs)) {
+            if(sysOrgs.size()>1){
+                throw new RuntimeException("机构名称重复,导入失败;请检查后重试");
+            }
             return sysOrgs.get(0);
         }
         return null;

+ 4 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysWorkTimeSetServiceImpl.java

@@ -417,8 +417,11 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
                             Date effectiveDateNext = dateList.get(index + 1);
                             //取出workTimeEditDtoListAll中ymd_date在EffectiveDate和effectiveDateNext之间的数据
                             List<SysWorkTime> workTimeEditDtoList = workTimeEditDtoListAll.stream().filter(f -> f.getDate().getTime() >= effectiveDate.getTime() && f.getDate().getTime() < effectiveDateNext.getTime()).collect(Collectors.toList());
+                            List<Date> remDates=workTimeEditDtoList.stream().map(SysWorkTime::getYmdDate).collect(Collectors.toList());
+                            workTimeService.remove(new LambdaQueryWrapper<SysWorkTime>().eq(SysWorkTime::getOrgId, orgId).in(SysWorkTime::getYmdDate, remDates).eq(SysWorkTime::getIsManual, 0));
                             batchnew(orgId, workTimeEditDtoList, list);
                         } else {
+                            workTimeService.remove(new LambdaQueryWrapper<SysWorkTime>().eq(SysWorkTime::getOrgId, orgId).ge(SysWorkTime::getYmdDate, effectiveDate).eq(SysWorkTime::getIsManual, 0));
                             batchnew(orgId, workTimeEditDtoListAll, list);
                         }
                     } else {
@@ -460,8 +463,7 @@ public class SysWorkTimeSetServiceImpl extends ServiceImpl<SysWorkTimeSetMapper,
         }, true);
 
 
-        workTimeService.remove(new LambdaQueryWrapper<SysWorkTime>().eq(SysWorkTime::getOrgId, orgId).ge(SysWorkTime::getYmdDate, workTimeList.get(0).getDate()).eq(SysWorkTime::getIsManual, 0));
-        List<SysWorkTime> exit = workTimeService.getBaseMapper().selectList(new LambdaQueryWrapper<SysWorkTime>().eq(SysWorkTime::getOrgId, orgId).ge(SysWorkTime::getYmdDate, workTimeList.get(0).getDate()).eq(SysWorkTime::getIsManual, 1));
+               List<SysWorkTime> exit = workTimeService.getBaseMapper().selectList(new LambdaQueryWrapper<SysWorkTime>().eq(SysWorkTime::getOrgId, orgId).ge(SysWorkTime::getYmdDate, workTimeList.get(0).getDate()).eq(SysWorkTime::getIsManual, 1));
         //去掉workTimeList中orgId和ymd相同的数据
         List<SysWorkTime> list1 = workTimeList.stream().filter(s -> {
             return list.stream().noneMatch(f -> f.getOrgId().equals(s.getOrgId()) && f.getYmdDate().equals(s.getYmd().getDate()));