From 2f6eb27168a39bccb1317b470e1cce447652b718 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Sun, 22 May 2022 23:13:57 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=99=E5=8D=95=E6=8D=AE=E7=9A=84=E5=BA=8F?= =?UTF-8?q?=E5=88=97=E5=8F=B7=E5=92=8C=E6=89=B9=E5=8F=B7=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E7=9A=84=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/jsh/erp/constants/ExceptionConstants.java | 12 ++++++++---- .../erp/datasource/mappers/DepotItemMapperEx.java | 5 +++++ .../erp/service/depotItem/DepotItemService.java | 14 +++++++++++--- .../service/serialNumber/SerialNumberService.java | 3 +++ .../resources/mapper_xml/DepotItemMapperEx.xml | 10 ++++++++++ 5 files changed, 37 insertions(+), 7 deletions(-) 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 63a132f4..0429428d 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 @@ -326,9 +326,7 @@ public class ExceptionConstants { //比例格式错误 public static final int MATERIAL_RATIO_NOT_INTEGER_CODE = 8000016; public static final String MATERIAL_RATIO_NOT_INTEGER_MSG = "第%s行比例格式错误"; - //商品的批号不能为空 - public static final int MATERIAL_BATCH_NUMBERE_EMPTY_CODE = 8000017; - public static final String MATERIAL_BATCH_NUMBERE_EMPTY_MSG = "抱歉,商品条码:%s的批号不能为空"; + /** * 单据信息 * type = 85 @@ -375,6 +373,12 @@ public class ExceptionConstants { //单据录入-商品条码XXX的数量需要修改下 public static final int DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_CODE = 85000014; public static final String DEPOT_HEAD_NUMBER_NEED_EDIT_FAILED_MSG = "商品条码%s的数量需要修改下"; + //单据录入-商品的批号不能为空 + public static final int DEPOT_HEAD_BATCH_NUMBERE_EMPTY_CODE = 8000015; + public static final String DEPOT_HEAD_BATCH_NUMBERE_EMPTY_MSG = "抱歉,商品条码:%s的批号不能为空"; + //单据录入-商品的批号重复 + public static final int DEPOT_HEAD_BATCH_NUMBERE_EXISTS_CODE = 8000016; + public static final String DEPOT_HEAD_BATCH_NUMBERE_EXISTS_MSG = "抱歉,商品条码:%s的批号已存在"; /** * 单据明细信息 * type = 90 @@ -426,7 +430,7 @@ 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 String SERIAL_NUMBERE_ALREADY_EXISTS_MSG = "序列号:%s已存在"; /**序列号不能为为空*/ public static final int SERIAL_NUMBERE_NOT_BE_EMPTY_CODE = 10500001; public static final String SERIAL_NUMBERE_NOT_BE_EMPTY_MSG = "序列号不能为为空"; diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java index a3575b70..b44bf94b 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotItemMapperEx.java @@ -166,4 +166,9 @@ public interface DepotItemMapperEx { List getBatchBillDetailMaterialSum( @Param("linkNumber") String linkNumber, @Param("type") String type); + + Long getCountByMaterialAndBatchNumber( + @Param("meId") Long meId, + @Param("batchNumber") String batchNumber, + @Param("type") String type); } 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 0a671d01..a6675827 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 @@ -419,12 +419,20 @@ public class DepotItemService { } } if (StringUtil.isExist(rowObj.get("batchNumber"))) { - depotItem.setBatchNumber(rowObj.getString("batchNumber")); + //入库的时候批号不能重复 + Long bnCount = depotItemMapperEx.getCountByMaterialAndBatchNumber(materialExtend.getId(), rowObj.getString("batchNumber"), "入库"); + if(bnCount == 0) { + depotItem.setBatchNumber(rowObj.getString("batchNumber")); + } else { + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BATCH_NUMBERE_EXISTS_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BATCH_NUMBERE_EXISTS_MSG, barCode)); + } + } else { //批号不能为空 if(BusinessConstants.ENABLE_BATCH_NUMBER_ENABLED.equals(material.getEnableBatchNumber())) { - throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_BATCH_NUMBERE_EMPTY_CODE, - String.format(ExceptionConstants.MATERIAL_BATCH_NUMBERE_EMPTY_MSG, barCode)); + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_BATCH_NUMBERE_EMPTY_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_BATCH_NUMBERE_EMPTY_MSG, barCode)); } } if (StringUtil.isExist(rowObj.get("expirationDate"))) { diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java index d0e2f466..1adec9e8 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/serialNumber/SerialNumberService.java @@ -418,6 +418,9 @@ public class SerialNumberService { serialNumber.setUpdater(userInfo == null ? null : userInfo.getId()); serialNumber.setInBillNo(inBillNo); serialNumberMapper.insertSelective(serialNumber); + } else { + throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE, + String.format(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG, sn)); } } } diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml index 1293c59d..8ed19b7a 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotItemMapperEx.xml @@ -635,4 +635,14 @@ and ifnull(dh.delete_flag,'0') !='1' group by di.material_extend_id + +