Index: ssts-web/src/main/resources/spring/projects/gdsy/timer.xml =================================================================== diff -u -r13433 -r14205 --- ssts-web/src/main/resources/spring/projects/gdsy/timer.xml (.../timer.xml) (revision 13433) +++ ssts-web/src/main/resources/spring/projects/gdsy/timer.xml (.../timer.xml) (revision 14205) @@ -41,13 +41,35 @@ 0 0 0 * * ? + + + + + + + + autoWasteOutdateTousseInstances + + + + + + + + + 0 0 0 * * ? + + + + Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java =================================================================== diff -u -r13971 -r14205 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 13971) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManagerImpl.java (.../TousseInstanceManagerImpl.java) (revision 14205) @@ -44,6 +44,7 @@ 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.supplyroomconfig.service.SupplyRoomConfigManager; import com.forgon.disinfectsystem.basedatamanager.toussedefinition.service.TousseInstanceUtils; import com.forgon.disinfectsystem.basedatamanager.warehouse.service.WareHouseManager; @@ -52,6 +53,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.goodsstock.GoodsStock; import com.forgon.disinfectsystem.entity.packing.ReviewedBasket; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.systemwarning.SystemWarningItemVO; @@ -99,6 +101,8 @@ private WareHouseManager wareHouseManager; + private GoodsStockManager goodsStockManager; + public void setDbConnection(InitDbConnection dbConnection) { this.dbConnection = dbConnection; } @@ -141,6 +145,33 @@ this.supplyRoomConfigManager = supplyRoomConfigManager; } + public void setGoodsStockManager(GoodsStockManager goodsStockManager) { + this.goodsStockManager = goodsStockManager; + } + + /** + * 定时器方法,定时检查过期的包实例,并对过期的包实例进行废弃处理 + */ + public void autoWasteOutdateTousseInstances(){ + List outdateTousseInstanceList = + objectDao.findByHql("from TousseInstance where validUntil > " + new Date()); + if(CollectionUtils.isNotEmpty(outdateTousseInstanceList)){ + //更新器械包库存 + List goodsStockList = new ArrayList(); + for(TousseInstance tousseInstance : outdateTousseInstanceList){ + GoodsStock goodsStock = new GoodsStock(); + goodsStock.setAmount(1); + goodsStock.setGoodsType(GoodsStock.TYPE_TOUSSE); + goodsStock.setName(tousseInstance.getTousseName()); + goodsStock.setTousseDefinitionId(tousseInstance.getTousseDefinition().getAncestorID()); + goodsStock.setWareHouseId(tousseInstance.getWareHouseId()); + goodsStock.setWareHouseName(tousseInstance.getWareHouseName()); + goodsStockList.add(goodsStock); + } + goodsStockManager.saveOrUpdateGoodsStock(goodsStockList, GoodsStockManager.MODE_OUTSTOCK); + } + } + public void discardTousseInstance(TousseInstance tousseInstance,String operateUser,String wasteReason,Date wasteDate){ if(tousseInstance == null){ return; @@ -149,7 +180,30 @@ tousseInstance.setWasteReason(wasteReason); tousseInstance.setWasteDate(wasteDate); tousseInstance.setStatus(TousseInstance.STATUS_DISCARD); + + GoodsStock goodsStock = new GoodsStock(); + goodsStock.setAmount(1); + goodsStock.setGoodsType(GoodsStock.TYPE_TOUSSE); + goodsStock.setName(tousseInstance.getTousseName()); + goodsStock.setTousseDefinitionId(tousseInstance.getTousseDefinition().getAncestorID()); + goodsStock.setWareHouseId(tousseInstance.getWareHouseId()); + goodsStock.setWareHouseName(tousseInstance.getWareHouseName()); + //所在位置,所属仓库等属性也清空 + tousseInstance.setLocation(null); + tousseInstance.setLocationForDisplay(null); + tousseInstance.setWareHouseId(null); + tousseInstance.setWareHouseName(null); + + //如果状态为已装配、已审核,则包实例关联的篮筐实例属性清空 + if(TousseInstance.STATUS_PACKED.equals(tousseInstance.getStatus()) || TousseInstance.STATUS_REVIEWED.equals(tousseInstance.getStatus())){ + tousseInstance.setReviewBasket_id(null); + } objectDao.saveOrUpdate(tousseInstance); + + //更新器械包库存 + List goodsStockList = new ArrayList(); + goodsStockList.add(goodsStock); + goodsStockManager.saveOrUpdateGoodsStock(goodsStockList, GoodsStockManager.MODE_OUTSTOCK); } public void discardTousseInstance(TousseInstance tousseInstance, Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java =================================================================== diff -u -r13719 -r14205 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 13719) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/tousse/toussedefinition/service/TousseInstanceManager.java (.../TousseInstanceManager.java) (revision 14205) @@ -24,6 +24,11 @@ public interface TousseInstanceManager { public void saveOrUpdate(TousseInstance tousseInstance); + + /** + * 定时器方法,定时检查过期的包实例,并对过期的包实例进行废弃处理 + */ + public void autoWasteOutdateTousseInstances(); public void discardTousseInstance(TousseInstance tousseInstance,String operateUser,String wasteReason,Date wasteDate); public void discardTousseInstance(TousseInstance tousseInstance,String wasteReason);