Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r26812 -r26823 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 26812) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 26823) @@ -6349,7 +6349,8 @@ Set allStockTousseName = new HashSet();//全部盘点时查询的库存包名 if(StringUtils.isNotBlank(tousseNames)){//部分盘点 String[] names = tousseNames.split(","); - for (int i = 0; i < names.length; i++) { + int len = names.length; + for (int i = 0; i < len; i++) { queryStockTousseName.add(names[i]); } }else{//全部盘点 @@ -6520,8 +6521,18 @@ + "inner join TousseInstance_InventoryItemOfBaseNum tii on tii.tousseInstanceId=ti.id where tii.inventoryItemOfBaseNumId=%s ", TousseInstance.class.getSimpleName(),BarcodeDevice.class.getSimpleName(),id); }else{ - Set scanIdSet = new HashSet<>(Arrays.asList(scanTousseInstanceIds)); - Set idSet = new HashSet<>(Arrays.asList(ids)); + Set scanIdSet = null; + if(scanTousseInstanceIds != null){//以防万一 + scanIdSet = new HashSet<>(Arrays.asList(scanTousseInstanceIds)); + }else{ + scanIdSet = new HashSet(); + } + Set idSet = null; + if(ids != null){//防止库存为0盘点时此处报错 + idSet = new HashSet<>(Arrays.asList(ids)); + }else{ + idSet = new HashSet(); + } Collection result = CollectionUtils.disjunction(scanIdSet, idSet); sql = String.format("select ti.id,barcode,status,sterileEndTime,invoiceSendTime,signedDate from %s ti " + "inner join %s bd on ti.id=bd.id where %s ", Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java =================================================================== diff -u -r26757 -r26823 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 26757) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/action/TousseInstanceAction.java (.../TousseInstanceAction.java) (revision 26823) @@ -1670,6 +1670,9 @@ if(td == null){ throw new RuntimeException("找不到条码对应的包定义!"); } + if(TousseInstance.STATUS_DISCARD.equals(ti.getStatus())){//已废弃不能扫 + throw new RuntimeException(new StringBuffer().append("[").append(ti.getTousseName()).append("]").append(TousseInstance.STATUS_DISCARD).toString()); + } //仓库为空,或仓库属于供应室仓库 if(wareHouseId == null || (ti.getWareHouseId() != null && !wareHouseId.equals(ti.getWareHouseId()) && !wareHouseManager.checkIsOneCSSDWareHouse(ti.getWareHouseId()))){ throw new RuntimeException(String.format("[%s]仓库位置不匹配且不为一级供应室仓库!仓库为%s", ti.getTousseName(), ti.getWareHouseName())); @@ -1717,7 +1720,11 @@ String departCoding = StrutsParamUtils.getPraramValue("departCoding", null); Long wareHouseId = StrutsParamUtils.getPraramLongValue("wareHouseId", null); String tousseName = StrutsParamUtils.getPraramValue("tousseName", null); - String[] scanTousseInstanceIds = StrutsParamUtils.getPrarmArrValue("scanTousseInstanceIds"); + String[] scanTousseInstanceIds = null; + String scanTousseInstanceIdsStr = StrutsParamUtils.getPraramValue("scanTousseInstanceIds", null); + if(StringUtils.isNotBlank(scanTousseInstanceIdsStr)){ + scanTousseInstanceIds = scanTousseInstanceIdsStr.split(","); + } String idStr = StrutsParamUtils.getPraramValue("ids", null); String[] ids = null; if(StringUtils.isNotBlank(idStr)){