From 0f4477b271b03277b79ad6c28240dfa841b7c33a Mon Sep 17 00:00:00 2001
From: 1 <1@123>
Date: 星期二, 10 三月 2026 10:37:34 +0800
Subject: [PATCH] lsh#

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/ReceiveMsgServiceImpl.java |   94 ++++++++++++++++++++++++++++++++---------------
 1 files changed, 64 insertions(+), 30 deletions(-)

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 442ea12..52fb504 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
@@ -19,10 +19,7 @@
 import com.vincent.rsf.server.common.domain.PageParam;
 import com.vincent.rsf.server.manager.controller.dto.LocStockDto;
 import com.vincent.rsf.server.manager.controller.dto.OrderOutItemDto;
-import com.vincent.rsf.server.manager.controller.params.OrderOutTaskParam;
-import com.vincent.rsf.server.manager.controller.params.OutStockToTaskParams;
-import com.vincent.rsf.server.manager.controller.params.PakinItem;
-import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
+import com.vincent.rsf.server.manager.controller.params.*;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.enums.*;
 import com.vincent.rsf.server.manager.service.*;
@@ -220,7 +217,7 @@
                 BeanUtils.copyProperties(matnr, mat);
                 mat.setCode(matnr.getMatnr()).setName(matnr.getMaktx());
                 if (!Objects.isNull(matnr.getGroupName())) {
-                    MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnr.getGroupName()), false);
+                    MatnrGroup matnrGroup = matnrGroupService.getOne(new LambdaQueryWrapper<MatnrGroup>().eq(MatnrGroup::getName, matnr.getGroupName()).last("limit 1"), false);
                     if (Objects.isNull(matnrGroup)) {
                         mat.setGroupCode(matnrGroup.getCode()).setGroupId(matnrGroup.getId());
                     }
@@ -243,14 +240,14 @@
     @Override
     public R queryOrderStatus(QueryOrderParam queryParams) {
         WkOrder wkOrders = asnOrderService.getOne(new LambdaQueryWrapper<WkOrder>()
-                .eq(WkOrder::getPoCode, queryParams.getOrderNo()));
+                .eq(WkOrder::getPoCode, queryParams.getOrderNo()).last("limit 1"));
         if (Objects.isNull(wkOrders)) {
             Map<String, Object> map = new HashMap<>();
             map.put("exceStatus", "-1");
             return R.ok("鍗曟嵁涓嶅瓨鍦� 锛侊紒").add(map);
         }
 
-        AsnOrderLog orderLog = asnOrderLogService.getOne(new LambdaQueryWrapper<AsnOrderLog>().eq(AsnOrderLog::getCode, queryParams.getOrderNo()));
+        AsnOrderLog orderLog = asnOrderLogService.getOne(new LambdaQueryWrapper<AsnOrderLog>().eq(AsnOrderLog::getCode, queryParams.getOrderNo()).last("limit 1"));
         if (!Objects.isNull(orderLog)) {
             Map<String, Object> map = new HashMap<>();
             map.put("exceStatus", "4");
@@ -394,7 +391,7 @@
             if (Objects.isNull(companys.getCode())) {
                 throw new CoolException("浼佷笟缂栫爜涓嶈兘涓虹┖锛侊紒");
             }
-            Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()));
+            Companys one = companysService.getOne(new LambdaQueryWrapper<Companys>().eq(Companys::getName, param.getName()).last("limit 1"));
             if (Objects.isNull(one)) {
                 String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_COMPANYS_CODE, null);
                 companys.setCode(ruleCode);
@@ -421,6 +418,9 @@
     public R syncCheckOrder(List<SyncOrderParams> syncOrders, Long loginUserId) {
         if (!syncOrders.isEmpty()) {
             syncOrders.forEach(syncOrder -> {
+                if (!syncOrder.getWkType().matches("\\d+")){
+                    syncOrder.setWkType(OrderWorkType.getOrderTypeUpdate(syncOrder.getWkType()));
+                }
                 WkOrder wkOrder = new WkOrder(syncOrder);
                 DictData one = dictDataService.getOne(new LambdaQueryWrapper<DictData>().eq(DictData::getDictTypeCode, DictTypeCode.DICT_SYS_BUSINESS_TYPE)
                         .eq(DictData::getValue, syncOrder.getWkType()), false);
@@ -612,30 +612,38 @@
     public void asyncOutboundExecutionWcs(String stationId ,Long orderId, Long loginUserId) {
         try {
 
-            OrderOutTaskParam orderOutTaskParam = new OrderOutTaskParam();
-            orderOutTaskParam.setOrderId(orderId);
-            orderOutTaskParam.setWaveId(16L);
-            List<OrderOutItemDto> orderOutTaskItemAuto = outStockService.getOrderOutTaskItemAuto(orderOutTaskParam);
+            GenWaveParams genWaveParams = new GenWaveParams();
+            List<Long> ids = new ArrayList<>();
+            ids.add(orderId);
+            genWaveParams.setIds(ids);
+            genWaveParams.setWaveRuleId(16L);
+//            OrderOutTaskParam orderOutTaskParam = new OrderOutTaskParam();
+//            orderOutTaskParam.setOrderId(orderId);
+//            orderOutTaskParam.setWaveId(16L);
+//            List<OrderOutItemDto> orderOutTaskItemAuto = outStockService.getOrderOutTaskItemAuto(orderOutTaskParam);
+//
+//            List<OutStockToTaskParams> tasks = new ArrayList<>();
+//            for (OrderOutItemDto orderOutItemDto : orderOutTaskItemAuto){
+//                for (LocItem locItem : orderOutItemDto.getLocItemList()) {
+//                    OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto,locItem);
+//                    outStockToTaskParams.setId(locItem.getId());
+//                    outStockToTaskParams.setOutQty(locItem.getOutQty());
+//                    outStockToTaskParams.setLocCode(locItem.getLocCode());
+//                    outStockToTaskParams.setBarcode(locItem.getBarcode());
+//                    outStockToTaskParams.setSiteNo(stationId);
+//                    tasks.add(outStockToTaskParams);
+//                }
+//            }
+//            if (tasks.isEmpty()){
+//                log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
+//                return;
+//            }
+//            outStockService.genOutStockTask(tasks, loginUserId, orderId);
+            R r = outStockService.generateWavesOrderAuto(genWaveParams, stationId);
 
-            List<OutStockToTaskParams> tasks = new ArrayList<>();
-            for (OrderOutItemDto orderOutItemDto : orderOutTaskItemAuto){
-                OutStockToTaskParams outStockToTaskParams = new OutStockToTaskParams(orderOutItemDto);
-                outStockToTaskParams.setId(orderOutItemDto.getLocItem().getId());
-                outStockToTaskParams.setOutQty(orderOutItemDto.getOutQty());
-                outStockToTaskParams.setLocCode(orderOutItemDto.getLocItem().getLocCode());
-                outStockToTaskParams.setBarcode(orderOutItemDto.getLocItem().getBarcode());
-                outStockToTaskParams.setSiteNo(stationId);
-                tasks.add(outStockToTaskParams);
-            }
-            if (tasks.isEmpty()){
-                log.warn("璁㈠崟ID {} 娌℃湁鎵惧埌鍙嚭搴撴槑缁嗭紝璺宠繃鑷姩鍑哄簱", orderId);
-                return;
-            }
-            outStockService.genOutStockTask(tasks, loginUserId, orderId);
-
-            log.info("璁㈠崟ID {} 鑷姩鍑哄簱锛屽叡澶勭悊 {} 涓槑缁�", orderId, tasks.size());
+            log.info("璁㈠崟ID {} 鑷姩杞尝娆�", orderId);
         } catch (Exception e) {
-            log.error("璁㈠崟ID {} 鑷姩鍑哄簱: {}", orderId, e.getMessage(), e);
+            log.error("璁㈠崟ID {} 鑷姩杞尝娆�: {}", orderId, e.getMessage(), e);
         }
     }
 
@@ -1119,6 +1127,32 @@
                 }
             }
 
+            // 浠撳簱缂栫爜杩囨护
+            if (StringUtils.isNotBlank(condition.getWareHouseAreaId())) {
+                String wareHouseAreaId = condition.getWareHouseAreaId();
+                LambdaQueryWrapper<WarehouseAreas> whWrapper = new LambdaQueryWrapper<>();
+                whWrapper.eq(WarehouseAreas::getCode, wareHouseAreaId);
+                // 璋冪敤WarehouseService鏌ヨ浠撳簱淇℃伅锛堝鐢⊿ervice灞傛柟娉曪級
+                List<WarehouseAreas> warehouses = warehouseAreasService.list(whWrapper);
+                if (!warehouses.isEmpty()) {
+                    Long targetWarehouseId = warehouses.get(0).getId();
+                    // 杩囨护搴撲綅锛屽彧淇濈暀鐩爣浠撳簱鐨勫簱浣�
+                    locMap = locMap.entrySet().stream()
+                            .filter(entry -> Objects.equals(entry.getValue().getAreaId(), targetWarehouseId))
+                            .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
+
+                    // 杩囨护locItems锛屽彧淇濈暀鐩爣浠撳簱鐨�
+                    Set<Long> validLocIds = locMap.keySet();
+                    locItems = locItems.stream()
+                            .filter(item -> item.getLocId() != null && validLocIds.contains(item.getLocId()))
+                            .collect(Collectors.toList());
+
+                    List<Long> warehouseAreaIds = Collections.singletonList(targetWarehouseId);
+                } else {
+                    return R.ok().add(new ArrayList<>());
+                }
+            }
+
             // 璋冪敤WarehouseService鏌ヨ浠撳簱淇℃伅锛堝鐢⊿ervice灞傛柟娉曪級
             Map<Long, Warehouse> warehouseMap = new HashMap<>();
             if (!warehouseIds.isEmpty()) {

--
Gitblit v1.9.1