lfx 1 kuukausi sitten
vanhempi
commit
707bbdf3b0

+ 5 - 5
mjava-poc/src/main/java/com/malk/poc/delegate/TBDelegate.java

@@ -33,12 +33,12 @@ public class TBDelegate implements TBEvent {
 
         if ("v3.task.taskflowstatus.update".equals(eventName)) {
             JSONObject data = eventJson.getJSONObject("data");
-            awClint.taskLevelValidate(data);
-            awClint.doApprove(data, false);
+            awClint.taskSatusUpdate(data);
+//            awClint.doApprove(data, false);
         } else if ("v3.task.customfield.update".equals(eventName)) {
-            JSONObject data = eventJson.getJSONObject("data");
-            System.out.println("1" + JSONObject.toJSONString(data));
-            awClint.custFieldUpdate(data);
+//            JSONObject data = eventJson.getJSONObject("data");
+//            System.out.println("1" + JSONObject.toJSONString(data));
+//            awClint.custFieldUpdate(data);
         }
     }
 

+ 1 - 1
mjava-poc/src/main/java/com/malk/poc/server/AWServer.java

@@ -33,7 +33,7 @@ public class AWServer {
 
     public static final String TASK_APPROVE_ATTACHMENT = "交付件";
     public static final String TASK_APPROVE_VERSION = "交付件版本";
-    public static final String TASK_APPROVE_LINK = "交付件审批流程";
+    public static final String TASK_APPROVE_LINK = "需求变更流程";
     public static final String TASK_APPROVE_STATE = "变更状态";
     public static final String TASK_APPROVE_DESC = "交付件描述";
 

+ 2 - 0
mjava-poc/src/main/java/com/malk/poc/service/AWClint.java

@@ -126,6 +126,8 @@ public interface AWClint {
      */
     void taskLevelValidate(Map data);
 
+    void taskSatusUpdate(Map data);
+
     void test();
 
     void tmp();

+ 62 - 10
mjava-poc/src/main/java/com/malk/poc/service/impl/AWImplClient.java

@@ -892,28 +892,38 @@ public class AWImplClient implements AWClint {
                 .formInstanceId(formInstId)
                 .build();
         // prd 客户系统主数据, 是全量定时从mdm更新, 因此不能增量
-        Map formData = ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id).getFormData();
+        DDR_New ddrNew=ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_id);
+        Map formData = ddrNew.getFormData();
         log.info("项目主数据, {}", formData);
         McException.assertAccessException(formData.isEmpty(), "未匹配项目主数据");
         String projectCode=UtilMap.getString(formData,"textField_m8simbnk");
         List<Map> pList = ydService.queryDataList_FormData("FORM-87750D9F02094BCA88FAD8166F0B9AA7VJMG", UtilMap.map("textField_lrj7vnxb", projectCode)); // 先您过目编号匹配
         McException.assertAccessException(pList.isEmpty(), "未匹配到项目主数据");
         String projectId=UtilMap.getString(pList.get(0), "textField_lqxtykce"); // TB项目编号
+        McException.assertAccessException(projectId==null||projectId.isEmpty(), "未匹配到TB项目编号");
         String taskType=_getTaskType(projectId,"风险");
-        List<String> roleIds = (List<String>) UtilMap.getList(formData, "employeeField_m9jok02i_id");
-        Map mainTask=saveTask(projectId,taskType,UtilMap.getString(formData,"textareaField_m9jmwi5l"),UtilMap.getString(formData,"textareaField_m9jmwi5q"),roleIds);
+        List<String> roleIds = (List<String>) UtilMap.getList(formData, "employeeField_m8fo7mpb_id");
+        String taskId=saveTask(projectId,taskType,UtilMap.getString(formData,"textareaField_m9jmwi5l"),UtilMap.getString(formData,"textareaField_m9jmwi5q"),roleIds,"");
+        String url="https://qekxvk.aliwork.com/APP_UUFCJROTRU87EZ0XWPV6/processDetail?formUuid=FORM-ED6CACB45BB04C41BCD0962F54F7010FQQYG&procInsId="+formInstId;
+        _updateApproveField(taskId, new ArrayList<>(), url, "需求变更流程", "完成", AWServer.TASK_APPROVE_LINK);
+        List<Map> table=UtilMap.getList(formData,"tableField_m8fo7mph");
+        for (Map map:table){
+            List<String> userIds = (List<String>) UtilMap.getList(formData, "employeeField_m8zm84pm_id");
+            saveTask(projectId,taskType,UtilMap.getString(map,"textField_m8fo7mpi"),UtilMap.getString(formData,"textField_m8fo7mpj"),userIds,taskId);
+        }
         ydClient.operateData(YDParam.builder()
-                .formInstanceId(UtilMap.getString(formData, "formInstanceId"))
-                .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_m9li9vzv", UtilMap.getString(mainTask,"taskId"))))
+                .appType("APP_UUFCJROTRU87EZ0XWPV6")
+                .systemToken("MT866991HJVPGXMV53O2OAVB0O2K39UVGBV2MTG1")
+                .formInstanceId(formInstId)
+                .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_m9li9vzv", taskId)))
                 .build(), YDConf.FORM_OPERATION.update);
-        log.info("TB任务编号更新, {}, {}", formInstId, UtilMap.getString(mainTask,"taskId"));
-
+        log.info("TB任务编号更新, {}, {}", formInstId, taskId);
     }
 
-    private Map saveTask(String projectId,String taskType,String content,String note,List<String> roleIds){
+    private String saveTask(String projectId,String taskType,String content,String note,List<String> roleIds,String fId){
         Map data=new HashMap();
         data.put("projectId",projectId);
-        data.put("content","测试风险任务");
+        data.put("content",content);
         List<String> tbUserIds = _convertUserId(roleIds, false);
         // prd 多人情况避免, 手动指定后被覆盖. 判定当前任务执行人在角色范围内则不支持更新
         if (tbUserIds.size() > 0) {
@@ -921,11 +931,12 @@ public class AWImplClient implements AWClint {
         }
         data.put("note",note);// 备注
         data.put("scenariofieldconfigId",taskType);// 任务类型
+        data.put("parentTaskId",fId);
         Map taskMap=tbClient.createTask(tbConf.getOperatorId(),data);
         String taskId=UtilMap.getString(taskMap,"taskId");
         Map body = TBConf.assembleCustomFieldName("类型", "风险");
         tbClient.updateTaskCustomField(taskId, tbConf.getOperatorId(), body);
-        return taskMap;
+        return taskId;
     }
 
     /**
@@ -2042,6 +2053,47 @@ public class AWImplClient implements AWClint {
         }
     }
 
+    @Override
+    public void taskSatusUpdate(Map data) {
+        String taskId = UtilMap.getString(data, "taskId");
+        String projectId = UtilMap.getString(data, "projectId");
+        YDParam ydParam = YDParam.builder()
+                .appType("APP_UUFCJROTRU87EZ0XWPV6")
+                .systemToken("MT866991HJVPGXMV53O2OAVB0O2K39UVGBV2MTG1")
+                .formUuid("FORM-ED6CACB45BB04C41BCD0962F54F7010FQQYG")
+                .searchCondition(JSONObject.toJSONString(Arrays.asList(
+                        new YDSearch("textField_m9li9vzv", taskId, "TB任务编号", YDSearch.Type.TEXT_FIELD, YDSearch.Operator.EQ))))
+                .build();
+        List<Map> list =(List<Map>) ydClient.queryData(ydParam, YDConf.FORM_QUERY.retrieve_list).getData();
+        log.info("查询到数据, {}", list.size());
+        if(list==null||list.size()<1) return;
+        String tfsName = _getWorkFlowStatusName(projectId, UtilMap.getString(data,"tfsId"));
+        for (Map map:list){
+            String no=UtilMap.getString(UtilMap.getMap(map,"formData"),"textField_m9gom6yl"); // 需求编号
+            if(no == null || no.isEmpty()) continue;
+            YDParam ydParam2 = YDParam.builder()
+                    .appType("APP_UUFCJROTRU87EZ0XWPV6")
+                    .systemToken("MT866991HJVPGXMV53O2OAVB0O2K39UVGBV2MTG1")
+                    .formUuid("FORM-B3AB6C59BE434341AE0652F8F451F963WSDF")
+                    .searchCondition(JSONObject.toJSONString(Arrays.asList(
+                            new YDSearch("serialNumberField_m2u6t58x", no, "需求编号", YDSearch.Type.TEXT_FIELD, YDSearch.Operator.EQ))))
+                    .build();
+            // prd 客户系统主数据, 是全量定时从mdm更新, 因此不能增量
+            List<Map> list2 =(List<Map>) ydClient.queryData(ydParam2, YDConf.FORM_QUERY.retrieve_list).getData();
+            if(list2==null||list2.size()<1) return;
+            String formInstId=UtilMap.getString(list2.get(0),"formInstanceId");
+            ydClient.operateData(YDParam.builder()
+                    .appType("APP_UUFCJROTRU87EZ0XWPV6")
+                    .systemToken("MT866991HJVPGXMV53O2OAVB0O2K39UVGBV2MTG1")
+                    .formInstanceId(formInstId)
+                    .updateFormDataJson(JSON.toJSONString(UtilMap.map("textField_m9m8g98z, dateField_m9m8g990, textareaField_m9m8g991", tfsName
+                    ,UtilDateTime.getLocalDateTimeTimeStamp(),"https://www.teambition.com/task/"+taskId)))
+                            .useLatestVersion(true)
+                    .build(), YDConf.FORM_OPERATION.update);
+        }
+
+    }
+
     /// 重置任务状态
     void resetWorkFlow(String projectId, String taskId) {
         List<String> workIds = _getWorkFlowStatusList(projectId, AWServer.WORKFLOW_INITIAL);

+ 2 - 1
mjava-poc/src/test/java/com/malk/poc/AwTbTest.java

@@ -85,7 +85,8 @@ public class AwTbTest {
 //        String id=tbClient.getUserId("5e698cca21f5ad70dfba7d2b",true);
 //        System.out.println(id);
 //        System.out.println(tbClient.idMapQuery("5e698cca21f5ad70dfba7d2b",true));
-        awClint.createTask("6800e9aad52ec8c669c757b0");
+//        awClint.taskSatusUpdate(UtilMap.map("projectId, tfsId, taskId","6800dc6856d5edcfb1cd1fb5","6800dc69ac1d65fb13fd7476","6801bc870bebee5098f041a6"));
+        awClint.createTask("ebba70b7-fe51-4510-820e-87dd3a7df8ec");
     }
 
 }