pdi功能修改

This commit is contained in:
funny 2026-04-27 17:54:35 +08:00
parent 8f25bf27f2
commit 0510c711a9
11 changed files with 90 additions and 304 deletions

View File

@ -63,9 +63,9 @@ public class QmsPdiInspectionResultsDetailVO {
private List<QmsPdiInspectionResults> dynamicItems; private List<QmsPdiInspectionResults> dynamicItems;
/** /**
* 装车前检测项inspection_item_type=2 * 装车前检测项明细列表inspection_item_type=2
*/ */
private LoadingItemVO loadingItem; private List<LoadingItemDetailVO> loadingItems;
/** /**
* 特殊检测项列表inspection_item_type=3 * 特殊检测项列表inspection_item_type=3
@ -73,37 +73,10 @@ public class QmsPdiInspectionResultsDetailVO {
private List<QmsPdiInspectionResults> specialItems; private List<QmsPdiInspectionResults> specialItems;
/** /**
* 装车前检测项VO * 装车前检测项明细VO
*/ */
@Data @Data
public static class LoadingItemVO { public static class LoadingItemDetailVO {
/**
* inspection_results.id
*/
private Long id;
/**
* 现场图片/视频列表最多10个
*/
private List<String> inspectionItemImage;
/**
* 装车前整体结果
*/
private Boolean inspectionItemResults;
/**
* 装车前检查项明细列表
*/
private List<DeliveryItemDetailVO> deliveryItemList;
}
/**
* 装车前检查项明细子VO
*/
@Data
public static class DeliveryItemDetailVO {
/** /**
* 发货检查项ID * 发货检查项ID
@ -116,8 +89,8 @@ public class QmsPdiInspectionResultsDetailVO {
private String checklist; private String checklist;
/** /**
* 该项的检测结果 * 现场图片/视频列表
*/ */
private Boolean deliveryItemResult; private List<String> inspectionItemImage;
} }
} }

View File

@ -7,12 +7,10 @@ import com.nflg.wms.repository.entity.QmsPdiDetectionRules;
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem; import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem;
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesStatusItem; import com.nflg.wms.repository.entity.QmsPdiDetectionRulesStatusItem;
import com.nflg.wms.repository.entity.QmsPdiInspectionResults; import com.nflg.wms.repository.entity.QmsPdiInspectionResults;
import com.nflg.wms.repository.entity.QmsPdiInspectionResultsLoadingRecord;
import com.nflg.wms.repository.entity.QmsPdiTaskRecord; import com.nflg.wms.repository.entity.QmsPdiTaskRecord;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesStatusItemService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesStatusItemService;
import com.nflg.wms.repository.service.IQmsPdiInspectionResultsLoadingRecordService;
import com.nflg.wms.repository.service.IQmsPdiInspectionResultsService; import com.nflg.wms.repository.service.IQmsPdiInspectionResultsService;
import com.nflg.wms.repository.service.IQmsPdiTaskRecordService; import com.nflg.wms.repository.service.IQmsPdiTaskRecordService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -45,9 +43,6 @@ public class ExternalPdiTaskRecordControllerService {
@Resource @Resource
private IQmsPdiInspectionResultsService inspectionResultsService; private IQmsPdiInspectionResultsService inspectionResultsService;
@Resource
private IQmsPdiInspectionResultsLoadingRecordService loadingRecordService;
// ========================= 新增 ========================= // ========================= 新增 =========================
/** /**
@ -125,31 +120,19 @@ public class ExternalPdiTaskRecordControllerService {
.setInspectionItemId(item.getId()) .setInspectionItemId(item.getId())
.setInspectionItemType(3))); .setInspectionItemType(3)));
// 装车前检测项delivery_item inspection_item_type=2 // 装车前检测项delivery_item逐条插入 inspection_results
// qms_pdi_inspection_results 中只插入一条记录用于存放整体结果和图片
List<QmsPdiDetectionRulesDeliveryItem> deliveryItems = deliveryItemService.lambdaQuery() List<QmsPdiDetectionRulesDeliveryItem> deliveryItems = deliveryItemService.lambdaQuery()
.eq(QmsPdiDetectionRulesDeliveryItem::getDetectionRulesId, detectionRulesId) .eq(QmsPdiDetectionRulesDeliveryItem::getDetectionRulesId, detectionRulesId)
.list(); .list();
resultRows.add(new QmsPdiInspectionResults() deliveryItems.forEach(item -> resultRows.add(new QmsPdiInspectionResults()
.setDetectionRulesId(detectionRulesId) .setDetectionRulesId(detectionRulesId)
.setTaskId(taskId) .setTaskId(taskId)
.setInspectionItemId(taskId) // taskId 区分表示这是装车前整体结果 .setInspectionItemId(item.getId())
.setInspectionItemType(2)); .setInspectionItemType(2)));
if (!resultRows.isEmpty()) { if (!resultRows.isEmpty()) {
inspectionResultsService.saveBatch(resultRows); inspectionResultsService.saveBatch(resultRows);
} }
// qms_pdi_inspection_results_loading_record 中插入每个检测项的明细记录
if (!deliveryItems.isEmpty()) {
List<QmsPdiInspectionResultsLoadingRecord> loadingRecords = deliveryItems.stream()
.map(item -> new QmsPdiInspectionResultsLoadingRecord()
.setDeliveryItemId(item.getId())
.setTaskId(taskId)
.setDeliveryItemResult(null))
.toList();
loadingRecordService.saveBatch(loadingRecords);
}
} }
} }

View File

@ -14,11 +14,9 @@ import com.nflg.wms.common.util.UserUtil;
import com.nflg.wms.repository.entity.QmsPdiDetectionRules; import com.nflg.wms.repository.entity.QmsPdiDetectionRules;
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem; import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem;
import com.nflg.wms.repository.entity.QmsPdiInspectionResults; import com.nflg.wms.repository.entity.QmsPdiInspectionResults;
import com.nflg.wms.repository.entity.QmsPdiInspectionResultsLoadingRecord;
import com.nflg.wms.repository.entity.QmsPdiTaskRecord; import com.nflg.wms.repository.entity.QmsPdiTaskRecord;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService;
import com.nflg.wms.repository.service.IQmsPdiInspectionResultsLoadingRecordService;
import com.nflg.wms.repository.service.IQmsPdiInspectionResultsService; import com.nflg.wms.repository.service.IQmsPdiInspectionResultsService;
import com.nflg.wms.repository.service.IQmsPdiTaskRecordService; import com.nflg.wms.repository.service.IQmsPdiTaskRecordService;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -39,9 +37,6 @@ public class QmsPdiInspectionResultsControllerService {
@Resource @Resource
private IQmsPdiInspectionResultsService inspectionResultsService; private IQmsPdiInspectionResultsService inspectionResultsService;
@Resource
private IQmsPdiInspectionResultsLoadingRecordService loadingRecordService;
@Resource @Resource
private IQmsPdiTaskRecordService taskRecordService; private IQmsPdiTaskRecordService taskRecordService;
@ -56,7 +51,6 @@ public class QmsPdiInspectionResultsControllerService {
/** /**
* 填写动静态/特殊检查项内容inspection_item_type=01或3 * 填写动静态/特殊检查项内容inspection_item_type=01或3
* start_detection_time 为空则插入前端传入时间并将 inspection_enable 改为 1质检中 * start_detection_time 为空则插入前端传入时间并将 inspection_enable 改为 1质检中
* 若传入 id 对应的记录类型为2装车前抛出异常作为兜底
*/ */
@Transactional @Transactional
public void fillStatusItems(QmsPdiStatusItemsFillQO request) { public void fillStatusItems(QmsPdiStatusItemsFillQO request) {
@ -137,11 +131,11 @@ public class QmsPdiInspectionResultsControllerService {
/** /**
* 提交现场检测记录 * 提交现场检测记录
* 1. start_detection_time 为空则插入前端传入时间否则跳过 * 1. start_detection_time 为空则插入前端传入时间否则跳过
* 2. 更新 qms_pdi_inspection_results_loading_record 中的每条明细结果 * 2. 更新装车前检测项type=2的图片
* 3. 更新 qms_pdi_inspection_results type=2 那条记录的整体结果和图片 * 3. 检查 type=0/1/3 是否都有结果
* 4. 检查所有检测项 loading_record是否都有结果 * 4. 检查 type=2 是否都传了图片
* 5. 设置 detection_completion_time inspection_enable 改为 2已完成 * 5. 设置 detection_completion_time overallResult 存入 task_record
* 6. 检查是否有不合格项则以 list 返回无则返回 null * 6. 若有不合格项则以 list 返回 type=0/1/3无则返回 null
*/ */
@Transactional @Transactional
public List<QmsPdiInspectionResults> submit(QmsPdiInspectionResultsSubmitQO request) { public List<QmsPdiInspectionResults> submit(QmsPdiInspectionResultsSubmitQO request) {
@ -163,81 +157,55 @@ public class QmsPdiInspectionResultsControllerService {
.update(); .update();
} }
// 更新 qms_pdi_inspection_results_loading_record 中的每条明细结果 // 1. 更新装车前每条明细的图片type=2
request.getLoadingItems().forEach(item -> request.getLoadingItems().forEach(item -> {
loadingRecordService.lambdaUpdate() String imageStr = item.getImages() == null || item.getImages().isEmpty() ? null
.eq(QmsPdiInspectionResultsLoadingRecord::getTaskId, request.getTaskId()) : item.getImages().stream().map(String::valueOf).collect(Collectors.joining(","));
.eq(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemId, item.getId())
.set(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemResult, item.getResult())
.update()
);
// 更新 qms_pdi_inspection_results type=2 那条记录整体结果和图片
QmsPdiInspectionResults loadingResult = inspectionResultsService.lambdaQuery()
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
.eq(QmsPdiInspectionResults::getInspectionItemType, 2)
.one();
String newInspectorId = operatorId.toString();
String newInspectionBy = operator;
if (loadingResult != null && loadingResult.getInspectorId() != null && !loadingResult.getInspectorId().isEmpty()) {
if (!loadingResult.getInspectorId().contains(newInspectorId)) {
newInspectorId = loadingResult.getInspectorId() + "," + newInspectorId;
newInspectionBy = loadingResult.getInspectionBy() + "/" + operator;
} else {
newInspectorId = loadingResult.getInspectorId();
newInspectionBy = loadingResult.getInspectionBy();
}
}
inspectionResultsService.lambdaUpdate() inspectionResultsService.lambdaUpdate()
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId()) .eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
.eq(QmsPdiInspectionResults::getInspectionItemType, 2) .eq(QmsPdiInspectionResults::getInspectionItemId, item.getId())
.set(request.getOverallResult() != null, .set(QmsPdiInspectionResults::getInspectionItemImage, imageStr)
QmsPdiInspectionResults::getInspectionItemResults, request.getOverallResult())
.set(request.getOverallImages() != null && !request.getOverallImages().isEmpty(),
QmsPdiInspectionResults::getInspectionItemImage,
request.getOverallImages().stream().map(String::valueOf).collect(Collectors.joining(",")))
.set(QmsPdiInspectionResults::getInspectionTime, now)
.set(QmsPdiInspectionResults::getInspectorId, newInspectorId)
.set(QmsPdiInspectionResults::getInspectionBy, newInspectionBy)
.update(); .update();
});
// 检查所有检测项是否都有结果 loading_record // 2. 检查 type=0/1/3 是否都有结果
long unfilledResults = inspectionResultsService.lambdaQuery() long unfilledResults = inspectionResultsService.lambdaQuery()
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId()) .eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
.ne(QmsPdiInspectionResults::getInspectionItemType, 2) // 排除 type=2整体结果单独检查 .ne(QmsPdiInspectionResults::getInspectionItemType, 2)
.isNull(QmsPdiInspectionResults::getInspectionItemResults) .isNull(QmsPdiInspectionResults::getInspectionItemResults)
.count(); .count();
if (unfilledResults > 0) { if (unfilledResults > 0) {
throw new NflgException(STATE.BusinessError, "还有" + unfilledResults + "项检测未填写,无法提交"); throw new NflgException(STATE.BusinessError, "还有" + unfilledResults + "项检测未填写结果,无法提交");
} }
// 检查装车前明细是否都有结果 // 3. 检查 type=2 是否都传了图片
long unfilledLoading = loadingRecordService.lambdaQuery() long unfilledImages = inspectionResultsService.lambdaQuery()
.eq(QmsPdiInspectionResultsLoadingRecord::getTaskId, request.getTaskId()) .eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
.isNull(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemResult) .eq(QmsPdiInspectionResults::getInspectionItemType, 2)
.isNull(QmsPdiInspectionResults::getInspectionItemImage)
.count(); .count();
if (unfilledLoading > 0) { if (unfilledImages > 0) {
throw new NflgException(STATE.BusinessError, "还有" + unfilledLoading + "项装车前检测未填写,无法提交"); throw new NflgException(STATE.BusinessError, "还有" + unfilledImages + "项装车前检测未上传图片,无法提交");
} }
// 检查整体结果是否填写 // 4. 将整体判定结果存入 task_record
if (request.getOverallResult() == null) { taskRecordService.lambdaUpdate()
throw new NflgException(STATE.BusinessError, "请填写装车前整体检测结果"); .eq(QmsPdiTaskRecord::getId, taskRecord.getId())
} .set(QmsPdiTaskRecord::getInspectionInspection,
request.getOverallResult() != null && request.getOverallResult() ? "合格" : "不合格")
.update();
// 设置检测完成时间 inspection_enable 改为 2已完成 // 5. 设置检测完成时间状态改为已完成
taskRecordService.lambdaUpdate() taskRecordService.lambdaUpdate()
.eq(QmsPdiTaskRecord::getId, taskRecord.getId()) .eq(QmsPdiTaskRecord::getId, taskRecord.getId())
.set(QmsPdiTaskRecord::getDetectionCompletionTime, now) .set(QmsPdiTaskRecord::getDetectionCompletionTime, now)
.set(QmsPdiTaskRecord::getInspectionEnable, 2) .set(QmsPdiTaskRecord::getInspectionEnable, 2)
.update(); .update();
// 检查不合格项 // 6. 返回不合格项只查 type=0/1/3
List<QmsPdiInspectionResults> failedItems = inspectionResultsService.lambdaQuery() List<QmsPdiInspectionResults> failedItems = inspectionResultsService.lambdaQuery()
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId()) .eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
.ne(QmsPdiInspectionResults::getInspectionItemType, 2)
.eq(QmsPdiInspectionResults::getInspectionItemResults, false) .eq(QmsPdiInspectionResults::getInspectionItemResults, false)
.list(); .list();
return failedItems.isEmpty() ? null : failedItems; return failedItems.isEmpty() ? null : failedItems;
@ -300,31 +268,15 @@ public class QmsPdiInspectionResultsControllerService {
.filter(r -> Objects.equals(r.getInspectionItemType(), 3)) .filter(r -> Objects.equals(r.getInspectionItemType(), 3))
.collect(Collectors.toList())); .collect(Collectors.toList()));
// 构建装车前检测项含明细 // 装车前检测项type=2查询所有明细
QmsPdiInspectionResults loadingResult = allResults.stream() List<QmsPdiInspectionResults> loadingResults = allResults.stream()
.filter(r -> Objects.equals(r.getInspectionItemType(), 2)) .filter(r -> Objects.equals(r.getInspectionItemType(), 2))
.findFirst() .collect(Collectors.toList());
.orElse(null);
if (loadingResult != null) {
QmsPdiInspectionResultsDetailVO.LoadingItemVO loadingItemVO = new QmsPdiInspectionResultsDetailVO.LoadingItemVO();
loadingItemVO.setId(loadingResult.getId());
// 拆分图片/视频地址
if (loadingResult.getInspectionItemImage() != null && !loadingResult.getInspectionItemImage().isEmpty()) {
loadingItemVO.setInspectionItemImage(List.of(loadingResult.getInspectionItemImage().split(",")));
}
loadingItemVO.setInspectionItemResults(loadingResult.getInspectionItemResults());
// 查询装车前明细
List<QmsPdiInspectionResultsLoadingRecord> loadingRecords = loadingRecordService.lambdaQuery()
.eq(QmsPdiInspectionResultsLoadingRecord::getTaskId, taskRecord.getId())
.list();
if (!loadingResults.isEmpty()) {
// 批量查 delivery_item // 批量查 delivery_item
java.util.Set<Long> deliveryItemIds = loadingRecords.stream() java.util.Set<Long> deliveryItemIds = loadingResults.stream()
.map(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemId) .map(QmsPdiInspectionResults::getInspectionItemId)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
java.util.Map<Long, QmsPdiDetectionRulesDeliveryItem> deliveryItemMap = java.util.Map.of(); java.util.Map<Long, QmsPdiDetectionRulesDeliveryItem> deliveryItemMap = java.util.Map.of();
@ -336,21 +288,24 @@ public class QmsPdiInspectionResultsControllerService {
// 构建明细列表 // 构建明细列表
java.util.Map<Long, QmsPdiDetectionRulesDeliveryItem> finalMap = deliveryItemMap; java.util.Map<Long, QmsPdiDetectionRulesDeliveryItem> finalMap = deliveryItemMap;
List<QmsPdiInspectionResultsDetailVO.DeliveryItemDetailVO> detailList = new java.util.ArrayList<>(); List<QmsPdiInspectionResultsDetailVO.LoadingItemDetailVO> detailList = new java.util.ArrayList<>();
for (QmsPdiInspectionResultsLoadingRecord lr : loadingRecords) { for (QmsPdiInspectionResults lr : loadingResults) {
QmsPdiInspectionResultsDetailVO.DeliveryItemDetailVO detailVO = new QmsPdiInspectionResultsDetailVO.DeliveryItemDetailVO(); QmsPdiInspectionResultsDetailVO.LoadingItemDetailVO detailVO = new QmsPdiInspectionResultsDetailVO.LoadingItemDetailVO();
detailVO.setDeliveryItemId(lr.getDeliveryItemId()); detailVO.setDeliveryItemId(lr.getInspectionItemId());
detailVO.setDeliveryItemResult(lr.getDeliveryItemResult());
QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getDeliveryItemId()); QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getInspectionItemId());
if (di != null) { if (di != null) {
detailVO.setChecklist(di.getChecklist()); detailVO.setChecklist(di.getChecklist());
} }
// 拆分图片
if (lr.getInspectionItemImage() != null && !lr.getInspectionItemImage().isEmpty()) {
detailVO.setInspectionItemImage(List.of(lr.getInspectionItemImage().split(",")));
}
detailList.add(detailVO); detailList.add(detailVO);
} }
loadingItemVO.setDeliveryItemList(detailList); vo.setLoadingItems(detailList);
vo.setLoadingItem(loadingItemVO);
} }
return vo; return vo;

View File

@ -13,14 +13,12 @@ import com.nflg.wms.repository.entity.QmsPdiDetectionRules;
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem; import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem;
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesStatusItem; import com.nflg.wms.repository.entity.QmsPdiDetectionRulesStatusItem;
import com.nflg.wms.repository.entity.QmsPdiInspectionResults; import com.nflg.wms.repository.entity.QmsPdiInspectionResults;
import com.nflg.wms.repository.entity.QmsPdiInspectionResultsLoadingRecord;
import com.nflg.wms.repository.entity.QmsPdiTaskRecord; import com.nflg.wms.repository.entity.QmsPdiTaskRecord;
import com.nflg.wms.repository.entity.User; import com.nflg.wms.repository.entity.User;
import com.nflg.wms.repository.entity.FileUploadRecord; import com.nflg.wms.repository.entity.FileUploadRecord;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService;
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesStatusItemService; import com.nflg.wms.repository.service.IQmsPdiDetectionRulesStatusItemService;
import com.nflg.wms.repository.service.IQmsPdiInspectionResultsLoadingRecordService;
import com.nflg.wms.repository.service.IQmsPdiInspectionResultsService; import com.nflg.wms.repository.service.IQmsPdiInspectionResultsService;
import com.nflg.wms.repository.service.IQmsPdiTaskRecordService; import com.nflg.wms.repository.service.IQmsPdiTaskRecordService;
import com.nflg.wms.repository.service.IUserService; import com.nflg.wms.repository.service.IUserService;
@ -57,9 +55,6 @@ public class QmsPdiTaskRecordControllerService {
@Resource @Resource
private IQmsPdiInspectionResultsService inspectionResultsService; private IQmsPdiInspectionResultsService inspectionResultsService;
@Resource
private IQmsPdiInspectionResultsLoadingRecordService loadingRecordService;
@Resource @Resource
private IFileUploadRecordService fileUploadRecordService; private IFileUploadRecordService fileUploadRecordService;
@ -154,8 +149,8 @@ public class QmsPdiTaskRecordControllerService {
vo.setSpecialItems(buildStatusItemPage(record.getId(), 3, vo.setSpecialItems(buildStatusItemPage(record.getId(), 3,
request.getSpecialPage(), request.getSpecialSize())); request.getSpecialPage(), request.getSpecialSize()));
// 准备发货type=2不分页 // 装车前检测项type=2不分页
vo.setLoadingItems(buildLoadingItem(record.getId())); vo.setLoadingItems(buildLoadingItems(record.getId()));
return vo; return vo;
} }
@ -237,27 +232,22 @@ public class QmsPdiTaskRecordControllerService {
} }
/** /**
* 构建准备发货装车前数据不分页 * 构建装车前检测项列表不分页
*/ */
private QmsPdiTaskRecordDetailVO.LoadingItemVO buildLoadingItem(Long taskId) { private List<QmsPdiTaskRecordDetailVO.LoadingItemDetailVO> buildLoadingItems(Long taskId) {
// 查询装车前整体记录type=2只有一条 // 查询装车前所有明细type=2
QmsPdiInspectionResults loadingResult = inspectionResultsService.lambdaQuery() List<QmsPdiInspectionResults> loadingResults = inspectionResultsService.lambdaQuery()
.eq(QmsPdiInspectionResults::getTaskId, taskId) .eq(QmsPdiInspectionResults::getTaskId, taskId)
.eq(QmsPdiInspectionResults::getInspectionItemType, 2) .eq(QmsPdiInspectionResults::getInspectionItemType, 2)
.one();
if (loadingResult == null) {
return null;
}
// 查询该任务单下所有装车前检查项明细
List<QmsPdiInspectionResultsLoadingRecord> loadingRecords = loadingRecordService.lambdaQuery()
.eq(QmsPdiInspectionResultsLoadingRecord::getTaskId, taskId)
.list(); .list();
// 批量查关联的 delivery_item if (loadingResults.isEmpty()) {
Set<Long> deliveryItemIds = loadingRecords.stream() return List.of();
.map(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemId) }
// 批量查 delivery_item
Set<Long> deliveryItemIds = loadingResults.stream()
.map(QmsPdiInspectionResults::getInspectionItemId)
.filter(Objects::nonNull) .filter(Objects::nonNull)
.collect(Collectors.toSet()); .collect(Collectors.toSet());
Map<Long, QmsPdiDetectionRulesDeliveryItem> deliveryItemMap = Map.of(); Map<Long, QmsPdiDetectionRulesDeliveryItem> deliveryItemMap = Map.of();
@ -267,29 +257,22 @@ public class QmsPdiTaskRecordControllerService {
.collect(Collectors.toMap(QmsPdiDetectionRulesDeliveryItem::getId, di -> di, (a, b) -> a)); .collect(Collectors.toMap(QmsPdiDetectionRulesDeliveryItem::getId, di -> di, (a, b) -> a));
} }
// 构建返回结果
QmsPdiTaskRecordDetailVO.LoadingItemVO vo = new QmsPdiTaskRecordDetailVO.LoadingItemVO();
vo.setId(loadingResult.getId());
vo.setInspectionItemImage(convertImageIdsToVO(loadingResult.getInspectionItemImage()));
vo.setInspectionItemResults(loadingResult.getInspectionItemResults());
// 构建明细列表 // 构建明细列表
Map<Long, QmsPdiDetectionRulesDeliveryItem> finalMap = deliveryItemMap; Map<Long, QmsPdiDetectionRulesDeliveryItem> finalMap = deliveryItemMap;
List<QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO> detailList = new ArrayList<>(); List<QmsPdiTaskRecordDetailVO.LoadingItemDetailVO> detailList = new ArrayList<>();
for (QmsPdiInspectionResultsLoadingRecord lr : loadingRecords) { for (QmsPdiInspectionResults lr : loadingResults) {
QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO detailVO = new QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO(); QmsPdiTaskRecordDetailVO.LoadingItemDetailVO detailVO = new QmsPdiTaskRecordDetailVO.LoadingItemDetailVO();
detailVO.setDeliveryItemId(lr.getDeliveryItemId()); detailVO.setDeliveryItemId(lr.getInspectionItemId());
detailVO.setDeliveryItemResult(lr.getDeliveryItemResult()); detailVO.setInspectionItemImage(convertImageIdsToVO(lr.getInspectionItemImage()));
QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getDeliveryItemId()); QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getInspectionItemId());
if (di != null) { if (di != null) {
detailVO.setChecklist(di.getChecklist()); detailVO.setChecklist(di.getChecklist());
} }
detailList.add(detailVO); detailList.add(detailVO);
} }
vo.setDeliveryItemList(detailList); return detailList;
return vo;
} }
/** /**

View File

@ -34,12 +34,7 @@ public class QmsPdiInspectionResultsSubmitQO {
private List<QmsPdiLoadingInspectionItemQO> loadingItems; private List<QmsPdiLoadingInspectionItemQO> loadingItems;
/** /**
* 装车前整体检测结果 * 装车前整体检测结果存入qms_pdi_task_record.inspection_inspection
*/ */
private Boolean overallResult; private Boolean overallResult;
/**
* 装车前整体图片/视频文件ID列表
*/
private List<Long> overallImages;
} }

View File

@ -16,7 +16,7 @@ public class QmsPdiLoadingInspectionItemQO {
private Long id; private Long id;
/** /**
* 检验项结果false=不合格true=合格 * 现场图片/视频文件ID列表
*/ */
private Boolean result; private java.util.List<Long> images;
} }

View File

@ -68,9 +68,9 @@ public class QmsPdiTaskRecordDetailVO {
private PageData<StatusItemVO> specialItems; private PageData<StatusItemVO> specialItems;
/** /**
* 准备发货inspection_item_type=2不分页 * 装车前检测项明细列表inspection_item_type=2不分页
*/ */
private LoadingItemVO loadingItems; private List<LoadingItemDetailVO> loadingItems;
/** /**
* 静态/动态/特殊检测项 子VO * 静态/动态/特殊检测项 子VO
@ -152,37 +152,10 @@ public class QmsPdiTaskRecordDetailVO {
} }
/** /**
* 准备发货装车前VO * 装车前检测项明细VO
*/ */
@Data @Data
public static class LoadingItemVO { public static class LoadingItemDetailVO {
/**
* inspection_results.id
*/
private Long id;
/**
* 现场图片/视频详情列表最多10个
*/
private List<FileDetailVO> inspectionItemImage;
/**
* 装车前整体结果
*/
private Boolean inspectionItemResults;
/**
* 装车前检查项明细列表
*/
private List<DeliveryItemDetailVO> deliveryItemList;
}
/**
* 装车前检查项明细子VO
*/
@Data
public static class DeliveryItemDetailVO {
/** /**
* 发货检查项ID * 发货检查项ID
@ -195,8 +168,8 @@ public class QmsPdiTaskRecordDetailVO {
private String checklist; private String checklist;
/** /**
* 该项的检测结果 * 现场图片/视频详情列表
*/ */
private Boolean deliveryItemResult; private List<FileDetailVO> inspectionItemImage;
} }
} }

View File

@ -1,38 +0,0 @@
package com.nflg.wms.repository.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
/**
* 装车前检测项明细表
*/
@Data
@Accessors(chain = true)
@TableName("qms_pdi_inspection_results_loading_record")
public class QmsPdiInspectionResultsLoadingRecord implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.ASSIGN_ID)
private Long id;
/**
* 装车前检测项ID关联 qms_pdi_detection_rules_delivery_item.id
*/
private Long deliveryItemId;
/**
* 装车前检测结果
*/
private Boolean deliveryItemResult;
/**
* 任务ID关联 qms_pdi_task_record.id
*/
private Long taskId;
}

View File

@ -1,12 +0,0 @@
package com.nflg.wms.repository.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.nflg.wms.repository.entity.QmsPdiInspectionResultsLoadingRecord;
import org.apache.ibatis.annotations.Mapper;
/**
* 装车前检测项明细表 Mapper
*/
@Mapper
public interface QmsPdiInspectionResultsLoadingRecordMapper extends BaseMapper<QmsPdiInspectionResultsLoadingRecord> {
}

View File

@ -1,10 +0,0 @@
package com.nflg.wms.repository.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nflg.wms.repository.entity.QmsPdiInspectionResultsLoadingRecord;
/**
* 装车前检测项明细表 Service
*/
public interface IQmsPdiInspectionResultsLoadingRecordService extends IService<QmsPdiInspectionResultsLoadingRecord> {
}

View File

@ -1,16 +0,0 @@
package com.nflg.wms.repository.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.nflg.wms.repository.entity.QmsPdiInspectionResultsLoadingRecord;
import com.nflg.wms.repository.mapper.QmsPdiInspectionResultsLoadingRecordMapper;
import com.nflg.wms.repository.service.IQmsPdiInspectionResultsLoadingRecordService;
import org.springframework.stereotype.Service;
/**
* 装车前检测项明细表 ServiceImpl
*/
@Service
public class QmsPdiInspectionResultsLoadingRecordServiceImpl
extends ServiceImpl<QmsPdiInspectionResultsLoadingRecordMapper, QmsPdiInspectionResultsLoadingRecord>
implements IQmsPdiInspectionResultsLoadingRecordService {
}