|
|
@@ -139,6 +139,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
.setWhId(outboundItemVO.getWhId())
|
|
|
.setNonStdCode(outboundItemVO.getNonStdCode()));
|
|
|
}
|
|
|
+ //库存不存在
|
|
|
+ if(inventoryResponse == null){
|
|
|
+ //当前出库商品中在库存中不存在
|
|
|
+ throw new BaseBusinessException(ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getCode(),
|
|
|
+ ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
|
|
|
+ }
|
|
|
return inventoryResponse;
|
|
|
}
|
|
|
|
|
|
@@ -155,6 +161,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
|
|
|
}
|
|
|
//endregion
|
|
|
+
|
|
|
//可以负库存 不用交验库存直接走负库存逻辑
|
|
|
if (outboundVO.getFlgHandleSetting()) {
|
|
|
for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
|
|
|
@@ -188,8 +195,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
outboundItemVO.setNotEnoughInventoryQty(invQty.abs());
|
|
|
}
|
|
|
} else {
|
|
|
- //不够库存数量----新建出库中数量
|
|
|
- outboundItemVO.setNotEnoughInventoryQty(outboundItemVO.getOutingQty());
|
|
|
+ //todo 2024年7月2日09:23:38 修改成无库存不允许出库
|
|
|
+// //不够库存数量----新建出库中数量
|
|
|
+// outboundItemVO.setNotEnoughInventoryQty(outboundItemVO.getOutingQty());
|
|
|
+ //当前出库商品中在库存中不存在
|
|
|
+ throw new BaseBusinessException(ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getCode(),
|
|
|
+ ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -217,7 +228,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
//销售出库新建
|
|
|
if (itemList != null && itemList.size() > 0) {
|
|
|
for (OutboundItemVO outboundItemVO : itemList) {
|
|
|
- if (outboundItemVO.getSkuId() != null) { //过滤外协品 外协品没有箱片
|
|
|
+ //过滤外协品 外协品没有箱片
|
|
|
+ if (outboundItemVO.getSkuId() != null) {
|
|
|
//箱
|
|
|
outboundItemVO.setOutBox(Integer.valueOf(outboundItemVO.getOutingQty().divide(outboundItemVO.getPackBox(), 0, RoundingMode.DOWN).toString()));
|
|
|
//片
|
|
|
@@ -554,6 +566,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
new UpdateWrapper<Outbound>().lambda()
|
|
|
.eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
|
|
|
);
|
|
|
+
|
|
|
//region 已出库 应收记账
|
|
|
if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
accountService.accReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
|
|
|
@@ -842,7 +855,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
//endregion
|
|
|
|
|
|
//region 修改销售总单
|
|
|
-
|
|
|
this.updateOrderMessageByEdit(outboundResponse, outboundVO.getItemList(), outboundVO.getDeleteItemList());
|
|
|
//endregion
|
|
|
|
|
|
@@ -886,15 +898,17 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
//region 出库中编辑
|
|
|
if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundVO.getOutStatus()) ||
|
|
|
Constant.OutStatus.DAICHUKU.getName().equals(outboundVO.getOutStatus())) {
|
|
|
+
|
|
|
//region 修改明细
|
|
|
List<OutboundItemVO> itemList = outboundVO.getItemList();
|
|
|
for (OutboundItemVO outboundItemVO : itemList) {
|
|
|
|
|
|
//根据id查询 获取到还未进行修改的数据
|
|
|
- OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
|
|
|
+ OutboundItemResponse outboundItemResponse = null;
|
|
|
|
|
|
//region 编辑明细
|
|
|
if (outboundItemVO.getItemId() != null) {
|
|
|
+ outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
|
|
|
|
|
|
//region 反写订单总单 数据需要 把查出来的出库中数量用别的变量存起来
|
|
|
outboundItemVO.setUpdateOrderOutingQty(outboundItemResponse.getOutingQty());
|
|
|
@@ -946,8 +960,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
|
|
|
OrderItemResponse orderItemResponse = orderItemMapper.selectById(outboundItemVO.getFromItemId());
|
|
|
OrderItem orderItem = new OrderItem();
|
|
|
orderItem.setItemId(outboundItemVO.getFromItemId());
|
|
|
- orderItem.setOutingQty(outboundItemResponse.getOutingQty().negate().add(outboundItemVO.getOutingQty()));
|
|
|
- orderItem.setOutingAmt(outboundItemResponse.getOutingAmt().negate().add(outboundItemVO.getOutingAmt()));
|
|
|
+ orderItem.setOutingQty(( outboundItemResponse != null ? outboundItemResponse.getOutingQty().negate() : BigDecimal.ZERO).add(outboundItemVO.getOutingQty()));
|
|
|
+ orderItem.setOutingAmt(( outboundItemResponse != null ? outboundItemResponse.getOutingAmt().negate() : BigDecimal.ZERO).add(outboundItemVO.getOutingAmt()));
|
|
|
//出库状态
|
|
|
String outStatus = this.setOutStatus(orderItemResponse.getOutingQty().add(orderItem.getOutingQty()),
|
|
|
orderItemResponse.getOutQty(), orderItemResponse.getItemQty());
|