update:修改审批定义的创建

This commit is contained in:
sunzheng
2024-07-30 09:42:57 +08:00
parent f770424b01
commit de438686d3
3 changed files with 19 additions and 12 deletions
@@ -40,8 +40,8 @@ public class FeiShuDockingController {
* @return * @return
*/ */
@PostMapping("/createApprovalDefinition") @PostMapping("/createApprovalDefinition")
public String createApprovalDefinition() { public String createApprovalDefinition(String approvalCode, String approvalName) {
return feiShuDockingService.createApprovalDefinition(); return feiShuDockingService.createApprovalDefinition(approvalCode, approvalName);
} }
/** /**
@@ -18,7 +18,7 @@ public interface IFeiShuDockingService {
* 创建三方审批的定义 * 创建三方审批的定义
* @return * @return
*/ */
String createApprovalDefinition(); String createApprovalDefinition(String approvalCode, String approvalName);
/** /**
* 查看指定三方审批定义 * 查看指定三方审批定义
@@ -9,6 +9,7 @@ import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant; import com.jero.common.constant.CommonConstant;
import com.jero.common.exception.JeroBootException; import com.jero.common.exception.JeroBootException;
import com.jero.common.system.util.JwtUtil; 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.system.vo.SysDictItemCore;
import com.jero.common.util.RedisUtil; import com.jero.common.util.RedisUtil;
import com.jero.common.util.oConvertUtils; import com.jero.common.util.oConvertUtils;
@@ -77,8 +78,6 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
private String appSecret; private String appSecret;
@Value("${feishu.managersIds}") @Value("${feishu.managersIds}")
private String managersIds; private String managersIds;
@Value("${feishu.approvalName}")
private String approvalName;
private static final String USER_INFO = "userInfo"; private static final String USER_INFO = "userInfo";
@@ -100,13 +99,13 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
} }
@Override @Override
public String createApprovalDefinition() { public String createApprovalDefinition(String approvalCode, String approvalName) {
String url = env.getProperty("feishu.create_approval_definition"); String url = env.getProperty("feishu.create_approval_definition");
assert url != null; assert url != null;
// 获取token // 获取token
String accessToken = getAccessToken(); String accessToken = getAccessToken();
// 构建对象 // 构建对象
ApprovalsDefinitionVo approvalsDefinitionVo = buildDefinitionVo(); ApprovalsDefinitionVo approvalsDefinitionVo = buildDefinitionVo(approvalCode, approvalName);
// 设置请求头 // 设置请求头
HttpHeaders headers = createHeaders(accessToken); HttpHeaders headers = createHeaders(accessToken);
// 构建包含查询参数的 URL // 构建包含查询参数的 URL
@@ -129,12 +128,12 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
} }
// 构建创建审批定义的入参对象 // 构建创建审批定义的入参对象
public ApprovalsDefinitionVo buildDefinitionVo() { public ApprovalsDefinitionVo buildDefinitionVo(String approvalCode, String approvalName) {
ApprovalsDefinitionVo approvalsDefinitionVo = new ApprovalsDefinitionVo(); ApprovalsDefinitionVo approvalsDefinitionVo = new ApprovalsDefinitionVo();
// 构建审批定义vo // 构建审批定义vo
approvalsDefinitionVo.setApproval_name("@i18n@1"); approvalsDefinitionVo.setApproval_name("@i18n@1");
approvalsDefinitionVo.setApproval_code("permission_test3"); approvalsDefinitionVo.setApproval_code(approvalCode);
approvalsDefinitionVo.setGroup_code("work_group"); approvalsDefinitionVo.setGroup_code(approvalCode);
approvalsDefinitionVo.setGroup_name("@i18n@2"); approvalsDefinitionVo.setGroup_name("@i18n@2");
// 构建三方审批相关对象. // 构建三方审批相关对象.
DefinitionExternal definitionExternal = new DefinitionExternal(); DefinitionExternal definitionExternal = new DefinitionExternal();
@@ -265,7 +264,9 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
String promoterUserId = instanceDto.getPromoterUserId(); String promoterUserId = instanceDto.getPromoterUserId();
if (StringUtils.isNoneBlank(promoterUserId)) { if (StringUtils.isNoneBlank(promoterUserId)) {
SysUser promoterUser = sysUserService.getById(promoterUserId); SysUser promoterUser = sysUserService.getById(promoterUserId);
promoterUserId = promoterUser.getFeishuId(); if (!Objects.isNull(promoterUser) && StringUtils.isNotBlank(promoterUser.getFeishuId())) {
promoterUserId = promoterUser.getFeishuId();
}
} }
// 审核人的id(可能为多个),查出对应的飞书id // 审核人的id(可能为多个),查出对应的飞书id
String reviewedIds = instanceDto.getReviewedIds(); String reviewedIds = instanceDto.getReviewedIds();
@@ -337,7 +338,13 @@ public class FeiShuDockingServiceImpl implements IFeiShuDockingService {
promoterMobileLink = url.replace("{REDIRECT_URI}", promoterMobileLink); promoterMobileLink = url.replace("{REDIRECT_URI}", promoterMobileLink);
} }
// 审批定义的code // 审批定义的code
String approvalDefinition = createApprovalDefinition(); Integer processType = instanceDto.getProcessType();
// 拿到这个流程的名称
List<DictModel> prcTypeList = sysDictService.getDictItems("prc_type");
// 将列表转换为Map
Map<String, String> 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 approvalsInstanceVo = new ApprovalsInstanceVo();
approvalsInstanceVo.setApproval_code(approvalDefinition); approvalsInstanceVo.setApproval_code(approvalDefinition);