From de438686d3304fb2623f661f9de48a1b75bdc175 Mon Sep 17 00:00:00 2001 From: sunzheng Date: Tue, 30 Jul 2024 09:42:57 +0800 Subject: [PATCH] =?UTF-8?q?update:=E4=BF=AE=E6=94=B9=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=9A=84=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FeiShuDockingController.java | 4 +-- .../feishu/service/IFeiShuDockingService.java | 2 +- .../impl/FeiShuDockingServiceImpl.java | 25 ++++++++++++------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/controller/FeiShuDockingController.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/controller/FeiShuDockingController.java index cb0d26e4..51a76fa4 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/controller/FeiShuDockingController.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/controller/FeiShuDockingController.java @@ -40,8 +40,8 @@ public class FeiShuDockingController { * @return */ @PostMapping("/createApprovalDefinition") - public String createApprovalDefinition() { - return feiShuDockingService.createApprovalDefinition(); + public String createApprovalDefinition(String approvalCode, String approvalName) { + return feiShuDockingService.createApprovalDefinition(approvalCode, approvalName); } /** diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/IFeiShuDockingService.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/IFeiShuDockingService.java index c80eb14b..c36ad299 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/IFeiShuDockingService.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/IFeiShuDockingService.java @@ -18,7 +18,7 @@ public interface IFeiShuDockingService { * 创建三方审批的定义 * @return */ - String createApprovalDefinition(); + String createApprovalDefinition(String approvalCode, String approvalName); /** * 查看指定三方审批定义 diff --git a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java index 51557f12..3e541018 100644 --- a/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java +++ b/laws-modules-docking/src/main/java/com/jero/modules/docking/feishu/service/impl/FeiShuDockingServiceImpl.java @@ -9,6 +9,7 @@ import com.jero.common.api.vo.Result; import com.jero.common.constant.CommonConstant; import com.jero.common.exception.JeroBootException; import com.jero.common.system.util.JwtUtil; +import com.jero.common.system.vo.DictModel; import com.jero.common.system.vo.SysDictItemCore; import com.jero.common.util.RedisUtil; import com.jero.common.util.oConvertUtils; @@ -77,8 +78,6 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { private String appSecret; @Value("${feishu.managersIds}") private String managersIds; - @Value("${feishu.approvalName}") - private String approvalName; private static final String USER_INFO = "userInfo"; @@ -100,13 +99,13 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { } @Override - public String createApprovalDefinition() { + public String createApprovalDefinition(String approvalCode, String approvalName) { String url = env.getProperty("feishu.create_approval_definition"); assert url != null; // 获取token String accessToken = getAccessToken(); // 构建对象 - ApprovalsDefinitionVo approvalsDefinitionVo = buildDefinitionVo(); + ApprovalsDefinitionVo approvalsDefinitionVo = buildDefinitionVo(approvalCode, approvalName); // 设置请求头 HttpHeaders headers = createHeaders(accessToken); // 构建包含查询参数的 URL @@ -129,12 +128,12 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { } // 构建创建审批定义的入参对象 - public ApprovalsDefinitionVo buildDefinitionVo() { + public ApprovalsDefinitionVo buildDefinitionVo(String approvalCode, String approvalName) { ApprovalsDefinitionVo approvalsDefinitionVo = new ApprovalsDefinitionVo(); // 构建审批定义vo approvalsDefinitionVo.setApproval_name("@i18n@1"); - approvalsDefinitionVo.setApproval_code("permission_test3"); - approvalsDefinitionVo.setGroup_code("work_group"); + approvalsDefinitionVo.setApproval_code(approvalCode); + approvalsDefinitionVo.setGroup_code(approvalCode); approvalsDefinitionVo.setGroup_name("@i18n@2"); // 构建三方审批相关对象. DefinitionExternal definitionExternal = new DefinitionExternal(); @@ -265,7 +264,9 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { String promoterUserId = instanceDto.getPromoterUserId(); if (StringUtils.isNoneBlank(promoterUserId)) { SysUser promoterUser = sysUserService.getById(promoterUserId); - promoterUserId = promoterUser.getFeishuId(); + if (!Objects.isNull(promoterUser) && StringUtils.isNotBlank(promoterUser.getFeishuId())) { + promoterUserId = promoterUser.getFeishuId(); + } } // 审核人的id(可能为多个),查出对应的飞书id String reviewedIds = instanceDto.getReviewedIds(); @@ -337,7 +338,13 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService { promoterMobileLink = url.replace("{REDIRECT_URI}", promoterMobileLink); } // 审批定义的code - String approvalDefinition = createApprovalDefinition(); + Integer processType = instanceDto.getProcessType(); + // 拿到这个流程的名称 + List prcTypeList = sysDictService.getDictItems("prc_type"); + // 将列表转换为Map + Map prcTypeMap = prcTypeList.stream().collect(Collectors.toMap(DictModel::getValue, DictModel::getText)); + String processName = prcTypeMap.get(String.valueOf(processType)); + String approvalDefinition = createApprovalDefinition("process_" + processType, processName); // 发起人相关的信息 ApprovalsInstanceVo approvalsInstanceVo = new ApprovalsInstanceVo(); approvalsInstanceVo.setApproval_code(approvalDefinition);