Commit 2ddb2e49 authored by duanruiming's avatar duanruiming

路口报警优化,删除多余表的xml文件实体

parent 88f67c9f
......@@ -150,10 +150,10 @@ public class SituationDetectionController extends BaseController {
produces = MediaType.APPLICATION_JSON)
@GetMapping(value = "crossDeviceStatusInfo", produces = MediaType.APPLICATION_JSON)
public JsonViewObject crossDeviceStatusInfo() {
List<CrossDeviceStatusInfoResultVO> list = situationDetectionService.crossDeviceStatusInfo();
List<CrossDeviceStatusInfoOutVO> list = situationDetectionService.crossDeviceStatusInfo();
// 数据库 status 0离线;1在线 faultType 0正常
// 适配前端 status 1在线;2离线;3故障
for (CrossDeviceStatusInfoResultVO item : list) {
for (CrossDeviceStatusInfoOutVO item : list) {
int fualType = item.getFaultType();
int status = item.getStatus();
if (status == 0) {
......
package net.wanji.web.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import net.wanji.web.po.CrossAlarmPO;
import org.springframework.stereotype.Repository;
......@@ -11,7 +10,6 @@ import java.util.List;
* @date 2022/10/27 9:58
*/
@Repository
@DS("webService")
public interface CrossAlarmMapper {
List<CrossAlarmPO> selectStatusNotZero();
}
package net.wanji.web.mapper;
import net.wanji.web.po.CrossInfo;
import net.wanji.web.vo.situationDetection.CrossDeviceStatusInfoResultVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @Description: [路口信息持久层实现]</p>
* @author wanji
* @version 1.0
* Created on 2019年05月06日
*/
@Repository
//@DS("webService")
public interface CrossInfoMapper {
/**
* @description: 根据路口id删除基础信息
* @param crossId 路口id
* @return
* @author wanji
* @date 2020/3/19 16:10
*/
void deleteByCrossId(@Param("crossId") String crossId);
/**
* @description: 根据条件获取路口基础信息列表
* @param crossName 路口名称
* @return
* @author wanji
* @date 2020/3/19 16:10
*/
void listCrossInfo(@Param("crossName") String crossName);
CrossInfo selectById(String crossId);
List<CrossDeviceStatusInfoResultVO> listCrossDeviceStatusInfo();
}
\ No newline at end of file
......@@ -4,6 +4,7 @@ import net.wanji.web.entity.TBaseCrossInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import net.wanji.web.po.CrossInfoPO;
import net.wanji.web.vo.CrossInfoVO;
import net.wanji.web.vo.situationDetection.CrossDeviceStatusInfoOutVO;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -35,4 +36,7 @@ public interface TBaseCrossInfoMapper extends BaseMapper<TBaseCrossInfo> {
List<CrossInfoPO> selectAll(CrossInfoVO crossInfoVO);
Integer countSelectAll(CrossInfoVO crossInfoVO);
List<CrossDeviceStatusInfoOutVO> listCrossDeviceStatusInfo();
}
package net.wanji.web.po;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @version 1.0
* @Description: [路口信息实体类]</ p>
*/
@Data
@ApiModel(value = "路口信息", description = "")
public class CrossInfo {
/**
* 路口编号11位
*/
@ApiModelProperty(name = "路口编号11位", notes = "")
private String id;
/**
* 路口编码;默认是路口编号
*/
@ApiModelProperty(name = "路口编码", notes = "默认是路口编号")
private String code;
/**
* 路口名称
*/
@ApiModelProperty(name = "路口名称", notes = "")
private String name;
/**
* 路口类型:1丁字口;;2十字口;3环岛;4畸形口;5立体交叉口;6铁路道口;7其他
*/
@ApiModelProperty(name = "路口类型:1丁字口;", notes = "2十字口;3环岛;4畸形口;5立体交叉口;6铁路道口;7其他")
private String type;
/**
* 路口级别:
* 1;高-高交叉口
* 10 高-支交叉口
* 11 高-小路交叉口
* 12 国-国交叉口
* 13 国-快交叉口
* 14 国-主交叉口
* 15 国-次交叉口
* 16 国-省交叉口
* 17 国-县交叉口
* 18 国-乡交叉口
* 19 国-其它交叉口
* 2 高-国交叉口
* 20 国-支交叉口
* 21 国-小路交叉口
* 22 快-快交叉口
* 23 快-主交叉口
* 24 快-次交叉口
* 25 快-省交叉口
* 26 快-县交叉口
* 27 快-乡交叉口
* 28 快-其它交叉口
* 29 快-支交叉口
* 3 高-快交叉口
* 30 快-小路交叉口
* 31 主-主交叉口
* 32 主-次交叉口
* 33 主-省交叉口
* 34 主-县交叉口
* 35 主-乡交叉口
* 36 主-其它交叉口
* 37 主-支交叉口
* 38 主-小路交叉口
* 39 次-次交叉口
* 4 高-主交叉口
* 40 次-省交叉口
* 41 次-县交叉口
* 42 次-乡交叉口
* 43 次-其它交叉口
* 44 次-支交叉口
* 45 次-小路交叉口
* 46 省-省交叉口
* 47 省-县交叉口
* 48 省-乡交叉口
* 49 省-其它交叉口
* 5 高-次交叉口
* 50 省-支交叉口
* 51 省-小路交叉口
* 52 县-县交叉口
* 53 县-乡交叉口
* 54 县-其它交叉口
* 55 县-支交叉口
* 56 县-小路交叉口
* 57 乡-乡交叉口
* 58 乡-其它交叉口
* 59 乡-支交叉口
* 6 高-省交叉口
* 60 乡-小路交叉口
* 61 其它-其它交叉口
* 62 其它-支交叉口
* 63 其它-小路交叉口
* 64 支-支交叉口
* 65 支-小路交叉口
* 7 高-县交叉口
* 8 高-乡交叉口
* 9 高-其它交叉口
*/
@ApiModelProperty(name = "路口级别", notes = "")
private Integer level;
/**
* 行政区划代码
*/
@ApiModelProperty(name = "行政区划代码", notes = "")
private String adcode;
/**
* 行政区划名称
*/
@ApiModelProperty(name = "行政区划名称", notes = "")
private String adname;
/**
* 位置信息POINT(经度;维度)
*/
@ApiModelProperty(name = "位置信息POINT(经度", notes = "维度)")
private String location;
/**
* 控制类型:0中心控制;1:单点自适应;2:;感应控制;
*/
@ApiModelProperty(name = "控制类型:0中心控制;1:单点自适应;2:", notes = "感应控制;")
private Integer controlType;
/**
* 是否启动优化:0;否;1 是
*/
@ApiModelProperty(name = "是否启动优化:0", notes = "否;1 是")
private Integer isControl;
/**
* 是否下发:0否;1是
*/
@ApiModelProperty(name = "是否下发:0否;1是", notes = "")
private Integer isStart;
/**
* 是否是信号路口;0否;1是
*/
@ApiModelProperty(name = "是否是信号路口", notes = "0否;1是")
private Integer isSignlight;
/**
* 信号机编号
*/
@ApiModelProperty(name = "信号机编号", notes = "")
private String signalId;
/**
* 信号机类型:1青松;2SCATS;3海信;4海康;5京安;6同安;7励安;8东土;9莱斯
*/
@ApiModelProperty(name = "信号机类型:1青松;2SCATS;3海信;4海康;5京安;6同安;7励安;8东土;9莱斯", notes = "")
private String signalType;
/**
* 信号机路口类型:十字路口、丄字路口、丅字路口等
*/
@ApiModelProperty(name = "信号机路口类型:十字路口、丄字路口、丅字路口等", notes = "")
private Integer signalCrossType;
/**
* 行人二次过街多个逗号隔开
*/
@ApiModelProperty(name = "行人二次过街多个逗号隔开", notes = "")
private String signalSidewalk;
/**
* 路网路口ID
*/
@ApiModelProperty(name = "路网路口ID", notes = "")
private String ridcrossId;
/**
* 实体类型:1、标准路口;3、行人过街路口;4、掉头路口;5、虚拟路口;6、末端路口(真);8、末端路口(假);99、其他
*/
@ApiModelProperty(name = "实体类型:1、标准路口;3、行人过街路口;4、掉头路口;5、虚拟路口;6、末端路口(真);8、末端路口(假);99、其他", notes = "")
private Integer ridcrossType;
/**
* 创建时间
*/
@ApiModelProperty(name = "创建时间", notes = "")
private Date gmtCreate;
/**
* 更新时间
*/
@ApiModelProperty(name = "更新时间", notes = "")
private Date gmtModified;
/**
* 信号机品牌
*/
@ApiModelProperty(name = "信号机品牌", notes = "")
private String signalBrand;
/**
* 路口别名
*/
@ApiModelProperty(name = "路口别名", notes = "")
private String crossName;
}
package net.wanji.web.service;
import net.wanji.web.po.CrossInfo;
import net.wanji.web.vo.signalEvaluate.FlowQueueOutVO;
import java.util.Date;
......
......@@ -31,7 +31,7 @@ public interface SituationDetectionService {
List<GreenwaveCrossOutVO> greenwaveCross(String adCode, String currentTime, Integer id);
List<CrossDeviceStatusInfoResultVO> crossDeviceStatusInfo();
List<CrossDeviceStatusInfoOutVO> crossDeviceStatusInfo();
TBaseCrossInfo selectCrossInfoById(String signalId);
}
......@@ -47,9 +47,6 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
@Autowired
GreenwaveCrossMapper greenwaveCrossMapper;
@Autowired
CrossInfoMapper crossInfoMapper;
@Autowired
TBaseCrossInfoMapper tBaseCrossInfoMapper;
......@@ -136,10 +133,10 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
CrossAlarmOutVO crossAlarmOutVO = new CrossAlarmOutVO();
// 根据路口ID获取路口名称
String crossId = crossAlarmPO.getCrossId();
CrossInfo crossInfo = crossInfoMapper.selectById(crossId);
crossAlarmOutVO.setCrossName(crossInfo.getName());
TBaseCrossInfo tBaseCrossInfo = tBaseCrossInfoMapper.selectByPrimaryKey(crossId);
crossAlarmOutVO.setCrossName(tBaseCrossInfo.getName());
// 从例如POINT(116.29959807 39.95929275)中获取经纬度
String location = crossInfo.getLocation();
String location = tBaseCrossInfo.getLocation();
double[] lonLat = CrossUtil.getLonLat(location);
crossAlarmOutVO.setLongitude(lonLat[0]);
crossAlarmOutVO.setLatitude(lonLat[1]);
......@@ -387,8 +384,8 @@ public class SituationDetectionServiceImpl implements SituationDetectionService
}
@Override
public List<CrossDeviceStatusInfoResultVO> crossDeviceStatusInfo() {
List<CrossDeviceStatusInfoResultVO> results = crossInfoMapper.listCrossDeviceStatusInfo();
public List<CrossDeviceStatusInfoOutVO> crossDeviceStatusInfo() {
List<CrossDeviceStatusInfoOutVO> results = tBaseCrossInfoMapper.listCrossDeviceStatusInfo();
return results;
}
......
......@@ -8,6 +8,7 @@ import net.wanji.web.common.enums.CrossDirEnum;
import net.wanji.web.common.enums.SpecialServiceCrossTurnEnum;
import net.wanji.web.common.exception.CrossRelationException;
import net.wanji.web.common.util.CrossUtil;
import net.wanji.web.entity.TBaseCrossInfo;
import net.wanji.web.mapper.*;
import net.wanji.web.po.*;
import net.wanji.web.service.SpecialServiceService;
......@@ -35,7 +36,7 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
RidInfoMapper ridInfoMapper;
@Autowired
CrossInfoMapper crossInfoMapper;
TBaseCrossInfoMapper tBaseCrossInfoMapper;
@Autowired
CrossDirTurnMapper crossDirTurnMapper;
......@@ -150,14 +151,14 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
Integer sort = specialServiceCrossPO.getSort();
crossListOutVO.setSort(sort);
crossListOutVO.setStatus(specialServiceCrossPO.getStatus());
CrossInfo crossInfo = crossInfoMapper.selectById(specialServiceCrossPO.getCrossId());
TBaseCrossInfo tBaseCrossInfo = tBaseCrossInfoMapper.selectByPrimaryKey(specialServiceCrossPO.getCrossId());
// 经纬度
String location = crossInfo.getLocation();
String location = tBaseCrossInfo.getLocation();
double[] lonLat = CrossUtil.getLonLat(location);
crossListOutVO.setLongitude(lonLat[0]);
crossListOutVO.setLatitude(lonLat[1]);
// 路口名称
crossListOutVO.setName(crossInfo.getName());
crossListOutVO.setName(tBaseCrossInfo.getName());
// 获取控制方向
Integer dirCode = specialServiceCrossPO.getDir();
String dir = CrossDirEnum.getMsgByCode(dirCode);
......@@ -240,20 +241,13 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
String turnCode = CrossPhasePlanTurnTypeEnum.getCodeByMsg(turnStr);
String phaseId = crossPhasePlanMapper.selectPhaseId(dirStr, turnCode);
phaseLockVO.setPhaseid(phaseId);
phaseLockVO.setLocktime(999);
phaseLockVO.setCommand(1);
List<PhaseLockVO> phaseLockVOList = Arrays.asList(phaseLockVO);
enableDisableSpecialServiceOutVO.setPhases(phaseLockVOList);
enableDisableSpecialServiceOutVO.setCommand(1);
String crossId = specialServiceCrossPO.getCrossId();
CrossInfo crossInfo = crossInfoMapper.selectById(crossId);
String signalId = crossInfo.getSignalId();
String signalType = crossInfo.getSignalType();
enableDisableSpecialServiceOutVO.setSignalid(signalId);
enableDisableSpecialServiceOutVO.setSignaltype(signalType);
// 发送请求
String url = "http://10.100.1.87/utc/" + signalId + "/lockphase";
String url = "http://10.100.1.87/utc/controlCommand/lockControl";
String s = gson.toJson(enableDisableSpecialServiceOutVO);
String response = HttpUtil.post(url, s);
EnableDisableSpecialServiceResponseVO enableDisableSpecialServiceResponseVO =
......@@ -286,20 +280,14 @@ public class SpecialServiceServiceImpl implements SpecialServiceService {
String turnCode = CrossPhasePlanTurnTypeEnum.getCodeByMsg(turnStr);
String phaseId = crossPhasePlanMapper.selectPhaseId(dirStr, turnCode);
phaseLockVO.setPhaseid(phaseId);
phaseLockVO.setLocktime(0);
phaseLockVO.setCommand(0);
List<PhaseLockVO> phaseLockVOList = Arrays.asList(phaseLockVO);
enableDisableSpecialServiceOutVO.setPhases(phaseLockVOList);
enableDisableSpecialServiceOutVO.setCommand(0);
String crossId = specialServiceCrossPO.getCrossId();
CrossInfo crossInfo = crossInfoMapper.selectById(crossId);
String signalId = crossInfo.getSignalId();
String signalType = crossInfo.getSignalType();
enableDisableSpecialServiceOutVO.setSignalid(signalId);
enableDisableSpecialServiceOutVO.setSignaltype(signalType);
// 发送请求
String url = "http://10.100.1.87/utc/" + signalId + "/lockphase";
String url = "http://10.100.1.87/utc/controlCommand/lockControl";
String s = gson.toJson(enableDisableSpecialServiceOutVO);
String response = HttpUtil.post(url, s);
EnableDisableSpecialServiceResponseVO enableDisableSpecialServiceResponseVO =
......
......@@ -9,8 +9,8 @@ import lombok.Data;
* @date 2022/12/29 12:58
*/
@Data
@ApiModel(value = "CrossDeviceStatusInfoResultVO", description = "查询路口设备状态返回参数")
public class CrossDeviceStatusInfoResultVO {
@ApiModel(value = "CrossDeviceStatusInfoOutVO", description = "查询路口设备状态返回参数")
public class CrossDeviceStatusInfoOutVO {
@ApiModelProperty(value = "路口编号")
private String crossId;
......
......@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import java.util.List;
/**
......@@ -21,4 +23,9 @@ public class EnableDisableSpecialServiceOutVO {
@ApiModelProperty(name = "信号机类型 QS/SCATS/HS/HK/DT",notes = "")
String signaltype;
@ApiModelProperty(value = "1是;0否")
@Max(value = 1, message = "控制类型:1是;0否")
@Min(value = 0, message = "控制类型:1是;0否")
private Integer command;
}
......@@ -11,12 +11,6 @@ import lombok.Data;
@Data
@ApiModel(value = "PhaseLockVO", description = "相位锁定参数")
public class PhaseLockVO {
@ApiModelProperty(name = "1 锁定;0 取消",notes = "")
private Integer command ;
@ApiModelProperty(name = "相位锁定时间,999 永久锁定,必须手动取消;0~999,自动取消",notes = "")
private Integer locktime ;
@ApiModelProperty(name = "相位编号",notes = "")
private String phaseid ;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="net.wanji.web.mapper.CrossInfoMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="net.wanji.web.po.CrossInfo">
<result property="id" column="ID"/>
<result property="code" column="CODE"/>
<result property="name" column="NAME"/>
<result property="type" column="TYPE"/>
<result property="level" column="level"/>
<result property="adcode" column="ADCODE"/>
<result property="adname" column="ADNAME"/>
<result property="location" column="LOCATION"/>
<result property="controlType" column="control_type"/>
<result property="isControl" column="is_control"/>
<result property="isStart" column="is_start"/>
<result property="isSignlight" column="is_signlight"/>
<result property="signalId" column="signal_id"/>
<result property="signalType" column="signal_type"/>
<result property="signalCrossType" column="signal_cross_type"/>
<result property="signalSidewalk" column="signal_sidewalk"/>
<result property="ridcrossId" column="ridcross_id"/>
<result property="ridcrossType" column="ridcross_type"/>
<result property="gmtCreate" column="gmt_create"/>
<result property="gmtModified" column="gmt_modified"/>
<result property="signalBrand" column="signal_brand"/>
<result property="crossName" column="cross_name"/>
</resultMap>
<delete id="deleteByCrossId">
delete from t_base_cross_info where 1=1
<if test="id != null and id !='' ">
and id = #{id}
</if>
</delete>
<select id="listCrossInfo" resultMap="BaseResultMap">
SELECT
id,
name,
type,
level,
ad_code,
location,
is_signal,
is_start,
is_send
FROM
t_base_cross_info
WHERE 1=1
<if test="crossName != null and crossName != ''">
AND name = #{crossName}
</if>
GROUP BY name
</select>
<select id="selectById" resultMap="BaseResultMap">
select
ID,CODE,NAME,TYPE,level,ADCODE,ADNAME,LOCATION,control_type,is_control,is_start,is_signlight,signal_id,signal_type,signal_cross_type,signal_sidewalk,ridcross_id,ridcross_type,gmt_create,gmt_modified,signal_brand,cross_name
from t_base_cross_info
where ID = #{id}
</select>
<resultMap id="listCrossDeviceStatusInfoMap" type="net.wanji.web.vo.situationDetection.CrossDeviceStatusInfoResultVO">
<result property="crossId" column="id"/>
<result property="crossName" column="name"/>
<result property="location" column="location"/>
<result property="status" column="status"/>
<result property="faultType" column="fault_type"/>
</resultMap>
<select id="listCrossDeviceStatusInfo" resultMap="listCrossDeviceStatusInfoMap">
select c.id, c.name, c.location, d.status, d.fault_type from t_base_cross_info c
left join t_device_status d on c.id = d.code
where c.is_signal = 1 and d.type = 1
</select>
</mapper>
......@@ -28,18 +28,14 @@
<result column="gmt_create" property="gmtCreate" jdbcType="TIMESTAMP"/>
<result column="gmt_modified" property="gmtModified" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="baseColumn">
id, name, type, level, area_code, location, is_signal, is_start, is_send, gmt_create, gmt_modified
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String">
select id,
name,
type,
level,
area_code,
location,
is_signal,
is_start,
is_send,
gmt_create,
gmt_modified
select
<include refid="baseColumn"/>
from t_base_cross_info
where id = #{id,jdbcType=CHAR}
</select>
......@@ -236,4 +232,20 @@
</if>
</where>
</select>
<resultMap id="listCrossDeviceStatusInfoMap"
type="net.wanji.web.vo.situationDetection.CrossDeviceStatusInfoOutVO">
<result property="crossId" column="id"/>
<result property="crossName" column="name"/>
<result property="location" column="location"/>
<result property="status" column="status"/>
<result property="faultType" column="fault_type"/>
</resultMap>
<select id="listCrossDeviceStatusInfo" resultMap="listCrossDeviceStatusInfoMap">
select c.id, c.name, c.location, d.status, d.fault_type
from t_base_cross_info c
left join t_device_status d on c.id = d.code
where c.is_signal = 1
and d.type = 1
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment