|
@@ -42,13 +42,15 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
JSONObject taskType=((JSONObject) optional.get());
|
|
|
String name=taskType.getString("name");
|
|
|
String tfid=taskType.getString("taskflowId");
|
|
|
- if(name.contains("变更流程")){
|
|
|
+ if(name.contains("变更")){
|
|
|
log.info("变更流程");
|
|
|
-// taskChange(task,taskId);
|
|
|
+ taskChange(task,taskId);
|
|
|
}else if(name.contains("任务取消")){
|
|
|
+ // 2024.6.5跟小燕沟通后调整为取消
|
|
|
log.info("任务取消");
|
|
|
// taskCancel(task,taskId);
|
|
|
}else if(name.contains("新增流程")){
|
|
|
+ // 2024.6.5跟小燕沟通后调整为取消
|
|
|
log.info("新增流程");
|
|
|
// String newName;
|
|
|
// if(name.contains("一级")){
|
|
@@ -140,57 +142,135 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
|
|
|
public void taskChange(JSONObject task,String taskId){
|
|
|
String projectId=task.getString("projectId");// 项目ID
|
|
|
- // 查询项目自定义字段
|
|
|
- List<JSONObject> list=tbApiService.getProjectCustomfield(projectId).toJavaList(JSONObject.class);
|
|
|
- Optional optional = list.stream().filter(item -> "变更内容".equals(item.get("name"))&&item.containsKey("originalId")).findAny();
|
|
|
- String keyId=((JSONObject) optional.get()).getString("id");
|
|
|
- Optional optional2 = list.stream().filter(item -> "变更后内容".equals(item.get("name"))).findAny();
|
|
|
- String valueId=((JSONObject) optional2.get()).getString("id");
|
|
|
- // 查询任务中的自定义字段值
|
|
|
- List<JSONObject> custs=task.getJSONArray("customfields").toJavaList(JSONObject.class);
|
|
|
- Optional optional3 = custs.stream().filter(item -> valueId.equals(item.get("cfId"))).findAny();
|
|
|
- String value=((JSONObject) optional3.get()).getJSONArray("value").getJSONObject(0).getString("title");
|
|
|
- Optional optional4 = custs.stream().filter(item -> keyId.equals(item.get("cfId"))).findAny();
|
|
|
- JSONObject idObj=((JSONObject) optional4.get()).getJSONArray("value").getJSONObject(0);
|
|
|
// 查询关联任务
|
|
|
JSONArray linkArray=tbApiService.getTaskLinks(taskId);
|
|
|
if(linkArray==null||linkArray.size()<1){
|
|
|
log.info("任务{}没有关联任务",taskId);
|
|
|
return;
|
|
|
}
|
|
|
+ // 查询项目自定义字段
|
|
|
+ Map<String,String> projectCusts=new HashMap<>();
|
|
|
+ List<JSONObject> list=tbApiService.getProjectCustomfield(projectId).toJavaList(JSONObject.class);
|
|
|
+ list.forEach(item -> projectCusts.put(item.getString("name"),item.getString("id")));
|
|
|
+ // 查询任务中的自定义字段值
|
|
|
+ Map<String,JSONArray> taskCustValues=new HashMap<>();
|
|
|
+ List<JSONObject> custs=task.getJSONArray("customfields").toJavaList(JSONObject.class);
|
|
|
+ custs.forEach(item -> taskCustValues.put(item.getString("cfId"),item.getJSONArray("value")));
|
|
|
+
|
|
|
+ String value=taskCustValues.get(projectCusts.get("变更后内容")).getJSONObject(0).getString("title");
|
|
|
+ JSONObject idObj=taskCustValues.get(projectCusts.get("内容变更/取消")).getJSONObject(0);
|
|
|
String linkedId=linkArray.getJSONObject(0).getString("linkedId");
|
|
|
log.info("任务[{}]字段:{}[{}]数据修改为:{}",linkedId,idObj.getString("title"),idObj.getString("id"),value);
|
|
|
- if("664e9d5ae6451d2386a6d1bc".equals(idObj.getString("id"))){
|
|
|
- tbApiService.updateTaskContent(linkedId,value);
|
|
|
- }else if("664e9d5ae6451d2386a6d1bd".equals(idObj.getString("id"))){
|
|
|
- Optional optional5 = list.stream().filter(item -> "权重".equals(item.get("name"))).findAny();
|
|
|
- String qzId=((JSONObject) optional5.get()).getString("id");
|
|
|
- tbApiService.updateTaskCustomfield(linkedId,qzId,value);
|
|
|
- }else if("664e9d5ae6451d2386a6d1be".equals(idObj.getString("id"))){
|
|
|
- JSONArray array=tbApiService.userSearch(value);
|
|
|
- if(array==null||array.size()<1){
|
|
|
- log.error("未查到该人员 查询条件:{},返回结果:{}",value,array);
|
|
|
- return;
|
|
|
+
|
|
|
+ JSONObject linkeTask=tbApiService.getTasksInfo(linkedId).getJSONObject(0);
|
|
|
+ String linkSfcId=linkeTask.getString("sfcId");
|
|
|
+ JSONObject linkTaskType=tbApiService.getTasksType(projectId,linkSfcId).getJSONObject(0);
|
|
|
+ String linkTaskTypeName=linkTaskType.getString("name");
|
|
|
+
|
|
|
+ String qzId;
|
|
|
+ if("年度指标".equals(linkTaskTypeName)){
|
|
|
+ switch (idObj.getString("id")){
|
|
|
+ case "66581ea7d74759b91fab2806":
|
|
|
+ // 年度指标
|
|
|
+ tbApiService.updateTaskContent(linkedId,value);
|
|
|
+ return;
|
|
|
+ case "665820165bf840a9d00f0a36":
|
|
|
+ // 指标权重
|
|
|
+ qzId=projectCusts.get("权重");
|
|
|
+ break;
|
|
|
+ case "66581ea7d74759b91fab2809":
|
|
|
+ // Q1目标
|
|
|
+ qzId=projectCusts.get("Q1目标");
|
|
|
+ break;
|
|
|
+ case "66581ea7d74759b91fab280a":
|
|
|
+ // Q2目标
|
|
|
+ qzId=projectCusts.get("Q2目标");
|
|
|
+ break;
|
|
|
+ case "66581ea7d74759b91fab280b":
|
|
|
+ // Q3目标
|
|
|
+ qzId=projectCusts.get("Q3目标");
|
|
|
+ break;
|
|
|
+ case "66581ea7d74759b91fab280c":
|
|
|
+ // Q4目标
|
|
|
+ qzId=projectCusts.get("Q4目标");
|
|
|
+ break;
|
|
|
+ case "66581ebba1a96d9b58350495":
|
|
|
+ // 年度指标验收依据
|
|
|
+ qzId=projectCusts.get("验收依据");
|
|
|
+ break;
|
|
|
+ case "66582147e30d72623e4108d3":
|
|
|
+ log.info("任务取消");
|
|
|
+ taskCancel(projectId,linkTaskType,linkedId);
|
|
|
+ return;
|
|
|
+ default:
|
|
|
+ log.info("非期望字段,暂不处理");
|
|
|
+ return;
|
|
|
}
|
|
|
- tbApiService.updateTaskExecutor(linkedId,array.getJSONObject(0).getString("userId"));
|
|
|
+ }else if("三级任务,二级任务,一级任务".contains(linkTaskTypeName)){
|
|
|
+ switch (idObj.getString("id")){
|
|
|
+ case "66602856c563f93072f7bc2d":
|
|
|
+ // 任务目标
|
|
|
+ tbApiService.updateTaskContent(linkedId,value);
|
|
|
+ return;
|
|
|
+ case "664e9d5ae6451d2386a6d1bd":
|
|
|
+ // 任务权重
|
|
|
+ if("三级任务".equals(linkTaskTypeName)){
|
|
|
+ qzId=projectCusts.get("权重");
|
|
|
+ tbApiService.updateTaskCustomfield(linkedId,qzId,value);
|
|
|
+ }else{
|
|
|
+ log.info("非三级任务,不修改权重");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "664e9d5ae6451d2386a6d1be":
|
|
|
+ // 责任人
|
|
|
+ qzId=projectCusts.get("责任人");
|
|
|
+ JSONArray array=tbApiService.userSearch(value);
|
|
|
+ if(array==null||array.size()<1){
|
|
|
+ log.error("未查到该人员 查询条件:{},返回结果:{}",value,array);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ value=array.getJSONObject(0).getString("userId");
|
|
|
+ break;
|
|
|
+ case "665820165bf840a9d00f0a38":
|
|
|
+ // 联席责任人
|
|
|
+ qzId=projectCusts.get("联席责任人");
|
|
|
+ JSONArray array2=tbApiService.userSearch(value);
|
|
|
+ if(array2==null||array2.size()<1){
|
|
|
+ log.error("未查到该人员 查询条件:{},返回结果:{}",value,array2);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ value=array2.getJSONObject(0).getString("userId");
|
|
|
+ break;
|
|
|
+ case "66582147e30d72623e4108d3":
|
|
|
+ log.info("任务取消");
|
|
|
+ taskCancel(projectId,linkTaskType,linkedId);
|
|
|
+ return;
|
|
|
+ default:
|
|
|
+ log.info("非期望字段,暂不处理");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ log.info("关联任务的任务类型[{}]非期望值",linkTaskTypeName);
|
|
|
+ return;
|
|
|
}
|
|
|
+ tbApiService.updateTaskCustomfield(linkedId,qzId,value);
|
|
|
}
|
|
|
|
|
|
|
|
|
- public void taskCancel(JSONObject task,String taskId){
|
|
|
+ public void taskCancel(String projectId,JSONObject taskType,String taskId){
|
|
|
// 查询关联任务
|
|
|
- JSONArray linkArray=tbApiService.getTaskLinks(taskId);
|
|
|
- if(linkArray==null||linkArray.size()<1){
|
|
|
- log.info("任务{}没有关联任务",taskId);
|
|
|
- return;
|
|
|
+ String tfid=taskType.getString("taskflowId");
|
|
|
+ update(projectId,taskId,"取消",tfid);
|
|
|
+ JSONArray sonTasks=tbApiService.getTasksByParent(taskId);
|
|
|
+ if(sonTasks!=null&&sonTasks.size()>0){
|
|
|
+ for (int i = 0; i < sonTasks.size(); i++) {
|
|
|
+ String sonTaskId=sonTasks.getJSONObject(i).getString("id");
|
|
|
+ JSONObject sonTaskType=tbApiService.getTasksType(projectId,sonTaskId).getJSONObject(0);
|
|
|
+ taskCancel(projectId,sonTaskType,sonTaskId);
|
|
|
+ }
|
|
|
}
|
|
|
- String linkedId=linkArray.getJSONObject(0).getString("linkedId");
|
|
|
- log.info("任务[{}]状态修改为[取消]",linkedId);
|
|
|
- JSONObject linkedTask=tbApiService.getTasksInfo(linkedId).getJSONObject(0);
|
|
|
- String projectId=linkedTask.getString("projectId");
|
|
|
- JSONObject tf=tbApiService.getProjectTfid(projectId,getType(linkedTask.getJSONArray("ancestorIds").size()+1)).getJSONObject(0);
|
|
|
- JSONObject tfsnext=tbApiService.getProjectStateId(projectId,"取消",tf.getString("id"),"").getJSONObject(0);
|
|
|
- tbApiService.updateTaskStatus(linkedId,tfsnext.getString("id"));
|
|
|
+
|
|
|
}
|
|
|
|
|
|
public void taskAdd(JSONObject task,String taskId,JSONObject newTaskType){
|