正在生效的预警信息修改 预警消息存库修改

master
徐杰盟 2024-06-13 16:06:46 +08:00
parent dbd3630914
commit 09f410c0c6
6 changed files with 127 additions and 53 deletions

View File

@ -11,6 +11,7 @@ import com.whdc.model.entity.QXWarning;
import com.whdc.model.entity.WarnMsgFB; import com.whdc.model.entity.WarnMsgFB;
import com.whdc.model.vo.*; import com.whdc.model.vo.*;
import com.whdc.service.*; import com.whdc.service.*;
import com.whdc.utils.DateUtils;
import com.whdc.utils.HttpUtil; import com.whdc.utils.HttpUtil;
import com.whdc.utils.ResultJson; import com.whdc.utils.ResultJson;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
@ -23,12 +24,11 @@ import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpStatus; import org.apache.http.HttpStatus;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.annotation.Cacheable;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -69,6 +69,49 @@ public class QXWarnController {
return ResultJson.ok(save); 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<WarningData> data = json.getJSONArray("data").toJavaList(WarningData.class);
List<QXWarningVO> warningList = getList(data, null, null, null);
List<Integer> warnIds = warningList.stream().map(QXWarningVO::getWarnid).collect(Collectors.toList());
List<QXWarning> list = service.lambdaQuery().in(QXWarning::getWarnid, warnIds).list();
Set<Integer> dbWarnSet = list.stream().map(QXWarning::getWarnid).collect(Collectors.toSet());
List<QXWarning> 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 = "气象预警-正在生效的预警信息") @ApiOperation(value = "气象预警-正在生效的预警信息")
@PostMapping("/getGroupWarning") @PostMapping("/getGroupWarning")
@Cacheable(value = THIS_REDIS_KEY, key = "#root.method.name+':'+#dto.toString()") // @Cacheable(value = THIS_REDIS_KEY, key = "#root.method.name+':'+#dto.toString()")
public ResultJson<List<QXWarningVO>> getGroupWarning( public ResultJson<List<QXWarningVO>> getGroupWarning() {
@RequestBody GroupWarningDto dto) {
ApiDto apiDto = new ApiDto(); return ResultJson.ok(service.find());
apiDto.setStartTime(dto.getStartTime());//!!!!!!需要注释掉!!!!!!
apiDto.setEndTime(dto.getEndTime());//!!!!!!需要注释掉!!!!!!
apiDto.setPageNumber(dto.getPageNumber());
apiDto.setPageSize(dto.getPageSize());
ArrayList<ApiDto.Filter> 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<WarningData> data = json.getJSONArray("data").toJavaList(WarningData.class);
List<QXWarningVO> 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);
} }
//
// /**
// * 气象预警-正在生效的预警信息
// *
// * @param dto
// * @return
// */
// @ApiOperation(value = "气象预警-正在生效的预警信息")
// @PostMapping("/getGroupWarning")
//// @Cacheable(value = THIS_REDIS_KEY, key = "#root.method.name+':'+#dto.toString()")
// public ResultJson<List<QXWarningVO>> 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<ApiDto.Filter> 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<WarningData> data = json.getJSONArray("data").toJavaList(WarningData.class);
// List<QXWarningVO> 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);
// }
/** /**
* *
@ -867,7 +924,7 @@ public class QXWarnController {
.append("涉及防汛责任人").append(szdxls).append("人次;") .append("涉及防汛责任人").append(szdxls).append("人次;")
.append("省级平台共发送防洪警示、运维提示短信").append(syw.getSum() + sgxpt.getCNT() + szdxlsAll).append("条,") .append("省级平台共发送防洪警示、运维提示短信").append(syw.getSum() + sgxpt.getCNT() + szdxlsAll).append("条,")
.append("涉及防汛责任人").append(syw.getRs() + sgxpt.getRS() + szdxlsAll).append("人次。") .append("涉及防汛责任人").append(syw.getRs() + sgxpt.getRS() + szdxlsAll).append("人次。")
; ;
vo.setShWarnStr(warnStr.toString()); vo.setShWarnStr(warnStr.toString());
} }
@ -890,7 +947,7 @@ public class QXWarnController {
orangeList.forEach((k, v) -> { orangeList.forEach((k, v) -> {
warnStr.append(getCnnmStr(v)); warnStr.append(getCnnmStr(v));
}); });
warnStr.setCharAt(warnStr.length() -1 , '。'); warnStr.setCharAt(warnStr.length() - 1, '。');
warnStr.append("红色气象预警").append(red.size()).append("次,电话叫应"); warnStr.append("红色气象预警").append(red.size()).append("次,电话叫应");
Map<String, List<QXWarning>> redList = red.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList())); Map<String, List<QXWarning>> redList = red.stream().collect(Collectors.groupingBy(QXWarning::getCtnm, Collectors.toList()));
@ -898,7 +955,7 @@ public class QXWarnController {
redList.forEach((k, v) -> { redList.forEach((k, v) -> {
warnStr.append(getCnnmStr(v)); warnStr.append(getCnnmStr(v));
}); });
warnStr.setCharAt(warnStr.length() -1 , '。'); warnStr.setCharAt(warnStr.length() - 1, '。');
} else if (CollectionUtils.isNotEmpty(orange) && CollectionUtils.isEmpty(red)) { } else if (CollectionUtils.isNotEmpty(orange) && CollectionUtils.isEmpty(red)) {
warnStr.append("我省共产生橙色气象预警").append(orange.size()).append("次,电话叫应"); warnStr.append("我省共产生橙色气象预警").append(orange.size()).append("次,电话叫应");
@ -907,7 +964,7 @@ public class QXWarnController {
orangeList.forEach((k, v) -> { orangeList.forEach((k, v) -> {
warnStr.append(getCnnmStr(v)); warnStr.append(getCnnmStr(v));
}); });
warnStr.setCharAt(warnStr.length() -1 , '。'); warnStr.setCharAt(warnStr.length() - 1, '。');
} else if (CollectionUtils.isNotEmpty(red) && CollectionUtils.isEmpty(orange)) { } else if (CollectionUtils.isNotEmpty(red) && CollectionUtils.isEmpty(orange)) {
warnStr.append("我省共产生红色气象预警").append(red.size()).append("次,电话叫应"); warnStr.append("我省共产生红色气象预警").append(red.size()).append("次,电话叫应");

View File

@ -8,6 +8,7 @@ import java.util.List;
public interface QXWarningMapper extends BaseMapper<QXWarning> { public interface QXWarningMapper extends BaseMapper<QXWarning> {
List<QXWarning> find(@Param("dto")QXWarning dto); List<QXWarning> find(@Param("dto")QXWarning dto);
List<QXWarning> findByMsgIsNull();
List<QXWarning> getWarnAndMsg(@Param("stm") String stm,@Param("etm") String etm); List<QXWarning> getWarnAndMsg(@Param("stm") String stm,@Param("etm") String etm);
} }

View File

@ -6,6 +6,6 @@ import com.whdc.model.entity.QXWarning;
import java.util.List; import java.util.List;
public interface IQXWarningService extends IService<QXWarning> { public interface IQXWarningService extends IService<QXWarning> {
List<QXWarning> find(QXWarning dto); List<QXWarning> find();
List<QXWarning> getWarnAndMsg(String stm,String etm); List<QXWarning> getWarnAndMsg(String stm,String etm);
} }

View File

@ -13,8 +13,8 @@ import java.util.List;
@Service @Service
public class QXWarningServiceImpl extends ServiceImpl<QXWarningMapper, QXWarning> implements IQXWarningService { public class QXWarningServiceImpl extends ServiceImpl<QXWarningMapper, QXWarning> implements IQXWarningService {
@Override @Override
public List<QXWarning> find(QXWarning dto) { public List<QXWarning> find() {
return null; return getBaseMapper().findByMsgIsNull();
} }
@Override @Override

View File

@ -62,6 +62,13 @@ public class DateUtils {
throw new RuntimeException(e); 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<SimpleDateFormat> format){ public static String dateToStr(Date date, ThreadLocal<SimpleDateFormat> format){
return format.get().format(date); return format.get().format(date);

View File

@ -17,4 +17,13 @@
AND Q.WARN_SIGNAL_LEVEL IS NOT NULL AND Q.WARN_SIGNAL_LEVEL IS NOT NULL
AND Q.CNNM IS NOT NULL AND Q.CNNM IS NOT NULL
</select> </select>
<select id="findByMsgIsNull" resultType="com.whdc.model.vo.QXWarningVO">
SELECT
Q.*, 0 STATUS
FROM
FXKH_TXL.QXWARNING Q
LEFT JOIN FXKH_TXL.WARNMSG_FEEDBACK WF ON WF.WARNID = Q.WARNID
WHERE
Q.ID IS NULL
</select>
</mapper> </mapper>