Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java =================================================================== diff -u -r35442 -r35553 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 35442) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/XinHuaDataManagerImpl.java (.../XinHuaDataManagerImpl.java) (revision 35553) @@ -495,6 +495,8 @@ } // 已经读取的文件个数(新华清洗机文件数据量比较大,一次定时任务可能读取不完,需要分多次读取) int readedFileAmount = 0; + //决定灭菌炉数据,采用哪种匹配模式 ,默认为循环次数,针对中六增加了开始时间 + boolean sterilizaMatchPatternForDate = CssdUtils.getSystemSetConfigByNameBool("sterilizaMatchPatternForDate", false); for (String fileName : share.list()){ if(readedFileAmount == 5){ break; @@ -581,7 +583,7 @@ } else { //灭菌炉数据处理 logger.debug(String.format("开始处理灭菌炉数据:品牌【%s】,机器号【%s】,循环次数【%s】", brand,machineNumber,cycleCounter)); - JSONObject jsObject = sterilizerDataReadAndSave(cacheFile,devInterface,null,null, enableDetailedDeviceInformation, loginUserData, isAutoCompleteSterilization); + JSONObject jsObject = sterilizerDataReadAndSave(cacheFile,devInterface,null,null, enableDetailedDeviceInformation, loginUserData, isAutoCompleteSterilization, sterilizaMatchPatternForDate); if( jsObject != null){ machineNumber = jsObject.getString("machineNumber");//机器号 cycleCounter = jsObject.getString("cycleCounter");//循环次数 @@ -690,6 +692,8 @@ throw new RuntimeException("查看文件" + directory + "异常"); } int readedFileAmount = 0; + //决定灭菌炉数据,采用哪种匹配模式 ,默认为循环次数,针对中六增加了开始时间 + boolean sterilizaMatchPatternForDate = CssdUtils.getSystemSetConfigByNameBool("sterilizaMatchPatternForDate", false); for (int i = 0; i < files.length && readedFileAmount < 5; i++) { FTPFile directoryFile = files[i]; String fileName = directoryFile.getName(); @@ -729,7 +733,7 @@ if(fileName.toUpperCase().contains("ST")){ //灭菌炉数据处理 logger.debug(String.format("开始处理灭菌炉数据:品牌【%s】,机器号【%s】,循环次数【%s】", brand,machineNumber,cycleCounter)); - JSONObject jsObject = sterilizerDataReadAndSave(null, devInterface, cacheFile, ftp, enableDetailedDeviceInformation, loginUserData, isAutoCompleteSterilization); + JSONObject jsObject = sterilizerDataReadAndSave(null, devInterface, cacheFile, ftp, enableDetailedDeviceInformation, loginUserData, isAutoCompleteSterilization,sterilizaMatchPatternForDate); changeResult = ftpFileManager.changeWorkingDirectory(ftp, directoryIso); if(!changeResult){ throw new RuntimeException("切换目录[" + directory + "]失败"); @@ -859,7 +863,8 @@ * @param ftp fTPclient对象 * @return */ - private JSONObject sterilizerDataReadAndSave(SmbFile remoteFile,DeviceInterface devInterface, FTPFile ftpFile, FTPClient ftp, boolean enableDetailedDeviceInformation, LoginUserData loginUserData, String isAutoCompleteSterilization){ + private JSONObject sterilizerDataReadAndSave(SmbFile remoteFile,DeviceInterface devInterface, FTPFile ftpFile, FTPClient ftp, boolean enableDetailedDeviceInformation, LoginUserData loginUserData, String isAutoCompleteSterilization + , boolean sterilizaMatchPatternForDate){ //文件名称 String fileName = null; if(remoteFile != null){ @@ -951,15 +956,18 @@ } if(lineNum == 0){//第一行 lineNum++; - if(DeviceInterface.PARAMATCHINGMETHOD_STARTDATE.equals(devInterface.getParaMatchingMethod())){ + if(sterilizaMatchPatternForDate || !DeviceInterface.PARAMATCHINGMETHOD_CYCLECOUNTER.equals(devInterface.getParaMatchingMethod())){ Long time = procStartTime.getTime(); // 灭菌炉自动完成灭菌 beginStartTimeStr = ForgonDateUtils.safelyFormatDate(new Date(time - 10*60*1000),ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); endStartTimeStr = ForgonDateUtils.safelyFormatDate(new Date(time + 10*60*1000),ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); - sterilizationRecordId = sterilizationRecordManager.findMatchingSterilizationRecordId(beginStartTimeStr, endStartTimeStr, devInterface.getId(), cycleCounter, machineNumber); - if(!DatabaseUtil.isPoIdValid(sterilizationRecordId)){ - break; - } } + sterilizationRecordId = sterilizationRecordManager.findMatchingSterilizationRecordId(beginStartTimeStr, endStartTimeStr, devInterface.getId(), cycleCounter, machineNumber); + if(enableDetailedDeviceInformation){ + appLogManager.saveLog(loginUserData, Log.MODEL_DEVICE_INTERFACE, Log.TYPE_QUERY, String.format("开始时间[%s],机器号[%s],循环次数 [%s],需要更新温度压力数据的灭菌记录id[%s]",beginStartTimeStr,machineNumber,cycleCounter,sterilizationRecordId)); + } + if(!DatabaseUtil.isPoIdValid(sterilizationRecordId)){ + break; + } } if(record == null){ record = new CommonSterilizerRecord();