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

更新集团项目信息流程中添加更新集团项目表项目负责人、EBGIBG项目经理功能,用于解决自动插入数据没有数据权限的问题。

verguenza пре 5 година
родитељ
комит
deec002c9a

+ 25 - 0
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunGroupProjectDO.java

@@ -82,6 +82,31 @@ public class ChuanyunGroupProjectDO extends BasicDO {
     private String projectOwner;
 
     /**
+     * IBG项目经理
+     */
+    @JsonProperty("F0000012")
+    private String ibgProjectManager;
+
+    /**
+     * EBG项目经理
+     */
+    @JsonProperty("F0000011")
+    private String ebgProjectManager;
+
+    /**
+     * 项目总监数据对象
+     */
+    @Transient
+    @JsonProperty(value = "F0000012Object")
+    private ChuanyunObject ibgProjectManagerObject;
+    /**
+     * 项目总监数据对象
+     */
+    @Transient
+    @JsonProperty(value = "F0000011Object")
+    private ChuanyunObject ebgProjectManagerObject;
+
+    /**
      * 项目总监数据对象
      */
     @Transient

+ 69 - 1
src/main/java/com/galaxis/manatee/task/ChuanyunBasicDataScheduledTask.java

@@ -1,5 +1,7 @@
 package com.galaxis.manatee.task;
 
+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;
 import com.galaxis.manatee.constant.ChuanYunConstant;
@@ -7,6 +9,7 @@ import com.galaxis.manatee.dao.*;
 import com.galaxis.manatee.entity.chuanyun.data.object.*;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.manager.ChuanYunManager;
+import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
@@ -23,7 +26,7 @@ import java.util.List;
 @Slf4j
 public class ChuanyunBasicDataScheduledTask {
 
-    private final Integer pageSize=20; final ObjectMapper objectMapper=new ObjectMapper();
+    private final Integer pageSize=20;
     private final ChuanYunManager chuanYunManager;
     private final ChuanyunGroupProjectDao chuanyunGroupProjectDao;
     private final ChuanyunUserDao chuanyunUserDao;
@@ -69,6 +72,7 @@ public class ChuanyunBasicDataScheduledTask {
      * 从氚云中获取用户列表
      */
     private void getUserList() {
+        var objectMapper=new ObjectMapper();
         var chuanyunFindAllDTO=chuanYunManager.findAll(ChuanyunUserDO.APP_CODE,ChuanyunUserDO.ACTION_NAME,ChuanyunUserDO.CONTROLLER);
         var totalCount=0;
         try {
@@ -91,6 +95,7 @@ public class ChuanyunBasicDataScheduledTask {
      * 从氚云获取集团项目信息
      */
     private void getGroupProject(){
+        var objectMapper=new ObjectMapper();
         var start=0;
         var totalCount=0L;
         var flag=true;
@@ -123,6 +128,22 @@ public class ChuanyunBasicDataScheduledTask {
                     if(!StringUtils.isEmpty(chuanyunGroupProjectDO.getProjectOwner())){
                         chuanyunGroupProjectDO.setProjectOwner(chuanyunGroupProjectDO.getProjectOwnerObject().getObjectId());
                     }
+                    //通过更新集团项目中的EBG项目经理、IBG项目经理
+                    //TODO 测试结束后需要扩大范围到所有项目
+                    if ("实施".equals(chuanyunGroupProjectDO.getProjectType())&&"EBG".equals(chuanyunGroupProjectDO.getBusinessGroup())){
+                        GroupProjectUpdateDTO groupProjectUpdateDTO=new GroupProjectUpdateDTO();
+                        try {
+                            chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),objectMapper.writeValueAsString(groupProjectUpdateDTO));
+                        } catch (JsonProcessingException e) {
+                            e.printStackTrace();
+                        }
+                        groupProjectUpdateDTO=new GroupProjectUpdateDTO(chuanyunGroupProjectDO);
+                        try {
+                            chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),objectMapper.writeValueAsString(groupProjectUpdateDTO));
+                        } catch (JsonProcessingException e) {
+                            e.printStackTrace();
+                        }
+                    }
                 });
                 chuanyunGroupProjectDao.saveAll(result);
             }catch (Exception e){
@@ -137,6 +158,7 @@ public class ChuanyunBasicDataScheduledTask {
      * 获取供应商信息
      */
     private void getSupplier(){
+        var objectMapper=new ObjectMapper();
         var start=0;
         var totalCount=0L;
         var flag=true;
@@ -172,6 +194,7 @@ public class ChuanyunBasicDataScheduledTask {
      * 更新公司信息
      */
     private void getCompany(){
+        var objectMapper=new ObjectMapper();
         var start=0;
         var totalCount=0L;
         var flag=true;
@@ -207,6 +230,7 @@ public class ChuanyunBasicDataScheduledTask {
      * 更新成本中心
      */
     private void getCost(){
+        var objectMapper=new ObjectMapper();
         var start=0;
         var totalCount=0L;
         var flag=true;
@@ -242,6 +266,7 @@ public class ChuanyunBasicDataScheduledTask {
      * 获取人员-归属公司信息
      */
     private void getUserCompany(){
+        var objectMapper=new ObjectMapper();
         var start=0;
         var totalCount=0L;
         var flag=true;
@@ -287,6 +312,7 @@ public class ChuanyunBasicDataScheduledTask {
      * 获取报销科目
      */
     private void getReimbursementSubject(){
+        var objectMapper=new ObjectMapper();
         var start=0;
         var totalCount=0L;
         var flag=true;
@@ -317,4 +343,46 @@ public class ChuanyunBasicDataScheduledTask {
         }
         log.info("报销科目信息保存保存"+totalCount);
     }
+
+    /**
+     * 用于刷新项目经理权限的对象
+     */
+    @Data
+    class GroupProjectUpdateDTO{
+        /**
+         * 项目总监
+         * U9项目责任人
+         */
+        @JsonProperty(value = "F0000006")
+        private String projectOwner;
+
+        /**
+         * IBG项目经理
+         */
+        @JsonProperty("F0000012")
+        private String ibgProjectManager;
+
+        /**
+         * EBG项目经理
+         */
+        @JsonProperty("F0000011")
+        private String ebgProjectManager;
+
+        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();
+                }
+            }
+        }
+    }
 }

+ 4 - 2
src/main/java/com/galaxis/manatee/task/ChuanyunHumanResourceScheduledTask.java

@@ -36,8 +36,10 @@ public class ChuanyunHumanResourceScheduledTask {
         this.chuanyunGroupProjectDao = chuanyunGroupProjectDao;
     }
 
-    //    @Scheduled(cron = "0 0 3 * * *")
-    @Scheduled(fixedDelay = 1000000000L)
+    /**
+     * 每天3点更新日志记录
+     */
+    @Scheduled(cron = "0 0 3 * * *")
     private void updateLog() {
         var objectMapper = new ObjectMapper();
         var start = 0;