From 37467bf7d119ef9b599f1c19b869d046d730b7cb Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期日, 27 四月 2025 18:27:56 +0800
Subject: [PATCH] 修改优化   1. 波次生成修改优化    2. 出库库位查找 优化

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java |   82 ++++++++++++++++++++++++++++++++++++++--
 1 files changed, 77 insertions(+), 5 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
index 198b8f1..33a6fb9 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java
@@ -17,6 +17,7 @@
 import com.vincent.rsf.server.common.utils.CommonUtil;
 import com.vincent.rsf.server.common.utils.FieldsUtils;
 import com.vincent.rsf.server.common.utils.JwtUtil;
+import com.vincent.rsf.server.manager.controller.params.GenerateTaskParams;
 import com.vincent.rsf.server.manager.controller.params.IsptItemsParams;
 import com.vincent.rsf.server.manager.controller.params.WaitPakinParam;
 import com.vincent.rsf.server.manager.entity.*;
@@ -123,6 +124,8 @@
     private LocAreaRelaMapper locAreaRelaMapper;
     @Autowired
     private LocAreaMapper locAreaMapper;
+    @Autowired
+    private DeviceSiteMapper deviceSiteMapper;
 
     /**
      * @author Ryan
@@ -224,7 +227,7 @@
         }
         //TODO /**鏀惰揣鏁伴噺绱姞锛�1. 浼氬嚭瓒呮敹鎯呭喌 2. 浼氭湁鏀惰揣涓嶈冻鎯呭喌*/
         Double rcptedQty = asnOrder.getQty() + receiptQty;
-        asnOrder.setQty(rcptedQty).setExceStatus(Short.parseShort(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val));
+        asnOrder.setQty(rcptedQty).setExceStatus(AsnExceStatus.ASN_EXCE_STATUS_EXCE_ING.val);
 
         if (!asnOrderMapper.updateById(asnOrder)) {
             throw new CoolException("宸叉敹璐ф暟閲忎慨鏀瑰け璐ワ紒锛�");
@@ -245,6 +248,7 @@
 //            }
             AsnOrderItem orderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>()
                     .eq(AsnOrderItem::getAsnCode, asnCode)
+                            .eq(AsnOrderItem::getTrackCode, dto.getBarcode())
                     .eq(AsnOrderItem::getMatnrId, dto.getMatnrId()));
             if (Objects.isNull(orderItem)) {
                 throw new CoolException("閫氱煡鍗曟槑缁嗕笉瀛樺湪锛侊紒");
@@ -355,7 +359,7 @@
      */
     @Override
     public List<AsnOrder> getAllAsnOrders() {
-        List<AsnOrder> asnOrders = asnOrderMapper.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getWkType, OrderWorkType.ORDER_PURCHASE_IN.type));
+        List<AsnOrder> asnOrders = asnOrderMapper.list(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getWkType, OrderWorkType.ORDER_WORK_TYPE_PURCHASE.type));
         return asnOrders;
     }
 
@@ -618,7 +622,7 @@
                 .eq(AsnOrder::getId, OrderId)
                 .eq(AsnOrder::getType, OrderType.ORDER_PLAT_IN.type));
         if (Objects.isNull(order)) {
-            throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
+            throw new CoolException("闈炲钩搴撳崟鎹笉鍙墽琛屼汉宸ヤ笂鏋讹紒锛�");
         }
         Stock stock = new Stock();
 //        if (!Objects.isNull(order.getPoCode()) && StringUtils.isNotBlank(order.getPoCode())) {
@@ -650,7 +654,9 @@
         itemList.forEach(asnOrderItem -> {
             LocItem item = new LocItem();
             BeanUtils.copyProperties(asnOrderItem, item);
-            item.setId(loc.getId())
+            item.setLocId(loc.getId())
+                    .setId(null)
+                    .setLocCode(loc.getCode())
                     .setOrderId(order.getId())
                     .setOrderItemId(asnOrderItem.getId())
                     .setWkType(Short.parseShort(order.getWkType()))
@@ -822,6 +828,71 @@
     }
 
     /**
+     * @author Ryan
+     * @description 鑾峰彇鍏ュ簱缁勬嫋淇℃伅
+     * @param barcode
+     * @return
+     */
+    @Override
+    public R getPakinInStock(String barcode) {
+        WaitPakin waitPakin = waitPakinService.getOne(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode));
+        if (Objects.isNull(waitPakin)) {
+            throw new CoolException("缁勬嫋鍗曟嵁涓嶅瓨鍦紒锛�");
+        }
+        List<WaitPakinItem> pakinItems = waitPakinItemService.list(new LambdaQueryWrapper<WaitPakinItem>().eq(WaitPakinItem::getPakinId, waitPakin.getId()));
+        if (pakinItems.isEmpty()) {
+            return R.ok(new ArrayList<>());
+        }
+        return R.ok(pakinItems);
+    }
+
+    /**
+     * @author Ryan
+     * @description 鑾峰彇搴撳彛绔欑偣淇℃伅
+     * @return
+     */
+    @Override
+    public R getDeviceSites() {
+        List<DeviceSite> sites = deviceSiteMapper.selectList(new LambdaQueryWrapper<DeviceSite>()
+                        .select(DeviceSite::getId, DeviceSite::getSite, DeviceSite::getName)
+                .eq(DeviceSite::getStatus, 1)
+                .groupBy(DeviceSite::getSite, DeviceSite::getId, DeviceSite::getName));
+        return R.ok(sites);
+    }
+
+    /**
+     * @author Ryan
+     * @description 鑾峰彇鎺ㄨ崘搴撲綅
+     * @return
+     */
+    @Override
+    public R getRecommondLocs() {
+        return R.ok(locService.list(new LambdaQueryWrapper<Loc>().last("limit 10")));
+    }
+
+    /**
+     * @param map
+     * @param loginUserId
+     * @return
+     * @author Ryan
+     * @description 鐢熸垚浠诲姟鍒楄〃
+     */
+    @Override
+    public R generateTask(Map<String, Object> map, Long loginUserId) {
+        String barcode = map.get("barcode").toString();
+        List<WaitPakin> waitPakins = waitPakinService.list(new LambdaQueryWrapper<WaitPakin>().eq(WaitPakin::getBarcode, barcode));
+        if (waitPakins.isEmpty()) {
+            throw new CoolException("鍗曟嵁涓嶅瓨鍦� 锛侊紒");
+        }
+        GenerateTaskParams taskParams = new GenerateTaskParams();
+        taskParams.setWaitPakins(waitPakins)
+                .setSiteId(Long.parseLong(map.get("site").toString()))
+                .setLocCode(map.get("locCode").toString());
+        return R.ok(taskService.generateTasks(taskParams, loginUserId));
+
+    }
+
+    /**
      * 鑾峰彇ReceiptDetlsDtos
      */
     private R getAsnOrderItem(List<AsnOrderItem> items) {
@@ -855,7 +926,8 @@
             }
             //鑾峰彇褰撳墠搴撳瓨淇℃伅
             LocItem stockItem = locItemService.getOne(new LambdaQueryWrapper<LocItem>()
-                    .eq(LocItem::getOrderItemId, asnOrderItem.getId())
+//                    .eq(LocItem::getOrderItemId, asnOrderItem.getId())
+                            .eq(LocItem::getFieldsIndex, asnOrderItem.getFieldsIndex())
                     .eq(LocItem::getBatch, asnOrderItem.getBatch())
                     .eq(LocItem::getMatnrId, asnOrderItem.getMatnrId()));
             //SET 褰撳墠搴撳瓨鏁伴噺

--
Gitblit v1.9.1