From c6015b2acba3e4a60045f7f3d275618cc9e554e7 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 02 十一月 2026 17:41:17 +0800
Subject: [PATCH] fix(production): 报工参数补全过滤空工单,修复报工台账查询报错
---
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java | 12 +++++++++---
1 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
index 2e1e578..8b3a072 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -155,6 +155,8 @@
Map<Long, Long> mainIdToTaskIdMap = mainList.stream()
.filter(Objects::nonNull)
.filter(item -> item.getId() != null)
+ // 鍘嗗彶鎶ュ伐鍙兘娌℃寕宸ュ崟锛宼oMap 涓嶅厑璁� null 鍊硷紝缂哄伐鍗曠殑鐩存帴璺宠繃
+ .filter(item -> item.getProductionOperationTaskId() != null)
.collect(Collectors.toMap(ProductionProductMain::getId,
ProductionProductMain::getProductionOperationTaskId, (left, right) -> left));
Set<Long> taskIdSet = mainIdToTaskIdMap.values().stream()
@@ -175,6 +177,8 @@
Map<Long, Long> taskIdToRoutingOperationIdMap = taskList.stream()
.filter(Objects::nonNull)
.filter(item -> item.getId() != null)
+ // 鍚屼笂锛氬伐鍗曟病鍏宠仈璁㈠崟宸ュ簭鏃惰烦杩囷紝閬垮厤 toMap 绌哄�� NPE
+ .filter(item -> item.getProductionOrderRoutingOperationId() != null)
.collect(Collectors.toMap(ProductionOperationTask::getId,
ProductionOperationTask::getProductionOrderRoutingOperationId, (left, right) -> left));
Set<Long> routingOperationIdSet = taskIdToRoutingOperationIdMap.values().stream()
@@ -378,8 +382,10 @@
if (ObjectUtils.isNull(productionOrder.getStartTime())) {
productionOrder.setStartTime(LocalDateTime.now());
}
- // 璁㈠崟鐘舵�佺敱鏈�鍚庝竴閬撳伐搴忕殑鍚堟牸浜у嚭鎺ㄥ姩锛岄伩鍏嶄腑闂村伐搴忔彁鍓嶅畬宸ャ��
- productionOrder.setStatus(ProductOrderStatusEnum.RUNNING.getCode());
+ // 浠呭緟寮�濮嬬姸鎬佹墠鎺ㄨ繘鍒拌繘琛屼腑锛岄伩鍏嶉潪鏈亾宸ュ簭鎶ュ伐鏃惰鐩栧凡瀹屾垚鐘舵�併��
+ if (ProductOrderStatusEnum.WAIT.getCode().equals(productionOrder.getStatus())) {
+ productionOrder.setStatus(ProductOrderStatusEnum.RUNNING.getCode());
+ }
if (isLastOperation) {
productionOrder.setCompleteQuantity(defaultDecimal(productionOrder.getCompleteQuantity()).add(productQty));
if (productionOrder.getQuantity() != null
@@ -401,7 +407,7 @@
productionAccount.setSchedulingUserId(user == null ? null : user.getUserId());
productionAccount.setSchedulingUserName(user == null ? dto.getUserName() : user.getNickName());
productionAccount.setFinishedNum(productQty);
- productionAccount.setWorkHours(workHours);
+ productionAccount.setWorkHours(technologyOperation != null ? technologyOperation.getSalaryQuota() : null);
productionAccount.setTechnologyOperationName(technologyOperation == null ? null : technologyOperation.getName());
productionAccount.setSchedulingDate(LocalDateTime.now());
productionAccountMapper.insert(productionAccount);
--
Gitblit v1.9.3