Bläddra i källkod

传感器-完美传感器

WXF 3 år sedan
förälder
incheckning
052fac28af

+ 1 - 0
api-common/src/main/java/api/common/pojo/constants/DictConstants.java

@@ -11,6 +11,7 @@ public class DictConstants {
     public static final String LEVEL = "level";//级别
     public static final String VEHICLE_TYPE = "vehicleType";//车辆类型
     public static final String DRIVE_TYPE = "driveType";//驱动方式
+    public static final String COORDINATE = "coordinate";//坐标系
     public static final String REGULATION_TYPE = "regulationType"; // 法规类型
     public static final String SELF_DRIVING = "selfDriving"; // 自车驾驶行为
     public static final String TARGET_DRIVING = "targetDriving"; // 目标驾驶行为

+ 16 - 0
api-common/src/main/java/api/common/pojo/param/model/OgtParam.java

@@ -0,0 +1,16 @@
+package api.common.pojo.param.model;
+
+import lombok.Data;
+
+@Data
+public class OgtParam {
+
+    //主键id
+    private String id;
+    //车辆名称
+    private String sensorName;
+    //创建人id
+    private String createUserId;
+    //是否分享
+    private String share;
+}

+ 42 - 0
api-common/src/main/java/api/common/pojo/po/model/OgtPO.java

@@ -0,0 +1,42 @@
+package api.common.pojo.po.model;
+
+import api.common.pojo.common.CommonPO;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class OgtPO extends CommonPO {
+
+    //主键id
+    private String id;
+    //传感器id
+    private String sensorId;
+    //传感器名称
+    private String sensorName;
+    //传感器描述
+    private String description;
+    //盲区距离
+    private BigDecimal nearDistance;;
+    //探测距离
+    private BigDecimal farDistance;
+    //水平现场角左
+    private BigDecimal fovHLeft;
+    //水平现场角右
+    private BigDecimal fovHRight;
+    //垂直现场角顶
+    private BigDecimal fovVTop;
+    //垂直现场角底
+    private BigDecimal fovVBottom;
+    //显示探测锥
+    private String rangeDisplay;
+    //最大目标物个数
+    private int maxObjects;
+    //坐标系
+    private String coordinateSystem;
+    //目标物筛选
+    private String targetFilter;
+    //是否分享
+    private String share;
+
+}

+ 40 - 0
api-common/src/main/java/api/common/pojo/vo/model/OgtVO.java

@@ -0,0 +1,40 @@
+package api.common.pojo.vo.model;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class OgtVO {
+
+    //主键id
+    private String id;
+    //传感器id
+    private String sensorId;
+    //传感器名称
+    private String sensorName;
+    //传感器描述
+    private String description;
+    //盲区距离
+    private BigDecimal nearDistance;;
+    //探测距离
+    private BigDecimal farDistance;
+    //水平现场角左
+    private BigDecimal fovHLeft;
+    //水平现场角右
+    private BigDecimal fovHRight;
+    //垂直现场角顶
+    private BigDecimal fovVTop;
+    //垂直现场角底
+    private BigDecimal fovVBottom;
+    //显示探测锥
+    private String rangeDisplay;
+    //最大目标物个数
+    private int maxObjects;
+    //坐标系
+    private String coordinateSystem;
+    //目标物筛选
+    private String targetFilter;
+    //是否分享
+    private String share;
+}

+ 102 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/ctrl/OgtCtrl.java

@@ -0,0 +1,102 @@
+package com.css.simulation.resource.model.ctrl;
+
+import api.common.pojo.common.ResponseBodyVO;
+import api.common.pojo.param.model.OgtParam;
+import api.common.pojo.po.model.OgtPO;
+import api.common.pojo.vo.model.OgtVO;
+import api.common.util.ObjectUtil;
+import com.css.simulation.resource.model.service.OgtService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+
+@Controller
+@RequestMapping("/ogt")
+public class OgtCtrl {
+
+    @Autowired
+    OgtService ogtService;
+
+    /**
+     * 获取列表
+     */
+    @RequestMapping("/getOgtList")
+    @ResponseBody
+    public ResponseBodyVO<List<OgtVO>> getOgtList(@RequestBody OgtParam ogtParam){
+        ResponseBodyVO<List<OgtVO>> response = new ResponseBodyVO<List<OgtVO>>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(ogtService.getOgtList(ogtParam));
+        return response;
+    }
+
+    /**
+     * 获取私有列表
+     */
+    @RequestMapping("/getMyOgtList")
+    @ResponseBody
+    public ResponseBodyVO<List<OgtVO>> getMyOgtList(@RequestBody OgtParam ogtParam){
+        ResponseBodyVO<List<OgtVO>> response = new ResponseBodyVO<List<OgtVO>>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(ogtService.getMyOgtList(ogtParam));
+        return response;
+    }
+
+    /**
+     * 根据id获取详情
+     */
+    @RequestMapping("/getOgtInfo")
+    @ResponseBody
+    public ResponseBodyVO<OgtVO> getOgtInfo(@RequestBody OgtParam ogtParam){
+        ResponseBodyVO<OgtVO> response = new ResponseBodyVO<OgtVO>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(ogtService.getOgtInfo(ogtParam));
+        return response;
+    }
+
+    /**
+     * 新增、修改、另存为
+     */
+    @RequestMapping("/saveOgt")
+    @ResponseBody
+    public ResponseBodyVO<OgtPO> saveOgt(@RequestBody OgtPO ogtPO){
+        if(ObjectUtil.isNull(ogtPO)){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        ResponseBodyVO<OgtPO> response = new ResponseBodyVO<OgtPO>(ResponseBodyVO.Response.SUCCESS);
+        OgtPO po = ogtService.saveOgt(ogtPO);
+        if(ObjectUtil.isNull(po.getId())){
+            return new ResponseBodyVO(false, 500, "传感器名称重复!",null);
+        }
+        response.setInfo(po);
+        return response;
+    }
+
+    /**
+     * 分享
+     */
+    @RequestMapping("/shareOgt")
+    @ResponseBody
+    public ResponseBodyVO<OgtPO> shareOgt(@RequestBody OgtPO ogtPO){
+        if(ObjectUtil.isNull(ogtPO)){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        ResponseBodyVO<OgtPO> response = new ResponseBodyVO<OgtPO>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(ogtService.shareOgt(ogtPO));
+        return response;
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delOgtById")
+    @ResponseBody
+    public ResponseBodyVO delOgtById(@RequestBody OgtPO ogtPO){
+        int i = ogtService.delOgtById(ogtPO);
+        if(i>0){
+            return new ResponseBodyVO(ResponseBodyVO.Response.SUCCESS);
+        }else{
+            return new ResponseBodyVO(false, 500, "删除失败!",null);
+        }
+    }
+}

+ 28 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/mapper/OgtMapper.java

@@ -0,0 +1,28 @@
+package com.css.simulation.resource.model.mapper;
+
+
+import api.common.pojo.param.model.OgtParam;
+import api.common.pojo.po.model.OgtPO;
+import api.common.pojo.vo.model.OgtVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface OgtMapper {
+
+    List<OgtVO> getOgtList(OgtParam ogtParam);
+
+    OgtVO getOgtInfo(OgtParam ogtParam);
+
+    List<OgtVO> checkOgtName(OgtPO ogtPO);
+
+    void insert(OgtPO ogtPO);
+
+    void update(OgtPO ogtPO);
+
+    int delOgtById(OgtPO ogtPO);
+
+}

+ 2 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/CameraService.java

@@ -58,6 +58,7 @@ public class CameraService {
         String id = cameraPO.getId();
         if(ObjectUtil.isNull(id)){//新增
             cameraPO.setId(StringUtil.getRandomUUID());
+            cameraPO.setSensorId(StringUtil.getRandomUUID());
             cameraPO.setShare(DictConstants.NO);//私有
             cameraMapper.insert(cameraPO);
         }else{//修改
@@ -78,6 +79,7 @@ public class CameraService {
 
         cameraPO.setShare(DictConstants.YES);//转公有
         cameraPO.setId(StringUtil.getRandomUUID());
+        cameraPO.setSensorId(StringUtil.getRandomUUID());
         cameraMapper.insert(cameraPO);
         return cameraPO;
     }

+ 95 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/OgtService.java

@@ -0,0 +1,95 @@
+package com.css.simulation.resource.model.service;
+
+
+import api.common.pojo.constants.DictConstants;
+import api.common.pojo.param.model.OgtParam;
+import api.common.pojo.po.model.OgtPO;
+import api.common.pojo.vo.model.OgtVO;
+import api.common.util.ObjectUtil;
+import api.common.util.StringUtil;
+import api.common.util.TimeUtil;
+import com.css.simulation.resource.common.utils.AuthUtil;
+import com.css.simulation.resource.model.mapper.OgtMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.sql.Timestamp;
+import java.util.List;
+
+@Service
+public class OgtService {
+
+    @Autowired
+    OgtMapper ogtMapper;
+
+
+    public List<OgtVO> getOgtList(OgtParam ogtParam) {
+        ogtParam.setCreateUserId(AuthUtil.getCurrentUserId());
+        ogtParam.setShare(null);
+        List<OgtVO> list = ogtMapper.getOgtList(ogtParam);
+        return list;
+    }
+
+    public List<OgtVO> getMyOgtList(OgtParam ogtParam) {
+        ogtParam.setCreateUserId(AuthUtil.getCurrentUserId());
+        ogtParam.setShare(DictConstants.NO);
+        List<OgtVO> list = ogtMapper.getOgtList(ogtParam);
+        return list;
+    }
+
+    public OgtVO getOgtInfo(OgtParam ogtParam) {
+        return ogtMapper.getOgtInfo(ogtParam);
+    }
+
+    public OgtPO saveOgt(OgtPO ogtPO) {
+        //常规字段赋值
+        String currentUserId = AuthUtil.getCurrentUserId();
+        Timestamp currentTime = TimeUtil.getNowForMysql();
+        ogtPO.setCreateUserId(currentUserId);
+        ogtPO.setCreateTime(currentTime);
+        ogtPO.setModifyUserId(currentUserId);
+        ogtPO.setModifyTime(currentTime);
+        ogtPO.setIsDeleted(DictConstants.NO);
+        //名称校验
+        List<OgtVO> list = ogtMapper.checkOgtName(ogtPO);
+        if(ObjectUtil.isNotNull(list)){
+            ogtPO.setId(null);
+            return ogtPO;
+        }
+        String id = ogtPO.getId();
+        if(ObjectUtil.isNull(id)){//新增
+            ogtPO.setId(StringUtil.getRandomUUID());
+            ogtPO.setSensorId(StringUtil.getRandomUUID());
+            ogtPO.setShare(DictConstants.NO);//私有
+            ogtMapper.insert(ogtPO);
+        }else{//修改
+            ogtMapper.update(ogtPO);
+        }
+        return ogtPO;
+    }
+
+    public OgtPO shareOgt(OgtPO ogtPO) {
+        //常规字段赋值
+        String currentUserId = AuthUtil.getCurrentUserId();
+        Timestamp currentTime = TimeUtil.getNowForMysql();
+        ogtPO.setCreateUserId(currentUserId);
+        ogtPO.setCreateTime(currentTime);
+        ogtPO.setModifyUserId(currentUserId);
+        ogtPO.setModifyTime(currentTime);
+        ogtPO.setIsDeleted(DictConstants.NO);
+
+        ogtPO.setShare(DictConstants.YES);//转公有
+        ogtPO.setId(StringUtil.getRandomUUID());
+        ogtPO.setSensorId(StringUtil.getRandomUUID());
+        ogtMapper.insert(ogtPO);
+        return ogtPO;
+    }
+
+    public int delOgtById(OgtPO ogtPO) {
+        ogtPO.setIsDeleted(DictConstants.YES);
+        ogtPO.setModifyUserId(AuthUtil.getCurrentUserId());
+        ogtPO.setModifyTime(TimeUtil.getNowForMysql());
+        int i = ogtMapper.delOgtById(ogtPO);
+        return i;
+    }
+}

+ 137 - 0
simulation-resource-server/src/main/resources/mapper/model/OgtMapper.xml

@@ -0,0 +1,137 @@
+<?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="com.css.simulation.resource.model.mapper.OgtMapper" >
+
+    <resultMap id="OgtVOMap" type="api.common.pojo.vo.model.OgtVO">
+        <id column="ID" property="id" jdbcType="VARCHAR" />
+    </resultMap>
+
+    <select id="getOgtList" parameterType="api.common.pojo.param.model.OgtParam" resultMap="OgtVOMap">
+        select
+        id,
+        sensor_name,
+        description,
+        share
+        from model_sensor_ogt o
+        where o.is_deleted = '0'
+        <if test="sensorName != null and sensorName != ''">
+            and o.sensor_name like CONCAT('%',#{sensorName,jdbcType=VARCHAR},'%')
+        </if>
+        <if test="share != null and share != ''">
+            and o.create_user_id = #{createUserId,jdbcType=VARCHAR}
+            and o.share = '0'
+        </if>
+        <if test="share == null or share == ''">
+            and (o.create_user_id = #{createUserId,jdbcType=VARCHAR} or o.share = '1')
+        </if>
+        order by o.create_time desc
+    </select>
+
+    <select id="getOgtInfo" parameterType="api.common.pojo.param.model.OgtParam" resultMap="OgtVOMap">
+        select
+            id,
+            sensor_id,
+            sensor_name,
+            description,
+            near_distance,
+            far_distance,
+            fov_h_left,
+            fov_h_right,
+            fov_v_top,
+            fov_v_bottom,
+            range_display,
+            max_objects,
+            coordinate_system,
+            target_filter,
+            share
+        from model_sensor_ogt o
+        where o.id = #{id,jdbcType=VARCHAR} limit 1
+    </select>
+
+    <select id="checkOgtName" parameterType="api.common.pojo.po.model.OgtPO" resultMap="OgtVOMap">
+        select
+            id
+        from model_sensor_ogt
+        where is_deleted = '0' and share = '0'
+          and sensor_name = #{sensorName,jdbcType=VARCHAR}
+          and create_user_id = #{createUserId,jdbcType=VARCHAR}
+          and id &lt;&gt; #{id,jdbcType=VARCHAR}
+    </select>
+
+    <insert id="insert" parameterType="api.common.pojo.po.model.OgtPO">
+        insert into model_sensor_ogt(
+            id,
+            sensor_id,
+            sensor_name,
+            description,
+            near_distance,
+            far_distance,
+            fov_h_left,
+            fov_h_right,
+            fov_v_top,
+            fov_v_bottom,
+            range_display,
+            max_objects,
+            coordinate_system,
+            target_filter,
+            share,
+
+            create_time,
+            modify_time,
+            create_user_id,
+            modify_user_id,
+            is_deleted
+        )
+        values(
+            #{id,jdbcType=VARCHAR},
+            #{sensorId,jdbcType=VARCHAR},
+            #{sensorName,jdbcType=VARCHAR},
+            #{description,jdbcType=VARCHAR},
+            #{nearDistance,jdbcType=DECIMAL},
+            #{farDistance,jdbcType=DECIMAL},
+            #{fovHLeft,jdbcType=DECIMAL},
+            #{fovHRight,jdbcType=DECIMAL},
+            #{fovVTop,jdbcType=DECIMAL},
+            #{fovVBottom,jdbcType=DECIMAL},
+            #{rangeDisplay,jdbcType=VARCHAR},
+            #{maxObjects,jdbcType=INTEGER},
+            #{coordinateSystem,jdbcType=VARCHAR},
+            #{targetFilter,jdbcType=VARCHAR},
+            #{share,jdbcType=VARCHAR},
+            #{createTime,jdbcType=TIMESTAMP},
+            #{modifyTime,jdbcType=TIMESTAMP},
+            #{createUserId,jdbcType=VARCHAR},
+            #{modifyUserId,jdbcType=VARCHAR},
+            #{isDeleted,jdbcType=VARCHAR}
+        )
+    </insert>
+
+    <update id="update" parameterType="api.common.pojo.po.model.OgtPO">
+        update model_sensor_ogt set
+            sensor_id = #{sensorId,jdbcType=VARCHAR},
+            sensor_name = #{sensorName,jdbcType=VARCHAR},
+            description = #{description,jdbcType=VARCHAR},
+            near_distance = #{nearDistance,jdbcType=DECIMAL},
+            far_distance = #{farDistance,jdbcType=DECIMAL},
+            fov_h_left = #{fovHLeft,jdbcType=DECIMAL},
+            fov_h_right = #{fovHRight,jdbcType=DECIMAL},
+            fov_v_top = #{fovVTop,jdbcType=DECIMAL},
+            fov_v_bottom = #{fovVBottom,jdbcType=DECIMAL},
+            range_display = #{rangeDisplay,jdbcType=VARCHAR},
+            max_objects = #{maxObjects,jdbcType=INTEGER},
+            coordinate_system = #{coordinateSystem,jdbcType=VARCHAR},
+            target_filter = #{targetFilter,jdbcType=VARCHAR},
+
+            modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+            modify_user_id = #{modifyUserId,jdbcType=VARCHAR}
+        where id = #{id,jdbcType=VARCHAR}
+    </update>
+
+    <update id="delOgtById" parameterType="api.common.pojo.po.model.OgtPO">
+        update model_sensor_ogt set
+          modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+          modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
+          is_deleted = #{isDeleted,jdbcType=VARCHAR}
+        where id = #{id,jdbcType=VARCHAR}
+    </update>
+</mapper>