skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClient.java
@@ -1,8 +1,7 @@ package cn.gistack.nky.fegin; import cn.gistack.nky.entity.AlarmGet; import cn.gistack.nky.vo.AlarmGetVO; import org.apache.ibatis.annotations.Param; import cn.gistack.nky.vo.PageVO; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -35,6 +34,8 @@ //预警详情 String GET_ALARM_DETAIL = API_PREFIX + "getAlarmDetail"; //预警详情分页 String GET_ALARM_DETAIL_PAGE = API_PREFIX + "getAlarmDetailPage"; /** @@ -78,4 +79,7 @@ @PostMapping(GET_ALARM_DETAIL) List<AlarmGetVO> getAlarmDetail(@RequestBody AlarmGetVO alarmGet); @PostMapping(GET_ALARM_DETAIL_PAGE) PageVO<AlarmGetVO> getAlarmDetailPage(@RequestParam("current") Integer current, @RequestParam("size") Integer size,@RequestBody AlarmGetVO alarmGet); } skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/fegin/INkyClientFallback.java
@@ -2,6 +2,7 @@ import cn.gistack.nky.entity.AlarmGet; import cn.gistack.nky.vo.AlarmGetVO; import cn.gistack.nky.vo.PageVO; import org.springframework.stereotype.Component; import java.util.List; @@ -44,4 +45,11 @@ public List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet) { return null; } @Override public PageVO<AlarmGetVO> getAlarmDetailPage(Integer current, Integer size, AlarmGetVO alarmGet) { return null; } } skjcmanager/skjcmanager-service-api/skjcmanager-nky-api/src/main/java/cn/gistack/nky/vo/PageVO.java
New file @@ -0,0 +1,29 @@ package cn.gistack.nky.vo; import lombok.Data; import java.util.List; @Data public class PageVO<T> { /** * 数据 */ private List<T> data; /** * 总数 */ private Long total; /** * 页数 */ private Long size; /** * 当前页 */ private Long current; } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/ArimaPredictController.java
@@ -1,10 +1,18 @@ package cn.gistack.nky.controller; import cn.gistack.nky.entity.ArimaPredict; import cn.gistack.nky.entity.HstPredict; import cn.gistack.nky.service.IArimaPredictService; import cn.gistack.nky.service.IHstPredictService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Slf4j @RestController @@ -12,4 +20,27 @@ @RequestMapping("/arimaPredict/arimaPredict") public class ArimaPredictController extends BladeController { private final IArimaPredictService arimaPredictService; private final IHstPredictService hstPredictService; /** * 获取预测数据 * @param resCd 水库id * @param type 1:渗压,2:渗流,3:位移 * @param predictFlag 预测方式 * @return */ @GetMapping("/futureData") public R futureData(String resCd,String type,String predictFlag){ if (predictFlag.equals("Arima")){ List<ArimaPredict> list = arimaPredictService.getFutureData(resCd,type); return R.data(list); }else if (predictFlag.equals("Hst")){ List<HstPredict> list = hstPredictService.getFutureData(resCd,type); return R.data(list); }else { return R.fail("无该预测方式"); } } } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/controller/HstPredictController.java
@@ -1,10 +1,17 @@ package cn.gistack.nky.controller; import cn.gistack.nky.entity.ArimaPredict; import cn.gistack.nky.service.IArimaPredictService; import cn.gistack.nky.service.IHstPredictService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; @Slf4j @RestController @@ -12,4 +19,6 @@ @RequestMapping("/hstPredict/hstPredict") public class HstPredictController extends BladeController { } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/feign/NkyClientImpl.java
@@ -7,8 +7,12 @@ import cn.gistack.nky.service.IHstPredictService; import cn.gistack.nky.service.INkyService; import cn.gistack.nky.vo.AlarmGetVO; import cn.gistack.nky.vo.PageVO; import com.baomidou.mybatisplus.core.metadata.IPage; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; import org.springblade.core.tenant.annotation.NonDS; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -71,4 +75,22 @@ public List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet) { return alarmGetService.getAlarmDetail(alarmGet); } @Override @PostMapping(GET_ALARM_DETAIL_PAGE) public PageVO<AlarmGetVO> getAlarmDetailPage(Integer current, Integer size, AlarmGetVO alarmGet) { Query query = new Query(); query.setCurrent(current); query.setSize(size); IPage<AlarmGetVO> alarmDetailPage = alarmGetService.getAlarmDetailPage(Condition.getPage(query), alarmGet); PageVO<AlarmGetVO> pageVO = new PageVO(); pageVO.setData(alarmDetailPage.getRecords()); pageVO.setTotal(alarmDetailPage.getTotal()); pageVO.setCurrent(alarmDetailPage.getCurrent()); pageVO.setSize(alarmDetailPage.getSize()); return pageVO; } } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.java
@@ -3,10 +3,13 @@ import cn.gistack.nky.entity.AlarmGet; import cn.gistack.nky.vo.AlarmGetVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.apache.ibatis.annotations.Param; import java.util.List; public interface AlarmGetMapper extends BaseMapper<AlarmGet> { List<AlarmGetVO> getAlarmDetail(@Param("vo") AlarmGetVO alarmGet); List<AlarmGetVO> getAlarmDetailPage(IPage<AlarmGetVO> page, @Param("vo") AlarmGetVO alarmGet); } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/AlarmGetMapper.xml
@@ -42,4 +42,24 @@ </if> AND dam_id = #{vo.damId} </select> <select id="getAlarmDetailPage" resultType="cn.gistack.nky.vo.AlarmGetVO"> SELECT * FROM NKY_ALARM_GET WHERE 1=1 <if test="vo.startTime != null and vo.startTime != ''"> AND DATE_FORMAT(time,'%Y-%m-%d') >= #{vo.startTime} </if> <if test="vo.endTime != null and vo.endTime !='' "> AND DATE_FORMAT(time,'%Y-%m-%d') <= #{vo.endTime} </if> <if test="vo.level != null and vo.level !='' "> AND level = #{vo.level} </if> <if test="vo.status != null and vo.status !='' "> AND status = #{vo.status} </if> <if test="vo.type != null and vo.type !='' "> AND type = #{vo.type} </if> AND dam_id = #{vo.damId} </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.java
@@ -2,6 +2,10 @@ import cn.gistack.nky.entity.ArimaPredict; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; import java.util.List; public interface ArimaPredictMapper extends BaseMapper<ArimaPredict>{ List<ArimaPredict> getFutureData(@Param("resCd") String resCd,@Param("type") String type); } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/mapper/ArimaPredictMapper.xml
@@ -2,4 +2,22 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.gistack.nky.mapper.ArimaPredictMapper"> <select id="getFutureData" resultType="cn.gistack.nky.entity.ArimaPredict"> SELECT * FROM NKY_ARIMA_PREDICT WHERE DATE_FORMAT(create_time,'%Y-%m-%d')>= CURDATE() <if test="resCd != null and resCd !='' "> AND DAM_ID = #{resCd} </if> <if test="type != null and type !='' and type == 1 "> AND type = #{type} </if> <if test="type != null and type !='' and type == 2"> AND type = #{type} </if> <if test="type != null and type !='' and type == 3"> AND (type = '3' or type = '4' or type = '5') </if> </select> </mapper> skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IAlarmGetService.java
@@ -2,6 +2,7 @@ import cn.gistack.nky.entity.AlarmGet; import cn.gistack.nky.vo.AlarmGetVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; @@ -12,4 +13,6 @@ void alarmGetData(String type); List<AlarmGetVO> getAlarmDetail(AlarmGetVO alarmGet); IPage<AlarmGetVO> getAlarmDetailPage(IPage<AlarmGetVO> page, AlarmGetVO alarmGet); } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IArimaPredictService.java
@@ -3,8 +3,14 @@ import cn.gistack.nky.entity.ArimaPredict; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; public interface IArimaPredictService extends IService<ArimaPredict> { /** * 请求预测 * @param type */ void getData(String type); /** @@ -12,4 +18,11 @@ * @param type */ void predictData(String type); /** * 获取渗压预测数据 * @param resCd * @return */ List<ArimaPredict> getFutureData(String resCd,String type); } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/IHstPredictService.java
@@ -1,10 +1,15 @@ package cn.gistack.nky.service; import cn.gistack.nky.entity.ArimaPredict; import cn.gistack.nky.entity.HstPredict; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; public interface IHstPredictService extends IService<HstPredict> { void getData(String type); void predictData(String type); List<HstPredict> getFutureData(String resCd, String type); } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/AlarmGetServiceImpl.java
@@ -10,6 +10,7 @@ import cn.gistack.nky.service.INkyService; import cn.gistack.nky.service.IZtApiService; import cn.gistack.nky.vo.AlarmGetVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; @@ -55,6 +56,11 @@ return baseMapper.getAlarmDetail(alarmGet); } @Override public IPage<AlarmGetVO> getAlarmDetailPage(IPage<AlarmGetVO> page, AlarmGetVO alarmGet) { return page.setRecords(baseMapper.getAlarmDetailPage(page,alarmGet)); } /** * 获取水库集 * skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/ArimaPredictServiceImpl.java
@@ -3,15 +3,13 @@ import cn.gistack.nky.entity.ArimaPredict; import cn.gistack.nky.mapper.ArimaPredictMapper; import cn.gistack.nky.requestpojo.ArimaPredictReqPo; import cn.gistack.nky.requestpojo.HstPredictReqPo; import cn.gistack.nky.requestpojo.PredictWatersPo; import cn.gistack.nky.requestpojo.QueryReqPo; import cn.gistack.nky.resultpojo.DataResChildrenPo; import cn.gistack.nky.service.IArimaPredictService; import cn.gistack.nky.service.INkyService; import cn.gistack.nky.service.IZtApiService; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.mysql.cj.util.StringUtils; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.tool.utils.ObjectUtil; @@ -72,6 +70,15 @@ } @Override public List<ArimaPredict> getFutureData(String resCd,String type) { List<ArimaPredict> futureData = baseMapper.getFutureData(resCd, type); futureData.forEach(arimaPredict -> { arimaPredict.setPredicts(JSON.parse(arimaPredict.getPredicts().toString())); }); return futureData; } @Override public boolean save(ArimaPredict entity) { if (ObjectUtil.isEmpty(entity.getId())){ skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HstPredictServiceImpl.java
@@ -1,5 +1,6 @@ package cn.gistack.nky.service.impl; import cn.gistack.nky.entity.ArimaPredict; import cn.gistack.nky.entity.HstPredict; import cn.gistack.nky.mapper.HstPredictMapper; import cn.gistack.nky.requestpojo.HstPredictReqPo; @@ -115,6 +116,11 @@ } @Override public List<HstPredict> getFutureData(String resCd, String type) { return null; } @Override public boolean save(HstPredict entity) { if (ObjectUtil.isEmpty(entity.getCreateTime())) { @@ -152,4 +158,5 @@ } return cdList; } } skjcmanager/skjcmanager-service/skjcmanager-nky/src/main/java/cn/gistack/nky/service/impl/HsybServiceImpl.java
@@ -13,6 +13,8 @@ import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -27,31 +29,29 @@ @Override public List<List<String>> getFuture(String resCd) { HsybGetFuturePo hsybGetFuturePo = apiRequest(GET_FUTURE, resCd); HsybGetFuturePo hsybGetFuturePo = apiRequest(GET_FUTURE, resCd); if (hsybGetFuturePo != null && hsybGetFuturePo.getRespCode().equals("200")){ if (hsybGetFuturePo != null && hsybGetFuturePo.getRespCode().equals("200")) { List<List<String>> data = hsybGetFuturePo.getData(); //过滤空值数据,过滤过去时间 List<List<String>> collect = data.stream().filter(item -> item.get(0) != null).filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList()); List<List<String>> collect = filterPredictData(data); return collect; }else { } else { return null; } } public HsybGetFuturePo apiRequest(String url, String jsonparams){ public HsybGetFuturePo apiRequest(String url, String jsonparams) { // Long param = Long.parseLong(jsonparams); System.out.println("请求参数:"+ jsonparams); System.out.println("请求参数:" + jsonparams); // 声明一个header变量 HttpHeaders headers = new HttpHeaders(); // 设置为json格式 MediaType mediaType = MediaType.parseMediaType("application/json;charset=utf-8"); headers.setContentType(mediaType); //设置请求头 headers.set("Authorization",AUTHORIZATION); headers.set("Authorization", AUTHORIZATION); headers.add("Accept", MediaType.APPLICATION_JSON.toString()); HttpEntity<String> httpEntity = new HttpEntity(jsonparams, headers); @@ -60,10 +60,56 @@ HsybGetFuturePo hsybGetFuturePo = template.postForObject(url, httpEntity, HsybGetFuturePo.class); System.out.println(hsybGetFuturePo.toString()); return hsybGetFuturePo; }catch (Exception e){ } catch (Exception e) { System.out.println(e); } return null; } /** * 对预测数据进行过滤 * * @param data * @return */ public List<List<String>> filterPredictData(List<List<String>> data) { String formatter = "yyyy-MM-dd"; String today = DateUtil.format(new Date(), formatter); Long time = new Date().getTime() + 60 * 60 * 24 * 1000; Date tomorrowDate = new Date(time); String tomorrow = DateUtil.format(tomorrowDate, formatter); //过滤空值数据,过滤过去时间 List<List<String>> collect = data.stream().filter(item -> item.get(0) != null).collect(Collectors.toList()); Integer index = findIndex(collect, "/"); if (index>-1){ collect.get(index).set(0,tomorrow + collect.get(index).get(0).substring(5)); } for (int i = 0; i < collect.size(); i++) { if (i<index && index>-1){ collect.get(i).set(0,today + " " + collect.get(i).get(0)); }else if (i>index && index>-1){ collect.get(i).set(0,tomorrow + " " + collect.get(i).get(0)); }else if ( i!= index && index == -1){ collect.get(i).set(0,today + " " + collect.get(i).get(0)); } } List<List<String>> filterData = data.stream().filter(item -> item.get(0) != null).filter(item -> CommonUtil.strToDate(item.get(0)).after(DateUtil.now())).collect(Collectors.toList()); return filterData; } public Integer findIndex(List<List<String>> list,String reg){ for (int i = 0; i < list.size(); i++) { if (list.get(i).get(0).indexOf(reg)>-1){ return i; } } return -1; } } skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/damSecurity/controller/DamSecurityController.java
@@ -1,17 +1,14 @@ package cn.gistack.sm.damSecurity.controller; import cn.gistack.nky.entity.AlarmGet; import cn.gistack.nky.fegin.INkyClient; import cn.gistack.nky.vo.AlarmGetVO; import cn.gistack.nky.vo.PageVO; import cn.gistack.sm.damSecurity.service.IDamSecurityService; import cn.gistack.sm.damSecurity.vo.DamSecurityStatistics; import cn.gistack.sm.damSecurity.vo.DamStationStatistics; import cn.gistack.sm.exam.entity.ExamPlan; import cn.gistack.sm.patrol.vo.PatrolTaskVO; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; @@ -95,6 +92,19 @@ return R.data(list); } /** * 大坝安全监测预警详情(分页) * @param alarmGet * @return */ @ApiOperation(value = "大坝安全统计-大坝安全监测预警详情", notes = "大坝安全统计-大坝安全监测预警详情") @GetMapping(value = "/alarmDetailPage") public R alarmDetail(AlarmGetVO alarmGet,Query query){ PageVO<AlarmGetVO> page = nkyClient.getAlarmDetailPage(query.getCurrent(), query.getSize(), alarmGet); return R.data(page); } /** * 大坝安全监测预警异常统计 * @param damStationStatistics