|
@@ -3,11 +3,15 @@ package com.muzhi.tianhe.service.impl;
|
|
import cn.hutool.json.JSONUtil;
|
|
import cn.hutool.json.JSONUtil;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
+import com.fasterxml.jackson.core.JsonProcessingException;
|
|
|
|
+import com.fasterxml.jackson.databind.JsonNode;
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.malk.server.aliwork.YDConf;
|
|
import com.malk.server.aliwork.YDConf;
|
|
import com.malk.server.aliwork.YDParam;
|
|
import com.malk.server.aliwork.YDParam;
|
|
import com.malk.server.aliwork.YDSearch;
|
|
import com.malk.server.aliwork.YDSearch;
|
|
import com.malk.server.common.McR;
|
|
import com.malk.server.common.McR;
|
|
import com.malk.service.aliwork.YDClient;
|
|
import com.malk.service.aliwork.YDClient;
|
|
|
|
+import com.malk.utils.UtilDateTime;
|
|
import com.malk.utils.UtilEnv;
|
|
import com.malk.utils.UtilEnv;
|
|
import com.malk.utils.UtilMap;
|
|
import com.malk.utils.UtilMap;
|
|
import com.muzhi.tianhe.entity.Task;
|
|
import com.muzhi.tianhe.entity.Task;
|
|
@@ -62,7 +66,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
if(name.contains("变更")){
|
|
if(name.contains("变更")){
|
|
log.info("变更流程");
|
|
log.info("变更流程");
|
|
taskChange(task,taskId);
|
|
taskChange(task,taskId);
|
|
- }else if(name.contains("年度指标")){
|
|
|
|
|
|
+ }else if(name.contains("年度指标")||name.contains("二级任务")){
|
|
log.info("年度指标");
|
|
log.info("年度指标");
|
|
updateTaskState(task,tfid);
|
|
updateTaskState(task,tfid);
|
|
}else{
|
|
}else{
|
|
@@ -397,6 +401,24 @@ public class ThTbServiceImpl implements ThTbService {
|
|
list2.forEach(item -> projectSfc.put(item.getString("id"),item.getString("name")));
|
|
list2.forEach(item -> projectSfc.put(item.getString("id"),item.getString("name")));
|
|
String cid=projectCusts.get("上级任务责任人");
|
|
String cid=projectCusts.get("上级任务责任人");
|
|
JSONArray tasks=tbApiService.getTasksByParent(task.getString("id"));
|
|
JSONArray tasks=tbApiService.getTasksByParent(task.getString("id"));
|
|
|
|
+
|
|
|
|
+ ObjectMapper mapper = new ObjectMapper();
|
|
|
|
+ JsonNode root = null;
|
|
|
|
+ try {
|
|
|
|
+ root = mapper.readTree(data.toJSONString());
|
|
|
|
+ } catch (JsonProcessingException e) {
|
|
|
|
+ throw new RuntimeException(e);
|
|
|
|
+ }
|
|
|
|
+ List<String> oldIds = extractIds(root.path("customfieldOldValue"));
|
|
|
|
+ List<String> newIds = extractIds(root.path("customfieldValue"));
|
|
|
|
+ // 计算差异
|
|
|
|
+ Set<String> oldSet = new HashSet<>(oldIds);
|
|
|
|
+ Set<String> newSet = new HashSet<>(newIds);
|
|
|
|
+ Set<String> added = new HashSet<>(newSet);
|
|
|
|
+ added.removeAll(oldSet);
|
|
|
|
+ Set<String> removed = new HashSet<>(oldSet);
|
|
|
|
+ removed.removeAll(newSet);
|
|
|
|
+
|
|
for (int i = 0; i < tasks.size(); i++) {
|
|
for (int i = 0; i < tasks.size(); i++) {
|
|
JSONObject taskDetail=tasks.getJSONObject(i);
|
|
JSONObject taskDetail=tasks.getJSONObject(i);
|
|
String id=taskDetail.getString("id");
|
|
String id=taskDetail.getString("id");
|
|
@@ -406,20 +428,36 @@ public class ThTbServiceImpl implements ThTbService {
|
|
for (int j = 0; j < tasks2.size(); j++) {
|
|
for (int j = 0; j < tasks2.size(); j++) {
|
|
JSONObject taskDetail2=tasks2.getJSONObject(j);
|
|
JSONObject taskDetail2=tasks2.getJSONObject(j);
|
|
String id2=taskDetail2.getString("id");
|
|
String id2=taskDetail2.getString("id");
|
|
|
|
+ tbApiService.updateTaskInvolveMembers(id2,null,new ArrayList<>(added),new ArrayList<>(removed));
|
|
if(projectSfc.get(taskDetail2.getString("sfcId")).contains("指标")){
|
|
if(projectSfc.get(taskDetail2.getString("sfcId")).contains("指标")){
|
|
// 还是指标不处理
|
|
// 还是指标不处理
|
|
}else{
|
|
}else{
|
|
// 任务 更新 上级任务责任人
|
|
// 任务 更新 上级任务责任人
|
|
|
|
+ tbApiService.updateTaskLock(id2,false,Arrays.asList(UtilMap.map("action","cf:"+cid+"$update")));
|
|
tbApiService.updateTaskCustomfield(id2,cid,array);
|
|
tbApiService.updateTaskCustomfield(id2,cid,array);
|
|
|
|
+ tbApiService.updateTaskLock(id2,true,Arrays.asList(UtilMap.map("action","cf:"+cid+"$update")));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}else{
|
|
}else{
|
|
|
|
+ tbApiService.updateTaskInvolveMembers(id,null,new ArrayList<>(added),new ArrayList<>(removed));
|
|
// 任务 更新 上级任务责任人
|
|
// 任务 更新 上级任务责任人
|
|
|
|
+ tbApiService.updateTaskLock(id,false,Arrays.asList(UtilMap.map("action","cf:"+cid+"$update")));
|
|
tbApiService.updateTaskCustomfield(id,cid,array);
|
|
tbApiService.updateTaskCustomfield(id,cid,array);
|
|
|
|
+ tbApiService.updateTaskLock(id,true,Arrays.asList(UtilMap.map("action","cf:"+cid+"$update")));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private static List<String> extractIds(JsonNode arrayNode) {
|
|
|
|
+ List<String> ids = new ArrayList<>();
|
|
|
|
+ if (arrayNode.isArray()) {
|
|
|
|
+ for (JsonNode item : arrayNode) {
|
|
|
|
+ ids.add(item.path("id").asText());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return ids;
|
|
|
|
+ }
|
|
|
|
+
|
|
// 变更任务创建
|
|
// 变更任务创建
|
|
public void creatChangeTask(JSONObject task,String name){
|
|
public void creatChangeTask(JSONObject task,String name){
|
|
String projectId=task.getString("projectId");// 项目ID
|
|
String projectId=task.getString("projectId");// 项目ID
|
|
@@ -556,8 +594,9 @@ public class ThTbServiceImpl implements ThTbService {
|
|
// "textField_m10at4el","textField_m21hliek","textField_m21hlien","textField_m21hlieq", // q4
|
|
// "textField_m10at4el","textField_m21hliek","textField_m21hlien","textField_m21hlieq", // q4
|
|
// "textField_m21hlieb","textField_m21hliec","textField_m21hlied");
|
|
// "textField_m21hlieb","textField_m21hliec","textField_m21hlied");
|
|
}else{
|
|
}else{
|
|
- custNames=new ArrayList<>();
|
|
|
|
- ydKyes=new ArrayList<>();
|
|
|
|
|
|
+ continue;
|
|
|
|
+// custNames=new ArrayList<>();
|
|
|
|
+// ydKyes=new ArrayList<>();
|
|
}
|
|
}
|
|
projectCoutList.forEach(item -> {
|
|
projectCoutList.forEach(item -> {
|
|
if(custNames.contains(item.getString("name"))){
|
|
if(custNames.contains(item.getString("name"))){
|
|
@@ -581,6 +620,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
,task.getString("id"),task.getString("content")
|
|
,task.getString("id"),task.getString("content")
|
|
,projectId,project.getString("name"),map.get(task.getString("tfsId"))
|
|
,projectId,project.getString("name"),map.get(task.getString("tfsId"))
|
|
,cTid,cTname);
|
|
,cTid,cTname);
|
|
|
|
+ saveMap.put("dateField_m7jvykvt", UtilDateTime.getLocalDateTimeTimeStamp()); // 最近同步时间
|
|
saveMap.put("textField_m0xldyf3",task.getString("parentTaskId"));
|
|
saveMap.put("textField_m0xldyf3",task.getString("parentTaskId"));
|
|
JSONArray ancestorIds=task.getJSONArray("ancestorIds");
|
|
JSONArray ancestorIds=task.getJSONArray("ancestorIds");
|
|
int size=ancestorIds.size();
|
|
int size=ancestorIds.size();
|
|
@@ -613,7 +653,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Task taskDto=JSONUtil.toBean(JSONObject.toJSONString(saveMap), Task.class);
|
|
Task taskDto=JSONUtil.toBean(JSONObject.toJSONString(saveMap), Task.class);
|
|
- taskDto.setResponsiblePerson(zrrList!=null&&zrrList.size()>0?zrrList.get(0):"");
|
|
|
|
|
|
+ taskDto.setResponsiblePerson(zrrList!=null&&zrrList.size()>0?zrrList.get(0):"-100");
|
|
taskMapper.insert(taskDto);
|
|
taskMapper.insert(taskDto);
|
|
ydClient.operateData(YDParam.builder().formUuid(_matchFormUuid("TASK"))
|
|
ydClient.operateData(YDParam.builder().formUuid(_matchFormUuid("TASK"))
|
|
.formDataJson(JSONObject.toJSONString(saveMap))
|
|
.formDataJson(JSONObject.toJSONString(saveMap))
|
|
@@ -627,9 +667,9 @@ public class ThTbServiceImpl implements ThTbService {
|
|
String parentTaskId=UtilMap.getString(taskData,"parentTaskId");
|
|
String parentTaskId=UtilMap.getString(taskData,"parentTaskId");
|
|
List<String> zrr=UtilMap.getList(taskData,"zrr");
|
|
List<String> zrr=UtilMap.getList(taskData,"zrr");
|
|
// 父项目添加当前项目负责人权限
|
|
// 父项目添加当前项目负责人权限
|
|
- if(!PublicUtil.isNull(parentTaskId)){
|
|
|
|
- addTaskAuthUser("textField_m0rkuewb",parentTaskId,zrr); // 更新父级
|
|
|
|
- }
|
|
|
|
|
|
+// if(!PublicUtil.isNull(parentTaskId)){
|
|
|
|
+// addTaskAuthUser("textField_m0rkuewb",parentTaskId,zrr); // 更新父级
|
|
|
|
+// }
|
|
// 查询父级任务并修改权限数据
|
|
// 查询父级任务并修改权限数据
|
|
addTaskAuthUser("textField_m21p4jl8",taskId,zrr); // 更新子级
|
|
addTaskAuthUser("textField_m21p4jl8",taskId,zrr); // 更新子级
|
|
}
|
|
}
|
|
@@ -648,6 +688,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
ydClient.operateData(YDParam.builder().formInstId(formInstanceId).updateFormDataJson(
|
|
ydClient.operateData(YDParam.builder().formInstId(formInstanceId).updateFormDataJson(
|
|
JSONObject.toJSONString(UtilMap.map("employeeField_m217qmy5",newUsers))
|
|
JSONObject.toJSONString(UtilMap.map("employeeField_m217qmy5",newUsers))
|
|
).build(), YDConf.FORM_OPERATION.update);
|
|
).build(), YDConf.FORM_OPERATION.update);
|
|
|
|
+ taskMapper.updateTaskQx(UtilMap.getString(formData,"textField_m0rkuewb"),JSONObject.toJSONString(newUsers));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|