From 391e56cca8fc835791358ff32e63b1da6574462d Mon Sep 17 00:00:00 2001
From: Ryan <creaycat@gmail.com>
Date: 星期四, 03 四月 2025 20:26:31 +0800
Subject: [PATCH] no message

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java |  157 +++++++++++++++++++++-------------------------------
 1 files changed, 63 insertions(+), 94 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 31c1b43..df57841 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("宸叉敹璐ф暟閲忎慨鏀瑰け璐ワ紒锛�");
@@ -237,40 +237,14 @@
             if (Objects.isNull(orderItem)) {
                 throw new CoolException("閫氱煡鍗曟槑缁嗕笉瀛樺湪锛侊紒");
             }
-            if (Objects.isNull(dto.getReceiptQty()) || Double.compare(dto.getReceiptQty(), 0.0) == 0) {
-                throw new CoolException("鏀惰揣鏁伴噺涓嶈兘涓洪浂锛侊紒");
-            }
-            orderItem.setQty(dto.getReceiptQty())
-                    .setProdTime(dto.getProdTime());
-
-            if (asnOrderItemMapper.updateById(orderItem) < 1) {
-                throw new CoolException("閫氱煡鍗曟槑缁嗘暟閲忎慨鏀瑰け璐ワ紒锛�");
-            }
-
-            WarehouseAreasItem item = new WarehouseAreasItem();
-//            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-//            String format = null;
-//            if (Objects.isNull(dto.getProdTime())) {
-//                 format = dateFormat.format(dto.getProdTime());
+//            if (Objects.isNull(dto.getReceiptQty()) || Double.compare(dto.getReceiptQty(), 0.0) == 0) {
+//                throw new CoolException("鏀惰揣鏁伴噺涓嶈兘涓洪浂锛侊紒");
 //            }
-            item.setBarcode(dto.getBarcode())
-                    .setAreaName(areasItem.getName())
-                    .setAreaId(areasItem.getId())
-                    .setProdTime(dto.getProdTime())
-                    .setWeight(dto.getWeigth())
+            Double itemRcptQty = dto.getReceiptQty() + orderItem.getQty();
+            orderItem.setQty(itemRcptQty)
+                    .setSplrBatch(dto.getSplrBatch())
                     .setStockUnit(dto.getStockUnit())
-                    .setBatch(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto))
-                    .setAnfme(dto.getReceiptQty())
-                    .setSplrBtch(dto.getSplrBatch())
-                    .setMatnrCode(matnr.getCode())
-                    .setMatnrId(matnr.getId())
-                    .setMatnrName(matnr.getName())
-                    //搴撳瓨鍗曚綅涓烘渶灏忓崟浣�
-                    .setUnit(dto.getStockUnit())
-                    .setStockUnit(dto.getStockUnit())
-                    .setWeight(matnr.getWeight())
-                    .setShipperId(matnr.getShipperId());
-                    //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲
+                    .setProdTime(dto.getProdTime());
 
             if (!Objects.isNull(fields)) {
                 if (!Objects.isNull(dto.getExtendFields())) {
@@ -289,76 +263,65 @@
                                         .setValue(extendFields.get(key).toString())
                                         .setUuid(uuid16);
                                 fieldsItems.add(fieldsItem);
-                                //鍞竴鏍囪瘑鍏ュ簱
-                                item.setFieldsIndex(uuid16);
                             }
                         });
                     });
                     if (!fieldsItemService.saveBatch(fieldsItems)) {
                         throw new CoolException("鎵╁睍瀛楁淇濆瓨澶辫触锛侊紒");
                     }
+                    orderItem.setFieldsIndex(uuid16);
                 }
             }
+
+            if (asnOrderItemMapper.updateById(orderItem) < 1) {
+                throw new CoolException("閫氱煡鍗曟槑缁嗘暟閲忎慨鏀瑰け璐ワ紒锛�");
+            }
+
+            WarehouseAreasItem item = new WarehouseAreasItem();
+//            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//            String format = null;
+//            if (Objects.isNull(dto.getProdTime())) {
+//                 format = dateFormat.format(dto.getProdTime());
+//            }
+            item.setBarcode(dto.getBarcode())
+                    .setAreaName(areasItem.getName())
+                    .setAreaId(areasItem.getId())
+                    .setProdTime(dto.getProdTime())
+                    .setWeight(dto.getWeigth())
+                    .setStockUnit(dto.getStockUnit())
+                    .setBatch(SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_RECEIPT_BATCH, dto))
+                    .setAnfme(itemRcptQty)
+                    .setSplrBtch(dto.getSplrBatch())
+                    .setMatnrCode(matnr.getCode())
+                    .setMatnrId(matnr.getId())
+                    .setMatnrName(matnr.getName())
+                    //搴撳瓨鍗曚綅涓烘渶灏忓崟浣�
+                    .setUnit(dto.getStockUnit())
+                    .setStockUnit(dto.getStockUnit())
+                    .setWeight(matnr.getWeight())
+                    .setFieldsIndex(orderItem.getFieldsIndex())
+                    .setShipperId(matnr.getShipperId());
+                    //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆锛屾爣璇嗙敱PO鍗曚緵搴斿晢缂栫爜杞崲
+
+
             allOrders.add(item);
         });
 
         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
@@ -612,12 +575,14 @@
 
     /**
      * 浜哄伐涓婃灦鍏ュ簱
+     *
      * @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("搴撲綅涓嶈兘涓虹┖锛侊紒");
         }
@@ -625,7 +590,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("鍗曟嵁涓嶅瓨鍦紒锛�");
         }
@@ -655,6 +623,7 @@
             stockItem.setAsnItemId(orderItem.getId())
                     .setBarcode(orderItem.getBarcode())
                     .setLocId(loc.getId())
+                    .setUpdateBy(loginUserId)
                     .setId(null)
                     .setStockId(stock.getId());
             stockItems.add(stockItem);
@@ -681,7 +650,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