Prechádzať zdrojové kódy

定时任务 安全指数bug处理

jingyuanchao 1 rok pred
rodič
commit
434412b461

+ 5 - 0
project_data/sql/0.0.5/quartz/quartz.sql

@@ -6,3 +6,8 @@ UPDATE sys_job set `status`=0 WHERE job_name='调阅监控每日每周任务补
 -- 预案演练逾期任务状态修改定时任务
 DELETE from sys_job where invoke_target='CoreDrillTask.updateDrillTaskStatus()';
 INSERT INTO `sys_job`(`job_name`, `job_group`, `invoke_target`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `create_by`, `create_time`, `update_by`, `update_time`) VALUES ( '预案演练逾期任务状态修改', 'DEFAULT', 'CoreDrillTask.updateDrillTaskStatus()', '0 0 1 * * ?', '1', '1', '0', 'slsjyc', '2023-10-19 08:56:30', '', NULL);
+
+
+-- 修改安全指数定时任务cron(每月一号凌晨一点与每月一号凌晨二点)
+UPDATE  `sys_job` set cron_expression='0 0 1 1 * ?' where invoke_target like 'CoreSafetyIndexTask.collectExceptionData%';
+UPDATE  `sys_job` set cron_expression='0 0 2 1 * ?' where invoke_target like 'CoreSafetyIndexTask.calculateSafetyIndex%';

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

@@ -167,7 +167,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
 
         DateTime time = DateUtil.parse(date, "yyyy-MM");
         int year = time.year();
-        int month = time.month()+1;
+        int month = time.month() + 1;
         //获取指标配置
         List<SafeIndexRuleCountVo> safeIndexConfigVoList = ruleService.findSafeIndexRuleVoList();
         //履职的指标配置
@@ -223,7 +223,7 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
         Map<Long, List<CoreSafeMonthScore>> monthScoreMap = monthScores.stream().collect(Collectors.groupingBy(CoreSafeMonthScore::getOrgId));
         //遍历safeSourceDataMap
         //for (Long key : safetyDeDuctDataMap.keySet()) {
-        for(Map.Entry<Long, List<CoreSafetyDeductData>>smap:safetyDeDuctDataMap.entrySet()){
+        for (Map.Entry<Long, List<CoreSafetyDeductData>> smap : safetyDeDuctDataMap.entrySet()) {
             CoreSafeMonthScore monthScore = null;
             List<CoreSafeMonthScore> monthScoreOneList = monthScoreMap.get(smap.getKey());
             List<CoreSafetyDeductData> listOneList = smap.getValue();//safetyDeDuctDataMap.get(key);
@@ -440,6 +440,9 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
     }
 
     private void extracted(List<SafeIndexRuleCountVo> questionIndexList, int year, int month, Long orgId, int dataSize, List<CoreSafetySourceData> sourceDataList) {
+        if (ObjectUtil.isEmpty(questionIndexList)) {
+            return;
+        }
         SafeIndexRuleCountVo indexConfigCountVo = questionIndexList.get(0);
         double deductScore = dataSize * indexConfigCountVo.getItemValue();
         //计算未确认的数据累计数
@@ -747,10 +750,8 @@ 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());
-
-        return parse;
+        final DateTime time = DateUtil.parse(date);
+        return DateUtil.offsetMonth(time, -1);
     }
 
     /**
@@ -809,8 +810,14 @@ public class CoreSafetyExceptionDataServiceImpl extends ServiceImpl<CoreSafetyEx
     public void reCalculate(CoreSafetyIndexReCalculateDto request) {
         List<SysOrg> orgList = orgService.selectOrgByPath(request.getOrgId());
 
+        final Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.YEAR, request.getYear());
+        calendar.set(Calendar.MONTH, request.getMonth());
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        final Date date = calendar.getTime();
+
         //List<SysOrg> sysOrgList = orgService.selectSysOrgByParentId(request.getOrgId(), SecurityConstants.INNER);
-        DateTime time = DateUtil.offsetMonth(new Date(), -1);
+        DateTime time = DateUtil.offsetMonth(date, -1);
         DateTime startTime = DateUtil.beginOfMonth(time);
         DateTime endTime = DateUtil.endOfMonth(startTime);
         request.setQuarter(startTime.quarter());

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

@@ -486,13 +486,13 @@
 
         SELECT a.id as dataId,
         a.org_id as orgId,
-        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
+        a.submit_time as dataTime,
+        now() as createTime,
+        a.src_task_id as extraField1,
+        a.confirm_status as extraField2
         FROM core_question a
         where submit_time >= #{startTime}
         and submit_time <![CDATA[<=]]> #{endTime}