From 1deb51bd20314e29f6842203d0b507a83629ba78 Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Tue, 4 Aug 2026 11:05:22 +0800 Subject: [PATCH] =?UTF-8?q?FG=E6=96=99=E5=8F=B7=E4=BB=A5shoporder=E4=B8=AD?= =?UTF-8?q?=E2=80=9C=E5=B7=B2=E4=B8=8B=E8=BE=BE+=E6=A0=B7=E5=93=81?= =?UTF-8?q?=E5=B7=A5=E5=8D=95+=E5=8C=B9=E9=85=8D=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E5=8F=B7=E2=80=9D=E7=9A=84partno=E4=B8=BA=E5=87=86=EF=BC=8C?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6=E7=BB=9F=E4=B8=80=E8=90=BD?= =?UTF-8?q?"*"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/erf/mapper/ErfExpIssueMapper.java | 8 ++++++ .../service/impl/ErfExpIssueServiceImpl.java | 26 ++++++++++++------- .../mapper/erf/ErfExpIssueMapper.xml | 11 ++++++++ 3 files changed, 36 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/xujie/sys/modules/erf/mapper/ErfExpIssueMapper.java b/src/main/java/com/xujie/sys/modules/erf/mapper/ErfExpIssueMapper.java index 845fd511..a72047b7 100644 --- a/src/main/java/com/xujie/sys/modules/erf/mapper/ErfExpIssueMapper.java +++ b/src/main/java/com/xujie/sys/modules/erf/mapper/ErfExpIssueMapper.java @@ -31,4 +31,12 @@ public interface ErfExpIssueMapper { */ List getIssueMaterialByRawMaterialIds(@Param("rawMaterialIdList") List rawMaterialIdList); + /** + * 根据工单号查询shoporder中的成品料号(仅已下达且样品工单) + */ + String getShopOrderPartNo(@Param("site") String site, + @Param("orderNo") String orderNo, + @Param("status") String status, + @Param("orderType") String orderType); + } diff --git a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpIssueServiceImpl.java b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpIssueServiceImpl.java index 7514981b..cd687c50 100644 --- a/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpIssueServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/erf/service/impl/ErfExpIssueServiceImpl.java @@ -52,6 +52,9 @@ public class ErfExpIssueServiceImpl implements ErfExpIssueService { private static final String ERF_COMPONENT_PREFIX = "ERF-RM-"; private static final String ERF_NOTIFY_ORDER_TYPE = "样品工单"; private static final String ERF_NOTIFY_DEFAULT_REMARK = "样品工单"; + private static final String ERF_SO_ORDER_NO_SUFFIX = "#1"; + private static final String SHOP_ORDER_RELEASED_STATUS = "下达"; + private static final String DEFAULT_FG_PART_NO = "*"; @Autowired private ErfExpIssueMapper erfExpIssueMapper; @@ -279,11 +282,14 @@ public class ErfExpIssueServiceImpl implements ErfExpIssueService { orderData.setOutWorkOrderFlag("N"); // ERF来源数据映射到SOIssueNotify结构 - orderData.setSeqNo(StringUtils.hasText(materialItem.getApplyNo()) ? materialItem.getApplyNo().trim() : ""); - orderData.setsOOrderNo(StringUtils.hasText(materialItem.getApplyNo()) ? materialItem.getApplyNo().trim() : ""); + String applyNo = StringUtils.hasText(materialItem.getApplyNo()) ? materialItem.getApplyNo().trim() : ""; + orderData.setSeqNo(applyNo); + // SOIssueNotifyOrderList约定SOOrderNo需追加后缀,用于区分同源工单序号 + String soOrderNo = StringUtils.hasText(applyNo) ? applyNo + ERF_SO_ORDER_NO_SUFFIX : ""; + orderData.setsOOrderNo(soOrderNo); orderData.setOpsItemNo(0D); orderData.setOpsDesc(StringUtils.hasText(materialItem.getProcessStep()) ? materialItem.getProcessStep().trim() : ""); - orderData.setfGPartNo(resolveFgPartNo(materialItem)); + orderData.setfGPartNo(resolveFgPartNo(site, soOrderNo)); orderData.setNeedDate(resolveNeedDate(materialItem)); return orderData; } @@ -322,14 +328,16 @@ public class ErfExpIssueServiceImpl implements ErfExpIssueService { return ERF_COMPONENT_PREFIX + (item != null ? item.getRawMaterialId() : ""); } - private String resolveFgPartNo(ErfExpIssueMaterialData materialItem) { - if (materialItem != null && StringUtils.hasText(materialItem.getPartNo())) { - return materialItem.getPartNo().trim(); + private String resolveFgPartNo(String site, String soOrderNo) { + if (!StringUtils.hasText(site) || !StringUtils.hasText(soOrderNo)) { + return DEFAULT_FG_PART_NO; } - if (materialItem != null && StringUtils.hasText(materialItem.getApplyNo())) { - return materialItem.getApplyNo().trim(); + // 业务要求:FG料号以shoporder中“已下达+样品工单+匹配工单号”的partno为准,不存在时统一落"*" + String shopOrderPartNo = erfExpIssueMapper.getShopOrderPartNo(site, soOrderNo, SHOP_ORDER_RELEASED_STATUS, ERF_NOTIFY_ORDER_TYPE); + if (shopOrderPartNo != null) { + return shopOrderPartNo.trim(); } - return ""; + return DEFAULT_FG_PART_NO; } diff --git a/src/main/resources/mapper/erf/ErfExpIssueMapper.xml b/src/main/resources/mapper/erf/ErfExpIssueMapper.xml index e5c6f279..e1302449 100644 --- a/src/main/resources/mapper/erf/ErfExpIssueMapper.xml +++ b/src/main/resources/mapper/erf/ErfExpIssueMapper.xml @@ -162,4 +162,15 @@ + + +