diff --git a/jshERP-boot/docs/jsh_erp.sql b/jshERP-boot/docs/jsh_erp.sql index cddcdcf5..9a06b4e5 100644 --- a/jshERP-boot/docs/jsh_erp.sql +++ b/jshERP-boot/docs/jsh_erp.sql @@ -879,10 +879,10 @@ CREATE TABLE `jsh_unit` ( -- ---------------------------- -- Records of jsh_unit -- ---------------------------- -INSERT INTO `jsh_unit` VALUES ('15', '个,箱(1:12)', '个', '箱', null, null, '12', null, null, '63', '0'); -INSERT INTO `jsh_unit` VALUES ('19', '个,盒(1:15)', '个', '盒', null, null, '15', null, null, '63', '0'); -INSERT INTO `jsh_unit` VALUES ('20', '盒,箱(1:8)', '盒', '箱', null, null, '8', null, null, '63', '0'); -INSERT INTO `jsh_unit` VALUES ('21', '瓶,箱(1:12)', '瓶', '箱', null, null, '12', null, null, '63', '0'); +INSERT INTO `jsh_unit` VALUES ('15', '个/(箱=12个)', '个', '箱', null, null, '12', null, null, '63', '0'); +INSERT INTO `jsh_unit` VALUES ('19', '个/(盒=15个)', '个', '盒', null, null, '15', null, null, '63', '0'); +INSERT INTO `jsh_unit` VALUES ('20', '盒/(箱=8盒)', '盒', '箱', null, null, '8', null, null, '63', '0'); +INSERT INTO `jsh_unit` VALUES ('21', '瓶/(箱=12瓶)', '瓶', '箱', null, null, '12', null, null, '63', '0'); -- ---------------------------- -- Table structure for jsh_user diff --git a/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java b/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java index ae88b8dd..7c65bbd1 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/constants/ExceptionConstants.java @@ -295,7 +295,7 @@ public class ExceptionConstants { public static final String MATERIAL_BARCODE_EXISTS_MSG = "商品条码:%s重复"; //商品-单位匹配不上 public static final int MATERIAL_UNIT_MATE_CODE = 8000006; - public static final String MATERIAL_UNIT_MATE_MSG = "抱歉,单位匹配不上,请完善计量单位信息!"; + public static final String MATERIAL_UNIT_MATE_MSG = "抱歉,商品条码:%s的单位匹配不上,请完善计量单位信息!"; /** * 单据信息 * type = 85 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index ad0a57b6..24515bd7 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -382,7 +382,7 @@ public class DepotItemService { Unit unitInfo = materialService.findUnit(materialExtend.getMaterialId()); //查询计量单位信息 if (StringUtil.isNotEmpty(unitInfo.getName())) { String basicUnit = unitInfo.getBasicUnit(); //基本单位 - if (unit.equals(basicUnit)) { //如果等于基础单位 + if (unit.equals(basicUnit)) { //如果等于基本单位 depotItem.setBasicNumber(oNumber); //数量一致 } else if (unit.equals(unitInfo.getOtherUnit())) { //如果等于副单位 depotItem.setBasicNumber(oNumber.multiply(new BigDecimal(unitInfo.getRatio())) ); //数量乘以比例 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java index b5dac5d2..08e5d35e 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/material/MaterialService.java @@ -472,7 +472,7 @@ public class MaterialService { String color = ExcelUtils.getContent(src, i, 3); //颜色 String categoryName = ExcelUtils.getContent(src, i, 4); //类别 String expiryNum = ExcelUtils.getContent(src, i, 5); //保质期 - String unit = ExcelUtils.getContent(src, i, 6); //基础单位 + String unit = ExcelUtils.getContent(src, i, 6); //基本单位 //校验名称、单位是否为空 if(StringUtil.isNotEmpty(name) && StringUtil.isNotEmpty(unit)) { MaterialWithInitStock m = new MaterialWithInitStock(); @@ -516,14 +516,13 @@ public class MaterialService { basicObj.put("wholesaleDecimal", wholesaleDecimal); basicObj.put("lowDecimal", lowDecimal); materialExObj.put("basic", basicObj); - if(StringUtil.isNotEmpty(manyUnit.trim())){ //多单位 - String manyUnitAll = unit + "," + manyUnit + "(1:" + ratio + ")"; - Long unitId = unitService.getUnitIdByName(manyUnitAll); + if(StringUtil.isNotEmpty(manyUnit) && StringUtil.isNotEmpty(ratio)){ //多单位 + Long unitId = unitService.getUnitIdByParam(unit, manyUnit, Integer.parseInt(ratio.trim())); if(unitId != null) { m.setUnitId(unitId); } else { throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_UNIT_MATE_CODE, - String.format(ExceptionConstants.MATERIAL_UNIT_MATE_MSG)); + String.format(ExceptionConstants.MATERIAL_UNIT_MATE_MSG, manyBarCode)); } JSONObject otherObj = new JSONObject(); otherObj.put("barCode", manyBarCode); @@ -544,11 +543,13 @@ public class MaterialService { int col = 15+j; if(col < src.getColumns()){ String depotName = ExcelUtils.getContent(src, 1, col); //获取仓库名称 - Long depotId = depotService.getIdByName(depotName); - if(depotId!=0L){ - String stockStr = ExcelUtils.getContent(src, i, col); - if(StringUtil.isNotEmpty(stockStr)) { - stockMap.put(depotId, parseBigDecimalEx(stockStr)); + if(StringUtil.isNotEmpty(depotName)) { + Long depotId = depotService.getIdByName(depotName); + if(depotId!=0L){ + String stockStr = ExcelUtils.getContent(src, i, col); + if(StringUtil.isNotEmpty(stockStr)) { + stockMap.put(depotId, parseBigDecimalEx(stockStr)); + } } } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/materialExtend/MaterialExtendService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/materialExtend/MaterialExtendService.java index b3e15b52..14c5cc7a 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/materialExtend/MaterialExtendService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/materialExtend/MaterialExtendService.java @@ -192,7 +192,7 @@ public class MaterialExtendService { this.updateMaterialExtend(materialExtend); } } - //处理条码的排序,基础单位排第一个 + //处理条码的排序,基本单位排第一个 if (null != sortJson && sortJson.size()>0) { //此处为更新的逻辑 for (int i = 0; i < sortJson.size(); i++) { @@ -207,7 +207,7 @@ public class MaterialExtendService { this.updateMaterialExtend(materialExtend); } } else { - //新增的时候将第一条记录设置为默认基础单位 + //新增的时候将第一条记录设置为默认基本单位 MaterialExtendExample example = new MaterialExtendExample(); example.createCriteria().andMaterialIdEqualTo(materialId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List meList = materialExtendMapper.selectByExample(example); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/unit/UnitService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/unit/UnitService.java index 56236d8b..6a7fe5e9 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/unit/UnitService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/unit/UnitService.java @@ -208,13 +208,17 @@ public class UnitService { } /** - * 根据名称获取类型 - * @param name + * 根据条件查询单位id + * @param basicUnit + * @param otherUnit + * @param ratio + * @return */ - public Long getUnitIdByName(String name){ + public Long getUnitIdByParam(String basicUnit, String otherUnit, Integer ratio){ Long unitId = null; UnitExample example = new UnitExample(); - example.createCriteria().andNameEqualTo(name).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.createCriteria().andBasicUnitEqualTo(basicUnit).andOtherUnitEqualTo(otherUnit).andRatioEqualTo(ratio) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = unitMapper.selectByExample(example); if(list!=null && list.size()>0) { unitId = list.get(0).getId(); diff --git a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java index 4f4a5260..10dd7e79 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/utils/ExcelUtils.java @@ -204,7 +204,11 @@ public class ExcelUtils { public static String getContent(Sheet src, int rowNum, int colNum) { - return src.getRow(rowNum)[colNum].getContents().trim(); + if(colNum < src.getRow(rowNum).length) { + return src.getRow(rowNum)[colNum].getContents().trim(); + } else { + return null; + } } /**