|
@@ -9,6 +9,10 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
+import java.lang.reflect.Array;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
/**
|
|
|
* TB事件回调 3_1
|
|
|
* 1. 回调可选择加密与不加密方式, tb发送成功为上游, 注册服务为下游
|
|
@@ -22,6 +26,8 @@ public class TBCallBackController {
|
|
|
@Autowired
|
|
|
private ThTbService thTbService;
|
|
|
|
|
|
+ private static List<String> EVENT_NAME= Arrays.asList("v3.task.taskflowstatus.update","v3.task.archive","v3.task.customfield.update","v3.task.create");
|
|
|
+
|
|
|
/**
|
|
|
* * 回调说明 [ppExt: 字段更新回调, 判定字段ID, 避免循坏触发问题, 接口修改也会触发webhook]
|
|
|
* * 1. 通过接口更操作的数据,也会与手动创建一样触发相同的回调, 除了项目更新接口调用实测不会触发回调, 手动修改正常回调
|
|
@@ -42,7 +48,7 @@ public class TBCallBackController {
|
|
|
|
|
|
if (eventName.contains("task")) {
|
|
|
log.info("[TB]任务回调, {}, {}", eventName, eventJson);
|
|
|
- if(eventName.equals("v3.task.taskflowstatus.update")||eventName.equals("v3.task.archive")){
|
|
|
+ if(EVENT_NAME.contains(eventName)){
|
|
|
String taskId=eventJson.getJSONObject("data").getString("taskId");
|
|
|
try {
|
|
|
thTbService.task(taskId);
|
|
@@ -50,6 +56,15 @@ public class TBCallBackController {
|
|
|
e.printStackTrace();
|
|
|
log.error("回调执行出错!");
|
|
|
}
|
|
|
+ }else if(eventName.equals("v3.objectlink.create")&&eventJson.getJSONObject("data").getString("parentType").equals("task")){
|
|
|
+ String taskId=eventJson.getJSONObject("data").getString("parentId");
|
|
|
+ String linkedId=eventJson.getJSONObject("data").getString("linkedId");
|
|
|
+ try {
|
|
|
+ thTbService.taskLink(taskId,linkedId);
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error("回调执行出错!");
|
|
|
+ }
|
|
|
}
|
|
|
return success;
|
|
|
}
|
|
@@ -62,4 +77,32 @@ public class TBCallBackController {
|
|
|
log.info("----- [TB]已注册, 未处理的其它回调 -----, {}, {}", eventName, eventJson);
|
|
|
return success;
|
|
|
}
|
|
|
+
|
|
|
+ // 任务添加关联任务事件参数
|
|
|
+ // {
|
|
|
+ // "eventId": "6670fac133e9e8b9c518ce82",
|
|
|
+ // "resourceId": "",
|
|
|
+ // "data": {
|
|
|
+ // "created": "2024-06-18T03:10:57.736Z",
|
|
|
+ // "creatorId": "65b1dc8355d0f38026a1c3db",
|
|
|
+ // "linked": {
|
|
|
+ // "content": "指标004"
|
|
|
+ // },
|
|
|
+ // "linkedId": "6666d59fe2a89ca43166a327",
|
|
|
+ // "linkedType": "task",
|
|
|
+ // "objectlinkId": "6670fac151169db36e20b2bb",
|
|
|
+ // "organizationId": "65b1dca21ab0fa13be993595",
|
|
|
+ // "parent": {
|
|
|
+ // "content": "测试测试"
|
|
|
+ // },
|
|
|
+ // "parentId": "6670fa91928568dc13d1c3b5",
|
|
|
+ // "parentType": "task",
|
|
|
+ // "updated": "2024-06-18T03:10:57.736Z"
|
|
|
+ // },
|
|
|
+ // "hookId": "664d94b1fe0d331ff82ad0df",
|
|
|
+ // "event": "v3.objectlink.create",
|
|
|
+ // "category": "",
|
|
|
+ // "orgId": "65b1dca21ab0fa13be993595",
|
|
|
+ // "timestamp": 1718680257748
|
|
|
+ //}
|
|
|
}
|