From 5d7e6b67ed2fbe1de9ce0e4179611938eacafdac Mon Sep 17 00:00:00 2001 From: fengyuan_yang <1976974459@qq.com> Date: Tue, 27 Oct 2026 13:29:40 +0800 Subject: [PATCH] =?UTF-8?q?2026-10-27=20=E9=A1=B9=E7=9B=AE=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=89=93=E5=BC=80=E2=80=9C=E9=A1=B9=E7=9B=AE=E6=9D=83?= =?UTF-8?q?=E9=99=90=E2=80=9D=E7=9A=84=E7=BC=96=E8=BE=91=E6=93=8D=E4=BD=9C?= =?UTF-8?q?=20ECN=E4=B8=BB=E4=BF=A1=E6=81=AF=E5=88=97=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E2=80=9CIFS=E6=96=99=E5=8F=B7=E2=80=9D=E5=92=8C?= =?UTF-8?q?=E2=80=9C=E5=8F=98=E6=9B=B4=E8=A6=81=E6=B1=82=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E2=80=9D=E4=B8=A4=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../change/mapper/ChangeManagementMapper.java | 2 + .../impl/ChangeManagementServiceImpl.java | 44 +++++++++++++++++++ .../modules/change/vo/ChangeRequestVo.java | 5 +++ .../mapper/change/ChangeManagementMapper.xml | 17 +++++++ 4 files changed, 68 insertions(+) diff --git a/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java b/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java index 7be2c0e5..0868fd76 100644 --- a/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java +++ b/src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java @@ -41,6 +41,8 @@ public interface ChangeManagementMapper extends BaseMapper{ List changeDetailSearch(ChangeRequestDetailVo data); + List listChangeDetailPartNo(@Param("site") String site, @Param("changeNos") List changeNos); + ChangeCostImpactVo costImpactSearch(ChangeRequestEntity data); void costImpactSave(ChangeCostImpactEntity data); diff --git a/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java b/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java index 9363a610..77cfc584 100644 --- a/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java +++ b/src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java @@ -314,9 +314,52 @@ public class ChangeManagementServiceImpl extends ServiceImpl resultList = this.changeManagementMapper.changeRecordSearch(new Page(data.getPage(), data.getLimit()), data); + fillIfsPartNo(resultList.getRecords(), data.getSite()); return new PageUtils(resultList); } + /** + * 主列表 IFS料号:与基本信息页签 changeDetailSearch 的 a.part_no 一致,按变更单英文分号拼接。 + * 不放进列表 SQL,避免子查询里的 ORDER BY 被 SQL Server 分页当成整句的第一个 ORDER BY。 + */ + private void fillIfsPartNo(List records, String site) { + if (records == null || records.isEmpty()) { + return; + } + String querySite = StringUtils.isNotBlank(site) ? site : records.get(0).getSite(); + if (StringUtils.isBlank(querySite)) { + return; + } + List changeNos = records.stream() + .map(ChangeRequestVo::getChangeNo) + .filter(StringUtils::isNotBlank) + .distinct() + .collect(Collectors.toList()); + if (changeNos.isEmpty()) { + return; + } + Map ifsMap = new HashMap<>(); + int batchSize = 500; + for (int i = 0; i < changeNos.size(); i += batchSize) { + List batch = changeNos.subList(i, Math.min(i + batchSize, changeNos.size())); + List details = changeManagementMapper.listChangeDetailPartNo(querySite, batch); + if (details == null) { + continue; + } + for (ChangeRequestDetailEntity detail : details) { + String partNo = StringUtils.trimToEmpty(detail.getPartNo()); + if (partNo.isEmpty() || StringUtils.isBlank(detail.getChangeNo())) { + continue; + } + ifsMap.computeIfAbsent(detail.getChangeNo(), key -> new StringBuilder()).append(';').append(partNo); + } + } + for (ChangeRequestVo record : records) { + StringBuilder builder = ifsMap.get(record.getChangeNo()); + record.setIfsPartNo(builder == null ? "" : builder.substring(1)); + } + } + /** * 变更单详情的列表 */ @@ -2441,6 +2484,7 @@ public class ChangeManagementServiceImpl extends ServiceImpl resultList = changeManagementMapper.changeRecordSearchAny(new Page(data.getNo(), data.getSize()), params); + fillIfsPartNo(resultList.getRecords(), data.getSite()); return new PageUtils(resultList); } diff --git a/src/main/java/com/spring/modules/change/vo/ChangeRequestVo.java b/src/main/java/com/spring/modules/change/vo/ChangeRequestVo.java index a1257d1f..137e1bbe 100644 --- a/src/main/java/com/spring/modules/change/vo/ChangeRequestVo.java +++ b/src/main/java/com/spring/modules/change/vo/ChangeRequestVo.java @@ -80,6 +80,11 @@ public class ChangeRequestVo extends ChangeRequestEntity { */ private String partNo; + /** + * 基本信息页签中的IFS物料编码,英文分号拼接 + */ + private String ifsPartNo; + /** * 为 true 时按当前节点取字段权限,不合并其它节点 */ diff --git a/src/main/resources/mapper/change/ChangeManagementMapper.xml b/src/main/resources/mapper/change/ChangeManagementMapper.xml index 4dd60a57..4c5ba074 100644 --- a/src/main/resources/mapper/change/ChangeManagementMapper.xml +++ b/src/main/resources/mapper/change/ChangeManagementMapper.xml @@ -283,6 +283,23 @@ where a.site = #{site} and a.change_no = #{changeNo} + + +