Quellcode durchsuchen

加入一个接口, 钉钉获取流程实例详情

wuweihao vor 1 Jahr
Ursprung
Commit
64df77dcfa

+ 9 - 0
gis_dingtalk/src/main/java/com/gis/dingtalk/DingClient.java

@@ -29,4 +29,13 @@ public interface DingClient {
      */
     @Post("https://oapi.dingtalk.com/topapi/message/corpconversation/asyncsend_v2?access_token={accessToken}")
     JSONObject sendMsg(@Var("accessToken") String accessToken, @JSONBody DingMsgDto object);
+
+    /**
+     * 获取单个审批实例详情
+     * @param accessToken
+     * @param processInstanceId 审批实例ID etoy6f7RRBmUYgTNoFjq0w05391707123720  盛建民提交的报销申请 2024-02-05
+     * @return
+     */
+    @Get("https://api.dingtalk.com/v1.0/workflow/processInstances?processInstanceId={processInstanceId}")
+    JSONObject getWorkflowInfo(@Header("x-acs-dingtalk-access-token") String accessToken, @Var("processInstanceId")String processInstanceId);
 }

+ 20 - 3
gis_dingtalk/src/main/java/com/gis/dingtalk/controller/DingTalkController.java

@@ -20,7 +20,6 @@ import java.time.LocalDate;
 /**
  * Created by owen on 2023/6/14 0014 11:25
  */
-@ApiIgnore
 @Slf4j
 @Api(tags = "钉钉相关接口")
 @RestController
@@ -31,7 +30,6 @@ public class DingTalkController {
     DingClient dingClient;
 
 
-
     @ApiOperation(value = "获取AccessToken")
     @GetMapping(value = "/accessToken")
     public Result accessToken() {
@@ -48,7 +46,7 @@ public class DingTalkController {
         return Result.success(dingClient.getUserByMobile(access_token, phone));
     }
 
-
+    @ApiIgnore
     @ApiOperation(value = "发送消息到用户")
     @GetMapping(value = "/sendMsg/{phone}")
     public Result sendMsg(@PathVariable String phone) {
@@ -69,6 +67,25 @@ public class DingTalkController {
         return Result.success(dingClient.sendMsg(access_token, dto));
     }
 
+
+    /**
+     * 2024-03-06 by owen
+     * 提供给钉钉OA使用
+     * @param processInstanceId
+     * @return
+     */
+    @ApiOperation(value = "获取单个审批实例详情", notes = "processInstanceId:审批实例ID 例如:etoy6f7RRBmUYgTNoFjq0w05391707123720")
+    @GetMapping(value = "/getWorkflowInfo/{processInstanceId}")
+    public Result getWorkflowInfo(@PathVariable String processInstanceId) {
+        JSONObject token = dingClient.getToken(DingTalkConstant.app_key, DingTalkConstant.app_secret);
+        String access_token = token.getString("access_token");
+        log.info("access_token:{}, processInstanceId:{}", access_token, processInstanceId);
+
+        return Result.success(dingClient.getWorkflowInfo(access_token, processInstanceId));
+    }
+
+
+    @ApiIgnore
     @ApiOperation(value = "发送消息到部门", notes = "web部门:65038809")
     @GetMapping(value = "/sendDeptMsg/{deptId}")
     public Result sendDeptMsg(@PathVariable String deptId) {