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);