Эх сурвалжийг харах

调整安全检查编辑方法为异步

luojun 2 жил өмнө
parent
commit
c5a1ef0a49

+ 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);

+ 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;
     }
 
     /**