Browse Source

优化未找到oa用户的提示

master
fengyuan_yang 2 weeks ago
parent
commit
9a3cff0ffd
  1. 42
      cclqms-java/src/main/java/com/gaotao/common/utils/OaAccountMessage.java
  2. 12
      cclqms-java/src/main/java/com/gaotao/modules/workflow/service/impl/OaWorkflowServiceImpl.java
  3. 3
      cclqms-java/src/main/java/com/gaotao/modules/workflow/service/impl/WorkflowManageServiceImpl.java

42
cclqms-java/src/main/java/com/gaotao/common/utils/OaAccountMessage.java

@ -0,0 +1,42 @@
package com.gaotao.common.utils;
/**
* OA 人员映射失败时的提示文案
*/
public final class OaAccountMessage {
private OaAccountMessage() {
}
public static String oaUserNotFound(String person, String account) {
return oaUserNotFound(person, null, account);
}
public static String oaUserNotFound(String personName, String personCode, String account) {
return "未获取到人员[" + formatPerson(personName, personCode) + "]的域控账号[" + formatAccount(account) + "]对应的OA人员!";
}
private static String formatPerson(String personName, String personCode) {
String name = trimToEmpty(personName);
String code = trimToEmpty(personCode);
if (!name.isEmpty() && !code.isEmpty() && !name.equals(code)) {
return name + "(" + code + ")";
}
if (!name.isEmpty()) {
return name;
}
if (!code.isEmpty()) {
return code;
}
return "未知人员";
}
private static String formatAccount(String account) {
String value = trimToEmpty(account);
return value.isEmpty() ? "空" : value;
}
private static String trimToEmpty(String value) {
return value == null ? "" : value.trim();
}
}

12
cclqms-java/src/main/java/com/gaotao/modules/workflow/service/impl/OaWorkflowServiceImpl.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.gaotao.common.exception.XJException;
import com.gaotao.common.utils.DateUtils;
import com.gaotao.common.utils.OaAccountMessage;
import com.gaotao.datasource.config.AESUtil;
import com.gaotao.modules.pda.utils.HttpClientUtil;
import com.gaotao.modules.pda.utils.ResponseData;
@ -119,7 +120,7 @@ public class OaWorkflowServiceImpl implements OaWorkflowService {
paramData.setStatus(defaultInApprovalStatus(request.getInApprovalStatus()));
paramData.setRequestName(buildRequestName(workflowName, userName, documentNo));
paramData.setMainData(buildMainData(details, request.getMainData()));
paramData.setUserId(fetchOaUserId(account));
paramData.setUserId(fetchOaUserId(userName, account));
if (!Boolean.TRUE.equals(oaControlFlag)) {
log.info("OA流程开关关闭,跳过外部OA调用,documentNo={}", documentNo);
@ -173,7 +174,7 @@ public class OaWorkflowServiceImpl implements OaWorkflowService {
paramData.setNodeConclusion(request.getNodeConclusion());
paramData.setRejectOpinion(request.getRejectOpinion());
paramData.setRequestName(buildRequestName(workflowName, userName, documentNo));
paramData.setUserId(fetchOaUserId(account));
paramData.setUserId(fetchOaUserId(userName, account));
if (!Boolean.TRUE.equals(oaControlFlag)) {
log.info("OA流程开关关闭,跳过外部OA调用,documentNo={}, conclusion={}", documentNo, request.getNodeConclusion());
@ -643,10 +644,13 @@ public class OaWorkflowServiceImpl implements OaWorkflowService {
return user.getDomainControlAccount();
}
private String fetchOaUserId(String account) {
private String fetchOaUserId(String userName, String account) {
List<OaUserData> list = sysUserDao.selectOaIdByAccount(account);
if (CollectionUtils.isEmpty(list) || StringUtils.isBlank(list.get(0).getId())) {
throw new XJException("未找到OA用户映射,域控账号:" + account);
SysUserEntity user = StringUtils.isBlank(userName) ? null : sysUserDao.queryByUserName(userName);
String display = user == null ? "" : user.getUserDisplay();
String code = user == null || StringUtils.isBlank(user.getUsername()) ? userName : user.getUsername();
throw new XJException(OaAccountMessage.oaUserNotFound(display, code, account));
}
return list.get(0).getId();
}

3
cclqms-java/src/main/java/com/gaotao/modules/workflow/service/impl/WorkflowManageServiceImpl.java

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.gaotao.common.exception.XJException;
import com.gaotao.common.utils.OaAccountMessage;
import com.gaotao.common.utils.PageUtils;
import com.gaotao.modules.pda.utils.HttpClientUtil;
import com.gaotao.modules.pda.utils.ResponseData;
@ -347,7 +348,7 @@ public class WorkflowManageServiceImpl implements WorkflowManageService {
}
List<OaUserData> oaUsers = sysUserDao.selectOaIdByAccount(account);
if (CollectionUtils.isEmpty(oaUsers) || StringUtils.isBlank(oaUsers.get(0).getId())) {
throw new XJException("未获取到域控账号对应OA人员,域控账号: " + account);
throw new XJException(OaAccountMessage.oaUserNotFound(sysUser.getUserDisplay(), sysUser.getUsername(), account));
}
oaUserId = StringUtils.trimToEmpty(oaUsers.get(0).getId());
}

Loading…
Cancel
Save