Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java =================================================================== diff -u -r34309 -r34313 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 34309) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/BelimedDataManagerImpl.java (.../BelimedDataManagerImpl.java) (revision 34313) @@ -274,7 +274,10 @@ WashDataOfBelimed washDataOfBelimed = new WashDataOfBelimed(); try { - SmbFile remoteFile = session.createSmbFileObject(rootPath + File.separator + fileName); + SmbFile remoteFile = null; + if(DeviceInterface.INTERFACETYPE_SHAREFOLDER.equals(remoteType) && session != null){ + remoteFile = session.createSmbFileObject(rootPath + File.separator + fileName); + } inputStream = commonFileManager.getInputStream(remoteType, ftp, fileName, remoteFile, out); br = commonFileManager.getBufferedReader(isr, inputStream,"GBK"); @@ -666,10 +669,6 @@ }else if(time.contains("day")){ time = time.substring(time.indexOf(" ") + 1).trim(); } - timeSplit = time.trim().split(":"); - if(timeSplit[0].length() != 2){ - time = "0" + time; - } return time.trim(); } Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java =================================================================== diff -u -r34309 -r34313 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34309) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/service/WashAndDisinfectRecordManagerImpl.java (.../WashAndDisinfectRecordManagerImpl.java) (revision 34313) @@ -5,6 +5,7 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; +import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -1815,30 +1816,37 @@ Long cycleCounter = sr.getCycleCounter(); if(StringUtils.equals(rs.getDeviceInterface().getDeviceBrand(), DeviceInterface.BELIMED)){ - // 清洗开始时间和结束时间允许前后10分钟误差 - Date startTime = sr.getStartDate(); - Date beginStartTime = new Date(startTime.getTime() - 10*60*1000); - Date endStartTime = new Date(startTime.getTime() + 10*60*1000); - String beginStartTimeStr = DateTools.getFormatDateStr(beginStartTime, "yyyy/M/dd HH:mm:ss"); - String endStartTimeStr = DateTools.getFormatDateStr(endStartTime, "yyyy/M/dd HH:mm:ss"); - - // 查找循环次数最大的清洗数据 - String whereSql = String.format( - "select max(po.cycleCounter) maxCycleCounter from WashData po where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.time > '%s' and po.time < '%s' group by po.cycleCounter ", - rs.getDeviceInterfaceId(), rs.getMachineNumber(), beginStartTimeStr, endStartTimeStr); - ResultSet cycleCounterResultSet = null; - Long maxCycleCounter = null; - try { - cycleCounterResultSet = objectDao.executeSql(whereSql); - while(cycleCounterResultSet.next()){ - maxCycleCounter = cycleCounterResultSet.getLong("maxCycleCounter"); - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - DatabaseUtil.closeResultSetAndStatement(cycleCounterResultSet); + if(StringUtils.equals(rs.getDeviceInterface().getParaMatchingMethod(), + DeviceInterface.PARAMATCHINGMETHOD_STARTDATE)){ + // 清洗开始时间和结束时间允许前后10分钟误差 + Date startTime = sr.getStartDate(); + Date beginStartTime = new Date(startTime.getTime() - 10*60*1000); + Date endStartTime = new Date(startTime.getTime() + 10*60*1000); + + DateFormat df = DateFormat.getDateTimeInstance(); + String beginStartTimeStr = df.format(beginStartTime).replace("-", "/"); + String endStartTimeStr = df.format(endStartTime).replace("-", "/"); + + // 查找循环次数最大的清洗数据 + String whereSql = String.format( + "select max(po.cycleCounter) maxCycleCounter from WashData po where po.deviceInterfaceID = %s and po.machineNo = '%s' and po.time > '%s' and po.time < '%s' group by po.cycleCounter ", + rs.getDeviceInterfaceId(), rs.getMachineNumber(), beginStartTimeStr, endStartTimeStr); + ResultSet cycleCounterResultSet = null; + Long maxCycleCounter = null; + try { + cycleCounterResultSet = objectDao.executeSql(whereSql); + while(cycleCounterResultSet.next()){ + maxCycleCounter = cycleCounterResultSet.getLong("maxCycleCounter"); + } + } catch (Exception e) { + e.printStackTrace(); + } finally { + DatabaseUtil.closeResultSetAndStatement(cycleCounterResultSet); + } + cycleCounter = maxCycleCounter; + }else{ + cycleCounter = sr.getCycleCounter(); } - cycleCounter = maxCycleCounter; }else if(StringUtils.equals(rs.getDeviceInterface().getDeviceBrand(), DeviceInterface.GETINGE) && sterilizaMatchPatternForDate){ // 清洗开始时间和结束时间允许前后10分钟误差 @@ -4853,9 +4861,9 @@ String isPassed = washDataOfBelimed.getIsPassed(); resultData.put("isPassed", isPassed); //周期时间(从K文件读取) - resultData.put("cycleTotalTime", secondToMinute(washDataOfBelimed.getCycleTotalTime())); + resultData.put("cycleTotalTime", secondToTime(washDataOfBelimed.getCycleTotalTime())); //消毒时间(从K文件读取) - resultData.put("disinfectTotalTime", secondToMinute(washDataOfBelimed.getDisinfectTotalTime())); + resultData.put("disinfectTotalTime", secondToTime(washDataOfBelimed.getDisinfectTotalTime())); //最大A0值 String A0 = getMaxA0(washDataList); resultData.put("A0", A0); @@ -4922,12 +4930,12 @@ JSONObject result = new JSONObject(); String minuteSecond = getWashDataMinuteSecond(washData.getTime()); result.put("time", minuteSecond); - String step = ""; - if(StringUtils.isNotBlank(washData.getStep())){ + String step = washData.getStep(); + if(StringUtils.isNotBlank(step)){ step = step.replaceAll("\"", ""); } - String phase = ""; - if(StringUtils.isNotBlank(washData.getPhase())){ + String phase = washData.getPhase(); + if(StringUtils.isNotBlank(phase)){ phase = phase.replaceAll("\"", ""); } String stepPhase = step + " " + phase; @@ -4960,16 +4968,18 @@ if(CollectionUtils.isEmpty(washDataList)){ return result; } - String phase = ""; - Map washDataMap = new HashMap(); + Map washDataMap = new LinkedHashMap(); for (WashData washData : washDataList) { String tPhase = washData.getPhase(); - if(StringUtils.isNotBlank(phase) && !StringUtils.equals(phase, tPhase)){ - result.add(washDataMap.get(phase)); + if(StringUtils.isNotBlank(tPhase)){ + washDataMap.put(tPhase, washData); } - washDataMap.put(tPhase, washData); - phase = tPhase; } + if(MapUtils.isNotEmpty(washDataMap)){ + for (WashData washData : washDataMap.values()) { + result.add(washData); + } + } return result; } @@ -4978,12 +4988,20 @@ * @param cycleTotalTime * @return */ - private String secondToMinute(Long cycleTotalTime) { - if(cycleTotalTime == null){ + private String secondToTime(Long second) { + if(second == null){ return ""; } - Long minute = cycleTotalTime % 60l; - Long second = cycleTotalTime - minute * 60l; - return minute + ":" + second; + long h = second / 3600; + long m = (second % 3600) / 60; + long s = second % 60; + + String result = ""; + if(h > 0){ + result = h + ":" + m + ":" + (s > 10 ? s : "0" + s); + }else{ + result = m + ":" + (s > 10 ? s : "0" + s); + } + return result; } }