|
@@ -39,70 +39,85 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
String sfcId=task.getString("sfcId");
|
|
|
List<JSONObject> list=tbApiService.getTasksType(projectId).toJavaList(JSONObject.class);
|
|
|
Optional optional = list.stream().filter(item -> sfcId.equals(item.get("id"))).findAny();
|
|
|
- String name=((JSONObject) optional.get()).getString("name");
|
|
|
+ JSONObject taskType=((JSONObject) optional.get());
|
|
|
+ String name=taskType.getString("name");
|
|
|
+ String tfid=taskType.getString("taskflowId");
|
|
|
if(name.contains("变更流程")){
|
|
|
log.info("变更流程");
|
|
|
- taskChange(task,taskId);
|
|
|
+// taskChange(task,taskId);
|
|
|
}else if(name.contains("任务取消")){
|
|
|
log.info("任务取消");
|
|
|
- taskCancel(task,taskId);
|
|
|
+// taskCancel(task,taskId);
|
|
|
}else if(name.contains("新增流程")){
|
|
|
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);
|
|
|
+// 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);
|
|
|
+ updateTaskState(task,tfid);
|
|
|
}else{
|
|
|
log.info("任务 {} 任务类型:{} 非期望类型任务 不处理",task.getString("content"),name);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
- public void updateTaskState(JSONObject task){
|
|
|
+ public void updateTaskState(JSONObject task,String tfid){
|
|
|
String projectId=task.getString("projectId");// 项目ID
|
|
|
// 上级任务信息
|
|
|
String parentTaskId=task.getString("parentTaskId");// 上级任务ID
|
|
|
JSONObject parentTask=tbApiService.getTasksInfo(parentTaskId).getJSONObject(0);
|
|
|
JSONObject parentTaskTfs=tbApiService.getProjectStateId(projectId,"","",parentTask.getString("tfsId")).getJSONObject(0);
|
|
|
String parentTaskTfsName=parentTaskTfs.getString("name");
|
|
|
- String type=getType(task.getJSONArray("ancestorIds").size());
|
|
|
String newTfsName;
|
|
|
// 循环获取其他同级任务状态,判断是否有更高级别的任务状态
|
|
|
// 同级红灯状态ID
|
|
|
- JSONObject tf=tbApiService.getProjectTfid(projectId,getType(task.getJSONArray("ancestorIds").size()+1)).getJSONObject(0);
|
|
|
- JSONObject redTfs=tbApiService.getProjectStateId(projectId,"红灯",tf.getString("id"),"").getJSONObject(0);
|
|
|
+ JSONObject redTfs=tbApiService.getProjectStateId(projectId,"红灯",tfid,"").getJSONObject(0);
|
|
|
String redId=redTfs.getString("id");
|
|
|
// 同级黄状态ID
|
|
|
- JSONObject yellowTfs=tbApiService.getProjectStateId(projectId,"黄灯",tf.getString("id"),"").getJSONObject(0);
|
|
|
+ JSONObject yellowTfs=tbApiService.getProjectStateId(projectId,"黄灯",tfid,"").getJSONObject(0);
|
|
|
String yellowId=yellowTfs.getString("id");
|
|
|
+ // 指标任务状态
|
|
|
+ String redZbId,yellowZbId;
|
|
|
+
|
|
|
+ JSONObject zbtf=tbApiService.getProjectTfid(projectId,"年度指标工作流").getJSONObject(0);
|
|
|
+ if(tfid.equals(zbtf.getString("id"))){
|
|
|
+ redZbId=redId;
|
|
|
+ yellowZbId=yellowId;
|
|
|
+ }else{
|
|
|
+ JSONObject redZbTfs=tbApiService.getProjectStateId(projectId,"红灯",zbtf.getString("id"),"").getJSONObject(0);
|
|
|
+ redZbId=redZbTfs.getString("id");
|
|
|
+ // 同级黄状态ID
|
|
|
+ JSONObject yellowZbTfs=tbApiService.getProjectStateId(projectId,"黄灯",zbtf.getString("id"),"").getJSONObject(0);
|
|
|
+ yellowZbId=yellowZbTfs.getString("id");
|
|
|
+ }
|
|
|
+
|
|
|
JSONArray array=tbApiService.getTasksByParent(parentTaskId);
|
|
|
String color="绿灯";
|
|
|
int redNum=0,yellowNum=0;
|
|
|
for (int i = 0; i < array.size(); i++) {
|
|
|
JSONObject taskT=array.getJSONObject(i);
|
|
|
- if(redId.equals(taskT.getString("tfsId"))){
|
|
|
+ if(redId.equals(taskT.getString("tfsId"))||redZbId.equals(taskT.getString("tfsId"))){
|
|
|
redNum++;
|
|
|
- }else if(yellowId.equals(taskT.getString("tfsId"))){
|
|
|
+ }else if(yellowId.equals(taskT.getString("tfsId"))||yellowZbId.equals(taskT.getString("tfsId"))){
|
|
|
yellowNum++;
|
|
|
}
|
|
|
}
|
|
|
- if(yellowNum>=2){
|
|
|
+ if(yellowNum>=1){
|
|
|
color="黄灯";
|
|
|
}
|
|
|
- if(redNum>=2){
|
|
|
+ if(redNum>=1){
|
|
|
color="红灯";
|
|
|
}
|
|
|
if(!color.equals(parentTaskTfsName)){
|
|
@@ -110,9 +125,16 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
}else{
|
|
|
return;
|
|
|
}
|
|
|
- update(projectId,parentTaskId,newTfsName,type);
|
|
|
+ // 任务类型判断
|
|
|
+ String parentSfcId=parentTask.getString("sfcId");
|
|
|
+ List<JSONObject> list=tbApiService.getTasksType(projectId).toJavaList(JSONObject.class);
|
|
|
+ Optional optional = list.stream().filter(item -> parentSfcId.equals(item.get("id"))).findAny();
|
|
|
+ JSONObject parentTaskType=((JSONObject) optional.get());
|
|
|
+ String parentTfid=parentTaskType.getString("taskflowId");
|
|
|
+
|
|
|
+ update(projectId,parentTaskId,newTfsName,parentTfid);
|
|
|
if(!PublicUtil.isNull(parentTask.getString("parentTaskId"))){
|
|
|
- updateTaskState(parentTask);
|
|
|
+ updateTaskState(parentTask,parentTfid);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -235,10 +257,9 @@ public class ThTbServiceImpl implements ThTbService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void update(String projectId,String taskId,String tfsName,String type){
|
|
|
+ public void update(String projectId,String taskId,String tfsName,String tfid){
|
|
|
log.info("任务[{}]状态修改为[{}]",taskId,tfsName);
|
|
|
- JSONObject tf=tbApiService.getProjectTfid(projectId,type).getJSONObject(0);
|
|
|
- JSONObject tfsnext=tbApiService.getProjectStateId(projectId,tfsName,tf.getString("id"),"").getJSONObject(0);
|
|
|
+ JSONObject tfsnext=tbApiService.getProjectStateId(projectId,tfsName,tfid,"").getJSONObject(0);
|
|
|
tbApiService.updateTaskStatus(taskId,tfsnext.getString("id"));
|
|
|
}
|
|
|
}
|