|
@@ -10,21 +10,22 @@ import com.zfire.mall.manager.bean.k3.*;
|
|
import com.zfire.mall.manager.bean.pick.PickManagerBean;
|
|
import com.zfire.mall.manager.bean.pick.PickManagerBean;
|
|
import com.zfire.mall.manager.commonmapper.manage.TransferMapper;
|
|
import com.zfire.mall.manager.commonmapper.manage.TransferMapper;
|
|
import com.zfire.mall.manager.constant.KingDeeCons;
|
|
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.KingDeeSupplierService;
|
|
import com.zfire.mall.manager.plus.service.KingDeeTransferItemService;
|
|
import com.zfire.mall.manager.plus.service.KingDeeTransferItemService;
|
|
import com.zfire.mall.manager.plus.service.KingDeeTransferService;
|
|
import com.zfire.mall.manager.plus.service.KingDeeTransferService;
|
|
|
|
+import com.zfire.mall.manager.plus.service.StockService;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
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
|
|
@Service
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -43,6 +44,12 @@ public class K3TransferLogic {
|
|
@Autowired
|
|
@Autowired
|
|
TransferMapper transferMapper;
|
|
TransferMapper transferMapper;
|
|
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ StockService stockService;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ StockCommonLogic stockCommonLogic;
|
|
|
|
+
|
|
|
|
|
|
// public void allSync(String orgId, String orgNumber, String startTime, String endTime) throws Exception {
|
|
// 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) {
|
|
public void examine(String billNo, String cancelStatus) {
|
|
|
|
|
|
KingDeeTransfer kingDeeTransfer = kingDeeTransferService.getById(billNo);
|
|
KingDeeTransfer kingDeeTransfer = kingDeeTransferService.getById(billNo);
|
|
kingDeeTransfer.setCancelStatus(cancelStatus);
|
|
kingDeeTransfer.setCancelStatus(cancelStatus);
|
|
kingDeeTransfer.updateById();
|
|
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();
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
}
|
|
}
|