tangzy
2021-09-25 0cfec24a4eb3807acc3014b92b7e2ebc7b804f1c
1.山洪
5 files modified
2 files added
255 ■■■■■ 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 30 ●●●●● patch | view | raw | blame | history
src/main/java/org/springblade/modules/mountainrain/mapper/MountainrainMapper.xml 22 ●●●●● 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,6 +19,7 @@
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;
@@ -43,6 +44,7 @@
    /**
     * 判断是否正常
     *
     * @param dateBegin
     * @param dateEnd
     * @return
@@ -50,15 +52,19 @@
    List<MountainrainsVO> selectALl(String dateBegin, String dateEnd);
    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> 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);
@@ -69,16 +75,24 @@
    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);
    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,
@@ -95,9 +109,13 @@
                                   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,
@@ -113,9 +131,19 @@
                                      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);
    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
@@ -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;
    }
    /*
     * 计算最大值