Index: ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java =================================================================== diff -u -r29112 -r29120 --- ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 29112) +++ ssts-recyclingapplication/src/main/java/com/forgon/disinfectsystem/recyclingapplication/service/RecyclingApplicationManagerImpl.java (.../RecyclingApplicationManagerImpl.java) (revision 29120) @@ -128,6 +128,7 @@ import com.forgon.tools.SqlBuilder; import com.forgon.tools.date.DateTools; import com.forgon.tools.db.DatabaseUtil; +import com.forgon.tools.db.InitDbConnection; import com.forgon.tools.hibernate.BasePoManagerImpl; import com.forgon.tools.json.JSONUtil; import com.forgon.tools.string.StringTools; @@ -191,6 +192,12 @@ private SupplierManager supplierManager; private ProjectManager projectManager; + + private InitDbConnection dbConnection; + + public void setDbConnection(InitDbConnection dbConnection) { + this.dbConnection = dbConnection; + } public void setUrgentLevelManager(UrgentLevelManager urgentLevelManager) { this.urgentLevelManager = urgentLevelManager; @@ -7914,8 +7921,17 @@ List disposableGoodsList = null; if(StringUtils.isNotBlank(inventorySerialNumbers)){ String[] inventorySerialNumberArr = inventorySerialNumbers.split(";"); - String sql = String.format(" from %s po where (1=1) %s order by po.sequence ", DisposableGoods.class.getSimpleName(), SqlUtils.get_InSql("po.inventorySerialNumber", inventorySerialNumberArr)); - disposableGoodsList = objectDao.findByHql(sql); + if(dbConnection.isSqlServer()){ + String sql = String.format(" from %s po where (1=1) %s order by charindex(','+convert(varchar,po.inventorySerialNumber)+',','%s,') ", + DisposableGoods.class.getSimpleName(), SqlUtils.get_InSql("po.inventorySerialNumber", inventorySerialNumberArr), + inventorySerialNumbers.replaceAll(";", ",")); + disposableGoodsList = objectDao.findByHql(sql); + }else if(dbConnection.isOracle()){ + String sql = String.format(" from %s po where (1=1) %s order by instr('%s', po.inventorySerialNumber) ", + DisposableGoods.class.getSimpleName(), SqlUtils.get_InSql("po.inventorySerialNumber", inventorySerialNumberArr), + inventorySerialNumbers.replaceAll(";", "")); + disposableGoodsList = objectDao.findByHql(sql); + } }else{ return jsonArray; }