فهرست منبع

新增演练项目字典,及修改字典排序,演练/培训生成任务时增加逻辑:特定机构类型才需要判断作息

jingyuanchao 1 سال پیش
والد
کامیت
2769540863

+ 7 - 1
project_data/sql/0.0.3/soc/soc.sql

@@ -1287,4 +1287,10 @@ INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type
 
 UPDATE sys_dict_data set dict_label='待整改' WHERE dict_type='question_reform_status' and dict_value=10;
 -- 删除多余的表
-drop TABLE if EXISTS sys_bank_physical_defense_construction;
+drop TABLE if EXISTS sys_bank_physical_defense_construction;
+-- 新增演练项目字典,及修改字典排序
+DELETE from sys_dict_data where dict_type='core_drill_type' and dict_label='防爆防恐应急预案' limit 1;
+INSERT INTO `sys_dict_data`(`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (7, '防爆防恐应急预案', '7', 'core_drill_type', NULL, 'default', 'N', '0', NULL, NOW(), NULL, NOW(), NULL);
+update sys_dict_data set dict_sort =5 where dict_type='core_drill_type' and dict_label='防爆防恐应急预案' limit 1;
+update sys_dict_data set dict_sort =6 where dict_type='core_drill_type' and dict_label='防自然灾害应急预案' limit 1;
+update sys_dict_data set dict_sort =7 where dict_type='core_drill_type' and dict_label='其它应急预案' limit 1;

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

@@ -413,7 +413,6 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         Date maxDateRange = dateRangeMap.get(dateRangeMap.size()).getEndTime();
         Date minDateRange = dateRangeMap.get(1).getStartTime();
         final List<Long> collect = orgList.stream().map(SysOrg::getId).collect(Collectors.toList());
-        Date date = new Date();
         final List<CoreDrillTask> trainingTaskList = baseMapper.selectList(new LambdaQueryWrapper<CoreDrillTask>()
                 .in(CoreDrillTask::getOrgId, collect)
                 .ge(CoreDrillTask::getStartDate, minDateRange)
@@ -421,10 +420,19 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                 .eq(CoreDrillTask::getPlanId, plan.getId())
                 .select(CoreDrillTask::getId, CoreDrillTask::getOrgId, CoreDrillTask::getStartDate, CoreDrillTask::getEndDate, CoreDrillTask::getPlanId)
         );
+        //生成任务时,只有特定类型的机构类型才需要判断作息
+        final List<Integer> orgTypeList = Arrays.asList(
+                OrgTypeEnum.YINGYE_WANGDIAN.getCode(),
+                OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode(),
+                OrgTypeEnum.ZHONGXIN_YEWUKU.getCode(),
+                OrgTypeEnum.BAOGUAN_XAINGKU.getCode(),
+                OrgTypeEnum.WANGDIAN_YEWUKU.getCode()
+        );
         for (SysOrg org : orgList) {
+            int x = 0;
             for (int i = 1; i <= plan.getExecTimes(); i++) {
                 final LocalDateTime time = DateUtils.toLocalDateTime(DateUtils.getPreciseTime(dateRangeMap.get(i).getEndTime()));
-                if (time.isBefore(LocalDateTime.now())) {
+                if (time.isBefore(LocalDateTime.now()) && orgTypeList.contains(org.getType())) {
                     //如果任务的结束时间 已经小于当前时间则没必要生成任务了,
                     //用于处理周期中生成多次任务,周期初的任务一经生成就无法执行(预期)的问题,
                     log.warn("生成任务时,任务的结束时间已经小于当前时间,本次任务跳过,任务id:{},任务执行机构id:{},任务时间范围:{}-{}", plan.getId(), org.getId(), dateRangeMap.get(i).getStartTime(), dateRangeMap.get(i).getEndTime());
@@ -436,7 +444,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                 trainingTask.setPlanId(plan.getId());
                 trainingTask.setPlanCycle(plan.getPlanCycle());
                 if (plan.getExecTimes() > 1) {
-                    trainingTask.setTitle(plan.getPlanName() + "第" + i + "次演练");
+                    x++;
+                    trainingTask.setTitle(plan.getPlanName() + "第" + x + "次演练");
                 } else {
                     trainingTask.setTitle(plan.getPlanName());
                 }
@@ -485,7 +494,6 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         }*/
     }
 
-
     @Override
     public List<CoreDrillTaskReportVo> selectCoreDrillTaskReport(CoreDrillTaskReportDto request) {
         CoreDrillPlan plan = coreDrillPlanMapper.selectById(request.getPlanId());

+ 13 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingTaskServiceImpl.java

@@ -29,6 +29,7 @@ import com.xunmei.common.core.domain.registerbook.domain.CoreRegisterBookPdf;
 import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 import com.xunmei.common.core.domain.worktime.dto.WorkTimeDto;
 import com.xunmei.common.core.enums.CycleCommonEnum;
+import com.xunmei.common.core.enums.OrgTypeEnum;
 import com.xunmei.common.core.enums.RegisterBookType;
 import com.xunmei.common.core.enums.edu.EduTrainingDoStatus;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
@@ -478,10 +479,19 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
                 .eq(CoreEduTrainingTask::getPlanId, plan.getId())
                 .select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStartDate, CoreEduTrainingTask::getEndDate, CoreEduTrainingTask::getPlanId)
         );
+        //生成任务时,只有特定类型的机构类型才需要判断作息
+        final List<Integer> orgTypeList = Arrays.asList(
+                OrgTypeEnum.YINGYE_WANGDIAN.getCode(),
+                OrgTypeEnum.LIHANG_ZIZHU_YINGHANG.getCode(),
+                OrgTypeEnum.ZHONGXIN_YEWUKU.getCode(),
+                OrgTypeEnum.BAOGUAN_XAINGKU.getCode(),
+                OrgTypeEnum.WANGDIAN_YEWUKU.getCode()
+        );
         for (SysOrg org : orgList) {
+            int x = 0;
             for (int i = 1; i <= plan.getExecTimes(); i++) {
                 final LocalDateTime time = DateUtils.toLocalDateTime(DateUtils.getPreciseTime(dateRangeMap.get(i).getEndTime()));
-                if (time.isBefore(LocalDateTime.now())) {
+                if (time.isBefore(LocalDateTime.now()) || orgTypeList.contains(org.getType())) {
                     //如果任务的结束时间 已经小于当前时间则没必要生成任务了,
                     //用于处理周期中生成多次任务,周期初的任务一经生成就无法执行(预期)的问题,
                     log.warn("生成任务时,任务的结束时间已经小于当前时间,本次任务跳过,任务id:{},任务执行机构id:{},任务时间范围:{}-{}", plan.getId(), org.getId(), dateRangeMap.get(i).getStartTime(), dateRangeMap.get(i).getEndTime());
@@ -498,7 +508,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
                 trainingTask.setEndDate(DateUtils.getPreciseTime(dateRange.getEndTime()));
                 trainingTask.setContent(null);
                 if (plan.getExecTimes() > 1) {
-                    trainingTask.setTitle(plan.getPlanName() + "第" + i + "次培训");
+                    x++;
+                    trainingTask.setTitle(plan.getPlanName() + "第" + x + "次培训");
                 } else {
                     trainingTask.setTitle(plan.getPlanName());
                 }