Jelajahi Sumber

培训/演练:处理下发给办事处/省联社无法生成任务的bug,及生成任务时判断机构类型与作息bug

jingyuanchao 1 tahun lalu
induk
melakukan
fa921de0b1

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

@@ -733,7 +733,10 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
         List<CoreDrillPlan> list = new ArrayList<>();
         for (SysOrgVO sysOrg : publishOrgList) {
             if (checkOrgType(plan.getExecOrgType())) {
-                continue;
+                //走到这说明,执行机构中都是省联社/办事处 这些不需要子机话,所以直接返回,
+                //但是如果后期扩展多选执行机构类型,此处将不再适用
+                list.add(plan);
+                return list;
             }
             CoreDrillPlan drillPlan = new CoreDrillPlan();
             BeanUtils.copyProperties(plan, drillPlan);

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

@@ -80,7 +80,6 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 
-
 /**
  * 教育任务Service业务层处理
  *
@@ -565,11 +564,15 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
         final Map<Long, List<SysWorkTime>> listMap = workTimeList.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
 
         for (SysOrg org : orgList) {
-            final Map<Short, DateRange> rangeMap;
-            if (OrgTypeEnum.YINGYE_WANGDIAN.getCode().equals(org.getType()) && ObjectUtil.isNotEmpty(listMap.get(org.getId()))) {
-                rangeMap = splitTaskTime(plan.getExecTimes().shortValue(), DrillPlanCycleEnum.toCommonEnum(plan.getPlanCycle()), start, end, listMap.get(org.getId()));
+            Map<Short, DateRange> rangeMap;
+            if (OrgTypeEnum.YINGYE_WANGDIAN.getCode().equals(org.getType())) {
+                if (ObjectUtil.isNotEmpty(listMap.get(org.getId()))) {
+                    rangeMap = splitTaskTime(plan.getExecTimes().shortValue(), EduTrainingPlanCycleEnum.toCommonEnum(plan.getPlanCycle()), start, end, listMap.get(org.getId()));
+                } else {
+                    continue;
+                }
             } else {
-                continue;
+                rangeMap = splitTaskTime(plan.getExecTimes().shortValue(), EduTrainingPlanCycleEnum.toCommonEnum(plan.getPlanCycle()), start, end, null);
             }
             int x = 0;
             for (Map.Entry<Short, DateRange> rangeEntry : rangeMap.entrySet()) {
@@ -1215,7 +1218,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
 
     }
 
-    private List<CoreDrillPlan> selectPlanList(List<SysWorkTime> workTimeList){
+    private List<CoreDrillPlan> selectPlanList(List<SysWorkTime> workTimeList) {
         //营业的机构id
         List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
         List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectParentHs(workOrgIdList, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
@@ -1226,7 +1229,7 @@ public class CoreDrillTaskServiceImpl extends ServiceImpl<CoreDrillTaskMapper, C
                 .eq(CoreDrillPlan::getPlanCycle, EduTrainingPlanCycleEnum.DAILY.getCode())
                 .eq(CoreDrillPlan::getDeleted, 0)
                 .in(CoreDrillPlan::getBelongOrgId, collect)
-                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanCycle,CoreDrillPlan::getPlanName));
+                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanCycle, CoreDrillPlan::getPlanName));
     }
 
     private void dealTimeWorkChangeForWeekly(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {

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

@@ -714,7 +714,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         List<CoreEduTrainingPlan> list = new ArrayList<>();
         for (SysOrgVO sysOrg : planPublishOrgList) {
             if (checkOrgType(plan.getExecOrgType())) {
-                continue;
+                //走到这说明,执行机构中都是省联社/办事处 这些不需要子机话,所以直接返回,
+                //但是如果后期扩展多选执行机构类型,此处将不再适用
+                list.add(plan);
+                return list;
             }
             CoreEduTrainingPlan coreEduTrainingPlan = new CoreEduTrainingPlan();
             BeanUtils.copyProperties(plan, coreEduTrainingPlan);

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

@@ -573,15 +573,21 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
                 .eq(CoreEduTrainingTask::getPlanId, plan.getId())
                 .select(CoreEduTrainingTask::getId, CoreEduTrainingTask::getOrgId, CoreEduTrainingTask::getStartDate, CoreEduTrainingTask::getEndDate, CoreEduTrainingTask::getPlanId)
         );
-        final Map<Long, List<SysWorkTime>> listMap = workTimeList.stream().collect(Collectors.groupingBy(SysWorkTime::getOrgId));
+        final Map<Long, List<SysWorkTime>> listMap = workTimeList.stream().filter(time -> ObjectUtil.equal(time.getIsEnable(), 1L)).collect(Collectors.groupingBy(SysWorkTime::getOrgId));
 
         for (SysOrg org : orgList) {
-            final Map<Short, DateRange> rangeMap;
-            if (OrgTypeEnum.YINGYE_WANGDIAN.getCode().equals(org.getType())&&ObjectUtil.isNotEmpty(listMap.get(org.getId()))){
-                rangeMap = splitTaskTime(plan.getExecTimes().shortValue(), EduTrainingPlanCycleEnum.toCommonEnum(plan.getPlanCycle()), start, end, listMap.get(org.getId()));
-            }else {
-                continue;
+            Map<Short, DateRange> rangeMap;
+            if (OrgTypeEnum.YINGYE_WANGDIAN.getCode().equals(org.getType())) {
+                if (ObjectUtil.isNotEmpty(listMap.get(org.getId()))) {
+                    rangeMap = splitTaskTime(plan.getExecTimes().shortValue(), EduTrainingPlanCycleEnum.toCommonEnum(plan.getPlanCycle()), start, end, listMap.get(org.getId()));
+                } else {
+                    continue;
+                }
+            } else {
+                rangeMap = splitTaskTime(plan.getExecTimes().shortValue(), EduTrainingPlanCycleEnum.toCommonEnum(plan.getPlanCycle()), start, end, null);
             }
+
+
             int x = 0;
             for (Map.Entry<Short, DateRange> rangeEntry : rangeMap.entrySet()) {
                 final Short key = rangeEntry.getKey();
@@ -1110,18 +1116,18 @@ public class CoreEduTrainingTaskServiceImpl extends ServiceImpl<CoreEduTrainingT
 
     }
 
-    private List<CoreEduTrainingPlan> selectPlanList(List<SysWorkTime> workTimeList){
+    private List<CoreEduTrainingPlan> selectPlanList(List<SysWorkTime> workTimeList) {
         //营业的机构id
         List<Long> workOrgIdList = workTimeList.stream().map(SysWorkTime::getOrgId).collect(Collectors.toList());
         List<SysOrg> orgList = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectParentHs(workOrgIdList, SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
         final List<Long> collect = orgList.stream().map(SysOrg::getId).collect(Collectors.toList());
         return coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
-               // .eq(CoreEduTrainingPlan::getStandard, 0)
+                // .eq(CoreEduTrainingPlan::getStandard, 0)
                 .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
                 .eq(CoreEduTrainingPlan::getPlanCycle, EduTrainingPlanCycleEnum.DAILY.getCode())
                 .eq(CoreEduTrainingPlan::getDeleted, 0)
                 .in(CoreEduTrainingPlan::getBelongOrgId, collect)
-                .select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle,CoreEduTrainingPlan::getPlanName));
+                .select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanCycle, CoreEduTrainingPlan::getPlanName));
     }
 
     private void dealTimeWorkChangeForWeekly(WorkTimeChangeEvent event, String todayStr, List<SysWorkTime> futureWorkTime) {