Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r36594 -r36595 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 36594) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 36595) @@ -3922,33 +3922,36 @@ //extractForeignTousseInvoice(foreignTousseInstances,deptName,deptCode); //非外来器械包包实例集合或外来器械包包实例集合其中一个不为空时,则调用下面的方法 if(CollectionUtils.isNotEmpty(tousseInstances) || CollectionUtils.isNotEmpty(foreignTousseInstances)){ - return autoInvoiceAfterSterilizationCompleteFinish(tousseInstances, foreignTousseInstances, deptName, deptCode,defaultWareHouse); + String orgUnitCoding = sterilizationRecord.getOrgUnitCoding(); + return autoInvoiceAfterSterilizationCompleteFinish(orgUnitCoding,tousseInstances, foreignTousseInstances, deptName, deptCode,defaultWareHouse); } return JSONUtil.buildJsonObject(true); } /** * 之前老的二级供应室自动发货的方式,现在将之前被删除的代码再找回来重新整合封装下 + * @param orgUnitCoding 发货的二级供应室编码(解决二级供应室的灭菌记录定时完成后生成的发货单的orgUnitCoding字段为空的情况) * @param tousseInstances 非外来器械包的包实例集合 * @param foreignTousseInstances 外来器械包的包实例集合 * @param deptName 科室名称 * @param deptCode 科室编码 */ - private void extractAllTousseInvoice(List tousseInstances, List foreignTousseInstances, + private void extractAllTousseInvoice(String orgUnitCoding,List tousseInstances, List foreignTousseInstances, String deptName, String deptCode){ //生成普通器械包的发货单 - extractTousseInvoice(tousseInstances,deptName,deptCode); + extractTousseInvoice(orgUnitCoding,tousseInstances,deptName,deptCode); //生成外来器械包的发货单 - extractForeignTousseInvoice(foreignTousseInstances,deptName,deptCode); + extractForeignTousseInvoice(orgUnitCoding,foreignTousseInstances,deptName,deptCode); } /** * 生成外来器械包的发货单. - * @param foreignTousseInstances - * @param deptName - * @param deptCode + * @param orgUnitCoding 发货的二级供应室编码(解决二级供应室的灭菌记录定时完成后生成的发货单的orgUnitCoding字段为空的情况) + * @param foreignTousseInstances 外来器械包实例集合 + * @param deptName 发放的目的科室名称 + * @param deptCode 发放的目的科室编码 */ - private void extractForeignTousseInvoice( + private void extractForeignTousseInvoice(String orgUnitCoding, List foreignTousseInstances, String deptName, String deptCode) { if (foreignTousseInstances.size() > 0) { @@ -3980,8 +3983,7 @@ invoice.setApplicationTime(application.getApplicationTime()); invoice.setDepart(deptName); invoice.setSettleAccountsDepart(deptName); - invoice.setOrgUnitCoding(AcegiHelper.getLoginUser() - .getCurrentOrgUnitCode()); + invoice.setOrgUnitCoding(orgUnitCoding); invoice.setStatus(Invoice.STATUS_DELIVERED); invoice.setRemark("二级供应室自动发货"); List tousseInstanceList = foreignTousseApplications @@ -4066,11 +4068,12 @@ /** * 生成普通器械包的发货单. + * @param orgUnitCoding 发货的二级供应室编码(解决二级供应室的灭菌记录定时完成后生成的发货单的orgUnitCoding字段为空的情况) * @param tousseInstances * @param deptName * @param deptCode */ - private void extractTousseInvoice(List tousseInstances,String deptName,String deptCode) { + private void extractTousseInvoice(String orgUnitCoding,List tousseInstances,String deptName,String deptCode) { if (tousseInstances.size() > 0) { Invoice invoice = new Invoice(); invoice.setSerialNumber(serialNumManager @@ -4081,8 +4084,7 @@ invoice.setDepartCoding(deptCode); invoice.setSettleAccountsDepart(deptName); invoice.setSettleAccountsDepartCoding(deptCode); - invoice.setOrgUnitCoding(AcegiHelper.getLoginUser() - .getCurrentOrgUnitCode()); + invoice.setOrgUnitCoding(orgUnitCoding); invoice.setStatus(Invoice.STATUS_DELIVERED); invoice.setRemark("二级供应室自动发货"); objectDao.saveOrUpdate(invoice); @@ -4265,13 +4267,14 @@ /** * 二级供应室自动发货后调用科室的发货计划发货的接口 + * @param orgUnitCoding * @param tousseInstances * @param foreignTousseInstances * @param deptName * @param deptCode * @return */ - private JSONObject autoInvoiceAfterSterilizationCompleteFinish(List tousseInstances, List foreignTousseInstances, String deptName, + private JSONObject autoInvoiceAfterSterilizationCompleteFinish(String orgUnitCoding, List tousseInstances, List foreignTousseInstances, String deptName, String deptCode,WareHouse defaultWareHouse){ List allTousseInstanceListOfSterilizationRecord = new ArrayList(); if(CollectionUtils.isNotEmpty(tousseInstances)){ @@ -4304,7 +4307,7 @@ throw new InvoiceException(e.getMessage()); } }else{ - extractAllTousseInvoice(tousseInstances, foreignTousseInstances, deptName, deptCode); + extractAllTousseInvoice(orgUnitCoding,tousseInstances, foreignTousseInstances, deptName, deptCode); } } return JSONUtil.buildJsonObject(true);