From 09f410c0c66fa63a7217b592b495713956316422 Mon Sep 17 00:00:00 2001 From: xjm Date: Thu, 13 Jun 2024 16:06:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=9C=A8=E7=94=9F=E6=95=88=E7=9A=84?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E4=BF=A1=E6=81=AF=E4=BF=AE=E6=94=B9=20?= =?UTF-8?q?=E9=A2=84=E8=AD=A6=E6=B6=88=E6=81=AF=E5=AD=98=E5=BA=93=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/whdc/controller/QXWarnController.java | 157 ++++++++++++------ .../java/com/whdc/mapper/QXWarningMapper.java | 1 + .../com/whdc/service/IQXWarningService.java | 2 +- .../service/impl/QXWarningServiceImpl.java | 4 +- src/main/java/com/whdc/utils/DateUtils.java | 7 + src/main/resources/mapper/QXWarningMapper.xml | 9 + 6 files changed, 127 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/whdc/controller/QXWarnController.java b/src/main/java/com/whdc/controller/QXWarnController.java index e851ef6..5ee6626 100644 --- a/src/main/java/com/whdc/controller/QXWarnController.java +++ b/src/main/java/com/whdc/controller/QXWarnController.java @@ -11,6 +11,7 @@ import com.whdc.model.entity.QXWarning; import com.whdc.model.entity.WarnMsgFB; import com.whdc.model.vo.*; import com.whdc.service.*; +import com.whdc.utils.DateUtils; import com.whdc.utils.HttpUtil; import com.whdc.utils.ResultJson; import io.swagger.annotations.Api; @@ -23,12 +24,11 @@ import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpStatus; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.Cacheable; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -69,6 +69,49 @@ public class QXWarnController { return ResultJson.ok(save); } + @Scheduled(cron = "0/5 * * * * ?") + public void syncData() { + + ApiDto apiDto = new ApiDto(); + apiDto.setFilter(Lists.newArrayList()); + + String str = HttpUtil.sendPost("http://127.0.0.1:20000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); + JSONObject json = JSON.parseObject(str); + if (json != null && json.getInteger("code") == HttpStatus.SC_OK) { + List data = json.getJSONArray("data").toJavaList(WarningData.class); + List warningList = getList(data, null, null, null); + List warnIds = warningList.stream().map(QXWarningVO::getWarnid).collect(Collectors.toList()); + List list = service.lambdaQuery().in(QXWarning::getWarnid, warnIds).list(); + Set dbWarnSet = list.stream().map(QXWarning::getWarnid).collect(Collectors.toSet()); + + List adds = Lists.newArrayList(); + for (QXWarningVO warningVO : warningList) { + if (!dbWarnSet.contains(warningVO.getWarnid())) { + QXWarning qxwarning = new QXWarning(); + qxwarning.setCreateTime(DateUtils.dateToStrYMDHds(warningVO.getCreateTime())); + qxwarning.setPublishTime(DateUtils.dateToStrYMDHds(warningVO.getPublishTime())); + qxwarning.setStartTime(DateUtils.dateToStrYMDHds(warningVO.getStartTime())); + qxwarning.setEndTime(DateUtils.dateToStrYMDHds(warningVO.getEndTime())); + qxwarning.setWarnSignalType(warningVO.getWarnSignalType()); + qxwarning.setWarnSignalLevel(warningVO.getWarnSignalLevel()); + qxwarning.setPublishUnit(warningVO.getPublishUnit()); + qxwarning.setContent(warningVO.getContent()); + qxwarning.setWarnid(warningVO.getWarnid()); + qxwarning.setCtnm(warningVO.getCtnm()); + qxwarning.setCnnm(warningVO.getCnnm()); + adds.add(qxwarning); + + } + } + + if (CollectionUtils.isNotEmpty(adds)) { + if (this.service.saveBatch(adds)) { + log.info("添加成功 " + adds.size()); + } + } + } + } + /** * 气象预警-正在生效的预警信息 * @@ -77,51 +120,65 @@ public class QXWarnController { */ @ApiOperation(value = "气象预警-正在生效的预警信息") @PostMapping("/getGroupWarning") - @Cacheable(value = THIS_REDIS_KEY, key = "#root.method.name+':'+#dto.toString()") - public ResultJson> getGroupWarning( - @RequestBody GroupWarningDto dto) { +// @Cacheable(value = THIS_REDIS_KEY, key = "#root.method.name+':'+#dto.toString()") + public ResultJson> getGroupWarning() { - ApiDto apiDto = new ApiDto(); - apiDto.setStartTime(dto.getStartTime());//!!!!!!需要注释掉!!!!!! - apiDto.setEndTime(dto.getEndTime());//!!!!!!需要注释掉!!!!!! - apiDto.setPageNumber(dto.getPageNumber()); - apiDto.setPageSize(dto.getPageSize()); - ArrayList filter = Lists.newArrayList(); - String publishUnit = dto.getPublishUnit(); - String warnSignalLevel = dto.getWarnSignalLevel(); - String warnSignalType = dto.getWarnSignalType(); - apiDto.setFilter(filter); - System.out.println(apiDto); - String str = HttpUtil.sendPost("http://223.75.53.141:8000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); -// String str = HttpUtil.sendPost("http://127.0.0.1:20000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); - JSONObject json = JSON.parseObject(str); - if (json != null && json.getInteger("code") == HttpStatus.SC_OK) { - List data = json.getJSONArray("data").toJavaList(WarningData.class); - List warningList = getList(data, publishUnit, warnSignalLevel, warnSignalType); - //将warningList存起来 - for (int i = 0; i < warningList.size(); i++) { - DateTimeFormatter SECOND_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - QXWarningVO warningVO = warningList.get(i); - QXWarning qxwarning = new QXWarning(); - qxwarning.setCreateTime(Date.from(LocalDateTime.parse(warningVO.getCreateTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); - qxwarning.setPublishTime(Date.from(LocalDateTime.parse(warningVO.getPublishTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); - qxwarning.setStartTime(Date.from(LocalDateTime.parse(warningVO.getStartTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); - qxwarning.setEndTime(Date.from(LocalDateTime.parse(warningVO.getEndTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); - qxwarning.setWarnSignalType(warningVO.getWarnSignalType()); - qxwarning.setWarnSignalLevel(warningVO.getWarnSignalLevel()); - qxwarning.setPublishUnit(warningVO.getPublishUnit()); - qxwarning.setContent(warningVO.getContent()); - qxwarning.setWarnid(warningVO.getWarnid()); - qxwarning.setCtnm(warningVO.getCtnm()); - qxwarning.setCnnm(warningVO.getCnnm()); - insert(qxwarning); - } - warningList = warningList.stream().filter(o -> o.getStatus().equals("0")).collect(Collectors.toList()); - return ResultJson.ok(warningList); - } - - return ResultJson.ok(json); + return ResultJson.ok(service.find()); } +// +// /** +// * 气象预警-正在生效的预警信息 +// * +// * @param dto +// * @return +// */ +// @ApiOperation(value = "气象预警-正在生效的预警信息") +// @PostMapping("/getGroupWarning") +//// @Cacheable(value = THIS_REDIS_KEY, key = "#root.method.name+':'+#dto.toString()") +// public ResultJson> getGroupWarning( +// @RequestBody GroupWarningDto dto) { +// +// ApiDto apiDto = new ApiDto(); +// apiDto.setStartTime(dto.getStartTime());//!!!!!!需要注释掉!!!!!! +// apiDto.setEndTime(dto.getEndTime());//!!!!!!需要注释掉!!!!!! +// apiDto.setPageNumber(dto.getPageNumber()); +// apiDto.setPageSize(dto.getPageSize()); +// ArrayList filter = Lists.newArrayList(); +// String publishUnit = dto.getPublishUnit(); +// String warnSignalLevel = dto.getWarnSignalLevel(); +// String warnSignalType = dto.getWarnSignalType(); +// apiDto.setFilter(filter); +// System.out.println(apiDto); +// String str = HttpUtil.sendPost("http://223.75.53.141:8000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); +//// String str = HttpUtil.sendPost("http://127.0.0.1:20000/shzh/met/zyqxfw/api/warning/getGroupWarning", JSON.toJSONString(apiDto)); +// JSONObject json = JSON.parseObject(str); +// if (json != null && json.getInteger("code") == HttpStatus.SC_OK) { +// List data = json.getJSONArray("data").toJavaList(WarningData.class); +// List warningList = getList(data, publishUnit, warnSignalLevel, warnSignalType); +// //将warningList存起来 +// for (int i = 0; i < warningList.size(); i++) { +// DateTimeFormatter SECOND_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); +// QXWarningVO warningVO = warningList.get(i); +// QXWarning qxwarning = new QXWarning(); +// qxwarning.setCreateTime(Date.from(LocalDateTime.parse(warningVO.getCreateTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); +// qxwarning.setPublishTime(Date.from(LocalDateTime.parse(warningVO.getPublishTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); +// qxwarning.setStartTime(Date.from(LocalDateTime.parse(warningVO.getStartTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); +// qxwarning.setEndTime(Date.from(LocalDateTime.parse(warningVO.getEndTime(), SECOND_FORMATTER).atZone(ZoneId.systemDefault()).toInstant())); +// qxwarning.setWarnSignalType(warningVO.getWarnSignalType()); +// qxwarning.setWarnSignalLevel(warningVO.getWarnSignalLevel()); +// qxwarning.setPublishUnit(warningVO.getPublishUnit()); +// qxwarning.setContent(warningVO.getContent()); +// qxwarning.setWarnid(warningVO.getWarnid()); +// qxwarning.setCtnm(warningVO.getCtnm()); +// qxwarning.setCnnm(warningVO.getCnnm()); +// insert(qxwarning); +// } +// warningList = warningList.stream().filter(o -> o.getStatus().equals("0")).collect(Collectors.toList()); +// return ResultJson.ok(warningList); +// } +// +// return ResultJson.ok(json); +// } /** * 获取联系人 @@ -847,7 +904,7 @@ public class QXWarnController { + page.stream().mapToLong(TotalQueryVo.Page::getZdy).sum() + page.stream().mapToLong(TotalQueryVo.Page::getQt).sum() + page.stream().mapToLong(TotalQueryVo.Page::getGb).sum(); - + List outlist = data.getSsdxtj().getOutlist(); long szdxls = outlist.stream().filter(o -> !"420000000000".equals(o.getAdcd())).mapToLong(TotalQueryVo.Outlist::getSum).sum(); @@ -867,7 +924,7 @@ public class QXWarnController { .append("涉及防汛责任人").append(szdxls).append("人次;") .append("省级平台共发送防洪警示、运维提示短信").append(syw.getSum() + sgxpt.getCNT() + szdxlsAll).append("条,") .append("涉及防汛责任人").append(syw.getRs() + sgxpt.getRS() + szdxlsAll).append("人次。") -; + ; vo.setShWarnStr(warnStr.toString()); } @@ -890,7 +947,7 @@ public class QXWarnController { orangeList.forEach((k, v) -> { warnStr.append(getCnnmStr(v)); }); - warnStr.setCharAt(warnStr.length() -1 , '。'); + warnStr.setCharAt(warnStr.length() - 1, '。'); warnStr.append("红色气象预警").append(red.size()).append("次,电话叫应"); Map> redList = red.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList())); @@ -898,7 +955,7 @@ public class QXWarnController { redList.forEach((k, v) -> { warnStr.append(getCnnmStr(v)); }); - warnStr.setCharAt(warnStr.length() -1 , '。'); + warnStr.setCharAt(warnStr.length() - 1, '。'); } else if (CollectionUtils.isNotEmpty(orange) && CollectionUtils.isEmpty(red)) { warnStr.append("我省共产生橙色气象预警").append(orange.size()).append("次,电话叫应"); @@ -907,7 +964,7 @@ public class QXWarnController { orangeList.forEach((k, v) -> { warnStr.append(getCnnmStr(v)); }); - warnStr.setCharAt(warnStr.length() -1 , '。'); + warnStr.setCharAt(warnStr.length() - 1, '。'); } else if (CollectionUtils.isNotEmpty(red) && CollectionUtils.isEmpty(orange)) { warnStr.append("我省共产生红色气象预警").append(red.size()).append("次,电话叫应"); diff --git a/src/main/java/com/whdc/mapper/QXWarningMapper.java b/src/main/java/com/whdc/mapper/QXWarningMapper.java index 0dff75d..0701b1b 100644 --- a/src/main/java/com/whdc/mapper/QXWarningMapper.java +++ b/src/main/java/com/whdc/mapper/QXWarningMapper.java @@ -8,6 +8,7 @@ import java.util.List; public interface QXWarningMapper extends BaseMapper { List find(@Param("dto")QXWarning dto); + List findByMsgIsNull(); List getWarnAndMsg(@Param("stm") String stm,@Param("etm") String etm); } diff --git a/src/main/java/com/whdc/service/IQXWarningService.java b/src/main/java/com/whdc/service/IQXWarningService.java index 3a3d753..ee1494f 100644 --- a/src/main/java/com/whdc/service/IQXWarningService.java +++ b/src/main/java/com/whdc/service/IQXWarningService.java @@ -6,6 +6,6 @@ import com.whdc.model.entity.QXWarning; import java.util.List; public interface IQXWarningService extends IService { - List find(QXWarning dto); + List find(); List getWarnAndMsg(String stm,String etm); } \ No newline at end of file diff --git a/src/main/java/com/whdc/service/impl/QXWarningServiceImpl.java b/src/main/java/com/whdc/service/impl/QXWarningServiceImpl.java index f998e4c..17766e6 100644 --- a/src/main/java/com/whdc/service/impl/QXWarningServiceImpl.java +++ b/src/main/java/com/whdc/service/impl/QXWarningServiceImpl.java @@ -13,8 +13,8 @@ import java.util.List; @Service public class QXWarningServiceImpl extends ServiceImpl implements IQXWarningService { @Override - public List find(QXWarning dto) { - return null; + public List find() { + return getBaseMapper().findByMsgIsNull(); } @Override diff --git a/src/main/java/com/whdc/utils/DateUtils.java b/src/main/java/com/whdc/utils/DateUtils.java index e90db27..2d9c58b 100644 --- a/src/main/java/com/whdc/utils/DateUtils.java +++ b/src/main/java/com/whdc/utils/DateUtils.java @@ -62,6 +62,13 @@ public class DateUtils { throw new RuntimeException(e); } } + public static Date dateToStrYMDHds(String dateString){ + try { + return sdfhms.get().parse(dateString); + } catch (ParseException e) { + throw new RuntimeException(e); + } + } public static String dateToStr(Date date, ThreadLocal format){ return format.get().format(date); diff --git a/src/main/resources/mapper/QXWarningMapper.xml b/src/main/resources/mapper/QXWarningMapper.xml index 2b65189..63b10c4 100644 --- a/src/main/resources/mapper/QXWarningMapper.xml +++ b/src/main/resources/mapper/QXWarningMapper.xml @@ -17,4 +17,13 @@ AND Q.WARN_SIGNAL_LEVEL IS NOT NULL AND Q.CNNM IS NOT NULL + \ No newline at end of file