From 8a255839b70444c1e518467c5380267bd2a51619 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Mon, 15 May 2023 23:38:19 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=BA=8F=E5=88=97=E5=8F=B7?= =?UTF-8?q?=E5=9C=A8=E9=87=87=E8=B4=AD=E5=85=A5=E5=BA=93=E5=90=8E=E5=86=8D?= =?UTF-8?q?=E5=88=A0=E9=99=A4=EF=BC=8C=E5=BA=8F=E5=88=97=E5=8F=B7=E8=BF=98?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsh/erp/constants/ExceptionConstants.java | 3 +++ .../datasource/mappers/DepotHeadMapperEx.java | 3 +++ .../service/depotHead/DepotHeadService.java | 26 ++++++++++++++----- .../mapper_xml/DepotHeadMapperEx.xml | 7 +++++ 4 files changed, 32 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 6c598900..39074331 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 @@ -400,6 +400,9 @@ public class ExceptionConstants { //单据录入-单据当前状态下不能修改 public static final int DEPOT_HEAD_BILL_CANNOT_EDIT_CODE = 8500023; public static final String DEPOT_HEAD_BILL_CANNOT_EDIT_MSG = "抱歉,单据当前状态下不能修改"; + //单据删除-单据中的序列号已经出库,不能删除 + public static final int DEPOT_HEAD_SERIAL_IS_SELL_CODE = 8500024; + public static final String DEPOT_HEAD_SERIAL_IS_SELL_MSG = "抱歉,单据%s的序列号已经出库,不能删除"; /** * 单据明细信息 diff --git a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java index 2d427dfd..5173223d 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/datasource/mappers/DepotHeadMapperEx.java @@ -238,4 +238,7 @@ public interface DepotHeadMapperEx { void setAccountIdToNull( @Param("id") Long id); + + int getSerialNumberBySell( + @Param("number") String number); } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index eaf11272..f14377a8 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -403,17 +403,29 @@ public class DepotHeadService { //只有未审核的单据才能被删除 if("0".equals(depotHead.getStatus())) { User userInfo = userService.getCurrentUser(); + //删除入库单据,先校验序列号是否出库,如果未出库则同时删除序列号,如果已出库则不能删除单据 + if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())) { + List depotItemList = depotItemMapperEx.findDepotItemListBydepotheadId(depotHead.getId(), BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED); + if (depotItemList != null && depotItemList.size() > 0) { + //单据明细里面存在序列号商品 + int serialNumberSellCount = depotHeadMapperEx.getSerialNumberBySell(depotHead.getNumber()); + if (serialNumberSellCount > 0) { + //已出库则不能删除单据 + throw new BusinessRunTimeException(ExceptionConstants.DEPOT_HEAD_SERIAL_IS_SELL_CODE, + String.format(ExceptionConstants.DEPOT_HEAD_SERIAL_IS_SELL_MSG, depotHead.getNumber())); + } else { + //删除序列号 + SerialNumberExample example = new SerialNumberExample(); + example.createCriteria().andInBillNoEqualTo(depotHead.getNumber()); + serialNumberService.deleteByExample(example); + } + } + } //删除出库数据回收序列号 if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType()) && !BusinessConstants.SUB_TYPE_TRANSFER.equals(depotHead.getSubType())) { //查询单据子表列表 - List depotItemList = null; - try { - depotItemList = depotItemMapperEx.findDepotItemListBydepotheadId(depotHead.getId(), BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED); - } catch (Exception e) { - JshException.readFail(logger, e); - } - + List depotItemList = depotItemMapperEx.findDepotItemListBydepotheadId(depotHead.getId(), BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED); /**回收序列号*/ if (depotItemList != null && depotItemList.size() > 0) { for (DepotItem depotItem : depotItemList) { diff --git a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml index 7d9da7ee..67604795 100644 --- a/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml +++ b/jshERP-boot/src/main/resources/mapper_xml/DepotHeadMapperEx.xml @@ -1077,4 +1077,11 @@ where dh.id=#{id} and ifnull(dh.delete_flag,'0') !='1' + + \ No newline at end of file