/*
|
* Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
|
*
|
* Redistribution and use in source and binary forms, with or without
|
* modification, are permitted provided that the following conditions are met:
|
*
|
* Redistributions of source code must retain the above copyright notice,
|
* this list of conditions and the following disclaimer.
|
* Redistributions in binary form must reproduce the above copyright
|
* notice, this list of conditions and the following disclaimer in the
|
* documentation and/or other materials provided with the distribution.
|
* Neither the name of the dreamlu.net developer nor the names of its
|
* contributors may be used to endorse or promote products derived from
|
* this software without specific prior written permission.
|
* Author: Chill 庄骞 (smallchill@163.com)
|
*/
|
package org.springblade.modules.mountainrain.controller;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import liquibase.pro.packaged.M;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.boot.ctrl.BladeController;
|
import org.springblade.core.log.annotation.ApiLog;
|
import org.springblade.core.mp.support.Condition;
|
import org.springblade.core.mp.support.Query;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.utils.Func;
|
import org.springblade.modules.mountain.entity.Mountain;
|
import org.springblade.modules.mountain.service.IMountainService;
|
import org.springblade.modules.mountain.vo.MountainVO;
|
import org.springblade.modules.mountainrain.entity.Mountainrain;
|
import org.springblade.modules.mountainrain.service.IMountainrainService;
|
import org.springblade.modules.mountainrain.vo.*;
|
import org.springblade.modules.mountainrain.wrapper.MountainrainWrapper;
|
import org.springblade.modules.regionWeight.service.IRegionWeightService;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
import springfox.documentation.annotations.ApiIgnore;
|
|
import javax.validation.Valid;
|
import java.math.BigDecimal;
|
import java.text.SimpleDateFormat;
|
import java.time.LocalDateTime;
|
import java.time.temporal.ChronoUnit;
|
import java.util.*;
|
|
/**
|
* 控制器
|
*
|
* @author BladeX
|
* @since 2020-02-27
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/mountainrain")
|
@Component
|
@Api(value = "", tags = "接口")
|
public class MountainrainController extends BladeController {
|
|
private IMountainrainService mountainrainService;
|
private IMountainService mountainService;
|
private final IRegionWeightService regionWeightService;
|
|
|
/**
|
* 分页
|
*/
|
@GetMapping("/pages")
|
public R<IPage<Mountainrain>> page(@ApiIgnore @RequestParam Map<String, Object> blog, Query query) {
|
IPage<Mountainrain> pages = mountainrainService.page(Condition.getPage(query), Condition.getQueryWrapper(blog, Mountainrain.class));
|
return R.data(pages);
|
}
|
|
/**
|
* 详情
|
*/
|
@ApiLog("详情")
|
@GetMapping("/detail")
|
@ApiOperationSupport(order = 1)
|
@ApiOperation(value = "详情", notes = "传入mountainrain")
|
public R<MountainrainVO> detail(Mountainrain mountainrain) {
|
Mountainrain detail = mountainrainService.getOne(Condition.getQueryWrapper(mountainrain));
|
return R.data(MountainrainWrapper.build().entityVO(detail));
|
}
|
|
|
/**
|
* 详情
|
*/
|
@ApiLog("详情")
|
@GetMapping("/details")
|
@ApiOperationSupport(order = 1)
|
public R<MountainrainSSVO> detail(String id) {
|
return R.data(mountainrainService.selectInfo(id));
|
}
|
|
|
/**
|
* 分页
|
*/
|
@GetMapping("/list")
|
@ApiOperationSupport(order = 2)
|
@ApiOperation(value = "分页", notes = "传入mountainrain")
|
public R<IPage<MountainrainVO>> list(Mountainrain mountainrain, Query query) {
|
IPage<Mountainrain> pages = mountainrainService.page(Condition.getPage(query), Condition.getQueryWrapper(mountainrain));
|
return R.data(MountainrainWrapper.build().pageVO(pages));
|
}
|
|
|
/**
|
* 自定义分页
|
*/
|
@GetMapping("/page")
|
@ApiOperationSupport(order = 3)
|
@ApiOperation(value = "分页", notes = "传入mountainrain")
|
public R<IPage<MountainrainVO>> page(MountainrainVO mountainrain, Query query) {
|
IPage<MountainrainVO> pages = mountainrainService.selectMountainrainPage(Condition.getPage(query), mountainrain);
|
return R.data(pages);
|
}
|
|
/**
|
* 新增
|
*/
|
@PostMapping("/save")
|
@ApiOperationSupport(order = 4)
|
@ApiOperation(value = "新增", notes = "传入mountainrain")
|
public R save(@Valid @RequestBody Mountainrain mountainrain) {
|
return R.status(mountainrainService.save(mountainrain));
|
}
|
|
/**
|
* 修改
|
*/
|
@PostMapping("/update")
|
@ApiOperationSupport(order = 5)
|
@ApiOperation(value = "修改", notes = "传入mountainrain")
|
public R update(@Valid @RequestBody Mountainrain mountainrain) {
|
return R.status(mountainrainService.updateById(mountainrain));
|
}
|
|
/**
|
* 新增或修改
|
*/
|
@PostMapping("/submit")
|
@ApiOperationSupport(order = 6)
|
@ApiOperation(value = "新增或修改", notes = "传入mountainrain")
|
public R submit(@Valid @RequestBody Mountainrain mountainrain) {
|
return R.status(mountainrainService.saveOrUpdate(mountainrain));
|
}
|
|
|
/**
|
* 新增或修改
|
*/
|
@PostMapping("/submits")
|
public R submits(@Valid @RequestBody MountainrainSSVO mountainrain) {
|
String crainfall = mountainrain.getCrainfall();
|
String cenconding = mountainrain.getCenconding();
|
String arainfall = mountainrain.getArainfall();
|
String aconding = mountainrain.getAconding();
|
Integer gohour = mountainrain.getGohour();
|
Integer gthour = mountainrain.getGthour();
|
Integer gshour = mountainrain.getGshour();
|
Integer imohour = mountainrain.getImohour();
|
Integer imthour = mountainrain.getImthour();
|
Integer imshour = mountainrain.getImshour();
|
Long id = mountainrain.getId();
|
//Long mid = mountainrain.getMid();
|
Mountainrain mountainrain1 = new Mountainrain();
|
mountainrain1.setCrainfall(crainfall);
|
mountainrain1.setCenconding(cenconding);
|
mountainrain1.setGohour(gohour);
|
mountainrain1.setGthour(gthour);
|
mountainrain1.setGshour(gshour);
|
mountainrain1.setImohour(imohour);
|
mountainrain1.setImthour(imthour);
|
mountainrain1.setImshour(imshour);
|
mountainrain1.setId(id);
|
//山洪详情表数据修改
|
String township = mountainrain.getTownship();
|
String village = mountainrain.getVillage();
|
String villagegroup = mountainrain.getVillage_group();
|
String bw = mountainrain.getBw();
|
String dj = mountainrain.getDj();
|
String fyear = mountainrain.getFyear();
|
String tyear = mountainrain.getTyear();
|
String oyear = mountainrain.getOyear();
|
String county = mountainrain.getCounty();
|
Mountain mountain = new Mountain();
|
mountain.setCenconding(cenconding);
|
mountain.setAconding(aconding);
|
mountain.setTownship(township);
|
mountain.setVillage(village);
|
mountain.setVillage_group(villagegroup);
|
mountain.setBw(bw);
|
mountain.setDj(dj);
|
mountain.setFyear(fyear);
|
mountain.setTyear(tyear);
|
mountain.setOyear(oyear);
|
mountain.setCounty(county);
|
//mountain.setId(mid);
|
mountainrainService.saveOrUpdate(mountainrain1);
|
mountainService.saveOrUpdate(mountain);
|
|
return R.success("修改成功");
|
}
|
|
/**
|
* 新增或修改
|
*/
|
@ApiLog("新增或修改")
|
@PostMapping("/submitde")
|
public R submitde(@Valid @RequestBody MountainrainSSVO mountainrain) {
|
String crainfall = mountainrain.getCrainfall();
|
String cenconding = mountainrain.getCenconding();
|
String arainfall = mountainrain.getArainfall();
|
String aconding = mountainrain.getAconding();
|
Integer gohour = mountainrain.getGohour();
|
Integer gthour = mountainrain.getGthour();
|
Integer gshour = mountainrain.getGshour();
|
Integer imohour = mountainrain.getImohour();
|
Integer imthour = mountainrain.getImthour();
|
Integer imshour = mountainrain.getImshour();
|
Mountainrain mountainrain1 = new Mountainrain();
|
mountainrain1.setCrainfall(crainfall);
|
mountainrain1.setCenconding(cenconding);
|
mountainrain1.setGohour(gohour);
|
mountainrain1.setGthour(gthour);
|
mountainrain1.setGshour(gshour);
|
mountainrain1.setImohour(imohour);
|
mountainrain1.setImthour(imthour);
|
mountainrain1.setImshour(imshour);
|
//山洪详情表数据修改
|
String township = mountainrain.getTownship();
|
String village = mountainrain.getVillage();
|
String villagegroup = mountainrain.getVillage_group();
|
String bw = mountainrain.getBw();
|
String dj = mountainrain.getDj();
|
String fyear = mountainrain.getFyear();
|
String tyear = mountainrain.getTyear();
|
String oyear = mountainrain.getOyear();
|
String county = mountainrain.getCounty();
|
Mountain mountain = new Mountain();
|
mountain.setCenconding(cenconding);
|
mountain.setAconding(aconding);
|
mountain.setTownship(township);
|
mountain.setVillage(village);
|
mountain.setVillage_group(villagegroup);
|
mountain.setBw(bw);
|
mountain.setDj(dj);
|
mountain.setFyear(fyear);
|
mountain.setTyear(tyear);
|
mountain.setOyear(oyear);
|
mountain.setCounty(county);
|
mountainrainService.saveOrUpdate(mountainrain1);
|
mountainService.saveOrUpdate(mountain);
|
|
return R.success("新增成功");
|
}
|
|
|
/**
|
* 删除
|
@PostMapping("/remove")
|
@ApiOperationSupport(order = 7)
|
@ApiOperation(value = "逻辑删除", notes = "传入ids")
|
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
|
return R.status(mountainrainService.deleteLogic(Func.toLongList(ids)));
|
}*/
|
|
|
/**
|
* 删除
|
*/
|
@PostMapping("/remove")
|
public R remove(@RequestParam String ids, String mid) {
|
//mountainrainService.removeByIds(Func.toIntList(ids));
|
mountainService.removeByIds(Func.toIntList(mid));
|
return R.success("删除成功");
|
}
|
|
|
/**
|
* 顶级列表
|
*/
|
@ApiLog("详情")
|
@GetMapping("/parent-lists")
|
@ApiOperation(value = "列表", notes = "传入dict")
|
public R<IPage<MountainrainVO>> parentList(@ApiIgnore @RequestParam Map<String, Object> blog, Query query) {
|
return R.data(mountainrainService.parentList(blog, query));
|
}
|
|
|
/**
|
* 子列表
|
*/
|
@ApiLog("详情")
|
@GetMapping("/child-list")
|
@ApiOperation(value = "列表", notes = "传入dict")
|
public R<IPage<MountainVO>> childList(@ApiIgnore @RequestParam Map<String, Object> dict, @RequestParam(required = false, defaultValue = "-1") String parentId, Query query) {
|
return R.data(mountainService.childList(dict, parentId, query));
|
}
|
|
@ApiLog("详情")
|
@RequestMapping(value = "/cs", method = RequestMethod.POST)
|
@ResponseBody
|
public R saveImg(@RequestParam("file") MultipartFile file) {
|
mountainrainService.upLoadFile(file);
|
return R.success("成功");
|
}
|
|
|
/**
|
* 多表联合查询自定义分页
|
*/
|
@ApiLog("详情")
|
@GetMapping("/pagess")
|
@ApiOperationSupport(order = 3)
|
@ApiOperation(value = "分页", notes = "传入notice")
|
public R<IPage<MountainrainSSVO>> page(@ApiIgnore MountainrainSSVO mountainrainSSVO, Query query) {
|
IPage<MountainrainSSVO> pages = mountainrainService.selectNoticePage(Condition.getPage(query), mountainrainSSVO);
|
return R.data(pages);
|
}
|
|
/**
|
* 分页
|
*/
|
@ApiLog("详情")
|
@GetMapping("/listss")
|
@ApiOperationSupport(order = 4)
|
@ApiOperation(value = "分页", notes = "传入tmpR")
|
public R<List<MountainrainSSVO>> listss(String query) {
|
List<MountainrainSSVO> list = mountainrainService.selectNoticeList(query);
|
return R.data(list);
|
}
|
|
/**
|
* 山洪分析接口:按行政区分
|
*/
|
@GetMapping("/queryXZ")
|
public List<MountainrainSSVO> queryXZ() {
|
List<MountainrainSSVO> list = mountainrainService.queryXZ();
|
return list;
|
}
|
|
|
/**
|
* 山洪分析接口:按行政区分
|
*/
|
@GetMapping("/queryZL")
|
public List<Map<String, Object>> queryZL() {
|
List<MountainrainsDPVO> list = mountainrainService.queryZL();
|
|
List<Map<String, Object>> data = new ArrayList<>();
|
|
for (int i = 0; i < list.size(); i++) {
|
Map<String, Object> map = new HashMap<>();
|
if (list.get(i).getSttp() != null) {
|
if (list.get(i).getSttp().equals("PP")) {
|
map.put("name", "雨量站");
|
map.put("value", list.get(i).getCount());
|
} else if (list.get(i).getSttp().equals("ZQ")) {
|
map.put("name", "水文站");
|
map.put("value", list.get(i).getCount());
|
} else if (list.get(i).getSttp().equals("ZZ")) {
|
map.put("name", "水位站");
|
map.put("value", list.get(i).getCount());
|
} else if (list.get(i).getSttp().equals("RR")) {
|
map.put("name", "水库站");
|
map.put("value", list.get(i).getCount());
|
}
|
}
|
data.add(map);
|
}
|
return data;
|
}
|
|
/**
|
* 查询洪水预警
|
*/
|
@ApiLog("查询洪水预警")
|
@GetMapping("/ss")
|
public R selectcInfos(int type, String time, String dateEnds1, String dateEnds3, String dateEnds6, String dateEnds24, int k, String timei) {
|
if (type == 0 && k == 13) {
|
//当前时间
|
String times = time;
|
|
String dateEnd1 = dateEnds1;
|
|
String timess = timei;
|
|
//三个小时前的时间
|
String dateEnd3 = dateEnds3;
|
|
//六个小时前的时间
|
String dateEnd6 = dateEnds6;
|
|
//二十四个小时前的时间
|
String dateEnd24 = dateEnds24;
|
|
//对应雨量站
|
long startTime = System.currentTimeMillis();
|
List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfos(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6, timess);
|
List<Map<String, Object>> lists = new ArrayList<>();
|
for (int i = 0; i < mountainrainsCVOS.size(); i++) {
|
if (mountainrainsCVOS.get(i).getCenconding() == null) {
|
continue;
|
}
|
Map<String, Object> map = new HashMap<String, Object>();
|
int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
|
mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
|
map.put("List", mountainrainsCVOS.get(i));
|
map.put("Max", Max);
|
lists.add(map);
|
}
|
return R.data(lists);
|
|
} else {
|
//当前时间
|
String times = time;
|
|
String dateEnd1 = dateEnds1;
|
|
String timess = timei;
|
|
//三个小时前的时间
|
String dateEnd3 = dateEnds3;
|
|
//六个小时前的时间
|
String dateEnd6 = dateEnds6;
|
|
//二十四个小时前的时间
|
String dateEnd24 = dateEnds24;
|
|
//对应雨量站
|
List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfo(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6, timess);
|
List<Map<String, Object>> lists = new ArrayList<>();
|
for (int i = 0; i < mountainrainsCVOS.size(); i++) {
|
Map<String, Object> map = new HashMap<String, Object>();
|
int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
|
mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
|
map.put("List", mountainrainsCVOS.get(i));
|
map.put("Max", Max);
|
lists.add(map);
|
|
}
|
return R.data(lists);
|
}
|
|
}
|
|
|
/**
|
* 查询洪水预警
|
*/
|
@ApiLog("查询洪水预警")
|
@GetMapping("/sss")
|
public R selectcInfoss(int type, String time, String dateEnds1, String dateEnds2, String dateEnds3) {
|
//第二种方式预警
|
if (type == 0) {
|
//当前时间
|
String times = time;
|
|
String dateEnd1 = dateEnds1;
|
|
//2个小时前的时间
|
String dateEnd2 = dateEnds2;
|
|
//3个小时前的时间
|
String dateEnd3 = dateEnds3;
|
|
//对应雨量站
|
String s = mountainrainService.selectCode();
|
String[] split = s.split(",");
|
String strArrays = "";
|
for (int i = 0; i < split.length; i++) {
|
strArrays += "'" + split[i] + "',";
|
}
|
String code = strArrays.substring(0, strArrays.length() - 1);
|
List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.Mountains(times, dateEnd1, dateEnd2, dateEnd3, code);
|
List<Map<String, Object>> lists = new ArrayList<>();
|
for (int i = 0; i < mountainrainsCVOS.size(); i++) {
|
if (mountainrainsCVOS.get(i).getCenconding() == null) {
|
continue;
|
}
|
Map<String, Object> map = new HashMap<String, Object>();
|
if (mountainrainsCVOS.get(i).getSoilval() > 30) {
|
int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
|
mountainrainsCVOS.get(i).getGohours(), mountainrainsCVOS.get(i).getGthours());
|
map.put("List", mountainrainsCVOS.get(i));
|
map.put("Max", Max);
|
lists.add(map);
|
} else {
|
int Max = mountainrainService.Max(mountainrainsCVOS.get(i).getDrp1(), mountainrainsCVOS.get(i).getDrp3(),
|
mountainrainsCVOS.get(i).getGohour(), mountainrainsCVOS.get(i).getGthour());
|
map.put("List", mountainrainsCVOS.get(i));
|
map.put("Max", Max);
|
lists.add(map);
|
}
|
|
}
|
return R.data(lists);
|
|
}
|
//第一种方式预警(雨量表数据)
|
else {
|
//当前时间
|
String times = time;
|
|
//一个小时前的时间
|
String dateEnd1 = dateEnds1;
|
|
//两个小时前的时间
|
String dateEnd2 = dateEnds2;
|
|
//三个小时前的时间
|
String dateEnd3 = dateEnds3;
|
|
String s = regionWeightService.selectCode();
|
String[] split = s.split(",");
|
String strArrays = "";
|
for (int i = 0; i < split.length; i++) {
|
strArrays += "'" + split[i] + "',";
|
}
|
String code = strArrays.substring(0, strArrays.length() - 1);
|
List<Map<String, Integer>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
|
List<Map<String, Object>> lists = new ArrayList<>();
|
Map<String, Object> map = new HashMap<String, Object>();
|
for (int i = 0; i < list.size(); i++) {
|
if (list.get(i).get("drp1") >= 30) {
|
map.put("List", list.get(i));
|
map.put("Max", 1);
|
}
|
if (list.get(i).get("drp2") >= 50) {
|
map.put("List", list.get(i));
|
map.put("Max", 2);
|
}
|
if (list.get(i).get("drp3") >= 80) {
|
map.put("List", list.get(i));
|
map.put("Max", 3);
|
}
|
|
}
|
lists.add(map);
|
return R.data(lists);
|
}
|
|
}
|
|
/**
|
* 土壤湿度计算
|
*
|
* @return
|
*/
|
//@Scheduled(cron = "0 0 8 * * ?")
|
@GetMapping("/soleval")
|
public R soleval() {
|
mountainrainService.soildel();
|
int intervals = 31;
|
ArrayList passDaysList = new ArrayList<>();
|
for (int i = 0; i < intervals; i++) {
|
passDaysList.add(getDays(i, false));
|
}
|
Collections.sort(passDaysList);
|
String s = mountainrainService.selectCode();
|
//String s = "62310356,62310305";
|
String[] split = s.split(",");
|
String strArrays = "";
|
for (int i = 0; i < split.length; i++) {
|
strArrays += "'" + split[i] + "',";
|
}
|
String code = strArrays.substring(0, strArrays.length() - 1);
|
for (int i = 0; i < split.length; i++) {
|
Integer num = 30;
|
double v1 = 0;
|
String stcd = null;
|
for (int j = 0; j < passDaysList.size() - 1; j++) {
|
List<Map<String, Object>> map = mountainrainService.selectMtwo(passDaysList.get(j).toString(), passDaysList.get(j + 1).toString(), code);
|
if (map.size()==0){
|
continue;
|
}
|
BigDecimal w = (BigDecimal) map.get(i).get("drp");
|
double drp = w.doubleValue();
|
stcd = map.get(i).get("STCD").toString();
|
//计算湿度
|
if (i == 0) {
|
v1 = formatDouble1((num + drp) * 0.85);
|
} else {
|
v1 += drp;
|
v1 = formatDouble1(v1 * 0.85);
|
}
|
}
|
if (v1 > 60) {
|
mountainrainService.soleInster(stcd, "60");
|
} else {
|
String a = String.valueOf(v1);
|
mountainrainService.soleInster(stcd, a);
|
}
|
}
|
|
return R.success("成功");
|
}
|
|
public static double formatDouble1(double d) {
|
return (double) Math.round(d * 10) / 10;
|
}
|
|
private static String getDays(int i, boolean b) {
|
Calendar calendar = Calendar.getInstance();
|
if (b) {
|
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + i);
|
} else {
|
calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - i);
|
}
|
Date today = calendar.getTime();
|
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
|
String result = format.format(today);
|
return result;
|
}
|
|
}
|