/* * 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> page(@ApiIgnore @RequestParam Map blog, Query query) { IPage 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 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 detail(String id) { return R.data(mountainrainService.selectInfo(id)); } /** * 分页 */ @GetMapping("/list") @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入mountainrain") public R> list(Mountainrain mountainrain, Query query) { IPage 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> page(MountainrainVO mountainrain, Query query) { IPage 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> parentList(@ApiIgnore @RequestParam Map blog, Query query) { return R.data(mountainrainService.parentList(blog, query)); } /** * 子列表 */ @ApiLog("详情") @GetMapping("/child-list") @ApiOperation(value = "列表", notes = "传入dict") public R> childList(@ApiIgnore @RequestParam Map 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> page(@ApiIgnore MountainrainSSVO mountainrainSSVO, Query query) { IPage pages = mountainrainService.selectNoticePage(Condition.getPage(query), mountainrainSSVO); return R.data(pages); } /** * 分页 */ @ApiLog("详情") @GetMapping("/listss") @ApiOperationSupport(order = 4) @ApiOperation(value = "分页", notes = "传入tmpR") public R> listss(String query) { List list = mountainrainService.selectNoticeList(query); return R.data(list); } /** * 山洪分析接口:按行政区分 */ @GetMapping("/queryXZ") public List queryXZ() { List list = mountainrainService.queryXZ(); return list; } /** * 山洪分析接口:按行政区分 */ @GetMapping("/queryZL") public List> queryZL() { List list = mountainrainService.queryZL(); List> data = new ArrayList<>(); for (int i = 0; i < list.size(); i++) { Map 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 mountainrainsCVOS = mountainrainService.selectcInfos(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess); List> lists = new ArrayList<>(); for (int i = 0; i < mountainrainsCVOS.size(); i++) { if (mountainrainsCVOS.get(i).getCenconding()==null){ continue; } Map map = new HashMap(); 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 mountainrainsCVOS = mountainrainService.selectcInfo(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess); List> lists = new ArrayList<>(); for (int i = 0; i < mountainrainsCVOS.size(); i++) { Map map = new HashMap(); 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,int k) { //第二种方式预警 if (type == 0 && k==13) { //当前时间 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 mountainrainsCVOS = mountainrainService.Mountains(times, dateEnd1, dateEnd2, dateEnd3,code); List> lists = new ArrayList<>(); for (int i = 0; i < mountainrainsCVOS.size(); i++) { if (mountainrainsCVOS.get(i).getCenconding()==null){ continue; } Map map = new HashMap(); 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> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code); List list1= new ArrayList(); List list2= new ArrayList(); List list3= new ArrayList(); for (int i=0;i=30){ list1.add(list.get(i)); } if (list.get(i).get("drp2")>=50) { list2.add(list.get(i)); } if (list.get(i).get("drp3")>=80) { list3.add(list.get(i)); } } Map map = new HashMap(); map.put("list1",list1); map.put("list2",list2); map.put("list2",list3); return R.data(map); } } /** * 土壤湿度计算 * @return */ @Scheduled(cron = "0 0 8 * * ?") @GetMapping("/soleval") public R soleval() { SimpleDateFormat sdf = new SimpleDateFormat( "yyyy-MM-dd 08:00:00" ); Date today = new Date(); String endDate = sdf .format( today ); //当前日期 //获取三十天前日期 Calendar theCa = Calendar. getInstance (); theCa .setTime( today ); theCa .add( theCa . DATE , -30); //最后一个数字30可改,30天的意思 Date start = theCa .getTime(); String startDate = sdf .format( start ); //三十天之前日期 String s = mountainrainService.selectCode(); String[] split = s.split(","); String strArrays = ""; Integer num=60; for (int i = 0; i < split.length; i++) { strArrays += "'" + split[i] + "',"; } String code = strArrays.substring(0, strArrays.length() - 1); mountainrainService.soildel(); List> list = mountainrainService.selectMtwo(startDate, endDate, code); for (int i=0;i60){ mountainrainService.soleInster(stcd,"60"); } else { String a= String.valueOf(v); mountainrainService.soleInster(stcd,a); } } return R.success("成功"); } }