From 1ca5584d7e3200a9af65a099bd26d3593e2ba702 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期四, 07 五月 2026 14:36:08 +0800
Subject: [PATCH] 迁移pro
---
src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java | 90 +++++++++++++++++++++++++++++---------------
1 files changed, 59 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
index 90c5e5c..9973d98 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOrderServiceImpl.java
@@ -14,8 +14,10 @@
import com.ruoyi.basic.utils.FileUtil;
import com.ruoyi.common.constant.StorageAttachmentConstants;
import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.production.bean.dto.ProductionOperationTaskDto;
import com.ruoyi.production.bean.dto.ProductionOrderDto;
import com.ruoyi.production.bean.vo.ProductionBomStructureVo;
+import com.ruoyi.production.bean.vo.ProductionOperationTaskVo;
import com.ruoyi.production.bean.vo.ProductionOrderPickVo;
import com.ruoyi.production.bean.vo.ProductionOrderVo;
import com.ruoyi.production.bean.vo.ProductionPlanVo;
@@ -681,29 +683,33 @@
}
@Override
- public ProductionOrderWorkOrderDetailVo getWorkOrderReportInspectDetail(Long productionOrderId) {
- if (productionOrderId == null) {
- throw new ServiceException("productionOrderId can not be null");
- }
+ public ProductionOrderWorkOrderDetailVo getWorkOrderReportInspectDetail(ProductionOrderDto dto) {
+ Long productionOrderId = resolveProductionOrderId(dto);
ProductionOrderVo orderInfo = getProductionOrderInfo(productionOrderId);
if (orderInfo == null) {
- throw new ServiceException("production order not found");
+ throw new ServiceException("鐢熶骇璁㈠崟涓嶅瓨鍦�");
}
ProductionOrderWorkOrderDetailVo detailVo = new ProductionOrderWorkOrderDetailVo();
detailVo.setProductionOrder(orderInfo);
- List<ProductionOperationTask> workOrderList = productionOperationTaskMapper.selectList(
- Wrappers.<ProductionOperationTask>lambdaQuery()
- .eq(ProductionOperationTask::getProductionOrderId, productionOrderId)
- .orderByAsc(ProductionOperationTask::getId));
+ ProductionOperationTaskDto taskQuery = new ProductionOperationTaskDto();
+ taskQuery.setProductionOrderId(productionOrderId);
+ IPage<ProductionOperationTaskVo> workOrderPage = productionOperationTaskMapper.pageProductionOperationTask(
+ new Page<ProductionOperationTaskVo>(1, -1), taskQuery);
+ List<ProductionOperationTaskVo> workOrderList = workOrderPage == null || workOrderPage.getRecords() == null
+ ? Collections.emptyList()
+ : workOrderPage.getRecords().stream()
+ .filter(Objects::nonNull)
+ .sorted(Comparator.comparing(ProductionOperationTaskVo::getId, Comparator.nullsLast(Comparator.naturalOrder())))
+ .collect(Collectors.toList());
if (workOrderList == null || workOrderList.isEmpty()) {
detailVo.setWorkOrderList(Collections.emptyList());
return detailVo;
}
List<Long> workOrderIdList = workOrderList.stream()
- .map(ProductionOperationTask::getId)
+ .map(ProductionOperationTaskVo::getId)
.filter(Objects::nonNull)
.collect(Collectors.toList());
List<ProductionProductMain> reportMainList = workOrderIdList.isEmpty()
@@ -712,12 +718,12 @@
Wrappers.<ProductionProductMain>lambdaQuery()
.in(ProductionProductMain::getProductionOperationTaskId, workOrderIdList)
.orderByAsc(ProductionProductMain::getId));
- Map<Long, List<ProductionProductMain>> reportMainMap = new LinkedHashMap<>();
+ Map<Long, List<ProductionProductMain>> reportMainByWorkOrderMap = new LinkedHashMap<>();
for (ProductionProductMain reportMain : reportMainList) {
if (reportMain == null || reportMain.getProductionOperationTaskId() == null) {
continue;
}
- reportMainMap.computeIfAbsent(reportMain.getProductionOperationTaskId(), k -> new ArrayList<>()).add(reportMain);
+ reportMainByWorkOrderMap.computeIfAbsent(reportMain.getProductionOperationTaskId(), key -> new ArrayList<>()).add(reportMain);
}
List<Long> reportMainIdList = reportMainList.stream()
@@ -766,7 +772,7 @@
if (inspect == null || inspect.getProductMainId() == null) {
continue;
}
- inspectMap.computeIfAbsent(inspect.getProductMainId(), k -> new ArrayList<>()).add(inspect);
+ inspectMap.computeIfAbsent(inspect.getProductMainId(), key -> new ArrayList<>()).add(inspect);
}
List<Long> inspectIdList = inspectList.stream()
@@ -799,42 +805,44 @@
}
List<ProductionOrderWorkOrderDetailVo.WorkOrderDetail> workOrderDetailList = new ArrayList<>();
- for (ProductionOperationTask workOrder : workOrderList) {
+ for (ProductionOperationTaskVo workOrder : workOrderList) {
ProductionOrderWorkOrderDetailVo.WorkOrderDetail workOrderDetail = new ProductionOrderWorkOrderDetailVo.WorkOrderDetail();
workOrderDetail.setWorkOrder(workOrder);
- List<ProductionProductMain> workOrderReportMainList = reportMainMap.get(workOrder.getId());
- if (workOrderReportMainList == null || workOrderReportMainList.isEmpty()) {
+ List<ProductionProductMain> workOrderReportMainList = reportMainByWorkOrderMap.getOrDefault(workOrder.getId(), Collections.emptyList());
+ if (workOrderReportMainList.isEmpty()) {
workOrderDetail.setReportList(Collections.emptyList());
+ workOrderDetail.setInspectList(Collections.emptyList());
workOrderDetailList.add(workOrderDetail);
continue;
}
List<ProductionOrderWorkOrderDetailVo.ReportDetail> reportDetailList = new ArrayList<>();
+ List<ProductionOrderWorkOrderDetailVo.InspectDetail> inspectDetailList = new ArrayList<>();
for (ProductionProductMain reportMain : workOrderReportMainList) {
Long reportMainId = reportMain.getId();
+
ProductionOrderWorkOrderDetailVo.ReportDetail reportDetail = new ProductionOrderWorkOrderDetailVo.ReportDetail();
reportDetail.setReportMain(reportMain);
reportDetail.setReportOutputList(reportOutputMap.getOrDefault(reportMainId, Collections.emptyList()));
reportDetail.setReportParamList(reportParamMap.getOrDefault(reportMainId, Collections.emptyList()));
-
- List<QualityInspect> reportInspectList = inspectMap.get(reportMainId);
- if (reportInspectList == null || reportInspectList.isEmpty()) {
- reportDetail.setInspectList(Collections.emptyList());
- } else {
- List<ProductionOrderWorkOrderDetailVo.InspectDetail> inspectDetailList = new ArrayList<>();
- for (QualityInspect inspect : reportInspectList) {
- ProductionOrderWorkOrderDetailVo.InspectDetail inspectDetail = new ProductionOrderWorkOrderDetailVo.InspectDetail();
- inspectDetail.setInspect(inspect);
- inspectDetail.setInspectParamList(inspectParamMap.getOrDefault(inspect.getId(), Collections.emptyList()));
- inspectDetail.setInspectFileList(inspectFileMap.getOrDefault(inspect.getId(), Collections.emptyList()));
- inspectDetailList.add(inspectDetail);
- }
- reportDetail.setInspectList(inspectDetailList);
- }
reportDetailList.add(reportDetail);
+
+ List<QualityInspect> reportInspectList = inspectMap.getOrDefault(reportMainId, Collections.emptyList());
+ for (QualityInspect inspect : reportInspectList) {
+ ProductionOrderWorkOrderDetailVo.InspectDetail inspectDetail = new ProductionOrderWorkOrderDetailVo.InspectDetail();
+ inspectDetail.setReportId(reportMainId);
+ inspectDetail.setReportNo(reportMain.getProductNo());
+ inspectDetail.setReportMain(reportMain);
+ inspectDetail.setInspect(inspect);
+ inspectDetail.setInspectParamList(inspectParamMap.getOrDefault(inspect.getId(), Collections.emptyList()));
+ inspectDetail.setInspectFileList(inspectFileMap.getOrDefault(inspect.getId(), Collections.emptyList()));
+ inspectDetailList.add(inspectDetail);
+ }
}
+
workOrderDetail.setReportList(reportDetailList);
+ workOrderDetail.setInspectList(inspectDetailList);
workOrderDetailList.add(workOrderDetail);
}
@@ -842,6 +850,26 @@
return detailVo;
}
+ private Long resolveProductionOrderId(ProductionOrderDto dto) {
+ if (dto == null) {
+ throw new ServiceException("璇蜂紶鍏ョ敓浜ц鍗旾D鎴栫敓浜ц鍗曞彿");
+ }
+ if (dto.getId() != null) {
+ return dto.getId();
+ }
+ if (dto.getNpsNo() == null || dto.getNpsNo().trim().isEmpty()) {
+ throw new ServiceException("璇蜂紶鍏ョ敓浜ц鍗旾D鎴栫敓浜ц鍗曞彿");
+ }
+ ProductionOrder productionOrder = baseMapper.selectOne(
+ Wrappers.<ProductionOrder>lambdaQuery()
+ .eq(ProductionOrder::getNpsNo, dto.getNpsNo().trim())
+ .last("limit 1"));
+ if (productionOrder == null || productionOrder.getId() == null) {
+ throw new ServiceException("鐢熶骇璁㈠崟涓嶅瓨鍦�");
+ }
+ return productionOrder.getId();
+ }
+
@Override
public List<ProductionOrderPickVo> pick(Long productionOrderId) {
if (productionOrderId == null) {
--
Gitblit v1.9.3