From 024504a3933e8f2f86e80383e61fa574524a0d28 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 三月 2026 16:39:52 +0800
Subject: [PATCH] logo修改 +入库完成校验
---
rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java | 46 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 46 insertions(+), 0 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
index db47253..a647b93 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java
@@ -34,7 +34,10 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.util.*;
+import java.util.stream.Collectors;
@Service
public class PdaCheckOrderServiceImpl implements PdaCheckOrderService {
@@ -62,6 +65,12 @@
private ReportMsgService reportMsgService;
@Autowired
private UserService userService;
+
+ @Autowired
+ private CheckOrderItemService checkOrderItemService;
+
+ @Autowired
+ private CheckOrderService checkOrderService;
@Override
@@ -202,6 +211,43 @@
throw new CoolException("鏇存柊宸紓鍗曞け璐�");
}
+ // 鎸夌洏鐐瑰崟鏄庣粏姹囨�诲疄鐩樻暟閲忓苟鍥炲啓
+ Set<Long> taskItemIds = diffItems.stream().map(CheckDiffItem::getTaskItemId).filter(Objects::nonNull).collect(Collectors.toSet());
+ if (!taskItemIds.isEmpty()) {
+ List<TaskItem> taskItems = taskItemService.listByIds(taskItemIds);
+ Map<Long, BigDecimal> orderItemIdToCheckQty = new HashMap<>();
+ for (CheckDiffItem di : diffItems) {
+ if (di.getTaskItemId() == null) {
+ continue;
+ }
+ TaskItem ti = taskItems.stream().filter(t -> t.getId().equals(di.getTaskItemId())).findFirst().orElse(null);
+ if (ti == null || ti.getOrderItemId() == null) {
+ continue;
+ }
+ Double cq = di.getCheckQty() != null ? di.getCheckQty() : 0.0;
+ orderItemIdToCheckQty.merge(ti.getOrderItemId(), BigDecimal.valueOf(cq), BigDecimal::add);
+ }
+ for (Map.Entry<Long, BigDecimal> e : orderItemIdToCheckQty.entrySet()) {
+ double workQty = e.getValue().setScale(6, RoundingMode.HALF_UP).doubleValue();
+ if (!checkOrderItemService.update(new LambdaUpdateWrapper<WkOrderItem>()
+ .eq(WkOrderItem::getId, e.getKey())
+ .set(WkOrderItem::getWorkQty, workQty))) {
+ throw new CoolException("鐩樼偣鍗曟槑缁嗗疄鐩樻暟閲忔洿鏂板け璐�");
+ }
+ }
+ if (checkDiff.getOrderId() != null) {
+ List<WkOrderItem> orderItems = checkOrderItemService.list(new LambdaQueryWrapper<WkOrderItem>().eq(WkOrderItem::getOrderId, checkDiff.getOrderId()));
+ BigDecimal orderWorkQty = orderItems.stream()
+ .map(oi -> oi.getWorkQty() != null ? BigDecimal.valueOf(oi.getWorkQty()) : BigDecimal.ZERO)
+ .reduce(BigDecimal.ZERO, BigDecimal::add);
+ if (!checkOrderService.update(new LambdaUpdateWrapper<WkOrder>()
+ .eq(WkOrder::getId, checkDiff.getOrderId())
+ .set(WkOrder::getWorkQty, orderWorkQty.setScale(6, RoundingMode.HALF_UP).doubleValue()))) {
+ throw new CoolException("鐩樼偣鍗曚富琛ㄥ疄鐩樻暟閲忔洿鏂板け璐�");
+ }
+ }
+ }
+
task.setTaskStatus(TaskStsType.COMPLETE_OUT.id);
task.setUpdateBy(loginUserId);
task.setUpdateTime(new Date());
--
Gitblit v1.9.1