pdi功能修改
This commit is contained in:
parent
8f25bf27f2
commit
0510c711a9
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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=0、1或3)
|
* 填写动静态/特殊检查项内容(inspection_item_type=0、1或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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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