Index: ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java =================================================================== diff -u -r36398 -r36719 --- ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 36398) +++ ssts-packing/src/main/java/com/forgon/disinfectsystem/packing/dwr/table/TousseInstanceTableManager.java (.../TousseInstanceTableManager.java) (revision 36719) @@ -1230,6 +1230,23 @@ JSONObject json = JSONObject.fromObject(jsonStr); if(json != null){ JSONArray array = json.getJSONArray("rows"); + List foreignTousseApplications = null; + if(array != null && array.size() > 0){ + Set invoicePlanIDs = new HashSet(); + for(int i = 0; i < array.size();++i){ + JSONObject obj = array.getJSONObject(i); + Long invoicePlanID = obj.optLong("invoicePlanID"); + if(DatabaseUtil.isPoIdValid(invoicePlanID)){ + invoicePlanIDs.add(invoicePlanID); + } + } + if(invoicePlanIDs.size() > 0){ + foreignTousseApplications = objectDao.findByHql("select po from " + +ForeignTousseApplication.class.getSimpleName() + + " po where 1=1 " + + SqlUtils.getInLongListSql("po.id", invoicePlanIDs)); + } + } JSONArray jsonArray = new JSONArray(); JSONArray notTimeoutArray = new JSONArray(); if(array != null && array.size() > 0){ @@ -1239,15 +1256,15 @@ boolean isTimeout = timeoutManager.isTimeouted(obj.getString("operationTime"), timeoutSetting); obj.put("isTimeout", isTimeout); //查找病人相关字段 - Long invoicePlanID = null; - try { - invoicePlanID = obj.getLong("invoicePlanID"); - } catch (Exception e) { - invoicePlanID = 0L; - } + Long invoicePlanID = obj.optLong("invoicePlanID"); ForeignTousseApplication tousseApplication = null; - if(invoicePlanID!=0L){ - tousseApplication = (ForeignTousseApplication) objectDao.getByProperty(ForeignTousseApplication.class.getSimpleName(), "id",invoicePlanID); + if(DatabaseUtil.isPoIdValid(invoicePlanID) && CollectionUtils.isNotEmpty(foreignTousseApplications)){ + for (ForeignTousseApplication item : foreignTousseApplications) { + if(invoicePlanID.equals(item.getId())){ + tousseApplication = item; + break; + } + } } if(null != tousseApplication){ obj.put("treatmentNum", tousseApplication.getClinicNumber());