jingyuanchao 2 жил өмнө
parent
commit
c7028a898f

+ 53 - 6
project_data/sql/0.0.3/soc/soc.sql

@@ -447,18 +447,54 @@ DROP PROCEDURE IF EXISTS schema_change ??
         alter table core_safe_month_score
             add org_name varchar(125) null comment '机构名称' after org_id;
     END IF;
-    -- 调阅计划加所属机构
+
+    -- 安全指数机构扣分细项表增加机构名称字段
     IF NOT EXISTS(SELECT *
                   FROM information_schema.columns
                   WHERE table_schema = DATABASE()
-                    AND table_name = 'core_monitoring_retrieval_plan'
-                    AND column_name = 'organization') THEN
-    alter table core_monitoring_retrieval_plan
-    add organization varchar(255) DEFAULT NULL COMMENT '所属机构';
+                    AND table_name = 'core_safety_source_data'
+                    AND column_name = 'org_name') THEN
+
+        alter table core_safety_source_data
+            add org_name varchar(225) null comment '机构名称' after org_id;
+
+        alter table core_safety_source_data
+            add org_path varchar(225) null comment '机构path' after org_name;
+
     END IF;
 
-    -- 安全指数机构分数表增加机构名称字段
+    -- 安全指数扣分表增加机构名称字段
+    IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'core_safety_deduct_data'
+                    AND column_name = 'org_name') THEN
+
+        alter table core_safety_deduct_data
+            add org_name varchar(225) null comment '机构名称' after org_id;
+
+        alter table core_safety_deduct_data
+            add org_path varchar(225) null comment '机构path' after org_name;
+
+    END IF;
+
+    -- 安全指数异常数据表增加机构名称字段
     IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'core_safety_exception_data'
+                    AND column_name = 'org_name') THEN
+
+        alter table core_safety_exception_data
+            add org_name varchar(225) null comment '机构名称' after org_id;
+
+        alter table core_safety_exception_data
+            add org_path varchar(225) null comment '机构path' after org_name;
+
+    END IF;
+
+    -- 安全指数机构分数表增加索引
+    IF EXISTS(SELECT *
                   FROM information_schema.STATISTICS
                   WHERE table_schema = DATABASE()
                     AND table_name = 'core_safe_month_score'
@@ -470,6 +506,17 @@ DROP PROCEDURE IF EXISTS schema_change ??
     END IF;
 
 
+    -- 调阅计划加所属机构
+    IF NOT EXISTS(SELECT *
+                  FROM information_schema.columns
+                  WHERE table_schema = DATABASE()
+                    AND table_name = 'core_monitoring_retrieval_plan'
+                    AND column_name = 'organization') THEN
+    alter table core_monitoring_retrieval_plan
+    add organization varchar(255) DEFAULT NULL COMMENT '所属机构';
+    END IF;
+
+
     END ??
 DELIMITER;
 CALL schema_change ();

+ 9 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/safetyindex/domain/CoreSafetyDeductData.java

@@ -35,6 +35,15 @@ public class CoreSafetyDeductData{
     @ApiModelProperty(value = "机构id")
     private Long orgId;
 
+    @TableField(value = "org_name")
+    @ApiModelProperty(value = "机构id")
+    private String orgName;
+
+    @TableField(value = "org_path")
+    @ApiModelProperty(value = "机构path")
+    private String orgPath;
+
+
     @TableField(value  = "data_year")
     @ApiModelProperty(value = "数据所在年")
     private Integer dataYear;

+ 8 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/safetyindex/domain/CoreSafetyExceptionData.java

@@ -39,6 +39,14 @@ public class CoreSafetyExceptionData{
     @ApiModelProperty(value = "机构id")
     private Long orgId;
 
+    @TableField(value = "org_name")
+    @ApiModelProperty(value = "机构id")
+    private String orgName;
+
+    @TableField(value = "org_path")
+    @ApiModelProperty(value = "机构path")
+    private String orgPath;
+
     @TableField(value = "data_time")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @ApiModelProperty(value = "数据产生日期")

+ 4 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/safetyindex/domain/CoreSafetySourceData.java

@@ -45,6 +45,10 @@ public class CoreSafetySourceData extends BaseEntity {
     @ApiModelProperty(value = "机构id")
     private String orgName;
 
+    @TableField(value = "org_path")
+    @ApiModelProperty(value = "机构id")
+    private String orgPath;
+
     @TableField(value = "data_year")
     @ApiModelProperty(value = "数据所在年")
     private Integer dataYear;

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

@@ -25,6 +25,7 @@ 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 io.netty.util.internal.StringUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
@@ -89,6 +90,9 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
     @Autowired
     @Qualifier(ThreadPoolConfig.SOC_EXECUTOR)
     private ThreadPoolTaskExecutor threadPoolTaskExecutor;
+
+    public static final List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void countExceptionData(String date) {
@@ -100,17 +104,17 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         CompletableFuture.runAsync(() -> {
             //获取安保履职的数据
             doResumptionExceptionData(time);
-        },threadPoolTaskExecutor);
+        }, threadPoolTaskExecutor);
 
         CompletableFuture.runAsync(() -> {
             //获取问题整改的异常数据
             doQuestionExceptionData(null, time);
-        },threadPoolTaskExecutor);
+        }, threadPoolTaskExecutor);
 
         CompletableFuture.runAsync(() -> {
             //获取监控调阅的异常数据
             doMonitorExceptionData(time);
-        },threadPoolTaskExecutor);
+        }, threadPoolTaskExecutor);
     }
 
 
@@ -143,7 +147,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         //删除已有的计算数据
         deleteOldData(year, month, null);
 
-        List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+        // List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
         //计算安保履职
         calculateResumptionData(resumptionIndexList, resumptionExceptionDataList, year, month, orgList);
 
@@ -184,17 +188,17 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         //删除已有的计算数据
         deleteOldData(year, month, orgIds);
 
-        List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+        // List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
 
-        orgList = orgList.stream().filter(org -> orgIds.contains(org.getId())).collect(Collectors.toList());
+        List<SysOrgVO> orgListData = orgList.stream().filter(org -> orgIds.contains(org.getId())).collect(Collectors.toList());
         //计算安保履职
-        calculateResumptionData(resumptionIndexList, resumptionExceptionDataList, year, month, orgList);
+        calculateResumptionData(resumptionIndexList, resumptionExceptionDataList, year, month, orgListData);
 
         //计算问题整改
-        calculateQuestionData(questionIndexList, questionExceptionDataList, year, month, orgList);
+        calculateQuestionData(questionIndexList, questionExceptionDataList, year, month, orgListData);
 
         //计算监控调阅
-        calculateMonitoringData(monitoringIndexList, monitoringExceptionDataList, year, month, orgList);
+        calculateMonitoringData(monitoringIndexList, monitoringExceptionDataList, year, month, orgListData);
 
 
         reCalculateAll(year, month, orgIds);
@@ -256,7 +260,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         List<CoreSafetyDeductData> list = safetyDeductDataService.list(new LambdaQueryWrapper<CoreSafetyDeductData>()
                 .eq(CoreSafetyDeductData::getDataYear, year)
                 .eq(CoreSafetyDeductData::getDataMonth, month));
-        List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
+        //List<SysOrgVO> orgList = RedisUtils.getCacheList(CacheConstants.ORG_CACHE_LIST_KEY);
         List<SysOrgVO> orgLista = orgList.stream()
                 .filter(r -> ObjectUtil.isNotEmpty(r.getType()))
                 .filter(r -> ObjectUtil.equal(OrgTypeEnum.YINGYE_WANGDIAN.getCode(), r.getType()))
@@ -369,18 +373,17 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
                 //如果两个元素下标相减等于1,说明两个元素相邻,也就是连续逾期未登
                 if (nextDataIndex - curDataIndex == 1) {
                     continuousNum++;
-                    continue;
-                }
-                if (continuousNum >= indicatorDays) {
-                    //说明已经达到了连续数的要求
-                    double deductScore = continuousNum * monitoringContinuousNum.getItemValue();
-                    //计算连续数
-                    CoreSafetySourceData safeSourceData = doNewSafetySourceData(monitoringContinuousNum, orgId, deductScore, year, month, continuousNum);
-                    sourceDataList.add(safeSourceData);
-                    continuousNum = 1;
-                    usedConfigList.add(monitoringContinuousNum);
-                    break;
+                    if (continuousNum >= indicatorDays) {
+                        //说明已经达到了连续数的要求
+                        double deductScore = continuousNum * monitoringContinuousNum.getItemValue();
+                        //计算连续数
+                        CoreSafetySourceData safeSourceData = doNewSafetySourceData(monitoringContinuousNum, orgId, deductScore, year, month, continuousNum);
+                        sourceDataList.add(safeSourceData);
+                        continuousNum = 1;
+                        usedConfigList.add(monitoringContinuousNum);
+                    }
                 }
+
             }
         }
         return sourceDataList;
@@ -653,6 +656,8 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         safeSourceData.setRuleId(indexConfigCountVo.getRuleId());
         safeSourceData.setItemId(indexConfigCountVo.getItemId());
         safeSourceData.setOrgId(orgId);
+        safeSourceData.setOrgName(getOrgName(orgId));
+        safeSourceData.setOrgPath(getOrgPath(orgId));
         safeSourceData.setTimes(time);
         safeSourceData.setScore(deductScore);
         safeSourceData.setDataYear(year);
@@ -778,6 +783,8 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         safeDeductData.setId(IdWorker.getId());
         safeDeductData.setRuleId(sourceData.getRuleId());
         safeDeductData.setOrgId(sourceData.getOrgId());
+        safeDeductData.setOrgName(getOrgName(sourceData.getOrgId()));
+        safeDeductData.setOrgPath(getOrgPath(sourceData.getOrgId()));
         safeDeductData.setScore(total);
         if (total > indexConfigCountVo.getScore()) {
             safeDeductData.setScoreReal((double) indexConfigCountVo.getScore());
@@ -822,4 +829,20 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
     }
 
 
+    private String getOrgName(Long orgId){
+        Optional<SysOrgVO> optional = orgList.stream().filter(org -> ObjectUtil.equal(org.getId(), orgId)).findFirst();
+        if (optional.isPresent()){
+            return optional.get().getShortName();
+        }
+        return StringUtil.EMPTY_STRING;
+    }
+
+    private String getOrgPath(Long orgId){
+        Optional<SysOrgVO> optional = orgList.stream().filter(org -> ObjectUtil.equal(org.getId(), orgId)).findFirst();
+        if (optional.isPresent()){
+            return optional.get().getPath();
+        }
+        return StringUtil.EMPTY_STRING;
+    }
+
 }

+ 2 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/question/QuestionMapper.xml

@@ -282,6 +282,8 @@
         a.src_task_id as extraField1,
         a.confirm_status as extraField2,
         a.submit_time as dataTime,
+        a.org_name as orgName,
+        a.org_path as orgPath,
         'core_question' as dataSource,
         now() as createTime
         FROM core_question a

+ 2 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/resumption/ResumptionMapper.xml

@@ -273,6 +273,8 @@
         r.plan_id as extraField1,
         p.plan_cycle as extraField2,
         r.ymd_date as dataTime,
+        r.org_name as orgName,
+        r.org_path as orgPath,
         'core_resumption' as dataSource,
         now() as createTime
         FROM core_resumption r

+ 4 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml

@@ -687,6 +687,8 @@
         date_format(t.plan_start_time,'%Y-%m-%d') as dataTime,
         'core_monitoring_retrieval_task' as dataSource,
         now() as createTime,
+        t.org_name as orgName,
+        t.org_path as orgPath,
         t.status as extraField1,
         t.plan_id as extraField2
 
@@ -701,6 +703,8 @@
             resultType="com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData">
         SELECT t.id as dataId,
         t.org_id as orgId,
+        t.org_name as orgName,
+        t.org_path as orgPath,
         date_format(t.plan_start_time,'%Y-%m-%d') as dataTime,
         'core_monitoring_retrieval_task' as dataSource,
         now() as createTime,