pdi导入逻辑修改

This commit is contained in:
yf001217 2026-06-13 17:59:20 +08:00
parent 7892b6e8b6
commit 5eff7ea7b9
1 changed files with 33 additions and 20 deletions

View File

@ -90,25 +90,13 @@ public class QmsPdiStatusItemControllerService {
// 部件已存在直接使用
componentsId = existingComponent.getId();
} else {
// 新部件插入到部件表sort按检测规则ID + 状态独立计算
Integer maxComponentSort = componentAnagementService.lambdaQuery()
.eq(QmsPdiComponentAnagement::getDetectionRulesId, request.getDetectionRulesId())
.eq(QmsPdiComponentAnagement::getStatus, request.getStatus())
.orderByDesc(QmsPdiComponentAnagement::getSort)
.last("LIMIT 1")
.oneOpt()
.map(QmsPdiComponentAnagement::getSort)
.orElse(0);
QmsPdiComponentAnagement component = new QmsPdiComponentAnagement();
component.setComponentName(request.getComponentsDes());
component.setDetectionRulesId(request.getDetectionRulesId());
component.setStatus(request.getStatus() != null ? request.getStatus().shortValue() : null);
component.setSort(maxComponentSort + 1);
component.setCreateBy(operator);
component.setCreateTime(now);
componentAnagementService.save(component);
QmsPdiComponentAnagement component = createComponent(
request.getDetectionRulesId(),
request.getStatus(),
request.getComponentsDes(),
operator,
now
);
componentsId = component.getId();
}
}
@ -382,7 +370,7 @@ public class QmsPdiStatusItemControllerService {
.eq(QmsPdiComponentAnagement::getComponentName, dto.getComponentsDes())
.one();
if (component == null) {
throw new NflgException(STATE.BusinessError, "部件名称不存在,无法导入:" + dto.getComponentsDes());
component = createComponent(detectionRulesId, status, dto.getComponentsDes(), operator, now);
}
componentsId = component.getId();
componentNameToIdMap.put(dto.getComponentsDes(), componentsId);
@ -619,6 +607,31 @@ public class QmsPdiStatusItemControllerService {
.orElse(0);
}
private QmsPdiComponentAnagement createComponent(Long detectionRulesId,
Integer status,
String componentName,
String operator,
LocalDateTime now) {
Integer maxComponentSort = componentAnagementService.lambdaQuery()
.eq(QmsPdiComponentAnagement::getDetectionRulesId, detectionRulesId)
.eq(QmsPdiComponentAnagement::getStatus, status)
.orderByDesc(QmsPdiComponentAnagement::getSort)
.last("LIMIT 1")
.oneOpt()
.map(QmsPdiComponentAnagement::getSort)
.orElse(0);
QmsPdiComponentAnagement component = new QmsPdiComponentAnagement();
component.setComponentName(componentName);
component.setDetectionRulesId(detectionRulesId);
component.setStatus(status != null ? status.shortValue() : null);
component.setSort(maxComponentSort + 1);
component.setCreateBy(operator);
component.setCreateTime(now);
componentAnagementService.save(component);
return component;
}
/**
* 若主表维护状态为未维护则更新为已维护
*/