From b360cb8bbd470a78fca1f576536b5e09ca5e9d43 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 三月 2026 11:34:12 +0800
Subject: [PATCH] bug修复

---
 rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java         |    3 +
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/PdaCheckOrderServiceImpl.java |   46 +++++++++++++++++++++++
 rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderLog.java                |    1 
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java    |    2 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java     |    2 
 rsf-admin/src/i18n/zh.js                                                                       |    6 +++
 rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java |    6 +++
 rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx                               |    2 
 8 files changed, 64 insertions(+), 4 deletions(-)

diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js
index 76d166f..140789d 100644
--- a/rsf-admin/src/i18n/zh.js
+++ b/rsf-admin/src/i18n/zh.js
@@ -5,7 +5,12 @@
     hello: '浣犲ソ涓栫晫',
     resources: {
         config: { name: '閰嶇疆鍙傛暟' },
+        asnOrderItem: { name: '鏀惰揣鏄庣粏' },
+        outStockItem: { name: '鍑哄簱鍗曟槑缁�' },
     },
+    // 鎵佸钩 key锛屼緵閮ㄥ垎 i18n 鎸夊瓧绗︿覆鏌ユ壘璧勬簮鏍囬锛岄伩鍏嶆樉绀� Asnorder/Outstock
+    'resources.asnOrderItem.name': '鏀惰揣鏄庣粏',
+    'resources.outStockItem.name': '鍑哄簱鍗曟槑缁�',
     common: {
         response: {
             success: "鎿嶄綔鎴愬姛",
@@ -1440,6 +1445,7 @@
             bulk_actions: '%{smart_count} 鏉¤閫変腑 |||| %{smart_count} 鏉¤閫変腑',
         },
         page: {
+            edit: '%{name}',
             empty_with_filters: '浣跨敤褰撳墠杩囨护鏉′欢鏈壘鍒扮粨鏋溿��',
             loading: '鍔犺浇涓�',
         },
diff --git a/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx b/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx
index c708e72..f1f8399 100644
--- a/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx
+++ b/rsf-admin/src/page/statistics/stockManage/WarehouseStockList.jsx
@@ -230,7 +230,7 @@
                     rowClick={false}
                     expand={false}
                     expandSingle={true}
-                    omit={['id', 'createTime', 'locId', 'spec', 'model', 'locCode', 'orderId', 'orderItemId', 'matnrId', 'splrBatch', 'createBy', 'memo', 'fieldsIndex', 'updateBy$']}
+                    omit={['id', 'createTime', 'locId', 'locCode', 'orderId', 'orderItemId', 'matnrId', 'splrBatch', 'createBy', 'memo', 'fieldsIndex', 'updateBy$']}
                 >
                     {columns.map((column) => column)}
                 </StyledDatagrid>}
diff --git a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java
index 89571c8..cf312d1 100644
--- a/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java
+++ b/rsf-open-api/src/main/java/com/vincent/rsf/openApi/service/impl/WmsErpServiceImpl.java
@@ -177,6 +177,9 @@
         } else if (params.getCreateTime() != null) {
             m.put("arrTime", params.getCreateTime());
         }
+        if (params.getCreateTime() != null) {
+            m.put("createTime", params.getCreateTime());
+        }
         return m;
     }
 
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java
index 2573e5e..260ffbb 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/controller/erp/params/SyncOrderParams.java
@@ -51,6 +51,12 @@
     @JsonDeserialize(using = FlexibleDateDeserializer.class)
     private Date arrTime;
 
+    @ApiModelProperty("鍒涘缓鏃堕棿锛孍RP 浼犲垯浣滀负閫氱煡鍗曞垱寤烘椂闂�")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonDeserialize(using = FlexibleDateDeserializer.class)
+    private Date createTime;
+
     @ApiModelProperty("鍗曟嵁鏄庣粏淇℃伅")
     private List<SyncOrdersItem> orderItems;
 }
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());
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
index 6d8b18f..a1b887c 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java
@@ -510,7 +510,7 @@
                             .setArrTime(syncOrder.getArrTime())
                             .setStationId(syncOrder.getStationId())
                             .setId(null)
-                            .setCreateTime(new Date())
+                            .setCreateTime(syncOrder.getCreateTime() != null ? syncOrder.getCreateTime() : new Date())
                             .setUpdateTime(new Date())
                             .setCreateBy(loginUserId)
                             .setUpdateBy(loginUserId);
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderLog.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderLog.java
index cd0bd92..3b05f11 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderLog.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/entity/AsnOrderLog.java
@@ -257,7 +257,6 @@
         }
         return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(this.arrTime);
     }
-
     public String getRleStatus$(){
         if (null == this.rleStatus){ return null; }
         switch (this.rleStatus){
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
index ebd6656..87797e9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AsnOrderLogSchedule.java
@@ -72,7 +72,7 @@
      * @description 鍒犻櫎宸插畬鎴愯鍗曞姞鍏og琛�
      * @time 2025/3/19 19:09
      */
-    @Scheduled(cron = "0 0 5 * * ?")
+    @Scheduled(cron = "0 */1 * * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void InStockToLog() {
         List<WkOrder> wkOrders = asnOrderService.list(new LambdaQueryWrapper<WkOrder>()

--
Gitblit v1.9.1