package com.ruoyi.dataInterchange.controller; import com.alibaba.fastjson2.JSON; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.dataInterchange.api.vo.UPWarnMsgAdptInfoVo; import com.ruoyi.dataInterchange.dao.UPWarnMsgAdptInfoDao; import com.ruoyi.dataInterchange.dao.UPWarnMsgUrgeTodoAckDao; import com.ruoyi.dataInterchange.model.UPWarnMsgAdptInfo; import com.ruoyi.dataInterchange.model.UPWarnMsgUrgeTodoAck; import com.ruoyi.dataInterchange.util.haikang.model.SubscriptionEvent; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Iterator; import java.util.List; /** * 报警信息控制器 * * @author zhibing.pu * @Date 2025/4/2 10:08 */ @Slf4j @RestController @RequestMapping("/warnMsgAdptInfo") public class UPWarnMsgAdptInfoController { @Resource private UPWarnMsgAdptInfoDao upWarnMsgAdptInfoDao; @Resource private UPWarnMsgUrgeTodoAckDao upWarnMsgUrgeTodoAckDao; /** * 查询大于给定日期的所有报警数据 * * @param createTime * @return */ @PostMapping("/findByCreateTimeAfter") public R> findByCreateTimeAfter(@RequestParam("createTime") Long createTime) { if (-1 == createTime) { Iterator iterator = upWarnMsgAdptInfoDao.findAll().iterator(); List list = new ArrayList<>(); while (iterator.hasNext()) { UPWarnMsgAdptInfo upWarnMsgAdptInfo = iterator.next(); UPWarnMsgAdptInfoVo vo = new UPWarnMsgAdptInfoVo(); BeanUtils.copyProperties(upWarnMsgAdptInfo, vo); UPWarnMsgUrgeTodoAck warnMsgUrgeTodoAck = upWarnMsgUrgeTodoAckDao.findBySupervisionId(upWarnMsgAdptInfo.getInfoId()); if (null != warnMsgUrgeTodoAck) { vo.setResult(warnMsgUrgeTodoAck.getResult()); } list.add(vo); } return R.ok(list); } else { List adptInfoList = upWarnMsgAdptInfoDao.findByCreateTimeAfter(createTime); List list = new ArrayList<>(); for (UPWarnMsgAdptInfo upWarnMsgAdptInfo : adptInfoList) { UPWarnMsgAdptInfoVo vo = new UPWarnMsgAdptInfoVo(); BeanUtils.copyProperties(upWarnMsgAdptInfo, vo); UPWarnMsgUrgeTodoAck warnMsgUrgeTodoAck = upWarnMsgUrgeTodoAckDao.findBySupervisionId(upWarnMsgAdptInfo.getInfoId()); if (null != warnMsgUrgeTodoAck) { vo.setResult(warnMsgUrgeTodoAck.getResult()); } list.add(vo); } return R.ok(list); } } /** * 根据信息id查询报警原始数据 * * @param infoId * @return */ @PostMapping("/findByInfoId") public R findByInfoId(@RequestParam("infoId") Integer infoId) { UPWarnMsgAdptInfo warnMsgAdptInfo = upWarnMsgAdptInfoDao.findByInfoIdIs(infoId); if(null != warnMsgAdptInfo){ UPWarnMsgAdptInfoVo vo = new UPWarnMsgAdptInfoVo(); BeanUtils.copyProperties(warnMsgAdptInfo, vo); return R.ok(vo); } return R.ok(); } /** * 海康威视报警信息推送 * @return */ @ResponseBody @PostMapping("/alarmNotice") public void alarmNotice(@RequestBody SubscriptionEvent event) { log.error("收到危海康的事件回调"); log.error(JSON.toJSONString(event)); } }