|
@@ -19,7 +19,6 @@ import org.slf4j.LoggerFactory;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-
|
|
|
import com.alibaba.fastjson2.JSONArray;
|
|
|
import com.alibaba.fastjson2.JSONObject;
|
|
|
import com.bfms.common.core.redis.RedisCache;
|
|
@@ -29,356 +28,349 @@ import com.bfms.quartz.domain.DMZjs;
|
|
|
import com.bfms.quartz.domain.EarlyWarnInfo;
|
|
|
import com.bfms.system.domain.SysYjdata;
|
|
|
import com.bfms.system.mapper.SysYjdataMapper;
|
|
|
+
|
|
|
/**
|
|
|
* 定时任务调度测试
|
|
|
*
|
|
|
* @author MET
|
|
|
*/
|
|
|
@Component("DMZsourceTask")
|
|
|
-public class DMZTask
|
|
|
-{
|
|
|
+public class DMZTask {
|
|
|
protected final Logger logger = LoggerFactory.getLogger(DMZTask.class);
|
|
|
@Autowired
|
|
|
private RedisCache redisCache;
|
|
|
@Autowired
|
|
|
private SysYjdataMapper sysYjdataMapper;
|
|
|
-
|
|
|
-
|
|
|
- public void getDMZSource(String params)
|
|
|
- {
|
|
|
- logger.info("执行DMZ接口拉取预警信号数据");
|
|
|
- Calendar rightNow0 = Calendar.getInstance();
|
|
|
- Date dt0 = new Date();
|
|
|
+
|
|
|
+ public void getDMZSource(String params) {
|
|
|
+ logger.info("执行DMZ接口拉取预警信号数据");
|
|
|
+ Calendar rightNow0 = Calendar.getInstance();
|
|
|
+ Date dt0 = new Date();
|
|
|
rightNow0.setTime(dt0);
|
|
|
rightNow0.add(Calendar.DATE, -(7));
|
|
|
- Date dt3=rightNow0.getTime();
|
|
|
-
|
|
|
- String startTime = DateUtils.parseDateToStr("yyyy-MM-dd+HH:mm:ss", dt3);
|
|
|
-
|
|
|
- String endTime = DateUtils.parseDateToStr("yyyy-MM-dd+HH:mm:ss", new Date());
|
|
|
-
|
|
|
- //查询宁乡预警信号
|
|
|
- String param = "adminCodes=430182000000&startTime="+startTime+"&endTime="+endTime;
|
|
|
- String sendGet = HttpUtils.sendGet("http://113.247.231.105:40039/data/YJXH/listByTimeRangeForAreaCode", param);
|
|
|
- JSONObject resultObject = JSONObject.parseObject(sendGet);
|
|
|
- if(resultObject.getInteger("code")==200) {
|
|
|
- JSONArray jsonArray = resultObject.getJSONArray("data");
|
|
|
- for(int i=0;i<jsonArray.size();i++) {
|
|
|
- JSONObject object = (JSONObject) jsonArray.get(i);
|
|
|
- SysYjdata query = new SysYjdata();
|
|
|
- query.setEntrytime(object.getDate("dDatetime"));
|
|
|
- query.setSender(object.getString("sendUnit"));
|
|
|
- query.setEventtype(object.getString("earlyId"));
|
|
|
- Integer selectSysYjdataListCount = sysYjdataMapper.selectSysYjdataListCount(query);
|
|
|
- if(selectSysYjdataListCount<=0) {
|
|
|
- SysYjdata sysYJdata = new SysYjdata();
|
|
|
- sysYJdata.setImg("http://www.hn12379.cn/uploadfile/warningImg/"+object.getString("earlyName")+".jpg");
|
|
|
- sysYJdata.setAreadesc(object.getString("sendArea"));
|
|
|
- sysYJdata.setContenttype("分");
|
|
|
- sysYJdata.setSendercode(object.getString("sendAreas"));
|
|
|
- sysYJdata.setEventtype(object.getString("earlyId"));
|
|
|
- sysYJdata.setSender(object.getString("sendUnit"));
|
|
|
- sysYJdata.setEventname(object.getString("earlyName"));
|
|
|
- sysYJdata.setEffective(object.getDate("dDatetime"));
|
|
|
- sysYJdata.setEntrytime(object.getDate("dDatetime"));
|
|
|
- sysYJdata.setWarningsign("预警信号");
|
|
|
- sysYJdata.setGeocode(object.getString("sendAreas"));
|
|
|
- sysYJdata.setSendtime(object.getDate("dDatetime"));
|
|
|
- sysYJdata.setIdentifier(object.getString("sendAreas"));
|
|
|
- sysYJdata.setHeadline(object.getString("earlyTitle"));
|
|
|
- sysYJdata.setDescription(object.getString("earlyContent"));
|
|
|
- sysYJdata.setIseffect(object.getString("earlyPre"));
|
|
|
- sysYJdata.setNum(object.getLong("earlyLevel"));
|
|
|
- sysYJdata.setSeverity("QXYJ");
|
|
|
- sysYjdataMapper.insertSysYjdata(sysYJdata);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- logger.info("预警信号数据拉取完毕");
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取自动站降水信息
|
|
|
- * @param params
|
|
|
- * @throws UnsupportedEncodingException
|
|
|
- */
|
|
|
- public void getDMZStationpointJS(String params) throws UnsupportedEncodingException
|
|
|
- {
|
|
|
-
|
|
|
- // 格式化时间
|
|
|
- DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
- DateTimeFormatter df2 = DateTimeFormatter.ofPattern("yyyyMMddHH");
|
|
|
- DateTimeFormatter df1 = DateTimeFormatter.ofPattern("dd日 HH时");
|
|
|
-
|
|
|
-
|
|
|
- List<Date> LocalDateTimeLis = new ArrayList<Date>();
|
|
|
- JSONObject LT = redisCache.getCacheObject("NingXiang430182:DMZstationpointJS"+":"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+"_LT");
|
|
|
- for(int i=0;i<15;i++) {
|
|
|
- // 获取当天早上8点时间 时间精确到8:00:00
|
|
|
- Calendar cale = Calendar.getInstance(); // 取当前日期。
|
|
|
-
|
|
|
- Calendar calendar = new GregorianCalendar(cale.get(Calendar.YEAR),cale.get(Calendar.MONTH),cale.get(Calendar.DAY_OF_MONTH),i-8,0,0);
|
|
|
- Date startTime = calendar.getTime();
|
|
|
- String startDateTime = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", startTime).replace(" ", "+");
|
|
|
- LocalDateTimeLis.add(startTime);
|
|
|
- Calendar calendar1 = new GregorianCalendar(cale.get(Calendar.YEAR),cale.get(Calendar.MONTH),cale.get(Calendar.DAY_OF_MONTH),i-7,0,0);
|
|
|
- Date endTime = calendar1.getTime();
|
|
|
- String endDateTime = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", endTime).replace(" ", "+");
|
|
|
-
|
|
|
- String DMZstationpointRedis= "NingXiang430182:DMZstationpointJS" +":"+ DateUtils.parseDateToStr("yyyyMMddHH", startTime);
|
|
|
- logger.info("执行DMZ接口获取自动站降水信息 ");
|
|
|
- JSONArray Stationpoint = new JSONArray();
|
|
|
- String param = "adminCodes=430182000000&startTime="+startDateTime+"&endTime="+endDateTime;
|
|
|
- String sendGet = HttpUtils.sendGet( DMZUris.uri+"/data/hourdata/listByTimeRangeForAreaCode", param);
|
|
|
- JSONObject resultObject = JSONObject.parseObject(sendGet);
|
|
|
- if(resultObject.getInteger("code")==200) {
|
|
|
- List<DMZjs> parseArray = JSONArray.parseArray(resultObject.getString("data"), DMZjs.class);
|
|
|
- System.out.println(parseArray.size());
|
|
|
- redisCache.setCacheObject(DMZstationpointRedis,parseArray);
|
|
|
- }
|
|
|
- }
|
|
|
- JSONObject LTobj = new JSONObject();
|
|
|
-
|
|
|
- JSONObject a = new JSONObject();
|
|
|
- a.put("value", 0);
|
|
|
- int max =LocalDateTimeLis.size();
|
|
|
- if(max<=10) {
|
|
|
- a.put("step", 1);
|
|
|
- }else if(max>10 && max<=20) {
|
|
|
- a.put("step", 2);
|
|
|
- }else if(max>20 && max<=30) {
|
|
|
- a.put("step", 3);
|
|
|
- }else if(max>30 && max<=40) {
|
|
|
- a.put("step", 5);
|
|
|
- }else if(max>40 && max<=50) {
|
|
|
- a.put("step", 6);
|
|
|
- }else if(max>50 && max<=60) {
|
|
|
- a.put("step", 7);
|
|
|
- }else if(max>60 && max<=70) {
|
|
|
- a.put("step", 8);
|
|
|
- }else if(max>70 && max<=80) {
|
|
|
- a.put("step", 9);
|
|
|
- }else if(max>80 && max<=90) {
|
|
|
- a.put("step", 10);
|
|
|
- }else if(max>90 && max<=130 ) {
|
|
|
- a.put("step", 13);
|
|
|
- }else if(max>130 && max<=180 ) {
|
|
|
- a.put("step", 18);
|
|
|
- }else {
|
|
|
- a.put("step", 20);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- a.put("max", LocalDateTimeLis.size());
|
|
|
- Map<String, JSONObject> marks = new LinkedMap<String, JSONObject>();
|
|
|
- for(int i=0;i<LocalDateTimeLis.size();i++) {
|
|
|
- JSONObject mark = new JSONObject();
|
|
|
- Date localDateTime = LocalDateTimeLis.get(i);
|
|
|
- mark.put("rediskey", DateUtils.parseDateToStr("yyyyMMddHH", localDateTime));
|
|
|
- Calendar calendar = Calendar.getInstance();
|
|
|
- calendar.setTime(localDateTime);
|
|
|
- calendar.add(Calendar.HOUR,8);
|
|
|
- Date newdate = calendar.getTime();
|
|
|
-
|
|
|
- String startDateTime = DateUtils.parseDateToStr("dd日HH:mm", newdate);
|
|
|
- mark.put("nm", startDateTime);
|
|
|
- mark.put("ts",DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", newdate));
|
|
|
-
|
|
|
- mark.put("des", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm ", newdate)+" 降水");
|
|
|
- marks.put(""+i, mark);
|
|
|
- }
|
|
|
-
|
|
|
- a.put("marks", marks);
|
|
|
- LTobj.put("slider0", a);
|
|
|
- redisCache.setCacheObject(( "NingXiang430182:DMZstationpointJS" +":"+DateUtils.dateTimeNow(DateUtils.YYYYMMDD)+"_LT"), a);
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 数据清理定时任务
|
|
|
- *
|
|
|
- * @param params
|
|
|
- * @throws UnsupportedEncodingException
|
|
|
- */
|
|
|
- public void rmvFiles(String params) throws UnsupportedEncodingException
|
|
|
- {
|
|
|
- System.out.println("文件清理开始执行");
|
|
|
- try {
|
|
|
- //获取前3天目录
|
|
|
- Date d = new Date();
|
|
|
- Calendar c = Calendar.getInstance();
|
|
|
- c.setTime(d);
|
|
|
- c.add(Calendar.DAY_OF_YEAR, -3);
|
|
|
- Date time = c.getTime();
|
|
|
-
|
|
|
- String parseDateToStr = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, time);
|
|
|
- System.out.println("清理文件:"+parseDateToStr);
|
|
|
- String directoryToClean = "/METplatform/datas/nc";
|
|
|
-
|
|
|
- ProcessBuilder processBuilder = new ProcessBuilder();
|
|
|
- processBuilder.command("sh", "-c", "cd " + directoryToClean + " && rm -rf "+parseDateToStr);
|
|
|
-
|
|
|
- try {
|
|
|
- Process process = processBuilder.start();
|
|
|
- int exitCode = process.waitFor();
|
|
|
- if (exitCode == 0) {
|
|
|
- System.out.println("Directory cleaned successfully.");
|
|
|
- } else {
|
|
|
- System.out.println("Failed to clean directory.");
|
|
|
- }
|
|
|
- } catch (IOException | InterruptedException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 启动定时器抓取数据
|
|
|
- * @param params
|
|
|
- * @throws UnsupportedEncodingException
|
|
|
- */
|
|
|
- public void startPythonQu(String params) throws UnsupportedEncodingException
|
|
|
- {
|
|
|
- System.out.println("启动Python脚本执行");
|
|
|
- try {
|
|
|
- ///METplatform/product/MET-Tools/
|
|
|
- // nohup python main.py &
|
|
|
-
|
|
|
- String result = execute(
|
|
|
- "bash", "-c",
|
|
|
- "cd /METplatform/product/MET-Tools",
|
|
|
- "nohup",
|
|
|
- "python",
|
|
|
- "main.py",
|
|
|
- "&"
|
|
|
- );
|
|
|
- ProcessBuilder processBuilder = new ProcessBuilder();
|
|
|
- processBuilder.command("sh", "-c", "cd /METplatform/product/MET-Tools && nohup python main.py &");
|
|
|
-
|
|
|
- try {
|
|
|
- Process process = processBuilder.start();
|
|
|
- int exitCode = process.waitFor();
|
|
|
- if (exitCode == 0) {
|
|
|
- System.out.println("Directory cleaned successfully.");
|
|
|
- } else {
|
|
|
- System.out.println("Failed to clean directory.");
|
|
|
- }
|
|
|
- } catch (IOException | InterruptedException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- private String execute(String... args) throws IOException, InterruptedException {
|
|
|
- ProcessBuilder pb = new ProcessBuilder(args);
|
|
|
- pb.redirectErrorStream(true);
|
|
|
- Process process = pb.start();
|
|
|
- try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));) {
|
|
|
- process.waitFor();
|
|
|
- return reader.lines().collect(Collectors.joining("\n"));
|
|
|
- } finally {
|
|
|
- try {
|
|
|
- process.destroy();
|
|
|
- } catch (Exception ignore) {
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- /**
|
|
|
- * 山洪预警信息
|
|
|
- * @param params
|
|
|
- * @throws UnsupportedEncodingException
|
|
|
- */
|
|
|
- public void getYJXX(String params) throws UnsupportedEncodingException
|
|
|
- {
|
|
|
- String param = "";
|
|
|
- //查询最近一个月的数据
|
|
|
- Calendar cale = Calendar.getInstance(); // 取当前日期。
|
|
|
- Date startTime = cale.getTime();
|
|
|
- String startDateTime = DateUtils.parseDateToStr("yyyy/MM/dd", startTime);
|
|
|
- Calendar calendar = new GregorianCalendar(cale.get(Calendar.YEAR),cale.get(Calendar.MONTH),cale.get(Calendar.DAY_OF_MONTH)-30,0,0,0);
|
|
|
- Date endTime = calendar.getTime();
|
|
|
- String endDateTime = DateUtils.parseDateToStr("yyyy/MM/dd", endTime).replace(" ", "+");
|
|
|
- param+="startDateTime="+startDateTime+"&endDateTime="+endDateTime+"&eventType=11A01,11A51,11D03&geoCode=430182000000";
|
|
|
-
|
|
|
- String sendGet = HttpUtils.sendPost( "http://10.111.127.195/warninfo/getEarlyWarnInfo", param);
|
|
|
- JSONObject resultObject = JSONObject.parseObject(sendGet);
|
|
|
-
|
|
|
- JSONArray datasyjxh = new JSONArray();
|
|
|
- JSONObject RESULTyjxh = new JSONObject();
|
|
|
- RESULTyjxh.put("ts", DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM));
|
|
|
- RESULTyjxh.put("barTitle", "山洪预警信号");
|
|
|
- if(resultObject.getInteger("status")==1) {
|
|
|
- List<EarlyWarnInfo> parseArray = JSONArray.parseArray(resultObject.getString("data"), EarlyWarnInfo.class);
|
|
|
- //System.out.println(parseArray.size());
|
|
|
- for (int i = 0; i < parseArray.size(); i++) {
|
|
|
- JSONObject data = new JSONObject();
|
|
|
- //预警信号内容
|
|
|
- data.put("infoContent", parseArray.get(i).getDESCRIPTION());
|
|
|
- data.put("createTime", parseArray.get(i).getSENDTIME());
|
|
|
- data.put("earlyName", parseArray.get(i).getEFFECTIVE());
|
|
|
- data.put("earlyTitle", parseArray.get(i).getHEADLINE());
|
|
|
- data.put("groupId", parseArray.get(i).getGEOCODE());
|
|
|
- data.put("sendArea", parseArray.get(i).getSENDERCODE());
|
|
|
- data.put("sendUnit", parseArray.get(i).getSENDER());
|
|
|
- data.put("earlyContent", parseArray.get(i).getDESCRIPTION());
|
|
|
- data.put("earlyType", parseArray.get(i).getEVENTNAME());
|
|
|
- data.put("earlyLevel", parseArray.get(i).getSEVERITY_ZH());
|
|
|
- datasyjxh.add(data);
|
|
|
- }
|
|
|
- RESULTyjxh.put("data", datasyjxh);
|
|
|
- redisCache.setCacheObject( "NingXiang430182:warningnewsSH" ,RESULTyjxh);
|
|
|
- }
|
|
|
-
|
|
|
- //地质灾害
|
|
|
- datasyjxh = new JSONArray();
|
|
|
- RESULTyjxh = new JSONObject();
|
|
|
- RESULTyjxh.put("ts", DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM));
|
|
|
- RESULTyjxh.put("barTitle", "地质灾害预警信号");
|
|
|
- param+="startDateTime="+startDateTime+"&endDateTime="+endDateTime+"&eventType=11B37,11D99&geoCode=430182000000";
|
|
|
-
|
|
|
- sendGet = HttpUtils.sendPost( "http://10.111.127.195/warninfo/getEarlyWarnInfo", param);
|
|
|
- resultObject = JSONObject.parseObject(sendGet);
|
|
|
-
|
|
|
- datasyjxh = new JSONArray();
|
|
|
- if(resultObject.getInteger("status")==1) {
|
|
|
- List<EarlyWarnInfo> parseArray = JSONArray.parseArray(resultObject.getString("data"), EarlyWarnInfo.class);
|
|
|
- //System.out.println(parseArray.size());
|
|
|
- for (int i = 0; i < parseArray.size(); i++) {
|
|
|
- JSONObject data = new JSONObject();
|
|
|
- //预警信号内容
|
|
|
- data.put("infoContent", parseArray.get(i).getDESCRIPTION());
|
|
|
- data.put("createTime", parseArray.get(i).getSENDTIME());
|
|
|
- data.put("earlyName", parseArray.get(i).getEFFECTIVE());
|
|
|
- data.put("earlyTitle", parseArray.get(i).getHEADLINE());
|
|
|
- data.put("groupId", parseArray.get(i).getGEOCODE());
|
|
|
- data.put("sendArea", parseArray.get(i).getSENDERCODE());
|
|
|
- data.put("sendUnit", parseArray.get(i).getSENDER());
|
|
|
- data.put("earlyContent", parseArray.get(i).getDESCRIPTION());
|
|
|
- data.put("earlyType", parseArray.get(i).getEVENTNAME());
|
|
|
- data.put("earlyLevel", parseArray.get(i).getSEVERITY_ZH());
|
|
|
- datasyjxh.add(data);
|
|
|
- }
|
|
|
- RESULTyjxh.put("data", datasyjxh);
|
|
|
- redisCache.setCacheObject( "NingXiang430182:warningnewsDZ" ,RESULTyjxh);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
+ Date dt3 = rightNow0.getTime();
|
|
|
+
|
|
|
+ String startTime = DateUtils.parseDateToStr("yyyy-MM-dd+HH:mm:ss", dt3);
|
|
|
+
|
|
|
+ String endTime = DateUtils.parseDateToStr("yyyy-MM-dd+HH:mm:ss", new Date());
|
|
|
+
|
|
|
+ // 查询宁乡预警信号
|
|
|
+ String param = "adminCodes=430182000000&startTime=" + startTime + "&endTime=" + endTime;
|
|
|
+ String sendGet = HttpUtils.sendGet("http://113.247.231.105:40039/data/YJXH/listByTimeRangeForAreaCode", param);
|
|
|
+ JSONObject resultObject = JSONObject.parseObject(sendGet);
|
|
|
+ if (resultObject.getInteger("code") == 200) {
|
|
|
+ JSONArray jsonArray = resultObject.getJSONArray("data");
|
|
|
+ for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
+ JSONObject object = (JSONObject) jsonArray.get(i);
|
|
|
+ SysYjdata query = new SysYjdata();
|
|
|
+ try {
|
|
|
+ query.setEntrytime(object.getDate("dDatetime"));
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ query.setSender(object.getString("sendUnit"));
|
|
|
+ query.setEventtype(object.getString("earlyId"));
|
|
|
+ Integer selectSysYjdataListCount = sysYjdataMapper.selectSysYjdataListCount(query);
|
|
|
+ if (selectSysYjdataListCount <= 0) {
|
|
|
+ SysYjdata sysYJdata = new SysYjdata();
|
|
|
+ sysYJdata.setImg(
|
|
|
+ "http://www.hn12379.cn/uploadfile/warningImg/" + object.getString("earlyName") + ".jpg");
|
|
|
+ sysYJdata.setAreadesc(object.getString("sendArea"));
|
|
|
+ sysYJdata.setContenttype("分");
|
|
|
+ sysYJdata.setSendercode(object.getString("sendAreas"));
|
|
|
+ sysYJdata.setEventtype(object.getString("earlyId"));
|
|
|
+ sysYJdata.setSender(object.getString("sendUnit"));
|
|
|
+ sysYJdata.setEventname(object.getString("earlyName"));
|
|
|
+ sysYJdata.setEffective(object.getDate("dDatetime"));
|
|
|
+ sysYJdata.setEntrytime(object.getDate("dDatetime"));
|
|
|
+ sysYJdata.setWarningsign("预警信号");
|
|
|
+ sysYJdata.setGeocode(object.getString("sendAreas"));
|
|
|
+ sysYJdata.setSendtime(object.getDate("dDatetime"));
|
|
|
+ sysYJdata.setIdentifier(object.getString("sendAreas"));
|
|
|
+ sysYJdata.setHeadline(object.getString("earlyTitle"));
|
|
|
+ sysYJdata.setDescription(object.getString("earlyContent"));
|
|
|
+ sysYJdata.setIseffect(object.getString("earlyPre"));
|
|
|
+ sysYJdata.setNum(object.getLong("earlyLevel"));
|
|
|
+ sysYJdata.setSeverity("QXYJ");
|
|
|
+ sysYjdataMapper.insertSysYjdata(sysYJdata);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ logger.info("预警信号数据拉取完毕");
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取自动站降水信息
|
|
|
+ *
|
|
|
+ * @param params
|
|
|
+ * @throws UnsupportedEncodingException
|
|
|
+ */
|
|
|
+ public void getDMZStationpointJS(String params) throws UnsupportedEncodingException {
|
|
|
+
|
|
|
+ // 格式化时间
|
|
|
+ DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
|
+ DateTimeFormatter df2 = DateTimeFormatter.ofPattern("yyyyMMddHH");
|
|
|
+ DateTimeFormatter df1 = DateTimeFormatter.ofPattern("dd日 HH时");
|
|
|
+
|
|
|
+ List<Date> LocalDateTimeLis = new ArrayList<Date>();
|
|
|
+ JSONObject LT = redisCache.getCacheObject(
|
|
|
+ "NingXiang430182:DMZstationpointJS" + ":" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + "_LT");
|
|
|
+ for (int i = 0; i < 15; i++) {
|
|
|
+ // 获取当天早上8点时间 时间精确到8:00:00
|
|
|
+ Calendar cale = Calendar.getInstance(); // 取当前日期。
|
|
|
+
|
|
|
+ Calendar calendar = new GregorianCalendar(cale.get(Calendar.YEAR), cale.get(Calendar.MONTH),
|
|
|
+ cale.get(Calendar.DAY_OF_MONTH), i - 8, 0, 0);
|
|
|
+ Date startTime = calendar.getTime();
|
|
|
+ String startDateTime = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", startTime).replace(" ", "+");
|
|
|
+ LocalDateTimeLis.add(startTime);
|
|
|
+ Calendar calendar1 = new GregorianCalendar(cale.get(Calendar.YEAR), cale.get(Calendar.MONTH),
|
|
|
+ cale.get(Calendar.DAY_OF_MONTH), i - 7, 0, 0);
|
|
|
+ Date endTime = calendar1.getTime();
|
|
|
+ String endDateTime = DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", endTime).replace(" ", "+");
|
|
|
+
|
|
|
+ String DMZstationpointRedis = "NingXiang430182:DMZstationpointJS" + ":"
|
|
|
+ + DateUtils.parseDateToStr("yyyyMMddHH", startTime);
|
|
|
+ logger.info("执行DMZ接口获取自动站降水信息 ");
|
|
|
+ JSONArray Stationpoint = new JSONArray();
|
|
|
+ String param = "adminCodes=430182000000&startTime=" + startDateTime + "&endTime=" + endDateTime;
|
|
|
+ String sendGet = HttpUtils.sendGet(DMZUris.uri + "/data/hourdata/listByTimeRangeForAreaCode", param);
|
|
|
+ JSONObject resultObject = JSONObject.parseObject(sendGet);
|
|
|
+ if (resultObject.getInteger("code") == 200) {
|
|
|
+ List<DMZjs> parseArray = JSONArray.parseArray(resultObject.getString("data"), DMZjs.class);
|
|
|
+ System.out.println(parseArray.size());
|
|
|
+ redisCache.setCacheObject(DMZstationpointRedis, parseArray);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ JSONObject LTobj = new JSONObject();
|
|
|
+
|
|
|
+ JSONObject a = new JSONObject();
|
|
|
+ a.put("value", 0);
|
|
|
+ int max = LocalDateTimeLis.size();
|
|
|
+ if (max <= 10) {
|
|
|
+ a.put("step", 1);
|
|
|
+ } else if (max > 10 && max <= 20) {
|
|
|
+ a.put("step", 2);
|
|
|
+ } else if (max > 20 && max <= 30) {
|
|
|
+ a.put("step", 3);
|
|
|
+ } else if (max > 30 && max <= 40) {
|
|
|
+ a.put("step", 5);
|
|
|
+ } else if (max > 40 && max <= 50) {
|
|
|
+ a.put("step", 6);
|
|
|
+ } else if (max > 50 && max <= 60) {
|
|
|
+ a.put("step", 7);
|
|
|
+ } else if (max > 60 && max <= 70) {
|
|
|
+ a.put("step", 8);
|
|
|
+ } else if (max > 70 && max <= 80) {
|
|
|
+ a.put("step", 9);
|
|
|
+ } else if (max > 80 && max <= 90) {
|
|
|
+ a.put("step", 10);
|
|
|
+ } else if (max > 90 && max <= 130) {
|
|
|
+ a.put("step", 13);
|
|
|
+ } else if (max > 130 && max <= 180) {
|
|
|
+ a.put("step", 18);
|
|
|
+ } else {
|
|
|
+ a.put("step", 20);
|
|
|
+ }
|
|
|
+
|
|
|
+ a.put("max", LocalDateTimeLis.size());
|
|
|
+ Map<String, JSONObject> marks = new LinkedMap<String, JSONObject>();
|
|
|
+ for (int i = 0; i < LocalDateTimeLis.size(); i++) {
|
|
|
+ JSONObject mark = new JSONObject();
|
|
|
+ Date localDateTime = LocalDateTimeLis.get(i);
|
|
|
+ mark.put("rediskey", DateUtils.parseDateToStr("yyyyMMddHH", localDateTime));
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
+ calendar.setTime(localDateTime);
|
|
|
+ calendar.add(Calendar.HOUR, 8);
|
|
|
+ Date newdate = calendar.getTime();
|
|
|
+
|
|
|
+ String startDateTime = DateUtils.parseDateToStr("dd日HH:mm", newdate);
|
|
|
+ mark.put("nm", startDateTime);
|
|
|
+ mark.put("ts", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", newdate));
|
|
|
+
|
|
|
+ mark.put("des", DateUtils.parseDateToStr("yyyy-MM-dd HH:mm ", newdate) + " 降水");
|
|
|
+ marks.put("" + i, mark);
|
|
|
+ }
|
|
|
+
|
|
|
+ a.put("marks", marks);
|
|
|
+ LTobj.put("slider0", a);
|
|
|
+ redisCache.setCacheObject(
|
|
|
+ ("NingXiang430182:DMZstationpointJS" + ":" + DateUtils.dateTimeNow(DateUtils.YYYYMMDD) + "_LT"), a);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 数据清理定时任务
|
|
|
+ *
|
|
|
+ * @param params
|
|
|
+ * @throws UnsupportedEncodingException
|
|
|
+ */
|
|
|
+ public void rmvFiles(String params) throws UnsupportedEncodingException {
|
|
|
+ System.out.println("文件清理开始执行");
|
|
|
+ try {
|
|
|
+ // 获取前3天目录
|
|
|
+ Date d = new Date();
|
|
|
+ Calendar c = Calendar.getInstance();
|
|
|
+ c.setTime(d);
|
|
|
+ c.add(Calendar.DAY_OF_YEAR, -3);
|
|
|
+ Date time = c.getTime();
|
|
|
+
|
|
|
+ String parseDateToStr = DateUtils.parseDateToStr(DateUtils.YYYYMMDD, time);
|
|
|
+ System.out.println("清理文件:" + parseDateToStr);
|
|
|
+ String directoryToClean = "/METplatform/datas/nc";
|
|
|
+
|
|
|
+ ProcessBuilder processBuilder = new ProcessBuilder();
|
|
|
+ processBuilder.command("sh", "-c", "cd " + directoryToClean + " && rm -rf " + parseDateToStr);
|
|
|
+
|
|
|
+ try {
|
|
|
+ Process process = processBuilder.start();
|
|
|
+ int exitCode = process.waitFor();
|
|
|
+ if (exitCode == 0) {
|
|
|
+ System.out.println("Directory cleaned successfully.");
|
|
|
+ } else {
|
|
|
+ System.out.println("Failed to clean directory.");
|
|
|
+ }
|
|
|
+ } catch (IOException | InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 启动定时器抓取数据
|
|
|
+ *
|
|
|
+ * @param params
|
|
|
+ * @throws UnsupportedEncodingException
|
|
|
+ */
|
|
|
+ public void startPythonQu(String params) throws UnsupportedEncodingException {
|
|
|
+ System.out.println("启动Python脚本执行");
|
|
|
+ try {
|
|
|
+ /// METplatform/product/MET-Tools/
|
|
|
+ // nohup python main.py &
|
|
|
+
|
|
|
+ String result = execute("bash", "-c", "cd /METplatform/product/MET-Tools", "nohup", "python", "main.py",
|
|
|
+ "&");
|
|
|
+ ProcessBuilder processBuilder = new ProcessBuilder();
|
|
|
+ processBuilder.command("sh", "-c", "cd /METplatform/product/MET-Tools && nohup python main.py &");
|
|
|
+
|
|
|
+ try {
|
|
|
+ Process process = processBuilder.start();
|
|
|
+ int exitCode = process.waitFor();
|
|
|
+ if (exitCode == 0) {
|
|
|
+ System.out.println("Directory cleaned successfully.");
|
|
|
+ } else {
|
|
|
+ System.out.println("Failed to clean directory.");
|
|
|
+ }
|
|
|
+ } catch (IOException | InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private String execute(String... args) throws IOException, InterruptedException {
|
|
|
+ ProcessBuilder pb = new ProcessBuilder(args);
|
|
|
+ pb.redirectErrorStream(true);
|
|
|
+ Process process = pb.start();
|
|
|
+ try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));) {
|
|
|
+ process.waitFor();
|
|
|
+ return reader.lines().collect(Collectors.joining("\n"));
|
|
|
+ } finally {
|
|
|
+ try {
|
|
|
+ process.destroy();
|
|
|
+ } catch (Exception ignore) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 山洪预警信息
|
|
|
+ *
|
|
|
+ * @param params
|
|
|
+ * @throws UnsupportedEncodingException
|
|
|
+ */
|
|
|
+ public void getYJXX(String params) throws UnsupportedEncodingException {
|
|
|
+ String param = "";
|
|
|
+ // 查询最近一个月的数据
|
|
|
+ Calendar cale = Calendar.getInstance(); // 取当前日期。
|
|
|
+ Date startTime = cale.getTime();
|
|
|
+ String startDateTime = DateUtils.parseDateToStr("yyyy/MM/dd", startTime);
|
|
|
+ Calendar calendar = new GregorianCalendar(cale.get(Calendar.YEAR), cale.get(Calendar.MONTH),
|
|
|
+ cale.get(Calendar.DAY_OF_MONTH) - 30, 0, 0, 0);
|
|
|
+ Date endTime = calendar.getTime();
|
|
|
+ String endDateTime = DateUtils.parseDateToStr("yyyy/MM/dd", endTime).replace(" ", "+");
|
|
|
+ param += "startDateTime=" + startDateTime + "&endDateTime=" + endDateTime
|
|
|
+ + "&eventType=11A01,11A51,11D03&geoCode=430182000000";
|
|
|
+
|
|
|
+ String sendGet = HttpUtils.sendPost("http://10.111.127.195/warninfo/getEarlyWarnInfo", param);
|
|
|
+ JSONObject resultObject = JSONObject.parseObject(sendGet);
|
|
|
+
|
|
|
+ JSONArray datasyjxh = new JSONArray();
|
|
|
+ JSONObject RESULTyjxh = new JSONObject();
|
|
|
+ RESULTyjxh.put("ts", DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM));
|
|
|
+ RESULTyjxh.put("barTitle", "山洪预警信号");
|
|
|
+ if (resultObject.getInteger("status") == 1) {
|
|
|
+ List<EarlyWarnInfo> parseArray = JSONArray.parseArray(resultObject.getString("data"), EarlyWarnInfo.class);
|
|
|
+ // System.out.println(parseArray.size());
|
|
|
+ for (int i = 0; i < parseArray.size(); i++) {
|
|
|
+ JSONObject data = new JSONObject();
|
|
|
+ // 预警信号内容
|
|
|
+ data.put("infoContent", parseArray.get(i).getDESCRIPTION());
|
|
|
+ data.put("createTime", parseArray.get(i).getSENDTIME());
|
|
|
+ data.put("earlyName", parseArray.get(i).getEFFECTIVE());
|
|
|
+ data.put("earlyTitle", parseArray.get(i).getHEADLINE());
|
|
|
+ data.put("groupId", parseArray.get(i).getGEOCODE());
|
|
|
+ data.put("sendArea", parseArray.get(i).getSENDERCODE());
|
|
|
+ data.put("sendUnit", parseArray.get(i).getSENDER());
|
|
|
+ data.put("earlyContent", parseArray.get(i).getDESCRIPTION());
|
|
|
+ data.put("earlyType", parseArray.get(i).getEVENTNAME());
|
|
|
+ data.put("earlyLevel", parseArray.get(i).getSEVERITY_ZH());
|
|
|
+ datasyjxh.add(data);
|
|
|
+ }
|
|
|
+ RESULTyjxh.put("data", datasyjxh);
|
|
|
+ redisCache.setCacheObject("NingXiang430182:warningnewsSH", RESULTyjxh);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 地质灾害
|
|
|
+ datasyjxh = new JSONArray();
|
|
|
+ RESULTyjxh = new JSONObject();
|
|
|
+ RESULTyjxh.put("ts", DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM));
|
|
|
+ RESULTyjxh.put("barTitle", "地质灾害预警信号");
|
|
|
+ param += "startDateTime=" + startDateTime + "&endDateTime=" + endDateTime
|
|
|
+ + "&eventType=11B37,11D99&geoCode=430182000000";
|
|
|
+
|
|
|
+ sendGet = HttpUtils.sendPost("http://10.111.127.195/warninfo/getEarlyWarnInfo", param);
|
|
|
+ resultObject = JSONObject.parseObject(sendGet);
|
|
|
+
|
|
|
+ datasyjxh = new JSONArray();
|
|
|
+ if (resultObject.getInteger("status") == 1) {
|
|
|
+ List<EarlyWarnInfo> parseArray = JSONArray.parseArray(resultObject.getString("data"), EarlyWarnInfo.class);
|
|
|
+ // System.out.println(parseArray.size());
|
|
|
+ for (int i = 0; i < parseArray.size(); i++) {
|
|
|
+ JSONObject data = new JSONObject();
|
|
|
+ // 预警信号内容
|
|
|
+ data.put("infoContent", parseArray.get(i).getDESCRIPTION());
|
|
|
+ data.put("createTime", parseArray.get(i).getSENDTIME());
|
|
|
+ data.put("earlyName", parseArray.get(i).getEFFECTIVE());
|
|
|
+ data.put("earlyTitle", parseArray.get(i).getHEADLINE());
|
|
|
+ data.put("groupId", parseArray.get(i).getGEOCODE());
|
|
|
+ data.put("sendArea", parseArray.get(i).getSENDERCODE());
|
|
|
+ data.put("sendUnit", parseArray.get(i).getSENDER());
|
|
|
+ data.put("earlyContent", parseArray.get(i).getDESCRIPTION());
|
|
|
+ data.put("earlyType", parseArray.get(i).getEVENTNAME());
|
|
|
+ data.put("earlyLevel", parseArray.get(i).getSEVERITY_ZH());
|
|
|
+ datasyjxh.add(data);
|
|
|
+ }
|
|
|
+ RESULTyjxh.put("data", datasyjxh);
|
|
|
+ redisCache.setCacheObject("NingXiang430182:warningnewsDZ", RESULTyjxh);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|