From 313f0515b65ab69e6e811c199f4b33eb630509f3 Mon Sep 17 00:00:00 2001
From: Ryan <creaycat@gmail.com>
Date: 星期四, 03 四月 2025 19:09:38 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java |  105 +++++++++++++++++-----------------------------------
 1 files changed, 34 insertions(+), 71 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 6df867e..e84ec9b 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
@@ -6,6 +6,7 @@
 import com.vincent.rsf.framework.exception.CoolException;
 import com.vincent.rsf.server.api.controller.params.*;
 import com.vincent.rsf.server.api.entity.dto.*;
+import com.vincent.rsf.server.api.entity.enums.OrderType;
 import com.vincent.rsf.server.api.entity.enums.OrderWorkType;
 import com.vincent.rsf.server.api.service.MobileService;
 import com.vincent.rsf.server.common.config.ConfigProperties;
@@ -27,21 +28,18 @@
 import com.vincent.rsf.server.system.mapper.TenantMapper;
 import com.vincent.rsf.server.system.mapper.UserMapper;
 import com.vincent.rsf.server.system.service.FieldsItemService;
-import com.vincent.rsf.server.system.service.FieldsService;
 import com.vincent.rsf.server.system.service.UserLoginService;
 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.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Bean;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -204,7 +202,7 @@
         List<ReceiptDetlsDto> receipts = params.getReceipts();
         List<WarehouseAreasItem> allOrders = new ArrayList<>();
 
-        double receiptQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getReceiptQty).sum();
+        Double receiptQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getReceiptQty).sum();
 
         String asnCode = receipts.stream().findFirst().get().getAsnCode();
 
@@ -213,7 +211,9 @@
         if (Objects.isNull(asnOrder)) {
             throw new CoolException("鏁版嵁閿欒锛氫富鍗曚笉瀛樺湪锛侊紒");
         }
-        asnOrder.setQty(receiptQty);
+        /**鏀惰揣鏁伴噺绱姞锛�1. 浼氬嚭瓒呮敹鎯呭喌 2. 浼氭湁鏀惰揣涓嶈冻鎯呭喌*/
+        Double rcptedQty = asnOrder.getQty() + receiptQty;
+        asnOrder.setQty(rcptedQty);
 
         if (!asnOrderMapper.updateById(asnOrder)) {
             throw new CoolException("宸叉敹璐ф暟閲忎慨鏀瑰け璐ワ紒锛�");
@@ -305,60 +305,18 @@
         if (!warehouseAreasItemService.saveBatch(allOrders)) {
             throw new CoolException("鏀惰揣澶辫触锛侊紒");
         }
-
-        //鑾峰彇閲囪喘鏁伴噺
-        double purQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getPurQty).sum();
-
-        BigDecimal subtract = BigDecimal.valueOf(receiptQty).subtract(BigDecimal.valueOf(purQty));
-        //鍒ゆ柇宸叉敹璐ф暟閲忔槸鍚﹀皬浜庣瓑浜庨噰璐暟閲�
-        if (subtract.compareTo(new BigDecimal("0.0")) <= 0) {
-            asnOrder.setRleStatus(Short.valueOf("1"));
-            //鏃ュ織琛ㄦ搷浣�
-            operateOrderLogs(asnOrder);
-        }
-
+//        //鑾峰彇閲囪喘鏁伴噺
+//        double purQty = receipts.stream().mapToDouble(ReceiptDetlsDto::getPurQty).sum();
+//
+//        BigDecimal subtract = BigDecimal.valueOf(receiptQty).subtract(BigDecimal.valueOf(purQty));
+//        //鍒ゆ柇宸叉敹璐ф暟閲忔槸鍚﹀皬浜庣瓑浜庨噰璐暟閲�
+//        if (subtract.compareTo(new BigDecimal("0.0")) <= 0) {
+//            asnOrder.setRleStatus(Short.valueOf("1"));
+//            //鏃ュ織琛ㄦ搷浣�
+//            operateOrderLogs(asnOrder);
+//        }
         return R.ok("鎿嶄綔鎴愬姛");
     }
-
-    /**
-     * @author Ryan
-     * @description 鍒犻櫎鍘熶富鍗曞強鏄庣粏锛屽姞鍏ュ巻鍙叉。
-     * @param
-     * @return
-     * @time 2025/3/19 19:53
-     */
-    private void operateOrderLogs(AsnOrder asnOrder) {
-        if (!asnOrderMapper.removeById(asnOrder.getId())) {
-            throw new CoolException("鍘熷崟鎹垹闄ゅけ璐ワ紒锛�");
-        }
-
-        AsnOrderLog orderLog = new AsnOrderLog();
-        BeanUtils.copyProperties(asnOrder, orderLog);
-        orderLog.setAsnId(asnOrder.getId());
-
-        if (!asnOrderLogService.save(orderLog)) {
-            throw new CoolException("涓诲崟鍘嗗彶妗f坊鍔犲け璐ワ紒锛�");
-        }
-
-        List<AsnOrderItemLog> logs = new ArrayList<>();
-        List<AsnOrderItem> items = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, asnOrder.getId()));
-        items.forEach(item -> {
-            AsnOrderItemLog itemLog = new AsnOrderItemLog();
-            BeanUtils.copyProperties(item, itemLog);
-            itemLog.setAsnItemId(itemLog.getId())
-                    .setAsnId(item.getAsnId());
-            logs.add(itemLog);
-        });
-
-        if (!asnOrderItemLogService.saveBatch(logs)) {
-            throw new CoolException("閫氱煡鍗曟槑缁嗗巻鍙叉。淇濆瓨澶辫触锛侊紒");
-        }
-
-        if (asnOrderItemMapper.delete(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getAsnId, asnOrder.getId())) < 1) {
-            throw new CoolException("鍘熷崟鎹槑缁嗗垹闄ゅけ璐ワ紒锛�");
-        }
-    }
-
 
     /**
      * @author Ryan
@@ -599,28 +557,27 @@
         if (!waitPakins.isEmpty()) {
             throw new CoolException("鎷栫洏宸蹭娇鐢�!!");
         }
-        List<AsnOrderItem> orderItems = asnOrderItemMapper.selectList(new LambdaQueryWrapper<AsnOrderItem>()
+        AsnOrderItem orderItems = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>()
                 .eq(AsnOrderItem::getAsnId, asnOrders.getId())
                 .eq(AsnOrderItem::getMatnrCode, params.getMatnrCode()));
-        if (orderItems.isEmpty()) {
-            throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+        if (Objects.isNull(orderItems)) {
+            return R.ok(null);
         }
-        List<AsnOrderItem> stocks = new ArrayList<>();
-        orderItems.forEach(item -> {
-            item.setBarcode(params.getBarcode());
-            stocks.add(item);
-        });
-        return R.ok(stocks);
+        orderItems.setBarcode(params.getBarcode());
+
+        return R.ok(orderItems);
     }
 
     /**
      * 浜哄伐涓婃灦鍏ュ簱
+     *
      * @param params
+     * @param loginUserId
      * @return
      */
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public R publicToStock(PublicToStockParams params) {
+    public R publicToStock(PublicToStockParams params, Long loginUserId) {
         if (Objects.isNull(params.getLocCode()) || StringUtils.isBlank(params.getLocCode())) {
             throw new CoolException("搴撲綅涓嶈兘涓虹┖锛侊紒");
         }
@@ -628,7 +585,10 @@
             throw new CoolException("鍗曟嵁鏄庣粏涓嶈兘涓虹┖锛侊紒");
         }
         Long OrderId = params.getItemList().stream().findFirst().get().getAsnId();
-        AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getId, OrderId));
+        /**鑾峰彇骞冲簱璁㈠崟*/
+        AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>()
+                .eq(AsnOrder::getId, OrderId)
+                .eq(AsnOrder::getType, OrderType.ORDER_PLAT_IN.type));
         if (Objects.isNull(order)) {
             throw new CoolException("鍗曟嵁涓嶅瓨鍦紒锛�");
         }
@@ -636,7 +596,9 @@
         stock.setAsnId(OrderId).setAsnCode(order.getCode());
         if (!Objects.isNull(order.getPoCode()) && StringUtils.isNotBlank(order.getPoCode())) {
             Purchase purchase = purchaseService.getOne(new LambdaQueryWrapper<Purchase>().eq(Purchase::getCode, order.getPoCode()));
-            stock.setPlatOrderNo(purchase.getPlatCode()).setPlatToken(purchase.getPlatId());
+            if (!Objects.isNull(purchase)) {
+                stock.setPlatOrderNo(purchase.getPlatCode()).setPlatToken(purchase.getPlatId());
+            }
         }
         String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_STOCK_CODE, null);
         if (StringUtils.isBlank(ruleCode)) {
@@ -645,7 +607,7 @@
         if (!stockService.save(stock)) {
             throw new CoolException("搴撳瓨淇濆瓨澶辫触锛侊紒");
         }
-        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getBarcode, params.getLocCode()));
+        Loc loc = locService.getOne(new LambdaQueryWrapper<Loc>().eq(Loc::getCode, params.getLocCode()));
         if (Objects.isNull(loc)) {
             throw new CoolException("搴撲綅涓嶅瓨鍦紒锛�");
         }
@@ -656,6 +618,7 @@
             stockItem.setAsnItemId(orderItem.getId())
                     .setBarcode(orderItem.getBarcode())
                     .setLocId(loc.getId())
+                    .setUpdateBy(loginUserId)
                     .setId(null)
                     .setStockId(stock.getId());
             stockItems.add(stockItem);
@@ -682,7 +645,7 @@
             throw new CoolException("鎷栫洏浠诲姟涓嶅瓨鍦紒锛�");
         }
         List<TaskItem> taskItems = taskItemService.list(new LambdaQueryWrapper<TaskItem>().eq(TaskItem::getTaskId, task.getId()));
-        if (!taskItems.isEmpty()) {
+        if (taskItems.isEmpty()) {
             throw new CoolException("鎷栫洏浠诲姟鏄庣粏涓嶅瓨鍦紒锛�");
         }
         TaskQueueDto queueDto = new TaskQueueDto();

--
Gitblit v1.9.1