/**
|
* Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com).
|
* <p>
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
* <p>
|
* http://www.apache.org/licenses/LICENSE-2.0
|
* <p>
|
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
*/
|
package org.springblade.modules.river.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.S;
|
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.modules.river.entity.RiverR;
|
import org.springblade.modules.river.service.IRiverRService;
|
import org.springblade.modules.river.vo.RiverRVO;
|
import org.springblade.modules.river.wrapper.RiverRWrapper;
|
import org.springframework.web.bind.annotation.*;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
import javax.validation.Valid;
|
import java.math.BigDecimal;
|
import java.text.DecimalFormat;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
|
/**
|
* 控制器
|
*
|
* @author Blade
|
* @since 2019-11-07
|
*/
|
@RestController
|
@AllArgsConstructor
|
@RequestMapping("/riverr")
|
@Api(value = "", tags = "接口")
|
public class RiverRController extends BladeController {
|
|
private IRiverRService riverRService;
|
|
/**
|
* 详情
|
*/
|
@ApiLog("详情")
|
@GetMapping("/detail")
|
@ApiOperationSupport(order = 1)
|
@ApiOperation(value = "详情", notes = "传入riverR")
|
public R<RiverRVO> detail(RiverR riverR) {
|
RiverR detail = riverRService.getOne(Condition.getQueryWrapper(riverR));
|
return R.data(RiverRWrapper.build().entityVO(detail));
|
}
|
|
/**
|
* 分页
|
*/
|
@ApiLog("分页")
|
@GetMapping("/list")
|
@ApiOperationSupport(order = 2)
|
@ApiOperation(value = "分页", notes = "传入riverR")
|
public R<IPage<RiverRVO>> list(RiverR riverR, Query query) {
|
IPage<RiverR> pages = riverRService.page(Condition.getPage(query), Condition.getQueryWrapper(riverR));
|
return R.data(RiverRWrapper.build().pageVO(pages));
|
}
|
|
/**
|
* 新增
|
*/
|
@ApiLog("新增")
|
@PostMapping("/save")
|
@ApiOperationSupport(order = 4)
|
@ApiOperation(value = "新增", notes = "传入riverR")
|
public R save(@Valid @RequestBody RiverR riverR) {
|
return R.status(riverRService.save(riverR));
|
}
|
|
/**
|
* 修改
|
*/
|
@ApiLog("修改")
|
@PostMapping("/update")
|
@ApiOperationSupport(order = 5)
|
@ApiOperation(value = "修改", notes = "传入riverR")
|
public R update(@Valid @RequestBody RiverR riverR) {
|
return R.status(riverRService.updateById(riverR));
|
}
|
|
/**
|
* 新增或修改
|
*/
|
@ApiLog("新增或修改")
|
@PostMapping("/submit")
|
@ApiOperationSupport(order = 6)
|
@ApiOperation(value = "新增或修改", notes = "传入riverR")
|
public R submit(@Valid @RequestBody RiverR riverR) {
|
return R.status(riverRService.saveOrUpdate(riverR));
|
}
|
|
// /**
|
// * 河道自定义时间查询
|
// *
|
// * @param beginTime
|
// * @param endTime
|
// * @return
|
// * @throws ParseException
|
// */
|
// @PostMapping("/selecthd")
|
// public R selecthd(String beginTime, String endTime) throws ParseException {
|
// String substring = beginTime.substring(0, 10);
|
// String substrings = endTime.substring(0, 10);
|
// String hs = beginTime.substring(11, 13);
|
// String hss = endTime.substring(11, 13);
|
// //截取月日
|
// String[] strs = substring.split("-");
|
// //月
|
// String year = strs[1].toString();
|
// //日
|
// String day = strs[2].toString();
|
// //截取月日
|
// String[] strss = substrings.split("-");
|
// //月
|
// String years = strss[1].toString();
|
// //日
|
// String days = strss[2].toString();
|
// //定义短信内容头
|
// String text = year + "月" + day + "日" + hs + "时" + "-" + years + "月" + days + "日" + hss + "时";
|
// String texta = "";
|
// //定义统计数量
|
// int number = 0;
|
// //河道超警信息
|
// List<Map<String, Object>> selecthd = riverRService.selecthd(beginTime, endTime);
|
// //Map<String, Object> sel = riverRService.sel();
|
// //selecthd.add(sel);
|
// //基本站信息
|
// List<Map<String, Object>> list1 = riverRService.selectP();
|
// //用来判断是否重复统计超警信息
|
// Map mnum = new HashMap();
|
// Map mnums = new HashMap();
|
// //定义list保存预警信息
|
// List ylist = new ArrayList();
|
// //定义list保存未预警信息
|
// List alist = new ArrayList();
|
// //查询数据为空
|
// if (selecthd.size() == 0) {
|
// text += "暂无河道超警信息。廖家湾水位暂无数据,流量暂无数据;娄家村水位暂无数据,流量暂无数据;";
|
// }
|
// //不为空遍历数据计算是否超出预警值
|
// else {
|
// int c = 0;
|
// for (int i = 0; i < selecthd.size(); i++) {
|
// //实时河道水位值
|
// BigDecimal z = (BigDecimal) selecthd.get(i).get("Z");
|
// double Z = z.doubleValue();
|
// //超警戒水位值
|
// if (mnum.containsKey(selecthd.get(i).get("STCD").toString()) == true) {
|
// } else {
|
// if (selecthd.get(i).get("WRZ") == null || selecthd.get(i).get("Q") == null) {
|
// String stnm = selecthd.get(i).get("STNM").toString();
|
// mnum.put(selecthd.get(i).get("STCD").toString(), i);
|
// if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
// DecimalFormat df = new DecimalFormat("#0.00");
|
// texta += stnm.replaceAll(" ", "") + "水位" + df.format(Z) + "米,";
|
// if (selecthd.get(i).get("Q") == null) {
|
// texta += "流量暂无数据";
|
// }
|
// }
|
// alist.add(selecthd.get(i));
|
// continue;
|
// }
|
// BigDecimal wrz = (BigDecimal) selecthd.get(i).get("WRZ");
|
// double WRZ = wrz.doubleValue();
|
// BigDecimal q = (BigDecimal) selecthd.get(i).get("Q");
|
// double Q = q.doubleValue();
|
// if (Z <= WRZ) {
|
// if (mnum.containsKey(selecthd.get(i).get("STCD").toString()) == true) {
|
// } else {
|
// String stnm = selecthd.get(i).get("STNM").toString();
|
// mnum.put(selecthd.get(i).get("STCD").toString(), i);
|
// if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
// DecimalFormat df = new DecimalFormat("#0.00");
|
// texta += stnm.replaceAll(" ", "") + "水位" + df.format(Z) + "米,";
|
// if (selecthd.get(i).get("Q") == null) {
|
// texta += "流量暂无数据";
|
// } else {
|
// DecimalFormat dfs = new DecimalFormat("#0.000");
|
// texta += "流量" + Q + "立方米每秒;";
|
// }
|
// }
|
// }
|
// alist.add(selecthd.get(i));
|
// } else {
|
// //如果map集合保存了站点则不重复统计数量
|
// if (mnum.containsKey(selecthd.get(i).get("STCD").toString()) == true) {
|
// } else {
|
// ylist.add(selecthd.get(i));
|
// mnum.put(selecthd.get(i).get("STCD").toString(), i);
|
// number++;
|
// //超出警戒水位多少
|
// Double num = Z - WRZ;
|
// double v3 = (double) Math.round(num * 100) / 100;
|
// //县,市
|
// String addvcd5 = selecthd.get(i).get("ADDVNM").toString();
|
// //站点名称
|
// String stnm = selecthd.get(i).get("STNM").toString();
|
// if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
// DecimalFormat df = new DecimalFormat("#0.00");
|
// texta += stnm.replaceAll(" ", "") + "站超出警戒水位" + df.format(v3) + "米," + "水位" + df.format(Z) + "米,";
|
// if (selecthd.get(i).get("Q") == null) {
|
// texta += "流量暂无数据;";
|
// } else {
|
// //DecimalFormat dfs = new DecimalFormat("#0.000");
|
// texta += "流量" + Q + "立方米每秒;";
|
// }
|
// }
|
// }
|
// }
|
// }
|
// }
|
// }
|
//// //河道涨幅,跌幅信息
|
// //List<Map<String, Object>> selecthds = riverRService.selecthds(beginTime, endTime);
|
// Map m1 = new HashMap();
|
// Map m2 = new HashMap();
|
// Map c = new HashMap();
|
// Map m = new HashMap();
|
// List list = new ArrayList();
|
//// for (int j = 0; j < selecthds.size(); j++) {
|
//// //站点编码
|
//// String stcd = selecthds.get(j).get("STCD").toString();
|
//// //站点名称
|
//// String stnm = selecthds.get(j).get("STNM").toString();
|
//// //省,市
|
//// String addvcd5 = selecthds.get(j).get("ADDVNM").toString();
|
//// //最大值
|
//// BigDecimal maxZ = (BigDecimal) selecthds.get(j).get("maxZ");
|
//// //最大值出现时间
|
//// String maxTM = selecthds.get(j).get("maxTM").toString();
|
//// //最小值
|
//// BigDecimal minZ = (BigDecimal) selecthds.get(j).get("minZ");
|
//// //最小值出现时间
|
//// String minTM = selecthds.get(j).get("minTM").toString();
|
//// SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
//// Date sd1 = df.parse(maxTM);
|
//// Date sd2 = df.parse(minTM);
|
//// double v = maxZ.doubleValue();
|
//// double v1 = minZ.doubleValue();
|
//// //涨幅值
|
//// double v2 = v - v1;
|
//// double v3 = (double) Math.round(v2 * 100) / 100;
|
//// m1.put(v3, stnm.replaceAll(" ", "") + "站");
|
//// c.put(stcd, v3);
|
//// }
|
// if (number == 0) {
|
// text += "暂无河道超警戒信息。" + texta;
|
// } else {
|
// text += "有" + number + "个河道站超警戒。" + texta;
|
// }
|
//// if (m1.size() != 0) {
|
//// Object maxKey = getMaxKey(m1);
|
//// String s1 = m1.get(maxKey).toString();
|
//// text += " 涨幅最大的是:" + s1 + "(涨" + maxKey + "米)。";
|
//// }
|
// m.put("text", text);
|
// m.put("number", number);
|
// m.put("Yjlist", ylist);
|
// m.put("list", alist);
|
// m.put("list1", list1);
|
// m.put("clist", c);
|
// list.add(m);
|
// return R.data(list);
|
//
|
// }
|
|
|
/**
|
* 河道最新
|
*
|
* @return
|
* @throws ParseException
|
*/
|
@PostMapping("/selecthdt")
|
public R selecthdt() throws ParseException {
|
int w = 1;
|
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
String time = df.format(new Date());
|
String yearc = time.substring(0, 4);
|
int years = Integer.parseInt(yearc);
|
String monthc = time.substring(5, 7);
|
int months = Integer.parseInt(monthc);
|
String dayc = time.substring(8, 10);
|
int days = Integer.parseInt(dayc);
|
int da = days - w;
|
String hss = time.substring(11, 13);
|
int hs = Integer.parseInt(hss);
|
//前一天的8时
|
String timec = years + "-" + months + "-" + da + " 08:00:00";
|
//前24小时
|
Calendar calendar6 = Calendar.getInstance();
|
calendar6.set(Calendar.HOUR_OF_DAY, calendar6.get(Calendar.HOUR_OF_DAY) - 24);
|
String dateBegin24 = df.format(calendar6.getTime());
|
String substring = time.substring(0, 10);
|
//截取月日
|
String[] strs = substring.split("-");
|
//月
|
String year = strs[1].toString();
|
//日
|
String day = strs[2].toString();
|
//定义短信内容头
|
String text = year + "月" + day + "日" + hs + "时";
|
String texta = "";
|
//定义统计数量
|
int number = 0;
|
//定义List保存警戒信息
|
List alist = new ArrayList();
|
//定义List保存未警戒信息
|
List blist = new ArrayList();
|
//河道超警信息
|
List<Map<String, Object>> selecthd = riverRService.selecthdt(dateBegin24, time);
|
//Map<String, Object> sel = riverRService.sel();
|
//selecthd.add(sel);
|
List<Map<String, Object>> list1 = riverRService.selectP();
|
//用来判断是否重复统计超警信息
|
Map mnum = new HashMap();
|
//查询数据为空
|
if (selecthd.size() == 0) {
|
text += "暂无河道超警信息。廖家湾水位暂无数据,流量暂无数据;娄家村水位暂无数据,流量暂无数据;";
|
}
|
//不为空遍历数据计算是否超出预警值
|
else {
|
for (int i = 0; i < selecthd.size(); i++) {
|
//实时河道水位值
|
BigDecimal z = (BigDecimal) selecthd.get(i).get("Z");
|
double Z = z.doubleValue();
|
//超警戒水位值
|
if (selecthd.get(i).get("WRZ") == null || selecthd.get(i).get("Q") == null) {
|
String stnm = selecthd.get(i).get("STNM").toString();
|
if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
String stcd = selecthd.get(i).get("STCD").toString();
|
//Map<String, Object> stringObjectMap = riverRService.selectZ(stcd, timec);
|
BigDecimal zc = (BigDecimal) selecthd.get(i).get("Zc");
|
double ZC = zc.doubleValue();
|
double vz = Z - ZC;
|
DecimalFormat dfc = new DecimalFormat("#0.00");
|
String format = dfc.format(vz);
|
double v = Double.parseDouble(format);
|
texta += stnm.replaceAll(" ", "") + "水位" + dfc.format(Z) + "米、";
|
if (v < 0) {
|
texta += "比昨日8时下跌" + Math.abs(v) + "米、";
|
} else {
|
texta += "比昨日8时上涨" + Math.abs(v) + "米、";
|
}
|
if (selecthd.get(i).get("Q") == null) {
|
texta += "流量暂无信息;";
|
}
|
}
|
blist.add(selecthd.get(i));
|
continue;
|
}
|
BigDecimal wrz = (BigDecimal) selecthd.get(i).get("WRZ");
|
double WRZ = wrz.doubleValue();
|
BigDecimal q = (BigDecimal) selecthd.get(i).get("Q");
|
double Q = q.doubleValue();
|
if (Z <= WRZ) {
|
String stnm = selecthd.get(i).get("STNM").toString();
|
if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
String stcd = selecthd.get(i).get("STCD").toString();
|
//Map<String, Object> stringObjectMap = riverRService.selectZ(stcd, timec);
|
BigDecimal zc = (BigDecimal) selecthd.get(i).get("Zc");
|
double ZC = zc.doubleValue();
|
double vz = Z - ZC;
|
DecimalFormat dfc = new DecimalFormat("#0.00");
|
String format = dfc.format(vz);
|
double v = Double.parseDouble(format);
|
texta += stnm.replaceAll(" ", "") + "水位" + dfc.format(Z) + "米、";
|
if (v < 0) {
|
texta += "比昨日8时下跌" + Math.abs(v) + "米、";
|
} else {
|
texta += "比昨日8时上涨" + Math.abs(v) + "米、";
|
}
|
if (selecthd.get(i).get("Q") == null) {
|
texta += "流量暂无数据;";
|
} else {
|
//DecimalFormat dfl = new DecimalFormat("#0.000");
|
texta += "流量" + Q + "立方米每秒;";
|
}
|
}
|
blist.add(selecthd.get(i));
|
} else {
|
//如果map集合保存了站点则不重复统计数量
|
if (mnum.containsKey(selecthd.get(i).get("STCD").toString()) == true) {
|
} else {
|
alist.add(selecthd.get(i));
|
mnum.put(selecthd.get(i).get("STCD").toString(), i);
|
number++;
|
//超出警戒水位多少
|
Double num = Z - WRZ;
|
double v3 = (double) Math.round(num * 100) / 100;
|
//县,市
|
String addvcd5 = selecthd.get(i).get("ADDVNM").toString();
|
//站点名称
|
String stnm = selecthd.get(i).get("STNM").toString();
|
if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
String stcd = selecthd.get(i).get("STCD").toString();
|
//Map<String, Object> stringObjectMap = riverRService.selectZ(stcd, timec);
|
BigDecimal zc = (BigDecimal) selecthd.get(i).get("Zc");
|
double ZC = zc.doubleValue();
|
double vz = Z - ZC;
|
DecimalFormat dfc = new DecimalFormat("#0.00");
|
String format = dfc.format(vz);
|
double v = Double.parseDouble(format);
|
texta += "。" + stnm.replaceAll(" ", "") + "站超出警戒水位" + dfc.format(v3) + "米、" + "水位" + dfc.format(Z) + "米、";
|
if (v < 0) {
|
texta += "比昨日8时下跌" + Math.abs(v) + "米、";
|
} else {
|
texta += "比昨日8时上涨" + Math.abs(v) + "米、";
|
}
|
if (selecthd.get(i).get("Q") == null) {
|
texta += "流量暂无数据、";
|
} else {
|
DecimalFormat dfl = new DecimalFormat("#0.000");
|
texta += "流量" + Q + "立方米每秒;";
|
}
|
}
|
}
|
}
|
}
|
if (number == 0) {
|
text += "暂无河道超警戒信息。" + texta;
|
} else {
|
text += "有" + number + "个河道站超警戒。" + texta;
|
}
|
}
|
Map m = new HashMap();
|
List list = new ArrayList();
|
m.put("text", text);
|
m.put("number", number);
|
m.put("Yjlist", alist);
|
m.put("list1", list1);
|
m.put("list", blist);
|
list.add(m);
|
return R.data(list);
|
}
|
|
/**
|
* 河道实时预警
|
*
|
* @return
|
*/
|
@ApiLog("河道实时预警")
|
@PostMapping("/selecthdyj")
|
public R selecthdyj(String times, int k) {
|
Date date = null;
|
// 把Date按照格式转换成字符串
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
try {
|
date = sdf.parse(times);
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}
|
String dateEnd = sdf.format(date);
|
List<Map<String, Object>> list;
|
if (k == 13) {
|
list = riverRService.selecthdyj(times, dateEnd);
|
} else {
|
list = riverRService.selecthdyj(times, dateEnd);
|
}
|
List<Map<String, Object>> lists = new ArrayList<>();
|
for (int i = 0; i < list.size(); i++) {
|
Map<String, Object> maps = new HashMap<String, Object>();
|
BigDecimal b = (BigDecimal) list.get(i).get("Z");
|
int i1 = b.intValue();
|
if (i1 == 0) {
|
list.get(i).put("yuc", "无预警");
|
} else {
|
BigDecimal bigDecimalz = (BigDecimal) list.get(i).get("Z");//实时水位
|
BigDecimal bigDecimalw = (BigDecimal) list.get(i).get("WRZ");//警戒水位
|
double wrz = bigDecimalw.doubleValue();//警戒水位
|
double z = bigDecimalz.doubleValue();//实时水位
|
Double fy = (Double) list.get(i).get("fy");
|
Double oy = (Double) list.get(i).get("oy");
|
Double toy = (Double) list.get(i).get("toy");
|
Double ty = (Double) list.get(i).get("ty");
|
if (z < wrz || wrz == 0) {
|
list.get(i).put("yuc", "无预警");
|
} else if (z >= wrz && z < fy) {
|
list.get(i).put("yuc", "蓝色预警");
|
} else if (z >= fy && z < oy) {
|
list.get(i).put("yuc", "黄色预警");
|
} else if (z >= oy && z < ty) {
|
list.get(i).put("yuc", "橙色预警");
|
} else {
|
list.get(i).put("yuc", "红色预警");
|
}
|
}
|
maps.put("YjList", list.get(i));
|
lists.add(maps);
|
}
|
return R.data(lists);
|
}
|
|
|
/**
|
* 求Map<K,V>中Key(键)的最大值
|
*
|
* @param map
|
* @return
|
*/
|
public static Object getMaxKey(Map<Double, Integer> map) {
|
if (map == null) return null;
|
Set<Double> set = map.keySet();
|
Object[] obj = set.toArray();
|
Arrays.sort(obj);
|
return obj[obj.length - 1];
|
}
|
|
/**
|
* 求Map<K,V>中Value(值)的最大值
|
*
|
* @param map
|
* @return
|
*/
|
public static Object getMaxValue(Map<Integer, Integer> map) {
|
if (map == null) return null;
|
Collection<Integer> c = map.values();
|
Object[] obj = c.toArray();
|
Arrays.sort(obj);
|
return obj[obj.length - 1];
|
}
|
|
|
|
/**
|
* 河道自定义时间查询
|
*
|
* @param beginTime
|
* @param endTime
|
* @return
|
* @throws ParseException
|
*/
|
@PostMapping("/selecthd")
|
public R selecthd(String beginTime, String endTime) throws ParseException {
|
String substring = beginTime.substring(0, 10);
|
String substrings = endTime.substring(0, 10);
|
String hs = beginTime.substring(11, 13);
|
String hss = endTime.substring(11, 13);
|
//截取月日
|
String[] strs = substring.split("-");
|
//月
|
String year = strs[1].toString();
|
//日
|
String day = strs[2].toString();
|
//截取月日
|
String[] strss = substrings.split("-");
|
//月
|
String years = strss[1].toString();
|
//日
|
String days = strss[2].toString();
|
//定义短信内容头
|
String text = year + "月" + day + "日" + hs + "时" + "-" + years + "月" + days + "日" + hss + "时";
|
String texta = "";
|
//定义统计数量
|
int number = 0;
|
//河道超警信息
|
List<Map<String, Object>> selecthd = riverRService.selecthdcs(beginTime, endTime);
|
//Map<String, Object> sel = riverRService.sel();
|
//selecthd.add(sel);
|
//基本站信息
|
List<Map<String, Object>> list1 = riverRService.selectP();
|
//用来判断是否重复统计超警信息
|
Map mnum = new HashMap();
|
Map mnums = new HashMap();
|
//定义list保存预警信息
|
List ylist = new ArrayList();
|
//定义list保存未预警信息
|
List alist = new ArrayList();
|
Map m1 = new HashMap();
|
Map m2 = new HashMap();
|
Map czf = new HashMap();
|
Map m = new HashMap();
|
List list = new ArrayList();
|
//查询数据为空
|
if (selecthd.size() == 0) {
|
text += "暂无河道超警信息。廖家湾水位暂无数据,流量暂无数据;娄家村水位暂无数据,流量暂无数据;";
|
}
|
//不为空遍历数据计算是否超出预警值
|
else {
|
int c = 0;
|
for (int i = 0; i < selecthd.size(); i++) {
|
//实时河道水位值
|
BigDecimal z = (BigDecimal) selecthd.get(i).get("Z");
|
double Z = z.doubleValue();
|
String stcd = selecthd.get(i).get("STCD").toString();
|
//站点名称
|
String stnms = selecthd.get(i).get("STNM").toString();
|
//最大值
|
BigDecimal maxZ = (BigDecimal) selecthd.get(i).get("maxZ");
|
//最小值
|
BigDecimal minZ = (BigDecimal) selecthd.get(i).get("minZ");
|
double v = maxZ.doubleValue();
|
double v1 = minZ.doubleValue();
|
//涨幅值
|
double v2 = v - v1;
|
double v4 = (double) Math.round(v2 * 100) / 100;
|
m1.put(v4, stnms.replaceAll(" ", "") + "站");
|
czf.put(stcd, v4);
|
//超警戒水位值
|
if (mnum.containsKey(selecthd.get(i).get("STCD").toString()) == true) {
|
} else {
|
if (selecthd.get(i).get("WRZ") == null || selecthd.get(i).get("Q") == null) {
|
String stnm = selecthd.get(i).get("STNM").toString();
|
mnum.put(selecthd.get(i).get("STCD").toString(), i);
|
if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
DecimalFormat df = new DecimalFormat("#0.00");
|
texta += stnm.replaceAll(" ", "") + "水位" + df.format(Z) + "米,";
|
if (selecthd.get(i).get("Q") == null) {
|
texta += "流量暂无数据";
|
}
|
}
|
alist.add(selecthd.get(i));
|
continue;
|
}
|
BigDecimal wrz = (BigDecimal) selecthd.get(i).get("WRZ");
|
double WRZ = wrz.doubleValue();
|
BigDecimal q = (BigDecimal) selecthd.get(i).get("Q");
|
double Q = q.doubleValue();
|
if (Z <= WRZ) {
|
if (mnum.containsKey(selecthd.get(i).get("STCD").toString()) == true) {
|
} else {
|
String stnm = selecthd.get(i).get("STNM").toString();
|
mnum.put(selecthd.get(i).get("STCD").toString(), i);
|
if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
DecimalFormat df = new DecimalFormat("#0.00");
|
texta += stnm.replaceAll(" ", "") + "水位" + df.format(Z) + "米,";
|
if (selecthd.get(i).get("Q") == null) {
|
texta += "流量暂无数据";
|
} else {
|
DecimalFormat dfs = new DecimalFormat("#0.000");
|
texta += "流量" + Q + "立方米每秒;";
|
}
|
}
|
}
|
alist.add(selecthd.get(i));
|
} else {
|
//如果map集合保存了站点则不重复统计数量
|
if (mnum.containsKey(selecthd.get(i).get("STCD").toString()) == true) {
|
} else {
|
ylist.add(selecthd.get(i));
|
mnum.put(selecthd.get(i).get("STCD").toString(), i);
|
number++;
|
//超出警戒水位多少
|
Double num = Z - WRZ;
|
double v3 = (double) Math.round(num * 100) / 100;
|
//县,市
|
String addvcd5 = selecthd.get(i).get("ADDVNM").toString();
|
//站点名称
|
String stnm = selecthd.get(i).get("STNM").toString();
|
if (stnm.equals("廖家湾") || stnm.equals("娄家村")) {
|
DecimalFormat df = new DecimalFormat("#0.00");
|
texta += stnm.replaceAll(" ", "") + "站超出警戒水位" + df.format(v3) + "米," + "水位" + df.format(Z) + "米,";
|
if (selecthd.get(i).get("Q") == null) {
|
texta += "流量暂无数据;";
|
} else {
|
//DecimalFormat dfs = new DecimalFormat("#0.000");
|
texta += "流量" + Q + "立方米每秒;";
|
}
|
}
|
}
|
}
|
}
|
|
}
|
}
|
if (number == 0) {
|
text += "暂无河道超警戒信息。" + texta;
|
} else {
|
text += "有" + number + "个河道站超警戒。" + texta;
|
}
|
if (m1.size() != 0) {
|
Object maxKey = getMaxKey(m1);
|
String s1 = m1.get(maxKey).toString();
|
text += " 涨幅最大的是:" + s1 + "(涨" + maxKey + "米)。";
|
}
|
m.put("text", text);
|
m.put("number", number);
|
m.put("Yjlist", ylist);
|
m.put("list", alist);
|
m.put("list1", list1);
|
m.put("clist", czf);
|
list.add(m);
|
return R.data(list);
|
|
}
|
}
|