Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java =================================================================== diff -u -r35652 -r35653 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 35652) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 35653) @@ -511,9 +511,9 @@ //决定灭菌炉数据,采用哪种匹配模式 ,默认为循环次数,针对中六增加了开始时间 boolean sterilizaMatchPatternForDate = CssdUtils.getSystemSetConfigByNameBool("sterilizaMatchPatternForDate", false); Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DATE, -3); + calendar.add(Calendar.HOUR_OF_DAY, -72); Date endStartTime = calendar.getTime(); - DateFormat ymdFormat = DateTools.YMDFORMAT.get(); + DateFormat ymdhFormat = DateTools.YMDHFORMAT.get(); for (String fileName : share.list()){ if(readedFileAmount == 5){ break; @@ -617,8 +617,8 @@ } }else{//如果没结束 或者没有开始时间 或者 最后修改时间超过3天 移动到errFiles中 Date lastModifiedDate = new Date(file.getLastModified()); - String startDateYMD = ymdFormat.format(lastModifiedDate); - if(StringUtils.isBlank(startDateYMD) || ymdFormat.parse(startDateYMD).before(ymdFormat.parse(ymdFormat.format(endStartTime)))){ + String startDateYMD = ymdhFormat.format(lastModifiedDate); + if(StringUtils.isBlank(startDateYMD) || ymdhFormat.parse(startDateYMD).before(ymdhFormat.parse(ymdhFormat.format(endStartTime)))){ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "如预期方式被移动"); smbFileManager.moveSmbFile(session, file, errFilesDirURL); } @@ -677,6 +677,8 @@ String cacheDirURL = "cache"; //用于保存已经读取的文件 String readedDirURL = "readedFile"; + ///保存问题文件 + String errorDirURL = "errFiles"; if(enableDetailedDeviceInformation){ appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_CONNECT, "ip:"+ip + ",user:"+userName + ",目录:"+directory); } @@ -693,10 +695,11 @@ String backUpAbsolutePath = directoryIso + "/" + backUpDirURL; String cacheAbsolutePath = directoryIso + "/" + cacheDirURL; String readedAbsolutePath = directoryIso + "/" + readedDirURL; + String errorPath = directoryIso + "/" + errorDirURL; ftpFileManager.makeDirectory(ftp, backUpDirURL); ftpFileManager.makeDirectory(ftp, cacheDirURL); ftpFileManager.makeDirectory(ftp, readedDirURL); - + ftpFileManager.makeDirectory(ftp, errorPath); FTPFile[] files = null; FTPFileFilter filterTxt = new FTPFileFilter() { @Override @@ -719,7 +722,10 @@ int readedFileAmount = 0; //决定灭菌炉数据,采用哪种匹配模式 ,默认为循环次数,针对中六增加了开始时间 boolean sterilizaMatchPatternForDate = CssdUtils.getSystemSetConfigByNameBool("sterilizaMatchPatternForDate", false); - DateFormat ymdFormat = DateTools.YMDFORMAT.get(); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.HOUR_OF_DAY, -72); + Date endStartTime = calendar.getTime(); + DateFormat ymdhFormat = DateTools.YMDHFORMAT.get(); for (int i = 0; i < files.length && readedFileAmount < 5; i++) { FTPFile directoryFile = files[i]; String fileName = directoryFile.getName(); @@ -764,19 +770,24 @@ if(!changeResult){ throw new RuntimeException("切换目录[" + directory + "]失败"); } - if( jsObject != null){ - boolean isEnd = jsObject.getBoolean("isEnd");//灭菌阶段是否为已结束 - //若灭菌炉的灭菌阶段为:已结束,则把该文件放进backUp文件夹中 - if(isEnd){ - try{ - ftpFileManager.copyFile(fileName, ftp, ftpFileManager.getCurrentPath(ftp), backUpAbsolutePath, false); - ftpFileManager.moveFile(fileName, ftp, ftpFileManager.getCurrentPath(ftp), readedAbsolutePath); - }catch(Exception e){ - e.printStackTrace(); - logger.debug(e.getMessage()); - } + boolean isEnd = jsObject.optBoolean("isEnd", false);//灭菌阶段是否为已结束 + //若灭菌炉的灭菌阶段为:已结束,则把该文件放进backUp文件夹中 + if(isEnd){ + try{ + ftpFileManager.copyFile(fileName, ftp, ftpFileManager.getCurrentPath(ftp), backUpAbsolutePath, false); + ftpFileManager.moveFile(fileName, ftp, ftpFileManager.getCurrentPath(ftp), readedAbsolutePath); + }catch(Exception e){ + e.printStackTrace(); + logger.debug(e.getMessage()); + } + }else{ + Date lastModifiedDate = cacheFile.getTimestamp().getTime(); + String startDateYMDH = ymdhFormat.format(lastModifiedDate); + if(StringUtils.isBlank(startDateYMDH) || ymdhFormat.parse(startDateYMDH).before(ymdhFormat.parse(ymdhFormat.format(endStartTime)))){ + appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, "如预期方式被移动"); + ftpFileManager.moveFile(fileName, ftp, ftpFileManager.getCurrentPath(ftp), errorPath); } - } + } } else if(fileName.toUpperCase().contains("WS")){ //清洗机数据处理 logger.debug(String.format("开始处理清洗机数据:品牌【%s】,机器号【%s】,循环次数【%s】", brand,machineNumber,cycleCounter));