pdi功能修改
This commit is contained in:
parent
8f25bf27f2
commit
0510c711a9
|
|
@ -63,9 +63,9 @@ public class QmsPdiInspectionResultsDetailVO {
|
|||
private List<QmsPdiInspectionResults> dynamicItems;
|
||||
|
||||
/**
|
||||
* 装车前检测项(inspection_item_type=2)
|
||||
* 装车前检测项明细列表(inspection_item_type=2)
|
||||
*/
|
||||
private LoadingItemVO loadingItem;
|
||||
private List<LoadingItemDetailVO> loadingItems;
|
||||
|
||||
/**
|
||||
* 特殊检测项列表(inspection_item_type=3)
|
||||
|
|
@ -73,37 +73,10 @@ public class QmsPdiInspectionResultsDetailVO {
|
|||
private List<QmsPdiInspectionResults> specialItems;
|
||||
|
||||
/**
|
||||
* 装车前检测项VO
|
||||
* 装车前检测项明细VO
|
||||
*/
|
||||
@Data
|
||||
public static class LoadingItemVO {
|
||||
|
||||
/**
|
||||
* inspection_results.id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 现场图片/视频列表(最多10个)
|
||||
*/
|
||||
private List<String> inspectionItemImage;
|
||||
|
||||
/**
|
||||
* 装车前整体结果
|
||||
*/
|
||||
private Boolean inspectionItemResults;
|
||||
|
||||
/**
|
||||
* 装车前检查项明细列表
|
||||
*/
|
||||
private List<DeliveryItemDetailVO> deliveryItemList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 装车前检查项明细子VO
|
||||
*/
|
||||
@Data
|
||||
public static class DeliveryItemDetailVO {
|
||||
public static class LoadingItemDetailVO {
|
||||
|
||||
/**
|
||||
* 发货检查项ID
|
||||
|
|
@ -116,8 +89,8 @@ public class QmsPdiInspectionResultsDetailVO {
|
|||
private String checklist;
|
||||
|
||||
/**
|
||||
* 该项的检测结果
|
||||
* 现场图片/视频列表
|
||||
*/
|
||||
private Boolean deliveryItemResult;
|
||||
private List<String> inspectionItemImage;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,12 +7,10 @@ import com.nflg.wms.repository.entity.QmsPdiDetectionRules;
|
|||
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem;
|
||||
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesStatusItem;
|
||||
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.service.IQmsPdiDetectionRulesDeliveryItemService;
|
||||
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService;
|
||||
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.IQmsPdiTaskRecordService;
|
||||
import jakarta.annotation.Resource;
|
||||
|
|
@ -45,9 +43,6 @@ public class ExternalPdiTaskRecordControllerService {
|
|||
@Resource
|
||||
private IQmsPdiInspectionResultsService inspectionResultsService;
|
||||
|
||||
@Resource
|
||||
private IQmsPdiInspectionResultsLoadingRecordService loadingRecordService;
|
||||
|
||||
// ========================= 新增 =========================
|
||||
|
||||
/**
|
||||
|
|
@ -125,31 +120,19 @@ public class ExternalPdiTaskRecordControllerService {
|
|||
.setInspectionItemId(item.getId())
|
||||
.setInspectionItemType(3)));
|
||||
|
||||
// 装车前检测项(delivery_item → inspection_item_type=2)
|
||||
// 在 qms_pdi_inspection_results 中只插入一条记录,用于存放整体结果和图片
|
||||
// 装车前检测项(delivery_item)逐条插入 inspection_results
|
||||
List<QmsPdiDetectionRulesDeliveryItem> deliveryItems = deliveryItemService.lambdaQuery()
|
||||
.eq(QmsPdiDetectionRulesDeliveryItem::getDetectionRulesId, detectionRulesId)
|
||||
.list();
|
||||
resultRows.add(new QmsPdiInspectionResults()
|
||||
deliveryItems.forEach(item -> resultRows.add(new QmsPdiInspectionResults()
|
||||
.setDetectionRulesId(detectionRulesId)
|
||||
.setTaskId(taskId)
|
||||
.setInspectionItemId(taskId) // 用 taskId 区分,表示这是装车前整体结果
|
||||
.setInspectionItemType(2));
|
||||
.setInspectionItemId(item.getId())
|
||||
.setInspectionItemType(2)));
|
||||
|
||||
if (!resultRows.isEmpty()) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,11 +14,9 @@ import com.nflg.wms.common.util.UserUtil;
|
|||
import com.nflg.wms.repository.entity.QmsPdiDetectionRules;
|
||||
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem;
|
||||
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.service.IQmsPdiDetectionRulesDeliveryItemService;
|
||||
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.IQmsPdiTaskRecordService;
|
||||
import jakarta.annotation.Resource;
|
||||
|
|
@ -39,9 +37,6 @@ public class QmsPdiInspectionResultsControllerService {
|
|||
@Resource
|
||||
private IQmsPdiInspectionResultsService inspectionResultsService;
|
||||
|
||||
@Resource
|
||||
private IQmsPdiInspectionResultsLoadingRecordService loadingRecordService;
|
||||
|
||||
@Resource
|
||||
private IQmsPdiTaskRecordService taskRecordService;
|
||||
|
||||
|
|
@ -56,7 +51,6 @@ public class QmsPdiInspectionResultsControllerService {
|
|||
/**
|
||||
* 填写动静态/特殊检查项内容(inspection_item_type=0、1或3)
|
||||
* 若 start_detection_time 为空则插入前端传入时间并将 inspection_enable 改为 1(质检中)
|
||||
* 若传入 id 对应的记录类型为2(装车前),抛出异常作为兜底
|
||||
*/
|
||||
@Transactional
|
||||
public void fillStatusItems(QmsPdiStatusItemsFillQO request) {
|
||||
|
|
@ -137,11 +131,11 @@ public class QmsPdiInspectionResultsControllerService {
|
|||
/**
|
||||
* 提交现场检测记录
|
||||
* 1. 若 start_detection_time 为空则插入前端传入时间,否则跳过
|
||||
* 2. 更新 qms_pdi_inspection_results_loading_record 中的每条明细结果
|
||||
* 3. 更新 qms_pdi_inspection_results 中 type=2 那条记录的整体结果和图片
|
||||
* 4. 检查所有检测项(含 loading_record)是否都有结果
|
||||
* 5. 设置 detection_completion_time,将 inspection_enable 改为 2(已完成)
|
||||
* 6. 检查是否有不合格项,有则以 list 返回,无则返回 null
|
||||
* 2. 更新装车前检测项(type=2)的图片
|
||||
* 3. 检查 type=0/1/3 是否都有结果
|
||||
* 4. 检查 type=2 是否都传了图片
|
||||
* 5. 设置 detection_completion_time,将 overallResult 存入 task_record
|
||||
* 6. 若有不合格项则以 list 返回(仅 type=0/1/3),无则返回 null
|
||||
*/
|
||||
@Transactional
|
||||
public List<QmsPdiInspectionResults> submit(QmsPdiInspectionResultsSubmitQO request) {
|
||||
|
|
@ -163,81 +157,55 @@ public class QmsPdiInspectionResultsControllerService {
|
|||
.update();
|
||||
}
|
||||
|
||||
// 更新 qms_pdi_inspection_results_loading_record 中的每条明细结果
|
||||
request.getLoadingItems().forEach(item ->
|
||||
loadingRecordService.lambdaUpdate()
|
||||
.eq(QmsPdiInspectionResultsLoadingRecord::getTaskId, request.getTaskId())
|
||||
.eq(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemId, item.getId())
|
||||
.set(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemResult, item.getResult())
|
||||
.update()
|
||||
);
|
||||
// 1. 更新装车前每条明细的图片(type=2)
|
||||
request.getLoadingItems().forEach(item -> {
|
||||
String imageStr = item.getImages() == null || item.getImages().isEmpty() ? null
|
||||
: item.getImages().stream().map(String::valueOf).collect(Collectors.joining(","));
|
||||
inspectionResultsService.lambdaUpdate()
|
||||
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
|
||||
.eq(QmsPdiInspectionResults::getInspectionItemId, item.getId())
|
||||
.set(QmsPdiInspectionResults::getInspectionItemImage, imageStr)
|
||||
.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()
|
||||
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
|
||||
.eq(QmsPdiInspectionResults::getInspectionItemType, 2)
|
||||
.set(request.getOverallResult() != null,
|
||||
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();
|
||||
|
||||
// 检查所有检测项是否都有结果(含 loading_record)
|
||||
// 2. 检查 type=0/1/3 是否都有结果
|
||||
long unfilledResults = inspectionResultsService.lambdaQuery()
|
||||
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
|
||||
.ne(QmsPdiInspectionResults::getInspectionItemType, 2) // 排除 type=2(整体结果单独检查)
|
||||
.ne(QmsPdiInspectionResults::getInspectionItemType, 2)
|
||||
.isNull(QmsPdiInspectionResults::getInspectionItemResults)
|
||||
.count();
|
||||
if (unfilledResults > 0) {
|
||||
throw new NflgException(STATE.BusinessError, "还有" + unfilledResults + "项检测未填写,无法提交");
|
||||
throw new NflgException(STATE.BusinessError, "还有" + unfilledResults + "项检测未填写结果,无法提交");
|
||||
}
|
||||
|
||||
// 检查装车前明细是否都有结果
|
||||
long unfilledLoading = loadingRecordService.lambdaQuery()
|
||||
.eq(QmsPdiInspectionResultsLoadingRecord::getTaskId, request.getTaskId())
|
||||
.isNull(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemResult)
|
||||
// 3. 检查 type=2 是否都传了图片
|
||||
long unfilledImages = inspectionResultsService.lambdaQuery()
|
||||
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
|
||||
.eq(QmsPdiInspectionResults::getInspectionItemType, 2)
|
||||
.isNull(QmsPdiInspectionResults::getInspectionItemImage)
|
||||
.count();
|
||||
if (unfilledLoading > 0) {
|
||||
throw new NflgException(STATE.BusinessError, "还有" + unfilledLoading + "项装车前检测未填写,无法提交");
|
||||
if (unfilledImages > 0) {
|
||||
throw new NflgException(STATE.BusinessError, "还有" + unfilledImages + "项装车前检测未上传图片,无法提交");
|
||||
}
|
||||
|
||||
// 检查整体结果是否填写
|
||||
if (request.getOverallResult() == null) {
|
||||
throw new NflgException(STATE.BusinessError, "请填写装车前整体检测结果");
|
||||
}
|
||||
// 4. 将整体判定结果存入 task_record
|
||||
taskRecordService.lambdaUpdate()
|
||||
.eq(QmsPdiTaskRecord::getId, taskRecord.getId())
|
||||
.set(QmsPdiTaskRecord::getInspectionInspection,
|
||||
request.getOverallResult() != null && request.getOverallResult() ? "合格" : "不合格")
|
||||
.update();
|
||||
|
||||
// 设置检测完成时间,将 inspection_enable 改为 2(已完成)
|
||||
// 5. 设置检测完成时间,状态改为已完成
|
||||
taskRecordService.lambdaUpdate()
|
||||
.eq(QmsPdiTaskRecord::getId, taskRecord.getId())
|
||||
.set(QmsPdiTaskRecord::getDetectionCompletionTime, now)
|
||||
.set(QmsPdiTaskRecord::getInspectionEnable, 2)
|
||||
.update();
|
||||
|
||||
// 检查不合格项
|
||||
// 6. 返回不合格项(只查 type=0/1/3)
|
||||
List<QmsPdiInspectionResults> failedItems = inspectionResultsService.lambdaQuery()
|
||||
.eq(QmsPdiInspectionResults::getTaskId, request.getTaskId())
|
||||
.ne(QmsPdiInspectionResults::getInspectionItemType, 2)
|
||||
.eq(QmsPdiInspectionResults::getInspectionItemResults, false)
|
||||
.list();
|
||||
return failedItems.isEmpty() ? null : failedItems;
|
||||
|
|
@ -300,31 +268,15 @@ public class QmsPdiInspectionResultsControllerService {
|
|||
.filter(r -> Objects.equals(r.getInspectionItemType(), 3))
|
||||
.collect(Collectors.toList()));
|
||||
|
||||
// 构建装车前检测项(含明细)
|
||||
QmsPdiInspectionResults loadingResult = allResults.stream()
|
||||
// 装车前检测项(type=2),查询所有明细
|
||||
List<QmsPdiInspectionResults> loadingResults = allResults.stream()
|
||||
.filter(r -> Objects.equals(r.getInspectionItemType(), 2))
|
||||
.findFirst()
|
||||
.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();
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if (!loadingResults.isEmpty()) {
|
||||
// 批量查 delivery_item
|
||||
java.util.Set<Long> deliveryItemIds = loadingRecords.stream()
|
||||
.map(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemId)
|
||||
java.util.Set<Long> deliveryItemIds = loadingResults.stream()
|
||||
.map(QmsPdiInspectionResults::getInspectionItemId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toSet());
|
||||
java.util.Map<Long, QmsPdiDetectionRulesDeliveryItem> deliveryItemMap = java.util.Map.of();
|
||||
|
|
@ -336,21 +288,24 @@ public class QmsPdiInspectionResultsControllerService {
|
|||
|
||||
// 构建明细列表
|
||||
java.util.Map<Long, QmsPdiDetectionRulesDeliveryItem> finalMap = deliveryItemMap;
|
||||
List<QmsPdiInspectionResultsDetailVO.DeliveryItemDetailVO> detailList = new java.util.ArrayList<>();
|
||||
for (QmsPdiInspectionResultsLoadingRecord lr : loadingRecords) {
|
||||
QmsPdiInspectionResultsDetailVO.DeliveryItemDetailVO detailVO = new QmsPdiInspectionResultsDetailVO.DeliveryItemDetailVO();
|
||||
detailVO.setDeliveryItemId(lr.getDeliveryItemId());
|
||||
detailVO.setDeliveryItemResult(lr.getDeliveryItemResult());
|
||||
List<QmsPdiInspectionResultsDetailVO.LoadingItemDetailVO> detailList = new java.util.ArrayList<>();
|
||||
for (QmsPdiInspectionResults lr : loadingResults) {
|
||||
QmsPdiInspectionResultsDetailVO.LoadingItemDetailVO detailVO = new QmsPdiInspectionResultsDetailVO.LoadingItemDetailVO();
|
||||
detailVO.setDeliveryItemId(lr.getInspectionItemId());
|
||||
|
||||
QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getDeliveryItemId());
|
||||
QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getInspectionItemId());
|
||||
if (di != null) {
|
||||
detailVO.setChecklist(di.getChecklist());
|
||||
}
|
||||
|
||||
// 拆分图片
|
||||
if (lr.getInspectionItemImage() != null && !lr.getInspectionItemImage().isEmpty()) {
|
||||
detailVO.setInspectionItemImage(List.of(lr.getInspectionItemImage().split(",")));
|
||||
}
|
||||
|
||||
detailList.add(detailVO);
|
||||
}
|
||||
loadingItemVO.setDeliveryItemList(detailList);
|
||||
vo.setLoadingItem(loadingItemVO);
|
||||
vo.setLoadingItems(detailList);
|
||||
}
|
||||
|
||||
return vo;
|
||||
|
|
|
|||
|
|
@ -13,14 +13,12 @@ import com.nflg.wms.repository.entity.QmsPdiDetectionRules;
|
|||
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesDeliveryItem;
|
||||
import com.nflg.wms.repository.entity.QmsPdiDetectionRulesStatusItem;
|
||||
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.User;
|
||||
import com.nflg.wms.repository.entity.FileUploadRecord;
|
||||
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesDeliveryItemService;
|
||||
import com.nflg.wms.repository.service.IQmsPdiDetectionRulesService;
|
||||
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.IQmsPdiTaskRecordService;
|
||||
import com.nflg.wms.repository.service.IUserService;
|
||||
|
|
@ -57,9 +55,6 @@ public class QmsPdiTaskRecordControllerService {
|
|||
@Resource
|
||||
private IQmsPdiInspectionResultsService inspectionResultsService;
|
||||
|
||||
@Resource
|
||||
private IQmsPdiInspectionResultsLoadingRecordService loadingRecordService;
|
||||
|
||||
@Resource
|
||||
private IFileUploadRecordService fileUploadRecordService;
|
||||
|
||||
|
|
@ -154,8 +149,8 @@ public class QmsPdiTaskRecordControllerService {
|
|||
vo.setSpecialItems(buildStatusItemPage(record.getId(), 3,
|
||||
request.getSpecialPage(), request.getSpecialSize()));
|
||||
|
||||
// 准备发货(type=2)不分页
|
||||
vo.setLoadingItems(buildLoadingItem(record.getId()));
|
||||
// 装车前检测项(type=2)不分页
|
||||
vo.setLoadingItems(buildLoadingItems(record.getId()));
|
||||
|
||||
return vo;
|
||||
}
|
||||
|
|
@ -237,27 +232,22 @@ public class QmsPdiTaskRecordControllerService {
|
|||
}
|
||||
|
||||
/**
|
||||
* 构建准备发货(装车前)数据(不分页)
|
||||
* 构建装车前检测项列表(不分页)
|
||||
*/
|
||||
private QmsPdiTaskRecordDetailVO.LoadingItemVO buildLoadingItem(Long taskId) {
|
||||
// 查询装车前整体记录(type=2,只有一条)
|
||||
QmsPdiInspectionResults loadingResult = inspectionResultsService.lambdaQuery()
|
||||
private List<QmsPdiTaskRecordDetailVO.LoadingItemDetailVO> buildLoadingItems(Long taskId) {
|
||||
// 查询装车前所有明细(type=2)
|
||||
List<QmsPdiInspectionResults> loadingResults = inspectionResultsService.lambdaQuery()
|
||||
.eq(QmsPdiInspectionResults::getTaskId, taskId)
|
||||
.eq(QmsPdiInspectionResults::getInspectionItemType, 2)
|
||||
.one();
|
||||
|
||||
if (loadingResult == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 查询该任务单下所有装车前检查项明细
|
||||
List<QmsPdiInspectionResultsLoadingRecord> loadingRecords = loadingRecordService.lambdaQuery()
|
||||
.eq(QmsPdiInspectionResultsLoadingRecord::getTaskId, taskId)
|
||||
.list();
|
||||
|
||||
// 批量查关联的 delivery_item
|
||||
Set<Long> deliveryItemIds = loadingRecords.stream()
|
||||
.map(QmsPdiInspectionResultsLoadingRecord::getDeliveryItemId)
|
||||
if (loadingResults.isEmpty()) {
|
||||
return List.of();
|
||||
}
|
||||
|
||||
// 批量查 delivery_item
|
||||
Set<Long> deliveryItemIds = loadingResults.stream()
|
||||
.map(QmsPdiInspectionResults::getInspectionItemId)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toSet());
|
||||
Map<Long, QmsPdiDetectionRulesDeliveryItem> deliveryItemMap = Map.of();
|
||||
|
|
@ -267,29 +257,22 @@ public class QmsPdiTaskRecordControllerService {
|
|||
.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;
|
||||
List<QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO> detailList = new ArrayList<>();
|
||||
for (QmsPdiInspectionResultsLoadingRecord lr : loadingRecords) {
|
||||
QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO detailVO = new QmsPdiTaskRecordDetailVO.DeliveryItemDetailVO();
|
||||
detailVO.setDeliveryItemId(lr.getDeliveryItemId());
|
||||
detailVO.setDeliveryItemResult(lr.getDeliveryItemResult());
|
||||
List<QmsPdiTaskRecordDetailVO.LoadingItemDetailVO> detailList = new ArrayList<>();
|
||||
for (QmsPdiInspectionResults lr : loadingResults) {
|
||||
QmsPdiTaskRecordDetailVO.LoadingItemDetailVO detailVO = new QmsPdiTaskRecordDetailVO.LoadingItemDetailVO();
|
||||
detailVO.setDeliveryItemId(lr.getInspectionItemId());
|
||||
detailVO.setInspectionItemImage(convertImageIdsToVO(lr.getInspectionItemImage()));
|
||||
|
||||
QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getDeliveryItemId());
|
||||
QmsPdiDetectionRulesDeliveryItem di = finalMap.get(lr.getInspectionItemId());
|
||||
if (di != null) {
|
||||
detailVO.setChecklist(di.getChecklist());
|
||||
}
|
||||
|
||||
detailList.add(detailVO);
|
||||
}
|
||||
vo.setDeliveryItemList(detailList);
|
||||
return vo;
|
||||
return detailList;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -34,12 +34,7 @@ public class QmsPdiInspectionResultsSubmitQO {
|
|||
private List<QmsPdiLoadingInspectionItemQO> loadingItems;
|
||||
|
||||
/**
|
||||
* 装车前整体检测结果
|
||||
* 装车前整体检测结果(存入qms_pdi_task_record.inspection_inspection)
|
||||
*/
|
||||
private Boolean overallResult;
|
||||
|
||||
/**
|
||||
* 装车前整体图片/视频文件ID列表
|
||||
*/
|
||||
private List<Long> overallImages;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ public class QmsPdiLoadingInspectionItemQO {
|
|||
private Long id;
|
||||
|
||||
/**
|
||||
* 检验项结果:false=不合格,true=合格
|
||||
* 现场图片/视频文件ID列表
|
||||
*/
|
||||
private Boolean result;
|
||||
private java.util.List<Long> images;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -68,9 +68,9 @@ public class QmsPdiTaskRecordDetailVO {
|
|||
private PageData<StatusItemVO> specialItems;
|
||||
|
||||
/**
|
||||
* 准备发货(inspection_item_type=2,不分页)
|
||||
* 装车前检测项明细列表(inspection_item_type=2,不分页)
|
||||
*/
|
||||
private LoadingItemVO loadingItems;
|
||||
private List<LoadingItemDetailVO> loadingItems;
|
||||
|
||||
/**
|
||||
* 静态/动态/特殊检测项 子VO
|
||||
|
|
@ -152,37 +152,10 @@ public class QmsPdiTaskRecordDetailVO {
|
|||
}
|
||||
|
||||
/**
|
||||
* 准备发货(装车前)子VO
|
||||
* 装车前检测项明细VO
|
||||
*/
|
||||
@Data
|
||||
public static class LoadingItemVO {
|
||||
|
||||
/**
|
||||
* inspection_results.id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 现场图片/视频详情列表(最多10个)
|
||||
*/
|
||||
private List<FileDetailVO> inspectionItemImage;
|
||||
|
||||
/**
|
||||
* 装车前整体结果
|
||||
*/
|
||||
private Boolean inspectionItemResults;
|
||||
|
||||
/**
|
||||
* 装车前检查项明细列表
|
||||
*/
|
||||
private List<DeliveryItemDetailVO> deliveryItemList;
|
||||
}
|
||||
|
||||
/**
|
||||
* 装车前检查项明细子VO
|
||||
*/
|
||||
@Data
|
||||
public static class DeliveryItemDetailVO {
|
||||
public static class LoadingItemDetailVO {
|
||||
|
||||
/**
|
||||
* 发货检查项ID
|
||||
|
|
@ -195,8 +168,8 @@ public class QmsPdiTaskRecordDetailVO {
|
|||
private String checklist;
|
||||
|
||||
/**
|
||||
* 该项的检测结果
|
||||
* 现场图片/视频详情列表
|
||||
*/
|
||||
private Boolean deliveryItemResult;
|
||||
private List<FileDetailVO> inspectionItemImage;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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> {
|
||||
}
|
||||
|
|
@ -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> {
|
||||
}
|
||||
|
|
@ -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 {
|
||||
}
|
||||
Loading…
Reference in New Issue