Index: ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/Johnson100NXDataManagerImpl.java =================================================================== diff -u -r37016 -r38012 --- ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/Johnson100NXDataManagerImpl.java (.../Johnson100NXDataManagerImpl.java) (revision 37016) +++ ssts-maintain/src/main/java/com/forgon/disinfectsystem/maintain/device/service/Johnson100NXDataManagerImpl.java (.../Johnson100NXDataManagerImpl.java) (revision 38012) @@ -30,15 +30,16 @@ import org.springframework.stereotype.Component; import com.forgon.Constants; +import com.forgon.databaseadapter.service.DateQueryAdapter; import com.forgon.directory.vo.LoginUserData; -import com.forgon.disinfectsystem.common.CssdUtils; import com.forgon.disinfectsystem.entity.basedatamanager.deviceinterface.DeviceInterface; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizationrecord.SterilizationRecord; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizerrecord.Johnson100NXStageDetails; import com.forgon.disinfectsystem.entity.sterilizationmanager.sterilizerrecord.Johnson100NXSterilizerRecord; import com.forgon.disinfectsystem.filemanager.CommonFileManager; import com.forgon.disinfectsystem.filemanager.FtpFileManager; import com.forgon.disinfectsystem.sterilizationmanager.sterilizationrecord.service.SterilizationRecordManager; +import com.forgon.exception.SystemException; import com.forgon.log.model.Log; import com.forgon.log.service.LogManager; import com.forgon.tools.FileSystemHelper; @@ -62,6 +63,10 @@ @Autowired private SterilizationRecordManager sterilizationRecordManager; private InitDbConnection dbConnection; + private DateQueryAdapter dateQueryAdapter; + public void setDateQueryAdapter(DateQueryAdapter dateQueryAdapter) { + this.dateQueryAdapter = dateQueryAdapter; + } public void setDbConnection(InitDbConnection dbConnection) { this.dbConnection = dbConnection; } @@ -278,10 +283,6 @@ continue; }else if(value0.contains("循环号") && !value0.contains("备份日循环号")){ cycleCounter = nextLine[1].trim(); - if(isExistData(record.getMachineNumber(), cycleCounter)){ - end = true;//移走文件 - break; - } record.setCycles(Long.parseLong(cycleCounter)); continue; }else if(value0.contains("选定的循环")){ @@ -294,6 +295,13 @@ }else{ record.setStartDate(sdf2.parse(nextLine[1].trim() + " " + nextLine[2].trim())); } + if(record.getStartDate() == null){ + throw new SystemException("循环开始时间异常"); + } + if(isExistData(record.getMachineNumber(), cycleCounter, record.getStartDate())){ + end = true;//移走文件 + break; + } continue; }else if(value0.contains("循环结束时间")){ String ymd = nextLine[1].trim(); @@ -456,13 +464,18 @@ }); } /** + * 强生100nx循环次数超过9999后可能变为1,所以加上时间能精准过滤 * 验证此机器号的循环次数是否已保存 * @param machineNumber * @param operationTimes 运转次数 * @return */ - private boolean isExistData(String machineNumber, String cycles){ - String sql = String.format("select count(*) from %s where machineNumber='%s' and cycles=%s ", + private boolean isExistData(String machineNumber, String cycles, Date startDate){ + Long time = startDate.getTime(); + String beginStartTimeStr = ForgonDateUtils.safelyFormatDate(new Date(time - 5*60*1000),ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + String endStartTimeStr = ForgonDateUtils.safelyFormatDate(new Date(time + 5*60*1000),ForgonDateUtils.SIMPLEDATEFORMAT_YYYYMMDDHHMMSS,""); + String sql = String.format("select count(*) from %s where machineNumber='%s' and cycles=%s and " + + dateQueryAdapter.dateAreaSql("startDate", beginStartTimeStr, endStartTimeStr, false), Johnson100NXSterilizerRecord.class.getSimpleName(),machineNumber,cycles); if(objectDao.countBySql(sql) > 0){ return true;