Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r32424 -r33234 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 32424) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 33234) @@ -1728,20 +1728,25 @@ List tousseInstanceList = objectDao.getBySql_ForUpdate2(TousseInstance.class.getSimpleName(), tousseInstancesIdsSql,false); // 获取所有相关的器械包 Set comboTousseInstanceIdSet = submitInvoiceContext.getComboTousseInstanceIdSet(); - if (tousseInstanceList != null) { + if (CollectionUtils.isNotEmpty(tousseInstanceList)) { for (TousseInstance tousseInstance : tousseInstanceList) { barcodeTousseInstanceMap.put(tousseInstance.getBarcode(), tousseInstance); idToTousseInstanceMap.put(tousseInstance.getId(), tousseInstance); Long comboTousseInstanceId = tousseInstance.getComboTousseInstanceId(); if(DatabaseUtil.isPoIdValid(comboTousseInstanceId)){ comboTousseInstanceIdSet.add(comboTousseInstanceId); + }else{ + if(!StringUtils.equals(String.valueOf(tousseInstance.getWareHouseId()), submitInvoiceContext.getSourceWarehouseId())){ + throw new SystemException(String.format("条码为%s的%s所属仓库与发货仓库不同,不能发货", + tousseInstance.getBarcode(),tousseInstance.getTousseName())); + } } } submitInvoiceContext.getScannedTousseInstances().addAll(tousseInstanceList); addTousseDefinitionToTousseDefinitionMap(tousseInstanceList, tousseDefinitionIdToTousseDefinitionMap); } // 获取聚合包 - if(!comboTousseInstanceIdSet.isEmpty()){ + if(CollectionUtils.isNotEmpty(comboTousseInstanceIdSet)){ tousseInstancesIdsSql = String.format( " where %s", SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", comboTousseInstanceIdSet)); List comboTousseInstances = objectDao.getBySql_ForUpdate2(TousseInstance.class.getSimpleName(), tousseInstancesIdsSql);