Parcourir la source

教育培训、预案演练 统计页面 办事处和网点可以查询到 任务下拉

zhulu il y a 11 mois
Parent
commit
fb12c57ec3

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

@@ -29,6 +29,7 @@ import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDataVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanDetailVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanPageVo;
 import com.xunmei.common.core.domain.drill.vo.CoreDrillPlanRoleVo;
+import com.xunmei.common.core.domain.edu.domain.CoreEduTrainingPlan;
 import com.xunmei.common.core.domain.reminder.domain.CoreReminderSchedule;
 import com.xunmei.common.core.domain.reminder.vo.CoreReminderConfigurationFullVo;
 import com.xunmei.common.core.enums.BusinessPlanType;
@@ -39,6 +40,7 @@ import com.xunmei.common.core.enums.drill.DrillPlanCycleEnum;
 import com.xunmei.common.core.enums.drill.DrillPlanStatus;
 import com.xunmei.common.core.enums.edu.EduTrainingDoStatus;
 import com.xunmei.common.core.enums.edu.EduTrainingPlanCycleEnum;
+import com.xunmei.common.core.enums.edu.EduTrainingPlanStatus;
 import com.xunmei.common.core.exception.ServiceException;
 import com.xunmei.common.core.thread.ThreadPoolConfig;
 import com.xunmei.common.core.util.BeanHelper;
@@ -695,29 +697,101 @@ public class CoreDrillPlanServiceImpl extends ServiceImpl<CoreDrillPlanMapper, C
                 final List<CoreDrillPlan> sLsPlanList = getPlanList(orgId, 1, 1);
                 return sLsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(toList());
             case 2:
-                //办事处
-                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-                final List<CoreDrillPlan> lsPlanList = getPlanList(topOrg.getId(), 1, 1);
+                //办事处查询 办事处自己下发、以及省联社下发且在该办事处下有参与机构的任务
+                //1、由办事处机构获取到省联社机构,并获取到计划数据
+                //2、由办事处计划获取到下辖行社机构,并获取到由省联社下发到行社的计划数据
+                //3、对比第一步和第二步的计划,两种相同的任务名称交集才是该办事处需要看到的省联社下发计划
+                //4、办事处自己下发的任务
+
+//                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+//                final List<CoreDrillPlan> lsPlanList = getPlanList(topOrg.getId(), 1, 1);
+
+                //1、由办事处机构获取到省联社机构,并获取到计划数据
+                List<SysOrgVO> parentOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO slsOrgVo = parentOrgList.stream().filter(x -> ObjectUtil.equal(x.getType(), 1)).findFirst().orElse(null);
+                List<CoreDrillPlan> lsPlanList =new ArrayList<>();
+                if(ObjectUtil.isNotNull(slsOrgVo))
+                {
+                    lsPlanList = getPlanList(slsOrgVo.getId(), 1, 1);
+                }
+                //2、由办事处计划获取到下辖行社机构,并获取到由省联社下发到行社的计划数据
+                List<SysOrg> hsOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectChildHs(orgId,SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                List<CoreDrillPlan> bscHsPlanList = getPlanList(hsOrgList.stream().map(x->x.getId()).collect(toList()), 0,0);
+                //3、对比第一步和第二步的计划,两种相同的任务名称交集才是该办事处需要看到的省联社下发计划
+                lsPlanList=lsPlanList.stream().filter(ls->bscHsPlanList.stream().anyMatch(hs->ls.getPlanName().equals(hs.getPlanName()))).collect(toList());
+
+                //4、办事处自己下发的任务
                 final List<CoreDrillPlan> bscPlanList = getPlanList(orgId, 1, 1);
                 return Stream.of(lsPlanList, bscPlanList).flatMap(Collection::stream).map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(toList());
             case 3:
                 //行社
-                final List<CoreDrillPlan> hsPlanList = getPlanList(orgId, 0, 0);
+                final List<CoreDrillPlan> hsPlanList = getPlanList(orgId, null, null);
                 return hsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(toList());
+            case 4:
+                //网点
+                List<SysOrgVO> parentOrgList1= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO hsOrgVo = parentOrgList1.stream().filter(x -> ObjectUtil.equal(x.getType(), 3)).findFirst().orElse(null);
+                Long tempOrgId=orgId;
+                if(ObjectUtil.isNotNull(hsOrgVo))
+                {
+                    tempOrgId=hsOrgVo.getId();
+                }
+                final List<CoreDrillPlan> wdhsPlanList = getPlanList(tempOrgId, null, null);
+                return wdhsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             default:
                 return new ArrayList<>();
         }
     }
 
     private List<CoreDrillPlan> getPlanList(Long orgId, Integer standard, Integer issue) {
-        return coreDrillPlanMapper.selectList(new LambdaQueryWrapper<CoreDrillPlan>()
-                .eq(CoreDrillPlan::getBelongOrgId, orgId)
-                .eq(CoreDrillPlan::getStandard, standard)
-                .eq(CoreDrillPlan::getIssue, issue)
+        LambdaQueryWrapper<CoreDrillPlan> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(CoreDrillPlan::getBelongOrgId, orgId)
                 .eq(CoreDrillPlan::getDeleted, 0)
-                .eq(CoreDrillPlan::getPlanStatus, DrillPlanStatus.USING.getCode())
-                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName)
-        );
+                .eq(CoreDrillPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+        if(ObjectUtil.isNotNull(standard))
+        {
+            queryWrapper.eq(CoreDrillPlan::getStandard, standard);
+        }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreDrillPlan::getIssue, issue);
+        }
+        return coreDrillPlanMapper.selectList(queryWrapper.select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName));
+
+//        return coreDrillPlanMapper.selectList(new LambdaQueryWrapper<CoreDrillPlan>()
+//                .eq(CoreDrillPlan::getBelongOrgId, orgId)
+//                .eq(CoreDrillPlan::getStandard, standard)
+//                .eq(CoreDrillPlan::getIssue, issue)
+//                .eq(CoreDrillPlan::getDeleted, 0)
+//                .eq(CoreDrillPlan::getPlanStatus, DrillPlanStatus.USING.getCode())
+//                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName)
+//        );
+    }
+
+    private List<CoreDrillPlan> getPlanList(List<Long> orgIds, Integer standard, Integer issue) {
+
+        LambdaQueryWrapper<CoreDrillPlan> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(CoreDrillPlan::getBelongOrgId, orgIds)
+                .eq(CoreDrillPlan::getDeleted, 0)
+                .eq(CoreDrillPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+        if(ObjectUtil.isNotNull(standard))
+        {
+            queryWrapper.eq(CoreDrillPlan::getStandard, standard);
+        }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreDrillPlan::getIssue, issue);
+        }
+        return coreDrillPlanMapper.selectList(queryWrapper.select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName));
+
+//        return coreDrillPlanMapper.selectList(new LambdaQueryWrapper<CoreDrillPlan>()
+//                .in(CoreDrillPlan::getBelongOrgId, orgIds)
+//                .eq(CoreDrillPlan::getStandard, standard)
+//                .eq(CoreDrillPlan::getIssue, issue)
+//                .eq(CoreDrillPlan::getDeleted, 0)
+//                .eq(CoreDrillPlan::getPlanStatus, DrillPlanStatus.USING.getCode())
+//                .select(CoreDrillPlan::getId, CoreDrillPlan::getPlanName)
+//        );
     }
 
     private List<CoreDrillPlan> buildPlanData(CoreDrillPlan plan, int status) {

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

@@ -19,6 +19,7 @@ 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.drill.domain.CoreDrillPlan;
 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;
@@ -819,28 +820,93 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
                 return sLsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             case 2:
                 //办事处
-                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
-                final List<CoreEduTrainingPlan> lsPlanList = getPlanList(topOrg.getId(), 1, 1);
+//                SysOrg topOrg = RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectTopOrg(SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+//                List<SysOrgVO> parentOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+//                SysOrgVO slsOrgVo = parentOrgList.stream().filter(x -> ObjectUtil.equal(x.getType(), 1)).findFirst().orElse(null);
+//                List<CoreEduTrainingPlan> lsPlanList =new ArrayList<>();
+//                if(ObjectUtil.isNotNull(slsOrgVo) )
+//                {
+//                    lsPlanList = getPlanList(slsOrgVo.getId(), 1, 1);
+//                }
+
+                //1、由办事处机构获取到省联社机构,并获取到计划数据
+                List<SysOrgVO> parentOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO slsOrgVo = parentOrgList.stream().filter(x -> ObjectUtil.equal(x.getType(), 1)).findFirst().orElse(null);
+                List<CoreEduTrainingPlan> lsPlanList =new ArrayList<>();
+                if(ObjectUtil.isNotNull(slsOrgVo))
+                {
+                    lsPlanList = getPlanList(slsOrgVo.getId(), 1, 1);
+                }
+                //2、由办事处计划获取到下辖行社机构,并获取到由省联社下发到行社的计划数据
+                List<SysOrg> hsOrgList= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.selectChildHs(orgId,SecurityConstants.INNER), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                List<CoreEduTrainingPlan> bscHsPlanList = getPlanList(hsOrgList.stream().map(x->x.getId()).collect(toList()), 0,0);
+                //3、对比第一步和第二步的计划,两种相同的任务名称交集才是该办事处需要看到的省联社下发计划
+                lsPlanList=lsPlanList.stream().filter(ls->bscHsPlanList.stream().anyMatch(hs->ls.getPlanName().equals(hs.getPlanName()))).collect(toList());
+
+                //4、办事处自己下发的任务
+
                 final List<CoreEduTrainingPlan> bscPlanList = getPlanList(orgId, 1, 1);
                 return Stream.of(lsPlanList, bscPlanList).flatMap(Collection::stream).map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             case 3:
                 //行社
-                final List<CoreEduTrainingPlan> hsPlanList = getPlanList(orgId, 0, 0);
+                final List<CoreEduTrainingPlan> hsPlanList = getPlanList(orgId, null, null);
                 return hsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
+            case 4:
+                //网点
+                List<SysOrgVO> parentOrgList1= RemoteCallHandlerExecutor.executeRemoteCall(() -> orgService.getSelfAndAllParentOrgs(orgId), ErrorMsgConstants.QUERY_ORG_DATA_ERROR);
+                SysOrgVO hsOrgVo = parentOrgList1.stream().filter(x -> ObjectUtil.equal(x.getType(), 3)).findFirst().orElse(null);
+                Long tempOrgId=orgId;
+                if(ObjectUtil.isNotNull(hsOrgVo))
+                {
+                    tempOrgId=hsOrgVo.getId();
+                }
+                final List<CoreEduTrainingPlan> wdhsPlanList = getPlanList(tempOrgId, null, null);
+                return wdhsPlanList.stream().map(x -> new IdName<>(x.getId().toString(), x.getPlanName())).collect(Collectors.toList());
             default:
                 return new ArrayList<>();
         }
     }
 
     private List<CoreEduTrainingPlan> getPlanList(Long orgId, Integer standard, Integer issue) {
-        return coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
-                .eq(CoreEduTrainingPlan::getBelongOrgId, orgId)
-                .eq(CoreEduTrainingPlan::getStandard, standard)
-                .eq(CoreEduTrainingPlan::getIssue, issue)
+         LambdaQueryWrapper<CoreEduTrainingPlan> queryWrapper = new LambdaQueryWrapper<>();
+         queryWrapper.eq(CoreEduTrainingPlan::getBelongOrgId, orgId)
+                .eq(CoreEduTrainingPlan::getDeleted, 0)
+                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+         if(ObjectUtil.isNotNull(standard))
+         {
+             queryWrapper.eq(CoreEduTrainingPlan::getStandard, standard);
+         }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreEduTrainingPlan::getIssue, issue);
+        }
+        return coreEduTrainingPlanMapper.selectList(queryWrapper.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName));
+
+    }
+
+
+    private List<CoreEduTrainingPlan> getPlanList(List<Long> orgIds, Integer standard, Integer issue) {
+        LambdaQueryWrapper<CoreEduTrainingPlan> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(CoreEduTrainingPlan::getBelongOrgId, orgIds)
                 .eq(CoreEduTrainingPlan::getDeleted, 0)
-                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
-                .select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName)
-        );
+                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode());
+        if(ObjectUtil.isNotNull(standard))
+        {
+            queryWrapper.eq(CoreEduTrainingPlan::getStandard, standard);
+        }
+        if(ObjectUtil.isNotNull(issue))
+        {
+            queryWrapper.eq(CoreEduTrainingPlan::getIssue, issue);
+        }
+        return coreEduTrainingPlanMapper.selectList(queryWrapper.select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName));
+//        return coreEduTrainingPlanMapper.selectList(new LambdaQueryWrapper<CoreEduTrainingPlan>()
+//                .in(CoreEduTrainingPlan::getBelongOrgId, orgIds)
+//                .eq(CoreEduTrainingPlan::getStandard, standard)
+//                .eq(CoreEduTrainingPlan::getIssue, issue)
+//                .eq(CoreEduTrainingPlan::getDeleted, 0)
+//                .eq(CoreEduTrainingPlan::getPlanStatus, EduTrainingPlanStatus.USING.getCode())
+//                .select(CoreEduTrainingPlan::getId, CoreEduTrainingPlan::getPlanName)
+//        );
     }
 
     @Override