|
@@ -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);
|