Index: ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java =================================================================== diff -u -r29524 -r31169 --- ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java (.../SignRecordManagerImpl.java) (revision 29524) +++ ssts-tousse/src/main/java/com/forgon/disinfectsystem/signRecord/service/SignRecordManagerImpl.java (.../SignRecordManagerImpl.java) (revision 31169) @@ -76,19 +76,29 @@ } /** - * 统计昨天已签收但未生成记录的包 + * 统计昨天已签收但未生成记录的包,生成对应的sql语句 + * @param beginDate 开始时间 + * @param endDate 结束时间 + * @return */ - public static final String countSql = "select count(*) from TousseInstance where 1= 1 and " - + "signedDate between '%s' and '%s' and status ='" - + TousseInstance.STATUS_SIGNED + "' and signRecordId is null "; + private String getCountSql(String beginDate, String endDate){ + return String.format("select count(*) from %s where 1= 1 and status ='%s' and signRecordId is null and %s ", + TousseInstance.class.getSimpleName(),TousseInstance.STATUS_SIGNED, + dateQueryAdapter.dateAreaSql("signedDate", beginDate, endDate)); + } /** - * 批量将昨天已签收、但未生成记录的包, 生成记录 + * 批量将昨天已签收、但未生成记录的包, 生成记录,生成对应的sql语句 + * @param signRecordId 签收记录id + * @param beginDate 开始时间 + * @param endDate 结束时间 + * @return */ - public static final String batchUpdateSql = "update TousseInstance set signRecordId = %s where 1= 1 and signedDate between " - + "'%s' and '%s' and status ='" - + TousseInstance.STATUS_SIGNED - + "' and signRecordId is null "; + private String getBatchUpdateSql(Long signRecordId, String beginDate, String endDate){ + return String.format("update %s set signRecordId = %s where 1=1 and %s and status ='%s' and signRecordId is null ", + TousseInstance.class.getSimpleName(),signRecordId, + dateQueryAdapter.dateAreaSql("signedDate", beginDate, endDate),TousseInstance.STATUS_SIGNED); + } /** * 获取当天的签收记录 @@ -450,8 +460,7 @@ try { // 昨天签收包总数 - int signAmount = objectDao.countBySql(String.format(countSql, - beginDate, endDate)); + int signAmount = objectDao.countBySql(getCountSql(beginDate, endDate)); if (signAmount == 0) { return; } @@ -461,8 +470,7 @@ sr.setSignDate(new Date()); sr.setSignAmount(signAmount); objectDao.save(sr); - if (!objectDao.executeUpdate(String.format(batchUpdateSql, - sr.getId(), beginDate, endDate))) { + if (!objectDao.executeUpdate(getBatchUpdateSql(sr.getId(), beginDate, endDate))) { throw new RuntimeException("自动生成签收记录失败"); } } catch (Exception e) {