Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManagerImpl.java =================================================================== diff -u -r15035 -r15061 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManagerImpl.java (.../ForeignProxyDisinfectionManagerImpl.java) (revision 15035) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/foreignproxydisinfection/service/ForeignProxyDisinfectionManagerImpl.java (.../ForeignProxyDisinfectionManagerImpl.java) (revision 15061) @@ -53,8 +53,9 @@ import com.forgon.serialnumber.service.SerialNumManager; import com.forgon.tools.GB2Alpha; import com.forgon.tools.GB2WB; -import com.forgon.tools.StrutsParamUtils; +import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.json.JSONUtil; @@ -89,6 +90,8 @@ private ExpirationDateInfoManager expirationDateInfoManager; + private InitDbConnection dbConnection; + public void setExpirationDateInfoManager( ExpirationDateInfoManager expirationDateInfoManager) { this.expirationDateInfoManager = expirationDateInfoManager; @@ -133,6 +136,10 @@ this.objectDao = objectDao; } + public void setDbConnection(InitDbConnection dbConnection) { + this.dbConnection = dbConnection; + } + @Override public void endForeignProxyDisinfection(String id) { if(StringUtils.isBlank(id)){ @@ -335,10 +342,25 @@ ForeignProxyDisinfection foreignProxyDisinfection) { List items = foreignProxyDisinfection .getForeignProxyItems(); - String deleteTousseInstanceSql = "delete from tousseinstance where foreignproxyitem_id in(select id from foreignproxyitem where foreignproxydisinfection_id=%s)"; + /*String deleteTousseInstanceSql = "delete from tousseinstance where foreignproxyitem_id in(select id from foreignproxyitem where foreignproxydisinfection_id=%s)"; deleteTousseInstanceSql = String.format(deleteTousseInstanceSql, foreignProxyDisinfection.getId()); - objectDao.excuteSQL(deleteTousseInstanceSql); + objectDao.excuteSQL(deleteTousseInstanceSql);*/ + + //获取数据库当前时间的表达式 + String currentDateTimeDbExpress = "GETDATE()"; + if(DatabaseUtil.isOracle(dbConnection.getDatabase())){ + currentDateTimeDbExpress = "sysdate"; + } + String currentUserName = AcegiHelper.getLoginUserFullName(); + //由原来的删除改为更新包实例的状态及废弃的处理 + String wasteUpdateTousseInstanceSql = "update tousseinstance set foreignproxyitem_id=null, status='" + TousseInstance.STATUS_DISCARD + + "',wasteDate=" + currentDateTimeDbExpress + ",wasteReason='该包由于对应外部代理灭菌单于" + DateTools.getFormatDateStr(new Date(), DateTools.COMMON_DATE_HMS) + + "被" + currentUserName + "删除,包状态变为已废弃',operateUser='" + currentUserName + + "' where foreignproxyitem_id in(select id from foreignproxyitem where foreignproxydisinfection_id=%s)"; + wasteUpdateTousseInstanceSql = String.format(wasteUpdateTousseInstanceSql, + foreignProxyDisinfection.getId()); + objectDao.excuteSQL(wasteUpdateTousseInstanceSql); String deleteItemSql = "delete from foreignproxyitem where foreignproxydisinfection_id=%s"; deleteItemSql = String.format(deleteItemSql,