Forráskód Böngészése

Merge branch 'V0.0.2' of http://10.87.10.227:4000/jzyd_yyds/soc into V0.0.2

jiawuxian 2 éve
szülő
commit
3bf24d90e0

+ 7 - 6
project_data/sql/0.0.2/soc/soc.sql

@@ -1096,8 +1096,8 @@ END IF;
 
     -- 安全检查检查项所属机构id
     IF
-        NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE () and  TABLE_NAME = 'core_resumption_plan_to_point' AND COLUMN_NAME = 'of_org_id' ) THEN
-        ALTER TABLE `core_resumption_plan_to_point` ADD COLUMN `of_org_id` INT NULL DEFAULT NULL COMMENT '所属机构id';
+        NOT EXISTS ( SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = DATABASE () and  TABLE_NAME = 'core_safecheck_plan_to_point' AND COLUMN_NAME = 'of_org_id' ) THEN
+        ALTER TABLE `core_safecheck_plan_to_point` ADD COLUMN `of_org_id` bigint NULL COMMENT '所属机构id';
 
     END IF;
 
@@ -1275,10 +1275,11 @@ delete from sys_dict_type where dict_type='drill_task_status';
 delete from sys_dict_data where dict_type='drill_task_status';
 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, update_by, update_time, remark) VALUES ('预案演练任务状态', 'drill_task_status', '0', '超级管理员', '2023-09-20 16:06:14', '', null, null);
 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 (0, '待演练', '0', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:06:46', '', null, null);
-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 (1, '待签名', '1', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:06:56', '', null, null);
-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 (2, '待评价', '2', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:07:05', '超级管理员', '2023-09-20 16:07:30', null);
-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 (3, '已完成', '3', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:07:13', '', null, null);
-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 (4, '已逾期', '4', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:07:23', '', null, null);
+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 (2, '待签名', '1', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:06:56', '', null, null);
+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 (3, '待评价', '2', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:07:05', '超级管理员', '2023-09-20 16:07:30', null);
+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 (4, '已完成', '3', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:07:13', '', null, null);
+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 (5, '已逾期', '4', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:07:23', '', null, null);
+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 (1, '待提交', '5', 'drill_task_status', null, 'default', 'N', '0', '超级管理员', '2023-09-20 16:07:23', '', null, null);
 
 
 -- 公告通知start

+ 6 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/panel/vo/PanelListVo.java

@@ -33,6 +33,12 @@ public class PanelListVo {
     @ApiModelProperty(value = "任务状态")
     private int status;
 
+    @JsonIgnore
+    @ApiModelProperty(value = "评优状态",notes = "仅演练使用该字段")
+    private Integer recStatus;
+
+
+
 
 
 }

+ 16 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/domain/retrieval/vo/KeyValueVo.java

@@ -0,0 +1,16 @@
+package com.xunmei.common.core.domain.retrieval.vo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 监控调阅任务对象 core_monitoring_retrieval_task
+ *
+ * @author xunmei
+ * @date 2023-08-25
+ */
+@Data
+public class KeyValueVo {
+    private Long key;
+    private Long value;
+}

+ 1 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/enums/drill/DrillDoStatus.java

@@ -17,6 +17,7 @@ public enum DrillDoStatus {
     DONE(3, "已完成"),
 
     OVERDUE(4, "已逾期"),
+    WAIT_SUBMIT(5, "待提交"),
 
 
     ;

+ 2 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/mapper/CoreDrillTaskMapper.java

@@ -35,7 +35,7 @@ public interface CoreDrillTaskMapper extends BaseMapper<CoreDrillTask> {
 
     Integer checkHasTaskIsDoneByPlanParentId(@Param("planId") Long planId);
 
-    IPage<CoreDrillTaskRecPageVo> selectRecPage(Page<CoreDrillTaskRecPageVo> pageRequest, @Param("request") CoreDrillTaskRecPageDto request, @Param("recStatusList") List<Integer> recStatus);
+    IPage<CoreDrillTaskRecPageVo> selectRecPage(Page<CoreDrillTaskRecPageVo> pageRequest, @Param("request") CoreDrillTaskRecPageDto request);
 
     IPage<CoreDrillTaskRecTaskPageVo> selectRecTaskListPage(Page<Object> pageRequest, @Param("request") CoreDrillTaskRecPageDto request);
 
@@ -44,6 +44,7 @@ public interface CoreDrillTaskMapper extends BaseMapper<CoreDrillTask> {
     List<PanelListVo> selectCurUserTaskList(@Param("request") PanelListDto request,@Param("list") List<Integer> list);
 
     List<PanelListVo> selectWaitEvaluateTaskList(@Param("request") PanelListDto panelListDto);
+    List<PanelListVo> selectWaitRecTaskList(@Param("request") PanelListDto panelListDto);
 
     Integer updateTaskStatus(@Param("status") int status);
 

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

@@ -279,6 +279,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         }
         if (ObjectUtil.equal(request.getSubmitType(), 2)) {
             coreDrillTask.setStatus(DrillDoStatus.WAIT_SIGN.getCode());
+        } else {
+            coreDrillTask.setStatus(DrillDoStatus.WAIT_SUBMIT.getCode());
         }
 
         coreDrillTask.setUpdateBy(SecurityUtils.getLoginUser().getSysUser().getId().toString());
@@ -669,11 +671,9 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
     public TableDataInfo<CoreDrillTaskRecPageVo> recList(CoreDrillTaskRecPageDto request) {
         dealRecListParam(request);
         IPage<CoreDrillTaskRecPageVo> page;
-        if (request.getRecStatus() != null) {
-            page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request, Collections.singletonList(request.getRecStatus()));
-        } else {
-            page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request, getRecStatus());
-        }
+
+            page = coreDrillTaskMapper.selectRecPage(request.getPageRequest(), request);
+
         final List<SysDictData> drillTypeDictList = DictUtils.getDictCache(DictConstants.CORE_DRILL_TYPE);
         final List<SysDictData> drillTaskRecStatusList = DictUtils.getDictCache(DictConstants.DRILL_TASK_REC_STATUS);
         for (CoreDrillTaskRecPageVo record : page.getRecords()) {
@@ -765,7 +765,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         //判断是否已达上限
         checkRecNum(drillTask, request.getRecStatus());
         if (drillTask.getRecStatus().equals(request.getRecStatus())) {
-            throw new SystemException("该预案演练任务已推荐!");
+            return 1;
         }
         //判断是否越级推荐
         if (ObjectUtil.notEqual(drillTask.getRecStatus(), request.getRecStatus() - 1) && ObjectUtil.notEqual(drillTask.getRecStatus(), request.getRecStatus() - 2)) {
@@ -847,7 +847,8 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         panelListDto.setOrgType(sysOrg.getType());
         panelListDto.setOrgPath(sysOrg.getPath());
         List<Integer> statusList = new ArrayList<>();
-        Collections.addAll(statusList, 0, 1);
+        Collections.addAll(statusList, DrillDoStatus.WAIT_SUBMIT.getCode(),
+                DrillDoStatus.WAIT_RECORDED.getCode(), DrillDoStatus.WAIT_SIGN.getCode());
         List<PanelListVo> list = coreDrillTaskMapper.selectCurUserTaskList(panelListDto, statusList);
         dealListData(list, panelListDto.getUserId());
         //省联社/办事处或行社
@@ -855,12 +856,17 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                 OrgTypeEnum.BAN_SHI_CHU.getCode().equals(sysOrg.getType()) ||
                 OrgTypeEnum.SHEGN_LIAN_SHE.getCode().equals(sysOrg.getType())) {
 
-            //查询待评价数据
-            List<PanelListVo> list2 = coreDrillTaskMapper.selectWaitEvaluateTaskList(panelListDto);
-            list2.removeIf(item -> DateUtil.compare(new Date(), item.getEndTime()) > 0);
-            list.addAll(list2);
-
-
+            //查询待评价与待推优数据
+            List<PanelListVo> waitEvaluateTaskList = coreDrillTaskMapper.selectWaitEvaluateTaskList(panelListDto);
+            List<PanelListVo> waitRecTaskList = coreDrillTaskMapper.selectWaitRecTaskList(panelListDto);
+            waitRecTaskList.forEach(item -> {
+                if (ObjectUtil.isNotNull(item.getRecStatus())) {
+                    item.setStatus(10);
+                }
+            });
+            list.addAll(waitEvaluateTaskList);
+            list.addAll(waitRecTaskList);
+            list.removeIf(item -> DateUtil.compare(new Date(), item.getEndTime()) > 0);
         }
 
         list.forEach(item -> {

+ 16 - 5
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/mapper/CoreMonitoringRetrievalTaskMapper.java

@@ -107,30 +107,37 @@ public interface CoreMonitoringRetrievalTaskMapper extends BaseMapper<CoreMonito
 
     /**
      * 根据计划删除
+     *
      * @param planId
      */
     void deleteAllTaskByPlanId(@Param("planId") Long planId);
-    void deleteDayTaskByTime(Long planId, String cycle, Date startTime, Date endTime);
-    void deleteDayTaskByTimeAndPlanId(Long planId, String cycle, Date startTime, Date endTime);
+
+    void deleteDayTaskByTime(@Param("planId") Long planId, @Param("cycle") String cycle, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
+    void deleteDayTaskByTimeAndPlanId(@Param("planId") Long planId, @Param("cycle") String cycle, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
+
     /**
      * 删除周任务
+     *
      * @param planId
      * @param cycle
      * @param week
      * @param year
      */
-   void deleteWeekTaskByPlanId(Long planId, String cycle, String week, String year);
+    void deleteWeekTaskByPlanId(Long planId, String cycle, String week, String year);
 
     /**
      * 删除天任务
+     *
      * @param planId
      * @param cycle
      * @param ymdDate
      */
-    void deleteDayTaskByPlanId(Long planId, String cycle, String ymdDate);
+    void deleteDayTaskByPlanId(@Param("planId") Long planId, @Param("cycle") String cycle, @Param("ymdDate") String ymdDate);
 
     /**
      * 删除月任务
+     *
      * @param planId
      * @param cycle
      * @param month
@@ -140,15 +147,17 @@ public interface CoreMonitoringRetrievalTaskMapper extends BaseMapper<CoreMonito
 
     /**
      * 删除季度
+     *
      * @param planId
      * @param cycle
      * @param quarter
      * @param year
      */
-    void  deleteQuarterTaskByPlanId(Long planId, String cycle, String quarter, String year);
+    void deleteQuarterTaskByPlanId(Long planId, String cycle, String quarter, String year);
 
     /**
      * 已完成
+     *
      * @param planId
      * @return
      */
@@ -165,4 +174,6 @@ public interface CoreMonitoringRetrievalTaskMapper extends BaseMapper<CoreMonito
     List<CoreSafetyExceptionData> selectMonitorOverTimeExceptionData(@Param("time") DateTime time);
 
     List<CoreSafetyExceptionData> selectMonitorNumsExceptionData(@Param("time") DateTime time);
+
+    List<CoreMonitoringRetrievalTask> selectTaskList(@Param("taskTime")LocalDate taskTime, @Param("orgIds")List<Long> orgIds,  @Param("cycle")Integer cycle);
 }

+ 97 - 89
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/retrieval/service/impl/CoreMonitoringRetrievalTaskServiceImpl.java

@@ -19,10 +19,7 @@ import com.xunmei.common.core.domain.panel.enums.PanelTypeEnums;
 import com.xunmei.common.core.domain.panel.vo.PanelListVo;
 import com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask;
 import com.xunmei.common.core.domain.retrieval.dto.RetrievalTaskPageDto;
-import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskExcelVo;
-import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskOneVo;
-import com.xunmei.common.core.domain.retrieval.vo.CoreMonitoringRetrievalTaskVo;
-import com.xunmei.common.core.domain.retrieval.vo.TaskDataVo;
+import com.xunmei.common.core.domain.retrieval.vo.*;
 import com.xunmei.common.core.domain.safetyindex.domain.CoreSafetyExceptionData;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
 import com.xunmei.common.core.domain.worktime.domain.SysWorkTime;
@@ -108,6 +105,7 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         }
         //获取数据
         page = coreMonitoringRetrievalTaskMapper.selectPageList(page, request);
+        this.taskChangeForTimeWorkChange(null);
         //抓换为TableDataInfo适配前端
         return TableDataInfo.build(page);
     }
@@ -606,112 +604,107 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void taskChangeForTimeWorkChange(WorkTimeChangeEvent event) {
+   public void taskChangeForTimeWorkChange(WorkTimeChangeEvent event) {
         //修改的作息的日期
         Date ymdDate  =  event.getDataList().get(0).getDate();
 
         //受影响的机构
         List<Long> orgIds = event.getOrgIds();
+    /*    //测试用的数据
+         Date ymdDate  =  new Date();
+        //受影响的机构
+        List<Long> orgIds = new ArrayList<>();
+        orgIds.add(4358025846521957L);
+        orgIds.add(4358025846456575L);*/
         //判断ymdDate是否是当天
         Date today = new Date();
         //要删除的任务
         List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
         //要重新生成任务的机构和计划
-        List<KeyValue> keyValues = new ArrayList<>();
+        List<KeyValueVo> keyValues = new ArrayList<>();
+
+        Map<String,Object> dayObjectMap = null;
+        Map<String,Object> weekObjectMap=null;
+        Map<String,Object> monthObjectMap=null;
+        Map<String,Object> quarterObjectMap=null;
+        Map<String,Object> halfYearObjectMap=null;
+        Map<String,Object> yearObjectMap=null;
         //判断ymdDate 月today是否是同一日期
         if(DateUtil.isSameDay(ymdDate,today)){
            //获取当天的调阅任务
-            Map<String,Object> dayObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.DAYCYCLE.getCode());
-            List<CoreMonitoringRetrievalTask> list = (List<CoreMonitoringRetrievalTask>) dayObjectMap.get("deleteTaskList");
-            if(CollectionUtil.isNotEmpty(list)){
-                deleteTaskList.addAll(list);
-            }
-            List<KeyValue> keyValueList = (List<KeyValue>) dayObjectMap.get("keyValues");
-            if(CollectionUtil.isNotEmpty(keyValueList)){
-                keyValues.addAll(keyValueList);
-            }
-        }else{
-            //周
-            Map<String,Object> weekObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.WEEKCYCLE.getCode());
-            List<CoreMonitoringRetrievalTask> listweek = (List<CoreMonitoringRetrievalTask>) weekObjectMap.get("deleteTaskList");
-            if(CollectionUtil.isNotEmpty(listweek)){
-                deleteTaskList.addAll(listweek);
-            }
-            List<KeyValue> keyValueListweek = (List<KeyValue>) weekObjectMap.get("keyValues");
-            if(CollectionUtil.isNotEmpty(keyValueListweek)){
-                keyValues.addAll(keyValueListweek);
-            }
-            //月
-            Map<String,Object> monthObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.MONTHCYCLE.getCode());
-            List<CoreMonitoringRetrievalTask> listmonth = (List<CoreMonitoringRetrievalTask>) monthObjectMap.get("deleteTaskList");
-            if(CollectionUtil.isNotEmpty(listmonth)){
-                deleteTaskList.addAll(listmonth);
-            }
-            List<KeyValue> keyValueListmonth = (List<KeyValue>) monthObjectMap.get("keyValues");
-            if(CollectionUtil.isNotEmpty(keyValueListmonth)){
-                keyValues.addAll(keyValueListmonth);
-            }
-            //季度
-            Map<String,Object> quarterObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.QUARTERCYCLE.getCode());
-            List<CoreMonitoringRetrievalTask> listquarter = (List<CoreMonitoringRetrievalTask>) quarterObjectMap.get("deleteTaskList");
-            if(CollectionUtil.isNotEmpty(listquarter)){
-                deleteTaskList.addAll(listquarter);
-            }
-            List<KeyValue> keyValueListquarter = (List<KeyValue>) quarterObjectMap.get("keyValues");
-            if(CollectionUtil.isNotEmpty(keyValueListquarter)){
-                keyValues.addAll(keyValueListquarter);
-            }
-            //半年
-            Map<String,Object> halfYearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.HALFYEARCYCLE.getCode());
-            List<CoreMonitoringRetrievalTask> listhalfYear = (List<CoreMonitoringRetrievalTask>) halfYearObjectMap.get("deleteTaskList");
-            if(CollectionUtil.isNotEmpty(listhalfYear)){
-                deleteTaskList.addAll(listhalfYear);
-            }
-            List<KeyValue> keyValueListhalfYear = (List<KeyValue>) halfYearObjectMap.get("keyValues");
-            if(CollectionUtil.isNotEmpty(keyValueListhalfYear)){
-                keyValues.addAll(keyValueListhalfYear);
-            }
-            //年
-            Map<String,Object> yearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.YEARCYCLE.getCode());
-            List<CoreMonitoringRetrievalTask> listYear = (List<CoreMonitoringRetrievalTask>) yearObjectMap.get("deleteTaskList");
-            if(CollectionUtil.isNotEmpty(listYear)){
-                deleteTaskList.addAll(listYear);
-            }
-            List<KeyValue> keyValueListYear = (List<KeyValue>) yearObjectMap.get("keyValues");
-            if(CollectionUtil.isNotEmpty(keyValueListYear)){
-                keyValues.addAll(keyValueListYear);
-            }
+            dayObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.DAYCYCLE.getCode());
         }
+            weekObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.WEEKCYCLE.getCode());
+            monthObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.MONTHCYCLE.getCode());
+            quarterObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.QUARTERCYCLE.getCode());
+            halfYearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.HALFYEARCYCLE.getCode());
+            yearObjectMap = this.deleteTaskList(ymdDate,orgIds,RetrievalTaskCycle.YEARCYCLE.getCode());
+
+        Map<String,Object> allMap = this.buildDeleteTaskList(dayObjectMap,weekObjectMap,monthObjectMap,quarterObjectMap,halfYearObjectMap,yearObjectMap);
+        deleteTaskList = (List<CoreMonitoringRetrievalTask>) allMap.get("deleteTaskList");
+        keyValues = (List<KeyValueVo>) allMap.get("keyValues");
         //删除任务
         if(CollectionUtil.isNotEmpty(deleteTaskList)){
             this.removeBatchByIds(deleteTaskList);
         }
         //生成新的任务
-        if(CollectionUtil.isNotEmpty(keyValues)){
-           this.createNewtask(keyValues,ymdDate);
-        }
+       // if(CollectionUtil.isNotEmpty(keyValues)){
+           this.createNewtask(keyValues,ymdDate,orgIds);
+       // }
 
     }
 
-    private void createNewtask(List<KeyValue> keyValues,Date taskTime) {
-        List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
-        Set<Long>  planId = new HashSet<>();
-        for(KeyValue keyValue:keyValues){
-            planId.add((Long) keyValue.getValue());
+    private Map<String, Object> buildDeleteTaskList(Map<String, Object>... ObjMaps) {
+        Map<String, Object> deleteTaskListMap = new HashMap<>();
+        List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
+        List<KeyValueVo> keyValues = new ArrayList<>();
+        for (Map<String, Object> objMap : ObjMaps) {
+            if(objMap != null&&objMap.containsKey("deleteTaskList")&&objMap.containsKey("keyValues")){
+                List<CoreMonitoringRetrievalTask> listTask = (List<CoreMonitoringRetrievalTask>) objMap.get("deleteTaskList");
+                List<KeyValueVo> keyValueList = (List<KeyValueVo>) objMap.get("keyValues");
+                if(CollectionUtil.isNotEmpty(listTask)){
+                    deleteTaskList.addAll(listTask);
+                }
+                if (CollectionUtil.isNotEmpty(keyValueList)) {
+                    keyValues.addAll(keyValueList);
+                }
+            }
+
         }
+        deleteTaskListMap.put("deleteTaskList", deleteTaskList);
+        deleteTaskListMap.put("keyValues", keyValues);
+        return deleteTaskListMap;
+    }
+    private void createNewtask(List<KeyValueVo> keyValues,Date taskTime,List<Long> orgIds) {
+        //获取所有机构
+        List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.findAllOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+        List<SysOrg> orgs = orgList.stream().filter(r->orgIds.contains(r.getId())).collect(Collectors.toList());
+        //通过parentId获取orgList中orgs的直属上级
+        List<SysOrg> parentOrgList =  orgList.stream().filter(r->orgs.stream().anyMatch(s->s.getParentId().equals(r.getId()))).collect(Collectors.toList());
+        List<Long> orgParentIds = parentOrgList.stream().map(r->r.getId()).collect(Collectors.toList());
+
+        //获取计划
+        List<CoreMonitoringRetrievalTask> taskList = new ArrayList<>();
         QueryWrapper<TMonitoringRetrievalPlan> queryWrapper = new QueryWrapper<>();
-        queryWrapper.lambda().in(TMonitoringRetrievalPlan::getId, planId);
+        queryWrapper.lambda().in(TMonitoringRetrievalPlan::getOrgId, orgParentIds);
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getPlanStatus, 1);
         queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getIsDeleted, 0);
-        queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getCreateType, 1);
+        /*queryWrapper.lambda().eq(TMonitoringRetrievalPlan::getCreateType, 1);*/
         List<TMonitoringRetrievalPlan> plans = itMonitoringRetrievalPlanService.list(queryWrapper);
         List<TMonitoringRetrievalPlan> planList = new ArrayList<>();
-        //获取所有机构
-        List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.findAllOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+
         for(TMonitoringRetrievalPlan p:plans){
-            List<KeyValue> keyValuesa = keyValues.stream().filter(r->r.getValue().toString().equals(p.getId().toString())).collect(Collectors.toList());
-            List<SysOrg> orgs = orgList.stream().filter(r->keyValuesa.stream().anyMatch(s->s.getKey().toString().equals(r.getId().toString()))).collect(Collectors.toList());
             for (SysOrg s : orgs) {
+                if(CollectionUtil.isNotEmpty(keyValues)){
+                    //机构和计划没有同时在排除的范围内的计划不生成任务
+                    if(keyValues.stream().filter(r->r.getValue().equals(p.getId())&&r.getKey().equals(s.getId())).count()>0){
+                        continue;
+                    }
+                }
+                //计划的机构id不是当前机构的直属父机构,不生成任务
+                if(!p.getOrgId().equals(s.getParentId())){
+                    continue;
+                }
                 TMonitoringRetrievalPlan plan = new TMonitoringRetrievalPlan();
                 BeanUtils.copyProperties(p, plan);
                 plan.setPlanName(p.getPlanName());
@@ -736,22 +729,34 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
             }
         }
         for (TMonitoringRetrievalPlan plan : planList) {
-            DateRange dateRange =  DateUtils.getStartAndEnd(taskTime, Integer.valueOf(plan.getPlanCycle()+1));
+            //任务的开始时间按周期计算用下面的方式
+            DateRange dateRange =  DateUtils.getStartAndEnd(taskTime, Integer.valueOf(plan.getPlanCycle()));
             Instant instant = dateRange.getStartTime().toInstant();
-
             // 创建 ZonedDateTime 对象,并指定时区
             ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());
             // 转换为 LocalDate 对象
             LocalDate localDate = zdt.toLocalDate();
-            //获取计划关联的机构
+
+            //任务整体按周期日期计算,最终结果排除所修改的日期前面的数据
             List<SysOrg> listByType = orgList.stream().filter(r -> r.getId().equals(plan.getOrgId()) && r.getDeleted() == 0 && r.getIsLock().equals(0)).collect(Collectors.toList());
             if (CollectionUtil.isNotEmpty(listByType)) {
                 List<CoreMonitoringRetrievalTask> list = this.buildCoreMonitoringRetrievalTask(plan, localDate, listByType.get(0));
                 if (CollectionUtil.isNotEmpty(list)) {
-                    taskList.addAll(list);
+                    if(!plan.getPlanCycle().equals(RetrievalTaskCycle.DAYCYCLE.getCode().toString())){
+                        List<CoreMonitoringRetrievalTask> lista = list.stream().filter(r -> r.getPlanEndTime().after(taskTime)).collect(Collectors.toList());
+                        if(CollectionUtil.isNotEmpty(lista)){
+                            taskList.addAll(lista);
+                        }
+                    }else{
+                        List<CoreMonitoringRetrievalTask> lista = list.stream().filter(r -> r.getPlanEndTime().after(new Date())).collect(Collectors.toList());
+                        if(CollectionUtil.isNotEmpty(lista)){
+                            taskList.addAll(lista);
+                        }
+                    }
                 }
             }
         }
+
         this.saveBatch(taskList);
     }
 
@@ -762,16 +767,18 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
         Date datetime = ymdDate;
         if(!cycle.equals(RetrievalTaskCycle.DAYCYCLE.getCode())){
              //根据ymdDate获取周的第一天的日期
-            DateRange dateRange =  DateUtils.getStartAndEnd(ymdDate,cycle+1);
+            DateRange dateRange =  DateUtils.getStartAndEnd(ymdDate,cycle);
             datetime = dateRange.getStartTime();
         }
-        queryWrapper.lambda().eq(CoreMonitoringRetrievalTask::getYmdDate,datetime);
+        LocalDate taskTime=DateUtils.toLocalDate(datetime);
+/*        queryWrapper.lambda().eq(CoreMonitoringRetrievalTask::getYmdDate,taskTime);
         //公共条件
         queryWrapper.lambda().in(CoreMonitoringRetrievalTask::getOrgId,orgIds);
         queryWrapper.lambda().eq(CoreMonitoringRetrievalTask::getCycle,cycle);
-        List<CoreMonitoringRetrievalTask> taskList = this.list(queryWrapper);
+        List<CoreMonitoringRetrievalTask> taskList = this.list(queryWrapper);*/
+        List<CoreMonitoringRetrievalTask> taskList = baseMapper.selectTaskList(taskTime,orgIds,cycle);
         List<CoreMonitoringRetrievalTask> deleteTaskList = new ArrayList<>();
-        List<KeyValue> keyValues = new ArrayList<>();
+        List<KeyValueVo> keyValues = new ArrayList<>();
         if(CollectionUtil.isNotEmpty(taskList)){
             //将数据按机构分组
             Map<Long,List<CoreMonitoringRetrievalTask>> taskMap = taskList.stream().collect(Collectors.groupingBy(CoreMonitoringRetrievalTask::getOrgId));
@@ -785,8 +792,9 @@ public class CoreMonitoringRetrievalTaskServiceImpl extends ServiceImpl<CoreMoni
                     //没有完成的任务,改批次的任务删除
                     if(num==0){
                         deleteTaskList.addAll(taskList2);
+                    }else{
                         Long planId = taskList2.get(0).getPlanId();
-                        KeyValue keyValue = new KeyValue();
+                        KeyValueVo keyValue = new KeyValueVo();
                         keyValue.setKey(key);
                         keyValue.setValue(planId);
                         keyValues.add(keyValue);

+ 5 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/safetyCheck/job/SafetyCheckJobBusiness.java

@@ -299,7 +299,11 @@ public class SafetyCheckJobBusiness {
                 vo.setCheckOrg(check);
                 vo.setExecOrg(org);
                 vo.setPlanCycle(Math.toIntExact(plan.getPlanCycle()));
-                vo.setPlanName(plan.getPlanName()+"第"+(i+1)+"次");
+                if (plan.getCount()==1){
+                    vo.setPlanName(plan.getPlanName());
+                }else {
+                    vo.setPlanName(plan.getPlanName() + "第" + (i + 1) + "次");
+                }
                 list.add(vo);
             }
 //            for (CoreSafecheckPlanToRole role : roles) {

+ 22 - 14
soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillTaskMapper.xml

@@ -195,10 +195,11 @@
     </select>
 
     <select id="selectRecPage" resultType="com.xunmei.common.core.domain.drill.vo.CoreDrillTaskRecPageVo">
-        select * from core_drill_task t where t.rec_status in
-        <foreach collection="recStatusList" item="item" index="index" open="(" close=")" separator=",">
-            #{item}
-        </foreach>
+        select * from core_drill_task t
+        where t.rec_status is not null
+        <if test="request.recStatus!=null">
+            and t.rec_status =#{request.recStatus}
+        </if>
         and t.org_path like concat(#{request.orgPath},'%')
         <include refid="timeRangeSql"/>
     </select>
@@ -281,18 +282,9 @@
 
     <select id="selectWaitEvaluateTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
         select distinct t.id as id, title as taskName,t.start_date startTime,t.end_date as endTime,t.status
-        from core_drill_task t
+        from core_drill_task t inner join sys_org o on t.org_id=o.id
         where t.status =2
         and t.org_path like concat(#{request.orgPath},'%')
-        <if test="request.orgType =3">
-            or (t.rec_status=0)
-        </if>
-        <if test="request.orgType =2">
-            or (t.rec_status=2)
-        </if>
-        <if test="request.orgType =2">
-            or (t.rec_status=4)
-        </if>
         <include refid="timeRangeSql"/>
     </select>
 
@@ -302,4 +294,20 @@
         where end_date <![CDATA[<]]> now()
           and status in (0, 1)
     </update>
+
+    <select id="selectWaitRecTaskList" resultType="com.xunmei.common.core.domain.panel.vo.PanelListVo">
+        select distinct t.id as id, title as taskName,t.start_date startTime,t.end_date as endTime,t.status,t.rec_status
+        from core_drill_task t inner join sys_org o on t.org_id=o.id
+        where  t.org_path like concat(#{request.orgPath},'%')
+        <include refid="timeRangeSql"/>
+        <if test="request.orgType==3">
+            and t.rec_status =0 and o.type=4
+        </if>
+        <if test="request.orgType==2">
+            and t.rec_status =2 and o.type=3
+        </if>
+        <if test="request.orgType==1">
+            and t.rec_status =4 and o.type=2
+        </if>
+    </select>
 </mapper>

+ 8 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/retrieval/CoreMonitoringRetrievalTaskMapper.xml

@@ -533,4 +533,12 @@
             plan_id = #{planId}
         and    `status` IN (2,3)
     </select>
+    <select id="selectTaskList"
+            resultType="com.xunmei.common.core.domain.retrieval.domain.CoreMonitoringRetrievalTask">
+       select * from  core_monitoring_retrieval_task where ymd_date = #{taskTime} and cycle=#{cycle} and org_id in
+        <foreach item="orgId" collection="orgIds" open="(" separator="," close=")">
+            #{orgId}
+        </foreach>
+
+    </select>
 </mapper>

+ 1 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysNfcBindController.java

@@ -56,7 +56,7 @@ public class SysNfcBindController extends BaseController {
     /**
      * 获取【请填写功能名称】详细信息
      */
-    @ApiOperation(value = "获取SysNfcBind详细信息")
+    @ApiOperation(value = "app获取SysNfcBind详细信息")
     @RequiresPermissions("system:bind:query")
     @GetMapping(value = {"/appGetInfo", "/{code}"})
     public AjaxResult appGetInfo(@PathVariable(value = "code", required = false) String code) {