Index: ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java =================================================================== diff -u -r26965 -r26991 --- ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 26965) +++ ssts-recyclingrecord/src/main/java/com/forgon/disinfectsystem/recyclingrecord/service/RecyclingRecordManagerImpl.java (.../RecyclingRecordManagerImpl.java) (revision 26991) @@ -799,33 +799,35 @@ } Set tousseDefIds = tousseJson.stream().filter(p->p != null).map(p->p.getTousseDefinitionID()).collect(Collectors.toSet()); Collection tds = tousseDefinitionManager.getCollection(tousseDefIds); + //是否禁用基数限制 + Boolean disableCardinalNumLimit = CssdUtils.getSystemSetConfigByNameBool("disableCardinalNumLimit", false); for (int i = 0; i < tousseJson.size(); i++) { RecyclingBasketItemVo basketItemVo = tousseJson.get(i); String tousseName = basketItemVo.getTousseName(); Integer amount = basketItemVo.getAmount(); - //基数验证 - DepartmentStock departmentStock = departmentStockManager.getByDepartCodingAndTousseName(record.getDepartCode(), tousseName); - if(departmentStock != null && departmentStock.getCardinalNum() != null && departmentStock.getCardinalNum() > 0){ - //查询已占基数 - Set tousseNameSet = new HashSet(); - tousseNameSet.add(tousseName); - Map amountMap = tousseInstanceManager.getTousseAmountByGroupStatus(record.getDepartCode(), tousseNameSet).get(tousseName); - Integer existsAmount = amountMap == null?0:amountMap.get("usedCardinalNum"); - if(existsAmount >= departmentStock.getCardinalNum()){ - throw new RuntimeException(tousseName + "基数数量已达上限,可回收数量为0"); + if(!disableCardinalNumLimit){ + //基数验证 + DepartmentStock departmentStock = departmentStockManager.getByDepartCodingAndTousseName(record.getDepartCode(), tousseName); + if(departmentStock != null && departmentStock.getCardinalNum() != null && departmentStock.getCardinalNum() > 0){ + //查询已占基数 + Set tousseNameSet = new HashSet(); + tousseNameSet.add(tousseName); + Map amountMap = tousseInstanceManager.getTousseAmountByGroupStatus(record.getDepartCode(), tousseNameSet).get(tousseName); + Integer existsAmount = amountMap == null?0:amountMap.get("usedCardinalNum"); + if(existsAmount >= departmentStock.getCardinalNum()){ + throw new RuntimeException(tousseName + "基数数量已达上限,可回收数量为0"); + } + Integer surplusBaseAmount = departmentStock.getCardinalNum() - existsAmount; + if(amount > surplusBaseAmount){ + throw new RuntimeException(tousseName + "基数数量已达上限,可回收数量为" + surplusBaseAmount); + } } - Integer surplusBaseAmount = departmentStock.getCardinalNum() - existsAmount; - if(amount > surplusBaseAmount){ - throw new RuntimeException(tousseName + "基数数量已达上限,可回收数量为" + surplusBaseAmount); - } } Long tousseDefinitionId = basketItemVo.getTousseDefinitionID(); String idCardBarcode = basketItemVo.getIdCardBarcode(); String basketGroupBarcodes = basketItemVo.getBasketGroupBarcodes(); - String basketBarcode = basketItemVo.getBasketBarcode(); - if(basketItemVo.itemTypeMaterial()){ tousseName = basketItemVo.getTousseNameForMaterial(); } Index: ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/config.js =================================================================== diff -u -r26990 -r26991 --- ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/config.js (.../config.js) (revision 26990) +++ ssts-web/src/main/webapp/disinfectsystem/config/cdlqyq1yy/config.js (.../config.js) (revision 26991) @@ -1,4 +1,4 @@ -var sstsConfig = { +var sstsConfig = { // 禁用标识牌功能 disableIdCard : false, // 审核器械包必须入篮筐(一级供应室) @@ -115,5 +115,7 @@ //装配界面的审核人是否默认为上一次装配的审核人 packingPageReviewerDefaultLastReviewer: true, //基数管理开始查询的日期 - startDateOfDepartmentStock:'2030-07-11 00:00:00' + startDateOfDepartmentStock:'2030-07-11 00:00:00', + //禁用基数限制 + disableCardinalNumLimit: true } \ No newline at end of file Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r26978 -r26991 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 26978) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 26991) @@ -6034,26 +6034,30 @@ // 修改装配数量 Integer packAmount = Integer.parseInt(packAmountStr); if(StringUtils.isNotBlank(departCoding)){ - //基数验证 - DepartmentStock departmentStock = departmentStockManager.getByDepartCodingAndTousseName(departCoding, tousseName); - if(departmentStock != null && departmentStock.getCardinalNum() != null && departmentStock.getCardinalNum() > 0){ - Set tousseNameSet = new HashSet(); - tousseNameSet.add(tousseName); - Map amountMap = tousseInstanceManager.getTousseAmountByGroupStatus(departCoding, tousseNameSet).get(tousseName); - //查询已占基数+已使用未回收数量 - Integer existsAmount = 0; - if(amountMap != null){ - Integer useAmount = amountMap.get(TousseInstance.STATUS_USED) == null?0:amountMap.get(TousseInstance.STATUS_USED); - existsAmount = amountMap.get("usedCardinalNum") + useAmount; + //是否禁用基数限制 + Boolean disableCardinalNumLimit = CssdUtils.getSystemSetConfigByNameBool("disableCardinalNumLimit", false); + if(!disableCardinalNumLimit){ + //基数验证 + DepartmentStock departmentStock = departmentStockManager.getByDepartCodingAndTousseName(departCoding, tousseName); + if(departmentStock != null && departmentStock.getCardinalNum() != null && departmentStock.getCardinalNum() > 0){ + Set tousseNameSet = new HashSet(); + tousseNameSet.add(tousseName); + Map amountMap = tousseInstanceManager.getTousseAmountByGroupStatus(departCoding, tousseNameSet).get(tousseName); + //查询已占基数+已使用未回收数量 + Integer existsAmount = 0; + if(amountMap != null){ + Integer useAmount = amountMap.get(TousseInstance.STATUS_USED) == null?0:amountMap.get(TousseInstance.STATUS_USED); + existsAmount = amountMap.get("usedCardinalNum") + useAmount; + } + if(existsAmount >= departmentStock.getCardinalNum()){ + throw new RuntimeException(tousseName + "基数数量已达上限,可装配数量为0"); + } + //剩余基数 + Integer surplusBaseAmount = departmentStock.getCardinalNum() - existsAmount; + if(packAmount > surplusBaseAmount){ + throw new RuntimeException(tousseName + "基数数量已达上限,可装配数量为" + surplusBaseAmount); + } } - if(existsAmount >= departmentStock.getCardinalNum()){ - throw new RuntimeException(tousseName + "基数数量已达上限,可装配数量为0"); - } - //剩余基数 - Integer surplusBaseAmount = departmentStock.getCardinalNum() - existsAmount; - if(packAmount > surplusBaseAmount){ - throw new RuntimeException(tousseName + "基数数量已达上限,可装配数量为" + surplusBaseAmount); - } } } String continueOnVirtualBasketInsufficient = request