Index: forgon-tools/src/main/java/com/forgon/tools/util/ForgonDateUtils.java =================================================================== diff -u -r23067 -r23346 --- forgon-tools/src/main/java/com/forgon/tools/util/ForgonDateUtils.java (.../ForgonDateUtils.java) (revision 23067) +++ forgon-tools/src/main/java/com/forgon/tools/util/ForgonDateUtils.java (.../ForgonDateUtils.java) (revision 23346) @@ -160,8 +160,7 @@ * @return */ public static boolean isDate(String strDate) { - Pattern pattern = Pattern - .compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/\\s]?((((0?[13578])|(1[02]))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/\\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/\\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$"); + Pattern pattern = Pattern.compile("(\\d{1,4}[-|\\/|年|\\.]\\d{1,2}[-|\\/|月|\\.]\\d{1,2}([日|号])?(\\s)*(\\d{1,2}([点|时])?((:)?\\d{1,2}(分)?((:)?\\d{1,2}(秒)?)?)?)?(\\s)*(PM|AM)?)", Pattern.CASE_INSENSITIVE|Pattern.MULTILINE); Matcher m = pattern.matcher(strDate); if (m.matches()) { return true; Index: ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java =================================================================== diff -u -r23302 -r23346 --- ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 23302) +++ ssts-sterile/src/main/java/com/forgon/disinfectsystem/sterilizationmanager/sterilizationrecord/service/SterilizationRecordManagerImpl.java (.../SterilizationRecordManagerImpl.java) (revision 23346) @@ -760,9 +760,16 @@ } /*String sql = String.format(" select po.id,cb.containerName From TousseInstance po,ReviewedBasket rb,Container cb where " + " po.id in (%s) and po.reviewBasket_id = rb.id and rb.container_id = cb.id ", tousseInstanceIds);*/ - String sql = String.format(" select po.id,cb.containerName From TousseInstance po,ReviewedBasket rb,Container cb where " - + " %s and po.reviewBasket_id = rb.id and rb.container_id = cb.id ", SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", tousseInstanceIdList)); - ResultSet rs1 = objectDao.executeSql(sql); + //这段sql效率低下 +// String sql = String.format(" select po.id,cb.containerName From TousseInstance po,ReviewedBasket rb,Container cb where " +// + " %s and po.reviewBasket_id = rb.id and rb.container_id = cb.id ", SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", tousseInstanceIdList)); + + //改成join连接, + String sql2 = " select po.id,cb.containerName from TousseInstance po join ReviewedBasket rb on po.reviewbasket_id = rb.id join Container cb on rb.container_id = cb.id" + +" where %s "; + String sql3 = String.format(sql2, SqlUtils.getNonStringFieldInLargeCollectionsPredicate("po.id", tousseInstanceIdList)); + ResultSet rs1 = objectDao.executeSql(sql3); + Map tidContianerNameMap = new HashMap(); try{ if(rs1!= null){