Преглед на файлове

1.重新获取项目组织信息防止id为空

WoNiu преди 5 години
родител
ревизия
27fa606e7e
променени са 1 файла, в които са добавени 35 реда и са изтрити 27 реда
  1. 35 27
      src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

+ 35 - 27
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -140,23 +140,25 @@ public class ChuanyunBasicDataScheduledTask {
                         chuanyunGroupProjectDao.delete(tmpGroupProjectDO.get());
                     });
                     //新增项目组织信息
-//                    List<ChuanyunGroupProjectDetailDO> detaillist = new ArrayList<>();
-//                    for (ChuanyunCompanyDO chuanyunCompanyDO : chuanyunCompanyDao.findAll()) {
-//                        if (!chuanyunCompanyDO.getCompanyName().equals("浙江凯乐士无锡分公司")&&!chuanyunCompanyDO.getCompanyName().equals("GALAXIS Automation management GmbH")) {
-//                            ChuanyunGroupProjectDetailDO chuanyunGroupProjectDetailDO = new ChuanyunGroupProjectDetailDO();
-//                            chuanyunGroupProjectDetailDO.setCompanyName(chuanyunCompanyDO.getCompanyName());
-//                            chuanyunGroupProjectDetailDO.setType(chuanyunGroupProjectDO.getProjectType());
-//                            chuanyunGroupProjectDetailDO.setParentObjectId(chuanyunGroupProjectDO.getObjectId());
-//                            detaillist.add(chuanyunGroupProjectDetailDO);
-//                        }
-//                    }
-//                    chuanyunGroupProjectDO.setDetailList(detaillist);
+                    if (chuanyunGroupProjectDO.getDetailList() == null || chuanyunGroupProjectDO.getDetailList().size() == 1) {
+                        List<ChuanyunGroupProjectDetailDO> detaillist = new ArrayList<>();
+                        for (ChuanyunCompanyDO chuanyunCompanyDO : chuanyunCompanyDao.findAll()) {
+                            if (!chuanyunCompanyDO.getCompanyName().equals("浙江凯乐士无锡分公司")&&!chuanyunCompanyDO.getCompanyName().equals("GALAXIS Automation management GmbH")) {
+                                ChuanyunGroupProjectDetailDO chuanyunGroupProjectDetailDO = new ChuanyunGroupProjectDetailDO();
+                                chuanyunGroupProjectDetailDO.setCompanyName(chuanyunCompanyDO.getCompanyName());
+                                chuanyunGroupProjectDetailDO.setType(chuanyunGroupProjectDO.getProjectType());
+                                chuanyunGroupProjectDetailDO.setParentObjectId(chuanyunGroupProjectDO.getObjectId());
+                                detaillist.add(chuanyunGroupProjectDetailDO);
+                            }
+                        }
+                        chuanyunGroupProjectDO.setDetailList(detaillist);
+                    }
                     //将projectManger和projectOwner替换为主键
                     if(!StringUtils.isEmpty(chuanyunGroupProjectDO.getProjectOwner())){
                         chuanyunGroupProjectDO.setProjectOwner(chuanyunGroupProjectDO.getProjectOwnerObject().getObjectId());
                     }
                     //将项目组成员projectMember替换为主键
-                    if (chuanyunGroupProjectDO.getProjectMemberlist()!= null) {
+                    if (chuanyunGroupProjectDO.getProjectMemberlist() != null) {
                         var memberlist = new ArrayList<>();
                         var builder = new StringBuilder();
                         for (ChuanyunObject chuanyunObject: chuanyunGroupProjectDO.getProjectMemberObject()) {
@@ -167,21 +169,22 @@ public class ChuanyunBasicDataScheduledTask {
                         //替换为主键后更新氚云数据表来增加权限
                         chuanyunGroupProjectDO.setProjectMemberlist(memberlist.toArray(new String[0]));
                     }
-//                    //如果项目组成员为空,则自动为项目添加所有EBG成员作为项目组成员
-//                    if ("EBG".equals(chuanyunGroupProjectDO.getBusinessGroup())&&chuanyunGroupProjectDO.getProjectMemberlist().length==0&&
-//                            ("实施".equals(chuanyunGroupProjectDO.getProjectType())||"维保".equals(chuanyunGroupProjectDO.getProjectType())||
-//                                    "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||"售后".equals(chuanyunGroupProjectDO.getProjectType()))) {
-//                        List<String> projectmember = new ArrayList<>();
-//                        for (ChuanyunUserCompanyDO chuanyunUserCompanyDO : chuanyunUserCompanyDao.findAll()) {
-//                            if (chuanyunCompanyDao.findByObjectId(chuanyunUserCompanyDO.getCompanyId()).getBusinessGroup().equals("EBG")) {
-//                                builder.append(chuanyunUserCompanyDO.getUserId()+";");
-//                                projectmember.add(chuanyunUserCompanyDO.getUserId());
-//                            }
-//                        }
-//                        chuanyunGroupProjectDO.setProjectMember(builder.toString());
-//                        chuanyunGroupProjectDO.setProjectMemberlist(projectmember.toArray(new String[projectmember.size()]));
-//                        log.info("成员已更新");
-//                    }
+                    //如果项目组成员为空,则自动为项目添加所有EBG成员作为项目组成员
+                    if ("EBG".equals(chuanyunGroupProjectDO.getBusinessGroup())&&chuanyunGroupProjectDO.getProjectMemberlist()==null&&
+                            ("实施".equals(chuanyunGroupProjectDO.getProjectType())||"维保".equals(chuanyunGroupProjectDO.getProjectType())||
+                                    "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||"售后".equals(chuanyunGroupProjectDO.getProjectType()))) {
+                        var projectmember = new ArrayList<>();
+                        var builder = new StringBuilder();
+                        for (ChuanyunUserCompanyDO chuanyunUserCompanyDO : chuanyunUserCompanyDao.findAll()) {
+                            if (chuanyunCompanyDao.findByObjectId(chuanyunUserCompanyDO.getCompanyId()).getBusinessGroup().equals("EBG")) {
+                                builder.append(chuanyunUserCompanyDO.getUserId()+";");
+                                projectmember.add(chuanyunUserCompanyDO.getUserId());
+                            }
+                        }
+                        chuanyunGroupProjectDO.setProjectMember(builder.toString());
+                        chuanyunGroupProjectDO.setProjectMemberlist(projectmember.toArray(new String[projectmember.size()]));
+                        log.info("成员已更新");
+                    }
 
                     //通过更新集团项目中的EBG项目经理、IBG项目经理
                     //TODO 测试结束后需要扩大范围到所有项目
@@ -201,6 +204,10 @@ public class ChuanyunBasicDataScheduledTask {
                             if(chuanyunSaveDTO.getSuccessful()){
                                 log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目经理成功"+groupProjectUpdateString);
                                 updateFlag=true;
+                                //更新成功之后重新获取集团项目组信息,防止id为空
+                                var chuanyunFindResponse =  chuanYunManager.find(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId());
+                                ChuanyunGroupProjectDO chuanyunGroupProjectDO1 = objectMapper.convertValue(chuanyunFindResponse.getReturnData().getBizObject(), new TypeReference<>(){});
+                                chuanyunGroupProjectDO.setDetailList(chuanyunGroupProjectDO1.getDetailList());
                             }else{
                                 log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目经理失败"+groupProjectUpdateString);
                                 log.warn(chuanyunGroupProjectDO+"");
@@ -484,6 +491,7 @@ public class ChuanyunBasicDataScheduledTask {
          */
         @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
         @JsonProperty("D001789Fd992bf8fbe114c9babe0f98cf676f8a2")
+//        @JsonProperty("D001789Fvspc68z01idftf5nqt66pkuc0")
         private List<ChuanyunGroupProjectDetailDO> detailList;