|
|
@@ -213,18 +213,21 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.DETAIL_LIST_IS_NUL.getMessage());
|
|
|
}
|
|
|
for (InOutRecordVO inventoryBatchVO : inOutRecordVOList) {
|
|
|
- //商品ID
|
|
|
- if (inventoryBatchVO.getSkuId() == null || "".equals(inventoryBatchVO.getSkuId())) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NULL.getMessage());
|
|
|
- }
|
|
|
- //存货ID
|
|
|
- if (Constant.InventoryType.OUTBOUND .equals(inventoryBatchVO.getInventoryType())
|
|
|
- && ( inventoryBatchVO.getInvId() == null || "".equals(inventoryBatchVO.getInvId()))) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
|
|
|
- }
|
|
|
- //仓库ID
|
|
|
- if (!inventoryBatchVO.getCanNegativeFlag() && (inventoryBatchVO.getWhId() == null || "".equals(inventoryBatchVO.getWhId()))) {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.WAREHOUSE_IS_NULL.getMessage());
|
|
|
+ // 外协供应商ID 不进行判断商品Id和库存ID
|
|
|
+ if(inventoryBatchVO.getSupId() == null) {
|
|
|
+ //商品ID
|
|
|
+ if (inventoryBatchVO.getSkuId() == null || "".equals(inventoryBatchVO.getSkuId())) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NULL.getMessage());
|
|
|
+ }
|
|
|
+ //存货ID
|
|
|
+ if (Constant.InventoryType.OUTBOUND.equals(inventoryBatchVO.getInventoryType())
|
|
|
+ && (inventoryBatchVO.getInvId() == null || "".equals(inventoryBatchVO.getInvId()))) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
|
|
|
+ }
|
|
|
+ //仓库ID
|
|
|
+ if (!inventoryBatchVO.getCanNegativeFlag() && (inventoryBatchVO.getWhId() == null || "".equals(inventoryBatchVO.getWhId()))) {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.WAREHOUSE_IS_NULL.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
// //单价不可为空
|
|
|
// if(inventoryBatchVO.getCostPrice()==null || inventoryBatchVO.getCostPrice().compareTo(BigDecimal.ZERO)==0 ){
|
|
|
@@ -513,10 +516,13 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
public InventoryResponse checkInventoryNumber(InOutRecordVO inOutRecordVO) {
|
|
|
//存在标识
|
|
|
//根据sku,仓库,非标号查询
|
|
|
- InventoryResponse inventoryResponse = inventoryMapper.selectByOther(new InventoryQuery()
|
|
|
- .setSkuId(inOutRecordVO.getSkuId())
|
|
|
- .setWhId(inOutRecordVO.getWhId())
|
|
|
- .setNonStdCode(inOutRecordVO.getNonStdCode()));
|
|
|
+ InventoryResponse inventoryResponse = null ;
|
|
|
+ if(inOutRecordVO.getSkuId() != null){
|
|
|
+ inventoryResponse = inventoryMapper.selectByOther(new InventoryQuery()
|
|
|
+ .setSkuId(inOutRecordVO.getSkuId())
|
|
|
+ .setWhId(inOutRecordVO.getWhId())
|
|
|
+ .setNonStdCode(inOutRecordVO.getNonStdCode()));
|
|
|
+ }
|
|
|
return inventoryResponse;
|
|
|
}
|
|
|
|
|
|
@@ -593,8 +599,8 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
else if (Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType())) {
|
|
|
//region 库存不存在 再判断销售退货出库和其他类型出库
|
|
|
if (inventoryResponse == null) {
|
|
|
- //region 根据源出库单明细Id存在 去出库成本里去查价格
|
|
|
- if (inOutRecordVO.getSOutItemId() != null) {
|
|
|
+ //region 根据源出库单明细Id存在 去出库成本里去查价格 todo 增加判断 为了解决销售退货的问题
|
|
|
+ if (inOutRecordVO.getSOutItemId() != null && Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
|
|
|
List<OutboundItemCostResponse> outboundItemCostResponses = outboundItemCostMapper.selectByCond(new OutboundItemCostQuery().setOutItemId(inOutRecordVO.getSOutItemId()));
|
|
|
if (outboundItemCostResponses.size() > 0) {
|
|
|
//出库单价
|
|
|
@@ -609,25 +615,26 @@ public class InventoryService extends BaseService<Inventory> {
|
|
|
//endregion
|
|
|
|
|
|
//region 销售退货出库 (负向出库相当于入库)
|
|
|
- if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
|
|
|
- //region 新建库存
|
|
|
- inOutRecordVO = this.insertInventory(inOutRecordVO);
|
|
|
- //endregion
|
|
|
-
|
|
|
- //region 库存批次
|
|
|
- this.insertInventoryBatch(inOutRecordVO);
|
|
|
- //endregion
|
|
|
-
|
|
|
- //region 库存流水
|
|
|
- this.insertInboundRecord(inOutRecordVO);
|
|
|
+ if(inOutRecordVO.getSkuId() != null) {
|
|
|
+ if (Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
|
|
|
+ //region 新建库存
|
|
|
+ inOutRecordVO = this.insertInventory(inOutRecordVO);
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 库存批次
|
|
|
+ this.insertInventoryBatch(inOutRecordVO);
|
|
|
+ //endregion
|
|
|
+
|
|
|
+ //region 库存流水
|
|
|
+ this.insertInboundRecord(inOutRecordVO);
|
|
|
+ //endregion
|
|
|
+ }
|
|
|
//endregion
|
|
|
|
|
|
- }
|
|
|
- //endregion
|
|
|
-
|
|
|
- //region 其他类型出库 没有库存不允许进行出库
|
|
|
- else {
|
|
|
- throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
|
|
|
+ //region 其他类型出库 没有库存不允许进行出库
|
|
|
+ else {
|
|
|
+ throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.SKU_IS_NOT_IN_INVENTORY.getMessage());
|
|
|
+ }
|
|
|
}
|
|
|
//endregion
|
|
|
}
|