Browse Source

2026-10-27

项目信息打开“项目权限”的编辑操作
ECN主信息列表增加“IFS料号”和“变更要求描述”两列
master
fengyuan_yang 2 weeks ago
parent
commit
5d7e6b67ed
  1. 2
      src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java
  2. 44
      src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java
  3. 5
      src/main/java/com/spring/modules/change/vo/ChangeRequestVo.java
  4. 17
      src/main/resources/mapper/change/ChangeManagementMapper.xml

2
src/main/java/com/spring/modules/change/mapper/ChangeManagementMapper.java

@ -41,6 +41,8 @@ public interface ChangeManagementMapper extends BaseMapper<ChangeRequestEntity>{
List<ChangeRequestDetailVo> changeDetailSearch(ChangeRequestDetailVo data); List<ChangeRequestDetailVo> changeDetailSearch(ChangeRequestDetailVo data);
List<ChangeRequestDetailEntity> listChangeDetailPartNo(@Param("site") String site, @Param("changeNos") List<String> changeNos);
ChangeCostImpactVo costImpactSearch(ChangeRequestEntity data); ChangeCostImpactVo costImpactSearch(ChangeRequestEntity data);
void costImpactSave(ChangeCostImpactEntity data); void costImpactSave(ChangeCostImpactEntity data);

44
src/main/java/com/spring/modules/change/service/impl/ChangeManagementServiceImpl.java

@ -314,9 +314,52 @@ public class ChangeManagementServiceImpl extends ServiceImpl<ChangeManagementMap
@Override @Override
public PageUtils changeRecordSearch(ChangeRequestVo data) { public PageUtils changeRecordSearch(ChangeRequestVo data) {
IPage<ChangeRequestVo> resultList = this.changeManagementMapper.changeRecordSearch(new Page<ChangeRequestVo>(data.getPage(), data.getLimit()), data); IPage<ChangeRequestVo> resultList = this.changeManagementMapper.changeRecordSearch(new Page<ChangeRequestVo>(data.getPage(), data.getLimit()), data);
fillIfsPartNo(resultList.getRecords(), data.getSite());
return new PageUtils(resultList); 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("whereClause", whereClause);
params.put("orderClause", orderClause); params.put("orderClause", orderClause);
IPage<ChangeRequestVo> resultList = changeManagementMapper.changeRecordSearchAny(new Page<ChangeRequestVo>(data.getNo(), data.getSize()), params); IPage<ChangeRequestVo> resultList = changeManagementMapper.changeRecordSearchAny(new Page<ChangeRequestVo>(data.getNo(), data.getSize()), params);
fillIfsPartNo(resultList.getRecords(), data.getSite());
return new PageUtils(resultList); return new PageUtils(resultList);
} }

5
src/main/java/com/spring/modules/change/vo/ChangeRequestVo.java

@ -80,6 +80,11 @@ public class ChangeRequestVo extends ChangeRequestEntity {
*/ */
private String partNo; private String partNo;
/**
* 基本信息页签中的IFS物料编码,英文分号拼接
*/
private String ifsPartNo;
/** /**
* 为 true 时按当前节点取字段权限,不合并其它节点 * 为 true 时按当前节点取字段权限,不合并其它节点
*/ */

17
src/main/resources/mapper/change/ChangeManagementMapper.xml

@ -283,6 +283,23 @@
where a.site = #{site} and a.change_no = #{changeNo} where a.site = #{site} and a.change_no = #{changeNo}
</select> </select>
<!-- 与基本信息页签相同:IFS物料编码就是明细 part_no -->
<select id="listChangeDetailPartNo" resultType="com.spring.modules.change.entity.ChangeRequestDetailEntity">
SELECT
a.change_no,
a.part_no,
a.create_date
FROM plm_change_request_detail a
WHERE a.site = #{site}
AND a.change_no IN
<foreach collection="changeNos" item="changeNo" open="(" separator="," close=")">
#{changeNo}
</foreach>
AND a.part_no IS NOT NULL
AND LTRIM(RTRIM(a.part_no)) <![CDATA[<>]]> ''
ORDER BY a.change_no, a.create_date, a.part_no
</select>
<!-- 查询库存成本影响 --> <!-- 查询库存成本影响 -->
<select id="costImpactSearch" parameterType="ChangeRequestEntity" resultType="com.spring.modules.change.vo.ChangeCostImpactVo"> <select id="costImpactSearch" parameterType="ChangeRequestEntity" resultType="com.spring.modules.change.vo.ChangeCostImpactVo">
SELECT SELECT

Loading…
Cancel
Save