Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java =================================================================== diff -u -r21475 -r21480 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 21475) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/action/TousseDefinitionAction.java (.../TousseDefinitionAction.java) (revision 21480) @@ -2387,6 +2387,7 @@ origineTd.setPrintOrgSource(tousseDefinition.getPrintOrgSource()); origineTd.setPrintAmount(tousseDefinition.getPrintAmount()); + origineTd.setPrintAmountSource(tousseDefinition.getPrintAmountSource()); origineTd.setProxyDisinfectionPrice(tousseDefinition.getProxyDisinfectionPrice()); origineTd.setScanAmount(tousseDefinition.getScanAmount()); origineTd.setSterilingMethod(tousseDefinition.getSterilingMethod()); Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r21417 -r21480 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 21417) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 21480) @@ -837,7 +837,7 @@ toolAndImplantAmount.optInt("toolAmount"), toolAndImplantAmount.optInt("implantAmount"),department, td.getPrintOrgSource(),idCardDefinitionUseAmount,objectDao,td.getBarcodePaperType(),tousseInstance.getWashOperator(),tousseInstance.getWashOperatorCode(), - tousseInstance.getWeight(),tousseInstance.getRemark(),td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse(),tousseInstance.getTousseInstancesAmountBelongToThisComboTousse(objectDao)); + tousseInstance.getWeight(),tousseInstance.getRemark(),td.getPrintAmountForPrint(),BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse(),tousseInstance.getTousseInstancesAmountBelongToThisComboTousse(objectDao)); // 特殊单的包实例处理 if(tousseInstance.getForeignProxyItem_id() != null){ ForeignProxyDisinfection foreignProxyDisinfection = tousseInstance.getForeignProxyDisinfection(objectDao); @@ -2283,7 +2283,7 @@ toolAndImplantAmount.optInt("toolAmount"), toolAndImplantAmount.optInt("implantAmount"),TousseInstanceUtils.getTousseInstanceDepartForPrint(tousseInstance) , td.getPrintOrgSource(), idCardDefinitionUseAmount,objectDao,td.getBarcodePaperType(),tousseInstance.getWashOperator(),tousseInstance.getWashOperatorCode(), - tousseInstance.getWeight(),tousseInstance.getRemark(),td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse(),tousseInstance.getTousseInstancesAmountBelongToThisComboTousse(objectDao));// TODO 需要确认审核后打印,是否也支持打印多份 + tousseInstance.getWeight(),tousseInstance.getRemark(),td.getPrintAmountForPrint(),BooleanUtils.toBooleanDefaultIfNull(tousseInstance.getHaveUnSupplementMaterials(), false),tousseInstance.getIsUrgentTousse(),tousseInstance.getTousseInstancesAmountBelongToThisComboTousse(objectDao));// TODO 需要确认审核后打印,是否也支持打印多份 toussesArray.add(obj); JSONObject logObj = new JSONObject(); JSONUtil.addLogProperty(logObj, "tousseInstanceId", tousseInstance.getId()); @@ -2735,7 +2735,7 @@ tousse.put("washOperatorCode", tousseInstance.getWashOperatorCode()); tousse.put("weight", tousseWeight); tousse.put("remark", remark); - tousse.put("printAmount", td.getPrintAmount()); + tousse.put("printAmount", tousseDefinition.getPrintAmountForPrint()); tousse.put("isUrgentTousse", tousseInstance.getIsUrgentTousse()); } @@ -3676,7 +3676,6 @@ String tousseType = td.getTousseType(); String tousseName = TousseDefinitionUtils.getTousseNameForPackingTask(currentPackingTask .getTousseDefinition());; - Integer printAmount = td.getPrintAmount(); JSONObject toolAndImplantAmount = tousseDefinitionManager.getToolAndImplantAmount(td); Map disposableGoodsIdToAmount = null; @@ -3982,7 +3981,7 @@ toolAndImplantAmount.optInt("toolAmount"), toolAndImplantAmount.optInt("implantAmount"),TousseInstanceUtils.getTousseInstanceDepartForPrint(tousse), td.getPrintOrgSource(),idCardDefinitionUseAmount,objectDao,td.getBarcodePaperType(),tousse.getWashOperator(),tousse.getWashOperatorCode(), - tousse.getWeight(),tousse.getRemark(),td.getPrintAmount(),BooleanUtils.toBooleanDefaultIfNull(tousse.getHaveUnSupplementMaterials(), false),tousse.getIsUrgentTousse(),0); + tousse.getWeight(),tousse.getRemark(),td.getPrintAmountForPrint(),BooleanUtils.toBooleanDefaultIfNull(tousse.getHaveUnSupplementMaterials(), false),tousse.getIsUrgentTousse(),0); setPrintCause(currentPackingTask,obj); toussesArray.add(obj); } @@ -4167,6 +4166,7 @@ newTousseDefinition.setHandlerDepartName(td.getHandlerDepartName()); newTousseDefinition.setBarcodePaperType(td.getBarcodePaperType()); newTousseDefinition.setPrintAmount(td.getPrintAmount()); + newTousseDefinition.setPrintAmountSource(td.getPrintAmountSource()); newTousseDefinition.setParentID(td.getId()); newTousseDefinition.setIncludeImplant(includeImplantFlag); newTousseDefinition.setInvoicePlanID(td.getInvoicePlanID()); @@ -6184,7 +6184,7 @@ } String remark = null; - Integer printAmount = JSONUtil.optInteger(comboTousseJson, "printAmount", td.getPrintAmount()); + Integer printAmount = JSONUtil.optInteger(comboTousseJson, "printAmount", td.getPrintAmountForPrint()); if(printAmount == null){ printAmount = 1; } Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java =================================================================== diff -u -r21476 -r21480 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 21476) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/toussedefinition/TousseDefinition.java (.../TousseDefinition.java) (revision 21480) @@ -34,6 +34,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.forgon.Constants; +import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseDefinitionUtils; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.basedatamanager.imagefilemanager.ImageFile; @@ -1523,6 +1524,31 @@ public Integer getPrintAmount() { return printAmount; } + @Transient + public Integer getPrintAmountForPrint() { + if(isForeignOrSplitTousse()){ + if(printAmount == 0){ + return printAmount; + } + // 外来器械的打印份数要根据打印份数来源计算 + if(StringUtils.equals(printAmountSource, PRINTAMOUNTSOURCE_ALL_FOREIGNTOUSSE)){ + return printAmount; + }else if(StringUtils.equals(printAmountSource, PRINTAMOUNTSOURCE_INCLUDE_TOOL)){ + if(TousseDefinitionUtils.haveToolMaterials(this)){ + return printAmount; + }else{ + return 1; + } + }else if(StringUtils.equals(printAmountSource, PRINTAMOUNTSOURCE_INCLUDE_IMPLANT)){ + if(TousseDefinitionUtils.haveImplantMaterials(this)){ + return printAmount; + }else{ + return 1; + } + } + } + return printAmount; + } public void setPrintAmount(Integer printAmount) { if(printAmount == null){ Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/materialinstance/MaterialInstance.java =================================================================== diff -u -r19832 -r21480 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/materialinstance/MaterialInstance.java (.../MaterialInstance.java) (revision 19832) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/basedatamanager/materialinstance/MaterialInstance.java (.../MaterialInstance.java) (revision 21480) @@ -234,4 +234,15 @@ } } + /** + * 器械是否植入物 + */ + @Transient + public boolean isImplant() { + String isImplant = materialIsImplant(); + if(StringUtils.equals(Constants.STR_YES, isImplant)){ + return true; + } + return false; + } } Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java =================================================================== diff -u -r20589 -r21480 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 20589) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/foreigntousseapplication/service/ForeignTousseApplicationManagerImpl.java (.../ForeignTousseApplicationManagerImpl.java) (revision 21480) @@ -573,6 +573,7 @@ tousseDefinition.setAncestorID(ancestorTD.getId()); tousseDefinition.setBarcodePaperType(ancestorTD.getBarcodePaperType()); tousseDefinition.setPrintAmount(ancestorTD.getPrintAmount()); //现在申请外来器械包支持修改了,以修改的为准 + tousseDefinition.setPrintAmountSource(ancestorTD.getPrintAmountSource()); String defaultPackageType = ancestorTD.getPackageType(); if(StringUtils.isBlank(defaultPackageType)){ defaultPackageType = config.getFtDefaultPackageType(); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseDefinitionUtils.java =================================================================== diff -u -r20332 -r21480 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseDefinitionUtils.java (.../TousseDefinitionUtils.java) (revision 20332) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/toussedefinition/service/TousseDefinitionUtils.java (.../TousseDefinitionUtils.java) (revision 21480) @@ -4,37 +4,19 @@ */ package com.forgon.disinfectsystem.basedatamanager.toussedefinition.service; -import java.io.File; import java.math.BigDecimal; -import java.util.ArrayList; import java.util.LinkedList; import java.util.List; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - -import org.apache.commons.lang.StringUtils; - -import com.forgon.Constants; -import com.forgon.directory.acegi.tools.AcegiHelper; -import com.forgon.directory.model.BarcodeDevice; -import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.assestmanagement.DiposableGoodsInstance; import com.forgon.disinfectsystem.entity.assestmanagement.DisposableGoods; import com.forgon.disinfectsystem.entity.basedatamanager.materialdefinition.MaterialDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.materialinstance.MaterialInstance; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinitionMaterial; -import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; import com.forgon.disinfectsystem.entity.tousseitem.TousseItem; -import com.forgon.log.model.Log; -import com.forgon.serialnumber.model.SerialNum; -import com.forgon.tools.GB2Alpha; -import com.forgon.tools.GB2WB; -import com.forgon.tools.StrutsParamUtils; import com.forgon.tools.db.DatabaseUtil; import com.forgon.tools.hibernate.ObjectDao; -import com.forgon.tools.json.JSONUtil; /** * @author jeffli @@ -253,4 +235,31 @@ } return tousseName; } + + public static boolean haveToolMaterials(TousseDefinition td) { + List materialInstanceList = td.getMaterialInstances(); + if(materialInstanceList == null){ + return false; + } + + for (MaterialInstance materialInstance : materialInstanceList) { + if(!materialInstance.isImplant()){ + return true; + } + } + return false; + } + public static boolean haveImplantMaterials(TousseDefinition td) { + List materialInstanceList = td.getMaterialInstances(); + if(materialInstanceList == null){ + return false; + } + + for (MaterialInstance materialInstance : materialInstanceList) { + if(materialInstance.isImplant()){ + return true; + } + } + return false; + } }