| | |
| | | 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.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; |
| | | |
| | | |
| | | /** |
| | |
| | | */ |
| | | @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) { |
| | | 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 timess = timei; |
| | | |
| | | //三个小时前的时间 |
| | | String dateEnd3 =dateEnds3; |
| | | String dateEnd3 = dateEnds3; |
| | | |
| | | //六个小时前的时间 |
| | | String dateEnd6 =dateEnds6; |
| | | String dateEnd6 = dateEnds6; |
| | | |
| | | //二十四个小时前的时间 |
| | | String dateEnd24 =dateEnds24; |
| | | String dateEnd24 = dateEnds24; |
| | | |
| | | //对应雨量站 |
| | | long startTime=System.currentTimeMillis(); |
| | | List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfos(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess); |
| | | long endTime=System.currentTimeMillis(); //获取结束时间 |
| | | 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){ |
| | | 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); |
| | | 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); |
| | | } |
| | | System.out.println("程序运行时间: "+(endTime-startTime)+"ms"); |
| | | return R.data(lists); |
| | | |
| | | } |
| | | else { |
| | | } else { |
| | | //当前时间 |
| | | String times = time; |
| | | |
| | | String dateEnd1 = dateEnds1; |
| | | |
| | | String timess=timei; |
| | | String timess = timei; |
| | | |
| | | //三个小时前的时间 |
| | | String dateEnd3 =dateEnds3; |
| | | String dateEnd3 = dateEnds3; |
| | | |
| | | //六个小时前的时间 |
| | | String dateEnd6 =dateEnds6; |
| | | String dateEnd6 = dateEnds6; |
| | | |
| | | //二十四个小时前的时间 |
| | | String dateEnd24 =dateEnds24; |
| | | String dateEnd24 = dateEnds24; |
| | | |
| | | //对应雨量站 |
| | | List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfo(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess); |
| | | 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()); |
| | | /*if(Max==0){ |
| | | continue; |
| | | }*/ |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("Max", Max); |
| | | lists.add(map); |
| | | 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 dateEnds3,String dateEnds6,String dateEnds24,int k,String timei) { |
| | | if (type == 0 && k==13) { |
| | | public R selectcInfoss(int type, String time, String dateEnds1, String dateEnds2, String dateEnds3) { |
| | | //第二种方式预警 |
| | | if (type == 0) { |
| | | //当前时间 |
| | | String times = time; |
| | | |
| | | String dateEnd1 = dateEnds1; |
| | | |
| | | String timess=timei; |
| | | //2个小时前的时间 |
| | | String dateEnd2 = dateEnds2; |
| | | |
| | | //三个小时前的时间 |
| | | String dateEnd3 =dateEnds3; |
| | | |
| | | //六个小时前的时间 |
| | | String dateEnd6 =dateEnds6; |
| | | |
| | | //二十四个小时前的时间 |
| | | String dateEnd24 =dateEnds24; |
| | | //3个小时前的时间 |
| | | String dateEnd3 = dateEnds3; |
| | | |
| | | //对应雨量站 |
| | | long startTime=System.currentTimeMillis(); |
| | | String s = mountainrainService.selectCode(); |
| | | String[] split = s.split(","); |
| | | String strArrays = ""; |
| | |
| | | strArrays += "'" + split[i] + "',"; |
| | | } |
| | | String code = strArrays.substring(0, strArrays.length() - 1); |
| | | List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.Mountains(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess,code); |
| | | long endTime=System.currentTimeMillis(); //获取结束时间 |
| | | 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){ |
| | | 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); |
| | | 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); |
| | | //0.8雨量湿度 |
| | | if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohours()) { |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("flage1", "true"); |
| | | map.put("flage3", "false"); |
| | | map.put("status", 2); |
| | | lists.add(map); |
| | | } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthours()) { |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("flage1", "false"); |
| | | map.put("flage3", "true"); |
| | | map.put("status", 2); |
| | | lists.add(map); |
| | | } else { |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("flage1", "false"); |
| | | map.put("flage3", "false"); |
| | | map.put("status", 2); |
| | | lists.add(map); |
| | | } |
| | | } else { |
| | | //0.5雨量湿度 |
| | | 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); |
| | | if (mountainrainsCVOS.get(i).getDrp1() > mountainrainsCVOS.get(i).getGohour()) { |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("flage1", "true"); |
| | | map.put("flage3", "false"); |
| | | map.put("status", 1); |
| | | lists.add(map); |
| | | } else if (mountainrainsCVOS.get(i).getDrp3() > mountainrainsCVOS.get(i).getGthour()) { |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("flage1", "false"); |
| | | map.put("flage3", "true"); |
| | | map.put("status", 1); |
| | | lists.add(map); |
| | | } else { |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("flage1", "false"); |
| | | map.put("flage3", "false"); |
| | | map.put("status", 1); |
| | | lists.add(map); |
| | | } |
| | | } |
| | | |
| | | } |
| | | System.out.println("程序运行时间: "+(endTime-startTime)+"ms"); |
| | | return R.data(lists); |
| | | |
| | | } |
| | | //第一种方式预警(雨量表数据) |
| | | else { |
| | | //当前时间 |
| | | String times = time; |
| | | |
| | | //一个小时前的时间 |
| | | String dateEnd1 = dateEnds1; |
| | | |
| | | String timess=timei; |
| | | //两个小时前的时间 |
| | | String dateEnd2 = dateEnds2; |
| | | |
| | | //三个小时前的时间 |
| | | String dateEnd3 =dateEnds3; |
| | | String dateEnd3 = dateEnds3; |
| | | |
| | | //六个小时前的时间 |
| | | String dateEnd6 =dateEnds6; |
| | | |
| | | //二十四个小时前的时间 |
| | | String dateEnd24 =dateEnds24; |
| | | |
| | | //对应雨量站 |
| | | List<MountainrainsCVO> mountainrainsCVOS = mountainrainService.selectcInfo(times, dateEnd24, dateEnd1, dateEnd3, dateEnd6,timess); |
| | | String s = regionWeightService.selectCode(); |
| | | //String s = "62334490"; |
| | | 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, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code); |
| | | 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()); |
| | | /*if(Max==0){ |
| | | continue; |
| | | }*/ |
| | | map.put("List", mountainrainsCVOS.get(i)); |
| | | map.put("Max", Max); |
| | | lists.add(map); |
| | | for (int i = 0; i < list.size(); i++) { |
| | | BigDecimal w1 = (BigDecimal) list.get(i).get("drp1"); |
| | | double drp1 = w1.doubleValue(); |
| | | BigDecimal w2 = (BigDecimal) list.get(i).get("drp2"); |
| | | double drp2 = w2.doubleValue(); |
| | | BigDecimal w3 = (BigDecimal) list.get(i).get("drp3"); |
| | | double drp3 = w3.doubleValue(); |
| | | if (drp1 > 30) { |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | map.put("List", list.get(i)); |
| | | map.put("flage1", "true"); |
| | | map.put("flage2", "false"); |
| | | map.put("flage3", "false"); |
| | | lists.add(map); |
| | | } |
| | | if (drp2 > 50) { |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | map.put("List", list.get(i)); |
| | | map.put("flage1", "false"); |
| | | map.put("flage2", "true"); |
| | | map.put("flage3", "false"); |
| | | lists.add(map); |
| | | } |
| | | if (drp3 > 80) { |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | map.put("List", list.get(i)); |
| | | map.put("flage1", "false"); |
| | | map.put("flage2", "false"); |
| | | map.put("flage3", "true"); |
| | | lists.add(map); |
| | | } else { |
| | | Map<String, Object> map = new HashMap<String, Object>(); |
| | | map.put("List", list.get(i)); |
| | | map.put("flage1", "false"); |
| | | map.put("flage2", "false"); |
| | | map.put("flage3", "false"); |
| | | 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[] 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() - 2; j++) { |
| | | List<Map<String, Object>> map = mountainrainService.selectMtwo(passDaysList.get(j).toString(), passDaysList.get(j + 1).toString(), code); |
| | | if (map.size() == 0 || i > map.size() - 1) { |
| | | break; |
| | | } |
| | | BigDecimal w = (BigDecimal) map.get(i).get("drp"); |
| | | double drp = w.doubleValue(); |
| | | stcd = map.get(i).get("STCD").toString(); |
| | | //计算湿度 |
| | | if (j == 0) { |
| | | v1 = formatDouble1((num + drp) * 0.85); |
| | | if (v1 > 60) { |
| | | v1 = 60; |
| | | } |
| | | } else { |
| | | v1 += drp; |
| | | v1 = formatDouble1(v1 * 0.85); |
| | | if (v1 > 60) { |
| | | v1 = 60; |
| | | } |
| | | } |
| | | } |
| | | 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; |
| | | } |
| | | |
| | | } |
| | | |