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 | 63 +++++++++++++++++++++++++++++--
1 files changed, 58 insertions(+), 5 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 946f9df..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
@@ -28,12 +28,16 @@
import com.vincent.rsf.server.system.service.impl.FieldsItemServiceImpl;
import com.vincent.rsf.server.system.service.impl.UserServiceImpl;
import com.vincent.rsf.server.system.utils.SerialRuleUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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 {
@@ -61,6 +65,12 @@
private ReportMsgService reportMsgService;
@Autowired
private UserService userService;
+
+ @Autowired
+ private CheckOrderItemService checkOrderItemService;
+
+ @Autowired
+ private CheckOrderService checkOrderService;
@Override
@@ -199,6 +209,43 @@
checkDiff.setExceStatus(CheckDiffExceStatus.CHECK_DIFF_EXCE_STATUS_HOLD.val).setCheckQty(sum);
if (!checkDiffService.updateById(checkDiff)) {
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);
@@ -350,11 +397,17 @@
.setMaktx(matnr.getName())
.setAnfme(item.getCheckQty());
- FieldsItem fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getValue, item.getFieldsIndex()).last("limit 1"));
- if (Objects.isNull(fieldsItem)) {
- throw new CoolException("褰撳墠绁ㄥ彿涓嶅瓨鍦ㄥ簱瀛樹腑锛岃鎷垮嚭鍚庨噸鏂板叆搴擄紒锛�");
+ // 绁ㄥ彿鏆備笉浣跨敤锛屼笉鏍¢獙绁ㄥ彿鏄惁瀛樺湪
+ FieldsItem fieldsItem = null;
+ if (StringUtils.isNotBlank(item.getFieldsIndex())) {
+ fieldsItem = fieldsItemService.getOne(new LambdaQueryWrapper<FieldsItem>().eq(FieldsItem::getValue, item.getFieldsIndex()).last("limit 1"));
+ // if (Objects.isNull(fieldsItem)) {
+ // throw new CoolException("褰撳墠绁ㄥ彿涓嶅瓨鍦ㄥ簱瀛樹腑锛岃鎷垮嚭鍚庨噸鏂板叆搴擄紒锛�");
+ // }
}
- taskItem.setFieldsIndex(fieldsItem.getUuid());
+ if (fieldsItem != null) {
+ taskItem.setFieldsIndex(fieldsItem.getUuid());
+ }
taskItems.add(taskItem);
});
@@ -463,7 +516,7 @@
.setPDQty(taskItem.getAnfme())
.setEditUser(nickName)
.setEditDate(taskItem.getUpdateTime())
- .setGoodsNO(fields.get("crushNo"))
+ // .setGoodsNO(fields.get("crushNo")) // 绁ㄥ彿鏆備笉浣跨敤
.setIsBad(0 + "")
.setMemoDtl(taskItem.getMemo());
--
Gitblit v1.9.1