‘linchangsheng’ 7 bulan lalu
induk
melakukan
d4c51ceacb

+ 4 - 4
src/main/java/com/zfire/mall/manager/controller/k3/K3ReceiptController.java

@@ -146,18 +146,18 @@ public class K3ReceiptController {
     @ApiOperation(value = "新增收款单")
     @PostMapping("/add")
     public ResponseHelper add(
-            @RequestBody KingDeeReceipt kingDeeWallet
+            @RequestBody KingDeeReceipt kingDeeReceipt
     ) throws Exception {
-        k3ReceiptLogic.add(kingDeeWallet);
+        k3ReceiptLogic.add(kingDeeReceipt);
         return ResponseHelper.success();
     }
 
     @ApiOperation(value = "修改收款单")
     @PostMapping("/update")
     public ResponseHelper updateCustomer(
-            @RequestBody KingDeeReceipt kingDeeWallet
+            @RequestBody KingDeeReceipt kingDeeReceipt
     ) throws Exception {
-        k3ReceiptLogic.update(kingDeeWallet);
+        k3ReceiptLogic.update(kingDeeReceipt);
         return ResponseHelper.success();
     }
 

+ 3 - 3
src/main/java/com/zfire/mall/manager/logic/k3/K3ReceiptLogic.java

@@ -480,8 +480,8 @@ public class K3ReceiptLogic {
 
     public void examine(String billNo, String cancelStatus) {
 
-        KingDeeWallet kingDeeWallet = kingDeeWalletService.getById(billNo);
-        kingDeeWallet.setForbidStatus(cancelStatus);
-        kingDeeWallet.updateById();
+        KingDeeReceipt kingDeeReceipt = kingDeeReceiptService.getById(billNo);
+        kingDeeReceipt.setStatus(cancelStatus);
+        kingDeeReceipt.updateById();
     }
 }

+ 82 - 7
src/main/java/com/zfire/mall/manager/logic/k3/K3TransferLogic.java

@@ -10,21 +10,22 @@ import com.zfire.mall.manager.bean.k3.*;
 import com.zfire.mall.manager.bean.pick.PickManagerBean;
 import com.zfire.mall.manager.commonmapper.manage.TransferMapper;
 import com.zfire.mall.manager.constant.KingDeeCons;
-import com.zfire.mall.manager.plus.entity.KingDeeSupplier;
-import com.zfire.mall.manager.plus.entity.KingDeeTransfer;
-import com.zfire.mall.manager.plus.entity.KingDeeTransferItem;
+import com.zfire.mall.manager.enums.ExamineStatusEnum;
+import com.zfire.mall.manager.exception.RemoteServiceException;
+import com.zfire.mall.manager.logic.stock.StockCommonLogic;
+import com.zfire.mall.manager.plus.entity.*;
 import com.zfire.mall.manager.plus.service.KingDeeSupplierService;
 import com.zfire.mall.manager.plus.service.KingDeeTransferItemService;
 import com.zfire.mall.manager.plus.service.KingDeeTransferService;
+import com.zfire.mall.manager.plus.service.StockService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
+import java.math.BigDecimal;
+import java.util.*;
 
 @Service
 @Slf4j
@@ -43,6 +44,12 @@ public class K3TransferLogic {
     @Autowired
     TransferMapper transferMapper;
 
+    @Autowired
+    StockService stockService;
+
+    @Autowired
+    StockCommonLogic stockCommonLogic;
+
 
 //    public void allSync(String orgId, String orgNumber, String startTime, String endTime) throws Exception {
 //        // 调用调拨单接口
@@ -155,10 +162,78 @@ public class K3TransferLogic {
 
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public void examine(String billNo, String cancelStatus) {
 
         KingDeeTransfer kingDeeTransfer = kingDeeTransferService.getById(billNo);
         kingDeeTransfer.setCancelStatus(cancelStatus);
         kingDeeTransfer.updateById();
+
+        if (cancelStatus.equals(ExamineStatusEnum.OK.getKey())) {
+            List<KingDeeTransferItem> kingDeeTransferItems = kingDeeTransferItemService.lambdaQuery()
+                    .eq(KingDeeTransferItem::getBillNo, billNo).list();
+
+            for (KingDeeTransferItem kingDeeTransferItem : kingDeeTransferItems) {
+                this.stockSub(kingDeeTransfer,kingDeeTransferItem);
+                this.stockAdd(kingDeeTransfer,kingDeeTransferItem);
+            }
+
+
+
+        }
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void stockSub(KingDeeTransfer kingDeeTransfer, KingDeeTransferItem kingDeeTransferItem) {
+
+        Stock stock = stockService.lambdaQuery().eq(Stock::getStockId, kingDeeTransferItem.getSrcStockId())
+                .eq(Stock::getMaterialId, kingDeeTransferItem.getMaterialId()).last("limit 1").one();
+
+        if (stock == null)
+            throw new RemoteServiceException(kingDeeTransferItem.getMaterialName()+"该物料没有库存,不能退库");
+
+
+        stockCommonLogic.stockAccLog("调拨调出减少库存",stock,kingDeeTransferItem.getQty(),kingDeeTransferItem.getBillNo(),false,"调拨单");
+
+        stock.setStockQty(stock.getStockQty().subtract(kingDeeTransferItem.getQty()));
+
+        if (stock.getStockQty().doubleValue() < 1)
+            throw new RemoteServiceException(kingDeeTransferItem.getMaterialName()+"该物料没有库存,不能退库");
+
+        stock.updateById();
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public void stockAdd(KingDeeTransfer kingDeeTransfer, KingDeeTransferItem kingDeeTransferItem) {
+
+        Stock stock = stockService.lambdaQuery().eq(Stock::getStockId, kingDeeTransferItem.getDestStockId())
+                .eq(Stock::getMaterialId, kingDeeTransferItem.getMaterialId()).last("limit 1").one();
+
+        if (stock == null){
+            stock = new Stock();
+
+            stock.setStockQty(BigDecimal.ZERO);
+            stock.setSyncTime(new Date());
+            stock.setStockId(kingDeeTransferItem.getDestStockId());
+            stock.setMaterialId(kingDeeTransferItem.getMaterialId());
+            stock.setSupplyOrgId(kingDeeTransferItem.getSupplyOrgId());
+
+
+
+            stockCommonLogic.stockAccLog("调拨调入增加库存",stock,kingDeeTransferItem.getQty(),kingDeeTransferItem.getBillNo(),true,"调拨单");
+
+            stock.setStockQty(kingDeeTransferItem.getQty());
+            stock.insert();
+
+            return;
+        }
+
+        stockCommonLogic.stockAccLog("调拨调入增加库存",stock,kingDeeTransferItem.getQty(),kingDeeTransferItem.getBillNo(),true,"调拨单");
+
+        stock.setStockQty(kingDeeTransferItem.getQty().add(stock.getStockQty()));
+        stock.updateById();
+
+    }
+
 }

+ 1 - 4
src/main/resources/mapper/StockK3Mapper.xml

@@ -166,12 +166,9 @@
     </select>
     <select id="listStockV2" resultType="com.zfire.mall.manager.bean.k3.StockPositionStockVO">
         SELECT
-        a.*,
-        group_concat(c.name) 'stockName'
+        a.*
         FROM
         stock_correspond a
-        join stock_correspond_position b on a.id = b.correspond_id
-        join king_dee_stock c on b.stock_id = c.id
         ${ex.query}
         GROUP BY a.id
         <if test="ex.orderBy == null or ex.orderBy ==''">