燕山石化溯源三维电子沙盘-【后端】-服务
1
13693261870
2023-04-26 3dc21e8893d17e2a25f50efeb7eec100c8e882ee
1
已修改2个文件
62 ■■■■■ 文件已修改
src/main/java/com/yssh/controller/WarningAnalyseController.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/yssh/controller/WarningAnalyseController.java
@@ -12,6 +12,12 @@
import com.yssh.service.IWarningAnalyseService;
import com.yssh.utils.Result;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@Api(tags="告警分析")
@RequestMapping("/warning")
@RestController
@@ -20,6 +26,12 @@
    
    @Autowired
    private IWarningAnalyseService warningService;
    private static ConcurrentHashMap<String, Object> cache = new ConcurrentHashMap<>(5);
    private SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
    public static final long CACHE_HOLD_TIME_24H = 24 * 60 * 60 * 1000L;
    //报警分析
    /**
@@ -62,8 +74,24 @@
    @ApiOperationSupport(order = 4)
    @ApiOperation(value = "三小时监测站点数据变化趋势", notes = "返回值为三小时监测站点监测数据,返回值为map集合,其中key为站点名称,value为list集合,保存每天监测数值数据")
    @GetMapping("/locationDataChange")
    public Result locationDataChange(){
        return Result.OK(warningService.selectEachLocationDataChange());
    public Result locationDataChange() {
        //return Result.OK(warningService.selectEachLocationDataChange());
        String key = dateFormat.format(new Date());
        Map<String, List<Double>> map = null;
        if (cache.containsKey(key)) {
            map = (Map<String, List<Double>>) cache.get(key);
        } else {
            map = warningService.selectEachLocationDataChange();
            if (null != map && map.size() > 0) {
                if (cache.size() > 0) {
                    cache.clear();
                }
                cache.put(key, map);
            }
        }
        return Result.ok(map);
    }
    
    @ApiOperationSupport(order = 4)
src/main/java/com/yssh/service/impl/WarningAnalyseServiceImpl.java
@@ -229,7 +229,7 @@
    @Override
    public Map<String, List<Double>> selectEachLocationDataChange() {
        Map<String, List<Double>> result = new LinkedHashMap<>();
        /*Map<String, List<Double>> result = new LinkedHashMap<>();
        List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
        Date nowDate = DateUtils.getNowDate();
        Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate));
@@ -249,6 +249,34 @@
                result.put(c.getName(), values);
            }
        });
        return result;*/
        Map<String, List<Double>> result = new LinkedHashMap<>();
        List<MonitorPointPosition> checkPoints = commonService.getCheckPoints3d();
        Date nowDate = DateUtils.getNowDate();
        Long endTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, nowDate));
        Long startTime = Long.parseLong(DateUtils.parseDateToStr(DateUtils.YYYYMMDDHH, DateUtils.getAPeriodOfTime(nowDate, -3, Calendar.HOUR_OF_DAY)));
        List<DictRecord> recordList = dictRecordMapper.selectByTimeDictRecordList(startTime, endTime);
        List<String> tableNames = new ArrayList<>();
        for(DictRecord dr : recordList){
            if (suYuanMapper.isTableExists(dr.getTableName())>0){
                tableNames.add(dr.getTableName());
            }
        }
        if (tableNames.isEmpty()){
            return result;
        }
        for(MonitorPointPosition c : checkPoints){
            List<Double> values = new ArrayList<>();
            List<SuYuanMonitorData> data = suYuanMapper.getMonitorData(tableNames, c.getId());
            data.forEach(v -> {
                values.add(v.getValue());
            });
            result.put(c.getName(), values);
        }
        return result;
    }