|
|
@@ -248,7 +248,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
s.getGoodsId().equals(deliveryItems.getItemId())
|
|
|
&& s.getTradeType().equals("GN")
|
|
|
&& s.getCorpId().equals(deliveryItems.getCorpId())
|
|
|
- && s.getStorageId().equals(delivery.getStorageId())
|
|
|
+ && s.getStorageId().equals(deliveryItems.getStorageId())
|
|
|
).findFirst().orElse(null);
|
|
|
} else {
|
|
|
if (ObjectUtils.isNotNull(sysClient.getParamService("synchronous"))
|
|
|
@@ -256,8 +256,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
goods = stockGoodsList.stream().filter(s ->
|
|
|
s.getGoodsId().equals(deliveryItems.getItemId())
|
|
|
&& s.getTradeType().equals("GN")
|
|
|
- && s.getCorpId().equals(deliveryItems.getCorpId())
|
|
|
- && s.getStorageId().equals(delivery.getStorageId())
|
|
|
+ && s.getWarehouseId().equals(delivery.getStorageId())
|
|
|
+ && s.getStorageId().equals(deliveryItems.getStorageId())
|
|
|
).findFirst().orElse(null);
|
|
|
stock = this.getStock(delivery.getTradeType(), deliveryItems.getCorpId(), delivery.getStorageId(), deliveryItems);
|
|
|
} else {
|
|
|
@@ -270,10 +270,10 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
// 发货
|
|
|
if (stock != null && delivery.getDeliveryType().equals(DeliveryEnum.DELIVER.getType())) {
|
|
|
// 更新库存账
|
|
|
- stockGoods = this.deliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems);
|
|
|
+ stockGoods = this.deliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems, null);
|
|
|
// 撤销发货
|
|
|
} else if (stock != null && delivery.getDeliveryType().equals(DeliveryEnum.REPEAL.getType())) {
|
|
|
- stockGoods = this.revocationDeliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems);
|
|
|
+ stockGoods = this.revocationDeliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems, null);
|
|
|
} else {
|
|
|
//新增库存账
|
|
|
throw new RuntimeException("库存为空");
|
|
|
@@ -284,10 +284,10 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
// 发货
|
|
|
if (stock != null && delivery.getDeliveryType().equals(DeliveryEnum.DELIVER.getType())) {
|
|
|
// 更新库存账
|
|
|
- stockGoods = this.deliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems);
|
|
|
+ stockGoods = this.deliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems, delivery.getDeliveryType());
|
|
|
// 撤销发货
|
|
|
} else if (stock != null && delivery.getDeliveryType().equals(DeliveryEnum.REPEAL.getType())) {
|
|
|
- stockGoods = this.revocationDeliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems);
|
|
|
+ stockGoods = this.revocationDeliverGoods(delivery.getTradeType(), stock.getId(), deliveryItems, delivery.getDeliveryType());
|
|
|
} else {
|
|
|
//新增库存账
|
|
|
throw new RuntimeException("库存为空");
|
|
|
@@ -409,6 +409,14 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
billNo = deliveryItems.getBillNo();//提单号
|
|
|
contractNumber = deliveryItems.getContractNumber();//合同号
|
|
|
} else if (tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {//国内
|
|
|
+ if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
|
|
|
+ R<StockGoodsVO> goodsVOR = stockGoodsClient.selectStock(corpId, storageId, deliveryItems.getStorageId(), deliveryItems.getItemId(), itemType, lotNo, cntrNo, billNo, contractNumber, tradeType);
|
|
|
+ if (goodsVOR.isSuccess()) {
|
|
|
+ return goodsVOR.getData();
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
//corpId = null;
|
|
|
//storageId = null;
|
|
|
} else if (tradeType.equals(OrderTypeEnum.EXPORT.getType())) {//出口
|
|
|
@@ -418,7 +426,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
corpId = null;
|
|
|
itemType = null;
|
|
|
}
|
|
|
- R<StockGoodsVO> goodsVOR = stockGoodsClient.selectStock(corpId, storageId, deliveryItems.getItemId(), itemType, lotNo, cntrNo, billNo, contractNumber, tradeType);
|
|
|
+ R<StockGoodsVO> goodsVOR = stockGoodsClient.selectStock(corpId, null, storageId, deliveryItems.getItemId(), itemType, lotNo, cntrNo, billNo, contractNumber, tradeType);
|
|
|
if (goodsVOR.isSuccess()) {
|
|
|
return goodsVOR.getData();
|
|
|
}
|
|
|
@@ -432,7 +440,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
* @param stockId 库存账id
|
|
|
* @param deliveryItems 货物明细信息
|
|
|
*/
|
|
|
- public StockGoods deliverGoods(String tradeType, Long stockId, DeliveryItems deliveryItems) {
|
|
|
+ public StockGoods deliverGoods(String tradeType, Long stockId, DeliveryItems deliveryItems, Integer deliveryType) {
|
|
|
//查询库存账
|
|
|
R<StockGoods> stockById = stockGoodsClient.getStockById(stockId);
|
|
|
if (!stockById.isSuccess()) {
|
|
|
@@ -450,15 +458,24 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
throw new RuntimeException("当前可用数量为:" + stockGoods.getSurplusRouteQuantity() + "小于发货数量,发货数量为:" + deliveryItems.getActualQuantity());
|
|
|
}
|
|
|
stockGoods.setOutQuantity(stockGoods.getOutQuantity().add(deliveryItems.getActualQuantity()));//出库数量 加
|
|
|
- if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
|
|
|
- stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getActualQuantity()));//结余数量 减
|
|
|
- stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(deliveryItems.getActualQuantity()));//可用数量 减
|
|
|
- stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(deliveryItems.getActualQuantity()));//锁定数量 减
|
|
|
+ if (DeliveryEnum.DELIVER.getType().equals(deliveryType)) {
|
|
|
+ if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getArrivalQuantity()));//结余数量 减
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().add(deliveryItems.getActualQuantity()).subtract(deliveryItems.getArrivalQuantity()));//可用数量 减
|
|
|
+ stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(deliveryItems.getActualQuantity()));//锁定数量 减
|
|
|
+ } else {
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getArrivalQuantity()));//结余数量 减
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().add(deliveryItems.getActualQuantity()).subtract(deliveryItems.getArrivalQuantity()));//可用数量 减
|
|
|
+ }
|
|
|
} else {
|
|
|
- stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getActualQuantity()));//结余数量 减
|
|
|
- stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(deliveryItems.getActualQuantity()));//可用数量 减
|
|
|
+ if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getActualQuantity()));//结余数量 减
|
|
|
+ stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(deliveryItems.getActualQuantity()));//锁定数量 减
|
|
|
+ } else {
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getActualQuantity()));//结余数量 减
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(deliveryItems.getActualQuantity()));//可用数量 减
|
|
|
+ }
|
|
|
}
|
|
|
-// stockGoods.setOutAmount(stockGoods.getOutAmount().add(deliveryItems.getDeliveryAmount()));//出库金额加
|
|
|
stockGoods.setOutAmount(stockGoods.getOutAmount().add(deliveryItems.getContractAmount()));//出库金额加
|
|
|
if (tradeType.equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
//判断出库发票重量和结余发票重量
|
|
|
@@ -492,7 +509,7 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
* @param stockId 库存账id
|
|
|
* @param deliveryItems 货物明细信息
|
|
|
*/
|
|
|
- public StockGoods revocationDeliverGoods(String tradeType, Long stockId, DeliveryItems deliveryItems) {
|
|
|
+ public StockGoods revocationDeliverGoods(String tradeType, Long stockId, DeliveryItems deliveryItems, Integer deliveryType) {
|
|
|
//查询库存账
|
|
|
R<StockGoods> stockById = stockGoodsClient.getStockById(stockId);
|
|
|
if (!stockById.isSuccess()) {
|
|
|
@@ -506,34 +523,39 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
if (stockGoods.getOutQuantity().compareTo(deliveryItems.getActualQuantity()) < 0) {
|
|
|
throw new RuntimeException("当前可减少出库数量为:" + stockGoods.getOutQuantity() + "小于发货数量,发货数量为:" + deliveryItems.getActualQuantity());
|
|
|
}
|
|
|
- stockGoods.setOutQuantity(stockGoods.getOutQuantity().subtract(deliveryItems.getActualQuantity()));//出库数量 减
|
|
|
- //stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().add(deliveryItems.getActualQuantity()));//锁定数量 加
|
|
|
- stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().add(deliveryItems.getActualQuantity()));//结余数量 加
|
|
|
- stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().add(deliveryItems.getActualQuantity()));//可用数量 加
|
|
|
- if ("681169".equals(AuthUtil.getTenantId())) {
|
|
|
- stockGoods.setOutAmount(stockGoods.getOutAmount().subtract(deliveryItems.getDeliveryAmount()));//出库金额减
|
|
|
+ if (DeliveryEnum.REPEAL.getType().equals(deliveryType)) {
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().add(deliveryItems.getArrivalQuantity()));//结余数量 加
|
|
|
+ if (ObjectUtils.isNotNull(sysClient.getParamService("synchronous"))
|
|
|
+ && "1".equals(sysClient.getParamService("synchronous"))) {
|
|
|
+ stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().add(deliveryItems.getActualQuantity()));//锁定数量 加
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getBalanceQuantity().subtract(stockGoods.getLockingQuantity()));//可用数量 加
|
|
|
+ }
|
|
|
} else {
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(deliveryItems.getArrivalQuantity()));//结余数量 加
|
|
|
if (ObjectUtils.isNotNull(sysClient.getParamService("synchronous"))
|
|
|
&& "1".equals(sysClient.getParamService("synchronous"))) {
|
|
|
- stockGoods.setOutAmount(stockGoods.getOutAmount().subtract(deliveryItems.getDeliveryAmount()));//出库金额减
|
|
|
- } else {
|
|
|
- stockGoods.setOutAmount(stockGoods.getOutAmount().subtract(deliveryItems.getContractAmount()));//出库金额减
|
|
|
+ stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(deliveryItems.getActualQuantity()));//锁定数量 加
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getBalanceQuantity().subtract(stockGoods.getLockingQuantity()));//可用数量 加
|
|
|
}
|
|
|
}
|
|
|
+ if ("681169".equals(AuthUtil.getTenantId())) {
|
|
|
+ stockGoods.setOutAmount(stockGoods.getOutAmount().subtract(deliveryItems.getDeliveryAmount()));//出库金额减
|
|
|
+ } else {
|
|
|
+ stockGoods.setOutAmount(stockGoods.getOutAmount().subtract(deliveryItems.getContractAmount()));//出库金额减
|
|
|
+ }
|
|
|
+ stockGoods.setOutQuantity(stockGoods.getOutQuantity().subtract(deliveryItems.getActualQuantity()));//出库数量 减
|
|
|
if (tradeType.equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
//判断出库发票重量和结余发票重量
|
|
|
if (stockGoods.getOutWeight().compareTo(deliveryItems.getInvoiceWeight()) < 0) {
|
|
|
throw new RuntimeException("当前出库发票重量为:" + stockGoods.getOutWeight() + "小于发货发票重量,发货发票重量为:" + deliveryItems.getInvoiceWeight());
|
|
|
}
|
|
|
stockGoods.setOutWeight(stockGoods.getOutWeight().subtract(deliveryItems.getInvoiceWeight()));//出库发票重量 减
|
|
|
- //stockGoods.setLockingWeight(stockGoods.getLockingWeight().add(deliveryItems.getInvoiceWeight()));//锁定发票重量 加
|
|
|
stockGoods.setBalanceWeight(stockGoods.getBalanceWeight().add(deliveryItems.getInvoiceWeight()));//结余发票重量 加
|
|
|
//判断出库码单重量和结余码单重量
|
|
|
if (stockGoods.getOutVolumn().compareTo(deliveryItems.getBillWeight()) < 0) {
|
|
|
throw new RuntimeException("当前出库码单重量为:" + stockGoods.getOutVolumn() + "小于发货码单重量,发货码单重量为:" + deliveryItems.getBillWeight());
|
|
|
}
|
|
|
stockGoods.setOutVolumn(stockGoods.getOutVolumn().subtract(deliveryItems.getBillWeight()));//出库码单重量 减
|
|
|
- //stockGoods.setLockingVolumn(stockGoods.getLockingVolumn().add(deliveryItems.getBillWeight()));//锁定码单重量 加
|
|
|
stockGoods.setBalanceVolumn(stockGoods.getBalanceVolumn().add(deliveryItems.getBillWeight()));//结余码单重量 加
|
|
|
}
|
|
|
stockGoods.setUpdateTime(new Date());
|
|
|
@@ -561,8 +583,12 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
if (stockById.getData() == null) {
|
|
|
throw new RuntimeException("库存账不存在");
|
|
|
}
|
|
|
-
|
|
|
- BigDecimal actualQuantity = deliveryItems.getActualQuantity() == null ? new BigDecimal("0") : deliveryItems.getActualQuantity();
|
|
|
+ BigDecimal actualQuantity = new BigDecimal("0.00");
|
|
|
+ if ("681169".equals(AuthUtil.getTenantId())){
|
|
|
+ actualQuantity = deliveryItems.getActualQuantity() == null ? new BigDecimal("0") : deliveryItems.getArrivalQuantity();
|
|
|
+ }else{
|
|
|
+ actualQuantity = deliveryItems.getActualQuantity() == null ? new BigDecimal("0") : deliveryItems.getActualQuantity();
|
|
|
+ }
|
|
|
BigDecimal invoiceWeight = deliveryItems.getInvoiceWeight() == null ? new BigDecimal("0") : deliveryItems.getInvoiceWeight();
|
|
|
BigDecimal billWeight = deliveryItems.getBillWeight() == null ? new BigDecimal("0") : deliveryItems.getBillWeight();
|
|
|
|
|
|
@@ -587,7 +613,19 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
stockGoods.setBalanceVolumn(stockGoods.getBalanceVolumn().subtract(billWeight));//结余码单重量 减
|
|
|
}
|
|
|
} else {
|
|
|
- stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().add(deliveryItems.getActualQuantity()));
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getBalanceQuantity().subtract(actualQuantity));//结余数量 减
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(actualQuantity));//可用数量 减
|
|
|
+ if (ObjectUtils.isNotNull(stockGoods.getBalanceAmount())) {
|
|
|
+ stockGoods.setBalanceAmount(stockGoods.getBalanceAmount().subtract(deliveryItems.getDeliveryAmount()));
|
|
|
+ } else {
|
|
|
+ stockGoods.setBalanceAmount(deliveryItems.getDeliveryAmount());
|
|
|
+ }
|
|
|
+ if (!new BigDecimal("0.00").equals(stockGoods.getBalanceAmount()) &&
|
|
|
+ !new BigDecimal("0.00").equals(stockGoods.getBalanceQuantity())) {
|
|
|
+ stockGoods.setStockPrice(stockGoods.getBalanceAmount().divide(stockGoods.getBalanceQuantity(), MathContext.DECIMAL32));
|
|
|
+ } else {
|
|
|
+ stockGoods.setStockPrice(new BigDecimal("0.00"));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
stockGoods.setUpdateTime(new Date());
|
|
|
@@ -629,29 +667,36 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
stockGoods.setBalanceVolumn(stockGoods.getBalanceVolumn() != null ? stockGoods.getBalanceVolumn().add(deliveryItems.getBillWeight()) : new BigDecimal("0").add(deliveryItems.getBillWeight()));//结余码单重量 加
|
|
|
}
|
|
|
} else {
|
|
|
- if (!"681169".equals(AuthUtil.getTenantId())) {
|
|
|
- if (stockGoods.getLockingQuantity().compareTo(deliveryItems.getActualQuantity()) < 0) {
|
|
|
- throw new RuntimeException(stockGoods.getCode() + "更新库存总账失败,锁定库存不足");
|
|
|
+ if ("CG".equals(deliveryItems.getBillType())) {
|
|
|
+ if ("681169".equals(AuthUtil.getTenantId())) {
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getSurplusRouteQuantity().subtract(deliveryItems.getArrivalQuantity()));//结余数量
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().subtract(deliveryItems.getArrivalQuantity()));//可用数量
|
|
|
} else {
|
|
|
- if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
|
|
|
- stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(deliveryItems.getActualQuantity()));
|
|
|
+ //入库数量
|
|
|
+ stockGoods.setInDate(new Date());//入库日期
|
|
|
+ stockGoods.setInQuantity(stockGoods.getSurplusRouteQuantity().add(deliveryItems.getActualQuantity()));//入库数量
|
|
|
+ stockGoods.setBalanceQuantity(stockGoods.getSurplusRouteQuantity().add(deliveryItems.getActualQuantity()));//结余数量
|
|
|
+ stockGoods.setInAmount(stockGoods.getSurplusRouteQuantity().add(deliveryItems.getDeliveryAmount()));//入库金额
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().add(deliveryItems.getActualQuantity()));//可用数量
|
|
|
+ //库存金额
|
|
|
+ if (ObjectUtils.isNotNull(stockGoods.getBalanceAmount())) {
|
|
|
+ stockGoods.setBalanceAmount(stockGoods.getBalanceAmount().add(deliveryItems.getDeliveryAmount()));
|
|
|
+ } else {
|
|
|
+ stockGoods.setBalanceAmount(deliveryItems.getDeliveryAmount());
|
|
|
+ }
|
|
|
+ if (!new BigDecimal("0.00").equals(stockGoods.getBalanceAmount()) &&
|
|
|
+ !new BigDecimal("0.00").equals(stockGoods.getBalanceQuantity())) {
|
|
|
+ stockGoods.setStockPrice(stockGoods.getBalanceAmount().divide(stockGoods.getBalanceQuantity(), MathContext.DECIMAL32));
|
|
|
+ } else {
|
|
|
+ stockGoods.setStockPrice(new BigDecimal("0.00"));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(deliveryItems.getActualQuantity()));
|
|
|
}
|
|
|
stockGoods.setOrderType(deliveryItems.getOrderType());
|
|
|
stockGoods.setCntrNo(deliveryItems.getCntrNo());
|
|
|
stockGoods.setUpdateTime(new Date());
|
|
|
stockGoods.setUpdateUser(SecureUtil.getUserId());
|
|
|
- if (!new BigDecimal("0.00").equals(stockGoods.getBalanceAmount()) &&
|
|
|
- !new BigDecimal("0.00").equals(stockGoods.getBalanceQuantity())) {
|
|
|
- //库存金额
|
|
|
- stockGoods.setBalanceAmount(stockGoods.getBalanceAmount().subtract(deliveryItems.getDeliveryAmount()));
|
|
|
- stockGoods.setStockPrice(stockGoods.getBalanceAmount().divide(stockGoods.getBalanceQuantity(), MathContext.DECIMAL32));
|
|
|
- } else {
|
|
|
- stockGoods.setStockPrice(new BigDecimal("0.00"));
|
|
|
- }
|
|
|
boolean updateStock = stockGoodsClient.updateStock(stockGoods);
|
|
|
if (!updateStock) {
|
|
|
throw new RuntimeException(stockGoods.getCode() + "更新库存总账失败");
|
|
|
@@ -677,10 +722,10 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
stockGoods.setInQuantity(deliveryItems.getActualQuantity());//入库数量
|
|
|
stockGoods.setOutQuantity(BigDecimal.ZERO);//出库数量
|
|
|
stockGoods.setLockingQuantity(BigDecimal.ZERO);//锁定数量
|
|
|
- stockGoods.setBalanceQuantity(deliveryItems.getActualQuantity());//结余数量
|
|
|
+ stockGoods.setBalanceQuantity(deliveryItems.getArrivalQuantity());//结余数量
|
|
|
stockGoods.setEnRouteQuantity(BigDecimal.ZERO);//在途数量
|
|
|
stockGoods.setInAmount(deliveryItems.getDeliveryAmount());//入库金额
|
|
|
- stockGoods.setSurplusRouteQuantity(deliveryItems.getActualQuantity());//可用数量
|
|
|
+ stockGoods.setSurplusRouteQuantity(deliveryItems.getArrivalQuantity());//可用数量
|
|
|
//进口贸易 还需要追加码单重量 和 发票重量
|
|
|
if (tradeType.equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
stockGoods.setBillNo(deliveryItems.getBillNo());//提单号
|
|
|
@@ -708,7 +753,8 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
//国内
|
|
|
else if (tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
|
stockGoods.setCorpId(corpId);
|
|
|
- stockGoods.setStorageId(storageId);
|
|
|
+ stockGoods.setWarehouseId(storageId);
|
|
|
+ stockGoods.setStorageId(deliveryItems.getStorageId());
|
|
|
stockGoods.setItemType(deliveryItems.getSpecificationAndModel());//规格明细
|
|
|
stockGoods.setTradeType("GN");
|
|
|
//商品 规格 供应商 仓库
|
|
|
@@ -728,7 +774,11 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
stockGoods.setTenantId(SecureUtil.getTenantId());
|
|
|
stockGoods.setCreateTime(new Date());
|
|
|
//库存金额
|
|
|
- stockGoods.setBalanceAmount(deliveryItems.getDeliveryAmount());
|
|
|
+ if (ObjectUtils.isNotNull(stockGoods.getBalanceAmount())) {
|
|
|
+ stockGoods.setBalanceAmount(stockGoods.getBalanceAmount().add(deliveryItems.getDeliveryAmount()));
|
|
|
+ } else {
|
|
|
+ stockGoods.setBalanceAmount(deliveryItems.getDeliveryAmount());
|
|
|
+ }
|
|
|
if (!new BigDecimal("0.00").equals(stockGoods.getBalanceAmount()) &&
|
|
|
!new BigDecimal("0.00").equals(stockGoods.getBalanceQuantity())) {
|
|
|
stockGoods.setStockPrice(stockGoods.getBalanceAmount().divide(stockGoods.getBalanceQuantity(), MathContext.DECIMAL32));
|
|
|
@@ -1058,16 +1108,24 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
throw new RuntimeException("库存账不存在");
|
|
|
}
|
|
|
StockGoods stockGoods = stockById.getData();
|
|
|
- if (!"681169".equals(AuthUtil.getTenantId())) {
|
|
|
- if (stockGoods.getLockingQuantity().compareTo(e.getOrderQuantity()) < 0) {
|
|
|
- throw new RuntimeException(stockGoods.getCode() + "更新库存总账失败,锁定库存不足");
|
|
|
- } else {
|
|
|
+ /*if (!"681169".equals(AuthUtil.getTenantId())) {
|
|
|
+ else {
|
|
|
if (ObjectUtils.isNotNull(sysClient.getParamService("inventory")) && "1".equals(sysClient.getParamService("inventory"))) {
|
|
|
stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(e.getOrderQuantity()));
|
|
|
}
|
|
|
}
|
|
|
+ }*/
|
|
|
+ if (stockGoods.getLockingQuantity().compareTo(e.getOrderQuantity()) < 0) {
|
|
|
+ throw new RuntimeException(stockGoods.getCode() + "更新库存总账失败,锁定库存不足");
|
|
|
+ } else {
|
|
|
+ stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(e.getOrderQuantity()));
|
|
|
+ // todo
|
|
|
+ /*if (ObjectUtils.isNotNull(stockGoods.getSurplusRouteQuantity())) {
|
|
|
+ stockGoods.setSurplusRouteQuantity(stockGoods.getSurplusRouteQuantity().add(e.getOrderQuantity()));
|
|
|
+ } else {
|
|
|
+ stockGoods.setSurplusRouteQuantity(e.getOrderQuantity());
|
|
|
+ }*/
|
|
|
}
|
|
|
- stockGoods.setLockingQuantity(stockGoods.getLockingQuantity().subtract(e.getOrderQuantity()));
|
|
|
stockGoods.setUpdateTime(new Date());
|
|
|
stockGoods.setUpdateUser(SecureUtil.getUserId());
|
|
|
boolean updateStock = stockGoodsClient.updateStock(stockGoods);
|
|
|
@@ -1076,80 +1134,6 @@ public class DeliveryItemsServiceImpl extends ServiceImpl<DeliveryItemsMapper, D
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void saveStockInventory(String tradeType, Long corpId, Long storageId, OrderItems deliveryItems, String orderType) {
|
|
|
- StockGoods stockGoods = new StockGoods();
|
|
|
- stockGoods.setGoodsId(deliveryItems.getItemId());//商品id
|
|
|
- //入库数量
|
|
|
- stockGoods.setInDate(new Date());//入库日期
|
|
|
- stockGoods.setInQuantity(deliveryItems.getActualQuantity());//入库数量
|
|
|
- stockGoods.setOutQuantity(BigDecimal.ZERO);//出库数量
|
|
|
- stockGoods.setLockingQuantity(BigDecimal.ZERO);//锁定数量
|
|
|
- stockGoods.setBalanceQuantity(deliveryItems.getActualQuantity());//结余数量
|
|
|
- stockGoods.setEnRouteQuantity(BigDecimal.ZERO);//在途数量
|
|
|
- stockGoods.setInAmount(deliveryItems.getAmount());//入库金额
|
|
|
- stockGoods.setSurplusRouteQuantity(deliveryItems.getActualQuantity());//可用数量
|
|
|
- //进口贸易 还需要追加码单重量 和 发票重量
|
|
|
- if (tradeType.equals(OrderTypeEnum.IMPORT.getType())) {
|
|
|
- stockGoods.setBillNo(deliveryItems.getBillNo());//提单号
|
|
|
- stockGoods.setContractNumber(deliveryItems.getBillNo());//合同号
|
|
|
- stockGoods.setStorageId(storageId);//仓库id
|
|
|
- stockGoods.setCntrNo(deliveryItems.getCntrNo());//箱号
|
|
|
-
|
|
|
-
|
|
|
- stockGoods.setInWeight(deliveryItems.getInvoiceWeight());//入库发票重量
|
|
|
- stockGoods.setOutWeight(new BigDecimal(0.00));//出库发票重量
|
|
|
- stockGoods.setLockingWeight(new BigDecimal(0.00));//锁定发票重量
|
|
|
- stockGoods.setBalanceWeight(deliveryItems.getInvoiceWeight());//结余发票重量
|
|
|
- stockGoods.setInVolumn(deliveryItems.getBillWeight());//入库码单重量
|
|
|
- stockGoods.setOutVolumn(new BigDecimal(0.00));//出库码单重量
|
|
|
- stockGoods.setLockingVolumn(new BigDecimal(0.00));//锁定码单重量
|
|
|
- stockGoods.setBalanceVolumn(deliveryItems.getBillWeight());//结余码单重量
|
|
|
-
|
|
|
- stockGoods.setTradeType("JK");
|
|
|
- if (ObjectUtil.isNotEmpty(orderType)) {
|
|
|
- stockGoods.setOrderType(orderType);
|
|
|
- } else {
|
|
|
- stockGoods.setOrderType(deliveryItems.getBillType());
|
|
|
- }
|
|
|
- }
|
|
|
- //国内
|
|
|
- else if (tradeType.equals(OrderTypeEnum.DOMESTIC.getType())) {
|
|
|
- stockGoods.setCorpId(corpId);
|
|
|
- stockGoods.setStorageId(storageId);
|
|
|
- stockGoods.setItemType(deliveryItems.getSpecificationAndModel());//规格明细
|
|
|
- stockGoods.setTradeType("GN");
|
|
|
- //商品 规格 供应商 仓库
|
|
|
- }
|
|
|
- //出口
|
|
|
- else if (tradeType.equals(OrderTypeEnum.EXPORT.getType())) {
|
|
|
- stockGoods.setTradeType("CK");
|
|
|
- stockGoods.setItemType(deliveryItems.getSpecificationAndModel());//规格明细
|
|
|
- }
|
|
|
- //经销商
|
|
|
- else if (tradeType.equals(OrderTypeEnum.DEALER.getType())) {
|
|
|
- stockGoods.setTradeType("JXS");
|
|
|
- stockGoods.setStorageId(storageId);
|
|
|
- }
|
|
|
- stockGoods.setCntrNo(deliveryItems.getCntrNo());
|
|
|
- stockGoods.setCreateUser(SecureUtil.getUserId());
|
|
|
- stockGoods.setTenantId(SecureUtil.getTenantId());
|
|
|
- stockGoods.setCreateTime(new Date());
|
|
|
- //库存金额
|
|
|
- stockGoods.setBalanceAmount(deliveryItems.getAmount());
|
|
|
- if (!new BigDecimal("0.00").equals(stockGoods.getBalanceAmount()) &&
|
|
|
- !new BigDecimal("0.00").equals(stockGoods.getBalanceQuantity())) {
|
|
|
- stockGoods.setStockPrice(stockGoods.getBalanceAmount().divide(stockGoods.getBalanceQuantity(), MathContext.DECIMAL32));
|
|
|
- } else {
|
|
|
- stockGoods.setStockPrice(new BigDecimal("0.00"));
|
|
|
- }
|
|
|
-
|
|
|
- R saveStock = stockGoodsClient.saveStock(stockGoods);
|
|
|
- if (!saveStock.isSuccess()) {
|
|
|
- throw new SecurityException("插入库存失败");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 将Object转换成List类型
|
|
|
*
|