Browse Source

艾为更新

pruple_boy 1 year ago
parent
commit
86e9e6e4ea

+ 1 - 1
mjava-aiwei/src/main/java/com/malk/aiwei/controller/TBxYDController.java

@@ -276,6 +276,6 @@ public class TBxYDController {
     @GetMapping("tmp")
     McR tmp(String programIds) {
 
-        return McR.success(tbClient.queryProgramList(programIds));
+        return McR.success(tbClient.queryProgramList_all());
     }
 }

+ 6 - 2
mjava-aiwei/src/main/java/com/malk/aiwei/service/impl/AWImplClient.java

@@ -412,6 +412,8 @@ public class AWImplClient implements AWClint {
             formData.put("textField_ltsdsti9", baseFormData.get("textField_lki3egzn"));      // Charter子类
             formData.put("textField_ltwcq7s5", baseFormData.get("textField_lki3egzm"));      // Charter
             formData.put("textField_ltwcq7s6", baseFormData.get("textField_lnjqpeie"));      // 项目类型 (TB项目模板)
+            formData.put("textField_lwj1r7n6", baseFormData.get("textField_lqnf2z2z"));      // 项目重要性分级
+            formData.put("textField_lwj1r7n7", baseFormData.get("textField_lnjqpeif"));      // 项目等级
             List<Map> details = new ArrayList<>();
             List<Map> roleMap = mapRole;
             Map projectMembers = baseFormData;
@@ -534,7 +536,7 @@ public class AWImplClient implements AWClint {
         }
     }
 
-    // 同步TB项目成员/项目分组 todo 群成员
+    // 同步TB项目成员/项目分组/项目概览 todo 群成员
     void _syncProjectRole(Map formData, String projectId, boolean isCreate) {
 
         // prd TB项目成员, 项目经理设置为管理者
@@ -595,6 +597,9 @@ public class AWImplClient implements AWClint {
         if (!isCreate) {
             updateProjectRole(projectId, Arrays.asList("全部", "自动更新"));
         }
+        // prd 5.23 更新项目概览信息
+        tbClient.updateProjectStatusField(projectId, tbConf.getOperatorId(), TBConf.assembleCustomFieldName("项目描述", UtilMap.getString(formData, "textareaField_lrj7vnxl")));
+        tbClient.updateProjectStatusField(projectId, tbConf.getOperatorId(), TBConf.assembleCustomFieldName("项目重要等级", UtilMap.getString(formData, "textField_lwj1r7n6")));
         log.info("TB项目信息, {}, {}", projectId, roleIds.size());
     }
 
@@ -1067,7 +1072,6 @@ public class AWImplClient implements AWClint {
 
     }
 
-
     /// tmp: 5.22 处理检查项重复数据
     private void _test() {
         List<Map> dataList = ydService.queryFormData_all(YDParam.builder()

+ 22 - 1
mjava/src/main/java/com/malk/service/teambition/TBClient.java

@@ -240,10 +240,17 @@ public interface TBClient {
     /**
      * 查询项目集
      *
-     * @apiNote https://open.teambition.com/docs/apis/64e810fe912d20d3b58f9ff9
+     * @apiNote https://open.teambition.com/docs/apis/6501ad17912d20d3b5086630
      */
     List<Map> queryProgramList(String programIds);
 
+    /**
+     * 查询项目集 [ppExt: post请求, 获取全量项目集后, 通过name匹配. get请求内id必填, 名称查询无实际用途]
+     *
+     * @apiNote https://open.teambition.com/docs/apis/64e810fe912d20d3b58f9ff9
+     */
+    List<Map> queryProgramList_all();
+
     /**
      * 批量添加项目到项目集
      *
@@ -251,6 +258,20 @@ public interface TBClient {
      */
     List<Map> upsertProgramProject(String programId, List<String> projectIds);
 
+    /**
+     * 查询项目概览自定义字段列表
+     *
+     * @apiNote https://open.teambition.com/docs/apis/6321c6d1912d20d3b5a49d9d
+     */
+    List<Map> queryProjectStatusField(String projectId);
+
+    /**
+     * 更新项目概览自定义字段值 [参考任务自定义字段更新]
+     *
+     * @apiNote https://open.teambition.com/docs/apis/6321c6d1912d20d3b5a49d9d
+     */
+    Map updateProjectStatusField(String projectId, String operatorId, Map body);
+
     /**
      * 查询全部数据 [函数回调]
      * - ppExt

+ 19 - 1
mjava/src/main/java/com/malk/service/teambition/impl/TBClientImpl.java

@@ -344,8 +344,14 @@ public class TBClientImpl implements TBClient {
 
     @Override
     public List<Map> queryProgramList(String programIds) {
-        /// todo post请求 id虽然为非必填,但是这个参数是和get请求,在url后不在body里面。因此也会触发必填校验. BUG
         Map param = UtilMap.map("programIds", programIds);
+        TBR tbr = (TBR) UtilHttp.doGet(tbConf.getApiHost() + "/v3/program/query", initHeaderToken(), param, TBR.class);
+        return (List<Map>) tbr.getResult();
+    }
+
+    @Override
+    public List<Map> queryProgramList_all() {
+        Map param = UtilMap.map("programIds", "662a786a901e5230b989b54d");
         TBR tbr = (TBR) UtilHttp.doPost(tbConf.getApiHost() + "/v3/program/query", initHeaderToken(), param, null, TBR.class);
         return (List<Map>) tbr.getResult();
     }
@@ -355,4 +361,16 @@ public class TBClientImpl implements TBClient {
         TBR tbr = (TBR) UtilHttp.doPost(tbConf.getApiHost() + "v3/program/" + programId + "/project/create", initHeaderToken(), UtilMap.map("projectIds", projectIds), TBR.class);
         return (List<Map>) tbr.getResult();
     }
+
+    @Override
+    public List<Map> queryProjectStatusField(String projectId) {
+        TBR tbr = (TBR) UtilHttp.doGet(tbConf.getApiHost() + "v3/project/" + projectId + "/status/customfield/list", initHeaderToken(), null, TBR.class);
+        return (List<Map>) tbr.getResult();
+    }
+
+    @Override
+    public Map updateProjectStatusField(String projectId, String operatorId, Map body) {
+        TBR tbr = (TBR) UtilHttp.doPost(tbConf.getApiHost() + "/v3/project/" + projectId + "/status/customfield/create", initHeaderToken(operatorId), body, TBR.class);
+        return (Map) tbr.getResult();
+    }
 }