Browse Source

自动发料账户

master
常熟吴彦祖 2 weeks ago
parent
commit
fa7392d3d9
  1. 55
      src/main/java/com/gaotao/modules/other/service/impl/InventoryMoveServiceImpl.java
  2. 2
      src/main/resources/application.yml

55
src/main/java/com/gaotao/modules/other/service/impl/InventoryMoveServiceImpl.java

@ -95,6 +95,18 @@ public class InventoryMoveServiceImpl implements InventoryMoveService {
@Value("${custom.ifs-domainUserID}")
private String domainUserID;
/**
* 老工厂自动移库无登录时的IFS账号,仅栈板移库队列MoveInventoryPartV2使用;有登录时仍用当前用户 - rqrq
*/
@Value("${custom.ifsMoveUser:CCL_AGV_USER}")
private String ifsMoveUser;
/**
* 海安自动移库无登录且site以54开头时的IFS账号,仅栈板移库队列MoveInventoryPartV2使用;有登录时仍用当前用户 - rqrq
*/
@Value("${custom.ifsMoveUser54:CCL_AGV_USER_HA}")
private String ifsMoveUser54;
@Value("${ldap-control.control-flag:false}")
private Boolean ldapFlag;
@ -115,6 +127,38 @@ public class InventoryMoveServiceImpl implements InventoryMoveService {
return domainUserID;
}
/**
* @author rqrq
* @Description 解析栈板移库IFS账号:有登录先用当前用户名;自动任务无登录且site以54开头用配置ifsMoveUser54;其它无登录用配置ifsMoveUser。不改其它移库接口取号。- rqrq
* @param group 移库分组,site来自队列分组工厂,用于判断是否海安54 - rqrq
* @return 写入IFS domainUserID的账号;对应配置缺失时抛错,避免误用默认账号移库 - rqrq
*/
private String resolvePalletMoveDomainUser(MoveGroup group) {
try {
// 先读登录主体:PDA/页面手工移库必须用当前登录用户名,不能被自动任务专用账号覆盖 - rqrq
SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal();
if (currentUser != null && StringUtils.isNotBlank(currentUser.getUsername())) {
return currentUser.getUsername().trim();
}
} catch (Exception e) {
log.warn("栈板移库读取登录用户失败,按自动任务取号,site={} - rqrq",
group != null ? group.site : null, e);
}
String site = group != null ? group.site : null;
// 无登录且site以54开头:海安自动移库走独立IFS账号,避免误用老工厂CCL_AGV_USER - rqrq
if (StringUtils.isNotBlank(site) && site.trim().startsWith("54")) {
if (StringUtils.isBlank(ifsMoveUser54)) {
throw new XJException("海安自动移库缺少配置custom.ifsMoveUser54,无法调用MoveInventoryPartV2");
}
return ifsMoveUser54.trim();
}
// 无登录的老工厂/其它site:走原自动移库账号 - rqrq
if (StringUtils.isBlank(ifsMoveUser)) {
throw new XJException("自动移库缺少配置custom.ifsMoveUser,无法调用MoveInventoryPartV2");
}
return ifsMoveUser.trim();
}
//-----别改--------
@Override
@Transactional
@ -978,15 +1022,8 @@ public class InventoryMoveServiceImpl implements InventoryMoveService {
String ifsResponse = null;
String username="CCL_AGV_USER";
try {
// PDA手工移库保留当前登录用户名作为IFS操作账号;取不到登录用户时按移库分组site兜底 - rqrq
username = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername();
} catch (Exception e) {
// 自动任务无登录用户:54及其子site使用海安账号,55及其他site保留原账号;不改变本地单据操作人 - rqrq
username = group != null && group.site != null && group.site.trim().startsWith("54")
? "CCL_AGV_USER_HA" : "CCL_AGV_USER";
}
// 栈板移库IFS账号:有登录用当前用户,无登录按site从配置读取ifsMoveUser/ifsMoveUser54 - rqrq
String username = resolvePalletMoveDomainUser(group);
try {
Map<String, Object> params = new HashMap<>();

2
src/main/resources/application.yml

@ -109,6 +109,8 @@ custom:
ifs-ifsDBName: 'IFST'
ifs-domainUserID: 'Mingo_zhang'
ifsIssueUser54: 'shuai_xu' # 海安自动发料无登录且site以54开头时,ShopOrderManualIssue的IFS账号 - rqrq
ifsMoveUser: 'CCL_AGV_USER' # 老工厂自动移库无登录时,MoveInventoryPartV2的IFS账号 - rqrq
ifsMoveUser54: 'CCL_AGV_USER_HA' # 海安自动移库无登录且site以54开头时,MoveInventoryPartV2的IFS账号 - rqrq
wcs-url: 'http://172.28.1.18:7002/api/wms/'
haianWcsUrl: 'http://172.28.1.18:7002/api/wms/' # 海安专用WCS地址,默认与wcs-url一致,可独立维护 - rqrq
haianWcsApi: 'http://172.28.1.18:7002/api/' # 海安专用WCS通用API地址,默认与wcs-api一致 - rqrq

Loading…
Cancel
Save