From b3b117424d3405190cf482f9236a40295ef2a447 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期二, 11 三月 2025 15:11:39 +0800
Subject: [PATCH] #新增 1. 添加扩展字段 2. 添加扩展字段明细

---
 rsf-server/src/main/java/com/vincent/rsf/server/api/service/impl/MobileServiceImpl.java |  183 ++++++++++++++++++++++++++++++++-------------
 1 files changed, 128 insertions(+), 55 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 b2bc903..6a5a632 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
@@ -4,15 +4,19 @@
 import com.vincent.rsf.framework.common.Cools;
 import com.vincent.rsf.framework.common.R;
 import com.vincent.rsf.framework.exception.CoolException;
+import com.vincent.rsf.server.api.controller.params.OtherReceiptParams;
 import com.vincent.rsf.server.api.controller.params.ReceiptParams;
 import com.vincent.rsf.server.api.entity.dto.ReceiptDetlsDto;
+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;
+import com.vincent.rsf.server.common.enums.WarehouseAreaType;
 import com.vincent.rsf.server.common.security.JwtSubject;
 import com.vincent.rsf.server.common.utils.JwtUtil;
 import com.vincent.rsf.server.manager.entity.*;
 import com.vincent.rsf.server.manager.mapper.*;
 import com.vincent.rsf.server.manager.service.WarehouseAreasItemService;
+import com.vincent.rsf.server.manager.service.WarehouseAreasService;
 import com.vincent.rsf.server.system.constant.CodeRes;
 import com.vincent.rsf.server.system.controller.param.LoginParam;
 import com.vincent.rsf.server.system.controller.result.LoginResult;
@@ -22,6 +26,7 @@
 import com.vincent.rsf.server.system.mapper.TenantMapper;
 import com.vincent.rsf.server.system.mapper.UserMapper;
 import com.vincent.rsf.server.system.service.UserLoginService;
+import com.vincent.rsf.server.system.utils.SerialRuleUtils;
 import org.apache.tika.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -52,11 +57,14 @@
     private UserMapper userService;
     @Autowired
     private UserLoginService userLoginService;
-
     @Autowired
     private WarehouseAreasItemService warehouseAreasItemService;
+    @Autowired
+    private WarehouseAreasService warehouseAreasService;
     @Resource
     private AsnOrderItemMapper asnOrderItemMapper;
+    @Resource
+    private AsnOrderMapper asnOrderMapper;
     @Resource
     private MatnrMapper matnrMapper;
     @Resource
@@ -114,11 +122,125 @@
         if (StringUtils.isEmpty(barcode)) {
             return R.error("鏍囩鐮佷笉鑳戒负绌猴紒锛�");
         }
-        ReceiptDetlsDto detlsDto = new ReceiptDetlsDto();
         AsnOrderItem asnOrderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>().eq(AsnOrderItem::getBarcode, barcode));
         if (Objects.isNull(asnOrderItem)) {
             throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
         }
+
+        return getAsnOrderItem(asnOrderItem);
+    }
+
+    /**
+     * @author Ryan
+     * @description 鏀惰揣鑷虫敹璐у尯
+     * @param  params
+     * @return
+     * @time 2025/3/10 15:41
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R receiptToWarehouse(ReceiptParams params) {
+        if (params.getReceipts().isEmpty()) {
+            throw new CoolException("鏀惰揣鏄庣粏涓嶈兘涓虹┖锛侊紒");
+        }
+        if (Objects.isNull(params.getWhAreaId())) {
+            throw new CoolException("搴撳尯鏍囪瘑涓嶈兘涓虹┖锛侊紒");
+        }
+        WarehouseAreas areasItem = warehouseAreasService.getOne(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getId, params.getWhAreaId()));
+        if (Objects.isNull(areasItem)) {
+            throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶅簱鍖轰笉瀛樺湪锛侊紒");
+        }
+        List<ReceiptDetlsDto> receipts = params.getReceipts();
+        List<WarehouseAreasItem> allOrders =   new ArrayList<>();
+        receipts.forEach(dto -> {
+            Matnr matnr = matnrMapper.selectById(dto.getMatnrId());
+            if (Objects.isNull(matnr)) {
+                throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒");
+            }
+            WarehouseAreasItem item = new WarehouseAreasItem();
+            item.setBarcode(dto.getBarcode())
+                    .setAreaName(areasItem.getName())
+                    .setAreaId(areasItem.getId())
+                    .setStockUnit(dto.getStockUnit())
+                    .setBatch(SerialRuleUtils.generateRuleCode("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鍗曚緵搴斿晢缂栫爜杞崲
+
+            allOrders.add(item);
+        });
+
+        if (!warehouseAreasItemService.saveBatch(allOrders)) {
+            throw new CoolException("鏀惰揣澶辫触锛侊紒");
+        }
+
+        return R.ok("鎿嶄綔鎴愬姛");
+    }
+
+    /**
+     * @author Ryan
+     * @description 鍏跺畠鏀惰揣
+     * @param params
+     * @return
+     */
+    @Override
+    public R otherReceipt(OtherReceiptParams params) {
+        if (Objects.isNull(params.getAsnCode())) {
+            throw new CoolException("閫氱煡鍗曚笉鑳戒负绌猴紒锛�");
+        }
+        if (Objects.isNull(params.getBarcode())) {
+            throw new CoolException("鐗╂枡缂栫爜涓嶈兘涓虹┖锛侊紒");
+        }
+
+        AsnOrderItem asnOrderItem = asnOrderItemMapper.selectOne(new LambdaQueryWrapper<AsnOrderItem>()
+                .eq(AsnOrderItem::getAsnCode, params.getAsnCode())
+                .eq(AsnOrderItem::getBarcode, params.getBarcode()));
+
+        if (Objects.isNull(asnOrderItem)) {
+            throw new CoolException("鍗曟嵁鏄庣粏涓嶅瓨鍦紒锛�");
+        }
+
+       return getAsnOrderItem(asnOrderItem);
+
+    }
+
+    /**
+     * @author Ryan
+     * @description 鑾峰彇鎵�鏈夐�氱煡鍗�
+     * @return
+     */
+    @Override
+    public List<AsnOrder> getAllAsnOrders() {
+        List<AsnOrder> asnOrders = asnOrderMapper.selectList(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getWkType, OrderWorkType.ORDER_PURCHASE_IN.type));
+        return asnOrders;
+    }
+
+    /**
+     * @author Ryan
+     * @description 鑾峰彇鏀惰揣鍖�
+     * @param
+     * @return
+     * @time 2025/3/11 10:12
+     */
+    @Override
+    public R getReceiptAreas() {
+        return R.ok(warehouseAreasService.list(new LambdaQueryWrapper<WarehouseAreas>().eq(WarehouseAreas::getType, WarehouseAreaType.WAREHOUSE_AREA_RECEIPT.type)));
+    }
+
+    /**
+     * 鑾峰彇ReceiptDetlsDto
+     */
+    private R getAsnOrderItem(AsnOrderItem asnOrderItem) {
+        ReceiptDetlsDto detlsDto = new ReceiptDetlsDto();
+
         detlsDto.setAsnCode(asnOrderItem.getAsnCode())
                 .setMatnk(asnOrderItem.getMatnk())
                 .setBarcode(asnOrderItem.getBarcode())
@@ -136,8 +258,10 @@
                 .setStockUnit(matnr.getStockUnit());
         QlyInspect inspect = qlyInspectMapper.selectOne(new LambdaQueryWrapper<QlyInspect>()
                 .eq(QlyInspect::getAsnItemId, asnOrderItem.getId()).eq(QlyInspect::getPoItemId, asnOrderItem.getPoDetlId()));
-        //set 璐ㄦ缁撴灉
-        detlsDto.setInspect(inspect.getStatus$());
+        if (!Objects.isNull(inspect)) {
+            //set 璐ㄦ缁撴灉
+            detlsDto.setInspect(inspect.getStatus$());
+        }
         //鑾峰彇褰撳墠搴撳瓨淇℃伅
         StockItem stockItem = stockItemMapper.selectOne(new LambdaQueryWrapper<StockItem>()
                 .eq(StockItem::getAsnItemId, asnOrderItem.getId())
@@ -157,56 +281,5 @@
         return R.ok(detlsDto);
     }
 
-    /**
-     * @author Ryan
-     * @description 鏀惰揣鑷虫敹璐у尯
-     * @param  params
-     * @return
-     * @time 2025/3/10 15:41
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public R receiptToWarehouse(ReceiptParams params) {
-        if (params.getReceipts().isEmpty()) {
-            throw new CoolException("鏀惰揣鏄庣粏涓嶈兘涓虹┖锛侊紒");
-        }
-        if (Objects.isNull(params.getWhAreaId())) {
-            throw new CoolException("搴撳尯鏍囪瘑涓嶈兘涓虹┖锛侊紒");
-        }
-        WarehouseAreasItem areasItem = warehouseAreasItemService.getOne(new LambdaQueryWrapper<WarehouseAreasItem>().eq(WarehouseAreasItem::getAreaId, params.getWhAreaId()));
-        List<ReceiptDetlsDto> receipts = params.getReceipts();
-        List<WarehouseAreasItem> allOrders =   new ArrayList<>();
-        receipts.forEach(dto -> {
-            Matnr matnr = matnrMapper.selectById(dto.getMatnrId());
-            if (Objects.isNull(matnr)) {
-                throw new CoolException("鏁版嵁閿欒锛氬綋鍓嶇墿鏂欎笉瀛樺湪锛侊紒");
-            }
-            WarehouseAreasItem item = new WarehouseAreasItem();
-            item.setBarcode(dto.getBarcode())
-                    .setAreaName(areasItem.getAreaName())
-                    .setAreaId(areasItem.getAreaId())
-                    .setStockUnit(dto.getStockUnit())
-                    //TODO 缂栫爜瑙勫垯鐢熸垚鎵规 (鐗╂枡鍙�+鏃ユ湡)
-                    .setBatch(null)
-                    .setAnfme(dto.getReceiptQty())
-                    .setSplrBtch(dto.getSplrBatch())
-                    .setMatnrCode(matnr.getCode())
-                    .setMatnrId(matnr.getId())
-                    .setMatnrName(matnr.getName())
-                    //TODO 鍏ュ簱鍗曚綅鎹㈢畻
-                    .setUnit(dto.getStockUnit())
-                    .setStockUnit(dto.getStockUnit())
-                    .setWeight(matnr.getWeight())
-                    .setShipperId(matnr.getShipperId());
-                    //TODO 渚涘簲鍟嗘爣璇嗘湭璁剧疆
 
-            allOrders.add(item);
-        });
-
-        if (!warehouseAreasItemService.saveBatch(allOrders)) {
-            throw new CoolException("鏀惰揣澶辫触锛侊紒");
-        }
-
-        return R.ok("鎿嶄綔鎴愬姛");
-    }
 }

--
Gitblit v1.9.1