|
|
|
@ -52,6 +52,12 @@ public class IfsApiIssueAndReturnServiceImpl implements IfsApiIssueAndReturnServ |
|
|
|
@Value("${custom.ifs-domainUserID}") |
|
|
|
private String domainUserID; |
|
|
|
|
|
|
|
/** |
|
|
|
* 海安自动发料无登录用户时的IFS工单发料账号,仅ShopOrderManualIssue在site以54开头时使用 - rqrq |
|
|
|
*/ |
|
|
|
@Value("${custom.ifsIssueUser54:shuai_xu}") |
|
|
|
private String ifsIssueUser; |
|
|
|
|
|
|
|
@Value("${ldap-control.control-flag:false}") |
|
|
|
private Boolean ldapFlag; |
|
|
|
|
|
|
|
@ -80,6 +86,40 @@ public class IfsApiIssueAndReturnServiceImpl implements IfsApiIssueAndReturnServ |
|
|
|
return domainUserID; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* @author rqrq |
|
|
|
* @Description 解析ShopOrderManualIssue的IFS账号:有登录先用当前用户;自动任务无登录且site以54开头时强制用配置ifsIssueUser;其它无登录仍回退原ifs-domainUserID。不改其它IFS接口取号。- rqrq |
|
|
|
* @param site 工单发料工厂,来自IssueShopOrderDto.ifsSiteID,用于判断是否海安54 - rqrq |
|
|
|
* @return 写入IFS domainUserID的账号;海安自动任务缺少ifsIssueUser时抛错,避免误用默认账号发料 - rqrq |
|
|
|
*/ |
|
|
|
private String resolveShopOrderManualIssueUser(String site) { |
|
|
|
SysUserEntity currentUser = null; |
|
|
|
try { |
|
|
|
// 先读登录主体:PDA/页面发料必须用当前登录账号,不能被自动任务兜底账号覆盖 - rqrq |
|
|
|
Object principal = SecurityUtils.getSubject().getPrincipal(); |
|
|
|
if (principal instanceof SysUserEntity) { |
|
|
|
currentUser = (SysUserEntity) principal; |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
log.warn("ShopOrderManualIssue读取登录用户失败,按自动任务取号,site={} - rqrq", site, e); |
|
|
|
} |
|
|
|
if (currentUser != null) { |
|
|
|
if (Boolean.TRUE.equals(ldapFlag) && StringUtils.isNotBlank(currentUser.getDomainAccount())) { |
|
|
|
return currentUser.getDomainAccount().trim(); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(currentUser.getUsername())) { |
|
|
|
return currentUser.getUsername().trim(); |
|
|
|
} |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(site) && site.trim().startsWith("54")) { |
|
|
|
if (StringUtils.isBlank(ifsIssueUser)) { |
|
|
|
throw new XJException("海安自动发料缺少配置custom.ifsIssueUser,无法调用ShopOrderManualIssue"); |
|
|
|
} |
|
|
|
return ifsIssueUser.trim(); |
|
|
|
} |
|
|
|
return domainUserID; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 获取当前用户信息 |
|
|
|
*/ |
|
|
|
@ -277,7 +317,8 @@ public class IfsApiIssueAndReturnServiceImpl implements IfsApiIssueAndReturnServ |
|
|
|
try{ |
|
|
|
Map<String, Object> params = new HashMap<>(); |
|
|
|
params.put("ifsDBName",ifsDBName); |
|
|
|
params.put("domainUserID",getCurrentDomainUserID()); |
|
|
|
// 工单发料账号:有登录用当前用户,海安自动任务无登录且site以54开头用配置ifsIssueUser - rqrq |
|
|
|
params.put("domainUserID", resolveShopOrderManualIssueUser(issueShopOrderDto.getIfsSiteID())); |
|
|
|
params.put("ifsOrderNo",issueShopOrderDto.getIfsOrderNo()); |
|
|
|
params.put("ifsReleaseNo",issueShopOrderDto.getIfsReleaseNo()); |
|
|
|
params.put("ifsSequenceNo",issueShopOrderDto.getIfsSequenceNo()); |
|
|
|
|