瀏覽代碼

更换安全检查周期获取

luojun 1 年之前
父節點
當前提交
551353ced0

+ 23 - 29
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java

@@ -9,9 +9,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
 import com.xunmei.common.core.enums.CycleCommonEnum;
 import com.xunmei.common.core.utils.DateHelper;
+import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.IDHelper;
 import com.xunmei.core.TaskCreatingServiceImplBase;
 import com.xunmei.core.resumption.domain.Resumption;
@@ -69,12 +71,14 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
 
         CoreSafecheckPlan checkPlan = planMapper.selectById(planId);
         Integer planCycle = Math.toIntExact(checkPlan.getPlanCycle());
-
+        CycleCommonEnum code = CycleCommonEnum.getEnum(0);
+        if(checkPlan.getPlanCycle()!=6L){
+            code=CycleCommonEnum.getEnum( Math.toIntExact(checkPlan.getPlanCycle())+2);
+        }
         if (!planCycle.equals(6)) {
-            DateHelper dateHelper = new DateHelper(datetime);
-            Map<String, Date> map = DateHelper.getStartAndEnd(dateHelper, planCycle);
-            start = map.get("start");
-            end = map.get("end");
+            DateRange map = DateUtils.getStartAndEnd(new Date(), code);
+            start = map.getStartTime();
+            end = map.getEndTime();
         }
         createTaskForCycle(datetime, start, end, checkPlan, isNeedSendTodo, sourceType);
     }
@@ -168,19 +172,13 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
     @Async
     public void createTaskByPlans(List<CoreSafecheckPlan> plans) throws Exception {
         if (plans != null && plans.size() > 0) {
-            int cycle = Math.toIntExact(plans.get(0).getPlanCycle());
             DateTime datetime = new DateTime();
             datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-            DateHelper dateHelper = new DateHelper(datetime);
-            Map<String, Date> map = null;
-            //如果无周期
-            if (cycle == 6) {
-                map = DateHelper.getStartAndEnd(dateHelper, null);
-                map.put("start", plans.get(0).getStartDate());
-                map.put("end", plans.get(0).getEndDate());
-            } else {
-                map = DateHelper.getStartAndEnd(dateHelper, cycle);
+            CycleCommonEnum code = CycleCommonEnum.getEnum(0);
+            if(plans.get(0).getPlanCycle()!=6L){
+                code=CycleCommonEnum.getEnum( Math.toIntExact(plans.get(0).getPlanCycle())+2);
             }
+            DateRange dateRange = DateUtils.getStartAndEnd(new Date(), code);
             List<PlanTaskBuildVo> tasks = new ArrayList<>();
             for (CoreSafecheckPlan plan : plans) {
                 List<PlanTaskBuildVo> planTask = createPlanTask(plan);
@@ -188,7 +186,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             }
 
             //生成具体任务
-            buildTask(datetime, tasks, map.get("start"), map.get("end"), true, 0);
+            buildTask(datetime, tasks, dateRange.getStartTime(), dateRange.getEndTime(), true, 0);
         }
 
     }
@@ -381,23 +379,19 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             //生成当前周期的起止时间
             DateTime datetime = new DateTime();
             datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
-            DateHelper dateHelper = new DateHelper(datetime);
-            int cy = Math.toIntExact(plan.getPlanCycle());
-            Map<String, Date> map = new HashMap<>();
-            if (cy == 6) {
-                map.put("start", plan.getStartDate());
-                map.put("end", plan.getEndDate());
-            } else {
-                map = DateHelper.getStartAndEnd(dateHelper, cy);
+            CycleCommonEnum code = CycleCommonEnum.getEnum(0);
+            if(plan.getPlanCycle()!=6L){
+                code=CycleCommonEnum.getEnum( Math.toIntExact(plan.getPlanCycle())+2);
             }
+            DateRange dateRange = DateUtils.getStartAndEnd(new Date(), code);
 
             //获取当前受检机构当前周期营业中的作息
-            List<SysWorkTime> workTimes = getWorkTime(map.get("start"), map.get("end"), org.getId());
+            List<SysWorkTime> workTimes = getWorkTime(dateRange.getStartTime(), dateRange.getEndTime(), org.getId());
             //配合履职次数为short类型
             short coun = Short.parseShort(plan.getCount().toString());
             //划分时间
             Map<Short, StartEndTime> rangeMap = splitTaskTime(coun, CycleCommonEnum.getEnum(cycleCode),
-                    map.get("start"), map.get("end"), workTimes);
+                    dateRange.getStartTime(),  dateRange.getEndTime(), workTimes);
             for (short i = 1; i <= coun; i++) {
                 //如果不存在当前次数的时间划分结果
                 if (!rangeMap.containsKey(i)) {
@@ -515,8 +509,8 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
                 hashMap.put(checkTask.getCheckOrgId(), batchId);
             }
             checkTask.setBatchId(batchId);
-            //变更,如果当前机构当前YmdDate已存在已完成或者已逾期的任务则跳过,否则删除
-            List<CoreSafetyTask> coreSafetyTasks = checkTaskService.list(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getOrgId, checkTask.getOrgId()).eq(CoreSafetyTask::getYmdDate, checkTask.getYmdDate()).in(CoreSafetyTask::getStatus, 3, 4));
+            //变更,如果当前计划当前机构当前YmdDate已存在已完成或者已逾期的任务则跳过,否则删除
+            List<CoreSafetyTask> coreSafetyTasks = checkTaskService.list(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getOrgId, checkTask.getOrgId()).eq(CoreSafetyTask::getYmdDate, checkTask.getYmdDate()).eq(CoreSafetyTask::getPlanId,checkTask.getPlanId()).in(CoreSafetyTask::getStatus, 3, 4));
             if (coreSafetyTasks.size() > 0) {
                 //如果存在同批次的已完成或者已逾期的任务需要同步批次id
                 checkTask.setBatchId(coreSafetyTasks.get(0).getBatchId());
@@ -558,7 +552,7 @@ public class SafetyCheckJobBusiness extends TaskCreatingServiceImplBase<CoreSafe
             plans = new ArrayList<>();
             CoreSafecheckPlan coreSafecheckPlan = planMapper.selectById(safetyTaskBuildDto.getPlanId());
             plans.add(coreSafecheckPlan);
-            map = DateHelper.getStartAndEnd(safetyTaskBuildDto.getDate(), Math.toIntExact(coreSafecheckPlan.getPlanCycle()));
+            map = DateHelper.getStartAndEnd(safetyTaskBuildDto.getDate(), Math.toIntExact(coreSafecheckPlan.getPlanCycle())+2);
         } else {
             LambdaUpdateWrapper<CoreSafecheckPlan> qw = new LambdaUpdateWrapper<>();
             qw.eq(CoreSafecheckPlan::getPlanCycle, safetyTaskBuildDto.getPlanCycle());

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

@@ -8,6 +8,7 @@ import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
+import com.xunmei.common.core.enums.CycleCommonEnum;
 import com.xunmei.common.core.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
@@ -203,8 +204,14 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             ap.setPlanStatus(2L);
             baseMapper.updateById(ap);
 
+            CycleCommonEnum code = CycleCommonEnum.getEnum(0);
+            if(plan.getPlanCycle()!=6L){
+                code=CycleCommonEnum.getEnum( Math.toIntExact(plan.getPlanCycle())+2);
+            }
             //撤回需要删除本周期所有任务
-            DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
+            DateRange dateRange = DateUtils.getStartAndEnd(new Date(), code);
+
+
             if (plan.getPlanCycle() == 6L) {
                 coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
             } else {
@@ -215,8 +222,13 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         plan.setDistribute("0");
         plan.setPlanStatus(2L);
         baseMapper.updateById(plan);
+
+        CycleCommonEnum code = CycleCommonEnum.getEnum(0);
+        if(plan.getPlanCycle()!=6L){
+            code=CycleCommonEnum.getEnum( Math.toIntExact(plan.getPlanCycle())+2);
+        }
         //撤回需要删除本周期所有任务
-        DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
+        DateRange dateRange = DateUtils.getStartAndEnd(new Date(), code);
         if (plan.getPlanCycle() == 6L) {
             coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
         } else {