Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r31001 -r31161 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 31001) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 31161) @@ -1667,12 +1667,17 @@ + "and " + dateQueryAdapter.dateAreaSql("po.startTime", beginStartTimeStr, endStartTimeStr, false); } }else if(StringUtils.equals(devInterface.getDeviceBrand(), DeviceInterface.BELIMED)){ - // 倍力曼清洗机根据清洗记录的开始结束时间匹配清洗数据(时间格式为"yyyy/M/dd HH:mm:ss") - String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy/M/dd HH:mm:ss"); - String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy/M/dd HH:mm:ss"); - queryString = "select count(*) c from "+ WashData.class.getSimpleName() + " po " - + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' " - + "and po.time > '" + beginStartTimeStr + "' and po.time < '" + endStartTimeStr + "'"; + queryString = "select count(*) c from "+ WashData.class.getSimpleName() + " po " + + "where po.deviceInterfaceID = " + devInterface.getId() + " and po.machineNo = '" + machineNo + "' "; + if(StringUtils.equals(devInterface.getParaMatchingMethod(), DeviceInterface.PARAMATCHINGMETHOD_STARTDATE)){ + // 倍力曼清洗机根据清洗记录的开始结束时间匹配清洗数据(时间格式为"yyyy/M/dd HH:mm:ss") + String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy/M/dd HH:mm:ss"); + String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy/M/dd HH:mm:ss"); + queryString += "and po.time > '" + beginStartTimeStr + "' and po.time < '" + endStartTimeStr + "'"; + }else{ + queryString += "and po.cycleCounter = " + wr.getCycleCounter(); + } + } else if(StringUtils.equals(devInterface.getDeviceBrand(), DeviceInterface.YOUYUAN)){ if(StringUtils.equals(devInterface.getDeviceModel(), DeviceInterface.YOUYUAN_YZQ_230)){ String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy-MM-dd HH:mm:ss"); @@ -3550,11 +3555,12 @@ */ private JSONObject getWashDataAndLineEchartDateOfBelimed(WashAndDisinfectRecord wdr, Long deviceInterfaceId, String machineNo) { Long cycleCounter = wdr.getCycleCounter(); + DeviceInterface deviceInterface = (DeviceInterface) objectDao.getById(DeviceInterface.class.getSimpleName(), deviceInterfaceId); //获取新华清洗机的详细参数 - List washDataList = getWashDatasByTime(deviceInterfaceId, wdr,machineNo); + List washDataList = getWashDatas(deviceInterface, wdr,machineNo, cycleCounter); JSONObject resultData = new JSONObject(); if(CollectionUtils.isNotEmpty(washDataList)){ - WashDataOfBelimed washDataOfBelimed = getWashDatasOfBelimedByTime(deviceInterfaceId, wdr, machineNo); + WashDataOfBelimed washDataOfBelimed = getWashDatasOfBelimed(deviceInterface, wdr, machineNo, cycleCounter); if(washDataOfBelimed != null){ //程序名称(取值追溯系统) resultData.put("methodName",wdr.getDisinfectProgram()); @@ -3611,13 +3617,45 @@ } /** + * 获取清洗机K文件数据(根据设备接口设置信息中的【参数匹配方式】的属性判断按开始时间/按循环次数匹配) + * @param deviceInterfaceId + * @param wdr + * @param machineNo + * @param cycleCounter + * @return + */ + private WashDataOfBelimed getWashDatasOfBelimed(DeviceInterface deviceInterface, WashAndDisinfectRecord wdr, String machineNo, Long cycleCounter) { + if(StringUtils.equals(DeviceInterface.PARAMATCHINGMETHOD_CYCLECOUNTER, deviceInterface.getParaMatchingMethod())){ + return getWashDatasOfBelimedByCycleCounter(deviceInterface.getId(), cycleCounter, machineNo); + }else{ + return getWashDatasOfBelimedByTime(deviceInterface.getId(), wdr, machineNo); + } + } + + /** + * 获取清洗机数据(根据设备接口设置信息中的【参数匹配方式】的属性判断按开始时间/按循环次数匹配) + * @param deviceInterfaceId + * @param wdr + * @param machineNo + * @param cycleCounter + * @return + */ + private List getWashDatas(DeviceInterface deviceInterface, WashAndDisinfectRecord wdr, String machineNo, Long cycleCounter) { + if(StringUtils.equals(DeviceInterface.PARAMATCHINGMETHOD_CYCLECOUNTER, deviceInterface.getParaMatchingMethod())){ + return getWashDatasByCycleCounter(deviceInterface.getId(), cycleCounter, machineNo); + }else{ + return getWashDatasByTime(deviceInterface.getId(), wdr,machineNo); + } + } + + /** * 获取倍力曼K文件里面的清洗参数 * @param deviceInterfaceId * @param cycleCounter * @param machineNo * @return */ - private WashDataOfBelimed getWashDatasOfBelimed(Long deviceInterfaceId, Long cycleCounter, String machineNo) { + private WashDataOfBelimed getWashDatasOfBelimedByCycleCounter(Long deviceInterfaceId, Long cycleCounter, String machineNo) { String whereSql = String.format( " where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.cycleCounter = %s ", deviceInterfaceId,machineNo,cycleCounter); @@ -3687,7 +3725,7 @@ washDataList = objectDao.findBySql(WashData.class.getSimpleName(), whereSql); }else{ - washDataList = getWashDatas(deviceInterfaceId,cycleCounter,machineNo); + washDataList = getWashDatasByCycleCounter(deviceInterfaceId,cycleCounter,machineNo); } JSONObject resultData = new JSONObject(); @@ -3745,7 +3783,7 @@ /** * 获取新华清洗机(负压清洗机\单舱清洗机(super6000))清洗参数(ZJJSRM-6) */ - private List getWashDatas(Long deviceInterfaceId, Long cycleCounter, + private List getWashDatasByCycleCounter(Long deviceInterfaceId, Long cycleCounter, String machineNo) { String whereSql = String.format( " where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.cycleCounter = %s order by po.time ", Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java =================================================================== diff -u -r31158 -r31161 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 31158) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 31161) @@ -207,7 +207,7 @@ } String startTimeStr = (String) jsArray.get(3); int recordAmount = (int) jsArray.get(4); - refreshWashRecordAmounts(devInterface.getId().toString(), machineNumber, startTimeStr, recordAmount); + refreshWashRecordAmounts(devInterface, machineNumber, startTimeStr, recordAmount, cycleCounter); } }else{ // 灭菌炉数据处理 JSONArray jsArray = sterilizerDataReadAndSave(smbForm,devInterface, remoteType, ftp, ftpFile, enableDetailedDeviceInformation, loginUserData); @@ -824,25 +824,31 @@ /** * 更新清洗机的温度压力数据 */ - public void refreshWashRecordAmounts(String devInterfaceId, - String machineNo, String startTimeStr, int recordAmount) { + public void refreshWashRecordAmounts(DeviceInterface devInterface, + String machineNo, String startTimeStr, int recordAmount, String cycleCounter) { // 根据接口和机器号找到清洗机 Session session = objectDao.getHibernateSession(); String queryString = "select r from Rinser r" + " where r.deviceInterface.id = :deviceInterfaceId" + " and r.machineNumber = :machineNo"; Query query = session.createQuery(queryString); - query.setParameter("deviceInterfaceId", Long.valueOf(devInterfaceId)); + query.setParameter("deviceInterfaceId", devInterface.getId()); query.setParameter("machineNo", machineNo); List rinsers = query.list(); + Date startTime = DateTools.coverStrToDate(startTimeStr, "yyyy/MM/dd HH:mm:ss"); + Date beginStartTime = new Date(startTime.getTime() - 10*60*1000); + Date endStartTime = new Date(startTime.getTime() + 10*60*1000); + String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(beginStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + String endStartTimeStr = ForgonDateUtils.safelyFormatDate(endStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + for (Rinser rs : rinsers) { - Date startTime = DateTools.coverStrToDate(startTimeStr, "yyyy/MM/dd HH:mm:ss"); - Date beginStartTime = new Date(startTime.getTime() - 10*60*1000); - Date endStartTime = new Date(startTime.getTime() + 10*60*1000); - String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(beginStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); - String endStartTimeStr = ForgonDateUtils.safelyFormatDate(endStartTime,ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); - String hql = String.format(" where po.rinserId = %s and %s ", rs.getId().toString(), dateQueryAdapter.dateAreaSql("po.startDate", beginStartTimeStr, endStartTimeStr, false)); + String hql = String.format(" where po.rinserId = %s ", rs.getId().toString()); + if(StringUtils.equals(DeviceInterface.PARAMATCHINGMETHOD_STARTDATE, devInterface.getParaMatchingMethod())){ + hql += dateQueryAdapter.dateAreaSql("po.startDate", beginStartTimeStr, endStartTimeStr, false); + }else { + hql += String.format(" and po.cycleCounter = %s ", cycleCounter); + } WashAndDisinfectRecord wd = (WashAndDisinfectRecord) objectDao.getBySql(WashAndDisinfectRecord.class.getSimpleName(), hql); if(wd != null) {