|
|
|
@ -314,9 +314,52 @@ public class ChangeManagementServiceImpl extends ServiceImpl<ChangeManagementMap |
|
|
|
@Override |
|
|
|
public PageUtils changeRecordSearch(ChangeRequestVo data) { |
|
|
|
IPage<ChangeRequestVo> resultList = this.changeManagementMapper.changeRecordSearch(new Page<ChangeRequestVo>(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<ChangeRequestVo> 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<String> changeNos = records.stream() |
|
|
|
.map(ChangeRequestVo::getChangeNo) |
|
|
|
.filter(StringUtils::isNotBlank) |
|
|
|
.distinct() |
|
|
|
.collect(Collectors.toList()); |
|
|
|
if (changeNos.isEmpty()) { |
|
|
|
return; |
|
|
|
} |
|
|
|
Map<String, StringBuilder> ifsMap = new HashMap<>(); |
|
|
|
int batchSize = 500; |
|
|
|
for (int i = 0; i < changeNos.size(); i += batchSize) { |
|
|
|
List<String> batch = changeNos.subList(i, Math.min(i + batchSize, changeNos.size())); |
|
|
|
List<ChangeRequestDetailEntity> 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<ChangeManagementMap |
|
|
|
params.put("whereClause", whereClause); |
|
|
|
params.put("orderClause", orderClause); |
|
|
|
IPage<ChangeRequestVo> resultList = changeManagementMapper.changeRecordSearchAny(new Page<ChangeRequestVo>(data.getNo(), data.getSize()), params); |
|
|
|
fillIfsPartNo(resultList.getRecords(), data.getSite()); |
|
|
|
return new PageUtils(resultList); |
|
|
|
} |
|
|
|
|
|
|
|
|