‘linchangsheng’ 7 ماه پیش
والد
کامیت
99653ff37d

+ 7 - 1
src/main/java/com/zfire/mall/manager/bean/supplier/KingDeeSupplierVO.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import com.zfire.mall.manager.annotation.ZfireField;
+import com.zfire.mall.manager.enums.K3CommonStatusEnum;
+import com.zfire.mall.manager.plus.entity.KingDeeSupplier;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -26,7 +28,7 @@ import java.util.Date;
  */
 @ApiModel
 @Data
-public class KingDeeSupplierVO {
+public class KingDeeSupplierVO extends KingDeeSupplier {
 
 
     @ZfireField(hide = true)
@@ -50,6 +52,10 @@ public class KingDeeSupplierVO {
     private String useOrgName;
 
 
+    @ApiModelProperty(value = "禁用状态")
+    private K3CommonStatusEnum forbidStatus;
+
+
     @ZfireField(hide = true)
     @ApiModelProperty(value = "同步时间")
     private Date syncTime;

+ 57 - 2
src/main/java/com/zfire/mall/manager/logic/k3/K3OtherStockInLogic.java

@@ -3,13 +3,19 @@ package com.zfire.mall.manager.logic.k3;
 
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.zfire.mall.manager.bean.k3.KingDeeOtherStockInAdd;
-import com.zfire.mall.manager.plus.entity.KingDeeOtherStockIn;
-import com.zfire.mall.manager.plus.entity.KingDeeOtherStockInItem;
+import com.zfire.mall.manager.logic.stock.StockCommonLogic;
+import com.zfire.mall.manager.plus.entity.*;
 import com.zfire.mall.manager.plus.service.KingDeeOtherStockInItemService;
 import com.zfire.mall.manager.plus.service.KingDeeOtherStockInService;
+import com.zfire.mall.manager.plus.service.StockService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
 
 @Service
 @Slf4j
@@ -21,6 +27,13 @@ public class K3OtherStockInLogic {
     @Autowired
     KingDeeOtherStockInItemService kingDeeOtherStockInItemService;
 
+    @Autowired
+    StockService stockService;
+
+    @Autowired
+    StockCommonLogic stockCommonLogic;
+
+
     public void add(KingDeeOtherStockInAdd kingDeePurchaseStockInAdd) {
         kingDeePurchaseStockInAdd.setId(IdWorker.getIdStr());
         kingDeePurchaseStockInAdd.setBillNo(kingDeePurchaseStockInAdd.getId());
@@ -48,10 +61,52 @@ public class K3OtherStockInLogic {
         kingDeeOtherStockInItemService.saveBatch(kingDeePurchaseStockInAdd.getKingDeeOtherStockInItems());
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public void examine(String billNo, String cancelStatus) {
         KingDeeOtherStockIn kingDeeOtherStockIn = kingDeeOtherStockInService.getById(billNo);
 
         kingDeeOtherStockIn.setCancelStatus(cancelStatus);
         kingDeeOtherStockIn.updateById();
+
+        List<KingDeeOtherStockInItem> kingDeeOtherStockInItems = kingDeeOtherStockInItemService.lambdaQuery().eq(KingDeeOtherStockInItem::getBillNo, billNo).list();
+
+        for (KingDeeOtherStockInItem kingDeeOtherStockInItem : kingDeeOtherStockInItems) {
+            this.stockAdd(kingDeeOtherStockIn,kingDeeOtherStockInItem);
+
+        }
+    }
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public void stockAdd(KingDeeOtherStockIn kingDeeOtherStockIn, KingDeeOtherStockInItem kingDeeOtherStockInItem) {
+
+        Stock stock = stockService.lambdaQuery().eq(Stock::getStockId, kingDeeOtherStockInItem.getStockId())
+                .eq(Stock::getMaterialId, kingDeeOtherStockInItem.getMaterialId()).last("limit 1").one();
+
+        if (stock == null){
+            stock = new Stock();
+
+            stock.setStockQty(BigDecimal.ZERO);
+            stock.setSyncTime(new Date());
+            stock.setStockId(kingDeeOtherStockInItem.getStockId());
+            stock.setMaterialId(kingDeeOtherStockInItem.getMaterialId());
+            stock.setSupplyOrgId(kingDeeOtherStockInItem.getSupplyOrgId());
+
+
+
+            stockCommonLogic.stockAccLog("其他入库单增加库存",stock,kingDeeOtherStockInItem.getQty(),kingDeeOtherStockInItem.getBillNo(),true,"其他入库单");
+
+            stock.setStockQty(kingDeeOtherStockInItem.getQty());
+            stock.insert();
+
+            return;
+        }
+
+        stockCommonLogic.stockAccLog("其他入库单增加库存",stock,kingDeeOtherStockInItem.getQty(),kingDeeOtherStockInItem.getBillNo(),true,"其他入库单");
+
+        stock.setStockQty(kingDeeOtherStockInItem.getQty().add(stock.getStockQty()));
+        stock.updateById();
+
     }
+
 }

+ 47 - 10
src/main/java/com/zfire/mall/manager/logic/k3/K3OtherStockOutLogic.java

@@ -3,15 +3,18 @@ package com.zfire.mall.manager.logic.k3;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.zfire.mall.manager.bean.k3.KingDeeOtherStockInAdd;
 import com.zfire.mall.manager.bean.k3.KingDeeOtherStockOutAdd;
-import com.zfire.mall.manager.plus.entity.KingDeeOtherStockIn;
-import com.zfire.mall.manager.plus.entity.KingDeeOtherStockInItem;
-import com.zfire.mall.manager.plus.entity.KingDeeOtherStockOut;
-import com.zfire.mall.manager.plus.entity.KingDeeOtherStockOutItem;
+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.KingDeeOtherStockOutItemService;
 import com.zfire.mall.manager.plus.service.KingDeeOtherStockOutService;
+import com.zfire.mall.manager.plus.service.StockService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 @Service
 @Slf4j
@@ -19,10 +22,16 @@ public class K3OtherStockOutLogic {
 
 
     @Autowired
-    KingDeeOtherStockOutService kingDeeOtherStockInService;
+    KingDeeOtherStockOutService kingDeeOtherStockOutService;
+
+    @Autowired
+    KingDeeOtherStockOutItemService kingDeeOtherStockOutItemService;
+
+    @Autowired
+    StockService stockService;
 
     @Autowired
-    KingDeeOtherStockOutItemService kingDeeOtherStockInItemService;
+    StockCommonLogic stockCommonLogic;
 
     public void add(KingDeeOtherStockOutAdd kingDeeOtherStockOutAdd) {
         kingDeeOtherStockOutAdd.setId(IdWorker.getIdStr());
@@ -33,7 +42,7 @@ public class K3OtherStockOutLogic {
             kingDeeOtherStockOutItem.setBillNo(kingDeeOtherStockOutAdd.getId());
         }
 
-        kingDeeOtherStockInItemService.saveBatch(kingDeeOtherStockOutAdd.getKingDeeOtherStockOutItems());
+        kingDeeOtherStockOutItemService.saveBatch(kingDeeOtherStockOutAdd.getKingDeeOtherStockOutItems());
 
     }
 
@@ -41,20 +50,48 @@ public class K3OtherStockOutLogic {
 
         kingDeeOtherStockOutAdd.updateById();
 
-        kingDeeOtherStockInItemService.lambdaUpdate().eq(KingDeeOtherStockOutItem::getBillNo,kingDeeOtherStockOutAdd.getBillNo())
+        kingDeeOtherStockOutItemService.lambdaUpdate().eq(KingDeeOtherStockOutItem::getBillNo,kingDeeOtherStockOutAdd.getBillNo())
                 .remove();
 
         for (KingDeeOtherStockOutItem kingDeeOtherStockOutItem : kingDeeOtherStockOutAdd.getKingDeeOtherStockOutItems()) {
             kingDeeOtherStockOutItem.setBillNo(kingDeeOtherStockOutAdd.getId());
         }
 
-        kingDeeOtherStockInItemService.saveBatch(kingDeeOtherStockOutAdd.getKingDeeOtherStockOutItems());
+        kingDeeOtherStockOutItemService.saveBatch(kingDeeOtherStockOutAdd.getKingDeeOtherStockOutItems());
     }
 
     public void examine(String billNo, String cancelStatus) {
-        KingDeeOtherStockOut kingDeeOtherStockOut = kingDeeOtherStockInService.getById(billNo);
+        KingDeeOtherStockOut kingDeeOtherStockOut = kingDeeOtherStockOutService.getById(billNo);
 
         kingDeeOtherStockOut.setCancelStatus(cancelStatus);
         kingDeeOtherStockOut.updateById();
+
+        List<KingDeeOtherStockOutItem> kingDeeOtherStockOutItems = kingDeeOtherStockOutItemService.lambdaQuery()
+                .eq(KingDeeOtherStockOutItem::getBillNo, billNo).list();
+        for (KingDeeOtherStockOutItem kingDeeOtherStockOutItem : kingDeeOtherStockOutItems) {
+            this.stockSub(kingDeeOtherStockOut,kingDeeOtherStockOutItem);
+        }
+    }
+
+
+    @Transactional(rollbackFor = Exception.class)
+    public void stockSub(KingDeeOtherStockOut kingDeeOtherStockOut, KingDeeOtherStockOutItem kingDeeOtherStockOutItem) {
+
+        Stock stock = stockService.lambdaQuery().eq(Stock::getStockId, kingDeeOtherStockOutItem.getStockId())
+                .eq(Stock::getMaterialId, kingDeeOtherStockOutItem.getMaterialId()).last("limit 1").one();
+
+        if (stock == null)
+            throw new RemoteServiceException(kingDeeOtherStockOutItem.getMaterialName()+"该物料没有库存,不能退库");
+
+
+        stockCommonLogic.stockAccLog("其他出库减少库存",stock,kingDeeOtherStockOutItem.getQty(),kingDeeOtherStockOutItem.getBillNo(),false,"其他出库单");
+
+        stock.setStockQty(stock.getStockQty().subtract(kingDeeOtherStockOutItem.getQty()));
+
+        if (stock.getStockQty().doubleValue() < 1)
+            throw new RemoteServiceException(kingDeeOtherStockOutItem.getMaterialName()+"该物料没有库存,不能退库");
+
+        stock.updateById();
+
     }
 }