|
@@ -921,7 +921,7 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
|
|
|
public static String convertChineseToUtf8Hex(String input) {
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
- Pattern pattern = Pattern.compile("[\\u4E00-\\u9FA5]");
|
|
|
+ Pattern pattern = Pattern.compile("[\\u4E00-\\u9FFF\\u3000-\\u303F\\uFF00-\\uFFEF]");
|
|
|
Matcher matcher = pattern.matcher(input);
|
|
|
|
|
|
int i = 0;
|
|
@@ -1263,16 +1263,16 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
}
|
|
|
|
|
|
if (Strings.isNullOrEmpty(projectId)){
|
|
|
- /*Map map = new HashMap();
|
|
|
- map.put("url","https://open.teambition.com/api/v3/project/query");
|
|
|
- map.put("headers",initHeaderToken());
|
|
|
- map.put("params",UtilMap.map("name", projectName));
|
|
|
- Map map1 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,map));
|
|
|
- List<Map> projectList = (List<Map>)map1.get("result");*/
|
|
|
+ Map mcBody = new HashMap();
|
|
|
+ mcBody.put("url","https://open.teambition.com/api/v3/project/query");
|
|
|
+ mcBody.put("headers",initHeaderToken());
|
|
|
+ mcBody.put("params",UtilMap.map("name", projectName));
|
|
|
+ Map mcResult = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody));
|
|
|
+ List<Map> projectList = (List<Map>)mcResult.get("result");
|
|
|
|
|
|
|
|
|
- TBR projectTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/query", initHeaderToken(), UtilMap.map("name", projectName), TBR.class);
|
|
|
- List<Map> projectList = (List<Map>) projectTbr.getResult();
|
|
|
+/* TBR projectTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/query", initHeaderToken(), UtilMap.map("name", projectName), TBR.class);
|
|
|
+ List<Map> projectList = (List<Map>) projectTbr.getResult();*/
|
|
|
if (projectList.isEmpty()){
|
|
|
return McR.errorParam("未在TB中查询到此项目信息!");
|
|
|
}
|
|
@@ -1281,8 +1281,15 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
}
|
|
|
|
|
|
//搜索任务列表
|
|
|
- TBR stageTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/stage/search", initHeaderToken(), null, TBR.class);
|
|
|
- List<Map> stageList = (List<Map>) stageTbr.getResult();
|
|
|
+ Map mcBody = new HashMap();
|
|
|
+ mcBody.put("url","https://open.teambition.com/api/v3/project/"+projectId+"/stage/search");
|
|
|
+ mcBody.put("headers",initHeaderToken());
|
|
|
+ mcBody.put("params",null);
|
|
|
+ Map mcResult = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody));
|
|
|
+ List<Map> stageList = (List<Map>)mcResult.get("result");
|
|
|
+
|
|
|
+ /*TBR stageTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/stage/search", initHeaderToken(), null, TBR.class);
|
|
|
+ List<Map> stageList = (List<Map>) stageTbr.getResult();*/
|
|
|
Map<String,String> stageMap = new HashMap<>();
|
|
|
for (Map stage : stageList) {
|
|
|
String name = stage.get("name").toString().replaceAll("\\s+","");
|
|
@@ -1293,8 +1300,15 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
|
|
|
//查询父任务详情
|
|
|
for (String stageId : stageMap.keySet()) {
|
|
|
- TBR parentTaskTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/" + projectId + "/task/query", initHeaderToken(), UtilMap.map("q", "stageId = " + stageId + " AND taskLayer = onlyTopLevel"), TBR.class);
|
|
|
- List<Map> parentTaskList = (List<Map>) parentTaskTbr.getResult();
|
|
|
+ Map mcBody2 = new HashMap();
|
|
|
+ mcBody2.put("url","https://open.teambition.com/api/v3/project/" + projectId + "/task/query");
|
|
|
+ mcBody2.put("headers",initHeaderToken());
|
|
|
+ mcBody2.put("params",UtilMap.map("q", "stageId = " + stageId + " AND taskLayer = onlyTopLevel"));
|
|
|
+ Map mcResult2 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody2));
|
|
|
+ List<Map> parentTaskList = (List<Map>)mcResult2.get("result");
|
|
|
+
|
|
|
+ /*TBR parentTaskTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/" + projectId + "/task/query", initHeaderToken(), UtilMap.map("q", "stageId = " + stageId + " AND taskLayer = onlyTopLevel"), TBR.class);
|
|
|
+ List<Map> parentTaskList = (List<Map>) parentTaskTbr.getResult();*/
|
|
|
for (Map parentTask : parentTaskList) {
|
|
|
String content = parentTask.get("content").toString();
|
|
|
|
|
@@ -1344,8 +1358,18 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
Map body = new HashMap();
|
|
|
body.put("name",name);
|
|
|
body.put("templateId",templateId);
|
|
|
- TBR tbr = (TBR) UtilHttp.doPost("https://open.teambition.com/api/v3/project/create-from-template", initHeaderToken(), null,body, TBR.class);
|
|
|
- Map result = (Map) tbr.getResult();
|
|
|
+
|
|
|
+ Map mcBody = new HashMap();
|
|
|
+ mcBody.put("url","https://open.teambition.com/api/v3/project/create-from-template");
|
|
|
+ mcBody.put("headers",initHeaderToken());
|
|
|
+ mcBody.put("params",null);
|
|
|
+ mcBody.put("body",body);
|
|
|
+ Map mcResult = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/post",null,null,mcBody));
|
|
|
+ Map result = (Map) mcResult.get("result");
|
|
|
+
|
|
|
+
|
|
|
+ /*TBR tbr = (TBR) UtilHttp.doPost("https://open.teambition.com/api/v3/project/create-from-template", initHeaderToken(), null,body, TBR.class);
|
|
|
+ Map result = (Map) tbr.getResult();*/
|
|
|
String id = result.get("id").toString();
|
|
|
|
|
|
//更新项目档案
|
|
@@ -1447,13 +1471,15 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
return McR.errorParam("项目名称或父任务id不能为空!");
|
|
|
}
|
|
|
if (Strings.isNullOrEmpty(projectId)){
|
|
|
- /*Map map = new HashMap();
|
|
|
- map.put("url","https://open.teambition.com/api/v3/project/query");
|
|
|
- map.put("headers",initHeaderToken());
|
|
|
- map.put("params",UtilMap.map("name", projectName));
|
|
|
- Map map1 = (Map) JSON.parse(UtilHttp.doPost("127.0.0.1:9900/api/mc/query/get",null,null,map));*/
|
|
|
- TBR projectTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/query", initHeaderToken(), UtilMap.map("name", projectName), TBR.class);
|
|
|
- List<Map> projectList = (List<Map>) projectTbr.getResult();
|
|
|
+ /*TBR projectTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/query", initHeaderToken(), UtilMap.map("name", projectName), TBR.class);
|
|
|
+ List<Map> projectList = (List<Map>) projectTbr.getResult();*/
|
|
|
+ Map mcBody = new HashMap();
|
|
|
+ mcBody.put("url","https://open.teambition.com/api/v3/project/query");
|
|
|
+ mcBody.put("headers",initHeaderToken());
|
|
|
+ mcBody.put("params",UtilMap.map("name", projectName));
|
|
|
+ Map mcResult = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody));
|
|
|
+ List<Map> projectList = (List<Map>)mcResult.get("result");
|
|
|
+
|
|
|
if (projectList.isEmpty()){
|
|
|
return McR.errorParam("未在TB中查询到此项目信息!");
|
|
|
}
|
|
@@ -1462,8 +1488,15 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
}
|
|
|
|
|
|
//搜索项目自定义字段
|
|
|
- TBR cfTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/customfield/search", initHeaderToken(), null, TBR.class);
|
|
|
- List<Map> cfList = (List<Map>) cfTbr.getResult();
|
|
|
+ /*TBR cfTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/customfield/search", initHeaderToken(), null, TBR.class);
|
|
|
+ List<Map> cfList = (List<Map>) cfTbr.getResult();*/
|
|
|
+ Map mcBody = new HashMap();
|
|
|
+ mcBody.put("url","https://open.teambition.com/api/v3/project/"+projectId+"/customfield/search");
|
|
|
+ mcBody.put("headers",initHeaderToken());
|
|
|
+ mcBody.put("params",null);
|
|
|
+ Map mcResult = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody));
|
|
|
+ List<Map> cfList = (List<Map>)mcResult.get("result");
|
|
|
+
|
|
|
Map<String,String> cfMap = new HashMap<>();
|
|
|
cfList.forEach(cf -> {
|
|
|
String name = cf.get("name").toString();
|
|
@@ -1486,14 +1519,28 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
});
|
|
|
|
|
|
//搜索项目标签
|
|
|
- TBR tagTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/tag/search", initHeaderToken(), null, TBR.class);
|
|
|
- List<Map> tagResult = (List<Map>) tagTbr.getResult();
|
|
|
+ /*TBR tagTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/tag/search", initHeaderToken(), null, TBR.class);
|
|
|
+ List<Map> tagResult = (List<Map>) tagTbr.getResult();*/
|
|
|
+ Map mcBody2 = new HashMap();
|
|
|
+ mcBody2.put("url","https://open.teambition.com/api/v3/project/"+projectId+"/tag/search");
|
|
|
+ mcBody2.put("headers",initHeaderToken());
|
|
|
+ mcBody2.put("params",null);
|
|
|
+ Map mcResult2 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody2));
|
|
|
+ List<Map> tagResult = (List<Map>)mcResult2.get("result");
|
|
|
+
|
|
|
Map<String,String> tagMap = new HashMap<>();
|
|
|
tagResult.forEach(tag -> tagMap.put(tag.get("id").toString(),tag.get("name").toString()));
|
|
|
|
|
|
//搜索任务列表
|
|
|
- TBR stageTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/stage/search", initHeaderToken(), null, TBR.class);
|
|
|
- List<Map> stageList = (List<Map>) stageTbr.getResult();
|
|
|
+ /*TBR stageTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/stage/search", initHeaderToken(), null, TBR.class);
|
|
|
+ List<Map> stageList = (List<Map>) stageTbr.getResult();*/
|
|
|
+ Map mcBody3 = new HashMap();
|
|
|
+ mcBody3.put("url","https://open.teambition.com/api/v3/project/"+projectId+"/stage/search");
|
|
|
+ mcBody3.put("headers",initHeaderToken());
|
|
|
+ mcBody3.put("params",null);
|
|
|
+ Map mcResult3 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody3));
|
|
|
+ List<Map> stageList = (List<Map>)mcResult3.get("result");
|
|
|
+
|
|
|
Map<String,String> stageMap = new HashMap<>();
|
|
|
for (Map stage : stageList) {
|
|
|
String name = stage.get("name").toString().replaceAll("\\s+","");
|
|
@@ -1505,8 +1552,15 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
Map<String,String> subTaskState = new HashMap<>();
|
|
|
|
|
|
//查询父任务详情
|
|
|
- TBR tbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/task/query", initHeaderToken(), UtilMap.map("parentTaskId", parentTaskId), TBR.class);
|
|
|
- List<Map<String, Object>> task = (List<Map<String, Object>>) tbr.getResult();
|
|
|
+ /*TBR tbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/task/query", initHeaderToken(), UtilMap.map("parentTaskId", parentTaskId), TBR.class);
|
|
|
+ List<Map<String, Object>> task = (List<Map<String, Object>>) tbr.getResult();*/
|
|
|
+ Map mcBody4 = new HashMap();
|
|
|
+ mcBody4.put("url","https://open.teambition.com/api/v3/task/query");
|
|
|
+ mcBody4.put("headers",initHeaderToken());
|
|
|
+ mcBody4.put("params",UtilMap.map("parentTaskId", parentTaskId));
|
|
|
+ Map mcResult4 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody4));
|
|
|
+ List<Map<String, Object>> task = (List<Map<String, Object>>)mcResult4.get("result");
|
|
|
+
|
|
|
List<Map<String, Object>> list = new ArrayList<>();
|
|
|
boolean flag = true;
|
|
|
for (Map<String,Object> subTask : task) {
|
|
@@ -1514,12 +1568,27 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
if (flag){
|
|
|
String sfcId = subTask.get("sfcId").toString();//任务类型id
|
|
|
//查询任务类型
|
|
|
- TBR sfcTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/scenariofieldconfig/search", initHeaderToken(), UtilMap.map("sfcIds", sfcId), TBR.class);
|
|
|
- List<Map> sfcList = (List<Map>) sfcTbr.getResult();
|
|
|
+ /*TBR sfcTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/scenariofieldconfig/search", initHeaderToken(), UtilMap.map("sfcIds", sfcId), TBR.class);
|
|
|
+ List<Map> sfcList = (List<Map>) sfcTbr.getResult();*/
|
|
|
+ Map mcBody5 = new HashMap();
|
|
|
+ mcBody5.put("url","https://open.teambition.com/api/v3/project/"+projectId+"/scenariofieldconfig/search");
|
|
|
+ mcBody5.put("headers",initHeaderToken());
|
|
|
+ mcBody5.put("params",UtilMap.map("sfcIds", sfcId));
|
|
|
+ Map mcResult5 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody5));
|
|
|
+ List<Map> sfcList = (List<Map>)mcResult5.get("result");
|
|
|
+
|
|
|
String taskFlowId = sfcList.get(0).get("taskflowId").toString();//工作流id
|
|
|
+
|
|
|
//获取工作流下所有状态节点信息
|
|
|
- TBR tfTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/taskflowstatus/search", initHeaderToken(), UtilMap.map("tfIds", taskFlowId), TBR.class);
|
|
|
- List<Map> tfList = (List<Map>) tfTbr.getResult();
|
|
|
+ /*TBR tfTbr = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/taskflowstatus/search", initHeaderToken(), UtilMap.map("tfIds", taskFlowId), TBR.class);
|
|
|
+ List<Map> tfList = (List<Map>) tfTbr.getResult();*/
|
|
|
+ Map mcBody6 = new HashMap();
|
|
|
+ mcBody6.put("url","https://open.teambition.com/api/v3/project/"+projectId+"/taskflowstatus/search");
|
|
|
+ mcBody6.put("headers",initHeaderToken());
|
|
|
+ mcBody6.put("params",UtilMap.map("tfIds", taskFlowId));
|
|
|
+ Map mcResult6 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody6));
|
|
|
+ List<Map> tfList = (List<Map>)mcResult6.get("result");
|
|
|
+
|
|
|
for (Map tf : tfList) {
|
|
|
String name = tf.get("name").toString();
|
|
|
String tfsId = tf.get("id").toString();
|
|
@@ -1576,17 +1645,39 @@ public class LingmingguangziServiceImpl implements LingmingguangziService {
|
|
|
|
|
|
//获取父任务工作流状态
|
|
|
//获取父任务详情
|
|
|
- TBR tbr2 = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/task/query", initHeaderToken(), UtilMap.map("taskId", parentTaskId), TBR.class);
|
|
|
- List<Map<String, Object>> result2 = (List<Map<String, Object>>) tbr2.getResult();
|
|
|
+ /*TBR tbr2 = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/task/query", initHeaderToken(), UtilMap.map("taskId", parentTaskId), TBR.class);
|
|
|
+ List<Map<String, Object>> result2 = (List<Map<String, Object>>) tbr2.getResult();*/
|
|
|
+ Map mcBody6 = new HashMap();
|
|
|
+ mcBody6.put("url","https://open.teambition.com/api/v3/task/query");
|
|
|
+ mcBody6.put("headers",initHeaderToken());
|
|
|
+ mcBody6.put("params",UtilMap.map("taskId", parentTaskId));
|
|
|
+ Map mcResult6 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody6));
|
|
|
+ List<Map<String, Object>> result2 = (List<Map<String, Object>>)mcResult6.get("result");
|
|
|
+
|
|
|
String sfcId = result2.get(0).get("sfcId").toString();
|
|
|
String tfsId = result2.get(0).get("tfsId").toString();
|
|
|
+
|
|
|
//获取项目任务类型
|
|
|
- TBR tbr3 = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/scenariofieldconfig/search", initHeaderToken(), UtilMap.map("sfcIds", sfcId), TBR.class);
|
|
|
- List<Map<String, Object>> result3 = (List<Map<String, Object>>) tbr3.getResult();
|
|
|
+ /*TBR tbr3 = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/"+projectId+"/scenariofieldconfig/search", initHeaderToken(), UtilMap.map("sfcIds", sfcId), TBR.class);
|
|
|
+ List<Map<String, Object>> result3 = (List<Map<String, Object>>) tbr3.getResult();*/
|
|
|
+ Map mcBody7 = new HashMap();
|
|
|
+ mcBody7.put("url","https://open.teambition.com/api/v3/project/"+projectId+"/scenariofieldconfig/search");
|
|
|
+ mcBody7.put("headers",initHeaderToken());
|
|
|
+ mcBody7.put("params",UtilMap.map("sfcIds", sfcId));
|
|
|
+ Map mcResult7 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody7));
|
|
|
+ List<Map<String, Object>> result3 = (List<Map<String, Object>>)mcResult7.get("result");
|
|
|
String taskflowId = result3.get(0).get("taskflowId").toString();
|
|
|
+
|
|
|
//搜索项目工作流状态
|
|
|
- TBR tbr4 = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/" + projectId + "/taskflowstatus/search", initHeaderToken(), UtilMap.map("tfIds", taskflowId), TBR.class);
|
|
|
- List<Map<String, Object>> result4 = (List<Map<String, Object>>) tbr4.getResult();
|
|
|
+ /*TBR tbr4 = (TBR) UtilHttp.doGet("https://open.teambition.com/api/v3/project/" + projectId + "/taskflowstatus/search", initHeaderToken(), UtilMap.map("tfIds", taskflowId), TBR.class);
|
|
|
+ List<Map<String, Object>> result4 = (List<Map<String, Object>>) tbr4.getResult();*/
|
|
|
+ Map mcBody8 = new HashMap();
|
|
|
+ mcBody8.put("url","https://open.teambition.com/api/v3/project/" + projectId + "/taskflowstatus/search");
|
|
|
+ mcBody8.put("headers",initHeaderToken());
|
|
|
+ mcBody8.put("params",UtilMap.map("tfIds", taskflowId));
|
|
|
+ Map mcResult8 = (Map) JSON.parse(UtilHttp.doPost("https://mc.cloudpure.cn/api/mc/request/get",null,null,mcBody8));
|
|
|
+ List<Map<String, Object>> result4 = (List<Map<String, Object>>)mcResult8.get("result");
|
|
|
+
|
|
|
result4.forEach(tf -> {
|
|
|
if (tf.get("id").toString().equals(tfsId)){
|
|
|
stageDetail.put("state", tf.get("name").toString());
|