From d1a5d4718c913024091bfc4257bcf4f4b01c6ff1 Mon Sep 17 00:00:00 2001 From: cjl Date: Sat, 2 Feb 2019 10:40:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BA=93=E5=AD=98=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E4=B8=8D=E5=87=86=E7=A1=AE=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/depotHead/DepotHeadService.java | 3 +- .../service/depotItem/DepotItemService.java | 51 ++++++++++++------- .../serialNumber/SerialNumberService.java | 5 +- 3 files changed, 37 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java index f6aacdf6..836b15f6 100644 --- a/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java +++ b/src/main/java/com/jsh/erp/service/depotHead/DepotHeadService.java @@ -396,7 +396,8 @@ public class DepotHeadService { /**回收序列号*/ if(depotItemList!=null&&depotItemList.size()>0){ for(DepotItem depotItem:depotItemList){ - serialNumberService.cancelSerialNumber(depotItem.getMaterialid(), depotItem.getHeaderid(),depotItem.getOpernumber().intValue(),userInfo); + //BasicNumber=OperNumber*ratio + serialNumberService.cancelSerialNumber(depotItem.getMaterialid(), depotItem.getHeaderid(),depotItem.getBasicnumber().intValue(),userInfo); } } } diff --git a/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java b/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java index 3b8e0651..93b0f1fa 100644 --- a/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java +++ b/src/main/java/com/jsh/erp/service/depotItem/DepotItemService.java @@ -224,7 +224,11 @@ public class DepotItemService { return depotItemMapperEx.findGiftByTypeOut(subType, ProjectId, MId); } } - + /** + * 2019-02-02修改 + * 我之前对操作数量的理解有偏差 + * 这里重点重申一下:BasicNumber=OperNumber*ratio + * */ @Transactional(value = "transactionManager", rollbackFor = Exception.class) public String saveDetials(String inserted, String deleted, String updated, Long headerId) throws Exception{ //查询单据主表信息 @@ -259,7 +263,7 @@ public class DepotItemService { continue; } if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())){ - serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getOpernumber().intValue(), + serialNumberMapperEx.cancelSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getBasicnumber().intValue(), new Date(),userInfo==null?null:userInfo.getId()); } } @@ -279,14 +283,18 @@ public class DepotItemService { String Unit = tempInsertedJson.get("Unit").toString(); BigDecimal oNumber = tempInsertedJson.getBigDecimal("OperNumber"); Long mId = Long.parseLong(tempInsertedJson.get("MaterialId").toString()); + /*** + * 为什么调用的方法要先把基础单位去掉,去掉之后后续还能获取到? + * */ //以下进行单位换算 - String UnitName = findUnitName(mId); //查询计量单位名称 - if (!StringUtil.isEmpty(UnitName)) { - String UnitList = UnitName.substring(0, UnitName.indexOf("(")); - String RatioList = UnitName.substring(UnitName.indexOf("(")); - String basicUnit = UnitList.substring(0, UnitList.indexOf(",")); //基本单位 - String otherUnit = UnitList.substring(UnitList.indexOf(",") + 1); //副单位 - Integer ratio = Integer.parseInt(RatioList.substring(RatioList.indexOf(":") + 1).replace(")", "")); //比例 +// String UnitName = findUnitName(mId); //查询计量单位名称 + String unitName = materialService.findUnitName(mId); + if (!StringUtil.isEmpty(unitName)) { + String unitList = unitName.substring(0, unitName.indexOf("(")); + String ratioList = unitName.substring(unitName.indexOf("(")); + String basicUnit = unitList.substring(0, unitList.indexOf(",")); //基本单位 + String otherUnit = unitList.substring(unitList.indexOf(",") + 1); //副单位 + Integer ratio = Integer.parseInt(ratioList.substring(ratioList.indexOf(":") + 1).replace(")", "")); //比例 if (Unit.equals(basicUnit)) { //如果等于基础单位 depotItem.setBasicnumber(oNumber); //数量一致 } else if (Unit.equals(otherUnit)) { //如果等于副单位 @@ -353,7 +361,7 @@ public class DepotItemService { if(material==null){ continue; } - if(getCurrentInStock(depotItem.getMaterialid())SerialNumberSum){ + //BasicNumber=OperNumber*ratio + if(depotItem.getBasicnumber().intValue()>SerialNumberSum){ //获取商品名称 Material material= materialMapper.selectByPrimaryKey(depotItem.getMaterialid()); throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_CODE, String.format(ExceptionConstants.MATERIAL_SERIAL_NUMBERE_NOT_ENOUGH_MSG,material==null?"":material.getName())); } //商品下序列号充足,分配序列号 - sellSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getOpernumber().intValue(),userInfo); + sellSerialNumber(depotItem.getMaterialid(),depotItem.getHeaderid(),depotItem.getBasicnumber().intValue(),userInfo); } }