Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java =================================================================== diff -u -r16258 -r16271 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16258) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/service/PackingManagerImpl.java (.../PackingManagerImpl.java) (revision 16271) @@ -631,6 +631,7 @@ return returnValue; } + @Override public String loadTousseByPackingRecord(String packingRecordId) { @@ -644,159 +645,169 @@ for (TousseInstance tousseInstance : packingRecord .getTousseInstanceList(objectDao)) { JSONObject obj = new JSONObject(); - TousseDefinition td = tousseInstance.getTousseDefinition(); - String supplierName = td.getSupplierName(); - if (StringUtils.isBlank(supplierName)) { - supplierName = ""; - } - String sterilizer = tousseInstance.getSterilizerName(); - if(sterilizer == null){ - sterilizer = ""; - } - String frequency = tousseInstance.getSterileFrequency(); - if(frequency == null){ - frequency = ""; - } - boolean isTraceable = true; - if(TousseDefinition.STR_NO.equals(td.getIsTraceable())){ - isTraceable = false; - } - boolean isPrint = true; - if(TousseDefinition.STR_NO.equals(td.getIsPrint())){ - isPrint = false; - } + setToussePrintProperties(packingRecord.getDepart(), tousseInstance, obj); - String isSterile = td.getIsSterile(); - - String tousseName = td.getName(); - String materialTypeTotal = ""; - int toolAmount = 0; - int implantAmount = 0; - - String fixedBarcode = ""; - JSONArray materialsJsonArray = new JSONArray(); - - if (!isTraceable) { - //String tousseDefinitionName = CssdUtils.filterDisinfectGoodsName(tousseName); - String tousseDefinitionName = tousseName; - fixedBarcode = tousseInstanceManager.getTousseDefinitionFixedBarcode(td.getAncestorID()); - } - - if (td.isForeignTousse() || td.isSplit()) { - List msList = td.getMaterialInstances(); - - for (MaterialInstance materialInstance : msList) { - String implant = CssdUtils.getMaterialIsImplant(materialInstance); - if (MaterialInstance.INCLUDE_IMPLANT.equals(implant)) { - implantAmount += materialInstance.getCount(); - } else { - toolAmount += materialInstance.getCount(); - } - } - materialTypeTotal = "工具" + toolAmount + "件,植入物" - + implantAmount + "件"; - } else if (td.isDisinfection()) { - tousseName = CssdUtils.filterDisinfectGoodsName(tousseName); - materialsJsonArray = tousseDefinitionManager.getMaterialsOfDisinfectionGoods(td, true); - } - if(td.isForeignProxyTousse()){ - // 外部代理灭菌,要取单的信息 - ForeignProxyDisinfection foreignProxyDisinfection = tousseInstance.getForeignProxyDisinfection(objectDao); - if(foreignProxyDisinfection != null){ - obj.put("applicant", foreignProxyDisinfection.getApplicant()); - obj.put("applicantDepart", foreignProxyDisinfection.getDepart()); - } - } - - String validUntilStr = tousseInstance.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDD);; - Date warningUntil = tousseInstance.getWarningUntil(); - String warningUntilStr = ""; - if (warningUntil != null) { - warningUntilStr = new SimpleDateFormat("yyyy-MM-dd") - .format(warningUntil); - } - String washStartTime = tousseInstance.getWashStartTime(); - if (washStartTime == null) { - washStartTime = ""; - } - - String sterileStartTime = tousseInstance.getSterileStartTime(); - boolean isMarkTousse = expirationDateInfoManager - .isMarkTousse(sterileStartTime, validUntilStr); - - // 使用次数,包实例对应的标识牌定义的使用次数,即实体器械包的使用次数 - String useAmount = ""; - if (tousseInstance.getUseAmount() != null){ - useAmount = tousseInstance.getUseAmount().toString(); - } - String saPurpose = sterilisationManager.getSterilisationPurposeByName(tousseInstance.getSterilingType()); - obj.put("id", tousseInstance.getId()); - obj.put("tousseName", tousseName); - obj.put("tousseBarcode", tousseInstance.getBarcode()); - obj.put("virtualBasketSeqNum", tousseInstance.getVirtualBasketSeqNum()); - obj.put("fixedBarcode", fixedBarcode); - obj.put("materialsJsonArray", materialsJsonArray); - obj.put("packer", tousseInstance.getOperator()); - obj.put("washOperator", tousseInstance.getWashOperator()); - obj.put("washOperatorCode", tousseInstance.getWashOperatorCode()); - obj.put("reviewer", tousseInstance.getReviewer()); - obj.put("sterileStartTime", sterileStartTime); - obj.put("barcodePaperType", td.getBarcodePaperType()); - - obj.put("packTime", Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS - .format(tousseInstance.getOperationTime())); - obj.put("packType", tousseInstance.getPackageType()); - obj.put("sterilization", tousseInstance.getSterilingType()); - obj.put("sterilizationPurpose",saPurpose); - obj.put("tousseType", td.getTousseType()); - obj.put("supplierName", supplierName); - obj.put("sterilizer", sterilizer); - obj.put("frequency", frequency); - obj.put("isTraceable", isTraceable); - obj.put("isSterile", isSterile); - obj.put("toolAmount", toolAmount); - obj.put("implantAmount", implantAmount); - obj.put("idCardDefinitionUseAmount", useAmount); - obj.put("materialTypeTotal", materialTypeTotal); - obj.put("validUntilStr", validUntilStr); - obj.put("warningDateStr", warningUntilStr); - obj.put("packerCode", tousseInstance.getOperatorCode()); - obj.put("reviewerCode", tousseInstance.getReviewerCode()); - obj.put("sterilizationUser", tousseInstance.getSterilizationUser()); - obj.put("sterilizationUserCode", tousseInstance.getSterilizationUserCode()); - obj.put("washTime", washStartTime); - obj.put("isPrint", isPrint); - obj.put("isMarkTousse", isMarkTousse); - obj.put("status", tousseInstance.getStatus()); - obj.put("weight", tousseInstance.getWeight()); - //是否打印科室及科室名称 - obj.put("isPrintOrg", TousseDefinition.STR_YES.equals(td.getIsPrintOrg())); - //根据器械包的申请单编号或回收单编号查询出所属申请部门 - String department = null; - if(tousseInstance.getInvoicePlanID() != null){ - InvoicePlan invoicePlan = - (InvoicePlan)objectDao.getByProperty(InvoicePlan.class.getSimpleName(), "id", tousseInstance.getInvoicePlanID()); - if(invoicePlan != null){ - department = invoicePlan.getDepart(); - } - }else if(tousseInstance.getRecyclingRecordId() != null){ - RecyclingRecord recylingRecord = - (RecyclingRecord)objectDao.getByProperty(RecyclingRecord.class.getSimpleName(), "id", tousseInstance.getRecyclingRecordId()); - if(recylingRecord != null){ - department = recylingRecord.getDepart(); - } - }else{ - department = packingRecord.getDepart(); - } - if(StringUtils.isNotBlank(department)){ - obj.put("department", department); - } - array.add(obj); } } return array.toString(); } + + /** + * @param packingRecord + * @param tousseInstance + * @param obj + */ + private void setToussePrintProperties(String department1, + TousseInstance tousseInstance, JSONObject obj) { + TousseDefinition td = tousseInstance.getTousseDefinition(); + String supplierName = td.getSupplierName(); + if (StringUtils.isBlank(supplierName)) { + supplierName = ""; + } + String sterilizer = tousseInstance.getSterilizerName(); + if(sterilizer == null){ + sterilizer = ""; + } + String frequency = tousseInstance.getSterileFrequency(); + if(frequency == null){ + frequency = ""; + } + boolean isTraceable = true; + if(TousseDefinition.STR_NO.equals(td.getIsTraceable())){ + isTraceable = false; + } + boolean isPrint = true; + if(TousseDefinition.STR_NO.equals(td.getIsPrint())){ + isPrint = false; + } + + String isSterile = td.getIsSterile(); + + String tousseName = td.getName(); + String materialTypeTotal = ""; + int toolAmount = 0; + int implantAmount = 0; + + String fixedBarcode = ""; + JSONArray materialsJsonArray = new JSONArray(); + + if (!isTraceable) { + //String tousseDefinitionName = CssdUtils.filterDisinfectGoodsName(tousseName); + String tousseDefinitionName = tousseName; + fixedBarcode = tousseInstanceManager.getTousseDefinitionFixedBarcode(td.getAncestorID()); + } + + if (td.isForeignTousse() || td.isSplit()) { + List msList = td.getMaterialInstances(); + + for (MaterialInstance materialInstance : msList) { + String implant = CssdUtils.getMaterialIsImplant(materialInstance); + if (MaterialInstance.INCLUDE_IMPLANT.equals(implant)) { + implantAmount += materialInstance.getCount(); + } else { + toolAmount += materialInstance.getCount(); + } + } + materialTypeTotal = "工具" + toolAmount + "件,植入物" + + implantAmount + "件"; + } else if (td.isDisinfection()) { + tousseName = CssdUtils.filterDisinfectGoodsName(tousseName); + materialsJsonArray = tousseDefinitionManager.getMaterialsOfDisinfectionGoods(td, true); + } + if(td.isForeignProxyTousse()){ + // 外部代理灭菌,要取单的信息 + ForeignProxyDisinfection foreignProxyDisinfection = tousseInstance.getForeignProxyDisinfection(objectDao); + if(foreignProxyDisinfection != null){ + obj.put("applicant", foreignProxyDisinfection.getApplicant()); + obj.put("applicantDepart", foreignProxyDisinfection.getDepart()); + } + } + + String validUntilStr = tousseInstance.getValidUntilStr(Constants.SIMPLEDATEFORMAT_YYYYMMDD);; + Date warningUntil = tousseInstance.getWarningUntil(); + String warningUntilStr = ""; + if (warningUntil != null) { + warningUntilStr = new SimpleDateFormat("yyyy-MM-dd") + .format(warningUntil); + } + String washStartTime = tousseInstance.getWashStartTime(); + if (washStartTime == null) { + washStartTime = ""; + } + + String sterileStartTime = tousseInstance.getSterileStartTime(); + boolean isMarkTousse = expirationDateInfoManager + .isMarkTousse(sterileStartTime, validUntilStr); + + // 使用次数,包实例对应的标识牌定义的使用次数,即实体器械包的使用次数 + String useAmount = ""; + if (tousseInstance.getUseAmount() != null){ + useAmount = tousseInstance.getUseAmount().toString(); + } + String saPurpose = sterilisationManager.getSterilisationPurposeByName(tousseInstance.getSterilingType()); + obj.put("id", tousseInstance.getId()); + obj.put("tousseName", tousseName); + obj.put("tousseBarcode", tousseInstance.getBarcode()); + obj.put("virtualBasketSeqNum", tousseInstance.getVirtualBasketSeqNum()); + obj.put("fixedBarcode", fixedBarcode); + obj.put("materialsJsonArray", materialsJsonArray); + obj.put("packer", tousseInstance.getOperator()); + obj.put("washOperator", tousseInstance.getWashOperator()); + obj.put("washOperatorCode", tousseInstance.getWashOperatorCode()); + obj.put("reviewer", tousseInstance.getReviewer()); + obj.put("sterileStartTime", sterileStartTime); + obj.put("barcodePaperType", td.getBarcodePaperType()); + + obj.put("packTime", Constants.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS + .format(tousseInstance.getOperationTime())); + obj.put("packType", tousseInstance.getPackageType()); + obj.put("sterilization", tousseInstance.getSterilingType()); + obj.put("sterilizationPurpose",saPurpose); + obj.put("tousseType", td.getTousseType()); + obj.put("supplierName", supplierName); + obj.put("sterilizer", sterilizer); + obj.put("frequency", frequency); + obj.put("isTraceable", isTraceable); + obj.put("isSterile", isSterile); + obj.put("toolAmount", toolAmount); + obj.put("implantAmount", implantAmount); + obj.put("idCardDefinitionUseAmount", useAmount); + obj.put("materialTypeTotal", materialTypeTotal); + obj.put("validUntilStr", validUntilStr); + obj.put("warningDateStr", warningUntilStr); + obj.put("packerCode", tousseInstance.getOperatorCode()); + obj.put("reviewerCode", tousseInstance.getReviewerCode()); + obj.put("sterilizationUser", tousseInstance.getSterilizationUser()); + obj.put("sterilizationUserCode", tousseInstance.getSterilizationUserCode()); + obj.put("washTime", washStartTime); + obj.put("isPrint", isPrint); + obj.put("isMarkTousse", isMarkTousse); + obj.put("status", tousseInstance.getStatus()); + obj.put("weight", tousseInstance.getWeight()); + //是否打印科室及科室名称 + obj.put("isPrintOrg", TousseDefinition.STR_YES.equals(td.getIsPrintOrg())); + //根据器械包的申请单编号或回收单编号查询出所属申请部门 + String department = null; + if(tousseInstance.getInvoicePlanID() != null){ + InvoicePlan invoicePlan = + (InvoicePlan)objectDao.getByProperty(InvoicePlan.class.getSimpleName(), "id", tousseInstance.getInvoicePlanID()); + if(invoicePlan != null){ + department = invoicePlan.getDepart(); + } + }else if(tousseInstance.getRecyclingRecordId() != null){ + RecyclingRecord recylingRecord = + (RecyclingRecord)objectDao.getByProperty(RecyclingRecord.class.getSimpleName(), "id", tousseInstance.getRecyclingRecordId()); + if(recylingRecord != null){ + department = recylingRecord.getDepart(); + } + }else{ + department = department1; + } + if(StringUtils.isNotBlank(department)){ + obj.put("department", department); + } + } @Override