|
|
|
@ -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<>(); |
|
|
|
|