Procházet zdrojové kódy

培训/演练 有参定时任务执行报错

jingyuanchao před 1 rokem
rodič
revize
277900eb3d

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/ICoreDrillPlanToExecOrgService.java

@@ -70,5 +70,5 @@ public interface ICoreDrillPlanToExecOrgService extends IService<CoreDrillPlanTo
      */
     TableDataInfo<CoreDrillPlanToExecOrg> selectPage(CoreDrillPlanToExecOrg coreDrillPlanToExecOrg);
 
-    int deleteByParentId(List<Long> planIds);
+    int deleteByPlanIds(List<Long> planIds);
 }

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

@@ -55,6 +55,7 @@ import com.xunmei.core.drill.service.ICoreDrillPlanService;
 import com.xunmei.core.drill.service.ICoreDrillPlanToExecOrgService;
 import com.xunmei.core.drill.service.ICoreDrillPlanToRoleService;
 import com.xunmei.core.drill.service.ICoreDrillTaskService;
+import com.xunmei.core.edu.mapper.PhysicalDeleteMapper;
 import com.xunmei.core.registerbook.service.ICoreRegisterBookPdfService;
 import com.xunmei.core.reminder.service.ICoreReminderConfigurationService;
 import com.xunmei.core.reminder.service.ICoreReminderScheduleService;
@@ -109,7 +110,8 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
     private CoreDrillTaskMapper coreDrillTaskMapper;
     @Autowired
     private CoreDrillTaskToRoleMapper coreDrillTaskToRoleMapper;
-
+    @Autowired
+    private PhysicalDeleteMapper physicalDeleteMapper;
     @Autowired
     @Qualifier(ThreadPoolConfig.SOC_EXECUTOR)
     private ThreadPoolTaskExecutor threadPoolTaskExecutor;
@@ -391,11 +393,22 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         validateFieldForStandard(request.getPlanCycle(), plan.getPlanCycle(), "当前状态仅允许修改任务名称");
         validateFieldForStandard(request.getExecTimes(), plan.getExecTimes(), "当前状态仅允许修改任务名称");
         validateFieldForStandard(request.getExecOrgType(), plan.getExecOrgType(), "当前状态仅允许修改任务名称");
-        List<Long> execOrgIdList = coreDrillPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
-        validateListForStandard(execOrgIdList, request.getPlanExecOrgIdList(), "当前状态仅允许修改任务名称");
+      /*  List<Long> execOrgIdList = coreDrillPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
+        validateListForStandard(execOrgIdList, request.getPlanExecOrgIdList(), "当前状态仅允许修改任务名称");*/
         validateFieldForStandard(request.getRemark(), plan.getRemark(), "当前状态仅允许修改任务名称");
         validateFileListForStandard(request.getFileList(), JSON.parseArray(plan.getFileList(), String.class), "当前状态仅允许修改任务名称");
         plan.setPlanName(request.getPlanName());
+        List<Long> list = baseMapper.selectIdByParentId(plan.getId());
+        if (ObjectUtil.isEmpty(list)){
+            return;
+        }
+        physicalDeleteMapper.deletedEduPlanByIds(list);
+        coreDrillPlanToExecOrgService.deleteByPlanIds(list);
+
+
+        coreDrillPlanToExecOrgMapper.deleteByMap(MapUtil.of("plan_id", plan.getId()));
+        batchSavePlanToExecOrg(request.getPlanExecOrgIdList(), plan.getId());
+
         updateById(plan);
 
     }
@@ -414,7 +427,7 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         List<Long> longs = baseMapper.selectAllIdByParentId(plan.getId());
         if (!longs.isEmpty()) {
             baseMapper.delByIds(longs);
-            coreDrillPlanToExecOrgService.deleteByParentId(longs);
+            coreDrillPlanToExecOrgService.deleteByPlanIds(longs);
         }
 
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/drill/service/impl/CoreDrillPlanToExecOrgServiceImpl.java

@@ -111,7 +111,7 @@ public class CoreDrillPlanToExecOrgServiceImpl extends ServiceImpl<CoreDrillPlan
 
 
     @Override
-    public int deleteByParentId(List<Long> planIds) {
+    public int deleteByPlanIds(List<Long> planIds) {
         if (planIds == null || planIds.isEmpty()) {
             return 0;
         }

+ 17 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/PhysicalDeleteMapper.java

@@ -0,0 +1,17 @@
+package com.xunmei.core.edu.mapper;
+
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface PhysicalDeleteMapper {
+
+
+    //物理删除
+    void deletedEduPlanByIds(@Param("list") List<Long> list);
+
+    void deletedDrillPlanByIds(@Param("list") List<Long> list);
+}

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/ICoreEduTrainingPlanToExecOrgService.java

@@ -10,5 +10,5 @@ import java.util.List;
  * @date 2023/8/25 14:30
  */
 public interface ICoreEduTrainingPlanToExecOrgService extends IService<CoreEduTrainingPlanToExecOrg> {
-    int deleteByParentId(List<Long> planIds);
+    int deleteByPlanIds(List<Long> planIds);
 }

+ 20 - 169
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanServiceImpl.java

@@ -1,7 +1,6 @@
 package com.xunmei.core.edu.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.collection.ListUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -19,6 +18,7 @@ import com.xunmei.common.core.constant.ErrorMsgConstants;
 import com.xunmei.common.core.constant.SecurityConstants;
 import com.xunmei.common.core.domain.DateRange;
 import com.xunmei.common.core.domain.IdName;
+import com.xunmei.common.core.domain.compensate.dto.CompensateDto;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlanToExecOrg;
 import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlanToRole;
@@ -48,13 +48,9 @@ import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
 import com.xunmei.common.redis.utils.RedisUtils;
 import com.xunmei.common.security.utils.SecurityUtils;
-import com.xunmei.common.core.domain.compensate.dto.CompensateDto;
 import com.xunmei.core.compense.interfaces.CompensateService;
 import com.xunmei.core.compense.service.ICoreCompensateLogService;
-import com.xunmei.core.edu.mapper.CoreEduTrainingPlanMapper;
-import com.xunmei.core.edu.mapper.CoreEduTrainingPlanToExecOrgMapper;
-import com.xunmei.core.edu.mapper.CoreEduTrainingPlanToRoleMapper;
-import com.xunmei.core.edu.mapper.CoreEduTrainingTaskMapper;
+import com.xunmei.core.edu.mapper.*;
 import com.xunmei.core.edu.service.ICoreEduTrainingPlanService;
 import com.xunmei.core.edu.service.ICoreEduTrainingPlanToExecOrgService;
 import com.xunmei.core.edu.service.ICoreEduTrainingPlanToRoleService;
@@ -78,8 +74,6 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.transaction.support.TransactionSynchronizationAdapter;
-import org.springframework.transaction.support.TransactionSynchronizationManager;
 
 import java.time.Duration;
 import java.util.*;
@@ -112,6 +106,8 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
     private ICoreEduTrainingTaskService coreEduTrainingTaskService;
     @Autowired
     private CoreEduTrainingTaskMapper coreEduTrainingTaskMapper;
+    @Autowired
+    private PhysicalDeleteMapper physicalDeleteMapper;
 
     @Autowired
     private RemoteOrgService orgService;
@@ -403,63 +399,26 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         validateFieldForStandard(request.getPlanCycle(), plan.getPlanCycle(), "当前状态仅允许修改任务名称");
         validateFieldForStandard(request.getExecTimes(), plan.getExecTimes(), "当前状态仅允许修改任务名称");
         validateFieldForStandard(request.getExecOrgType(), plan.getExecOrgType(), "当前状态仅允许修改任务名称");
-        List<Long> execOrgIdList = coreEduTrainingPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
-        validateListForStandard(execOrgIdList, request.getPlanExecOrgIdList(), "当前状态仅允许修改任务名称");
+        /*List<Long> execOrgIdList = coreEduTrainingPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
+        //validateListForStandard(execOrgIdList, request.getPlanExecOrgIdList(), "当前状态仅允许修改任务名称");*/
         validateFieldForStandard(request.getRemark(), plan.getRemark(), "当前状态仅允许修改任务名称");
         validateFileListForStandard(request.getFileList(), JSON.parseArray(plan.getFileList(), String.class), "当前状态仅允许修改任务名称");
         plan.setPlanName(request.getPlanName());
-        updateById(plan);
+        List<Long> list = baseMapper.selectIdByParentId(plan.getId());
+        if (ObjectUtil.isEmpty(list)){
+            return;
+        }
+        physicalDeleteMapper.deletedEduPlanByIds(list);
+        coreEduTrainingPlanToExecOrgService.deleteByPlanIds(list);
 
-    }
 
-    private void updateCommonPlan(CoreEduTrainingPlan plan, CoreEduTrainingPlanEditDto request, DateRange range) {
-        CoreEduTrainingPlan parentPlan = coreEduTrainingPlanMapper.selectOne(new LambdaQueryWrapper<CoreEduTrainingPlan>()
-                .eq(CoreEduTrainingPlan::getId, plan.getParentId())
-                .select(CoreEduTrainingPlan::getExecTimes));
-        //使用中的普通计划
-        if (parentPlan.getExecTimes() > request.getExecTimes()) {
-            throw new RuntimeException("执行次数不能小于基准计划执行次数!");
-        }
+        coreEduTrainingPlanToExecOrgMapper.deleteByMap(MapUtil.of("plan_id", plan.getId()));
+        batchSavePlanToExecOrg(request.getPlanExecOrgIdList(), plan.getId());
 
-        if (ObjectUtil.notEqual(plan.getId(), plan.getParentId())) {
-            String errorMsg = null;
-            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
-                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-            if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.SHEGN_LIAN_SHE.getCode())) {
-                errorMsg = "当前用户身份仅允许修改子计划的培训主题和培训次数!!";
-            } else {
-                errorMsg = "当前用户身份仅允许修改子计划的培训次数!";
-            }
-            validatePlanForStandard(request, plan, errorMsg, sysOrg.getType());
-        }
-        doUpdatePlan(plan, request);
-
-        final long done = coreEduTrainingTaskMapper.selectCount(new LambdaQueryWrapper<CoreEduTrainingTask>()
-                .eq(CoreEduTrainingTask::getPlanId, plan.getId())
-                .ge(CoreEduTrainingTask::getStartDate, range.getStartTime())
-                .le(CoreEduTrainingTask::getEndDate, range.getEndTime())
-                .in(CoreEduTrainingTask::getStatus, EduTrainingDoStatus.DONE.getCode(), EduTrainingDoStatus.OVERDUE.getCode()));
-        //如果有一条状态等于已完成/已逾期的数据,那么就下个周期生效
-        if (done > 0) {
-            //任务已执行,下个周期生效
-            return;
-        }
-        //如果没有,那就删除这个计划当前周期的所有任务,重新生成
-        coreEduTrainingTaskService.delByStartTimeAndEndTimeAndPlanIdList(Arrays.asList(plan.getId()), range.getStartTime(), range.getEndTime());
-        TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
-            @Override
-            public void afterCommit() {
-                CompletableFuture.runAsync(() -> {
-                    //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
-                    if (checkCanBuildTaskNow(plan)) {
-                        CoreEduTrainingPlanDataVo detailPlanData = getCoreEduTrainingPlanDataVo(plan.getId());
-                        coreEduTrainingTaskService.createTaskForNow(detailPlanData, plan.getStartDate(), plan.getEndDate());
-                    }
-                }, threadPoolTaskExecutor);
-            }
-        });
+        updateById(plan);
     }
 
+
     private void doUpdatePlan(CoreEduTrainingPlan plan, CoreEduTrainingPlanEditDto request) {
         BeanUtils.copyProperties(request, plan);
         if (ObjectUtil.equal(request.getPlanCycle(), DrillPlanCycleEnum.NONE.getCode())) {
@@ -475,7 +434,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         List<Long> longs = baseMapper.selectAllIdByParentId(plan.getId());
         if (!longs.isEmpty()) {
             baseMapper.delByIds(longs);
-            coreEduTrainingPlanToExecOrgService.deleteByParentId(longs);
+            coreEduTrainingPlanToExecOrgService.deleteByPlanIds(longs);
         }
 
 
@@ -484,114 +443,6 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         coreEduTrainingPlanMapper.updateById(plan);
     }
 
-    private void updateStandardPlan(CoreEduTrainingPlan plan, CoreEduTrainingPlanEditDto request, DateRange range) {
-
-        //使用中的标准计划
-
-        Long planId = plan.getId();
-        // 判断标准计划能否修改:存在下发的计划生成了任务且任务存在已执行
-        Integer standardPlanHasDone = coreEduTrainingTaskMapper.checkHasTaskIsDoneByPlanParentId(planId);
-        if (ObjectUtil.equal(standardPlanHasDone, 1)) {
-            SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() ->
-                    orgService.selectOrgById(SecurityUtils.getLoginUser().getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-            //验证修改的字段是否符合要求
-            String errorMsg = "有任务已执行或已过期,仅允许修改培训主题!";
-            validatePlanForStandard(request, plan, errorMsg, sysOrg.getType());
-            doUpdatePlan(plan, request);
-            coreEduTrainingPlanMapper.updatePlanName(plan.getId(), plan.getPlanName());
-            coreEduTrainingTaskMapper.updateTaskNameByParentPlanId(planId, plan.getPlanName(), range.getStartTime(), range.getEndTime());
-        } else {
-            doUpdatePlan(plan, request);
-            delAllByParentPlanId(plan);
-
-            List<CoreEduTrainingPlan> planList = null;
-            if (plan.getIssue() == 1) {
-                planList = buildPlanData(plan, null, false, 0);
-            } else {
-                planList = ListUtil.list(true, plan);
-            }
-            //List<CoreEduTrainingPlan> planList = buildPlanData(plan, null, false);
-            List<CoreEduTrainingPlan> finalPlanList = planList;
-            TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() {
-                @Override
-                public void afterCommit() {
-                    for (CoreEduTrainingPlan trainingPlan : finalPlanList) {
-                        CompletableFuture.runAsync(() -> {
-                            //如果不是省联社或者办事处,状态启用,并且是无周期或者立即生效
-                            if (checkCanBuildTaskNow(plan)) {
-                                CoreEduTrainingPlanDataVo detailPlanData = getCoreEduTrainingPlanDataVo(trainingPlan.getId());
-                                coreEduTrainingTaskService.createTaskForNow(detailPlanData, plan.getStartDate(), plan.getEndDate());
-                            }
-                        }, threadPoolTaskExecutor);
-                    }
-                }
-            });
-
-        }
-
-        //TODO 修改任务名称
-        //coreEduTrainingTaskMapper.updateTaskNameByPlanId(planId, planName, plan.getStartDate(), plan.getEndDate());
-
-    }
-
-    private void delAllByParentPlanId(CoreEduTrainingPlan plan) {
-        List<Long> planIdList = coreEduTrainingPlanMapper.selectIdByParentId(plan.getId());
-        if (ObjectUtil.isEmpty(planIdList)) {
-            return;
-        }
-        // 下发给省联社/办事处/行社的计划 在下发时会把id设置为parentId,所以这里不需要删除
-        if (plan.getId().equals(plan.getParentId())) {
-            List<Long> list = new ArrayList<>(planIdList);
-            list.remove(plan.getId());
-            if (list.isEmpty()) {
-                return;
-            }
-            coreEduTrainingPlanMapper.deleteBatchIds(list);
-
-            coreEduTrainingPlanToRoleMapper.delete(new LambdaQueryWrapper<CoreEduTrainingPlanToRole>()
-                    .in(CoreEduTrainingPlanToRole::getPlanId, list));
-            coreEduTrainingPlanToExecOrgMapper.delete(new LambdaQueryWrapper<CoreEduTrainingPlanToExecOrg>()
-                    .in(CoreEduTrainingPlanToExecOrg::getPlanId, list));
-        }
-
-        coreEduTrainingPlanToRoleMapper.delete(new LambdaQueryWrapper<CoreEduTrainingPlanToRole>()
-                .in(CoreEduTrainingPlanToRole::getPlanId, planIdList));
-        coreEduTrainingPlanToExecOrgMapper.delete(new LambdaQueryWrapper<CoreEduTrainingPlanToExecOrg>()
-                .in(CoreEduTrainingPlanToExecOrg::getPlanId, planIdList));
-
-        coreEduTrainingTaskService.delByStartTimeAndEndTimeAndPlanIdList(planIdList, null, null);
-    }
-
-    private void populateProperties(CoreEduTrainingPlan source, CoreEduTrainingPlan target) {
-        target.setPlanName(source.getPlanName());
-        target.setPlanCycle(source.getPlanCycle());
-        target.setExecTimes(source.getExecTimes());
-        target.setPlanStatus(source.getPlanStatus());
-        target.setExecOrgType(source.getExecOrgType());
-        target.setStartDate(source.getStartDate());
-        target.setEndDate(source.getEndDate());
-        target.setBuildTaskNow(source.getBuildTaskNow());
-        target.setRemark(source.getRemark());
-        target.setFileList(source.getFileList());
-
-    }
-
-    private void validatePlanForStandard(CoreEduTrainingPlanEditDto request, CoreEduTrainingPlan plan, String errorMsg, Integer type) {
-        validateFieldForStandard(request.getPlanCycle(), plan.getPlanCycle(), errorMsg);
-        validateFieldForStandard(request.getExecOrgType(), plan.getExecOrgType(), errorMsg);
-        List<Long> execOrgIdList = coreEduTrainingPlanToExecOrgMapper.selectOrgIdByPlanId(plan.getId());
-        validateListForStandard(execOrgIdList, request.getPlanExecOrgIdList(), errorMsg);
-        validateFieldForStandard(request.getRemark(), plan.getRemark(), errorMsg);
-        validateFileListForStandard(request.getFileList(), JSON.parseArray(plan.getFileList(), String.class), errorMsg);
-
-        if (OrgTypeEnum.HANG_SHE.equals(OrgTypeEnum.getOrgTypeEnum(type))) {
-            //标准计划可以修改名称,行社不允许修改名称
-            validateFieldForStandard(request.getPlanName(), plan.getPlanName(), errorMsg);
-        }
-
-
-    }
-
     private void validateFileListForStandard(List<String> requestFileList, List<String> sourceFileList, String errorMsg) {
         if (ObjectUtil.isEmpty(requestFileList) && ObjectUtil.isEmpty(sourceFileList)) {
             return;
@@ -773,7 +624,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
 
             List<CoreEduTrainingPlan> planList = baseMapper.selectByParentId(planId);
             if (planList.isEmpty()) {
-                planList = buildPlanData(plan, new ArrayList<>(), true, status);
+                planList = buildPlanData(plan, true, status);
             } else {
                 for (CoreEduTrainingPlan trainingPlan : planList) {
                     trainingPlan.setPlanStatus(EduTrainingPlanStatus.USING.getCode());
@@ -836,7 +687,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         return collect;
     }
 
-    private List<CoreEduTrainingPlan> buildPlanData(CoreEduTrainingPlan plan, List<CoreEduTrainingPlanToRole> planRoleList, Boolean isPublish, int status) {
+    private List<CoreEduTrainingPlan> buildPlanData(CoreEduTrainingPlan plan, Boolean isPublish, int status) {
         /*if (ObjectUtil.isEmpty(planRoleList)) {
             //获取执行角色
             LambdaQueryWrapper<CoreEduTrainingPlanToRole> ros = new LambdaQueryWrapper<>();
@@ -913,7 +764,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         if (insertPlanRoleList.size() > 0) {
             coreEduTrainingPlanToRoleService.saveBatch(insertPlanRoleList);
         }*/
-        if (list.size() > 0) {
+        if (!list.isEmpty()) {
             this.saveBatch(list);
         }
 

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/service/impl/CoreEduTrainingPlanToExecOrgServiceImpl.java

@@ -16,7 +16,7 @@ import java.util.List;
 @Service
 public class CoreEduTrainingPlanToExecOrgServiceImpl extends ServiceImpl<CoreEduTrainingPlanToExecOrgMapper, CoreEduTrainingPlanToExecOrg> implements ICoreEduTrainingPlanToExecOrgService {
     @Override
-    public int deleteByParentId(List<Long> planIds) {
+    public int deleteByPlanIds(List<Long> planIds) {
         if (planIds == null || planIds.isEmpty()) {
             return 0;
         }

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

@@ -213,8 +213,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         int totalNums = (int) userList.stream().filter(user -> ObjectUtil.equal(user.getType(), 1)).count();
         record.setSignNums(signNums + "/" + totalNums);
         record.setUserList(userList);
-        if (SecurityUtils.isApp()){
-            record.setOrgName(orgService.concatOrgName(record.getOrgId(),SecurityConstants.INNER));
+        if (SecurityUtils.isApp()) {
+            record.setOrgName(orgService.concatOrgName(record.getOrgId(), SecurityConstants.INNER));
         }
 
     }
@@ -247,8 +247,8 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             detailVo.setAbsenceList(collect.get(1));
             detailVo.setAbsentList(collect.get(2));
         }
-        if (SecurityUtils.isApp()){
-            detailVo.setOrgName(orgService.concatOrgName(detailVo.getOrgId(),SecurityConstants.INNER));
+        if (SecurityUtils.isApp()) {
+            detailVo.setOrgName(orgService.concatOrgName(detailVo.getOrgId(), SecurityConstants.INNER));
         }
         return detailVo;
     }
@@ -304,7 +304,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             }
             coreEduTrainingTaskToUserService.saveBatch(taskUserList);
         }
-        dealHost(request.getHostName(),task);
+        dealHost(request.getHostName(), task);
         task.setRecorderId(SecurityUtils.getUserId());
         task.setStatus(EduTrainingDoStatus.WAIT_SIGN.getCode());
         return coreEduTrainingTaskMapper.insert(task);
@@ -359,7 +359,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         } else {
             coreEduTrainingTask.setFileList(null);
         }
-        dealHost(request.getHostName(),coreEduTrainingTask);
+        dealHost(request.getHostName(), coreEduTrainingTask);
         coreEduTrainingTaskToUserMapper.deleteByMap(MapUtil.of("edu_training_task_id", request.getId()));
         List<CoreEduTrainingTaskToUser> taskUserList = request.getTaskUserList();
         if (ObjectUtil.isNotEmpty(taskUserList)) {
@@ -372,12 +372,12 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         }
         // 暂存: 待提交    提交:待签名
         if (ObjectUtil.equal(request.getSubmitType(), 1)) {
-            if (ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_SUBMIT.getCode())&&ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_RECORDED.getCode())){
+            if (ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_SUBMIT.getCode()) && ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_RECORDED.getCode())) {
                 throw new SystemException("当前状态不允许修改,请退出当前页面后刷新重试!");
             }
             coreEduTrainingTask.setStatus(EduTrainingDoStatus.WAIT_SUBMIT.getCode());
         } else {
-            if (ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_SUBMIT.getCode())&&ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_RECORDED.getCode())){
+            if (ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_SUBMIT.getCode()) && ObjectUtil.notEqual(coreEduTrainingTask.getStatus(), EduTrainingDoStatus.WAIT_RECORDED.getCode())) {
                 throw new SystemException("当前状态不允许修改,请退出当前页面后刷新重试!");
             }
             coreEduTrainingTask.setStatus(EduTrainingDoStatus.WAIT_SIGN.getCode());
@@ -394,7 +394,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     }
 
     private void dealHost(String hostName, CoreEduTrainingTask task) {
-        if (ObjectUtil.isNotEmpty(hostName)){
+        if (ObjectUtil.isNotEmpty(hostName)) {
             task.setHostName(hostName);
             return;
         }
@@ -561,8 +561,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         final Map<Long, List<SysWorkTime>> listMap = workTimeList.stream().filter(time -> ObjectUtil.equal(time.getIsEnable(), 1L)).collect(Collectors.groupingBy(SysWorkTime::getOrgId));
 
         for (SysOrg org : orgList) {
-            if(org.getIsLock().equals(1)|| org.getDeleted().equals(1))
-            {
+            if (org.getIsLock().equals(1) || org.getDeleted().equals(1)) {
                 continue;
             }
             Map<Short, DateRange> rangeMap;
@@ -656,13 +655,13 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
             task.setNo(list.indexOf(task) + 1);
         }
         try {
-            String baseHeaderName="教育培训情况表";
+            String baseHeaderName = "教育培训情况表";
             // 设置响应头
             response.addHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(baseHeaderName, "utf-8"));
             response.setContentType("application/octet-stream;charset=UTF-8");
             response.setCharacterEncoding("utf-8");
 
-            String header=baseHeaderName+"("+DateUtil.format( request.getStartTime(),"yyyy-MM")+"至"+ DateUtil.format( request.getEndTime(),"yyyy-MM") +")";
+            String header = baseHeaderName + "(" + DateUtil.format(request.getStartTime(), "yyyy-MM") + "至" + DateUtil.format(request.getEndTime(), "yyyy-MM") + ")";
             // 数据导出
             EasyExcel.write(response.getOutputStream(), CoreEduTrainingTaskReportVo.class)
                     .registerWriteHandler(new ValueCellWriteHandler(header)).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).sheet(baseHeaderName).doWrite(list);
@@ -690,10 +689,10 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         if (ObjectUtil.isAllEmpty(planId, planIdList)) {
             return new ArrayList<>();
         }
-        if (ObjectUtil.equal(request.getSourceType(),1)){
+        if (ObjectUtil.equal(request.getSourceType(), 1)) {
             request.setStartTime(DateUtil.beginOfMonth(request.getMonthDate().get(0)));
             request.setEndTime(DateUtil.endOfMonth(request.getMonthDate().get(1)));
-        }else {
+        } else {
             request.setStartTime(DateUtil.beginOfMonth(request.getDate()));
             request.setEndTime(DateUtil.endOfMonth(request.getDate()));
         }
@@ -703,7 +702,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         request.setOrgPath(sysOrg.getPath());
 
         List<SysOrg> sysOrgList;
-        if (null==sysOrg.getType()){
+        if (null == sysOrg.getType()) {
             return Collections.emptyList();
         }
         if (sysOrg.getType() < 3 || sysOrg.getShortName().endsWith("地区行社")) {
@@ -721,28 +720,25 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         List<CoreEduTrainingTaskReportVo> result = new ArrayList<>();
         List<CoreEduTrainingTaskReportVo> list = coreEduTrainingTaskMapper.selectReport(request, planId, planIdList);
 
-        return buildResultData(sysOrgList, result, list,sysOrg);
+        return buildResultData(sysOrgList, result, list, sysOrg);
     }
 
-    private List<CoreEduTrainingTaskReportVo> buildResultData(List<SysOrg> sysOrgList, List<CoreEduTrainingTaskReportVo> result, List<CoreEduTrainingTaskReportVo> list,SysOrg sysOrg) {
+    private List<CoreEduTrainingTaskReportVo> buildResultData(List<SysOrg> sysOrgList, List<CoreEduTrainingTaskReportVo> result, List<CoreEduTrainingTaskReportVo> list, SysOrg sysOrg) {
         if (list.isEmpty()) {
             //buildEmptyData(sysOrgList, result);
             return result;
         }
         for (SysOrg org : sysOrgList) {
-            if(ObjectUtil.equal(sysOrg.getType(),OrgTypeEnum.HANG_SHE.getCode()) && !ObjectUtil.equal(org.getType(),OrgTypeEnum.YINGYE_WANGDIAN.getCode()))
-            {
+            if (ObjectUtil.equal(sysOrg.getType(), OrgTypeEnum.HANG_SHE.getCode()) && !ObjectUtil.equal(org.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
                 continue;
             }
-            List<CoreEduTrainingTaskReportVo> childrenOrgData=new ArrayList<>();
-            if(ObjectUtil.equal(org.getType(),OrgTypeEnum.YINGYE_WANGDIAN.getCode()))
-            {
+            List<CoreEduTrainingTaskReportVo> childrenOrgData = new ArrayList<>();
+            if (ObjectUtil.equal(org.getType(), OrgTypeEnum.YINGYE_WANGDIAN.getCode())) {
                 childrenOrgData = list.stream()
                         //.filter(vo -> vo.getOrgPath().startsWith(org.getPath()))
                         .filter(vo -> vo.getOrgId().equals(org.getId()))
                         .collect(Collectors.toList());
-            }
-            else {
+            } else {
                 childrenOrgData = list.stream()
                         .filter(vo -> vo.getOrgPath().startsWith(org.getPath()))
                         //.filter(vo -> vo.getOrgId().equals(org.getId()))
@@ -829,7 +825,7 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
     public AjaxResult buildEduPdf(Long id) {
         CoreEduTrainingTaskDetailVo task = this.selectCoreEduTrainingTaskById(id);
         SysOrg sysOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectOrgById(task.getOrgId(), SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.EDUCATION_TRAINING,sysOrg);
+        String fileName = registerBookPdfService.getPdfFileName(RegisterBookType.EDUCATION_TRAINING, sysOrg);
         Map<String, Object> data = this.getFtlEdu(task);
         data.put("fileName", fileName);
         data.put("id", id);
@@ -939,7 +935,6 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         }
 
         List<CoreEduTrainingPlan> planList;
-
         if (null == cycle) {
             List<Integer> cycleList = DateUtils.checkDate(date);
             planList = coreEduTrainingPlanMapper.selectNeedBuildTaskPlanList(null, cycleList);
@@ -1022,11 +1017,9 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
         List<PanelListVo> list = coreEduTrainingTaskMapper.selectCurUserTaskList(panelListDto);
         //获取需要登录人 签名的所有任务,解决人员还没签名就调动到其他机构的问题
         List<PanelListVo> loginUserAllNeedSignlist = coreEduTrainingTaskMapper.selectUserAllEduTrainingSignList(panelListDto);
-        if(ObjectUtil.isNotEmpty(loginUserAllNeedSignlist))
-        {
-            loginUserAllNeedSignlist.stream().forEach(x->{
-                if(!list.stream().anyMatch(y->ObjectUtil.equal(y.getId(),x.getId())))
-                {
+        if (ObjectUtil.isNotEmpty(loginUserAllNeedSignlist)) {
+            loginUserAllNeedSignlist.stream().forEach(x -> {
+                if (!list.stream().anyMatch(y -> ObjectUtil.equal(y.getId(), x.getId()))) {
                     list.add(x);
                 }
             });

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/drill/CoreDrillPlanMapper.xml

@@ -697,7 +697,7 @@
         where p.deleted = 0
         and p.plan_status = 1
         <if test="cycle != null">
-            p.plan_cycle=#{cycle}
+            and p.plan_cycle=#{cycle}
         </if>
         <if test="cycleList != null and cycleList.size>0">
             and p.plan_cycle in

+ 1 - 1
soc-modules/soc-modules-core/src/main/resources/mapper/edu/CoreEduTrainingPlanMapper.xml

@@ -640,7 +640,7 @@
         where p.deleted = 0
         and p.plan_status = 1
         <if test="cycle != null">
-            p.plan_cycle=#{cycle}
+            and  p.plan_cycle=#{cycle}
         </if>
         <if test="cycleList != null and cycleList.size>0">
             and p.plan_cycle in

+ 20 - 0
soc-modules/soc-modules-core/src/main/resources/mapper/edu/PhysicalDeleteMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.xunmei.core.edu.mapper.PhysicalDeleteMapper">
+
+    <delete id="deletedEduPlanByIds">
+        delete from core_edu_training_plan where id in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <delete id="deletedDrillPlanByIds">
+        delete from core_drill_plan where id in
+        <foreach collection="list" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>