Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java =================================================================== diff -u -r33540 -r33990 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 33540) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 33990) @@ -1061,6 +1061,35 @@ this.tousseDefinitionMaterials = JSONArray.fromObject(tousseDefinitionMaterials,config); } + /** + * 是否包含植入物 + * @return + */ + @Transient + public boolean containImplant(){ + //外来器械包与外来器械拆分小包根据材料实例表的是否植入物进行判断 + if(isForeignOrSplitTousse()){ + List miList = getMaterialInstances(); + if(CollectionUtils.isNotEmpty(miList)){ + for(MaterialInstance mi : miList){ + if(StringUtils.equals(mi.getIsImplant(), Constants.STR_YES)){ + return true; + } + } + } + }else{ + //外来器械包与外来器械拆分小包以外类型的器械包根据材料实例所属的材料定义表的是否植入物进行判断 + List miList = getMaterialInstances(); + if(CollectionUtils.isNotEmpty(miList)){ + for(MaterialInstance mi : miList){ + if(StringUtils.equals(mi.getMaterialDefinition().getIsImplant(), Constants.STR_YES)){ + return true; + } + } + } + } + return false; + } public String getPackageType() { return packageType; Index: ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java =================================================================== diff -u -r33930 -r33990 --- ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 33930) +++ ssts-invoice/src/main/java/com/forgon/disinfectsystem/invoicemanager/service/InvoiceManagerImpl.java (.../InvoiceManagerImpl.java) (revision 33990) @@ -11598,6 +11598,12 @@ biologicalMonitoringEnable, enableBiologicalMonitoringOfAllTousses, StringTools.join(barcodes, ";")); + + List tiList = tousseInstanceManager.getCollection("barcode", barcodes); + Map barcodeToTousseInstanceMap = new HashMap(); + tiList.stream().forEach(ti -> { + barcodeToTousseInstanceMap.put(ti.getBarcode(), ti); + }); if (map.size() > 0) { @@ -11742,7 +11748,8 @@ } } - if (StringUtils.isNotBlank(confirmMsg)) { + TousseInstance ti = barcodeToTousseInstanceMap.get(barcode); + if (StringUtils.isNotBlank(confirmMsg) && ti.getTousseDefinition().containImplant()) { addToJsonArrayProperty(sourceObj, "confirmMsgs", confirmMsg); }