Index: ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashDataLineChartAction.java =================================================================== diff -u -r26288 -r29825 --- ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashDataLineChartAction.java (.../WashDataLineChartAction.java) (revision 26288) +++ ssts-wash/src/main/java/com/forgon/disinfectsystem/washanddisinfectmanager/washanddisinfectrecord/action/WashDataLineChartAction.java (.../WashDataLineChartAction.java) (revision 29825) @@ -108,9 +108,11 @@ } } try { - StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); - StrutsParamUtils.getResponse().getWriter() - .println(A0); + if(StringUtils.isNotBlank(A0)){ + StrutsParamUtils.getResponse().setCharacterEncoding("UTF-8"); + StrutsParamUtils.getResponse().getWriter() + .println(A0); + } } catch (IOException e) { e.printStackTrace(); } Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/SterisDataManagerImpl.java =================================================================== diff -u -r29821 -r29825 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/SterisDataManagerImpl.java (.../SterisDataManagerImpl.java) (revision 29821) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/SterisDataManagerImpl.java (.../SterisDataManagerImpl.java) (revision 29825) @@ -106,15 +106,15 @@ rootPath = ftpFileManager.getCurrentPath(ftp) + directory;//根目录 ftpFileManager.changeWorkingDirectory(ftp, rootPath); appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "读取文件位置:"+ ftpFileManager.getCurrentPath(ftp)); - FTPFileFilter filterXML = new FTPFileFilter() {// 只处理.XML文件 + FTPFileFilter filterXML = new FTPFileFilter() {// 只处理*.txt、*.log文件 @Override public boolean accept(FTPFile file) { if(file.isDirectory()){ return false; - }else if(file.getName().endsWith("txt")){ + }else if(file.getName().endsWith("txt") || file.getName().endsWith("log")){ return true; } - logger.debug("只处理*.txt文件"); + logger.debug("只处理*.txt、*.log文件"); return false; } }; @@ -141,15 +141,16 @@ }else{ name = shareList[i]; smbForm = session.createSmbFileObject(rootPath + File.separator + name); - if(smbForm == null || smbForm.isDirectory() || !name.endsWith("txt")){ + if(smbForm == null || smbForm.isDirectory() || (!name.endsWith("txt") && !name.endsWith("log"))){ continue; } } String machineNumber = getMachineNo(name); // 机器号和品牌都要匹配,才处理 if(!StringUtils.equals(brand, devInterface.STERIS)) continue; - if( !machineNumber.equals(machineNo) ) + // 深圳市龙岗中心医院的清洗机log文件名称不包含机器号,不做机器号检查,在读取解析文件时再检查机器号(SZSLGZXYY-2) + if( !machineNumber.equals(machineNo) && !name.endsWith("log")) { appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("文件机器号[%s]不匹配灭菌炉机器号[%s]", machineNumber,machineNo)); continue ; @@ -158,7 +159,7 @@ if(isWashingMachine(name)) { // 清洗机数据的处理 - JSONArray jsArray = washDataReadAndSave(smbForm,devInterface, remoteType, ftp, ftpFile); + JSONArray jsArray = washDataReadAndSave(smbForm,devInterface, remoteType, ftp, ftpFile, machineNo); if( jsArray != null) { machineNumber = (String)jsArray.get(0); @@ -225,6 +226,10 @@ public boolean isWashingMachine(String fileName) { boolean ret = false; + // 深圳市龙岗中心医院的清洗机文件后缀是log,直接根据后缀判断是否清洗机文件(SZSLGZXYY-2) + if(fileName != null && fileName.endsWith("log")){ + ret = true; + } if( fileName != null && fileName.contains("Genfore") ) { ret = true; @@ -418,7 +423,7 @@ /** * 史帝瑞清洗机数据处理 */ - public JSONArray washDataReadAndSave(SmbFile remoteFile,DeviceInterface devInterface, String remoteType, FTPClient ftp, FTPFile ftpFile) + public JSONArray washDataReadAndSave(SmbFile remoteFile,DeviceInterface devInterface, String remoteType, FTPClient ftp, FTPFile ftpFile, String machineNo) { InputStream inputStream = null; ByteArrayOutputStream out = null; @@ -446,6 +451,9 @@ // 读取直到最后一行 String line = ""; while ((line = br.readLine()) != null) { + if(StringUtils.isBlank(line)){ + continue; + } boolean isValid = false; WashData record = new WashData(); if( line.contains("CYCLE NUMBER") ){ @@ -467,6 +475,16 @@ }else{ time = null; } + if(line.contains("UNIT NUMBER") && StringUtils.isNotBlank(machineNumber)){ + // 深圳市龙岗中心医院的清洗机log文件,在读取解析文件时再检查机器号(SZSLGZXYY-2) + line = line.replaceAll("\\s*", ""); + machineNumber = line.replaceAll("UNITNUMBER", "").trim(); + if(!machineNumber.equals(machineNo)){ + appLogManager.saveLog(AcegiHelper.getLoginUser(), Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("文件机器号[%s]不匹配灭菌炉机器号[%s]", machineNumber,machineNo)); + jsonArray = null; + break ; + } + } if(isValid){ objectDao.saveOrUpdate(record); } @@ -534,9 +552,9 @@ { if(StringUtils.isNotBlank(content)) { - content = content.replace("C", ""); + int pointIndex = content.indexOf("."); int index = content.indexOf("="); - return content.substring(index +1, content.length() -1).trim(); + return content.substring(index +1, pointIndex +2).trim(); } return null; }