From 16bb8e691f02bb83da3fc62edda2e3f2cda72744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B8=B8=E7=86=9F=E5=90=B4=E5=BD=A6=E7=A5=96?= Date: Thu, 22 Oct 2026 15:09:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=B7=E5=AE=89=E8=87=AA=E5=8A=A8=E5=8F=91?= =?UTF-8?q?=E6=96=99=E6=8C=87=E5=AE=9A=E8=B4=A6=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/IfsApiIssueAndReturnServiceImpl.java | 43 ++++++++++++++++++- .../service/HaiAnAutoIssueService.java | 2 +- src/main/resources/application.yml | 1 + 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java b/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java index 2cdea482..bde02d82 100644 --- a/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java +++ b/src/main/java/com/gaotao/modules/api/service/impl/IfsApiIssueAndReturnServiceImpl.java @@ -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 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()); diff --git a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/HaiAnAutoIssueService.java b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/HaiAnAutoIssueService.java index 694c62a5..f1caf1c3 100644 --- a/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/HaiAnAutoIssueService.java +++ b/src/main/java/com/gaotao/modules/autoWareHourceHaian/service/HaiAnAutoIssueService.java @@ -7,7 +7,7 @@ import java.util.List; /** * @author rqrq - * @Description 海安自动发料服务:RFID命中后落任务并入移库队列,定时等待IFS完成后按工单分组调用同事 autoIssue,再解绑或去异常位 - rqrq + * @Description 海安 自动发料服务:RFID命中后落任务并入移库队列,定时等待IFS完成后按工单分组调用同事 autoIssue,再解绑或去异常位 - rqrq */ public interface HaiAnAutoIssueService { diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e244b160..8513020b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -108,6 +108,7 @@ custom: ifs-url: 'https://cclifswebservicehaiandev.ccldesign.com/api/v1/' ifs-ifsDBName: 'IFST' ifs-domainUserID: 'Mingo_zhang' + ifsIssueUser54: 'shuai_xu' # 海安自动发料无登录且site以54开头时,ShopOrderManualIssue的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