pqc检测任务修改

This commit is contained in:
yf001217 2026-06-10 14:15:24 +08:00
parent dbc31f4cc1
commit c1a8d8314b
2 changed files with 79 additions and 33 deletions

View File

@ -865,6 +865,26 @@ public class QmsPqcTaskRecordControllerService {
.collect(Collectors.toList());
}
private QmsPqcTaskRecord getOrCreateTaskRecord(QmsPqcTaskRecordDraftQO request) {
if (request.getTaskId() != null) {
QmsPqcTaskRecord taskRecord = pqcTaskRecordService.getById(request.getTaskId());
VUtil.trueThrowBusinessError(taskRecord == null).throwMessage("任务不存在");
return taskRecord;
}
QmsPqcTaskRecord existTask = pqcTaskRecordService.lambdaQuery()
.eq(QmsPqcTaskRecord::getAufnr, request.getAufnr())
.eq(QmsPqcTaskRecord::getModelNo, request.getModelNo())
.eq(QmsPqcTaskRecord::getInspectionPointId, request.getInspectionPointId())
.one();
if (existTask != null) {
return existTask;
}
return createPqcTask(request.getAufnr(), request.getNo(), request.getModelNo(), request.getInspectionPointId());
}
/**
* 6. 暂存
*/
@ -874,20 +894,8 @@ public class QmsPqcTaskRecordControllerService {
String currentUserName = UserUtil.getUserName();
LocalDateTime now = LocalDateTime.now();
// 1. 校验任务是否存在订单编号+机型编号+检查点ID一致就是同一个任务
QmsPqcTaskRecord existTask = pqcTaskRecordService.lambdaQuery()
.eq(QmsPqcTaskRecord::getAufnr, request.getAufnr())
.eq(QmsPqcTaskRecord::getModelNo, request.getModelNo())
.eq(QmsPqcTaskRecord::getInspectionPointId, request.getInspectionPointId())
.one();
QmsPqcTaskRecord taskRecord;
if (existTask == null) {
// 不存在则新建
taskRecord = createPqcTask(request.getAufnr(), request.getNo(), request.getModelNo(), request.getInspectionPointId());
} else {
taskRecord = existTask;
}
// 1. 校验任务是否存在
QmsPqcTaskRecord taskRecord = getOrCreateTaskRecord(request);
// 2. 判断是否有复核相关内容
boolean hasReviewContent = hasReviewContent(request);
@ -935,19 +943,7 @@ public class QmsPqcTaskRecordControllerService {
LocalDateTime now = LocalDateTime.now();
// 1. 校验任务是否存在
QmsPqcTaskRecord existTask = pqcTaskRecordService.lambdaQuery()
.eq(QmsPqcTaskRecord::getAufnr, request.getAufnr())
.eq(QmsPqcTaskRecord::getModelNo, request.getModelNo())
.eq(QmsPqcTaskRecord::getInspectionPointId, request.getInspectionPointId())
.one();
QmsPqcTaskRecord taskRecord;
if (existTask == null) {
// 不存在则新建
taskRecord = createPqcTask(request.getAufnr(), request.getNo(), request.getModelNo(), request.getInspectionPointId());
} else {
taskRecord = existTask;
}
QmsPqcTaskRecord taskRecord = getOrCreateTaskRecord(request);
// 2. 校验数据完整性
boolean hasReviewContent = hasReviewContent(request);
@ -1006,8 +1002,12 @@ public class QmsPqcTaskRecordControllerService {
* 判断是否有复核相关内容
*/
private boolean hasReviewContent(QmsPqcTaskRecordDraftQO request) {
if (request.getQcMaterialCollections() != null && !request.getQcMaterialCollections().isEmpty()) {
return true;
if (request.getQcMaterialCollections() != null) {
for (QmsPqcTaskRecordDraftQO.MaterialCollectionItem item : request.getQcMaterialCollections()) {
if (hasMaterialCollectionContent(item)) {
return true;
}
}
}
if (request.getProcessInspections() != null) {
for (QmsPqcTaskRecordDraftQO.ProcessInspectionItem item : request.getProcessInspections()) {
@ -1031,6 +1031,14 @@ public class QmsPqcTaskRecordControllerService {
return false;
}
private boolean hasMaterialCollectionContent(QmsPqcTaskRecordDraftQO.MaterialCollectionItem item) {
return item != null
&& (StrUtil.isNotBlank(item.getSerialNo())
|| StrUtil.isNotBlank(item.getBatchNo())
|| item.getFiles() != null && !item.getFiles().isEmpty()
|| item.getEnable() != null);
}
private boolean isDetailType(QmsPqcTaskRecordDetails detail, int type) {
return detail != null && Objects.equals(detail.getType(), (short) type);
}
@ -1259,9 +1267,10 @@ public class QmsPqcTaskRecordControllerService {
QmsPqcTaskRecordDetails detail = new QmsPqcTaskRecordDetails()
.setTaskId(taskId)
.setType((short) 1)
.setInspectionPointItemId(i < selfMaterialItemIds.size() ? selfMaterialItemIds.get(i) : null)
.setInspectionPointItemId(resolveInspectionPointItemId(item.getInspectionPointItemId(), selfMaterialItemIds, i))
.setSelfTestData(item.getSerialNo())
.setSelfCheck(item.getFiles() != null && !item.getFiles().isEmpty() ? true : null)
.setReviewEnable(item.getEnable())
.setReviewData(item.getBatchNo())
.setSelfTestAttachments(serializeFileList(item.getFiles()))
.setSelfTestUploadTime(now);
@ -1278,9 +1287,10 @@ public class QmsPqcTaskRecordControllerService {
QmsPqcTaskRecordDetails detail = new QmsPqcTaskRecordDetails()
.setTaskId(taskId)
.setType((short) 1)
.setInspectionPointItemId(i < qcMaterialItemIds.size() ? qcMaterialItemIds.get(i) : null)
.setInspectionPointItemId(resolveInspectionPointItemId(item.getInspectionPointItemId(), qcMaterialItemIds, i))
.setSelfTestData(item.getSerialNo())
.setSelfCheck(item.getFiles() != null && !item.getFiles().isEmpty() ? true : null)
.setReviewEnable(item.getEnable())
.setReviewData(item.getBatchNo())
.setSelfTestAttachments(serializeFileList(item.getFiles()))
.setSelfTestUploadTime(now);
@ -1297,7 +1307,7 @@ public class QmsPqcTaskRecordControllerService {
QmsPqcTaskRecordDetails detail = new QmsPqcTaskRecordDetails()
.setTaskId(taskId)
.setType((short) 0)
.setInspectionPointItemId(i < selfProcessItemIds.size() ? selfProcessItemIds.get(i) : null)
.setInspectionPointItemId(resolveInspectionPointItemId(item.getInspectionPointItemId(), selfProcessItemIds, i))
.setSelfTestData(item.getSelfTestData())
.setSelfCheck(item.getSelfCheck())
.setReviewData(item.getReviewData())
@ -1320,7 +1330,7 @@ public class QmsPqcTaskRecordControllerService {
QmsPqcTaskRecordDetails detail = new QmsPqcTaskRecordDetails()
.setTaskId(taskId)
.setType((short) 0)
.setInspectionPointItemId(i < qcProcessItemIds.size() ? qcProcessItemIds.get(i) : null)
.setInspectionPointItemId(resolveInspectionPointItemId(item.getInspectionPointItemId(), qcProcessItemIds, i))
.setSelfCheck(null)
.setReviewEnable(item.getEnable());
if (hasReviewContent) {
@ -1342,6 +1352,13 @@ public class QmsPqcTaskRecordControllerService {
}
}
private Long resolveInspectionPointItemId(Long requestItemId, List<Long> fallbackItemIds, int index) {
if (requestItemId != null) {
return requestItemId;
}
return index < fallbackItemIds.size() ? fallbackItemIds.get(index) : null;
}
private void saveExistingTaskDetails(Long taskId, List<QmsPqcTaskRecordDetails> details) {
if (details == null || details.isEmpty()) {
return;

View File

@ -1,5 +1,6 @@
package com.nflg.wms.common.pojo.qo;
import com.fasterxml.jackson.annotation.JsonAlias;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
@ -11,6 +12,11 @@ import java.util.List;
@Data
public class QmsPqcTaskRecordDraftQO {
/**
* 任务ID
*/
private Long taskId;
/**
* 订单编号必传
*/
@ -65,6 +71,11 @@ public class QmsPqcTaskRecordDraftQO {
*/
@Data
public static class MaterialCollectionItem {
/**
* 检测项ID
*/
private Long inspectionPointItemId;
/**
* 序列号
*/
@ -89,6 +100,12 @@ public class QmsPqcTaskRecordDraftQO {
* 采集时间
*/
private String collectionTime;
/**
* 检测结果
*/
@JsonAlias({"reviewEnable", "review_enable"})
private Boolean enable;
}
/**
@ -96,6 +113,11 @@ public class QmsPqcTaskRecordDraftQO {
*/
@Data
public static class ProcessInspectionItem {
/**
* 检测项ID
*/
private Long inspectionPointItemId;
/**
* 检查内容
*/
@ -134,6 +156,7 @@ public class QmsPqcTaskRecordDraftQO {
/**
* 检测结果
*/
@JsonAlias({"reviewEnable", "review_enable"})
private Boolean enable;
/**
@ -157,6 +180,11 @@ public class QmsPqcTaskRecordDraftQO {
*/
@Data
public static class ProcessInspectionLevel3Item {
/**
* 检测项ID
*/
private Long inspectionPointItemId;
/**
* 检查内容
*/
@ -185,6 +213,7 @@ public class QmsPqcTaskRecordDraftQO {
/**
* 检测结果
*/
@JsonAlias({"reviewEnable", "review_enable"})
private Boolean enable;
/**