refactor(qms-pdi): 重构PDI检测项及部件管理相关功能

- 将检测项中的部件描述字段改为部件ID,关联部件表数据
- 新增部件管理功能,支持部件的增删改查及排序
- 在PDI检测项新增接口自动处理部件注册及排序
- 批量删除支持区分部件ID和检测项ID,实现联动删除
- 导入检测项时自动识别导入部件,动态创建部件及排序
- 查询检测项时按部件分组返回,提升数据结构清晰度
- 巡检工单及检测结果展示时通过部件ID获取部件名称显示
- 新增API支持根据部件ID查询检测项及现场记录
- QmsPdiReportVO 和 QmsIqcReportVO新增环比统计字段,完善报表数据
- 修改导出模板及分页查询逻辑,统一部件相关字段处理
- 优化图片ID收集及批量查询,提升接口性能和稳定性
This commit is contained in:
funny 2026-05-20 11:50:23 +08:00
parent 6822693429
commit acdd965b3c
6 changed files with 23 additions and 34 deletions

View File

@ -51,10 +51,9 @@ public class QmsPdiComponentControllerService {
public void add(QmsPdiComponentAddQO request) {
QmsPdiComponentAnagement entity = new QmsPdiComponentAnagement()
.setComponentName(request.getComponentName())
.setDeliveryRulesId(request.getDeliveryRulesId())
.setDetectionRulesId(request.getDetectionRulesId())
.setCreateBy(UserUtil.getUserName())
.setCreaeteTime(LocalDateTime.now());
.setCreateTime(LocalDateTime.now());
componentService.save(entity);
}
@ -74,9 +73,6 @@ public class QmsPdiComponentControllerService {
if (StrUtil.isNotBlank(request.getComponentName())) {
updateChain.set(QmsPdiComponentAnagement::getComponentName, request.getComponentName());
}
if (Objects.nonNull(request.getDeliveryRulesId())) {
updateChain.set(QmsPdiComponentAnagement::getDeliveryRulesId, request.getDeliveryRulesId());
}
updateChain.update();
}

View File

@ -258,10 +258,9 @@ public class QmsPdiDetectionRulesControllerService {
List<QmsPdiComponentAnagement> newComponents = components.stream()
.map(item -> new QmsPdiComponentAnagement()
.setDetectionRulesId(newId)
.setDeliveryRulesId(item.getDeliveryRulesId())
.setComponentName(item.getComponentName())
.setCreateBy(operator)
.setCreaeteTime(now))
.setCreateTime(now))
.collect(java.util.stream.Collectors.toList());
componentService.saveBatch(newComponents);
}

View File

@ -101,7 +101,7 @@ public class QmsPdiStatusItemControllerService {
component.setDetectionRulesId(request.getDetectionRulesId());
component.setSort(maxComponentSort + 1);
component.setCreateBy(operator);
component.setCreaeteTime(now);
component.setCreateTime(now);
componentAnagementService.save(component);
componentsId = component.getId();
@ -342,12 +342,14 @@ public class QmsPdiStatusItemControllerService {
} else {
// 新部件插入到部件表
currentComponentSort++;
// 部件名称如果以英文字母结束追加换行符
String componentName = appendNewlineIfEndsWithEnglish(dto.getComponentsDes());
QmsPdiComponentAnagement component = new QmsPdiComponentAnagement();
component.setComponentName(dto.getComponentsDes());
component.setComponentName(componentName);
component.setDetectionRulesId(detectionRulesId);
component.setSort(currentComponentSort);
component.setCreateBy(operator);
component.setCreaeteTime(now);
component.setCreateTime(now);
componentAnagementService.save(component);
componentsId = component.getId();
@ -359,13 +361,7 @@ public class QmsPdiStatusItemControllerService {
}
// 处理检查核实内容如果以英文字母结束追加换行符
String content = dto.getInspectionContent();
if (StrUtil.isNotBlank(content)) {
char lastChar = content.charAt(content.length() - 1);
if ((lastChar >= 'a' && lastChar <= 'z') || (lastChar >= 'A' && lastChar <= 'Z')) {
dto.setInspectionContent(content + "\n");
}
}
dto.setInspectionContent(appendNewlineIfEndsWithEnglish(dto.getInspectionContent()));
// 插入检测项
int itemSort = componentItemCountMap.getOrDefault(componentsId, 0) + 1;
@ -386,6 +382,20 @@ public class QmsPdiStatusItemControllerService {
markMaintained(detectionRulesId);
}
/**
* 如果文本以英文字母结尾则追加换行符
*/
private String appendNewlineIfEndsWithEnglish(String text) {
if (StrUtil.isBlank(text)) {
return text;
}
char lastChar = text.charAt(text.length() - 1);
if ((lastChar >= 'a' && lastChar <= 'z') || (lastChar >= 'A' && lastChar <= 'Z')) {
return text + "\n";
}
return text;
}
// ========================= 分页查询 =========================
/**

View File

@ -16,12 +16,6 @@ public class QmsPdiComponentAddQO {
@NotBlank(message = "部件名称不能为空")
private String componentName;
/**
* 动静态检测项ID必传
*/
@NotNull(message = "动静态检测项ID不能为空")
private Long deliveryRulesId;
/**
* PDI检测规则ID必传
*/

View File

@ -19,9 +19,4 @@ public class QmsPdiComponentUpdateQO {
* 部件名称可选
*/
private String componentName;
/**
* 动静态检测项ID可选
*/
private Long deliveryRulesId;
}

View File

@ -31,11 +31,6 @@ public class QmsPdiComponentAnagement implements Serializable {
*/
private String componentName;
/**
* 动静态检测项ID
*/
private Long deliveryRulesId;
/**
* PDI检测规则ID
*/
@ -54,5 +49,5 @@ public class QmsPdiComponentAnagement implements Serializable {
/**
* 创建时间
*/
private LocalDateTime creaeteTime;
private LocalDateTime createTime;
}