Jelajahi Sumber

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

jiawuxian 2 tahun lalu
induk
melakukan
4ffbc5dd4a

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/access/service/impl/TMonitoringRetrievalPlanServiceImpl.java

@@ -86,7 +86,7 @@ public class TMonitoringRetrievalPlanServiceImpl extends ServiceImpl<TMonitoring
         //下穿
         List<SysOrg> data = remoteOrgService.selectSysOrgByParentId(MINUS_ONE.longValue(), SecurityConstants.INNER);
         if (null == tMonitoringRetrievalPlan.getOrgId()) {
-            tMonitoringRetrievalPlan.setOrgId(data.get(0).getId());
+            tMonitoringRetrievalPlan.setOrgId(SecurityUtils.getLoginUser().getOrgId());
         }
         Boolean checkSub = tMonitoringRetrievalPlan.getCheckSub();
         if (Boolean.TRUE.equals(checkSub)) {

+ 1 - 1
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/controller/CoreEduTrainingTaskController.java

@@ -90,7 +90,7 @@ public class CoreEduTrainingTaskController extends BaseController {
     }
 
     @ApiOperation(value = "教育培训签名")
-    @RequiresPermissions("core:eduTask:sign")
+    @RequiresPermissions("core:eduTask:edit")
     @PostMapping("sign")
     public AjaxResult sign(@RequestBody @Validated CoreEduTrainingTaskSignDto request) {
         return success(coreEduTrainingTaskService.sign(request));

+ 1 - 0
soc-modules/soc-modules-core/src/main/java/com/xunmei/core/edu/mapper/CoreEduTrainingPlanMapper.java

@@ -78,4 +78,5 @@ public interface CoreEduTrainingPlanMapper extends BaseMapper<CoreEduTrainingPla
     List<CoreEduTrainingPlanPageVo> selectChildrenPlan(@Param("request") CoreEduTrainingPlanPageDto request);
 
     List<Long> selectIdByParentId(@Param("planId") Long planId);
+    List<Long> selectAllIdByParentId(@Param("planId") Long planId);
 }

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

@@ -238,7 +238,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         //此处判断能否修改,如果可以 需要删除任务,且还需要判断是否需要生成任务
         Boolean can = checkCanUpdate(request, plan);
         if (!can) {
-            throw new RuntimeException("当前任务已生成且存在已执行情况,无法修改培训机构类型,具体培训机构,培训角色,培训周期等信息!");
+            throw new RuntimeException("当前任务已生成且存在已执行情况,无法修改培训机构类型,具体培训机构,培训角色,培训周期,状态等信息!");
         }
         //可以修改计划
         BeanUtils.copyProperties(request, plan);
@@ -269,7 +269,7 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         }
         Long planId = plan.getId();
         //删除原有数据, 然后重新生成计划,任务
-        List<Long> planIdList = coreEduTrainingPlanMapper.selectIdByParentId(planId);
+        List<Long> planIdList = coreEduTrainingPlanMapper.selectAllIdByParentId(planId);
         if (ObjectUtil.isNotEmpty(planIdList)) {
             coreEduTrainingPlanMapper.deleteBatchIds(planIdList);
             coreEduTrainingPlanToExecOrgMapper.delete(new LambdaQueryWrapper<CoreEduTrainingPlanToExecOrg>().in(CoreEduTrainingPlanToExecOrg::getPlanId, planIdList));
@@ -284,6 +284,11 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         }
         List<CoreEduTrainingPlan> planList = buildPlanData(plan, trainingPlanToRoleList);
 
+        if (plan.getPlanStatus()==1){
+            log.info("计划已被修改为禁用,不再生成任务!");
+            return;
+        }
+
         for (CoreEduTrainingPlan trainingPlan : planList) {
             CoreEduTrainingPlanDataVo dataVo = getCoreEduTrainingPlanDataVo(trainingPlan.getId());
             CompletableFuture.runAsync(() -> {
@@ -306,6 +311,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
             //TODO 考虑是否同步修改已生成的任务的名称
             return;
         }
+        if (plan.getPlanStatus()==1){
+            log.info("计划已被修改为禁用,不再生成任务!");
+            return;
+        }
         //此为情况一,计划没有生成任务或者生成了任务但未执行
         final CoreEduTrainingPlanDataVo dataVo = getCoreEduTrainingPlanDataVo(plan.getId());
         if (ObjectUtil.equal(1, plan.getBuildTaskNow()) && ObjectUtil.equal(0, plan.getPlanStatus())) {
@@ -334,6 +343,10 @@ public class CoreEduTrainingPlanServiceImpl extends ServiceImpl<CoreEduTrainingP
         if (standardPlanHasDone != null) {
             throw new RuntimeException("该计划下存在任务已执行的情况,无法修改!");
         }
+        //计划状态
+        if (ObjectUtil.notEqual(request.getPlanStatus(), plan.getPlanStatus())) {
+            flag = false;
+        }
         //计划周期
         if (ObjectUtil.notEqual(request.getPlanCycle(), plan.getPlanCycle())) {
             flag = false;

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

@@ -595,4 +595,11 @@
           and deleted = 0
           and plan_status = 0
     </select>
+
+    <select id="selectAllIdByParentId" resultType="java.lang.Long">
+        select id
+        from core_edu_training_plan
+        where parent_id = #{planId}
+          and deleted = 0
+    </select>
 </mapper>

+ 2 - 0
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/domain/FjnxOrg.java

@@ -267,4 +267,6 @@ public class FjnxOrg implements Serializable {
     @ApiModelProperty(value = "业务父级编码")
     @TableField("tree_show_parent_code")
     private String treeShowParentCode;
+
+
 }

+ 154 - 36
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXSyncServiceImpl.java

@@ -178,7 +178,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         if (ObjectUtil.isEmpty(existOrgList)) {
             List<SysOrg> rList = FjnxOrgsConvertToSysOrgs(fjnxOrgList);
             resetParentIdAndPath(rList);
-            resetTreeParentIdAndPath(rList);
+//            resetTreeParentIdAndPath(rList);
             final R<Boolean> listR = remoteOrgService.batchSaveSyncOrg(rList, SecurityConstants.INNER);
             if (listR != null && listR.getCode() != 200) {
                 log.error("调用远程服务接口remoteOrgService.batchSaveSyncOrg 失败:{}", listR.getMsg());
@@ -217,7 +217,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         existOrgList.addAll(addList);
 
         resetParentIdAndPath(existOrgList);
-        resetTreeParentIdAndPath(existOrgList);
+//        resetTreeParentIdAndPath(existOrgList);
 
         final R<Boolean> listR = remoteOrgService.batchSaveSyncOrg(existOrgList, SecurityConstants.INNER);
         if (ObjectUtil.isNotEmpty(listR) && listR.getCode() != 200) {
@@ -267,50 +267,146 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
 //        return;
     }
 
-    public void resetParentIdAndPath(List<SysOrg> orgList) {
-        orgList.stream().forEach(x -> {
-            x.setPath("");
+    public void resetSyncOrgParentId(List<SysOrg> orgList)
+    {
+        orgList.stream().filter(org->org.getSource()==1).forEach(org->{
+            resetOrgParentId(org,orgList);
+            resetOrgTreeShowParentId(org,orgList);
+//            if(StringUtil.isNullOrEmpty(org.getParentGuid())){
+//                org.setParentId(-1L);
+//            }
+//            else{
+//                Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg -> !StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(org.getParentGuid())).findFirst();
+//                if(parentOrgOptional.isPresent())
+//                {
+//                    org.setParentId(parentOrgOptional.get().getId());
+//                }
+//            }
         });
-        final List<SysOrg> collect = orgList.stream().filter(topOrg -> StringUtil.isNullOrEmpty(topOrg.getParentGuid()) && 0 == topOrg.getDeleted()).collect(Collectors.toList());
-        collect.forEach(org -> {
+    }
+
+    public void resetOrgParentId(SysOrg org, List<SysOrg> orgList){
+        if(StringUtil.isNullOrEmpty(org.getParentGuid())){
             org.setParentId(-1L);
-//            org.setLevel(1);
-            org.setPath(org.getId() + "-");
+        }
+        else{
+            Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg -> !StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(org.getParentGuid())).findFirst();
+            if(parentOrgOptional.isPresent())
+            {
+                org.setParentId(parentOrgOptional.get().getId());
+            }
+        }
+    }
+
+    public void resetOrgTreeShowParentId(SysOrg org, List<SysOrg> orgList){
+        if(StringUtil.isNullOrEmpty(org.getTreeParentCode())){
+            org.setTreeShowParentId(-1L);
+        }
+        else{
+            Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg -> !StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(org.getTreeParentCode())).findFirst();
+            if(parentOrgOptional.isPresent())
+            {
+                org.setTreeShowParentId(parentOrgOptional.get().getId());
+            }
+        }
+    }
+
+    public void resetAllOrgPath(List<SysOrg> orgList){
+        resetOrgPath(orgList);
+        resetOrgTreePath(orgList);
+    }
+
+    public void resetOrgPath(List<SysOrg> orgList)
+    {
+
+        final List<SysOrg> collect = orgList.stream().filter(topOrg -> ObjectUtil.isNull(topOrg.getParentId())).collect(Collectors.toList());
+        final List<SysOrg> topOrgList = orgList.stream().filter(topOrg -> ObjectUtil.equal(topOrg.getParentId(),-1L)).collect(Collectors.toList());
+        topOrgList.forEach(topOrg->{
+            topOrg.setPath(topOrg.getId() + "-");
+            resetChildOrgPath(topOrg,orgList);
         });
+    }
 
-        orgList.forEach(org -> {
+    public void resetChildOrgPath(SysOrg parentOrg,List<SysOrg> orgList)
+    {
+        List<SysOrg> childOrgList = orgList.stream().filter(childOrg ->ObjectUtil.equal(childOrg.getParentId(),parentOrg.getId())).collect(Collectors.toList());
+        if(childOrgList.size()==0) {
+            return;
+        }
+        childOrgList.stream().forEach(org->{
+            org.setPath(parentOrg.getPath() + org.getId() + "-");
+            resetChildOrgPath(org,orgList);
+        });
 
-//            if (org.getParentId() != null) {
-//                return;
-//            }
+    }
 
-            if (org.getDeleted().equals(1)) {
-                // 已删除
-                return;
-            }
+    public void resetOrgTreePath(List<SysOrg> orgList)
+    {
+        final List<SysOrg> topOrgList = orgList.stream().filter(topOrg ->ObjectUtil.equal(topOrg.getTreeShowParentId(),-1L)).collect(Collectors.toList());
+        topOrgList.forEach(topOrg->{
+            topOrg.setTreeShowPath(topOrg.getId() + "-");
+            resetChildOrgTreePath(topOrg,orgList);
+        });
+    }
 
-            if (!StringUtil.isNullOrEmpty(org.getParentGuid())) {
-                Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg -> !StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(org.getParentGuid())).findFirst();
-                if (parentOrgOptional.isPresent()) {
-                    org.setParentId(parentOrgOptional.get().getId());
-                    if (StringUtil.isNullOrEmpty(parentOrgOptional.get().getPath())) {
-                        List<SysOrg> childOrg = new ArrayList<>();
-                        childOrg.add(org);
-                        resetParentOrgPath(parentOrgOptional.get(), childOrg, orgList);
-                    } else {
-                        org.setPath(parentOrgOptional.get().getPath() + org.getId() + "-");
-                    }
-                } else {
-                    log.error("机构【{}】机构编码【{}】父级机构编码【{}】,父级机构未找到;{}", org.getName(), org.getGuid(), org.getParentGuid(), org);
-                }
-            } else {
-                org.setParentId(-1L);
-//                org.setLevel(1);
-                org.setPath(org.getId() + "-");
-            }
+    public void resetChildOrgTreePath(SysOrg parentOrg,List<SysOrg> orgList)
+    {
+        List<SysOrg> childOrgList = orgList.stream().filter(childOrg ->ObjectUtil.equal(childOrg.getTreeShowParentId(),parentOrg.getId())).collect(Collectors.toList());
+        if(childOrgList.size()==0) {
+            return;
+        }
+        childOrgList.stream().forEach(org->{
+            org.setTreeShowPath(parentOrg.getTreeShowPath() + org.getId() + "-");
+            resetChildOrgTreePath(org,orgList);
         });
     }
 
+
+
+    public void resetParentIdAndPath(List<SysOrg> orgList) {
+        resetSyncOrgParentId(orgList);
+        resetAllOrgPath(orgList);
+
+//        orgList.stream().forEach(x -> {
+//            x.setPath("");
+//        });
+//        final List<SysOrg> collect = orgList.stream().filter(topOrg -> StringUtil.isNullOrEmpty(topOrg.getParentGuid()) && 0 == topOrg.getDeleted()).collect(Collectors.toList());
+//        collect.forEach(org -> {
+//            org.setParentId(-1L);
+//            org.setPath(org.getId() + "-");
+//        });
+//
+//        orgList.forEach(org -> {
+//            if (org.getDeleted().equals(1)) {
+//                // 已删除
+//                return;
+//            }
+//
+//            if(org.getSource()==0) {
+//                return;
+//            }
+//
+//            if (!StringUtil.isNullOrEmpty(org.getParentGuid())) {
+//                Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg -> !StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(org.getParentGuid())).findFirst();
+//                if (parentOrgOptional.isPresent()) {
+//                    org.setParentId(parentOrgOptional.get().getId());
+//                    if (StringUtil.isNullOrEmpty(parentOrgOptional.get().getPath())) {
+//                        List<SysOrg> childOrg = new ArrayList<>();
+//                        childOrg.add(org);
+//                        resetParentOrgPath(parentOrgOptional.get(), childOrg, orgList);
+//                    } else {
+//                        org.setPath(parentOrgOptional.get().getPath() + org.getId() + "-");
+//                    }
+//                } else {
+//                    log.error("机构【{}】机构编码【{}】父级机构编码【{}】,父级机构未找到;{}", org.getName(), org.getGuid(), org.getParentGuid(), org);
+//                }
+//            } else {
+//                org.setParentId(-1L);
+//                org.setPath(org.getId() + "-");
+//            }
+//        });
+    }
+
     public void resetParentOrgPath(SysOrg parentOrg, List<SysOrg> childOrg, List<SysOrg> orgList) {
         Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg -> !StringUtil.isNullOrEmpty(pOrg.getGuid()) && pOrg.getGuid().equals(parentOrg.getParentGuid())).findFirst();
         if (parentOrgOptional.isPresent()) {
@@ -328,6 +424,24 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         }
     }
 
+    public void resetSystemParentOrgPath(SysOrg parentOrg, List<SysOrg> childOrg, List<SysOrg> orgList) {
+        Optional<SysOrg> parentOrgOptional = orgList.stream().filter(pOrg -> pOrg.getId().equals(parentOrg.getParentId())).findFirst();
+        if (parentOrgOptional.isPresent()) {
+            parentOrg.setParentId(parentOrgOptional.get().getId());
+            if (!StringUtil.isNullOrEmpty(parentOrgOptional.get().getPath())) {
+                retOrgPath(parentOrgOptional.get(), parentOrg);
+                retChildOrgPath(parentOrg, childOrg);
+            } else {
+
+                childOrg.add(parentOrg);
+                resetSystemParentOrgPath(parentOrgOptional.get(), childOrg, orgList);
+            }
+        } else {
+            log.error("机构【{}】机构编码【{}】父级机构编码【{}】,父级机构未找到;{}", parentOrg.getName(), parentOrg.getGuid(), parentOrg.getParentGuid(), parentOrg);
+        }
+    }
+
+
     public void retOrgPath(SysOrg parentOrg, SysOrg org) {
         org.setParentId(parentOrg.getId());
 /*        if (parentOrg.getLevel() != null) {
@@ -716,6 +830,9 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         final ArrayList<FjnxOrg> resultList = new ArrayList<>();
         Date syncDateTime = new Date();
         list.forEach(item -> {
+            if(StringUtil.isNullOrEmpty(item.getOrgCode())) {
+                return;
+            }
             FjnxOrg tempOrg = new FjnxOrg();
             BeanUtils.copyBeanProp(tempOrg, item);
 
@@ -730,6 +847,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
                     tempOrg.setTreeShowParentCode(item.getOrgParent());
                 } else {
                     log.error("设置fjnx业务父级机构失败,机构名称:{},机构编码:{},业务父级机构编码:{}", item.getOrgName(), first.get().getOrgCode(), first.get().getBusinessParentCode());
+                    return;
                 }
             }
             resultList.add(tempOrg);

+ 5 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysOrgServiceImpl.java

@@ -222,7 +222,11 @@ public class SysOrgServiceImpl extends ServiceImpl<SysOrgMapper, SysOrg> impleme
     public SysOrg selectByParentId(Long orgId) {
         LambdaQueryWrapper<SysOrg> wrapper = new LambdaQueryWrapper<>();
         wrapper.eq(SysOrg::getParentId, orgId);
-        return sysOrgMapper.selectOne(wrapper);
+        List<SysOrg> selectList = sysOrgMapper.selectList(wrapper);
+        if (selectList.size()>0){
+            return selectList.get(0);
+        }
+        return null;
     }
 
     @Override