diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java index 120191d..8b599f9 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/OfflineDataUploadServiceImpl.java @@ -20,7 +20,6 @@ import com.njcn.csharmonic.offline.constant.OfflineConstant; import com.njcn.csharmonic.offline.log.Log; import com.njcn.csharmonic.offline.log.vo.NewTaglogbuffer; import com.njcn.csharmonic.offline.mincfg.AnalyseComtradeCfg; -import com.njcn.csharmonic.offline.mincfg.tagComtradeCfg; import com.njcn.csharmonic.offline.vo.Response; import com.njcn.csharmonic.pojo.dto.MakeUpDto; import com.njcn.csharmonic.pojo.param.MakeUpParam; @@ -38,10 +37,12 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import com.njcn.csharmonic.offline.log.vo.TagComtradeCfg; import java.io.*; import java.nio.file.Files; import java.time.Instant; +import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; @@ -96,8 +97,8 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { for(MultipartFile file : files){ Response response = new Response(); response.setFilename(file.getOriginalFilename()); - if(OfflineConstant.COMTRADE.equals(type) && file.getOriginalFilename().indexOf(OfflineConstant.CFG) != -1) { - tagComtradeCfg tagComtradeCfg = null; + if(OfflineConstant.COMTRADE.equals(type) && Objects.requireNonNull(file.getOriginalFilename()).contains(OfflineConstant.CFG)) { + TagComtradeCfg tagComtradeCfg = null; try { tagComtradeCfg = AnalyseComtradeCfg.analyseComtradeCfg(file); } catch (Exception e) { @@ -105,7 +106,7 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { response.setState(2); } response.setObj(tagComtradeCfg); - }else if(OfflineConstant.LOG.equals(type) && file.getOriginalFilename().indexOf(OfflineConstant.BIN) != -1){ + }else if(OfflineConstant.LOG.equals(type) && Objects.requireNonNull(file.getOriginalFilename()).contains(OfflineConstant.BIN)){ List newTaglogbuffers = null; try { newTaglogbuffers = Log.convertLog(file); @@ -221,9 +222,11 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { if (CollectionUtil.isNotEmpty(projectInfoList)) { projectInfoList.forEach(item->{ String linePath = item.getName(); - List lineDataList = getFileList(param.getLineId(),param.getNDid(),linePath); - if (CollectionUtil.isNotEmpty(lineDataList)) { - fileList.addAll(lineDataList.stream().map(FileDto.DirInfo::getName).collect(Collectors.toList())); + if (timeRange(param.getStartTime(),param.getEndTime(),linePath,"min")) { + List lineDataList = getFileList(param.getLineId(),param.getNDid(),linePath); + if (CollectionUtil.isNotEmpty(lineDataList)) { + fileList.addAll(lineDataList.stream().map(FileDto.DirInfo::getName).collect(Collectors.toList())); + } } }); } @@ -234,13 +237,21 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { String logPath = s + "/log"; List logList = getFileList(param.getLineId(),param.getNDid(),logPath); if (CollectionUtil.isNotEmpty(logList)) { - fileList.addAll(logList.stream().map(FileDto.DirInfo::getName).collect(Collectors.toList())); + logList.forEach(item->{ + if (timeRange(param.getStartTime(),param.getEndTime(),item.getName(),"log")) { + fileList.add(item.getName()); + } + }); } //录波文件 String comtradePath = s + "/comtrade"; List comtradeList = getFileList(param.getLineId(),param.getNDid(),comtradePath); if (CollectionUtil.isNotEmpty(comtradeList)) { - fileList.addAll(comtradeList.stream().map(FileDto.DirInfo::getName).collect(Collectors.toList())); + comtradeList.forEach(item->{ + if (timeRange(param.getStartTime(),param.getEndTime(),item.getName(),"comtrade")) { + fileList.add(item.getName()); + } + }); } } if (CollectionUtil.isNotEmpty(fileList)) { @@ -287,6 +298,46 @@ public class OfflineDataUploadServiceImpl implements OfflineDataUploadService { } + /** + * 时间处理 + */ + public boolean timeRange(String startTime, String endTime, String filePath, String type) { + boolean result; + String data; + data = filePath.split(StrUtil.SLASH)[filePath.split(StrUtil.SLASH).length - 1]; + switch (type) { + case "log": + data = data.split("\\.")[0]; + break; + case "comtrade": + data = data.split("_")[1]; + break; + default: + break; + } + result = judgeTimeRange(startTime,endTime,data); + return result; + } + + + /** + * 添加时间判断 + */ + public boolean judgeTimeRange(String startTime, String endTime, String data) { + boolean result = false; + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatterNoDelimiter = DateTimeFormatter.ofPattern("yyyyMMdd"); + LocalDate startDate = LocalDate.parse(startTime, formatter); + LocalDate endDate = LocalDate.parse(endTime, formatter); + LocalDate targetDate = LocalDate.parse(data, formatterNoDelimiter); + if (!targetDate.isBefore(startDate) && !targetDate.isAfter(endDate)) { + log.info("日期在指定范围内"); + result = true; + } + return result; + } + + /** * 迁移文件 */