From 109ca8d2edd279ee8a3f08199f9dedb164aaee01 Mon Sep 17 00:00:00 2001 From: cjl Date: Thu, 31 Jan 2019 10:56:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=95=86=E5=93=81=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsh/erp/constants/ExceptionConstants.java | 7 +- .../service/depotItem/DepotItemService.java | 104 +++++++++++------- 2 files changed, 72 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/jsh/erp/constants/ExceptionConstants.java b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java index 6e795ca1..8056ad58 100644 --- a/src/main/java/com/jsh/erp/constants/ExceptionConstants.java +++ b/src/main/java/com/jsh/erp/constants/ExceptionConstants.java @@ -32,10 +32,10 @@ public class ExceptionConstants { public static final int SERIAL_NUMBERE_ALREADY_EXISTS_CODE = 10500000; public static final String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号已存在"; /**序列号不能为为空*/ - public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500000; + public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500001; public static final String SERIAL_NUMBERE_NOT_BE_EMPTY_MSG = "序列号不能为为空"; /**商品%s下序列号不充足,请补充后重试*/ - public static final int MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE = 10500000; + public static final int MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE = 10500002; public static final String MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_MSG = "商品:%s下序列号不充足,请补充后重试"; @@ -56,6 +56,9 @@ public class ExceptionConstants { //该商品已绑定序列号数量小于等于商品现有库存 public static final int MATERIAL_SERIAL_NUMBERE_NOT_MORE_THAN_STORAGE_CODE = 8000003; public static final String MATERIAL_SERIAL_NUMBERE_NOT_MORE_THAN_STORAGE_MSG = "该商品已绑定序列号数量大于等于商品现有库存"; + //商品库存不足 + public static final int MATERIAL_STOCK_NOT_ENOUGH_CODE = 8000004; + public static final String MATERIAL_STOCK_NOT_ENOUGH_MSG = "商品:%s库存不足"; /** * 标准正常返回/操作成功返回 diff --git a/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index e63664d2..f9b7b21f 100644 --- a/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -3,11 +3,13 @@ package com.jsh.erp.service.depotItem; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.jsh.erp.constants.BusinessConstants; +import com.jsh.erp.constants.ExceptionConstants; import com.jsh.erp.datasource.entities.*; import com.jsh.erp.datasource.mappers.DepotHeadMapper; import com.jsh.erp.datasource.mappers.DepotItemMapper; import com.jsh.erp.datasource.mappers.DepotItemMapperEx; import com.jsh.erp.datasource.mappers.SerialNumberMapperEx; +import com.jsh.erp.exception.BusinessRunTimeException; import com.jsh.erp.service.material.MaterialService; import com.jsh.erp.service.serialNumber.SerialNumberService; import com.jsh.erp.service.user.UserService; @@ -341,24 +343,39 @@ public class DepotItemService { depotItem.setMtype(tempInsertedJson.getString("MType")); } this.insertDepotItemWithObj(depotItem); - /**出库时处理序列号*/ - if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType()) - &&!BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubtype())){ - if(depotItem==null){ - continue; - } - /** - * 判断商品是否开启序列号,开启的收回序列号,未开启的跳过 - * */ - Material material= materialService.getMaterial(depotItem.getMaterialid()); - if(material==null){ - continue; - } - if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())) { - //查询单据子表中开启序列号的数据列表 - serialNumberService.checkAndUpdateSerialNumber(depotItem, userInfo); - } + + /** + * 出库时判断库存是否充足 + * */ + if(!BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){ + //非出库,可以直接跳过下面的操作 + continue; } + if(depotItem==null){ + continue; + } + Material material= materialService.getMaterial(depotItem.getMaterialid()); + if(material==null){ + continue; + } + if(getCurrentInStock(depotItem.getMaterialid())