浏览代码

1.新增项目所属部门更新

WoNiu 4 年之前
父节点
当前提交
648e5197f5

+ 5 - 0
src/main/java/com/galaxis/manatee/controller/GetController.java

@@ -115,5 +115,10 @@ public class GetController {
         return ResponseEntity.ok(list);
     }
 
+    @GetMapping("/test/updateProjectDept")
+    public void updateProjectDept() {
+        chuanyunService.updateChuanyunDept();
+    }
+
 
 }

+ 13 - 1
src/main/java/com/galaxis/manatee/entity/chuanyun/data/object/ChuanyunProjectDO.java

@@ -151,7 +151,19 @@ public class ChuanyunProjectDO extends BasicDO {
     @Transient
     @JsonProperty(value = "F0000045Object")
     private ChuanyunObject[] projectManagerObject;
-//    private List<ChuanyunObject> projectManagerObject;
+
+    /**
+     * 拥有者
+     */
+    @JsonProperty("OwnerId")
+    private String ownerId;
+
+    /**
+     * 拥有者对象
+     */
+    @Transient
+    @JsonProperty("OwnerIdObject")
+    private ChuanyunObject ownerIdObject;
 
     public static ChuanyunProjectDTO toChuanyunProjectDTO(ChuanyunProjectDO chuanyunProjectDO){
         ChuanyunProjectDTO chuanyunProjectDTO=new ChuanyunProjectDTO();

+ 2 - 0
src/main/java/com/galaxis/manatee/service/ChuanyunService.java

@@ -16,4 +16,6 @@ public interface ChuanyunService {
     void updateProjectMember();
 
     List<ChuanyunCostCollectionDO> getAllCostCollection();
+
+    void updateChuanyunDept();
 }

+ 65 - 0
src/main/java/com/galaxis/manatee/service/impl/ChuanyunServiceImpl.java

@@ -10,6 +10,7 @@ import com.galaxis.manatee.constant.StringConstant;
 import com.galaxis.manatee.dao.ChuanyunCostCollectionDao;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunCostCollectionDO;
 import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunGroupProjectDO;
+import com.galaxis.manatee.entity.chuanyun.data.object.ChuanyunProjectDO;
 import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
 import com.galaxis.manatee.entity.chuanyun.dto.Filter;
 import com.galaxis.manatee.exception.BigSizeException;
@@ -100,6 +101,53 @@ public class ChuanyunServiceImpl implements ChuanyunService {
         return chuanyunCostCollectionDao.findAll();
     }
 
+    @Override
+    public void updateChuanyunDept() {
+        var objectMapper=new ObjectMapper();
+        var start=0;
+        var flag=true;
+        while (flag){
+            try {
+                //从氚云查询数据
+                var filter= Filter.instance(start,start+pageSize,true);
+                var chuanyunFindAllResponse=chuanYunManager.findAll(ChuanyunProjectDO.SCHEMA_CODE,filter);
+                if(chuanyunFindAllResponse.getReturnData()==null){
+                    flag=false;
+                    continue;
+                }
+                if(chuanyunFindAllResponse.getReturnData().getTotalCount()>=start+pageSize){
+                    start+=pageSize;
+                }else{
+                    flag=false;
+                }
+                //转化为POJO
+                List<ChuanyunProjectDO> result=objectMapper.convertValue(chuanyunFindAllResponse.getReturnData().getBizObjectArray(), new TypeReference<>(){});
+                result.forEach(chuanyunProjectDO ->  {
+                    //更新拥有者id,更新所属部门
+                    chuanyunProjectDO.setOwnerId(chuanyunProjectDO.getOwnerIdObject().getObjectId());
+                    ProjectUpdateDTO projectUpdateDTO = new ProjectUpdateDTO(chuanyunProjectDO);
+                    try {
+                        var groupProjectUpdateString=objectMapper.writeValueAsString(projectUpdateDTO);
+                        ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunProjectDO.SCHEMA_CODE,chuanyunProjectDO.getObjectId(),groupProjectUpdateString);
+                        if(chuanyunSaveDTO.getSuccessful()){
+                            log.info(chuanyunProjectDO.getObjectId()+"更新项目拥有者成功");
+
+                        }else{
+                            log.warn(chuanyunProjectDO.getObjectId()+"更新项目拥有者失败");
+                            log.warn(chuanyunProjectDO+"");
+                        }
+                    } catch (JsonProcessingException | BigSizeException e) {
+                        e.printStackTrace();
+                    }
+
+                });
+            }catch (Exception e){
+                log.error(e.getMessage());
+                e.printStackTrace();
+            }
+        }
+    }
+
     /**
      * 如果没有项目组成员,判断是否是EBG的实施、研发二开、售后维保项目,如果是,则添加EBG全体成员
      * @param chuanyunGroupProjectDO    项目对象
@@ -169,4 +217,21 @@ public class ChuanyunServiceImpl implements ChuanyunService {
             }
         }
     }
+
+    @Data
+    static class ProjectUpdateDTO{
+
+        @JsonProperty("OwnerId")
+        private String ownerId;
+
+        public ProjectUpdateDTO(ChuanyunProjectDO chuanyunProjectDO) {
+            if(null!=chuanyunProjectDO) {
+                if(null!=chuanyunProjectDO.getOwnerId()) {
+                    this.ownerId = chuanyunProjectDO.getOwnerId();
+                }
+            }
+        }
+    }
+
+
 }