Преглед изворни кода

1.修改手动更新项目组成员

WoNiu пре 5 година
родитељ
комит
6c1c93dd2d
1 измењених фајлова са 72 додато и 7 уклоњено
  1. 72 7
      src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java

+ 72 - 7
src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java

@@ -1,5 +1,6 @@
 package com.galaxis.manatee.service.impl;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.core.type.TypeReference;
 import com.fasterxml.jackson.databind.ObjectMapper;
@@ -12,6 +13,7 @@ import com.galaxis.manatee.manager.ChuanYunManager;
 import com.galaxis.manatee.service.ChuanyunService;
 import com.galaxis.manatee.task.ChuanyunBasicDataScheduledTask;
 import com.galaxis.manatee.task.ChuanyunHumanResourceScheduledTask;
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
@@ -62,25 +64,24 @@ public class ChuanyunServiceImpl implements ChuanyunService {
                 result.forEach(chuanyunGroupProjectDO ->  {
 
                     //处理项目对象中的项目成员数据(改为手动调用处理)
+                    GroupProjectUpdateDTO groupProjectUpdateDTO= new GroupProjectUpdateDTO();
                     chuanyunBasicDataScheduledTask.projectMemberCheck(chuanyunGroupProjectDO);
                     try {
-                        ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),objectMapper.writeValueAsString(chuanyunGroupProjectDO));
+                        groupProjectUpdateDTO=new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
+                        var groupProjectUpdateString=objectMapper.writeValueAsString(groupProjectUpdateDTO);
+                        ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectUpdateString);
                         if(chuanyunSaveDTO.getSuccessful()){
-                            log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目经理成功");
+                            log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员成功");
 
                         }else{
-                            log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目经理失败");
+                            log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目组成员失败");
                             log.warn(chuanyunGroupProjectDO+"");
-                            Thread.sleep(5000L);
                         }
                     } catch (BigSizeException e) {
                         e.printStackTrace();
                     } catch (JsonProcessingException e) {
                         e.printStackTrace();
-                    } catch (InterruptedException e) {
-                        e.printStackTrace();
                     }
-
                 });
                 chuanyunGroupProjectDao.saveAll(result);
             }catch (Exception e){
@@ -89,4 +90,68 @@ public class ChuanyunServiceImpl implements ChuanyunService {
             }
         }
     }
+
+    /**
+     * 用于刷新项目经理权限的对象
+     */
+    @Data
+    class GroupProjectUpdateDTO{
+//        /**
+//         * 项目总监
+//         * U9项目责任人
+//         */
+//        @JsonProperty(value = "F0000006")
+//        private String projectOwner;
+//
+//        /**
+//         * IBG项目经理
+//         */
+//        @JsonProperty("F0000012")
+//        private String ibgProjectManager;
+//
+//        /**
+//         * EBG项目经理
+//         */
+//        @JsonProperty("F0000011")
+//        private String ebgProjectManager;
+
+        /**
+         * 项目组成员(前端传数据用)
+         */
+        @JsonProperty("F0000034")
+        private String[] projectMemberList;
+
+//        /**
+//         * 项目组织信息
+//         * TODO 这个DTO是用于更新氚云数据的,不需要使用@OneToMany注解吧?使用目的是啥
+//         */
+//        @OneToMany(cascade = CascadeType.ALL, orphanRemoval = true,fetch = FetchType.EAGER)
+//        @JsonProperty("D001789Fd992bf8fbe114c9babe0f98cf676f8a2")
+////        @JsonProperty("D001789Fvspc68z01idftf5nqt66pkuc0")
+//        private List<ChuanyunGroupProjectDetailDO> detailList;
+
+        public GroupProjectUpdateDTO() {
+        }
+
+        public GroupProjectUpdateDTO(ChuanyunGroupProjectDO chuanyunGroupProjectDO) {
+            if(null!=chuanyunGroupProjectDO){
+//                if(null!=chuanyunGroupProjectDO.getProjectOwnerObject()){
+//                    this.projectOwner=chuanyunGroupProjectDO.getProjectOwnerObject().getObjectId();
+//                }
+//                if(null!=chuanyunGroupProjectDO.getIbgProjectManagerObject()){
+//                    this.ibgProjectManager=chuanyunGroupProjectDO.getIbgProjectManagerObject().getObjectId();
+//                }
+//                if(null!=chuanyunGroupProjectDO.getEbgProjectManagerObject()){
+//                    this.ebgProjectManager=chuanyunGroupProjectDO.getEbgProjectManagerObject().getObjectId();
+//                }
+                //TODO 更新项目经理时更新项目组织信息会是这两个业务流程耦合,不方便后续维护需要考虑单独一个DTO作为更新项目组织信息的对象
+                if(null!=chuanyunGroupProjectDO.getProjectMemberList()){
+                    this.projectMemberList =chuanyunGroupProjectDO.getProjectMemberList();
+                }
+//                if(null!=chuanyunGroupProjectDO.getDetailList()){
+//                    this.detailList=chuanyunGroupProjectDO.getDetailList();
+//                }
+            }
+        }
+    }
 }