Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r29507 -r29544 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29507) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 29544) @@ -5950,5 +5950,49 @@ int result = lastBiologicalMonitoringTime.compareTo(biologicalMonitoringEndDate); return result > 0; } - + + @Override + public Map getSterilizationRecordIncludeImplantMap(List sterilizationRecordIdList) { + @SuppressWarnings("unchecked") + List sterilizationRecordList = objectDao.findByIds(SterilizationRecord.class.getSimpleName(), sterilizationRecordIdList); + Map includeImplantMap = new HashMap(); + if(CollectionUtils.isNotEmpty(sterilizationRecordList)){ + JSONArray newArray = new JSONArray(); + String sql = String.format("select sr.id, td.includeImplant from %s sr join sterilization_tousseInstance sti on sr.id = sti.sterilizationRecord_id " + + " join %s ti on ti.id = sti.tousseInstance_id " + + " join %s td on ti.tousseDefinition_id = td.id " + + " where %s ", + SterilizationRecord.class.getSimpleName(), TousseInstance.class.getSimpleName(), TousseDefinition.class.getSimpleName(), + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("sr.id", sterilizationRecordIdList)); + sql += String.format(" union all select sr.id, td.includeImplant from %s sr join sterilization_reviewed str on sr.id = str.sterilizationRecord_id " + + " join %s ti on str.reviewedBasket_id = ti.reviewBasket_id " + + " join %s td on ti.tousseDefinition_id = td.id " + + " where %s ", + SterilizationRecord.class.getSimpleName(), TousseInstance.class.getSimpleName(), TousseDefinition.class.getSimpleName(), + SqlUtils.getNonStringFieldInLargeCollectionsPredicate("sr.id", sterilizationRecordIdList)); + + ResultSet rs = null; + try { + rs = objectDao.executeSql(sql); + while(rs.next()){ + Long recordId = rs.getLong("id"); + Integer inclideImplant = rs.getInt("includeImplant"); + inclideImplant = inclideImplant == null ? TousseDefinition.UNINCLUDE_IMPLANT : inclideImplant; + if(inclideImplant.intValue() == TousseDefinition.INCLUDE_IMPLANT){ + includeImplantMap.put(recordId, Constants.STR_YES); + } + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(rs); + } + for (Long recordId : sterilizationRecordIdList) { + includeImplantMap.put(recordId, includeImplantMap.get(recordId) == null ? Constants.STR_NO : Constants.STR_YES); + } + return includeImplantMap; + } + return null; + } + } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java =================================================================== diff -u -r29469 -r29544 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 29469) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManager.java (.../SterilizationRecordManager.java) (revision 29544) @@ -491,5 +491,12 @@ * @return true:需要提示 */ public boolean sterilizerBioMonitoringIntervalReminder(Sterilizer sterilizer); - + + /** + * 查找灭菌记录的是否包含植入物 + * @param sterilizationRecordIdList 灭菌记录id集合 + * @return map key为灭菌记录id,value为是否含有植入物 + */ + public Map getSterilizationRecordIncludeImplantMap(List sterilizationRecordIdList); + } Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java =================================================================== diff -u -r29473 -r29544 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 29473) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/dwr/table/SterilizationRecordTableManager.java (.../SterilizationRecordTableManager.java) (revision 29544) @@ -16,6 +16,7 @@ import net.sf.json.JSONObject; import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections4.MapUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -228,11 +229,11 @@ "recordPictures", "sterilizerRecords", "sterilizerGrossRecord" }); JSONObject obj=JSONObject.fromObject(renderGrid); - JSONArray arry = obj.getJSONArray("rows"); + JSONArray rows = obj.getJSONArray("rows"); JSONArray tempArray=new JSONArray(); List sterilizationRecordIdList = new ArrayList(); - for (int i = 0; i < arry.size(); i++) { - JSONObject jsObj =JSONObject.fromObject(arry.get(i)); + for (int i = 0; i < rows.size(); i++) { + JSONObject jsObj =JSONObject.fromObject(rows.get(i)); sterilizationRecordIdList.add(jsObj.optLong("id")); int count = objectDao.countBySql("select count(*) from "+SterilizationRecordPic.class.getSimpleName()+" where sterilizationRecord_id = "+jsObj.opt("id")+" "); if(count==0){ @@ -242,7 +243,15 @@ jsObj.put("isExist", true); tempArray.add(jsObj); } - tempArray = setIncludeImplant(tempArray, sterilizationRecordIdList); + //tempArray = setIncludeImplant(tempArray, sterilizationRecordIdList); + Map sterilizationRecordIdToIncludeImplantMap = sterilizationRecordManager.getSterilizationRecordIncludeImplantMap(sterilizationRecordIdList); + for(int i = 0;MapUtils.isNotEmpty(sterilizationRecordIdToIncludeImplantMap) && i < tempArray.size();i++){ + JSONObject row = tempArray.optJSONObject(i); + Long id = row.optLong("id"); + if(sterilizationRecordIdToIncludeImplantMap.containsKey(id)){ + row.put("includeImplant", sterilizationRecordIdToIncludeImplantMap.get(id)); + } + } obj.put("rows", tempArray); return obj.toString(); } @@ -253,7 +262,7 @@ * @param sterilizationRecordIdList * @return */ - private JSONArray setIncludeImplant(JSONArray arry, List sterilizationRecordIdList) { + /*private JSONArray setIncludeImplant(JSONArray arry, List sterilizationRecordIdList) { @SuppressWarnings("unchecked") List sterilizationRecordList = objectDao.findByIds(SterilizationRecord.class.getSimpleName(), sterilizationRecordIdList); if(CollectionUtils.isNotEmpty(sterilizationRecordList)){ @@ -297,7 +306,7 @@ return newArray; } return arry; - } + }*/ public String getSterilizationShelfByBarcode(String barcode) { String result = null;