tangzy
2021-09-25 0cfec24a4eb3807acc3014b92b7e2ebc7b804f1c
1.山洪
5 files modified
2 files added
349 ■■■■ changed files
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java 53 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/controller/ss.java 92 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/entity/Yucpptn.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.java 118 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml 28 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/service/IMountainrainService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/service/impl/MountainrainServiceImpl.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/controller/MountainrainController.java
@@ -32,6 +32,7 @@
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.entity.Yucpptn;
import org.springblade.modules.mountainrain.service.IMountainrainService;
import org.springblade.modules.mountainrain.vo.*;
import org.springblade.modules.mountainrain.wrapper.MountainrainWrapper;
@@ -44,6 +45,8 @@
import javax.validation.Valid;
import java.math.BigDecimal;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
@@ -572,6 +575,7 @@
            List<Map<String, Object>> list = mountainrainService.selecMone(times, dateEnd1, dateEnd2, dateEnd3, code);
            List<Map<String, Object>> lists = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                Map<String, Object> map = new HashMap<String, Object>();
                BigDecimal w1 = (BigDecimal) list.get(i).get("drp1");
                double drp1 = w1.doubleValue();
                BigDecimal w2 = (BigDecimal) list.get(i).get("drp2");
@@ -579,37 +583,23 @@
                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);
                }
                map.put("List", list.get(i));
                lists.add(map);
            }
            return R.data(lists);
        }
@@ -621,7 +611,6 @@
     *
     * @return
     */
    @Scheduled(cron = "0 0 8 * * ?")
    @GetMapping("/soleval")
    public R soleval() {
        mountainrainService.soildel();
@@ -692,4 +681,34 @@
        return result;
    }
    /**
     * 山洪预报
     *
     * @param addvcd 行政区编码
     * @param time   时间
     * @param intv   降雨时段
     * @return
     */
    @GetMapping("/yuc")
    public R yuc(String addvcd, String time, String intv) throws ParseException {
        List<Yucpptn> yucpptnList = new ArrayList<Yucpptn>();
        //通过行政区查询站点编码
        List<Map<String, Object>> list = mountainrainService.selectAddvcd(addvcd);
        for (int i = 0; i < list.size(); i++) {
            Yucpptn yucpptn = new Yucpptn();
            //站点编码
            String stcd = list.get(i).get("STCD").toString();
            yucpptn.setSTCD(stcd);
            DateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = sf.parse(time);
            java.sql.Date sqlDate = new java.sql.Date(date.getTime());
            yucpptn.setINTV(intv);
            yucpptnList.add(yucpptn);
        }
        //预警信息添加
        mountainrainService.insertYuc(yucpptnList);
        return R.data("");
    }
}
src/main/java/org/springblade/modules/mountainrain/controller/ss.java
New file
@@ -0,0 +1,92 @@
package org.springblade.modules.mountainrain.controller;
import org.springblade.core.tool.api.R;
import org.springblade.modules.mountain.service.IMountainService;
import org.springblade.modules.mountainrain.service.IMountainrainService;
import org.springblade.modules.regionWeight.service.IRegionWeightService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
@Component
public class ss {
    @Autowired
    private IMountainrainService mountainrainService;
    @Scheduled(cron = "0 0 8 * * ?")
    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) {
                    //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 (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;
    }
}
src/main/java/org/springblade/modules/mountainrain/entity/Yucpptn.java
New file
@@ -0,0 +1,43 @@
package org.springblade.modules.mountainrain.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
@Data
@TableName("sys_yucpptn")
@ApiModel(value = "Yucpptn对象", description = "Yucpptn对象")
public class Yucpptn {
    /**
     * 对应雨量站
     */
    @ApiModelProperty(value = "对应雨量站")
    private String STCD;
    /**
     * 时间
     */
    @ApiModelProperty(value = "时间")
    @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date TM;
    /**
     * 时段降水量
     */
    @ApiModelProperty(value = "时段降水量")
    private String DRP;
    /**
     * 时段长
     */
    @ApiModelProperty(value = "时段长")
    private String INTV;
}
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.java
@@ -19,13 +19,14 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.modules.mountainrain.entity.Mountainrain;
import org.springblade.modules.mountainrain.entity.Yucpptn;
import org.springblade.modules.mountainrain.vo.*;
import java.util.List;
import java.util.Map;
/**
 *  Mapper 接口
 * Mapper 接口
 *
 * @author BladeX
 * @since 2020-02-27
@@ -43,6 +44,7 @@
    /**
     * 判断是否正常
     *
     * @param dateBegin
     * @param dateEnd
     * @return
@@ -50,16 +52,20 @@
    List<MountainrainsVO> selectALl(String dateBegin, String dateEnd);
    List<MountainrainsCVO> selectcInfo(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
    List<MountainrainsCVO> selectcInfo(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
    List<MountainrainsCVO> selectaInfo(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
    List<MountainrainsCVO> selectaInfo(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
    List<MountainrainsCVO> selectcInfos(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
    List<MountainrainsCVO> Mountains(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
    List<MountainrainsCVO> selectcInfosdx(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String addvnm);
    List<MountainrainsCVO> selectaInfos(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
    List<MountainrainsCVO> selectaInfosdx(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String addvnm);
    List<MountainrainsCVO> selectcInfos(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
    List<MountainrainsCVO> Mountains(String times, String dateEnd1, String dateEnd2, String dateEnd3, String code);
    List<MountainrainsCVO> selectcInfosdx(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String addvnm);
    List<MountainrainsCVO> selectaInfos(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
    List<MountainrainsCVO> selectaInfosdx(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String addvnm);
    List<MountainrainSSVO> selectNoticePage(IPage<MountainrainSSVO> page, MountainrainSSVO mountainrainSSVO);
@@ -69,53 +75,75 @@
    List<MountainrainSSVO> selectNoticeList(String query);
    List<MountainrainSSVO> queryXZ();
    List<Map<String, Object>> queryZY();
    List<MountainrainsDPVO> queryZL();
    List<Map<String, Object>> selectMon(String begintime24,String time,String pid,String timess);
    List<Map<String, Object>> selectMoncs(String begintime24,String time,String timess);
    List<Map<String, Object>> selectMoncss(String begintime24,String time,String timess);
    List<Map<String, Object>> selectMon(String begintime24, String time, String pid, String timess);
    List<Map<String, Object>> selectMoncs(String begintime24, String time, String timess);
    List<Map<String, Object>> selectMoncss(String begintime24, String time, String timess);
    String selectPId();
    String selectFd(String pid);
    String selectGrid(String fd);
    Map<String, Integer> selectThree(String beg0,String end0,
                                     String beg1,String end1,
                                     String beg2,String end2,
                                     String beg3,String end3,
                                     String beg4,String end4,
                                     String beg5,String end5,
                                     String beg6,String end6,
                                     String beg7,String end7,
                                     String fymdh,String s2);
    Map<String, Integer> selectSix(String beg60,String end60,
                                   String beg61,String end61,
                                   String beg62,String end62,
                                   String fymdh,String s2);
    Map<String, Integer> selectThree(String beg0, String end0,
                                     String beg1, String end1,
                                     String beg2, String end2,
                                     String beg3, String end3,
                                     String beg4, String end4,
                                     String beg5, String end5,
                                     String beg6, String end6,
                                     String beg7, String end7,
                                     String fymdh, String s2);
    String selectMax1(String fymdh,String begtime,String endtime,String s2);
    List<Map<String, Object>> selectdYc(String times, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String pid,String timess);
    List<Map<String, Object>> selectdYcs(String time, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
    List<Map<String, Object>> selectdYcss(String time, String dateEnd24,String dateEnd1,String dateEnd3,String dateEnd6,String timess);
    Map<String, Integer> selectAllmax(String beg0,String end0,
                                      String beg1,String end1,
                                      String beg2,String end2,
                                      String beg3,String end3,
                                      String beg4,String end4,
                                      String beg5,String end5,
                                      String beg6,String end6,
                                      String beg7,String end7,
                                      String beg60,String end60,
                                      String beg61,String end61,
                                      String beg62,String end62,
                                      String begtime,String endtime,
                                      String fymdh,String s2);
    Map<String, Integer> selectSix(String beg60, String end60,
                                   String beg61, String end61,
                                   String beg62, String end62,
                                   String fymdh, String s2);
    Integer selectCount(String beginTime,String endTime);
    String selectMax1(String fymdh, String begtime, String endtime, String s2);
    List<Map<String, Object>> selectdYc(String times, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String pid, String timess);
    List<Map<String, Object>> selectdYcs(String time, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
    List<Map<String, Object>> selectdYcss(String time, String dateEnd24, String dateEnd1, String dateEnd3, String dateEnd6, String timess);
    Map<String, Integer> selectAllmax(String beg0, String end0,
                                      String beg1, String end1,
                                      String beg2, String end2,
                                      String beg3, String end3,
                                      String beg4, String end4,
                                      String beg5, String end5,
                                      String beg6, String end6,
                                      String beg7, String end7,
                                      String beg60, String end60,
                                      String beg61, String end61,
                                      String beg62, String end62,
                                      String begtime, String endtime,
                                      String fymdh, String s2);
    Integer selectCount(String beginTime, String endTime);
    String selectCode();
    List<Map<String, Object>> selecMone(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
    List<Map<String, Object>> selectMtwo(String time3,String time,String code);
    void soleInster(String stcd,String soilval);
    List<Map<String, Object>> selecMone(String times, String dateEnd1, String dateEnd2, String dateEnd3, String code);
    List<Map<String, Object>> selectMtwo(String time3, String time, String code);
    List<Map<String, Object>> selectAddvcd(String addvcd);
    void soleInster(String stcd, String soilval);
    void soildel();
    //预报信息新增
    int insertYuc(List<Yucpptn> yucpptnList);
}
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml
@@ -358,9 +358,9 @@
               cs.HNNM,
               cs.LTTD,
               cs.LGTD,
            isnull(a.drp1, 0) as drp1,
            isnull(b.drp2,0) as drp2,
            isnull(c.drp3,0) as drp3
               isnull(a.drp1, 0) as drp1,
               isnull(b.drp2, 0) as drp2,
               isnull(c.drp3, 0) as drp3
        FROM (
                 SELECT SUM(str.DRP) AS drp1,
                        STCD
@@ -426,4 +426,26 @@
        DELETE
        FROM sys_soleval
    </delete>
    <!--通过行政区编码查询站点-->
    <select id="selectAddvcd" resultType="java.util.Map" >
        SELECT STCD
        FROM dbo.ST_STBPRP_B
        WHERE STTP='RR' AND ADDVCD=#{addvcd}
    </select>
    <!-- 批量插入预报信息-->
    <insert id ="insertYuc" parameterType="java.util.List" >
        insert into sys_yucpptn
        (STCD, TM, DRP, INTV)
        values
        <foreach collection ="list" item="reddemCode" index= "index" separator =",">
            (
            #{reddemCode.STCD}, #{reddemCode.TM},
            #{reddemCode.DRP},
            #{reddemCode.INTV}
            )
        </foreach >
    </insert >
</mapper>
src/main/java/org/springblade/modules/mountainrain/service/IMountainrainService.java
@@ -20,6 +20,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.core.mp.support.Query;
import org.springblade.modules.mountainrain.entity.Mountainrain;
import org.springblade.modules.mountainrain.entity.Yucpptn;
import org.springblade.modules.mountainrain.vo.*;
import org.springframework.web.multipart.MultipartFile;
@@ -125,6 +126,7 @@
    List<MountainrainsCVO> Mountains(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
    List<Map<String, Object>> selecMone(String times,String dateEnd1,String dateEnd2,String dateEnd3,String code);
    List<Map<String, Object>> selectMtwo(String time3,String time,String code);
    List<Map<String, Object>> selectAddvcd(String addvcd);
    /**
     *三小时
     * @param gthour 三小时准备转移雨量
@@ -134,4 +136,6 @@
    String selectCode();
    void soleInster(String stcd,String soilval);
    void soildel();
    //预报信息新增
    int insertYuc(List<Yucpptn> yucpptnList);
}
src/main/java/org/springblade/modules/mountainrain/service/impl/MountainrainServiceImpl.java
@@ -30,6 +30,7 @@
import org.springblade.modules.mountain.entity.Mountain;
import org.springblade.modules.mountain.service.IMountainService;
import org.springblade.modules.mountainrain.entity.Mountainrain;
import org.springblade.modules.mountainrain.entity.Yucpptn;
import org.springblade.modules.mountainrain.mapper.MountainrainMapper;
import org.springblade.modules.mountainrain.service.IMountainrainService;
import org.springblade.modules.mountainrain.vo.*;
@@ -393,6 +394,11 @@
    }
    @Override
    public List<Map<String, Object>> selectAddvcd(String addvcd) {
        return baseMapper.selectAddvcd(addvcd);
    }
    @Override
    public int rainthree(int number, Integer gthour) {
        if (number<=gthour){
            return 0;//正常
@@ -419,6 +425,11 @@
        baseMapper.soildel();
    }
    @Override
    public int insertYuc(List<Yucpptn> yucpptnList) {
        return 0;
    }
    /*
     * 计算最大值