ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/factory/UPWarnMsgOperationInfoClientFallbackFactory.java
New file @@ -0,0 +1,23 @@ package com.ruoyi.dataInterchange.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.dataInterchange.api.feignClient.UPWarnMsgOperationInfoClient; import com.ruoyi.dataInterchange.api.vo.UPWarnMsgOperationInfoVo; import org.springframework.cloud.openfeign.FallbackFactory; /** * @author zhibing.pu * @Date 2025/6/5 15:59 */ public class UPWarnMsgOperationInfoClientFallbackFactory implements FallbackFactory<UPWarnMsgOperationInfoClient> { @Override public UPWarnMsgOperationInfoClient create(Throwable cause) { return new UPWarnMsgOperationInfoClient() { @Override public R<UPWarnMsgOperationInfoVo> getUPWarnMsgOperationInfo(String infoId) { return R.fail("根据infoId查询报警处置记录失败:" + cause.getMessage()); } }; } } ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/feignClient/UPWarnMsgOperationInfoClient.java
New file @@ -0,0 +1,27 @@ package com.ruoyi.dataInterchange.api.feignClient; import com.ruoyi.common.core.constant.ServiceNameConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.dataInterchange.api.factory.UPWarnMsgOperationInfoClientFallbackFactory; import com.ruoyi.dataInterchange.api.vo.UPWarnMsgOperationInfoVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; /** * @author zhibing.pu * @Date 2025/6/5 15:58 */ @FeignClient(contextId = "UPWarnMsgOperationInfoClient", value = ServiceNameConstants.DATA_INTERCHANGE_SERVICE, fallbackFactory = UPWarnMsgOperationInfoClientFallbackFactory.class) public interface UPWarnMsgOperationInfoClient { /** * 根据infoId查询报警处置记录 * @param infoId * @return */ @PostMapping("/getUPWarnMsgOperationInfo") R<UPWarnMsgOperationInfoVo> getUPWarnMsgOperationInfo(@RequestParam("infoId") String infoId); } ruoyi-api/ruoyi-api-dataInterchange/src/main/java/com/ruoyi/dataInterchange/api/vo/UPWarnMsgOperationInfoVo.java
New file @@ -0,0 +1,70 @@ package com.ruoyi.dataInterchange.api.vo; import lombok.Data; /** * @author zhibing.pu * @Date 2025/6/5 16:01 */ @Data public class UPWarnMsgOperationInfoVo { private String id; /** * 下级平台唯一标识 */ private Integer inferiorPlatformId; /** * 添加时间 */ private Long createTime; /** * 车牌号 */ private String vehicleNo; /** * 车牌颜色 */ private int vehicleColor; /** * 子业务类型标识 */ private int dataType; /** * 后续数据长度 */ private int dataLength; /** * 报警信息ID */ private String infoId; /** * 报警处理结果 * 0x00:处理中 * 0x01:已处理完毕 */ private int result; /** * 报警处理方式 * 0x00: 快速拍照 * 0x01: 语音下发 * 0x02: 不做处理 * 0x03: 其他 */ private int method; /** * 报警处理人姓名长度 */ private int operatorLength; /** * 报警处理人姓名 */ private String operator; /** * 报警处理人所属公司名称长度 */ private int companyLength; /** * 报警处理人所属公司名称 */ private String company; } ruoyi-api/ruoyi-api-dataInterchange/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
@@ -5,4 +5,5 @@ com.ruoyi.dataInterchange.api.factory.UPWarnMsgAdptInfoClientFallbackFactory com.ruoyi.dataInterchange.api.factory.UPExgMsgTakeEwayBillAckClientFallbackFactory com.ruoyi.dataInterchange.api.factory.PlaybackMsgClientFallbackFactory com.ruoyi.dataInterchange.api.factory.HaiKangClientFallbackFactory com.ruoyi.dataInterchange.api.factory.HaiKangClientFallbackFactory com.ruoyi.dataInterchange.api.factory.UPWarnMsgOperationInfoClientFallbackFactory ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/WarnServiceImpl.java
@@ -5,8 +5,10 @@ import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.dataInterchange.api.feignClient.UPWarnMsgAdptInfoClient; import com.ruoyi.dataInterchange.api.feignClient.UPWarnMsgOperationInfoClient; import com.ruoyi.dataInterchange.api.model.enums.WarnType; import com.ruoyi.dataInterchange.api.vo.UPWarnMsgAdptInfoVo; import com.ruoyi.dataInterchange.api.vo.UPWarnMsgOperationInfoVo; import com.ruoyi.system.api.model.Car; import com.ruoyi.system.api.model.Driver; import com.ruoyi.system.api.model.Enterprise; @@ -49,6 +51,9 @@ @Resource private ICarService carService; @Resource private UPWarnMsgOperationInfoClient upWarnMsgOperationInfoClient; /** @@ -180,6 +185,28 @@ warn.setTreatmentState("将来处理"); break; } UPWarnMsgOperationInfoVo upWarnMsgOperationInfoVo = upWarnMsgOperationInfoClient.getUPWarnMsgOperationInfo(warn.getObjectId()).getData(); if(null != upWarnMsgOperationInfoVo){ warn.setTreatmentUser(upWarnMsgOperationInfoVo.getOperator()); warn.setTreatmentTime(LocalDateTime.ofEpochSecond(upWarnMsgOperationInfoVo.getCreateTime(), 0, ZoneOffset.ofHours(8)).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); switch (upWarnMsgOperationInfoVo.getMethod()) { case 0x01: warn.setTreatmentRemark("快速拍照"); break; case 0x02: warn.setTreatmentRemark("语音下发"); break; case 0x03: warn.setTreatmentRemark("不做处理"); break; case 0x04: warn.setTreatmentRemark("其他"); break; default: warn.setTreatmentRemark("其他"); break; } } } if(null == warn.getPicUrl()){ warn.setPicUrl(vo.getPicUrl()); ruoyi-modules/ruoyi-system/src/main/resources/mapping/system/WarnMapper.xml
@@ -142,7 +142,7 @@ count(1) as total from t_warn a left join t_car b on (a.car_id = b.id) where a.car_id is not null and a.treatment_state = '已处理' group by b.operate_type where a.car_id is not null and a.treatment_state = '已处理完毕' group by b.operate_type ) as bb on (ct.name = bb.operate_type) left join ( select @@ -150,7 +150,7 @@ count(1) as total from t_warn a left join t_car b on (a.car_id = b.id) where a.car_id is not null and a.treatment_state = '处理中' group by b.operate_type where a.car_id is not null and a.treatment_state != '已处理完毕' group by b.operate_type ) as cc on (ct.name = cc.operate_type) </select> </mapper> ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/controller/UPWarnMsgOperationInfoController.java
New file @@ -0,0 +1,42 @@ package com.ruoyi.dataInterchange.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.dataInterchange.api.vo.UPWarnMsgOperationInfoVo; import com.ruoyi.dataInterchange.dao.UPWarnMsgOperationInfoDao; import com.ruoyi.dataInterchange.model.UPWarnMsgOperationInfo; import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; /** * @author zhibing.pu * @Date 2025/6/5 15:54 */ @RestController @RequestMapping("/uPWarnMsgOperationInfo") public class UPWarnMsgOperationInfoController { @Resource private UPWarnMsgOperationInfoDao upWarnMsgOperationInfoDao; /** * 根据infoId查询报警处置记录 * @param infoId * @return */ @ResponseBody @PostMapping("/getUPWarnMsgOperationInfo") public R<UPWarnMsgOperationInfoVo> getUPWarnMsgOperationInfo(@RequestParam("infoId") String infoId){ UPWarnMsgOperationInfo upWarnMsgOperationInfo = upWarnMsgOperationInfoDao.findByInfoIdIsOrderByCreateTimeDesc(infoId); if(null != upWarnMsgOperationInfo){ UPWarnMsgOperationInfoVo vo = new UPWarnMsgOperationInfoVo(); BeanUtils.copyProperties(upWarnMsgOperationInfo, vo); return R.ok(vo); } return R.ok(); } } ruoyi-service/ruoyi-dataInterchange/src/main/java/com/ruoyi/dataInterchange/dao/UPWarnMsgOperationInfoDao.java
@@ -10,4 +10,11 @@ */ @Repository public interface UPWarnMsgOperationInfoDao extends ElasticsearchRepository<UPWarnMsgOperationInfo, String> { /** * 根据infoId查询最新一条数据 * @param infoId * @return */ UPWarnMsgOperationInfo findByInfoIdIsOrderByCreateTimeDesc(String infoId); }