luojun 2 лет назад
Родитель
Сommit
d09b7bb6a2

+ 12 - 0
project_data/sql/0.0.2/soc/soc.sql

@@ -1081,12 +1081,24 @@ END IF;
         ALTER TABLE `core_resumption_plan` ADD COLUMN `plan_of_org_type` INT NULL DEFAULT NULL COMMENT '所属机构类型';
 
     END IF;
+
+    -- 安全检查所属机构类型
+    IF
+        NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE () and  TABLE_NAME = 'core_safecheck_plan' AND COLUMN_NAME = 'plan_of_org_type' ) THEN
+        ALTER TABLE `core_safecheck_plan` ADD COLUMN `plan_of_org_type` INT NULL DEFAULT NULL COMMENT '计划所属机构类型';
+
+    END IF;
+
+
 	-- 履职任务NFC表增加submitby
     IF
         NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE () and TABLE_NAME = 'core_resumption_data_nfc' AND COLUMN_NAME = 'submit_by' ) THEN
         ALTER TABLE `core_resumption_data_nfc` ADD COLUMN `submit_by` bigint NULL COMMENT '提交人id' AFTER `submit_time`;
 
     END IF;
+
+
+
 	ALTER TABLE `core_protection` MODIFY COLUMN `device_id` BIGINT NULL DEFAULT NULL COMMENT '设备ID' AFTER `id`;
 -- 机构扩展添加是否业务库
 	ALTER TABLE sys_org_extend MODIFY COLUMN business_library INT COMMENT '是否业务库';

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/resumption/service/impl/AppPlanServiceImpl.java

@@ -215,7 +215,7 @@ public class AppPlanServiceImpl extends ServiceImpl<AppPlanMapper, AppPlan> impl
             baseMapper.updateById(ap);
             //撤回需要删除本周期所有任务
             DateRange dateRange = DateUtils.getStartAndEnd(new Date(), plan.getPlanCycle());
-            resumptionMapper.delete(new LambdaQueryWrapper<Resumption>().eq(Resumption::getPlanId, plan.getId()).between(Resumption::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
+            resumptionMapper.delete(new LambdaQueryWrapper<Resumption>().eq(Resumption::getPlanId, ap.getId()).between(Resumption::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
 
         }
         //设置下发状态为未下发

+ 17 - 13
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/controller/CoreSafecheckPlanController.java

@@ -116,20 +116,24 @@ public class CoreSafecheckPlanController extends BaseController {
             coreSafecheckPlanService.distributeToOrg(dto);
             //下发完成生成任务
             CoreSafecheckPlan plan = coreSafecheckPlanService.getById(dto.getId());
-            int cycle = Math.toIntExact(plan.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", plan.getStartDate());
-                map.put("end", plan.getEndDate());
-            }else{
-                map = DateHelper.getStartAndEnd(dateHelper, cycle);
+            //如果选择了立即生效或者无周期
+            if(plan.isBuildTaskNow()||plan.getPlanCycle()==6){
+                int cycle = Math.toIntExact(plan.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", plan.getStartDate());
+                    map.put("end", plan.getEndDate());
+                }else{
+                    map = DateHelper.getStartAndEnd(dateHelper, cycle);
+                }
+                jobBusiness.createTask(datetime, cycle, map.get("start"), map.get("end"));
             }
-            jobBusiness.createTask(datetime, cycle, map.get("start"), map.get("end"));
+
             return AjaxResult.success();
         } catch (Exception e) {
             e.printStackTrace();

+ 1 - 2
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/domain/CoreSafecheckPlan.java

@@ -59,8 +59,7 @@ public class CoreSafecheckPlan extends BaseEntity {
     private String planName;
     @TableField(exist = false)
     private String checkRole;
-    @TableField(exist = false)
-    private String planOfOrgType;
+    private Integer planOfOrgType;
     /**
      * 检查角色
      */

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

@@ -6,12 +6,15 @@ import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DateTime;
 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.utils.DateHelper;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
 import com.xunmei.core.resumption.domain.AppPlan;
 import com.xunmei.core.resumption.domain.AppPlanToPoint;
 import com.xunmei.core.resumption.domain.AppPlanToRole;
+import com.xunmei.core.resumption.domain.Resumption;
 import com.xunmei.core.resumption.dto.DistributeDto;
 import com.xunmei.core.resumption.dto.DistributeStatusDto;
 import com.xunmei.core.resumption.vo.appPlan.ResumptionPlanPageVo;
@@ -55,6 +58,8 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
     private CoreSafecheckPlanToPointMapper coreSafecheckPlanToPointMapper;
     @Autowired
     private SafetyCheckJobBusiness safetyCheckJobBusiness;
+    @Autowired
+    private CoreSafetyTaskMapper coreSafetyTaskMapper;
 
     @Override
     public TableDataInfo<CoreSafecheckPlan> selectPage(CoreSafecheckPlan coreSafecheckPlan) {
@@ -103,13 +108,23 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
     public void distributeToOrg(DistributeDto dto) {
         for (DistributeStatusDto d :
                 dto.getOrgAndStatus()) {
+            CoreSafecheckPlan plan = baseMapper.selectOne(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getPlanOfOrgId, d.getOrgId()).eq(CoreSafecheckPlan::getParentId, dto.getId()));
+            //如果子计划计划已存在
+            if (plan != null) {
+                plan.setPlanStatus((long) (d.getStatus() > 0 ? 1 : 2));
+                plan.setDistributePlanStatus(d.getStatus().toString());
+                plan.setDistributeStatus("1");
+                baseMapper.updateById(plan);
+            }else{
 
             CoreSafecheckPlan coreSafecheckPlan = baseMapper.selectById(dto.getId());
             coreSafecheckPlan.setDistributeStatus("1");
             coreSafecheckPlan.setPlanOfOrgId(d.getOrgId());
-            coreSafecheckPlan.setPlanStatus((long) (d.getStatus() == 0 ? 2 : 1));
+            coreSafecheckPlan.setPlanStatus((long) (d.getStatus() > 0 ? 1 : 2));
             coreSafecheckPlan.setDistributePlanStatus(d.getStatus().toString());
             coreSafecheckPlan.setCreateTime(new Date());
+            //下发所属机构类型
+            coreSafecheckPlan.setPlanOfOrgType(orgService.selectSysOrgById(coreSafecheckPlan.getPlanOfOrgId(), SecurityConstants.INNER).getType());
             coreSafecheckPlan.setId(null);
 //            if (coreSafecheckPlan.getPlanCycle()==6){
 //                coreSafecheckPlan.setStartDate();
@@ -160,11 +175,13 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
                 }
             }
         }
+        }
         //更改下发状态
         CoreSafecheckPlan coreSafecheckPlan = new CoreSafecheckPlan();
         coreSafecheckPlan.setId(dto.getId());
         coreSafecheckPlan.setDistribute("1");
         coreSafecheckPlan.setPlanStatus(1L);
+        coreSafecheckPlan.setBuildTaskNow(coreSafecheckPlanMapper.selectById(dto.getId()).isBuildTaskNow());
         coreSafecheckPlanMapper.updateById(coreSafecheckPlan);
     }
 
@@ -178,11 +195,20 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
 //修改计划状态为停用
             ap.setPlanStatus(2L);
             baseMapper.updateById(ap);
+
+            //撤回需要删除本周期所有任务
+            DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
+            coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, ap.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
+
         }
         //设置下发状态为未下发
         plan.setDistribute("0");
-        plan.setPlanStatus(0L);
+        plan.setPlanStatus(2L);
         baseMapper.updateById(plan);
+        //撤回需要删除本周期所有任务
+        DateRange dateRange = DateUtils.getStartAndEnd(new Date(), Math.toIntExact(plan.getPlanCycle()));
+        coreSafetyTaskMapper.delete(new LambdaQueryWrapper<CoreSafetyTask>().eq(CoreSafetyTask::getPlanId, plan.getId()).between(CoreSafetyTask::getYmdDate, dateRange.getStartTime(), dateRange.getEndTime()));
+
     }
 
     @Override
@@ -191,7 +217,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
         //修改所有子计划
         List<CoreSafecheckPlan> appPlans = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, id));
         //如果不存在子计划直接返回
-        if(appPlans==null||appPlans.size()==0){
+        if (appPlans == null || appPlans.size() == 0) {
             return 0;
         }
         for (CoreSafecheckPlan ap :
@@ -238,7 +264,7 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
      */
     @Override
     public void insertCoreSafecheckPlan(CoreSafecheckPlan coreSafecheckPlan) {
-        if(coreSafecheckPlan.getRulePointList().size()==0){
+        if (coreSafecheckPlan.getRulePointList().size() == 0) {
             throw new RuntimeException("未选择检查项!");
         }
 
@@ -250,6 +276,8 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             coreSafecheckPlan.setCreateTime(DateUtils.getNowDate());
             coreSafecheckPlan.setModifiedBy(SecurityUtils.getUserId());
             coreSafecheckPlan.setDistribute("0");
+            //计划所属机构类型
+            coreSafecheckPlan.setPlanOfOrgType(orgService.selectSysOrgById(coreSafecheckPlan.getPlanOfOrgId(), SecurityConstants.INNER).getType());
             coreSafecheckPlanMapper.insert(coreSafecheckPlan);
 
         } else {
@@ -297,21 +325,21 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
             }
         }
 
-        //如果是新增计划并且勾选立即执行
-        if (pid==null&&coreSafecheckPlan.isBuildTaskNow()) {
+        //如果是新增计划并且勾选立即执行并且是行社或者无周期,立即生成计划
+        if (pid == null && coreSafecheckPlan.isBuildTaskNow() && (coreSafecheckPlan.getPlanOfOrgType() == 3 || coreSafecheckPlan.getPlanCycle() == 6)) {
             DateTime datetime = new DateTime();
             datetime.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
             DateHelper dateHelper = new DateHelper(datetime);
             int cycle = Math.toIntExact(coreSafecheckPlan.getPlanCycle());
 //        SCHEDULEDTASKSLOG.info("开始生成每周常规安全检查任务!");
             try {
-                Map<String, Date> map=null;
+                Map<String, Date> map = null;
                 //如果无周期
-                if(cycle==6){
+                if (cycle == 6) {
                     map = DateHelper.getStartAndEnd(dateHelper, null);
                     map.put("start", coreSafecheckPlan.getStartDate());
                     map.put("end", coreSafecheckPlan.getEndDate());
-                }else{
+                } else {
                     map = DateHelper.getStartAndEnd(dateHelper, cycle);
                 }
 
@@ -320,72 +348,72 @@ public class CoreSafecheckPlanServiceImpl extends ServiceImpl<CoreSafecheckPlanM
                 throw new RuntimeException("生成常规安全检查任务失败!");
             }
         }
-
-
-        //处理子计划
-        //拿到所有子计划
-        List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, coreSafecheckPlan.getId()));
-        coreSafecheckPlan = baseMapper.selectById(coreSafecheckPlan.getId());
-        for (CoreSafecheckPlan p :
-                children) {
-            p.setPlanName(coreSafecheckPlan.getPlanName());
-            p.setBuildTaskNow(coreSafecheckPlan.isBuildTaskNow());
-            p.setCheckOrgType(coreSafecheckPlan.getCheckOrgType());
-            p.setCheckType(coreSafecheckPlan.getCheckType());
-            p.setCount(coreSafecheckPlan.getCount());
-            p.setDescription(coreSafecheckPlan.getDescription());
-            p.setExecOrgType(coreSafecheckPlan.getExecOrgType());
-            p.setPlanCycle(coreSafecheckPlan.getPlanCycle());
-            p.setPlanStatus(coreSafecheckPlan.getPlanStatus());
-            p.setSourceType(coreSafecheckPlan.getSourceType());
-            baseMapper.updateById(p);
-
-
-            //拿到父计划的所有角色映射
-            List<CoreSafecheckPlanToRole> roleList = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>().eq(CoreSafecheckPlanToRole::getPlanId, coreSafecheckPlan.getId()));
-            //再处理角色关系
-            if (roleList != null) {
-                //删除子计划原角色映射
-                coreSafecheckPlanToRoleMapper.deleteCoreSafecheckPlanToRoleByPlanId(p.getId());
-                for (CoreSafecheckPlanToRole r :
-                        roleList) {
-                    //添加来自父计划的角色映射
-                    coreSafecheckPlanToRoleMapper.insert(new CoreSafecheckPlanToRole(p.getId(), r.getRoleId()));
-
+//如果编辑需要处理子计划
+        if (pid == null) {
+            //处理子计划
+            //拿到所有子计划
+            List<CoreSafecheckPlan> children = baseMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlan>().eq(CoreSafecheckPlan::getParentId, coreSafecheckPlan.getId()));
+            coreSafecheckPlan = baseMapper.selectById(coreSafecheckPlan.getId());
+            for (CoreSafecheckPlan p :
+                    children) {
+                p.setPlanName(coreSafecheckPlan.getPlanName());
+                p.setBuildTaskNow(coreSafecheckPlan.isBuildTaskNow());
+                p.setCheckOrgType(coreSafecheckPlan.getCheckOrgType());
+                p.setCheckType(coreSafecheckPlan.getCheckType());
+                p.setCount(coreSafecheckPlan.getCount());
+                p.setDescription(coreSafecheckPlan.getDescription());
+                p.setExecOrgType(coreSafecheckPlan.getExecOrgType());
+                p.setPlanCycle(coreSafecheckPlan.getPlanCycle());
+                p.setPlanStatus(coreSafecheckPlan.getPlanStatus());
+                p.setSourceType(coreSafecheckPlan.getSourceType());
+                baseMapper.updateById(p);
+
+
+                //拿到父计划的所有角色映射
+                List<CoreSafecheckPlanToRole> roleList = coreSafecheckPlanToRoleMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToRole>().eq(CoreSafecheckPlanToRole::getPlanId, coreSafecheckPlan.getId()));
+                //再处理角色关系
+                if (roleList != null) {
+                    //删除子计划原角色映射
+                    coreSafecheckPlanToRoleMapper.deleteCoreSafecheckPlanToRoleByPlanId(p.getId());
+                    for (CoreSafecheckPlanToRole r :
+                            roleList) {
+                        //添加来自父计划的角色映射
+                        coreSafecheckPlanToRoleMapper.insert(new CoreSafecheckPlanToRole(p.getId(), r.getRoleId()));
+
+                    }
                 }
-            }
-            //再处理检查机构关系
-            List<CoreSafecheckPlanToExecOrg> execOrgList = coreSafecheckPlanToExecOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToExecOrg>().eq(CoreSafecheckPlanToExecOrg::getPlanId, coreSafecheckPlan.getId()));
-            if (execOrgList != null) {
-                coreSafecheckPlanToExecOrgMapper.deleteCoreSafecheckPlanToExecOrgByPlanId(p.getId());
-                for (CoreSafecheckPlanToExecOrg org :
-                        execOrgList) {
-                    coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(p.getId(), org.getOrgId()));
-
+                //再处理检查机构关系
+                List<CoreSafecheckPlanToExecOrg> execOrgList = coreSafecheckPlanToExecOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToExecOrg>().eq(CoreSafecheckPlanToExecOrg::getPlanId, coreSafecheckPlan.getId()));
+                if (execOrgList != null) {
+                    coreSafecheckPlanToExecOrgMapper.deleteCoreSafecheckPlanToExecOrgByPlanId(p.getId());
+                    for (CoreSafecheckPlanToExecOrg org :
+                            execOrgList) {
+                        coreSafecheckPlanToExecOrgMapper.insert(new CoreSafecheckPlanToExecOrg(p.getId(), org.getOrgId()));
+
+                    }
                 }
-            }
-            //再处理受检机构关系
-            List<CoreSafecheckPlanToCheckOrg> checkOrgList = coreSafecheckPlanToCheckOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrg>().eq(CoreSafecheckPlanToCheckOrg::getPlanId, coreSafecheckPlan.getId()));
-            if (checkOrgList != null) {
-                coreSafecheckPlanToCheckOrgMapper.deleteCoreSafecheckPlanToCheckOrgByPlanId(p.getId());
-                for (CoreSafecheckPlanToCheckOrg org :
-                        checkOrgList) {
-                    coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(p.getId(), org.getOrgId()));
-
+                //再处理受检机构关系
+                List<CoreSafecheckPlanToCheckOrg> checkOrgList = coreSafecheckPlanToCheckOrgMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToCheckOrg>().eq(CoreSafecheckPlanToCheckOrg::getPlanId, coreSafecheckPlan.getId()));
+                if (checkOrgList != null) {
+                    coreSafecheckPlanToCheckOrgMapper.deleteCoreSafecheckPlanToCheckOrgByPlanId(p.getId());
+                    for (CoreSafecheckPlanToCheckOrg org :
+                            checkOrgList) {
+                        coreSafecheckPlanToCheckOrgMapper.insert(new CoreSafecheckPlanToCheckOrg(p.getId(), org.getOrgId()));
+
+                    }
                 }
-            }
-            //再处理检查要点关系
-            List<CoreSafecheckPlanToPoint> rpList = coreSafecheckPlanToPointMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, coreSafecheckPlan.getId()));
-            if (rpList != null) {
-                coreSafecheckPlanToPointMapper.deleteCoreSafecheckPlanToPointByPlanId(p.getId());
-                for (CoreSafecheckPlanToPoint s :
-                        rpList) {
-                    coreSafecheckPlanToPointMapper.insert(new CoreSafecheckPlanToPoint(p.getId(), s.getPointId(), s.isPointScan(), s.isRequired()));
-
+                //再处理检查要点关系
+                List<CoreSafecheckPlanToPoint> rpList = coreSafecheckPlanToPointMapper.selectList(new LambdaQueryWrapper<CoreSafecheckPlanToPoint>().eq(CoreSafecheckPlanToPoint::getPlanId, coreSafecheckPlan.getId()));
+                if (rpList != null) {
+                    coreSafecheckPlanToPointMapper.deleteCoreSafecheckPlanToPointByPlanId(p.getId());
+                    for (CoreSafecheckPlanToPoint s :
+                            rpList) {
+                        coreSafecheckPlanToPointMapper.insert(new CoreSafecheckPlanToPoint(p.getId(), s.getPointId(), s.isPointScan(), s.isRequired()));
+
+                    }
                 }
             }
         }
-
     }
 
     /**