|
|
@@ -165,6 +165,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//入库日期
|
|
|
inOutRecordVO.setAccDate(LocalDate.now());
|
|
|
}
|
|
|
+
|
|
|
//region 校验是否传库存需要的数据
|
|
|
this.checkInventory(inOutRecordVOList);
|
|
|
//endregion
|
|
|
@@ -775,7 +776,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
inventory.setCostAmt(costAmt);
|
|
|
//存货单价
|
|
|
inventory.setCostPrice(costAmt.compareTo(BigDecimal.ZERO) > 0 ?
|
|
|
- costAmt.divide(inventory.getInvQty()).setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
|
|
|
+ costAmt.divide(inventory.getInvQty(),BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
|
|
|
inventoryMapper.updateAmtAndQty(inventory);
|
|
|
//endregion
|
|
|
}
|
|
|
@@ -862,7 +863,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//库存资产
|
|
|
inventory.setCostAmt(inOutRecordVO.getIntoAmt());
|
|
|
//库存单价 存货资产/存货数量
|
|
|
- inventory.setCostPrice(inventory.getCostAmt().negate().divide(inventory.getInvQty().negate()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ inventory.setCostPrice(inventory.getCostAmt().negate().divide(inventory.getInvQty().negate(),BigDecimal.ROUND_HALF_UP));
|
|
|
} else {
|
|
|
//库存数量
|
|
|
inventory.setInvQty(inOutRecordVO.getIntoQty());
|
|
|
@@ -871,7 +872,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//库存资产
|
|
|
inventory.setCostAmt(inOutRecordVO.getIntoAmt());
|
|
|
//库存单价 存货资产/存货数量
|
|
|
- inventory.setCostPrice(inventory.getCostAmt().divide(inventory.getInvQty()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ inventory.setCostPrice(inventory.getCostAmt().divide(inventory.getInvQty(),BigDecimal.ROUND_HALF_UP));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -1035,6 +1036,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//endregion
|
|
|
|
|
|
//region 根据来源id和来源明细id查询数据 库存批次删除
|
|
|
+
|
|
|
//region 入库 判断库存批次数量和传入数量是否一致 不一致不允许修改
|
|
|
if ((Constant.InventoryType.INBOUND.getName().equals(inOutRecordVO.getInventoryType()) &&
|
|
|
!Constant.InventoryDocCode.PURCHASE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode()) ||
|
|
|
@@ -1057,7 +1059,6 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
} else {
|
|
|
//不允许编辑,对应库存数据已被修改
|
|
|
throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.INVENTORY_DATA_HAS_BEEN_MODIFIED.getMessage());
|
|
|
-
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
@@ -1088,7 +1089,6 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
this.updateInventoryMessageDelete(inventoryResponse, inOutRecordVO);
|
|
|
//endregion
|
|
|
|
|
|
-
|
|
|
//region 根据来源id和来源明细id查询数据 库存流水删除
|
|
|
InOutRecord inOutRecord = new InOutRecord();
|
|
|
//来源id
|
|
|
@@ -1098,7 +1098,6 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
inOutRecordMapper.deleteData(inOutRecord);
|
|
|
//endregion
|
|
|
|
|
|
-
|
|
|
//region 判断是出库但不是销售退货出库或者是采购退货入库 出库要把出库成本也删除
|
|
|
if ((Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType()) &&
|
|
|
!Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) ||
|
|
|
@@ -1154,7 +1153,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
inventory.setCostAmt(costAmt);
|
|
|
//存货单价
|
|
|
inventory.setCostPrice(costAmt.compareTo(BigDecimal.ZERO) > 0 ?
|
|
|
- costAmt.divide(inventory.getInvQty()).setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
|
|
|
+ costAmt.divide(inventory.getInvQty(),BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
|
|
|
inventoryMapper.updateAmtAndQty(inventory);
|
|
|
//endregion
|
|
|
}
|
|
|
@@ -1325,6 +1324,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
|
|
|
//新建存货流水 一正一负
|
|
|
this.insertInboundRecord(inOutRecordVO);
|
|
|
+
|
|
|
//新建出库成本
|
|
|
this.insertOutboundItemCost(inOutRecordVO);
|
|
|
}
|
|
|
@@ -1445,6 +1445,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
if (inventoryResponse == null) {
|
|
|
throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
|
|
|
}
|
|
|
+ //endregion
|
|
|
|
|
|
//region 库存存在
|
|
|
else {
|
|
|
@@ -1467,7 +1468,6 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
return inOutRecordVOList;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* @desc : 修改出库
|
|
|
* @date : 2024/4/16 9:59
|
|
|
@@ -1521,6 +1521,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
for (InOutRecordVO inOutRecordVO : inOutRecordVOList) {
|
|
|
//校验库存是否存在
|
|
|
InventoryResponse inventoryResponse = this.checkInventoryNumber(inOutRecordVO);
|
|
|
+
|
|
|
//region 库存不存在---新建
|
|
|
if (inventoryResponse == null) {
|
|
|
|
|
|
@@ -1536,6 +1537,8 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
this.insertInboundRecord(inOutRecordVO);
|
|
|
//endregion
|
|
|
}
|
|
|
+ //endregion
|
|
|
+
|
|
|
//region 库存存在
|
|
|
else {
|
|
|
inOutRecordVO.setInvId(inventoryResponse.getInvId());
|
|
|
@@ -1795,7 +1798,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//库存资产
|
|
|
inventory.setCostAmt(inOutRecordVO.getIntoAmt().negate());
|
|
|
//库存单价 存货资产/存货数量
|
|
|
- inventory.setCostPrice(inventory.getCostAmt().negate().divide(inventory.getInvQty().negate()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ inventory.setCostPrice(inventory.getCostAmt().negate().divide(inventory.getInvQty().negate(), BigDecimal.ROUND_HALF_UP));
|
|
|
} else {
|
|
|
//库存数量
|
|
|
inventory.setInvQty(inOutRecordVO.getIntoQty());
|
|
|
@@ -1804,7 +1807,7 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//库存资产
|
|
|
inventory.setCostAmt(inOutRecordVO.getIntoAmt());
|
|
|
//库存单价 存货资产/存货数量
|
|
|
- inventory.setCostPrice(inventory.getCostAmt().divide(inventory.getInvQty()).setScale(2, BigDecimal.ROUND_HALF_UP));
|
|
|
+ inventory.setCostPrice(inventory.getCostAmt().divide(inventory.getInvQty(), BigDecimal.ROUND_HALF_UP));
|
|
|
}
|
|
|
//新建
|
|
|
inventoryMapper.insert(inventory);
|
|
|
@@ -2005,6 +2008,9 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
* @date : 2024/4/8 17:19
|
|
|
* @author : 寇珊珊
|
|
|
*/
|
|
|
+ @Transactional(
|
|
|
+ rollbackFor = {Exception.class}
|
|
|
+ )
|
|
|
public InOutRecordVO insertNegativeInventoryBatch(InOutRecordVO inOutRecordVO) {
|
|
|
//查询库存批次明细 按照时间排序(正序)
|
|
|
List<InventoryBatchResponse> inventoryBatchResponseList = inventoryBatchMapper.selectAmountAndQuantity(new InventoryBatchQuery().setInvId(inOutRecordVO.getInvId()));
|