diff --git a/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java b/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java index 138d9f70..7215ac70 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/constants/BusinessConstants.java @@ -93,6 +93,8 @@ public class BusinessConstants { public static final String SUB_TYPE_SALES_RETURN = "销售退货"; public static final String SUB_TYPE_TRANSFER = "调拨"; public static final String SUB_TYPE_REPLAY = "盘点复盘"; + public static final String SUB_TYPE_ASSEMBLE = "组装单"; + public static final String SUB_TYPE_DISASSEMBLE = "拆卸单"; /** * 批量插入sql时最大的数据条数 * */ 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 e4b85bcb..f180bec2 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,6 +326,12 @@ 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_ASSEMBLE_SELECT_ERROR_CODE = 80000017; + public static final String MATERIAL_ASSEMBLE_SELECT_ERROR_MSG = "抱歉,组装拆卸单不能选择批号或序列号商品:%s"; + //调拨单不能选择批号或序列号商品 + public static final int MATERIAL_TRANSFER_SELECT_ERROR_CODE = 80000018; + public static final String MATERIAL_TRANSFER_SELECT_ERROR_MSG = "抱歉,调拨单不能选择批号或序列号商品:%s"; /** * 单据信息 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 39914d78..6cf814e8 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 @@ -406,6 +406,20 @@ public class DepotItemService { depotItem.setMaterialExtendId(materialExtend.getId()); depotItem.setMaterialUnit(rowObj.getString("unit")); Material material= materialService.getMaterial(depotItem.getMaterialId()); + if (BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber()) || + BusinessConstants.ENABLE_BATCH_NUMBER_ENABLED.equals(material.getEnableBatchNumber())) { + //组装拆卸单不能选择批号或序列号商品 + if(BusinessConstants.SUB_TYPE_ASSEMBLE.equals(depotHead.getSubType()) || + BusinessConstants.SUB_TYPE_DISASSEMBLE.equals(depotHead.getSubType())) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_ASSEMBLE_SELECT_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_ASSEMBLE_SELECT_ERROR_MSG, barCode)); + } + //调拨单不能选择批号或序列号商品(该场景走出库和入库单) + if(BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubType())) { + throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_TRANSFER_SELECT_ERROR_CODE, + String.format(ExceptionConstants.MATERIAL_TRANSFER_SELECT_ERROR_MSG, barCode)); + } + } if (StringUtil.isExist(rowObj.get("snList"))) { depotItem.setSnList(rowObj.getString("snList")); if(StringUtil.isExist(rowObj.get("depotId"))) {