From 38e45c1500e43d4a546c65d4491e27d1fb0272b4 Mon Sep 17 00:00:00 2001 From: jishenghua <752718920@qq.com> Date: Tue, 23 Apr 2024 23:05:20 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=88=A0=E9=99=A4=E9=87=87?= =?UTF-8?q?=E8=B4=AD=E8=AE=A2=E5=8D=95=E5=85=B3=E8=81=94=E7=9A=84=E8=AF=B7?= =?UTF-8?q?=E8=B4=AD=E5=8D=95=E7=8A=B6=E6=80=81=E4=B8=8D=E5=8F=98=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/depotHead/DepotHeadService.java | 31 +++++++++++++++++++ .../service/depotItem/DepotItemService.java | 16 +++++----- 2 files changed, 39 insertions(+), 8 deletions(-) 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 50593ada..8756b23f 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 @@ -508,6 +508,23 @@ public class DepotHeadService { depotHeadMapper.updateByExampleSelective(dh, example); } } + //将关联的单据置为审核状态-针对请购单转采购订单的情况 + if(StringUtil.isNotEmpty(depotHead.getLinkApply())){ + if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) && + BusinessConstants.SUB_TYPE_PURCHASE_ORDER.equals(depotHead.getSubType())) { + String status = BusinessConstants.BILLS_STATUS_AUDIT; + //查询除当前单据之外的关联单据列表 + List exceptCurrentList = getListByLinkApplyExceptCurrent(depotHead.getLinkApply(), depotHead.getNumber(), depotHead.getType()); + if(exceptCurrentList!=null && exceptCurrentList.size()>0) { + status = BusinessConstants.BILLS_STATUS_SKIPING; + } + DepotHead dh = new DepotHead(); + dh.setStatus(status); + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andNumberEqualTo(depotHead.getLinkApply()); + depotHeadMapper.updateByExampleSelective(dh, example); + } + } //将关联的销售订单单据置为未采购状态-针对销售订单转采购订单的情况 if(StringUtil.isNotEmpty(depotHead.getLinkNumber())){ if(BusinessConstants.DEPOTHEAD_TYPE_OTHER.equals(depotHead.getType()) && @@ -959,6 +976,20 @@ public class DepotHeadService { return depotHeadMapper.selectByExample(example); } + /** + * 查询除当前单据之外的关联单据列表 + * @param linkApply + * @param number + * @return + * @throws Exception + */ + public List getListByLinkApplyExceptCurrent(String linkApply, String number, String type)throws Exception { + DepotHeadExample example = new DepotHeadExample(); + example.createCriteria().andLinkApplyEqualTo(linkApply).andNumberNotEqualTo(number).andTypeEqualTo(type) + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + return depotHeadMapper.selectByExample(example); + } + /** * 根据原单号查询关联的单据列表(批量) * @param linkNumberList 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 2018beff..a89a33ad 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 @@ -268,15 +268,15 @@ public class DepotItemService { /** * 查询被关联订单中指定商品的明细信息 - * @param linkNumber + * @param linkStr * @param meId * @return * @throws Exception */ - public DepotItem getPreItemByHeaderIdAndMaterial(String linkNumber, Long meId, Long linkId)throws Exception { + public DepotItem getPreItemByHeaderIdAndMaterial(String linkStr, Long meId, Long linkId)throws Exception { DepotItem depotItem = new DepotItem(); try{ - DepotHead depotHead = depotHeadService.getDepotHead(linkNumber); + DepotHead depotHead = depotHeadService.getDepotHead(linkStr); DepotItemExample example = new DepotItemExample(); example.createCriteria().andHeaderIdEqualTo(depotHead.getId()).andMaterialExtendIdEqualTo(meId).andIdEqualTo(linkId).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); List list = depotItemMapper.selectByExample(example); @@ -549,9 +549,9 @@ public class DepotItemService { depotItem.setBasicNumber(oNumber); //其他情况 } } - //如果数量+已完成数量>原订单数量,给出预警(判断前提是存在关联订单) - if (StringUtil.isNotEmpty(depotHead.getLinkNumber()) - && StringUtil.isExist(rowObj.get("preNumber")) && StringUtil.isExist(rowObj.get("finishNumber"))) { + //如果数量+已完成数量>原订单数量,给出预警(判断前提是存在关联订单|关联请购单) + String linkStr = StringUtil.isNotEmpty(depotHead.getLinkNumber())? depotHead.getLinkNumber(): depotHead.getLinkApply(); + if (StringUtil.isNotEmpty(linkStr) && StringUtil.isExist(rowObj.get("preNumber")) && StringUtil.isExist(rowObj.get("finishNumber"))) { if("add".equals(actionType)) { //在新增模式进行状态赋值 BigDecimal preNumber = rowObj.getBigDecimal("preNumber"); @@ -567,9 +567,9 @@ public class DepotItemService { String currentSubType = depotHead.getSubType(); //在更新模式进行状态赋值 String unit = rowObj.get("unit").toString(); - Long preHeaderId = depotHeadService.getDepotHead(depotHead.getLinkNumber()).getId(); + Long preHeaderId = depotHeadService.getDepotHead(linkStr).getId(); //前一个单据的数量 - BigDecimal preNumber = getPreItemByHeaderIdAndMaterial(depotHead.getLinkNumber(), depotItem.getMaterialExtendId(), depotItem.getLinkId()).getOperNumber(); + BigDecimal preNumber = getPreItemByHeaderIdAndMaterial(linkStr, depotItem.getMaterialExtendId(), depotItem.getLinkId()).getOperNumber(); //除去此单据之外的已入库|已出库 BigDecimal realFinishNumber = getRealFinishNumber(currentSubType, depotItem.getMaterialExtendId(), depotItem.getLinkId(), preHeaderId, headerId, unitInfo, unit); if(depotItem.getOperNumber().add(realFinishNumber).compareTo(preNumber)>0) {