|
@@ -20,7 +20,7 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
|
|
|
|
|
|
@Override
|
|
|
- public void task(String taskId) {
|
|
|
+ public void task(String taskId,String type,JSONObject data) {
|
|
|
JSONObject task=tbApiService.getTasksInfo(taskId).getJSONObject(0);
|
|
|
String projectId=task.getString("projectId");
|
|
|
// 先判断项目分组
|
|
@@ -42,37 +42,28 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
JSONObject taskType=((JSONObject) optional.get());
|
|
|
String name=taskType.getString("name");
|
|
|
String tfid=taskType.getString("taskflowId");
|
|
|
- if(name.contains("变更")){
|
|
|
- log.info("变更流程");
|
|
|
- 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("一级")){
|
|
|
-// newName="一级任务";
|
|
|
-// }else if(name.contains("二级")){
|
|
|
-// newName="二级任务";
|
|
|
-// }else if(name.contains("三级")){
|
|
|
-// newName="三级任务";
|
|
|
-// }else{
|
|
|
-// log.error("任务类型名称判断异常:{}",name);
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// Optional optional2 = list.stream().filter(item -> newName.equals(item.get("name"))).findAny();
|
|
|
-// JSONObject newTaskType=((JSONObject) optional2.get());
|
|
|
-// taskAdd(task,taskId,newTaskType);
|
|
|
- }else if(name.equals("年度指标")){
|
|
|
- log.info("年度指标");
|
|
|
- updateTaskState(task,tfid);
|
|
|
- }else{
|
|
|
- log.info("任务 {} 任务类型:{} 非期望类型任务 不处理",task.getString("content"),name);
|
|
|
+ if(type.equals("0")){
|
|
|
+ if(name.contains("变更")){
|
|
|
+ log.info("变更流程");
|
|
|
+ taskChange(task,taskId);
|
|
|
+ }else if(name.equals("年度指标")){
|
|
|
+ log.info("年度指标");
|
|
|
+ updateTaskState(task,tfid);
|
|
|
+ }else{
|
|
|
+ log.info("任务 {} 任务类型:{} 非期望类型任务 不处理",task.getString("content"),name);
|
|
|
+ }
|
|
|
+ }else if(type.equals("1")){
|
|
|
+ // 任务自定义字段变更
|
|
|
+ if(name.contains("级任务")){
|
|
|
+ taskCustChange(task,data);
|
|
|
+ }
|
|
|
+ }else if(type.equals("2")){
|
|
|
+ // 任务新增
|
|
|
+ if(name.contains("变更")){
|
|
|
+ log.info("新增变更流程任务");
|
|
|
+ creatChangeTask(task,name);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -343,4 +334,62 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
JSONObject tfsnext=tbApiService.getProjectStateId(projectId,tfsName,tfid,"").getJSONObject(0);
|
|
|
tbApiService.updateTaskStatus(taskId,tfsnext.getString("id"));
|
|
|
}
|
|
|
+
|
|
|
+ // 任务自定义字段变更
|
|
|
+ public void taskCustChange(JSONObject task,JSONObject data){
|
|
|
+ String projectId=task.getString("projectId");// 项目ID
|
|
|
+ String customfieldId=data.getString("customfieldId");// 变更的自定义字段ID
|
|
|
+ JSONArray array=data.getJSONArray("customfieldValue");// 负责人
|
|
|
+ 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")));
|
|
|
+ if(!customfieldId.equals(projectCusts.get("责任人"))){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String cid=projectCusts.get("上级任务责任人");
|
|
|
+ JSONArray tasks=tbApiService.getTasksByParent(task.getString("id"));
|
|
|
+ for (int i = 0; i < tasks.size(); i++) {
|
|
|
+ JSONObject taskDetail=tasks.getJSONObject(i);
|
|
|
+ String id=taskDetail.getString("id");
|
|
|
+ tbApiService.updateTaskCustomfield(id,cid,array);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public void creatChangeTask(JSONObject task,String name){
|
|
|
+ String projectId=task.getString("projectId");// 项目ID
|
|
|
+ // 查询项目自定义字段
|
|
|
+ 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 linkUrl=taskCustValues.get(projectCusts.get("原任务链接")).getJSONObject(0).getString("title");
|
|
|
+ if(PublicUtil.isNull(linkUrl)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String linkId=linkUrl.substring(linkUrl.indexOf("/task/")+6,linkUrl.indexOf("/task/")+30);
|
|
|
+ JSONObject linkTask=tbApiService.getTasksInfo(linkId).getJSONObject(0);
|
|
|
+ //添加关联任务
|
|
|
+ tbApiService.addTaskLinks(task.getString("id"),linkTask.getString("content"),linkUrl,linkId);
|
|
|
+ String custName;
|
|
|
+ if(name.contains("二级变更流程")){
|
|
|
+ custName="上级任务责任人";
|
|
|
+ }else if(name.contains("三级变更流程")){
|
|
|
+ linkTask=tbApiService.getTasksInfo(linkTask.getString("id")).getJSONObject(0);
|
|
|
+ custName="一级任务知晓人";
|
|
|
+ }else if(name.contains("年度指标变更")){
|
|
|
+// linkTask=tbApiService.getTasksInfo(linkTask.getString("id")).getJSONObject(0);
|
|
|
+ custName="二级任务责任人";
|
|
|
+ }else{
|
|
|
+ log.info("非期望任务类型 不处理");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<JSONObject> linkCusts=linkTask.getJSONArray("customfields").toJavaList(JSONObject.class);
|
|
|
+ String cfid=projectCusts.get("上级任务责任人");
|
|
|
+ Optional optional = linkCusts.stream().filter(item -> cfid.equals(item.get("cfId"))).findAny();
|
|
|
+ JSONArray value=((JSONObject) optional.get()).getJSONArray("value");
|
|
|
+ tbApiService.updateTaskCustomfield(task.getString("id"),projectCusts.get(custName),value);
|
|
|
+ }
|
|
|
}
|