Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java =================================================================== diff -u -r15241 -r15433 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java (.../SupplyRoomConfigManagerImpl.java) (revision 15241) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/basedatamanager/supplyroomconfig/service/SupplyRoomConfigManagerImpl.java (.../SupplyRoomConfigManagerImpl.java) (revision 15433) @@ -23,6 +23,7 @@ import com.forgon.disinfectsystem.systemsetting.service.SystemSettingManager; import com.forgon.tools.MathTools; import com.forgon.tools.cache.ForgonThreadLocalResourceManager; +import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.ObjectDao; import com.forgon.tools.string.StringTools; import com.forgon.tools.util.SqlUtils; @@ -40,6 +41,8 @@ private SystemSettingManager systemSettingManager; private OrgUnitManager orgUnitManager; + + private InitDbConnection dbConnection; public void setOrgUnitManager(OrgUnitManager orgUnitManager) { this.orgUnitManager = orgUnitManager; @@ -53,6 +56,10 @@ this.objectDao = objectDao; } + public void setDbConnection(InitDbConnection dbConnection) { + this.dbConnection = dbConnection; + } + @Override public SupplyRoomConfig getSupplyRoomConfig(String id) { return (SupplyRoomConfig) objectDao.getByProperty( @@ -612,6 +619,18 @@ + "and orgUnitCoding not in (select orgUnitCoding from SupplyRoomConfig where supplyRoomType in ('" + SupplyRoomConfig.SUPPLYROOM_TYPE_1 + "','" + SupplyRoomConfig.SUPPLYROOM_TYPE_2 + "')) " + "and orgUnitCoding not in (select clinicOrgUnitCode from CssdServiceDepts where cssdOrgUnitCode='" + orgUnitCoding + "' and clinicOrgUnitCode=OrgUnit.orgUnitCoding and tousseType='" + CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS + "');" ; + if(dbConnection.isOracle()){ + sql = "insert into CssdServiceDepts(id,cssdOrgUnitCode,cssdOrgUnitName,clinicOrgUnitCode,clinicOrgUnitName,tousseType) " + + "select HIBERNATE_SEQUENCE.nextval,'" + orgUnitCoding + "','" + orgUnitName + "',orgUnitCoding,name,'" + CssdServiceDepts.TOUSSETYPE_TOUSSE + "' from OrgUnit where orgType=" + OrgUnit.ORGUNIT_TYPE_DEPARTMENT + + "and orgUnitCoding not in (select orgUnitCoding from SupplyRoomConfig where supplyRoomType in ('" + SupplyRoomConfig.SUPPLYROOM_TYPE_1 + "','" + SupplyRoomConfig.SUPPLYROOM_TYPE_2 + "')) " + + "and orgUnitCoding not in (select clinicOrgUnitCode from CssdServiceDepts where cssdOrgUnitCode='" + orgUnitCoding + "' and clinicOrgUnitCode=OrgUnit.orgUnitCoding and tousseType='" + CssdServiceDepts.TOUSSETYPE_TOUSSE + "');" + + + "insert into CssdServiceDepts(id,cssdOrgUnitCode,cssdOrgUnitName,clinicOrgUnitCode,clinicOrgUnitName,tousseType) " + + "select HIBERNATE_SEQUENCE.nextval,'" + orgUnitCoding + "','" + orgUnitName + "',orgUnitCoding,name,'" + CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS + "' from OrgUnit where orgType=" + OrgUnit.ORGUNIT_TYPE_DEPARTMENT + + "and orgUnitCoding not in (select orgUnitCoding from SupplyRoomConfig where supplyRoomType in ('" + SupplyRoomConfig.SUPPLYROOM_TYPE_1 + "','" + SupplyRoomConfig.SUPPLYROOM_TYPE_2 + "')) " + + "and orgUnitCoding not in (select clinicOrgUnitCode from CssdServiceDepts where cssdOrgUnitCode='" + orgUnitCoding + "' and clinicOrgUnitCode=OrgUnit.orgUnitCoding and tousseType='" + CssdServiceDepts.TOUSSETYPE_DIPOSABLEGOODS + "');" + ; + } return objectDao.excuteSQL(sql); } }