|
@@ -1,5 +1,6 @@
|
|
|
package com.muzhi.tianhe.service.impl;
|
|
|
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.malk.server.aliwork.YDConf;
|
|
@@ -9,6 +10,8 @@ import com.malk.server.common.McR;
|
|
|
import com.malk.service.aliwork.YDClient;
|
|
|
import com.malk.utils.UtilEnv;
|
|
|
import com.malk.utils.UtilMap;
|
|
|
+import com.muzhi.tianhe.entity.Task;
|
|
|
+import com.muzhi.tianhe.mapper.TaskMapper;
|
|
|
import com.muzhi.tianhe.service.ThTbService;
|
|
|
import com.muzhi.tianhe.util.PublicUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -27,6 +30,8 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
private TbApiService tbApiService;
|
|
|
@Autowired
|
|
|
private YDClient ydClient;
|
|
|
+ @Autowired
|
|
|
+ private TaskMapper taskMapper;
|
|
|
|
|
|
private static String PROJECT_TAG_ID = "65b77b8f7bbdd92f48e6920d"; // 战略部分组
|
|
|
|
|
@@ -456,6 +461,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
|
|
|
@Override
|
|
|
public void syncState() {
|
|
|
+ taskMapper.delete(null);
|
|
|
syncStateByTag(PROJECT_TAG_ID);
|
|
|
}
|
|
|
|
|
@@ -475,6 +481,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
if (UtilEnv.getActiveProfile().equals(UtilEnv.ENV_PROD)) {
|
|
|
formUuid.put("TASK", "FORM-B8C09F8900BD43EC8025068B3CB4C4F8SLAD");
|
|
|
formUuid.put("CUSTFIELD", "FORM-031FC90C7D3C49A394600D4EE6C037915QSI");
|
|
|
+ formUuid.put("TASKTYPE", "FORM-69A0C9C57CCA4793B5E5F5E118824548S6T7");
|
|
|
} else {
|
|
|
formUuid.put("TASK", "FORM-59A439BCB8194F10B8C862C579F285F5KWG6"); // 文件夹/文件版本记录
|
|
|
formUuid.put("CUSTFIELD", "FORM-C5B14D2EE4464AED835BA259388E829D9937"); // 文件夹权限
|
|
@@ -500,29 +507,54 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
for (int j = 0; j < array.size(); j++) {
|
|
|
String cTname=array.getJSONObject(j).getString("name");
|
|
|
String cTid=array.getJSONObject(j).getString("id");
|
|
|
- if(cTname.contains("变更")){
|
|
|
- continue;
|
|
|
- }
|
|
|
+ ydClient.operateData(YDParam.builder().formUuid(_matchFormUuid("TASKTYPE"))
|
|
|
+ .formDataJson(JSONObject.toJSONString(UtilMap.map("textField_m0rkuewc, textField_m0rkuewe, textField_m0vtq84z, textField_m0vtq850",projectId,project.getString("name"),cTid,cTname)))
|
|
|
+ .searchCondition(JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_m0rkuewc",projectId,"projectId", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ),
|
|
|
+ new YDSearch("textField_m0vtq84z",cTid,"cTid", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ))))
|
|
|
+ .build(), YDConf.FORM_OPERATION.upsert);
|
|
|
List<String> custNames;
|
|
|
List<String> ydKyes;
|
|
|
- if(cTname.contains("一级")){
|
|
|
- custNames=Arrays.asList("责任人","联席责任人");
|
|
|
- ydKyes=Arrays.asList(NULLDATA,NULLDATA);
|
|
|
- }else if(cTname.contains("二级")){
|
|
|
- custNames=Arrays.asList("责任人","联席责任人","责任部门","上级任务责任人");
|
|
|
- ydKyes=Arrays.asList(NULLDATA,NULLDATA,"textField_m102rax6",NULLDATA);
|
|
|
- }else if(cTname.contains("三级")){
|
|
|
- custNames=Arrays.asList("责任人","联席责任人","责任部门","权重","上级任务责任人","问题与风险","解决方案思路");
|
|
|
- ydKyes=Arrays.asList(NULLDATA,NULLDATA,"textField_m102rax6","textField_m0xldyf7",NULLDATA,"textField_m21hlie0","textField_m21hlie1");
|
|
|
+ if(cTname.contains("一级任务")){
|
|
|
+ custNames=Arrays.asList("责任人","联席责任人","责任部门","年度目标/年度战略意图澄清");
|
|
|
+ ydKyes=Arrays.asList(NULLDATA,NULLDATA,"textField_m102rax6","textField_m4s27u11");
|
|
|
+ }else if(cTname.contains("二级任务")){
|
|
|
+ custNames=Arrays.asList("责任人","联席责任人","责任部门","上级任务责任人","验收依据","统计口径","风险与问题","解决方案思路","任务权重");
|
|
|
+ ydKyes=Arrays.asList(NULLDATA,NULLDATA,"textField_m102rax6",NULLDATA,"textField_m102rax9","textField_m21hliea","textField_m21hlie0","textField_m21hlie1","textField_m4w6u6t4");
|
|
|
+// }else if(cTname.contains("三级")){
|
|
|
+// custNames=Arrays.asList("责任人","联席责任人","责任部门","权重","上级任务责任人","问题与风险","解决方案思路");
|
|
|
+// ydKyes=Arrays.asList(NULLDATA,NULLDATA,"textField_m102rax6","textField_m0xldyf7",NULLDATA,"textField_m21hlie0","textField_m21hlie1");
|
|
|
}else if(cTname.contains("指标")){
|
|
|
- custNames=Arrays.asList("权重","统计口径","验收依据","Q1目标","Q1实际达成","Q1偏差原因说明","Q1改进举措","Q2目标","Q2实际达成","Q2偏差原因说明","Q2改进举措"
|
|
|
- ,"Q3目标","Q3实际达成","Q3偏差原因说明","Q3改进举措","Q4目标","Q4实际达成","Q4偏差原因说明","Q4改进举措","年度指标完成情况","自评分","证明材料");
|
|
|
- ydKyes=Arrays.asList("textField_m0xldyf7","textField_m21hliea","textField_m102rax9",
|
|
|
- "textField_m102raxm","textField_m21hlief","textField_m21hlieg","textField_m21hlieh", // q1
|
|
|
- "textField_m10at4ej","textField_m21hliei","textField_m21hliel","textField_m21hlieo", // q2
|
|
|
- "textField_m10at4ek","textField_m21hliej","textField_m21hliem","textField_m21hliep", // q3
|
|
|
- "textField_m10at4el","textField_m21hliek","textField_m21hlien","textField_m21hlieq", // q4
|
|
|
- "textField_m21hlieb","textField_m21hliec","textField_m21hlied");
|
|
|
+ custNames=Arrays.asList("指标权重","统计口径","验收依据","年度指标完成情况","自评分","证明材料",
|
|
|
+ "Q1目标","1月实际达成","1月偏差原因说明","1月改进举措","2月实际达成","2月偏差原因说明","2月改进举措","3月实际达成","3月偏差原因说明","3月改进举措",
|
|
|
+ "Q2目标","4月实际达成","4月偏差原因说明","4月改进举措","5月实际达成","5月偏差原因说明","5月改进举措","6月实际达成","6月偏差原因说明","6月改进举措",
|
|
|
+ "Q3目标","7月实际达成","7月偏差原因说明","7月改进举措","8月实际达成","8月偏差原因说明","8月改进举措","9月实际达成","9月偏差原因说明","9月改进举措",
|
|
|
+ "Q4目标","10月实际达成","10月偏差原因说明","10月改进举措","11月实际达成","11月偏差原因说明","11月改进举措","12月实际达成","12月偏差原因说明","12月改进举措");
|
|
|
+ ydKyes=Arrays.asList("textField_m0xldyf7","textField_m21hliea","textField_m102rax9","textField_m21hlieb","textField_m21hliec","textField_m21hlied",
|
|
|
+ "textField_m102raxm",
|
|
|
+ "textField_m4s27u1s","textField_m4s27u1u","textField_m4s27u1w", // 1月
|
|
|
+ "textField_m4s27u1t","textField_m4s27u1v","textField_m4s27u1x", // 2月
|
|
|
+ "textField_m21hlief","textField_m21hlieg","textField_m21hlieh", // q1
|
|
|
+ "textField_m10at4ej",
|
|
|
+ "textField_m4s27u1y","textField_m4s27u20","textField_m4s27u22", // 4月
|
|
|
+ "textField_m4s27u1z","textField_m4s27u21","textField_m4s27u23", // 5月
|
|
|
+ "textField_m21hliei","textField_m21hliel","textField_m21hlieo", // q2
|
|
|
+ "textField_m10at4ek",
|
|
|
+ "textField_m4s27u35","textField_m4s27u37","textField_m4s27u39", // 7月
|
|
|
+ "textField_m4s27u36","textField_m4s27u38","textField_m4s27u3a", // 8月
|
|
|
+ "textField_m21hliej","textField_m21hliem","textField_m21hliep", // q3
|
|
|
+ "textField_m10at4el",
|
|
|
+ "textField_m4s27u3b","textField_m4s27u3d","textField_m4s27u3f", // 10月
|
|
|
+ "textField_m4s27u3c","textField_m4s27u3e","textField_m4s27u3g", // 11月
|
|
|
+ "textField_m21hliek","textField_m21hlien","textField_m21hlieq" // q4
|
|
|
+ );
|
|
|
+// custNames=Arrays.asList("权重","统计口径","验收依据","Q1目标","Q1实际达成","Q1偏差原因说明","Q1改进举措","Q2目标","Q2实际达成","Q2偏差原因说明","Q2改进举措"
|
|
|
+// ,"Q3目标","Q3实际达成","Q3偏差原因说明","Q3改进举措","Q4目标","Q4实际达成","Q4偏差原因说明","Q4改进举措","年度指标完成情况","自评分","证明材料");
|
|
|
+// ydKyes=Arrays.asList("textField_m0xldyf7","textField_m21hliea","textField_m102rax9",
|
|
|
+// "textField_m102raxm","textField_m21hlief","textField_m21hlieg","textField_m21hlieh", // q1
|
|
|
+// "textField_m10at4ej","textField_m21hliei","textField_m21hliel","textField_m21hlieo", // q2
|
|
|
+// "textField_m10at4ek","textField_m21hliej","textField_m21hliem","textField_m21hliep", // q3
|
|
|
+// "textField_m10at4el","textField_m21hliek","textField_m21hlien","textField_m21hlieq", // q4
|
|
|
+// "textField_m21hlieb","textField_m21hliec","textField_m21hlied");
|
|
|
}else{
|
|
|
custNames=new ArrayList<>();
|
|
|
ydKyes=new ArrayList<>();
|
|
@@ -580,7 +612,9 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
saveMap.put(ydKyes.get(k),getCustOne(taskCustValues.get(projectCusts.get(custNames.get(k))),"title"));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ Task taskDto=JSONUtil.toBean(JSONObject.toJSONString(saveMap), Task.class);
|
|
|
+ taskDto.setResponsiblePerson(zrrList!=null&&zrrList.size()>0?zrrList.get(0):"");
|
|
|
+ taskMapper.insert(taskDto);
|
|
|
ydClient.operateData(YDParam.builder().formUuid(_matchFormUuid("TASK"))
|
|
|
.formDataJson(JSONObject.toJSONString(saveMap))
|
|
|
.searchCondition(JSONObject.toJSONString(Arrays.asList(new YDSearch("textField_m0rkuewb",task.getString("id"),"taskid", YDSearch.Type.TEXT_FIELD,YDSearch.Operator.EQ))))
|
|
@@ -692,7 +726,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
for (int i = 0; i < taskIds.length; i++) {
|
|
|
tbApiService.updateTaskLock(taskIds[i],false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
|
tbApiService.updateTaskCustomfield(taskIds[i],param.getString("cId"),qzValues[i]);
|
|
|
- tbApiService.updateTaskLock(taskIds[i],false,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
|
+ tbApiService.updateTaskLock(taskIds[i],true,Arrays.asList(UtilMap.map("action","cf:"+param.getString("cId")+"$update")));
|
|
|
updateYdData(UtilMap.map(ydKey,qzValues[i]),taskIds[i]);
|
|
|
}
|
|
|
}else if(type.equals("lxzrr")){
|
|
@@ -719,6 +753,171 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
return McR.success();
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void saveTask(String procInsId){
|
|
|
+ Map data=ydClient.queryData(YDParam.builder().formInstanceId(procInsId).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
+ log.info("data:{}",JSONObject.toJSONString(data));
|
|
|
+ String typeDetail= UtilMap.getString(data,"selectField_m4uzcu6a");// 新增类型
|
|
|
+ String typeId= UtilMap.getString(data,"textField_m0xh64cx");// 新增的任务类型编号
|
|
|
+ String fTaskId = UtilMap.getString(data,"textField_m0yxa9yx");// 父任务编号
|
|
|
+ String projectId = UtilMap.getString(data,"textField_m0vva0s7");// 项目编号
|
|
|
+ Map<String,String> projectCusts=new HashMap<>(); // 项目自定义字段 Map<name,id>
|
|
|
+ List<JSONObject> projectCoutList=tbApiService.getProjectCustomfield(projectId).toJavaList(JSONObject.class); // 查询项目自定义字段
|
|
|
+ projectCoutList.forEach(item -> {
|
|
|
+ projectCusts.put(item.getString("name"),item.getString("id"));
|
|
|
+ });
|
|
|
+ if(typeDetail.equals("指标新增")){
|
|
|
+ String cId=projectCusts.get("指标权重");
|
|
|
+ List<Map> list=UtilMap.getList(data,"tableField_m4s6oeqc"); // 指标任务
|
|
|
+ for (Map task:list){
|
|
|
+ String qzValue=UtilMap.getString(task,"numberField_m4s6oeqa");// 新权重
|
|
|
+ if(!com.malk.utils.PublicUtil.isNull(task.get("textField_m4s6oeqj"))){
|
|
|
+ // 修改同级任务权重
|
|
|
+ String taskId=UtilMap.getString(task,"textField_m4s6oeqj"); // 任务编号
|
|
|
+ tbApiService.updateTaskLock(taskId,false, Arrays.asList(UtilMap.map("action","cf:"+cId+"$update")));
|
|
|
+ tbApiService.updateTaskCustomfield(taskId,cId,qzValue);
|
|
|
+ tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","cf:"+cId+"$update")));
|
|
|
+ updateYdData(UtilMap.map("textField_m0xldyf7",qzValue),taskId);
|
|
|
+ }else{
|
|
|
+ // 新增任务
|
|
|
+ JSONObject newTask=new JSONObject();
|
|
|
+ newTask.put("projectId",projectId); // 项目id
|
|
|
+ newTask.put("content",task.get("textField_m4s6oeq7")); // 任务标题
|
|
|
+ newTask.put("parentTaskId",fTaskId); // 父任务id
|
|
|
+ newTask.put("scenariofieldconfigId",typeId); // 任务类型id
|
|
|
+ List<Map> customfields=new ArrayList<>();
|
|
|
+ customfields.add(getCustomfield(cId,qzValue));// 权重
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("统计口径"),UtilMap.getString(task,"textField_m4uzcu70")));
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("验收依据"),UtilMap.getString(task,"textField_m4uzcu71")));
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("Q2目标"),UtilMap.getString(task,"textField_m4uzcu72")));
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("Q3目标"),UtilMap.getString(task,"textField_m4uzcu73")));
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("Q4目标"),UtilMap.getString(task,"textField_m4uzcu74")));
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("Q5目标"),UtilMap.getString(task,"textField_m4uzcu75")));
|
|
|
+ newTask.put("customfields",customfields); // 自定义字段值列表
|
|
|
+ log.info("newTask:{}",JSONObject.toJSONString(newTask));
|
|
|
+ JSONObject resultObj=tbApiService.addTask(newTask);
|
|
|
+ log.info("newTaskResult:{}",JSONObject.toJSONString(resultObj));
|
|
|
+ String newTaskId=resultObj.getJSONObject("result").getString("taskId");
|
|
|
+ Map ydTaskMap=UtilMap.map("textField_m0xldyf7, textField_m0rkuewb, textField_m0rkuewd",qzValue,newTaskId,task.get("textField_m4s6oeq7"));// 权重 ,任务编号, 任务标题
|
|
|
+ ydTaskMap.put("textField_m21hliea",UtilMap.getString(task,"textField_m4uzcu70"));// 统计口径
|
|
|
+ ydTaskMap.put("textField_m102rax9",UtilMap.getString(task,"textField_m4uzcu71"));// 验收依据
|
|
|
+ ydTaskMap.put("textField_m102raxm",UtilMap.getString(task,"textField_m4uzcu72"));// Q1目标
|
|
|
+ ydTaskMap.put("textField_m10at4ej",UtilMap.getString(task,"textField_m4uzcu73"));// Q2目标
|
|
|
+ ydTaskMap.put("textField_m10at4ek",UtilMap.getString(task,"textField_m4uzcu74"));// Q3目标
|
|
|
+ ydTaskMap.put("textField_m10at4el",UtilMap.getString(task,"textField_m4uzcu75"));// Q4目标
|
|
|
+ ydTaskMap.put("textField_m0vtq84z",typeId);// 任务类型ID
|
|
|
+ ydTaskMap.put("textField_m0vtq850",data.get("selectField_m0vva0s5"));// 任务类型名称
|
|
|
+ ydTaskMap.put("textField_m0rkuewc",procInsId); // 项目ID
|
|
|
+// ydTaskMap.put("textField_m0rkuewe",data.get("selectField_m0vva0s5"));// 项目名称
|
|
|
+ ydTaskMap.put("textField_m0xldyf3",fTaskId); // 上级任务编号
|
|
|
+ ydTaskMap.put("employeeField_m21hlidz",UtilMap.getList(data,"employeeField_m1iqq5z3_id"));// 上级任务责任人
|
|
|
+ updateYdData(ydTaskMap,newTaskId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(typeDetail.equals("二级任务新增")){
|
|
|
+ String cId=projectCusts.get("任务权重");
|
|
|
+ List<Map> list=UtilMap.getList(data,"tableField_m4uzcu6q"); // 指标任务
|
|
|
+ for (Map task:list){
|
|
|
+ String qzValue=UtilMap.getString(task,"numberField_m4uzcu6z");// 新权重
|
|
|
+ if(!com.malk.utils.PublicUtil.isNull(task.get("textField_m4uzcu6p"))){
|
|
|
+ // 修改同级任务权重
|
|
|
+ String taskId=UtilMap.getString(task,"textField_m4uzcu6p"); // 任务编号
|
|
|
+ tbApiService.updateTaskLock(taskId,false, Arrays.asList(UtilMap.map("action","cf:"+cId+"$update")));
|
|
|
+ tbApiService.updateTaskCustomfield(taskId,cId,qzValue);
|
|
|
+ tbApiService.updateTaskLock(taskId,true,Arrays.asList(UtilMap.map("action","cf:"+cId+"$update")));
|
|
|
+ updateYdData(UtilMap.map("textField_m0xldyf7",qzValue),taskId);
|
|
|
+ }else{
|
|
|
+ // 新增任务
|
|
|
+ JSONObject newTask=new JSONObject();
|
|
|
+ newTask.put("projectId",projectId); // 项目id
|
|
|
+ newTask.put("content",task.get("textField_m4uzcu6k")); // 任务标题
|
|
|
+ newTask.put("parentTaskId",fTaskId); // 父任务id
|
|
|
+ newTask.put("scenariofieldconfigId",typeId); // 任务类型id
|
|
|
+ List<Map> customfields=new ArrayList<>();
|
|
|
+ customfields.add(getCustomfield(cId,qzValue));// 权重
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("责任部门"),UtilMap.getString(task,"textField_m4uzcu6n")));
|
|
|
+ List<String> ids=UtilMap.getList(task,"employeeField_m4uzcu6l_id");
|
|
|
+ List<String> tbIds=tbApiService.getUserIds(String.join(",",ids),false);
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("责任人"),tbIds,UtilMap.getList(task,"employeeField_m4uzcu6l")));
|
|
|
+ List<String> ids2=UtilMap.getList(task,"employeeField_m4uzcu6m_id");
|
|
|
+ List<String> tbIds2=tbApiService.getUserIds(String.join(",",ids2),false);
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("联席责任人"),tbIds2,UtilMap.getList(task,"employeeField_m4uzcu6m")));
|
|
|
+ List<String> ids3=UtilMap.getList(data,"employeeField_m1iqq5z3_id");
|
|
|
+ List<String> tbIds3=tbApiService.getUserIds(String.join(",",ids3),false);
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("上级任务责任人"),tbIds3,UtilMap.getList(data,"employeeField_m1iqq5z3")));
|
|
|
+ newTask.put("customfields",customfields); // 自定义字段值列表
|
|
|
+ log.info("newTask:{}",JSONObject.toJSONString(newTask));
|
|
|
+ JSONObject resultObj=tbApiService.addTask(newTask);
|
|
|
+ log.info("newTaskResult:{}",JSONObject.toJSONString(resultObj));
|
|
|
+ String newTaskId=resultObj.getJSONObject("result").getString("taskId");
|
|
|
+ Map ydTaskMap=UtilMap.map("textField_m4w6u6t4, textField_m0rkuewb, textField_m0rkuewd",qzValue,newTaskId,task.get("textField_m4uzcu6k"));// 权重 ,任务编号, 任务标题
|
|
|
+ ydTaskMap.put("textField_m102rax6",UtilMap.getString(task,"textField_m4uzcu6n"));//
|
|
|
+ ydTaskMap.put("employeeField_m201jmmi",UtilMap.getString(task,"employeeField_m4uzcu6l_id"));//
|
|
|
+ ydTaskMap.put("employeeField_m0xldyf5",UtilMap.getString(task,"employeeField_m4uzcu6m_id"));//
|
|
|
+ ydTaskMap.put("textField_m0vtq84z",typeId);// 任务类型ID
|
|
|
+ ydTaskMap.put("textField_m0vtq850",data.get("selectField_m0vva0s5"));// 任务类型名称
|
|
|
+ ydTaskMap.put("textField_m0rkuewc",procInsId); // 项目ID
|
|
|
+// ydTaskMap.put("textField_m0rkuewe",data.get("selectField_m0vva0s5"));// 项目名称
|
|
|
+ ydTaskMap.put("textField_m0xldyf3",fTaskId); // 上级任务编号
|
|
|
+ ydTaskMap.put("employeeField_m21hlidz",UtilMap.getList(data,"employeeField_m1iqq5z3_id"));// 上级任务责任人
|
|
|
+// updateYdData(ydTaskMap,newTaskId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(typeDetail.equals("一级任务新增")){
|
|
|
+ // 新增任务
|
|
|
+ List<Map> list=UtilMap.getList(data,"tableField_m4uzcu6f"); // 指标任务
|
|
|
+ for (Map task:list){
|
|
|
+ // 新增任务
|
|
|
+ JSONObject newTask=new JSONObject();
|
|
|
+ newTask.put("projectId",projectId); // 项目id
|
|
|
+ newTask.put("content",task.get("textField_m4uzcu6b")); // 任务标题
|
|
|
+ newTask.put("scenariofieldconfigId",typeId); // 任务类型id
|
|
|
+ List<Map> customfields=new ArrayList<>();
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("责任部门"),UtilMap.getString(task,"textField_m4uzcu6i")));
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("年度目标/年度战略意图澄清"),UtilMap.getString(task,"textField_m4uzcu6j")));
|
|
|
+ List<String> ids=UtilMap.getList(task,"employeeField_m4uzcu6g_id");
|
|
|
+ List<String> tbIds=tbApiService.getUserIds(String.join(",",ids),false);
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("责任人"),tbIds,UtilMap.getList(task,"employeeField_m4uzcu6g")));
|
|
|
+ List<String> ids2=UtilMap.getList(task,"employeeField_m4uzcu6h_id");
|
|
|
+ List<String> tbIds2=tbApiService.getUserIds(String.join(",",ids2),false);
|
|
|
+ customfields.add(getCustomfield(projectCusts.get("联席责任人"),tbIds2,UtilMap.getList(task,"employeeField_m4uzcu6h")));
|
|
|
+ newTask.put("customfields",customfields); // 自定义字段值列表
|
|
|
+ log.info("newTask:{}",JSONObject.toJSONString(newTask));
|
|
|
+ JSONObject resultObj=tbApiService.addTask(newTask);
|
|
|
+ log.info("newTaskResult:{}",JSONObject.toJSONString(resultObj));
|
|
|
+ String newTaskId=resultObj.getJSONObject("result").getString("taskId");
|
|
|
+ Map ydTaskMap=UtilMap.map("textField_m0rkuewb, textField_m0rkuewd",newTaskId,task.get("textField_m4uzcu6b"));// 任务编号, 任务标题
|
|
|
+ ydTaskMap.put("textField_m102rax6",UtilMap.getString(task,"textField_m4uzcu6i"));//
|
|
|
+ ydTaskMap.put("textField_m4s27u11",UtilMap.getString(task,"textField_m4uzcu6j"));//
|
|
|
+ ydTaskMap.put("employeeField_m201jmmi",UtilMap.getString(task,"employeeField_m4uzcu6g_id"));//
|
|
|
+ ydTaskMap.put("employeeField_m0xldyf5",UtilMap.getString(task,"employeeField_m4uzcu6h_id"));//
|
|
|
+ ydTaskMap.put("textField_m0vtq84z",typeId);// 任务类型ID
|
|
|
+ ydTaskMap.put("textField_m0vtq850",data.get("selectField_m0vva0s5"));// 任务类型名称
|
|
|
+ ydTaskMap.put("textField_m0rkuewc",procInsId); // 项目ID
|
|
|
+// ydTaskMap.put("textField_m0rkuewe",data.get("selectField_m0vva0s5"));// 项目名称
|
|
|
+ updateYdData(ydTaskMap,newTaskId);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map getCustomfield(String cfId,String value){
|
|
|
+ Map map=new HashMap();
|
|
|
+ map.put("cfId",cfId);
|
|
|
+ map.put("value", Arrays.asList(new JSONObject().fluentPut("title",value)));
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
+ private Map getCustomfield(String cfId,List<String> ids,List<String> names){
|
|
|
+ JSONArray array=new JSONArray();
|
|
|
+ for (int i = 0; i < ids.size(); i++) {
|
|
|
+ array.add(UtilMap.map("id, title",ids.get(i),names.get(i)));
|
|
|
+ }
|
|
|
+ Map map=new HashMap();
|
|
|
+ map.put("cfId",cfId);
|
|
|
+ map.put("value", array);
|
|
|
+ return map;
|
|
|
+ }
|
|
|
+
|
|
|
private void updateYdData(Map saveMap,String taskid){
|
|
|
ydClient.operateData(YDParam.builder().formUuid(_matchFormUuid("TASK"))
|
|
|
.formDataJson(JSONObject.toJSONString(saveMap))
|