lfx 11 months ago
parent
commit
60de23abc2
1 changed files with 68 additions and 39 deletions
  1. 68 39
      src/main/java/com/muzhi/tianhe/service/impl/ThTbServiceImpl.java

+ 68 - 39
src/main/java/com/muzhi/tianhe/service/impl/ThTbServiceImpl.java

@@ -90,48 +90,77 @@ public class ThTbServiceImpl implements ThTbService {
         JSONObject parentTaskTfs=tbApiService.getProjectStateId(projectId,"","",parentTask.getString("tfsId")).getJSONObject(0);
         JSONObject parentTaskTfs=tbApiService.getProjectStateId(projectId,"","",parentTask.getString("tfsId")).getJSONObject(0);
         String parentTaskTfsName=parentTaskTfs.getString("name");
         String parentTaskTfsName=parentTaskTfs.getString("name");
         String newTfsName;
         String newTfsName;
-        // 循环获取其他同级任务状态,判断是否有更高级别的任务状态
-        // 同级红灯状态ID
-        JSONObject redTfs=tbApiService.getProjectStateId(projectId,"红灯",tfid,"").getJSONObject(0);
-        String redId=redTfs.getString("id");
-        // 同级黄状态ID
-        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;
+        // 判断状态
+        JSONObject taskTfs=tbApiService.getProjectStateId(projectId,"",tfid,task.getString("tfsId")).getJSONObject(0);
+        String taskTfsName=taskTfs.getString("name");
+        if(taskTfsName.equals("年度目标未达成")){
+            newTfsName="年度目标未达成";
+        }else if(taskTfsName.equals("年度目标达成")){
+            JSONObject notTfs=tbApiService.getProjectStateId(projectId,"年度目标未达成",tfid,"").getJSONObject(0);
+            String notId=notTfs.getString("id");
+            String notZbID;
+            JSONObject zbtf=tbApiService.getProjectTfid(projectId,"年度指标工作流").getJSONObject(0);
+            if(tfid.equals(zbtf.getString("id"))){
+                notZbID=notId;
+            }else{
+                JSONObject redZbTfs=tbApiService.getProjectStateId(projectId,"年度目标未达成",zbtf.getString("id"),"").getJSONObject(0);
+                notZbID=redZbTfs.getString("id");
+            }
+            JSONArray array=tbApiService.getTasksByParent(parentTaskId);
+            newTfsName="年度目标达成";
+            int notNum=0;
+            for (int i = 0; i < array.size(); i++) {
+                JSONObject taskT=array.getJSONObject(i);
+                if(notId.equals(taskT.getString("tfsId"))||notZbID.equals(taskT.getString("tfsId"))){
+                    notNum++;
+                }
+            }
+            if(notNum>=1){
+                newTfsName="年度目标未达成";
+            }
         }else{
         }else{
-            JSONObject redZbTfs=tbApiService.getProjectStateId(projectId,"红灯",zbtf.getString("id"),"").getJSONObject(0);
-            redZbId=redZbTfs.getString("id");
+            // 红绿灯
+            // 循环获取其他同级任务状态,判断是否有更高级别的任务状态
+            // 同级红灯状态ID
+            JSONObject redTfs=tbApiService.getProjectStateId(projectId,"红灯",tfid,"").getJSONObject(0);
+            String redId=redTfs.getString("id");
             // 同级黄状态ID
             // 同级黄状态ID
-            JSONObject yellowZbTfs=tbApiService.getProjectStateId(projectId,"黄灯",zbtf.getString("id"),"").getJSONObject(0);
-            yellowZbId=yellowZbTfs.getString("id");
-        }
+            JSONObject yellowTfs=tbApiService.getProjectStateId(projectId,"黄灯",tfid,"").getJSONObject(0);
+            String yellowId=yellowTfs.getString("id");
+            // 指标任务状态
+            String redZbId,yellowZbId;
 
 
-        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"))||redZbId.equals(taskT.getString("tfsId"))){
-                redNum++;
-            }else if(yellowId.equals(taskT.getString("tfsId"))||yellowZbId.equals(taskT.getString("tfsId"))){
-                yellowNum++;
+            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);
+            newTfsName="绿灯";
+            int redNum=0,yellowNum=0;
+            for (int i = 0; i < array.size(); i++) {
+                JSONObject taskT=array.getJSONObject(i);
+                if(redId.equals(taskT.getString("tfsId"))||redZbId.equals(taskT.getString("tfsId"))){
+                    redNum++;
+                }else if(yellowId.equals(taskT.getString("tfsId"))||yellowZbId.equals(taskT.getString("tfsId"))){
+                    yellowNum++;
+                }
+            }
+            if(yellowNum>=1){
+                newTfsName="黄灯";
+            }
+            if(redNum>=1){
+                newTfsName="红灯";
             }
             }
         }
         }
-        if(yellowNum>=1){
-            color="黄灯";
-        }
-        if(redNum>=1){
-            color="红灯";
-        }
-        if(!color.equals(parentTaskTfsName)){
-            newTfsName=color;
-        }else{
+
+        if(newTfsName.equals(parentTaskTfsName)){
             return;
             return;
         }
         }
         // 任务类型判断
         // 任务类型判断
@@ -355,6 +384,7 @@ public class ThTbServiceImpl implements ThTbService {
         }
         }
     }
     }
 
 
+    // 变更任务创建
     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
         // 查询项目自定义字段
         // 查询项目自定义字段
@@ -377,10 +407,9 @@ public class ThTbServiceImpl implements ThTbService {
         if(name.contains("二级变更流程")){
         if(name.contains("二级变更流程")){
             custName="上级任务责任人";
             custName="上级任务责任人";
         }else if(name.contains("三级变更流程")){
         }else if(name.contains("三级变更流程")){
-            linkTask=tbApiService.getTasksInfo(linkTask.getString("id")).getJSONObject(0);
+            linkTask=tbApiService.getTasksInfo(linkTask.getString("parentTaskId")).getJSONObject(0);
             custName="一级任务知晓人";
             custName="一级任务知晓人";
         }else if(name.contains("年度指标变更")){
         }else if(name.contains("年度指标变更")){
-//            linkTask=tbApiService.getTasksInfo(linkTask.getString("id")).getJSONObject(0);
             custName="二级任务责任人";
             custName="二级任务责任人";
         }else{
         }else{
             log.info("非期望任务类型 不处理");
             log.info("非期望任务类型 不处理");