|
@@ -3,9 +3,7 @@ package com.galaxis.manatee.task;
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
-import com.galaxis.capsule.bo.ChuanyunObject;
|
|
|
|
import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
import com.galaxis.manatee.constant.ChuanYunConstant;
|
|
-import com.galaxis.manatee.constant.StringConstant;
|
|
|
|
import com.galaxis.manatee.dao.*;
|
|
import com.galaxis.manatee.dao.*;
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.*;
|
|
import com.galaxis.manatee.entity.chuanyun.data.object.*;
|
|
import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
import com.galaxis.manatee.entity.chuanyun.dto.ChuanyunSaveDTO;
|
|
@@ -147,7 +145,7 @@ public class ChuanyunBasicDataScheduledTask {
|
|
});
|
|
});
|
|
|
|
|
|
//处理项目对象中的项目成员数据(改为手动调用处理)
|
|
//处理项目对象中的项目成员数据(改为手动调用处理)
|
|
-// projectMemberCheck(chuanyunGroupProjectDO);
|
|
|
|
|
|
+ projectMemberListCheck(chuanyunGroupProjectDO);
|
|
//处理项目对象中的项目经理、项目负责人数据
|
|
//处理项目对象中的项目经理、项目负责人数据
|
|
projectManagerCheck(chuanyunGroupProjectDO);
|
|
projectManagerCheck(chuanyunGroupProjectDO);
|
|
});
|
|
});
|
|
@@ -161,6 +159,45 @@ public class ChuanyunBasicDataScheduledTask {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 更新项目成员方法
|
|
|
|
+ * @param chuanyunGroupProjectDO 项目对象
|
|
|
|
+ */
|
|
|
|
+ private void projectMemberListCheck(ChuanyunGroupProjectDO chuanyunGroupProjectDO){
|
|
|
|
+ var objectMapper=new ObjectMapper();
|
|
|
|
+ //第一步,清除项目负责人、项目经理数据。保证能够触发权限修改流程
|
|
|
|
+ GroupProjectMemberListUpdateDTO groupProjectMemberListUpdateDTO=new GroupProjectMemberListUpdateDTO(chuanyunGroupProjectDO);
|
|
|
|
+ if(groupProjectMemberListUpdateDTO.getProjectMemberList()!=null&&groupProjectMemberListUpdateDTO.getProjectMemberList().length>0){
|
|
|
|
+ groupProjectMemberListUpdateDTO.add();
|
|
|
|
+ try {
|
|
|
|
+ chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),objectMapper.writeValueAsString(groupProjectMemberListUpdateDTO));
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目成员失败"+e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ groupProjectMemberListUpdateDTO.delete();
|
|
|
|
+ //保证项目经理信息更新成功
|
|
|
|
+ boolean updateFlag=false;
|
|
|
|
+ while (!updateFlag){
|
|
|
|
+ try {
|
|
|
|
+ var groupProjectMemberListUpdateString=objectMapper.writeValueAsString(groupProjectMemberListUpdateDTO);
|
|
|
|
+ ChuanyunSaveDTO chuanyunSaveDTO=chuanYunManager.update(ChuanyunGroupProjectDO.SCHEMA_CODE,chuanyunGroupProjectDO.getObjectId(),groupProjectMemberListUpdateString);
|
|
|
|
+ if(chuanyunSaveDTO.getSuccessful()){
|
|
|
|
+ log.info(chuanyunGroupProjectDO.getObjectId()+"更新项目成员成功"+groupProjectMemberListUpdateString);
|
|
|
|
+ updateFlag=true;
|
|
|
|
+ }else{
|
|
|
|
+ log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目成员失败"+groupProjectMemberListUpdateString);
|
|
|
|
+ log.warn(chuanyunGroupProjectDO+"");
|
|
|
|
+ Thread.sleep(5000L);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ log.warn(chuanyunGroupProjectDO.getObjectId()+"更新项目成员失败"+e.getMessage());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* 通过更新集团项目中的项目负责人、EBG项目经理、IBG项目经理
|
|
* 通过更新集团项目中的项目负责人、EBG项目经理、IBG项目经理
|
|
* @param chuanyunGroupProjectDO 项目对象
|
|
* @param chuanyunGroupProjectDO 项目对象
|
|
*/
|
|
*/
|
|
@@ -211,49 +248,6 @@ public class ChuanyunBasicDataScheduledTask {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 如果有项目组成员,将项目组成员projectMember替换为主键
|
|
|
|
- * 如果没有项目组成员,判断是否是EBG的实施、研发二开、售后维保项目,如果是,则添加EBG全体成员
|
|
|
|
- * @param chuanyunGroupProjectDO 项目对象
|
|
|
|
- */
|
|
|
|
- public void projectMemberCheck(ChuanyunGroupProjectDO chuanyunGroupProjectDO){
|
|
|
|
- if (chuanyunGroupProjectDO.getProjectMemberList() != null && chuanyunGroupProjectDO.getProjectMemberList().length>0) {
|
|
|
|
- List<String> memberList = new ArrayList<>();
|
|
|
|
- var builder = new StringBuilder();
|
|
|
|
- for (ChuanyunObject chuanyunObject: chuanyunGroupProjectDO.getProjectMemberObject()) {
|
|
|
|
- builder.append(chuanyunObject.getObjectId()).append(StringConstant.SEMICOLON);
|
|
|
|
- memberList.add(chuanyunObject.getObjectId());
|
|
|
|
- }
|
|
|
|
- chuanyunGroupProjectDO.setProjectMember(builder.toString());
|
|
|
|
- //替换为主键后更新氚云数据表来增加权限
|
|
|
|
- chuanyunGroupProjectDO.setProjectMemberList(memberList.toArray(new String[0]));
|
|
|
|
- }else {
|
|
|
|
- //项目成员为空的情况判断
|
|
|
|
- //判断项目BG是否为EBG
|
|
|
|
- var specifiedBusinessGroupFlag=ChuanyunGroupProjectDO.EBG.equals(chuanyunGroupProjectDO.getBusinessGroup());
|
|
|
|
- //判断项目类型是否为 下列项目类型中的一种
|
|
|
|
- var specifiedProjectTypeFlag=("实施".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
|
- "维保".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
|
- "研发二开".equals(chuanyunGroupProjectDO.getProjectType())||
|
|
|
|
- "售后".equals(chuanyunGroupProjectDO.getProjectType()));
|
|
|
|
- //如果项目组成员为空,则自动为项目添加所有EBG成员作为项目组成员
|
|
|
|
- if (specifiedBusinessGroupFlag&&specifiedProjectTypeFlag) {
|
|
|
|
- var projectMember = new ArrayList<String>();
|
|
|
|
- var builder = new StringBuilder();
|
|
|
|
- ChuanYunConstant.USER_BUSINESS_GROUP.forEach((k,v)->{
|
|
|
|
- if (ChuanyunGroupProjectDO.EBG.equals(v)&&null!=k){
|
|
|
|
- builder.append(k).append(StringConstant.SEMICOLON);
|
|
|
|
- projectMember.add(k);
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
-
|
|
|
|
- chuanyunGroupProjectDO.setProjectMember(builder.toString());
|
|
|
|
- chuanyunGroupProjectDO.setProjectMemberList(projectMember.toArray(new String[0]));
|
|
|
|
- log.info("成员已更新"+chuanyunGroupProjectDO.getProjectCode()+chuanyunGroupProjectDO.getProjectType());
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
* 获取供应商信息
|
|
* 获取供应商信息
|
|
*/
|
|
*/
|
|
private void getSupplier(){
|
|
private void getSupplier(){
|
|
@@ -525,7 +519,7 @@ public class ChuanyunBasicDataScheduledTask {
|
|
* 用于刷新项目经理权限的对象
|
|
* 用于刷新项目经理权限的对象
|
|
*/
|
|
*/
|
|
@Data
|
|
@Data
|
|
- class GroupProjectUpdateDTO{
|
|
|
|
|
|
+ static class GroupProjectUpdateDTO{
|
|
/**
|
|
/**
|
|
* 项目总监
|
|
* 项目总监
|
|
* U9项目责任人
|
|
* U9项目责任人
|
|
@@ -562,4 +556,36 @@ public class ChuanyunBasicDataScheduledTask {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Data
|
|
|
|
+ static class GroupProjectMemberListUpdateDTO{
|
|
|
|
+ /**
|
|
|
|
+ * 项目组成员(前端传数据用)
|
|
|
|
+ */
|
|
|
|
+ @JsonProperty("F0000034")
|
|
|
|
+ private String[] projectMemberList;
|
|
|
|
+
|
|
|
|
+ public void add(){
|
|
|
|
+ String[] newProjectMemberList=new String[projectMemberList.length+1];
|
|
|
|
+ System.arraycopy(projectMemberList,0,newProjectMemberList,0,projectMemberList.length);
|
|
|
|
+ newProjectMemberList[projectMemberList.length]="8bbb21c4-1140-4bfa-8713-6ee50ea34df0";
|
|
|
|
+ projectMemberList=newProjectMemberList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void delete(){
|
|
|
|
+ String[] newProjectMemberList=new String[projectMemberList.length-1];
|
|
|
|
+ System.arraycopy(projectMemberList,0,newProjectMemberList,0,projectMemberList.length-1);
|
|
|
|
+ projectMemberList=newProjectMemberList;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public GroupProjectMemberListUpdateDTO(ChuanyunGroupProjectDO chuanyunGroupProjectDO) {
|
|
|
|
+ if(null!=chuanyunGroupProjectDO){
|
|
|
|
+ if(null!=chuanyunGroupProjectDO.getProjectMemberList()){
|
|
|
|
+ List<String> memberList = new ArrayList<>();
|
|
|
|
+ chuanyunGroupProjectDO.getProjectMemberObject().forEach(chuanyunObject -> memberList.add(chuanyunObject.getObjectId()));
|
|
|
|
+ this.projectMemberList = memberList.toArray(new String[0]);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|