Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r31584 -r31638 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 31584) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 31638) @@ -1616,15 +1616,17 @@ @Override public int getWashAndDisinfectRecordsCount(String devInterfaceId, String machineNo, WashAndDisinfectRecord wr) { - if(StringUtils.isBlank(devInterfaceId) || StringUtils.isBlank(machineNo)){ + if(StringUtils.isBlank(devInterfaceId)){ return 0; } DeviceInterface devInterface = (DeviceInterface) objectDao.getById(DeviceInterface.class.getSimpleName(), devInterfaceId); - if(devInterface == null || !DatabaseUtil.isPoIdValid(devInterface.getId()) || StringUtils.isBlank(machineNo)){ + if(devInterface == null || !DatabaseUtil.isPoIdValid(devInterface.getId())){ return 0; } + + String machineNoSql = machineNo == null ? " and wdcl.machineNo is null " : " and wdcl.machineNo = '" + machineNo + "' "; // 清洗记录的清洗开始时间,与设备数据文件中的清洗开始时间,2个时间的间隔不超过10分钟 Date startTime = wr.getStartDate(); Date beginStartTime = new Date(startTime.getTime() - 10*60*1000); @@ -1633,17 +1635,17 @@ // 根据循环次数匹配 String queryString = "select count(*) c from "+ WashData.class.getSimpleName() +" wdcl" + " where wdcl.deviceInterfaceID = " + devInterface.getId() - + " and wdcl.machineNo = '" + machineNo - + "' and wdcl.cycleCounter = " + wr.getCycleCounter(); + + machineNoSql + + "and wdcl.cycleCounter = " + wr.getCycleCounter(); //新华长龙清洗机 if(StringUtils.equals(devInterface.getDeviceBrand(), DeviceInterface.XINHUA)){ if(StringUtils.equals(DeviceInterface.XINHUA_CHANGLONG_DC_4, devInterface.getDeviceModel()) || StringUtils.equals(DeviceInterface.XINHUA_CHANGLONG_DC_5, devInterface.getDeviceModel())){ queryString = "select count(*) c from "+ WashDataOfChangLong.class.getSimpleName() +" wdcl" + " where wdcl.deviceInterfaceID = " + devInterface.getId() - + " and wdcl.machineNo = '" + machineNo - + "' and wdcl.cycleCounter = " + wr.getCycleCounter(); + + machineNoSql + + "and wdcl.cycleCounter = " + wr.getCycleCounter(); }else if(StringUtils.equals(DeviceInterface.XINHUA_Repaid_A_520, devInterface.getDeviceModel())){ // 型号为Repaid-a-520的清洗机,根据清洗记录的开始结束时间匹配清洗数据(NYSY-30)(时间格式为"yyyy-MM-dd HH:mm:ss") beginStartTime = new Date(startTime.getTime() - 15*60*1000); @@ -1652,7 +1654,7 @@ String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy-MM-dd HH:mm:ss"); queryString = "select count(*) c from "+ WashData.class.getSimpleName() +" po " - + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' " + + "where po.deviceInterfaceID = " + devInterface.getId() + machineNoSql + "and po.time > '" + beginStartTimeStr + "' and po.time < '" + endStartTimeStr + "'"; } }else if(StringUtils.equals(devInterface.getDeviceBrand(), DeviceInterface.GETINGE)){ @@ -1663,12 +1665,12 @@ String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy-MM-dd HH:mm:ss"); queryString = "select count(*) c from "+ WashDataOfGeting.class.getSimpleName() +" po " - + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' " + + "where po.deviceInterfaceID = " + devInterface.getId() + machineNoSql + "and " + dateQueryAdapter.dateAreaSql("po.startTime", beginStartTimeStr, endStartTimeStr, false); } }else if(StringUtils.equals(devInterface.getDeviceBrand(), DeviceInterface.BELIMED)){ queryString = "select count(*) c from "+ WashData.class.getSimpleName() + " po " - + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' "; + + "where po.deviceInterfaceID = " + devInterface.getId() + machineNoSql; if(StringUtils.equals(devInterface.getParaMatchingMethod(), DeviceInterface.PARAMATCHINGMETHOD_STARTDATE)){ // 倍力曼清洗机根据清洗记录的开始结束时间匹配清洗数据(时间格式为"yyyy/M/dd HH:mm:ss") String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy/MM/dd HH:mm:ss"); @@ -1688,7 +1690,7 @@ String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy-MM-dd HH:mm:ss"); queryString = "select count(*) c from "+ WashDataOfYouYuan.class.getSimpleName() +" po " - + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' " + + "where po.deviceInterfaceID = " + devInterface.getId() + machineNoSql + "and " + dateQueryAdapter.dateAreaSql("po.addDatetime", beginStartTimeStr, endStartTimeStr, false); } } else if(StringUtils.equals(devInterface.getDeviceBrand(), DeviceInterface.STERIS)){ @@ -1697,9 +1699,14 @@ String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy-MM-dd HH:mm:ss"); queryString = "select count(*) c from "+ WashDataOfSteris.class.getSimpleName() +" po " - + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' " + + "where po.deviceInterfaceID = " + devInterface.getId() + machineNoSql + "and " + dateQueryAdapter.dateAreaSql("po.startTime", beginStartTimeStr, endStartTimeStr, false); } + } else if(StringUtils.equals(devInterface.getDeviceBrand(), DeviceInterface.MARGE)){ + queryString = "select count(*) c from "+ WashDataOfMarge.class.getSimpleName() +" wdcl" + + " where wdcl.deviceInterfaceID = " + devInterface.getId() + + machineNoSql + + "and wdcl.cycleCounter = " + wr.getCycleCounter(); } return objectDao.countBySql(queryString); }