tangzy
2021-09-08 aeb87acc50065316b9788b143ae493a9def8540f
1.单位
5 files modified
230 ■■■■■ changed files
src/main/java/org/springblade/modules/regionWeight/controller/RegionWeightController.java 154 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.xml 60 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/regionWeight/service/IRegionWeightService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/regionWeight/service/impl/RegionWeightServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/regionWeight/controller/RegionWeightController.java
@@ -743,4 +743,158 @@
    }
    @GetMapping("/selectReDc")
    public R selectReDc(String beginTime, String endTime) {
        String substring = beginTime.substring(0, 10);
        String r = beginTime.substring(11, 13);
        //截取月日
        String[] strs = substring.split("-");
        //月
        String year = strs[1].toString();
        //日
        String day = strs[2].toString();
        String substrings = endTime.substring(0, 10);
        String rs = endTime.substring(11, 13);
        //截取月日
        String[] strss = substrings.split("-");
        //月
        String years = strss[1].toString();
        //日
        String days = strss[2].toString();
        //List<Map<String, Object>> maps = regionWeightService.selectYjs(beginTime, endTime);
        String s = regionWeightService.selectCode();
        String[] split = s.split(",");
        String strArrays = "";
        for (int i = 0; i < split.length; i++) {
            strArrays += "'" + split[i] + "',";
        }
        String code = strArrays.substring(0, strArrays.length() - 1);
        List<Map<String, Object>> maps = regionWeightService.ss(beginTime, endTime, code);
        List<Map<String, Object>> lists = new ArrayList<>();
        Map<String, Object> map = new HashMap<String, Object>();
        String text = "";
        String yday = year + "月" + day + "日" + r + "时-" + years + "月" + days + "日" + rs + "时。";
        //0-10降雨量范围
        List lista = new ArrayList<>();
        //10-25降雨量范围
        List listb = new ArrayList<>();
        //25-50降雨量范围
        List listc = new ArrayList<>();
        //50-100降雨量范围
        List listd = new ArrayList<>();
        //100-250降雨量范围
        List liste = new ArrayList<>();
        //250降雨量范围
        List listf = new ArrayList<>();
        for (int i = 0; i < maps.size(); i++) {
            if (i < 3) {
                String addvnm = maps.get(i).get("ADDVNM").toString();
                String stnm = maps.get(i).get("STNM").toString();
                BigDecimal bigDecimaldyp = (BigDecimal) maps.get(i).get("dyp");//日雨量
                double dyp = bigDecimaldyp.doubleValue();
                if (dyp > 0 && dyp <= 10) {
                    lista.add(maps.get(i));
                } else if (dyp > 10 && dyp <= 25) {
                    listb.add(maps.get(i));
                } else if (dyp > 25 && dyp <= 50) {
                    listc.add(maps.get(i));
                } else if (dyp > 50 && dyp <= 100) {
                    listd.add(maps.get(i));
                } else if (dyp > 100 && dyp <= 250) {
                    liste.add(maps.get(i));
                } else if (dyp > 250) {
                    listf.add(maps.get(i));
                }
                text += stnm + "站" + dyp + "毫米,";
            } else {
                BigDecimal bigDecimaldyp = (BigDecimal) maps.get(i).get("dyp");//日雨量
                double dyp = bigDecimaldyp.doubleValue();
                if (dyp > 0 && dyp <= 10) {
                    lista.add(maps.get(i));
                } else if (dyp > 10 && dyp <= 25) {
                    listb.add(maps.get(i));
                } else if (dyp > 25 && dyp <= 50) {
                    listc.add(maps.get(i));
                } else if (dyp > 50 && dyp <= 100) {
                    listd.add(maps.get(i));
                } else if (dyp > 100 && dyp <= 250) {
                    liste.add(maps.get(i));
                } else if (dyp > 250) {
                    listf.add(maps.get(i));
                }
            }
        }
        //0-10
        map.put("one", lista);
        //10-25
        map.put("two", listb);
        //25-50
        map.put("three", listc);
        //50-100
        map.put("four", listd);
        //100-250
        map.put("five", liste);
        //250
        map.put("six", listf);
        String a = "";
        if (maps.size() == 0) {
            a = yday + "暂无降雨信息。";
        } else {
            a = yday + "点降雨量前三为:" + text.substring(0,text.length()-1)+"。";
        }
        map.put("text", a);
        lists.add(map);
        String fileName = "";
        // 第一步,创建一个webbook,对应一个Excel文件
        HSSFWorkbook wb = new HSSFWorkbook();
        // 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
        HSSFSheet sheet = wb.createSheet("雨量表");
        // 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
        HSSFRow row = sheet.createRow((int) 0);
        // 第四步,创建单元格,并设置值表头 设置表头居中
        HSSFCellStyle style = wb.createCellStyle();
        //style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
        HSSFCell cell = row.createCell((short) 0);
        cell.setCellValue("lon");
        cell = row.createCell((short) 1);
        cell.setCellValue("lat");
        cell = row.createCell((short) 2);
        cell.setCellValue("rain");
        for (int i = 0; i < maps.size(); i++) {
            // 第四步,创建单元格,并设置值
            row = sheet.createRow((int) i + 1);
            HSSFCell celli = row.createCell((short) 0);
            row.createCell((short) 0).setCellValue(maps.get(i).get("LGTD").toString());
            row.createCell((short) 1).setCellValue(maps.get(i).get("LTTD").toString());
            row.createCell((short) 2).setCellValue(maps.get(i).get("dyp").toString());
        }
        // 第六步,将文件存到指定位置
        try {
            fileName = "D:/pptnd.xlsx";
            FileOutputStream fout = new FileOutputStream(fileName);
            wb.write(fout);
            fout.close();
            wb.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        Process proc;
        try {
            proc = Runtime.getRuntime().exec("python D:\\fz\\fz.py");
            BufferedReader in = new BufferedReader(new InputStreamReader(proc.getInputStream()));
            String line = null;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
            in.close();
            proc.waitFor();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return R.data(lists);
    }
}
src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.java
@@ -17,6 +17,7 @@
package org.springblade.modules.regionWeight.mapper;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import liquibase.pro.packaged.S;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.regionWeight.entity.RegionWeight;
import org.springblade.modules.regionWeight.excel.regionExcel;
@@ -58,6 +59,7 @@
    List<Map<String, Object>>  selectWeight();
    List<Map<String, Object>>  selectWeights();
    List<Map<String, Object>> selectYjs(String beginTime,String endTime);
    List<Map<String, Object>> ss(String beginTime, String endTime, String code);
    List<Map<String, Object>> selectAll();
    List<Map<String, Object>> selectLALL();
    List<Map<String, Object>> selectLNam();
@@ -66,4 +68,6 @@
     */
    List<regionExcel> exportRegion(String beginTime,String endTime);
    List<Map<String, Object>> selectppyj(String time, String dateBegin1,String dateBegin3,String dateBegin6,String times);
    String selectCode();
}
src/main/java/org/springblade/modules/regionWeight/mapper/RegionWeightMapper.xml
@@ -70,7 +70,8 @@
               st.STTP
        FROM (SELECT STCD, SUM(DRP) AS DRP
              FROM dbo.ST_PPTN_R
              WHERE TM &gt; #{beginTime} AND TM &lt;= #{endTime}
              WHERE TM &gt; #{beginTime}
                AND TM &lt;= #{endTime}
              GROUP BY STCD) cs1
                 INNER JOIN (SELECT STATION_CODE, STATION_NAME, REGION_NAME, WEIGHT, REGION_CODE
                             FROM ZHSW_REGION_WEIGHT) s ON s.STATION_CODE = cs1.STCD
@@ -162,7 +163,8 @@
                 FROM dbo.ST_STBPRP_B st
                          INNER JOIN dbo.ST_ADDVCD_D ad on ad.ADDVCD = st.ADDVCD
                 WHERE st.STTP = 'PP'
                    OR st.STTP = 'ZQ' OR st.STTP='ZZ'
                    OR st.STTP = 'ZQ'
                    OR st.STTP = 'ZZ'
             ) c
                 INNER JOIN (
            SELECT SUM
@@ -285,5 +287,59 @@
            GROUP BY STCD
        ) csd ON csd.STCD = c.STCD
    </select>
    <select id="selectCode" resultType="java.lang.String">
        SELECT stuff((
            SELECT ',' + CONVERT(VARCHAR (25), STCD)
            FROM dbo.ST_STBPRP_B st
                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
            WHERE st.STTP = 'PP'
               OR st.STTP = 'ZQ'
               OR st.STTP = 'ZZ' FOR XML PATH ('')),
        1,
        1,
    ''
    ) AS siteids
    </select>
    <select id="ss" resultType="java.util.Map">
        SELECT c.STCD,
               c.STNM,
               c.STLC,
               c.ADDVNM,
               c.RVNM,
               c.HNNM,
               c.LTTD,
               c.LGTD,
               ISNULL(csd.dyp, 0) AS dyp
        FROM (
                 SELECT SUM
                            (strd.DRP) AS dyp,
                        STCD
                 FROM dbo.ST_PPTN_R strd
                 WHERE strd.TM &gt; #{beginTime}
                   AND strd.TM &lt;= #{endTime}
                   AND STCD IN (${code})
                 GROUP BY STCD
             ) csd
                 LEFT JOIN (
            SELECT STCD,
                   st.STNM,
                   st.ADDVCD,
                   st.STLC,
                   st.LTTD,
                   st.LGTD,
                   st.RVNM,
                   st.HNNM,
                   ad.ADDVNM
            FROM dbo.ST_STBPRP_B st
                     INNER JOIN dbo.ST_ADDVCD_D ad ON ad.ADDVCD = st.ADDVCD
        ) c ON c.STCD = csd.STCD
        WHERE c.ADDVNM != '井冈山市'
        AND c.ADDVNM != '吉水县'
        ORDER BY
            csd.dyp DESC
    </select>
</mapper>
src/main/java/org/springblade/modules/regionWeight/service/IRegionWeightService.java
@@ -58,4 +58,6 @@
    List<Map<String, Object>> selectLALL();
    List<Map<String, Object>> selectLNam();
    List<Map<String, Object>> selectppyj(String time, String dateBegin1,String dateBegin3,String dateBegin6,String times);
    String selectCode();
    List<Map<String, Object>> ss(String beginTime, String endTime, String code);
}
src/main/java/org/springblade/modules/regionWeight/service/impl/RegionWeightServiceImpl.java
@@ -103,4 +103,14 @@
    public List<Map<String, Object>> selectppyj(String time, String dateBegin1, String dateBegin3, String dateBegin6, String times) {
        return baseMapper.selectppyj(time, dateBegin1, dateBegin3, dateBegin6, times);
    }
    @Override
    public String selectCode() {
        return baseMapper.selectCode();
    }
    @Override
    public List<Map<String, Object>> ss(String beginTime, String endTime, String code) {
        return baseMapper.ss(beginTime, endTime, code);
    }
}