pdi查询检测项方法修改
This commit is contained in:
parent
869d49941e
commit
cc98aef022
|
|
@ -819,7 +819,6 @@ public class QmsPqcInspectionRuleControllerServiceImpl implements QmsPqcInspecti
|
|||
.one();
|
||||
|
||||
Long targetRuleId;
|
||||
boolean isNewRule = false;
|
||||
|
||||
if (Objects.isNull(highestRule)) {
|
||||
// 该机型无规则,新建
|
||||
|
|
@ -834,14 +833,12 @@ public class QmsPqcInspectionRuleControllerServiceImpl implements QmsPqcInspecti
|
|||
newRule.setCreateTime(now);
|
||||
ruleService.save(newRule);
|
||||
targetRuleId = newRule.getId();
|
||||
isNewRule = true;
|
||||
} else if (highestRule.getAuditStatus() != null && highestRule.getAuditStatus() == 1) {
|
||||
// 最高版本已审核,fork新版本
|
||||
if (checkDraftExists(modelNo, null)) {
|
||||
throw new NflgException(STATE.BusinessError, "机型" + modelNo + "已存在未审核的版本,请先完成审核后再导入");
|
||||
}
|
||||
targetRuleId = forkNewVersion(highestRule);
|
||||
isNewRule = true;
|
||||
} else {
|
||||
// 最高版本未审核,直接在其上修改
|
||||
targetRuleId = highestRule.getId();
|
||||
|
|
@ -875,9 +872,8 @@ public class QmsPqcInspectionRuleControllerServiceImpl implements QmsPqcInspecti
|
|||
appendImportPointsAndItems(targetRuleId, pointGroups, stepDicItems, operator, operatorId, now);
|
||||
}
|
||||
|
||||
if (isNewRule) {
|
||||
ensurePlaceholderPointsForMissingSteps(targetRuleId, stepDicItems, operator, operatorId, now);
|
||||
}
|
||||
removeRedundantPlaceholderPoints(targetRuleId);
|
||||
ensurePlaceholderPointsForMissingSteps(targetRuleId, stepDicItems, operator, operatorId, now);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1235,6 +1231,56 @@ public class QmsPqcInspectionRuleControllerServiceImpl implements QmsPqcInspecti
|
|||
return maxVersion + 1;
|
||||
}
|
||||
|
||||
private void removeRedundantPlaceholderPoints(Long ruleId) {
|
||||
List<QmsPqcInspectionPoint> points = pointService.lambdaQuery()
|
||||
.eq(QmsPqcInspectionPoint::getPqcRuleId, ruleId)
|
||||
.list();
|
||||
if (CollectionUtil.isEmpty(points)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<Long> realStepIds = points.stream()
|
||||
.filter(point -> point.getStepDicItemId() != null)
|
||||
.filter(point -> StrUtil.isNotBlank(point.getInspectionPointCode())
|
||||
|| StrUtil.isNotBlank(point.getInspectionPointName()))
|
||||
.map(QmsPqcInspectionPoint::getStepDicItemId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isEmpty(realStepIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<Long> placeholderPointIds = points.stream()
|
||||
.filter(point -> point.getStepDicItemId() != null)
|
||||
.filter(point -> realStepIds.contains(point.getStepDicItemId()))
|
||||
.filter(point -> StrUtil.isBlank(point.getInspectionPointCode()))
|
||||
.filter(point -> StrUtil.isBlank(point.getInspectionPointName()))
|
||||
.map(QmsPqcInspectionPoint::getId)
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isEmpty(placeholderPointIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
List<Long> pointIdsWithItems = itemsService.lambdaQuery()
|
||||
.in(QmsPqcInspectionPointItems::getInspectionCodeId, placeholderPointIds)
|
||||
.list()
|
||||
.stream()
|
||||
.map(QmsPqcInspectionPointItems::getInspectionCodeId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
placeholderPointIds = placeholderPointIds.stream()
|
||||
.filter(pointId -> !pointIdsWithItems.contains(pointId))
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isEmpty(placeholderPointIds)) {
|
||||
return;
|
||||
}
|
||||
|
||||
itemsService.lambdaUpdate()
|
||||
.in(QmsPqcInspectionPointItems::getInspectionCodeId, placeholderPointIds)
|
||||
.remove();
|
||||
pointService.removeByIds(placeholderPointIds);
|
||||
}
|
||||
|
||||
private void ensurePlaceholderPointsForMissingSteps(Long ruleId,
|
||||
List<DictionaryItem> stepDicItems,
|
||||
String operator,
|
||||
|
|
|
|||
Loading…
Reference in New Issue