tangzy
2022-07-21 a98b1db4392c357304036e8b3cdd01646920300d
1.山洪
13 files modified
604 ■■■■ changed files
src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java 237 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java 77 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/controller/ss.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/excel/temple.xls patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.java 9 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml 153 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml 6 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/service/IBigriverService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/service/impl/BigriverServiceImpl.java 20 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/vo/BigriverVO.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/rsvr/controller/RsvrRController.java 65 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml 12 ●●●●● patch | view | raw | blame | history
src/main/resources/excelTemplate/temple.xls patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/controller/BigriverController.java
@@ -19,6 +19,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import jodd.io.PathUtil;
import liquibase.pro.packaged.S;
import lombok.AllArgsConstructor;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
@@ -31,12 +32,14 @@
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.python.antlr.ast.Str;
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.tool.api.R;
import org.springblade.modules.mountainrain.entity.Yucbig;
import org.springblade.modules.mountainrain.service.IBigriverService;
import org.springblade.modules.mountainrain.vo.BigriverVO;
import org.springblade.modules.mountainrain.wrapper.BigriverWrapper;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
@@ -48,7 +51,11 @@
import javax.validation.Valid;
import java.awt.image.BufferedImage;
import java.io.*;
import java.math.BigDecimal;
import java.security.MessageDigest;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
/**
@@ -167,17 +174,16 @@
            String ftimes = sheet.getRow(1).getCell(11).getStringCellValue();
            String substring = ftimes.substring(5, ftimes.length());
            String year = substring.substring(0, substring.lastIndexOf("年"));
            String yues = substring.substring(substring.indexOf("年")+1, substring.lastIndexOf("月"));
            String yues = substring.substring(substring.indexOf("年") + 1, substring.lastIndexOf("月"));
            String yue;
            if (yues.length()==1){
                 yue=0+yues;
            if (yues.length() == 1) {
                yue = 0 + yues;
            } else {
                yue = yues;
            }
            else {
                 yue=yues;
            }
            String r = substring.substring(substring.indexOf("月")+1, substring.lastIndexOf("日"));
            String ms = substring.substring(substring.indexOf("日")+1, substring.lastIndexOf("时"));
            String ftime=year+"-"+yue+"-"+r+" "+ms+":00:00";
            String r = substring.substring(substring.indexOf("月") + 1, substring.lastIndexOf("日"));
            String ms = substring.substring(substring.indexOf("日") + 1, substring.lastIndexOf("时"));
            String ftime = year + "-" + yue + "-" + r + " " + ms + ":00:00";
            //河名
            String river = sheet.getRow(4).getCell(0).getStringCellValue();
            //站点名称
@@ -199,13 +205,12 @@
            String ytimes = sheet.getRow(4).getCell(12).getStringCellValue();
            String[] split = ytimes.split(",");
            String a;
            if (split[0].length()==1){
                a=0+yues;
            if (split[0].length() == 1) {
                a = 0 + yues;
            } else {
                a = yues;
            }
            else {
                a=yues;
            }
            String ytime=year+"-"+a+"-"+split[1]+" "+split[2]+":00:00";
            String ytime = year + "-" + a + "-" + split[1] + " " + split[2] + ":00:00";
            //预测水位
            String yuz = sheet.getRow(4).getCell(13).getStringCellValue();
            //预警流量
@@ -216,7 +221,7 @@
            String dbi = sheet.getRow(4).getCell(16).getStringCellValue();
            //起涨水位
            String qzsw = sheet.getRow(4).getCell(8).getStringCellValue();
            Yucbig yucbig=new Yucbig();
            Yucbig yucbig = new Yucbig();
            yucbig.setStcd(stcd);
            yucbig.setStname(stnames);
            yucbig.setRiver(river);
@@ -245,12 +250,13 @@
    /**
     * 主要河流导出预警模板
     *
     * @param emp01
     * @throws IOException
     * @throws InvalidFormatException
     */
    @PostMapping("createEmpExcel")
    public  void createEmpExcel(@RequestBody Map<String, Object> emp01) throws IOException, InvalidFormatException {
    public void createEmpExcel(@RequestBody Map<String, Object> emp01) throws IOException, InvalidFormatException {
        // import為需要導入的EXCEL模板,exportFilePath為生成的員工EXCEL文件
        String importFilePath = "D://excel//temple.xls";
        //String exportFilePath = "D:\\Excel";
@@ -302,42 +308,187 @@
        CellRangeAddress regions = new CellRangeAddress(5, 6, 3, 16);
        sheet.addMergedRegion(regions);
        //发布时间
        sheet.getRow(1).getCell(11).setCellValue("发布时间:"+emp01.get("ftime").toString());
        sheet.getRow(1).getCell(11).setCellValue("发布时间:" + emp01.get("ftime").toString());
        CellRangeAddress regionf = new CellRangeAddress(1, 1, 11, 16);
        sheet.addMergedRegion(regionf);
        FileOutputStream out = new FileOutputStream( "D://Software//nginx-1.20.0//dist//fzswz//excel//主要河流预警.xls");
        FileOutputStream out = new FileOutputStream("D://Software//nginx-1.20.0//dist//fzswz//excel//主要河流预警.xls");
        //FileOutputStream out = new FileOutputStream("D://Temp//主要河流预警.xls");
        wb.write(out);
        out.close();
    }
    /***
     * MD5加码 生成32位md5码
    /**
     * 大江大河预报库读取
     *
     * @return
     */
    public static String string2MD5(String inStr) {
        MessageDigest md5 = null;
        try {
            md5 = MessageDigest.getInstance("MD5");
        } catch (Exception e) {
            System.out.println(e.toString());
            e.printStackTrace();
            return "";
    @GetMapping("/selectYb")
    public R selectYb(String time) throws ParseException {
        //预警数据
        List listyj = new ArrayList();
        //无预警数据
        List listzc = new ArrayList();
        Map mnum = new HashMap();
        String s = iBigriverService.selectCode();
        String[] split = s.split(",");
        String strArrays = "";
        for (int i = 0; i < split.length; i++) {
            strArrays += "'" + split[i] + "',";
        }
        char[] charArray = inStr.toCharArray();
        byte[] byteArray = new byte[charArray.length];
        for (int i = 0; i < charArray.length; i++)
            byteArray[i] = (byte) charArray[i];
        byte[] md5Bytes = md5.digest(byteArray);
        StringBuffer hexValue = new StringBuffer();
        for (int i = 0; i < md5Bytes.length; i++) {
            int val = ((int) md5Bytes[i]) & 0xff;
            if (val < 16)
                hexValue.append("0");
            hexValue.append(Integer.toHexString(val));
        String code = strArrays.substring(0, strArrays.length() - 1);
        String substrings = time.substring(0, 10);
        String ftimez = substrings + " 08:00:00";
        List<BigriverVO> list = iBigriverService.selectYb(ftimez, code);
        for (int i = 0; i < list.size(); i++) {
            String stcd = list.get(i).getStcd();
            String ftime = list.get(i).getFtime();
            String substring = ftime.substring(0, 13);
            String times = substring + ":00:00";
            String endTime = times;
            Date dates = beforeHourToNowDate(time, 1);
            DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
            String beginTime = sdfc.format(dates);
            List<Map<String, Object>> list1 = iBigriverService.selecF(stcd, times, beginTime, endTime);
            for (int c = 0; c < list1.size(); c++) {
                list.get(i).setFbsw(list1.get(c).get("fbsw").toString());
                list.get(i).setFbll(list1.get(c).get("fbll").toString());
                list.get(i).setQzll(list1.get(c).get("qzll").toString());
                list.get(i).setQztime(list1.get(c).get("qztime").toString());
                list.get(i).setQzsw(list1.get(c).get("qzsw").toString());
            }
        }
        return hexValue.toString();
        for (int i = 0; i < list.size(); i++) {
            String yjsw = list.get(i).getYjsw();
            Double yjz = Double.parseDouble(yjsw);
            BigDecimal ybsws = list.get(i).getYbsw();
            Double ybsw = ybsws.doubleValue();
            if (ybsw > yjz) {
                if (mnum.containsKey(list.get(i).getStcd()) == true) {
                } else {
                    mnum.put(list.get(i).getStcd(), i);
                    listyj.add(list.get(i));
                }
            } else {
                if (mnum.containsKey(list.get(i).getStcd()) == true) {
                } else {
                    mnum.put(list.get(i).getStcd(), i);
                    listzc.add(list.get(i));
                }
            }
        }
        Map map = new HashMap();
        map.put("yj", listyj);
        map.put("zc", listzc);
        List lists = new ArrayList();
        lists.add(map);
        return R.data(lists);
    }
    public static Date beforeHourToNowDate(String date, int hours) {
        Calendar c = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            c.setTime(sdf.parse(date));
            //c.set(Calendar.HOUR_OF_DAY, c.get(Calendar.HOUR_OF_DAY) - hours);
            c.set(Calendar.DATE, c.get(Calendar.DATE) - hours);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return c.getTime();
    }
    @GetMapping("/ss")
    public void ss() {
        String s = iBigriverService.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);
        System.out.println(code);
    }
    /**
     * 大江大河预报库读取
     *
     * @return
     */
    @GetMapping("/selectYbs")
    public R selectYbs(String time) throws ParseException {
        //预警数据
        List listyj = new ArrayList();
        //无预警数据
        List listzc = new ArrayList();
        Map mnum = new HashMap();
        String s = iBigriverService.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, Object>> listz = new ArrayList<Map<String, Object>>();
        List<BigriverVO> list = iBigriverService.selectYb(time, code);
        for (int i = 0; i < list.size(); i++) {
            Map<String, Object> map = new HashMap<String, Object>();
            String stcd = list.get(i).getStcd();
            String ftime = list.get(i).getFtime();
            String substring = ftime.substring(0, 13);
            String times = substring + ":00:00";
            String endTime = times;
            Date dates = beforeHourToNowDate(time, 1);
            DateFormat sdfc = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
            String beginTime = sdfc.format(dates);
            map.put("beginTime", beginTime);
            map.put("endTime", endTime);
            map.put("stcd", stcd);
            map.put("times", times);
            listz.add(map);
        }
        List<Map<String, Object>> list1 = iBigriverService.selectStation(listz);
        for (int i = 0; i < list.size(); i++) {
            for (int c = 0; c < list1.size(); c++) {
                String stcd = list.get(i).getStcd();
                String stcdz = list1.get(i).get("STCD").toString();
                if (stcd == stcdz) {
                    list.get(i).setFbsw(list1.get(c).get("fbsw").toString());
                    list.get(i).setFbll(list1.get(c).get("fbll").toString());
                    list.get(i).setQzll(list1.get(c).get("qzll").toString());
                    list.get(i).setQztime(list1.get(c).get("qztime").toString());
                    list.get(i).setQzsw(list1.get(c).get("qzsw").toString());
                } else {
                    continue;
                }
            }
        }
        for (int i = 0; i < list.size(); i++) {
            String yjsw = list.get(i).getYjsw();
            Double yjz = Double.parseDouble(yjsw);
            BigDecimal ybsws = list.get(i).getYbsw();
            Double ybsw = ybsws.doubleValue();
            if (ybsw > yjz) {
                if (mnum.containsKey(list.get(i).getStcd()) == true) {
                } else {
                    mnum.put(list.get(i).getStcd(), i);
                    listyj.add(list.get(i));
                }
            } else {
                if (mnum.containsKey(list.get(i).getStcd()) == true) {
                } else {
                    mnum.put(list.get(i).getStcd(), i);
                    listzc.add(list.get(i));
                }
            }
        }
        Map map = new HashMap();
        map.put("yj", listyj);
        map.put("zc", listzc);
        List lists = new ArrayList();
        lists.add(map);
        return R.data(lists);
    }
}
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -2090,5 +2090,82 @@
        }
        return c.getTime();
    }
    private static String ss(int i, int j, 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);
        }
        calendar.add(Calendar.DATE, -j);
        Date today = calendar.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
        String result = format.format(today);
        return result;
    }
    @GetMapping("/cs")
    public R cs() {
        for (int c = 2; c < 25; c++) {
            Calendar calendar = Calendar.getInstance();
            calendar.add(Calendar.DATE, -c); //得到前一天
            Date date = calendar.getTime();
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            String dateNow = df.format(df.format(date));
            int intervals = 31;
            ArrayList passDaysList = new ArrayList<>();
            for (int i = 0; i < intervals; i++) {
                passDaysList.add(ss(i, c, false));
            }
            Collections.sort(passDaysList);
            //String s = mountainrainService.selectCode();
            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);
            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) {
                        //stcd=split[i];
                        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 (stcd != null) {
                    if (v1 > 60) {
                        mountainrainService.soleInster(stcd, "60", dateNow);
                    } else {
                        String a = String.valueOf(v1);
                        mountainrainService.soleInster(stcd, a, dateNow);
                    }
                }
            }
        }
        return R.data("成功");
    }
}
src/main/java/org/springblade/modules/mountainrain/controller/ss.java
@@ -10,6 +10,7 @@
import org.springframework.web.bind.annotation.GetMapping;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.*;
@@ -97,4 +98,18 @@
        return result;
    }
    private static String ss(int i,int j, 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);
        }
        calendar.add(Calendar.DATE, -j);
        Date today = calendar.getTime();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd 08:00:00");
        String result = format.format(today);
        return result;
    }
}
src/main/java/org/springblade/modules/mountainrain/excel/temple.xls
Binary files differ
src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.java
@@ -19,6 +19,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.python.antlr.ast.Str;
import org.springblade.modules.mountainrain.entity.Mountainrain;
import org.springblade.modules.mountainrain.entity.Yucbig;
import org.springblade.modules.mountainrain.entity.Yucpptn;
@@ -35,6 +36,12 @@
 */
public interface BigriverMapper extends BaseMapper<Yucbig> {
    List<Map<String, Object>> selctbgriver();
    List<Map<String, Object>> selecF(String stcd, String times,String beginTime,String endTime);
    List<Map<String, Object>> selectStation(List<Map<String, Object>> list);
    String selectINfo(String stnm);
    //大江大河预报库读取
    List<BigriverVO> selectYb(String time,String code);
    String selectCode();
}
src/main/java/org/springblade/modules/mountainrain/mapper/BigriverMapper.xml
@@ -2,12 +2,30 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.modules.mountainrain.mapper.BigriverMapper">
    <!-- 通用查询映射结果 -->
    <resultMap id="Forecast" type="org.springblade.modules.mountainrain.vo.BigriverVO">
        <result column="stcd" property="stcd"/>
        <result column="ftime" property="ftime"/>
        <result column="ytime" property="ytime"/>
        <result column="ybsw" property="ybsw"/>
        <result column="yq" property="yq"/>
        <result column="river" property="river"/>
        <result column="stname" property="stname"/>
        <result column="yjsw" property="yjsw"/>
        <result column="addvnm" property="addvnm"/>
        <result column="fbsw" property="fbsw"/>
        <result column="fbll" property="fbll"/>
        <result column="qzsw" property="qzsw"/>
        <result column="qztime" property="qztime"/>
        <result column="qzll" property="qzll"/>
    </resultMap>
    <!--大江大河-->
    <select id="selctbgriver" resultType="java.util.Map">
        SELECT cs1.stcd as STCD,
        SELECT cs1.stcd  as STCD,
               cs1.ftime,
               cs1.ytime,
               cs1.yuz as Z,
               cs1.yuz   as Z,
               cs1.yjsw,
               cs1.stname,
               cs1.qzsw,
@@ -16,7 +34,7 @@
               cs1.qztime,
               cs1.drp,
               cs1.qzll,
               cs1. fbsw,
               cs1.fbsw,
               cs1.fbll,
               cs1.dbi,
               ad.ADDVNM as addvnm,
@@ -30,15 +48,136 @@
                 FROM (SELECT stcd, ftime FROM sys_Yucbig) AS A
                 GROUP BY A.stcd
             ) cs
                 INNER JOIN (SELECT stcd, stname, ftime, ytime, yuz, yjsw, river,qzsw,yq,drptime,qztime,drp,qzll,fbsw,fbll,dbi FROM sys_Yucbig) cs1
                            ON cs.stcd = cs1.stcd and cs.ftime=cs1.ftime
                 INNER JOIN (SELECT LGTD, LTTD, STCD,ADDVCD,HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.stcd
                 INNER JOIN (SELECT stcd,
                                    stname,
                                    ftime,
                                    ytime,
                                    yuz,
                                    yjsw,
                                    river,
                                    qzsw,
                                    yq,
                                    drptime,
                                    qztime,
                                    drp,
                                    qzll,
                                    fbsw,
                                    fbll,
                                    dbi
                             FROM sys_Yucbig) cs1
                            ON cs.stcd = cs1.stcd and cs.ftime = cs1.ftime
                 INNER JOIN (SELECT LGTD, LTTD, STCD, ADDVCD, HNNM FROM ST_STBPRP_B) st ON st.STCD = cs1.stcd
                 INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
    </select>
    <select id="selectINfo" resultType="java.lang.String">
        SELECT STCD
        from dbo.ST_STBPRP_B
        where STNM =#{stnm}
        where STNM = #{stnm}
    </select>
    <select id="selectYb" resultMap="Forecast">
        SELECT A.STCD                               AS stcd,
               CONVERT(VARCHAR (100), A.IYMDH, 120) AS ftime,
               CONVERT(VARCHAR (100), A.YMDH, 120)  AS ytime,
               ISNULL(A.Z, 0)                       AS ybsw,
               ISNULL(A.Q, 0)                       AS yq,
               B.river,
               B.stname,
               B.yjsw,
               B.addvnm
        FROM (SELECT STCD, IYMDH, YMDH, Z, Q FROM dbo.ST_FORECAST_F WHERE YMDH = #{time} AND STCD IN (${code})) A
                 LEFT JOIN (SELECT stcd, river, stname, yjsw, addvnm
                            FROM sys_bigriver
                            GROUP BY stcd, river, stname, yjsw, addvnm) B ON A.STCD = B.stcd order by A.IYMDH desc
    </select>
    <select id="selectCode" resultType="java.lang.String">
        SELECT stuff((
            SELECT ',' + CONVERT(VARCHAR (25), stcd)
            FROM sys_bigriver
            GROUP BY stcd
            FOR XML PATH ('')),
        1,
        1,
    ''
    ) AS siteids
    </select>
    <!--    <select id="selecF" resultType="java.util.Map">-->
    <!--        SELECT ISNULL(Z, 0) as Z,-->
    <!--               ISNULL(Q, 0) as Q-->
    <!--        FROM dbo.ST_RIVER_R-->
    <!--        WHERE STCD = #{stcd}-->
    <!--          AND TM = #{times}-->
    <!--    </select>-->
    <select id="selecF" resultType="java.util.Map">
        SELECT CONVERT(VARCHAR (100), A.minTM, 120) as qztime,
               A.minZ                               AS qzsw,
               ISNULL(B.Q, 0)                       AS qzll,
               ISNULL(C.Z, 0)                       as fbsw,
               ISNULL(C.Q, 0)                       as fbll
        FROM (
                 SELECT DISTINCT s.STCD,
                                 isnull(s.minZ, 0) AS                               minZ,
                                 MAX(CASE s.minAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) minTM
                 FROM (
                          SELECT STCD,
                                 TM,
                                 MIN(Z) OVER ( partition BY STCD ) minZ,
                                 RANK() OVER ( partition BY STCD ORDER BY Z ) minAgeNum
                          FROM dbo.ST_RIVER_R
                          WHERE TM &gt;= #{beginTime}
                            AND TM &lt;= #{endTime}
                            AND STCD = #{stcd}
                      ) s
             ) A
                 LEFT JOIN (SELECT Q, TM, STCD FROM dbo.ST_RIVER_R WHERE STCD = #{stcd}) B ON A.minTM = B.TM
            AND B.STCD = A.STCD
                 LEFT JOIN (
            SELECT STCD,
                   ISNULL(Z, 0) AS Z,
                   ISNULL(Q, 0) AS Q
            FROM dbo.ST_RIVER_R
            WHERE STCD = #{stcd}
              AND TM = #{times}
        ) C ON C.STCD = A.STCD
    </select>
    <select id="selectStation" resultType="java.util.Map">
    <foreach collection="list" item="item" open="" close="" separator="union ALL" index="index">
        SELECT CONVERT(VARCHAR (100), A.minTM, 120) as qztime,
        A.minZ                               AS qzsw,
        ISNULL(B.Q, 0)                       AS qzll,
        ISNULL(C.Z, 0)                       as fbsw,
        ISNULL(C.Q, 0)                       as fbll,
        A.STCD
        FROM (
        SELECT DISTINCT s.STCD,
        isnull(s.minZ, 0) AS                               minZ,
        MAX(CASE s.minAgeNum WHEN 1 THEN s.TM ELSE '' END) OVER ( partition BY s.STCD ) minTM
        FROM (
        SELECT STCD,
        TM,
        MIN(Z) OVER ( partition BY STCD ) minZ,
        RANK() OVER ( partition BY STCD ORDER BY Z ) minAgeNum
        FROM dbo.ST_RIVER_R
        WHERE TM &gt;= #{item.beginTime}
        AND TM &lt;= #{item.endTime}
        AND STCD =#{item.stcd}
        ) s
        ) A
        LEFT JOIN (SELECT Q, TM, STCD FROM dbo.ST_RIVER_R WHERE STCD = #{item.stcd}) B ON A.minTM = B.TM
        AND B.STCD = A.STCD
        LEFT JOIN (
        SELECT STCD,
        ISNULL(Z, 0) AS Z,
        ISNULL(Q, 0) AS Q
        FROM dbo.ST_RIVER_R
        WHERE STCD =#{item.stcd}
        AND TM =#{item.times}
        ) C ON C.STCD = A.STCD
    </foreach>
    </select>
</mapper>
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
@@ -926,4 +926,10 @@
                 INNER JOIN dbo.ST_STBPRP_B st ON so.stcd = st.STCD
        where datediff(day,stime, #{stime}) = 0
    </select>
<!--    &lt;!&ndash;土壤湿度优化&ndash;&gt;-->
<!--    <select id="ss" resultType="java.util.Map">-->
<!--        SELECT * FROM ST_PPTN_R WHERE DATEDIFF(dd, TM , '2021-06-29 08:00:00') <= 30 AND RIGHT(CONVERT(varchar(19),TM,120),5)='00:00'-->
<!--    </select>-->
</mapper>
src/main/java/org/springblade/modules/mountainrain/service/IBigriverService.java
@@ -47,4 +47,9 @@
    void importBgr(List<BgrExcel> data, Boolean isCovered);
    List<Map<String, Object>> selctbgriver();
    String selectINfo(String stnm);
    //大江大河预报库读取
    List<BigriverVO> selectYb(String time,String code);
    String selectCode();
    List<Map<String, Object>> selecF(String stcd, String times,String beginTime,String endTime);
    List<Map<String, Object>> selectStation(List<Map<String, Object>> list);
}
src/main/java/org/springblade/modules/mountainrain/service/impl/BigriverServiceImpl.java
@@ -83,4 +83,24 @@
    public String selectINfo(String stnm) {
        return baseMapper.selectINfo(stnm);
    }
    @Override
    public List<BigriverVO> selectYb(String time,String code) {
        return baseMapper.selectYb(time,code);
    }
    @Override
    public String selectCode() {
        return baseMapper.selectCode();
    }
    @Override
    public List<Map<String, Object>> selecF(String stcd, String times,String beginTime,String endTime) {
        return baseMapper.selecF(stcd,times,beginTime,endTime);
    }
    @Override
    public List<Map<String, Object>> selectStation(List<Map<String, Object>> list) {
        return baseMapper.selectStation(list);
    }
}
src/main/java/org/springblade/modules/mountainrain/vo/BigriverVO.java
@@ -5,7 +5,12 @@
import org.springblade.modules.mountain.entity.Mountain;
import org.springblade.modules.mountainrain.entity.Yucbig;
import java.math.BigDecimal;
@Data
@EqualsAndHashCode(callSuper = true)
public class BigriverVO extends Yucbig {
    private String addvnm;
    private  BigDecimal ybsw;
    //private  BigDecimal yq;
}
src/main/java/org/springblade/modules/rsvr/controller/RsvrRController.java
@@ -288,8 +288,12 @@
                            } else {
                                BigDecimal w = (BigDecimal) map.get(i).get("W");
                                double W = w.doubleValue();
                                DecimalFormat df = new DecimalFormat("#0.00");
                                texta += "蓄水量" + df.format(W) + "百万立方米、";
                                if (W == 0.000) {
                                    texta += "蓄水量暂无数据、";
                                } else {
                                    DecimalFormat df = new DecimalFormat("#0.00");
                                    texta += "蓄水量" + df.format(W) + "百万立方米、";
                                }
                            }
                            if (map.get(i).get("OTQ") == null) {
                                texta += "出库流量暂无数据;";
@@ -325,8 +329,12 @@
                            } else {
                                BigDecimal w = (BigDecimal) map.get(i).get("W");
                                double W = w.doubleValue();
                                DecimalFormat df = new DecimalFormat("#0.00");
                                texth += "蓄水量" + df.format(W) + "百万立方米、";
                                if (W == 0.000) {
                                    texth += "蓄水量暂无数据、";
                                } else {
                                    DecimalFormat df = new DecimalFormat("#0.00");
                                    texth += "蓄水量" + df.format(W) + "百万立方米、";
                                }
                            }
                            if (map.get(i).get("OTQ") == null) {
                                texth += "出库流量暂无数据。";
@@ -365,8 +373,12 @@
                            } else {
                                BigDecimal w = (BigDecimal) map.get(i).get("W");
                                double W = w.doubleValue();
                                DecimalFormat df = new DecimalFormat("#0.00");
                                texta += "蓄水量" + df.format(W) + "百万立方米、";
                                if (W == 0.000) {
                                    texta += "蓄水量暂无数据、";
                                } else {
                                    DecimalFormat df = new DecimalFormat("#0.00");
                                    texta += "蓄水量" + df.format(W) + "百万立方米、";
                                }
                            }
                            if (map.get(i).get("OTQ") == null) {
                                texta += "出库流量暂无数据;";
@@ -396,8 +408,12 @@
                            } else {
                                BigDecimal w = (BigDecimal) map.get(i).get("W");
                                double W = w.doubleValue();
                                DecimalFormat df = new DecimalFormat("#0.00");
                                texth += "蓄水量" + df.format(W) + "百万立方米、";
                                if (W == 0.000) {
                                    texth += "蓄水量暂无数据、";
                                } else {
                                    DecimalFormat df = new DecimalFormat("#0.00");
                                    texth += "蓄水量" + df.format(W) + "百万立方米、";
                                }
                            }
                            if (map.get(i).get("OTQ") == null) {
                                texth += "出库流量暂无数据。";
@@ -443,8 +459,12 @@
                                } else {
                                    BigDecimal w = (BigDecimal) map.get(i).get("W");
                                    double W = w.doubleValue();
                                    DecimalFormat df = new DecimalFormat("#0.00");
                                    texta += "蓄水量" + df.format(W) + "百万立方米、";
                                    if (W == 0.000) {
                                        texta += "蓄水量暂无数据、";
                                    } else {
                                        DecimalFormat df = new DecimalFormat("#0.00");
                                        texta += "蓄水量" + df.format(W) + "百万立方米、";
                                    }
                                }
                                if (map.get(i).get("OTQ") == null) {
                                    texta += "出库流量暂无数据;";
@@ -474,8 +494,12 @@
                                } else {
                                    BigDecimal w = (BigDecimal) map.get(i).get("W");
                                    double W = w.doubleValue();
                                    DecimalFormat df = new DecimalFormat("#0.00");
                                    texth += "蓄水量" + df.format(W) + "百万立方米、";
                                    if (W == 0.000) {
                                        texth += "蓄水量暂无数据、";
                                    } else {
                                        DecimalFormat df = new DecimalFormat("#0.00");
                                        texth += "蓄水量" + df.format(W) + "百万立方米、";
                                    }
                                }
                                if (map.get(i).get("OTQ") == null) {
                                    texth += "出库流量暂无数据。";
@@ -535,8 +559,7 @@
//                //获取涨幅最大的信息
//            }
            if (beginTime.equals(endTime)) {
            }
            else {
            } else {
                if (m1.size() != 0) {
                    Object maxKey = getMaxKey(m1);
                    String s1 = m1.get(maxKey).toString();
@@ -1306,7 +1329,7 @@
        }
        String code = strArrays.substring(0, strArrays.length() - 1);
        //水库水情预警信息
        List<Map<String, Object>> map = rsvrRService.selectskshi(egmd, edmd, timec, time,dateEnd,code);
        List<Map<String, Object>> map = rsvrRService.selectskshi(egmd, edmd, timec, time, dateEnd, code);
        //用来判断是否重复统计超警信息
        Map mnum = new HashMap();
        //定义list保存预警信息
@@ -1345,7 +1368,7 @@
                        if (RZ == 0) {
                            texta += "库水位暂无数据、";
                        } else {
                            texta += "库水位" + RZ + "米、";
                            texta += "库水位" + dfc.format(RZ) + "米、";
                        }
                        if (v < 0) {
                            texta += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1390,7 +1413,7 @@
                        if (RZ == 0) {
                            texth += "库水位暂无数据、";
                        } else {
                            texth += "库水位" + RZ + "米、";
                            texth += "库水位" + dfc.format(RZ) + "米、";
                        }
                        if (v < 0) {
                            texth += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1447,7 +1470,7 @@
                        if (RZ == 0) {
                            texta += "库水位暂无数据、";
                        } else {
                            texta += "库水位" + RZ + "米、";
                            texta += "库水位" + dfc.format(RZ) + "米、";
                        }
                        if (v < 0) {
                            texta += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1488,7 +1511,7 @@
                        if (RZ == 0) {
                            texth += "库水位暂无数据、";
                        } else {
                            texth += "库水位" + RZ + "米、";
                            texth += "库水位" + dfc.format(RZ) + "米、";
                        }
                        if (v < 0) {
                            texth += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1545,7 +1568,7 @@
                            if (RZ == 0) {
                                texta += "库水位暂无数据、";
                            } else {
                                texta += "库水位" + RZ + "米、";
                                texta += "库水位" + dfc.format(RZ) + "米、";
                            }
                            if (v < 0) {
                                texta += "比昨日8时下降" + Math.abs(v) + "米、";
@@ -1590,7 +1613,7 @@
                            if (RZ == 0) {
                                texth += "库水位暂无数据、";
                            } else {
                                texth += "库水位" + RZ + "米、";
                                texth += "库水位" + dfc.format(RZ) + "米、";
                            }
                            if (v < 0) {
                                texth += "比昨日8时下降" + Math.abs(v) + "米、";
src/main/java/org/springblade/modules/rsvr/mapper/RsvrRMapper.xml
@@ -88,7 +88,7 @@
                            GROUP BY STCD) cs4 ON cs4.STCD = rs.STCD
        WHERE rs.TM &gt; #{beginTime}
          AND rs.TM &lt;= #{endTime}
        ORDER BY rs.TM DESC
        ORDER BY rs.RZ DESC
    </select>
    <select id="selectyjcd" resultType="java.util.HashMap">
@@ -314,14 +314,16 @@
    <!--水库站水位流量过程接口-->
    <select id="selectRsvrLists" resultType="java.util.HashMap">
        select * from dbo.ST_RIVER_R where STCD=#{code}
        select rs.*,rv.WRZ from dbo.ST_RIVER_R rs
        LEFT JOIN ( SELECT STCD, WRZ FROM dbo.ST_RVFCCH_B ) rv ON rv.STCD = rs.STCD
        where rs.STCD=#{code}
        <if test="dateBegin!=null and dateBegin!=''">
            AND TM &gt;=#{dateBegin}
            AND rs.TM &gt;=#{dateBegin}
        </if>
        <if test="dateEnd!=null and dateEnd!=''">
            and TM&lt;=#{dateEnd}
            and rs.TM&lt;=#{dateEnd}
        </if>
        ORDER BY TM DESC
        ORDER BY rs.TM DESC
    </select>
src/main/resources/excelTemplate/temple.xls
Binary files differ