Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManagerImpl.java =================================================================== diff -u -r22118 -r22125 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManagerImpl.java (.../ExpensiveGoodsGodownEntryManagerImpl.java) (revision 22118) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManagerImpl.java (.../ExpensiveGoodsGodownEntryManagerImpl.java) (revision 22125) @@ -173,11 +173,8 @@ } } - /** - * 根据高值耗材的预入库单产生外来器械包申请单. - * @param expensiveGoodsGodownEntry 高值耗材入库单 - */ - private void createForeignTousseApplicationForEntry(ExpensiveGoodsGodownEntry expensiveGoodsGodownEntry) { + @Override + public void createForeignTousseApplicationForEntry(ExpensiveGoodsGodownEntry expensiveGoodsGodownEntry) { if (expensiveGoodsGodownEntry != null) { Long invoicePlanId = expensiveGoodsGodownEntry.getInvoicePlanId(); if (DatabaseUtil.isPoIdValid(invoicePlanId) && ExpensiveGoodsGodownEntry.SUBTYPE_PREPARE_IN.equals(expensiveGoodsGodownEntry.getSubType())) { @@ -188,73 +185,77 @@ if (expensiveGoodsApplication != null) { //1、把预入库的植入物的高值耗材转成材料 Map materialDefinitionToAmountMap = convertToBeForeignTousseDefinition(expensiveGoodsGodownEntry.getItemsList()); - - //2、创建外来器械包申请单 - SupplyRoomConfig systemParams = supplyRoomConfigManager.getSystemParamsObj(); - ForeignTousseApplication foreignTousseApplication = new ForeignTousseApplication(); - foreignTousseApplication.setApplicant(expensiveGoodsApplication.getApplicant()); - foreignTousseApplication.setApplicantCode(expensiveGoodsApplication.getApplicantCode()); - foreignTousseApplication.setSerialNumber(serialNumManager.getSerialNumberStr(SerialNum.TYPE_RECYCLINGAPPLICATION)); - foreignTousseApplication.setApplicationTime(new Date()); - foreignTousseApplication.setDepart(expensiveGoodsApplication.getDepart()); - foreignTousseApplication.setDepartCoding(expensiveGoodsApplication.getDepartCoding()); - foreignTousseApplication.setSettleAccountsDepart(expensiveGoodsApplication.getSettleAccountsDepart()); - foreignTousseApplication.setSettleAccountsDepartCoding(expensiveGoodsApplication.getSettleAccountsDepartCoding()); - foreignTousseApplication.setHandleDepart(systemParams.getDptNameOfForeignTousse()); - foreignTousseApplication.setHandleDepartCoding(systemParams.getDptCodeOfForeignTousse()); - foreignTousseApplication.setHospitalNumber(expensiveGoodsApplication.getHospitalNumber()); - foreignTousseApplication.setClinicNumber(expensiveGoodsApplication.getClinicNumber()); - foreignTousseApplication.setPatient(expensiveGoodsApplication.getPatient()); - foreignTousseApplication.setPatientArea(expensiveGoodsApplication.getPatientArea()); - foreignTousseApplication.setRoomNumber(expensiveGoodsApplication.getRoomNumber()); - foreignTousseApplication.setBedNumber(expensiveGoodsApplication.getBedNumber()); - foreignTousseApplication.setPatientAge(expensiveGoodsApplication.getPatientAge() != null ? expensiveGoodsApplication.getPatientAge()+"" : ""); - foreignTousseApplication.setPatientSex(expensiveGoodsApplication.getPatientSex()); - foreignTousseApplication.setAscriptionDepartment(expensiveGoodsApplication.getAscriptionDepartment()); - foreignTousseApplication.setSurgery(expensiveGoodsApplication.getSurgery()); - foreignTousseApplication.setOperationTime(expensiveGoodsApplication.getOperationTime()); - foreignTousseApplication.setDoctor(expensiveGoodsApplication.getDoctor()); - foreignTousseApplication.setOperationRoom(expensiveGoodsApplication.getOperationRoom()); - foreignTousseApplication.setTousseName(expensiveGoodsApplication.getForeignTousseName()); - foreignTousseApplication.setRemark(expensiveGoodsApplication.getRemark()); - foreignTousseApplication.setSequence(supplyRoomConfigManager.getOrgUnitSequence(foreignTousseApplication.getDepartCoding())); - foreignTousseApplication.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE); - foreignTousseApplication.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); - foreignTousseApplication.setCommittedStatus(true); - foreignTousseApplication.setIncludeRecyclingItems(InvoicePlan.SIGNED_TRUE); - foreignTousseApplication.setSubmitTime(new Date()); - // 设置五笔码和拼音码 - String depart = foreignTousseApplication.getDepart(); - foreignTousseApplication.setSpelling(GB2Alpha.string2Alpha(depart)); - foreignTousseApplication.setWbCode(GB2WB.getWBCode(depart)); - objectDao.saveOrUpdate(foreignTousseApplication); - - //3、创建外来器械包定义 - TousseDefinition foreignTousseDefinition = createForeignTousseForExpensiveGoodsGodownEntry( - expensiveGoodsGodownEntry, - materialDefinitionToAmountMap, - foreignTousseApplication); - - //4、生成申请项 - TousseItem tousseItem = new TousseItem(); - tousseItem.setTousseName(foreignTousseDefinition.getName()); - tousseItem.setSupplierName(foreignTousseDefinition.getSupplierName()); - tousseItem.setAmount(1); - tousseItem.setPrice(systemParams.getForeignToussePrice()); - tousseItem.setRowPrice(systemParams.getForeignToussePrice() * tousseItem.getAmount()); - tousseItem.setDiposable(TousseItem.DIPOSABLE_NO); - tousseItem.setTousseType(TousseDefinition.PACKAGE_TYPE_FOREIGN); - tousseItem.setInvoicePlan(foreignTousseApplication); - tousseItem.setTousseDefinitionId(foreignTousseDefinition.getId()); - tousseItem.setInvoicePlanID(foreignTousseApplication.getId()); - tousseItem.setIsCleanedEntirely(systemParams.getForeignTousseCleanedEntirely()); - tousseItem.setIsRecycling(Constants.STR_YES); - objectDao.saveOrUpdate(tousseItem); - - List foreignTousseItems = new ArrayList(); - foreignTousseItems.add(tousseItem); - foreignTousseApplication.setApplicationItems(foreignTousseItems); - objectDao.saveOrUpdate(foreignTousseApplication); + if (materialDefinitionToAmountMap.size() > 0) { + //2、创建外来器械包申请单 + SupplyRoomConfig systemParams = supplyRoomConfigManager.getSystemParamsObj(); + ForeignTousseApplication foreignTousseApplication = new ForeignTousseApplication(); + foreignTousseApplication.setApplicant(expensiveGoodsApplication.getApplicant()); + foreignTousseApplication.setApplicantCode(expensiveGoodsApplication.getApplicantCode()); + foreignTousseApplication.setSerialNumber(serialNumManager.getSerialNumberStr(SerialNum.TYPE_RECYCLINGAPPLICATION)); + foreignTousseApplication.setType(InvoicePlan.TYPE_FOREIGNTOUSSEAPPLIACTION); + foreignTousseApplication.setApplicationTime(new Date()); + foreignTousseApplication.setDepart(expensiveGoodsApplication.getDepart()); + foreignTousseApplication.setDepartCoding(expensiveGoodsApplication.getDepartCoding()); + foreignTousseApplication.setSettleAccountsDepart(expensiveGoodsApplication.getSettleAccountsDepart()); + foreignTousseApplication.setSettleAccountsDepartCoding(expensiveGoodsApplication.getSettleAccountsDepartCoding()); + foreignTousseApplication.setHandleDepart(systemParams.getDptNameOfForeignTousse()); + foreignTousseApplication.setHandleDepartCoding(systemParams.getDptCodeOfForeignTousse()); + foreignTousseApplication.setHospitalNumber(expensiveGoodsApplication.getHospitalNumber()); + foreignTousseApplication.setClinicNumber(expensiveGoodsApplication.getClinicNumber()); + foreignTousseApplication.setPatient(expensiveGoodsApplication.getPatient()); + foreignTousseApplication.setPatientArea(expensiveGoodsApplication.getPatientArea()); + foreignTousseApplication.setRoomNumber(expensiveGoodsApplication.getRoomNumber()); + foreignTousseApplication.setBedNumber(expensiveGoodsApplication.getBedNumber()); + foreignTousseApplication.setPatientAge(expensiveGoodsApplication.getPatientAge() != null ? expensiveGoodsApplication.getPatientAge()+"" : ""); + foreignTousseApplication.setPatientSex(expensiveGoodsApplication.getPatientSex()); + foreignTousseApplication.setAscriptionDepartment(expensiveGoodsApplication.getAscriptionDepartment()); + foreignTousseApplication.setSurgery(expensiveGoodsApplication.getSurgery()); + foreignTousseApplication.setOperationTime(expensiveGoodsApplication.getOperationTime()); + foreignTousseApplication.setDoctor(expensiveGoodsApplication.getDoctor()); + foreignTousseApplication.setOperationRoom(expensiveGoodsApplication.getOperationRoom()); + foreignTousseApplication.setTousseName(expensiveGoodsApplication.getForeignTousseName()); + foreignTousseApplication.setRemark(expensiveGoodsApplication.getRemark()); + foreignTousseApplication.setSequence(supplyRoomConfigManager.getOrgUnitSequence(foreignTousseApplication.getDepartCoding())); + foreignTousseApplication.setRecyclingStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE); + foreignTousseApplication.setPackageStatus(InvoicePlan.RECYCLINGSTATUS_AWAITRECEIVE); + foreignTousseApplication.setDeliverStatus(InvoicePlan.DELIVERSTATUS_AWAITDELIVER); + foreignTousseApplication.setOrderByFiled(InvoicePlan.DELIVER_AWAITDELIVER); + foreignTousseApplication.setCommittedStatus(true); + foreignTousseApplication.setIncludeRecyclingItems(InvoicePlan.SIGNED_TRUE); + foreignTousseApplication.setSubmitTime(new Date()); + // 设置五笔码和拼音码 + String depart = foreignTousseApplication.getDepart(); + foreignTousseApplication.setSpelling(GB2Alpha.string2Alpha(depart)); + foreignTousseApplication.setWbCode(GB2WB.getWBCode(depart)); + objectDao.saveOrUpdate(foreignTousseApplication); + + //3、创建外来器械包定义 + TousseDefinition foreignTousseDefinition = createForeignTousseForExpensiveGoodsGodownEntry( + expensiveGoodsGodownEntry, + materialDefinitionToAmountMap, + foreignTousseApplication); + + //4、生成申请项 + TousseItem tousseItem = new TousseItem(); + tousseItem.setTousseName(foreignTousseDefinition.getName()); + tousseItem.setSupplierName(foreignTousseDefinition.getSupplierName()); + tousseItem.setAmount(1); + tousseItem.setPrice(systemParams.getForeignToussePrice()); + tousseItem.setRowPrice(systemParams.getForeignToussePrice() * tousseItem.getAmount()); + tousseItem.setDiposable(TousseItem.DIPOSABLE_NO); + tousseItem.setTousseType(TousseDefinition.PACKAGE_TYPE_FOREIGN); + tousseItem.setInvoicePlan(foreignTousseApplication); + tousseItem.setTousseDefinitionId(foreignTousseDefinition.getId()); + tousseItem.setInvoicePlanID(foreignTousseApplication.getId()); + tousseItem.setIsCleanedEntirely(systemParams.getForeignTousseCleanedEntirely()); + tousseItem.setIsRecycling(Constants.STR_YES); + objectDao.saveOrUpdate(tousseItem); + + List foreignTousseItems = new ArrayList(); + foreignTousseItems.add(tousseItem); + foreignTousseApplication.setApplicationItems(foreignTousseItems); + objectDao.saveOrUpdate(foreignTousseApplication); + } } } } @@ -367,6 +368,7 @@ foreignTousseMaterialDefinition.setIsImplant(Constants.STR_YES); foreignTousseMaterialDefinition.setGoodsType(MaterialDefinition.TYPE_EXPENSIVEMATERIALGOODS); foreignTousseMaterialDefinition.setIsForeignMaterial(Constants.STR_YES); + foreignTousseMaterialDefinition.setDisable(Constants.STR_NO); foreignTousseMaterialDefinition.setSpelling(GB2Alpha.string2Alpha(foreignTousseMaterialDefinition.getName())); foreignTousseMaterialDefinition.setWbCode(GB2WB.getWBCode(foreignTousseMaterialDefinition.getName())); objectDao.saveOrUpdate(foreignTousseMaterialDefinition); Index: ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManager.java =================================================================== diff -u -r22030 -r22125 --- ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManager.java (.../ExpensiveGoodsGodownEntryManager.java) (revision 22030) +++ ssts-expensivegoods/src/main/java/com/forgon/disinfectsystem/expensiveGoods/service/ExpensiveGoodsGodownEntryManager.java (.../ExpensiveGoodsGodownEntryManager.java) (revision 22125) @@ -13,6 +13,12 @@ public interface ExpensiveGoodsGodownEntryManager extends BasePoManager { + /** + * 根据高值耗材的预入库单产生外来器械包申请单. + * @param expensiveGoodsGodownEntry 高值耗材入库单 + */ + public void createForeignTousseApplicationForEntry(ExpensiveGoodsGodownEntry expensiveGoodsGodownEntry); + public Map deleteGodownEntryById_TRANS_NEW(String id); public Map deleteGodownOutEntryById_TRANS_NEW(String id);