Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r12596 -r12659 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 12596) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 12659) @@ -13,6 +13,7 @@ import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.vo.TousseSimpleVO; @@ -150,4 +151,16 @@ * @return */ public Map getTousseInstanceListByRange(String begin , String end , String tousseInstanceStatus); + /** + * 添加器械包到仓库 + * @param tousseInstance 器械包 + * @param wareHouse 仓库,有用的字段是id和name + */ + public void setToWareHouse(TousseInstance tousseInstance,WareHouse wareHouse); + /** + * 添加器械包到科室默认仓库,只有已灭菌的器械包实例或已消毒的消毒物品才能添加到默认仓库(完成灭菌时调用),其他状态只能是移仓 + * @param tousseInstance 器械包实例 + * @param orgUnitCoding 科室编码 + */ + public void setToDefaultWareHouse(TousseInstance tousseInstance,String orgUnitCoding); } Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r12596 -r12659 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 12596) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 12659) @@ -38,15 +38,18 @@ import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.acegi.tools.AcegiHelper; import com.forgon.directory.model.BarcodeDevice; +import com.forgon.directory.model.OrgUnit; import com.forgon.directory.vo.LoginUserData; import com.forgon.disinfectsystem.barcode.service.BarcodeManager; import com.forgon.disinfectsystem.basedatamanager.container.service.ReviewedBasketManager; import com.forgon.disinfectsystem.basedatamanager.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseInstanceUtils; +import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.supplyroomconfig.SupplyRoomConfig; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseDefinition; import com.forgon.disinfectsystem.entity.basedatamanager.toussedefinition.TousseInstance; +import com.forgon.disinfectsystem.entity.basedatamanager.warehouse.WareHouse; import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.systemwarning.SystemWarningItemVO; @@ -91,6 +94,8 @@ private SerialNumManager serialNumManager; + private WareHouseManager wareHouseManager; + public void setDbConnection(InitDbConnection dbConnection) { this.dbConnection = dbConnection; } @@ -124,6 +129,10 @@ this.serialNumManager = serialNumManager; } + public void setWareHouseManager(WareHouseManager wareHouseManager) { + this.wareHouseManager = wareHouseManager; + } + public void discardTousseInstance(TousseInstance tousseInstance,String operateUser,String wasteReason,Date wasteDate){ if(tousseInstance == null){ return; @@ -1356,4 +1365,45 @@ return obj.toString(); } + + @Override + public void setToWareHouse(TousseInstance tousseInstance, + WareHouse wareHouse) { + if(tousseInstance == null || wareHouse == null){ + throw new IllegalArgumentException("器械包入库:器械包和仓库都不能为空"); + } + tousseInstance.setWareHouseId(wareHouse.getId()); + tousseInstance.setWareHouseName(wareHouse.getName()); + } + + /** + * 获取科室的默认仓库 + * @param orgUnitCoding 科室编码 + * @return 科室对应的默认仓库,如果没有,则返回null + */ + private WareHouse getDefaultWareHouse(String orgUnitCoding){ + OrgUnit orgUnit = new OrgUnit(); + orgUnit.setOrgUnitCoding(orgUnitCoding); + + List wareHouses = wareHouseManager.getWareHouseListByOrgUnit(orgUnit); + if(wareHouses!= null && !wareHouses.isEmpty()){ + return wareHouses.get(0); + } + return null; + } + @Override + public void setToDefaultWareHouse(TousseInstance tousseInstance, + String orgUnitCoding) { + boolean statusValid = false; + if(TousseInstance.STATUS_STERILED.equals(tousseInstance.getStatus())){ + statusValid = true; + }else if(TousseDefinition.PACKAGE_TYPE_DISINFECTION.equals(tousseInstance.getTousseDefinition().getTousseType()) + && TousseInstance.STATUS_DISINFECTED.equals(tousseInstance.getStatus())){ + statusValid = true; + } + if(statusValid){ + WareHouse wareHouse = getDefaultWareHouse(orgUnitCoding); + setToWareHouse(tousseInstance, wareHouse); + } + } } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r12607 -r12659 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 12607) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 12659) @@ -369,6 +369,7 @@ } updateTousseInstanceProperty(sdf, sterilizationRecord, tousseInstance); + tousseInstanceManager.setToDefaultWareHouse(tousseInstance, orgUnitCode); tousseInstanceManager.saveOrUpdate(tousseInstance); }