|
@@ -2,13 +2,13 @@ package com.dragonsoft.dcuc.approve.business.external.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
+import com.dragonsoft.dcuc.approve.business.approver.IGetApproverBusiness;
|
|
|
import com.dragonsoft.dcuc.approve.business.external.IDcucBusiness;
|
|
|
import com.dragonsoft.dcuc.approve.business.external.IWorkFlowCallbackBusiness;
|
|
|
-import com.dragonsoft.dcuc.approve.model.vo.dcuc.ApiOrgResultVo;
|
|
|
-import com.dragonsoft.dcuc.approve.model.vo.dcuc.OauthUserVO;
|
|
|
-import com.dragonsoft.dcuc.approve.model.vo.dcuc.UserLabel2RespVO;
|
|
|
+import com.dragonsoft.dcuc.approve.enumresources.ApproveGetApproverEnum;
|
|
|
import com.dragonsoft.dcuc.approve.properties.ApproveWorkFlowCallbackProperties;
|
|
|
import com.dragonsoft.duceap.commons.util.json.JsonUtils;
|
|
|
+import com.dragonsoft.duceap.core.spring.SpringUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
@@ -16,8 +16,6 @@ import org.springframework.stereotype.Component;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
-import java.util.Optional;
|
|
|
-import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* <p>
|
|
@@ -55,42 +53,20 @@ public class DcucWorkFlowCallbackBusinessImpl implements IWorkFlowCallbackBusine
|
|
|
Map<String, Object> dataMap = (Map<String, Object>) param.get("data");
|
|
|
// 需要提交才有
|
|
|
String handleUser = MapUtil.getStr(dataMap, "handleUser");
|
|
|
- // 获取申请人对应的机构代码
|
|
|
- OauthUserVO handleUserInfo = dcucBusiness.getOauthUserInfoByIdcard(handleUser);
|
|
|
- String currentOrgCode = handleUserInfo.getOrgCode();
|
|
|
|
|
|
String labelCode = approveWorkFlowCallbackProperties.getLabelCode();
|
|
|
- // 获取机构代码上有这个标签的人
|
|
|
- List<String> approverList = getOrgLabelUser(currentOrgCode, labelCode);
|
|
|
+ List<ApproveGetApproverEnum> approveGetApproverEnumList = approveWorkFlowCallbackProperties.getApproveGetApproverEnumList();
|
|
|
+ List<String> approverList = Collections.emptyList();
|
|
|
|
|
|
- if (CollUtil.isEmpty(approverList)) {
|
|
|
- // 看有没有再获取上级机构的
|
|
|
- // todo 确认需求是获取上一级还是只是获取上级
|
|
|
- ApiOrgResultVo apiOrgResultVo = dcucBusiness.orgInfo(currentOrgCode);
|
|
|
- String upOrgCode = apiOrgResultVo.getUpOrgCode();
|
|
|
- approverList = getOrgLabelUser(upOrgCode, labelCode);
|
|
|
+ for (ApproveGetApproverEnum approveGetApproverEnum : approveGetApproverEnumList) {
|
|
|
+ String value = approveGetApproverEnum.getValue();
|
|
|
+ IGetApproverBusiness getApproverBusiness = SpringUtils.getBean(value + "GetApproverBusiness");
|
|
|
+ approverList = getApproverBusiness.getApproverList(handleUser, labelCode);
|
|
|
+ if (CollUtil.isNotEmpty(approverList)) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- // 没有的话获取兜底的科信审批人员
|
|
|
- if (CollUtil.isEmpty(approverList)) {
|
|
|
- approverList = approveWorkFlowCallbackProperties.getFinalApproveList();
|
|
|
- }
|
|
|
return approverList;
|
|
|
}
|
|
|
-
|
|
|
- /**
|
|
|
- * 根据机构代码、标签代码获取审批人员
|
|
|
- *
|
|
|
- * @param orgCode 机构代码
|
|
|
- * @param labelCode 标签代码
|
|
|
- * @return 审批人
|
|
|
- */
|
|
|
- protected List<String> getOrgLabelUser(String orgCode, String labelCode) {
|
|
|
- List<UserLabel2RespVO> userByLabelCodeList = dcucBusiness.getUserByLabelCode(orgCode, labelCode);
|
|
|
- return Optional.ofNullable(userByLabelCodeList)
|
|
|
- .orElse(Collections.emptyList())
|
|
|
- .stream().map(UserLabel2RespVO::getIdcard)
|
|
|
- .collect(Collectors.toList());
|
|
|
- }
|
|
|
-
|
|
|
}
|