Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r12659 -r12773 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 12659) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 12773) @@ -31,18 +31,22 @@ 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.goodsstock.service.GoodsStockManager; import com.forgon.disinfectsystem.basedatamanager.sterilizer.service.SterilizerManager; 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.common.CssdUtils; import com.forgon.disinfectsystem.entity.assestmanagement.TousseStock; import com.forgon.disinfectsystem.entity.basedatamanager.container.Container; import com.forgon.disinfectsystem.entity.basedatamanager.sterilizer.Sterilizer; 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.departmentstock.DepartmentStock; import com.forgon.disinfectsystem.entity.foreigntousseapplication.ForeignTousseApplication; +import com.forgon.disinfectsystem.entity.goodsstock.GoodsStock; import com.forgon.disinfectsystem.entity.invoicemanager.Invoice; import com.forgon.disinfectsystem.entity.invoicemanager.InvoiceItem; import com.forgon.disinfectsystem.entity.invoicemanager.InvoicePlan; @@ -94,6 +98,10 @@ private LogManager appLogManager; + private WareHouseManager wareHouseManager; + + private GoodsStockManager goodsStockManager; + public void setAppLogManager(LogManager appLogManager) { this.appLogManager = appLogManager; } @@ -140,6 +148,14 @@ this.departmentStockManager = departmentStockManager; } + public void setWareHouseManager(WareHouseManager wareHouseManager) { + this.wareHouseManager = wareHouseManager; + } + + public void setGoodsStockManager(GoodsStockManager goodsStockManager) { + this.goodsStockManager = goodsStockManager; + } + @Override public void saveOrUpdate(SterilizationRecord sterilizationRecord) { objectDao.saveOrUpdate(sterilizationRecord); @@ -279,6 +295,21 @@ } } + private GoodsStock newGoodsStock(TousseInstance tousseInstance,WareHouse wareHouse){ + if(tousseInstance == null || wareHouse == null){ + return null; + } + GoodsStock goodsStock = new GoodsStock(); + goodsStock.setAmount(1); + goodsStock.setGoodsType(GoodsStock.TYPE_TOUSSE); + goodsStock.setName(tousseInstance.getTousseName()); + goodsStock.setOrgUnitCode(wareHouse.getOrgUnitCode()); + goodsStock.setOrgUnitName(wareHouse.getOrgUnitName()); + goodsStock.setTousseDefinitionId(tousseInstance.getTousseDefinition().getId()); + goodsStock.setWareHouseId(wareHouse.getId()); + goodsStock.setWareHouseName(wareHouse.getName()); + return goodsStock; + } @Override public String completeSterilization(Collection sterilizationRecordIds, String orgUnitCode,String finishOperater) { @@ -359,7 +390,8 @@ allTousseInstancesOfSterile.addAll(tousseInstancesInBasket); } - + List goodsStockList = new ArrayList(); + WareHouse defaultWareHouse = wareHouseManager.getDefaultWareHouseByUnitCode(orgUnitCode); // 更新器械包的状态 for (TousseInstance tousseInstance : allTousseInstancesOfSterile) { @@ -369,10 +401,19 @@ } updateTousseInstanceProperty(sdf, sterilizationRecord, tousseInstance); + GoodsStock goodsStock = newGoodsStock(tousseInstance,defaultWareHouse); + goodsStockList.add(goodsStock); tousseInstanceManager.setToDefaultWareHouse(tousseInstance, orgUnitCode); tousseInstanceManager.saveOrUpdate(tousseInstance); } - + //修改库存 + try { + goodsStockManager.saveOrUpdateGoodsStock(goodsStockList, GoodsStockManager.MODE_INSTOCK); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + throw new RuntimeException(e.getMessage()); + } if (!isSupplyRoomUser) { //二级供应室 generateInvoiceForSecondSupplyRoom(sterilizationRecord); Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/WareHouseManagerImpl.java =================================================================== diff -u -r12749 -r12773 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/WareHouseManagerImpl.java (.../WareHouseManagerImpl.java) (revision 12749) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/WareHouseManagerImpl.java (.../WareHouseManagerImpl.java) (revision 12773) @@ -65,7 +65,11 @@ } return wareHouse; } - + public WareHouse getDefaultWareHouseByUnitCode(String orgUnitCode){ + OrgUnit orgUnit = new OrgUnit(); + orgUnit.setOrgUnitCoding(orgUnitCode); + return getDefaultWareHouseListByOrgUnit(orgUnit); + } /** * 查询科室下的仓库,按sequence排序,返回集合的第1条就是默认仓库 * @param orgUnit 默认按科室id,如果id为空,则按code查询 Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/WareHouseManager.java =================================================================== diff -u -r12739 -r12773 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/WareHouseManager.java (.../WareHouseManager.java) (revision 12739) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/warehouse/service/WareHouseManager.java (.../WareHouseManager.java) (revision 12773) @@ -29,6 +29,12 @@ * @return */ public WareHouse getDefaultWareHouseListByOrgUnit(OrgUnit orgUnit); + /** + * 查询科室默认仓库 + * @param orgUnitCode + * @return + */ + public WareHouse getDefaultWareHouseByUnitCode(String orgUnitCode); /** * 查询科室下的仓库,按sequence排序,返回集合的第1条就是默认仓库