Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

martin 3 лет назад
Родитель
Сommit
354ffa65b7

+ 17 - 0
api-common/src/main/java/api/common/pojo/param/model/LidarParam.java

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

+ 38 - 0
api-common/src/main/java/api/common/pojo/po/model/LidarPO.java

@@ -0,0 +1,38 @@
+package api.common.pojo.po.model;
+
+import api.common.pojo.common.CommonPO;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class LidarPO extends CommonPO {
+
+
+    //主键id
+    private String id;
+    //传感器id
+    private String sensorId;
+    //传感器名称
+    private String sensorName;
+    //传感器描述
+    private String description;
+    //盲区距离
+    private BigDecimal nearDistance;;
+    //探测距离
+    private BigDecimal farDistance;
+    //水平现场角
+    private BigDecimal fovH;
+    //垂直现场角
+    private BigDecimal fovV;
+    //线数
+    private int lineNumber;
+    //帧率
+    private BigDecimal frameRate;
+    //出点数
+    private int outputPoints;
+    //输出模式
+    private String outputMode;
+    //是否分享
+    private String share;
+}

+ 37 - 0
api-common/src/main/java/api/common/pojo/vo/model/LidarVO.java

@@ -0,0 +1,37 @@
+package api.common.pojo.vo.model;
+
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class LidarVO {
+
+    //主键id
+    private String id;
+    //传感器id
+    private String sensorId;
+    //传感器名称
+    private String sensorName;
+    //传感器描述
+    private String description;
+    //盲区距离
+    private BigDecimal nearDistance;;
+    //探测距离
+    private BigDecimal farDistance;
+    //水平现场角
+    private BigDecimal fovH;
+    //垂直现场角
+    private BigDecimal fovV;
+    //线数
+    private int lineNumber;
+    //帧率
+    private BigDecimal frameRate;
+    //出点数
+    private int outputPoints;
+    //输出模式
+    private String outputMode;
+    //是否分享
+    private String share;
+}

+ 4 - 0
api-common/src/main/java/api/common/util/JsonUtil.java

@@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.type.TypeFactory;
 
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -52,6 +53,9 @@ public class JsonUtil {
 
     public static <T> List<T> jsonToList(String json, Class<T> tClass) throws JsonProcessingException {
         JavaType javaType = TypeFactory.defaultInstance().constructParametricType(List.class, tClass);
+        if(ObjectUtil.isNull(json)){
+            return new ArrayList<>();
+        }
         List<T> list = new ObjectMapper().readValue(json,javaType);
         return list;
     }

+ 103 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/ctrl/LidarCtrl.java

@@ -0,0 +1,103 @@
+package com.css.simulation.resource.model.ctrl;
+
+
+import api.common.pojo.common.ResponseBodyVO;
+import api.common.pojo.param.model.LidarParam;
+import api.common.pojo.po.model.LidarPO;
+import api.common.pojo.vo.model.LidarVO;
+import api.common.util.ObjectUtil;
+import com.css.simulation.resource.model.service.LidarService;
+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("/lidar")
+public class LidarCtrl {
+
+    @Autowired
+    LidarService lidarService;
+
+    /**
+     * 获取列表
+     */
+    @RequestMapping("/getLidarList")
+    @ResponseBody
+    public ResponseBodyVO<List<LidarVO>> getLidarList(@RequestBody LidarParam lidarParam){
+        ResponseBodyVO<List<LidarVO>> response = new ResponseBodyVO<List<LidarVO>>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(lidarService.getLidarList(lidarParam));
+        return response;
+    }
+
+    /**
+     * 获取私有列表
+     */
+    @RequestMapping("/getMyLidarList")
+    @ResponseBody
+    public ResponseBodyVO<List<LidarVO>> getMyLidarList(@RequestBody LidarParam lidarParam){
+        ResponseBodyVO<List<LidarVO>> response = new ResponseBodyVO<List<LidarVO>>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(lidarService.getMyLidarList(lidarParam));
+        return response;
+    }
+
+    /**
+     * 根据id获取详情
+     */
+    @RequestMapping("/getLidarInfo")
+    @ResponseBody
+    public ResponseBodyVO<LidarVO> getLidarInfo(@RequestBody LidarParam lidarParam){
+        ResponseBodyVO<LidarVO> response = new ResponseBodyVO<LidarVO>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(lidarService.getLidarInfo(lidarParam));
+        return response;
+    }
+
+    /**
+     * 新增、修改、另存为
+     */
+    @RequestMapping("/saveLidar")
+    @ResponseBody
+    public ResponseBodyVO<LidarPO> saveLidar(@RequestBody LidarPO lidarPO){
+        if(ObjectUtil.isNull(lidarPO)){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        ResponseBodyVO<LidarPO> response = new ResponseBodyVO<LidarPO>(ResponseBodyVO.Response.SUCCESS);
+        LidarPO po = lidarService.saveLidar(lidarPO);
+        if(ObjectUtil.isNull(po.getId())){
+            return new ResponseBodyVO(false, 500, "传感器名称重复!",null);
+        }
+        response.setInfo(po);
+        return response;
+    }
+
+    /**
+     * 分享
+     */
+    @RequestMapping("/shareLidar")
+    @ResponseBody
+    public ResponseBodyVO<LidarPO> shareLidar(@RequestBody LidarPO lidarPO){
+        if(ObjectUtil.isNull(lidarPO)){
+            return new ResponseBodyVO(false, 500, "参数必传!",null);
+        }
+        ResponseBodyVO<LidarPO> response = new ResponseBodyVO<LidarPO>(ResponseBodyVO.Response.SUCCESS);
+        response.setInfo(lidarService.shareLidar(lidarPO));
+        return response;
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delLidarById")
+    @ResponseBody
+    public ResponseBodyVO delLidarById(@RequestBody LidarPO lidarPO){
+        int i = lidarService.delLidarById(lidarPO);
+        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/LidarMapper.java

@@ -0,0 +1,28 @@
+package com.css.simulation.resource.model.mapper;
+
+
+import api.common.pojo.param.model.LidarParam;
+import api.common.pojo.po.model.LidarPO;
+import api.common.pojo.vo.model.LidarVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Mapper
+@Repository
+public interface LidarMapper {
+
+    List<LidarVO> getLidarList(LidarParam lidarParam);
+
+    LidarVO getLidarInfo(LidarParam lidarParam);
+
+    List<LidarVO> checkLidarName(LidarPO lidarPO);
+
+    void insert(LidarPO lidarPO);
+
+    void update(LidarPO lidarPO);
+
+    int delLidarById(LidarPO lidarPO);
+
+}

+ 93 - 0
simulation-resource-server/src/main/java/com/css/simulation/resource/model/service/LidarService.java

@@ -0,0 +1,93 @@
+package com.css.simulation.resource.model.service;
+
+import api.common.pojo.constants.DictConstants;
+import api.common.pojo.param.model.LidarParam;
+import api.common.pojo.po.model.LidarPO;
+import api.common.pojo.vo.model.LidarVO;
+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.LidarMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.sql.Timestamp;
+import java.util.List;
+
+@Service
+public class LidarService {
+
+    @Autowired
+    LidarMapper lidarMapper;
+
+    public List<LidarVO> getLidarList(LidarParam lidarParam) {
+        lidarParam.setCreateUserId(AuthUtil.getCurrentUserId());
+        lidarParam.setShare(null);
+        List<LidarVO> list = lidarMapper.getLidarList(lidarParam);
+        return list;
+    }
+
+    public List<LidarVO> getMyLidarList(LidarParam lidarParam) {
+        lidarParam.setCreateUserId(AuthUtil.getCurrentUserId());
+        lidarParam.setShare(DictConstants.NO);
+        List<LidarVO> list = lidarMapper.getLidarList(lidarParam);
+        return list;
+    }
+
+    public LidarVO getLidarInfo(LidarParam lidarParam) {
+        return lidarMapper.getLidarInfo(lidarParam);
+    }
+
+    public LidarPO saveLidar(LidarPO lidarPO) {
+        //常规字段赋值
+        String currentUserId = AuthUtil.getCurrentUserId();
+        Timestamp currentTime = TimeUtil.getNowForMysql();
+        lidarPO.setCreateUserId(currentUserId);
+        lidarPO.setCreateTime(currentTime);
+        lidarPO.setModifyUserId(currentUserId);
+        lidarPO.setModifyTime(currentTime);
+        lidarPO.setIsDeleted(DictConstants.NO);
+        //名称校验
+        List<LidarVO> list = lidarMapper.checkLidarName(lidarPO);
+        if(ObjectUtil.isNotNull(list)){
+            lidarPO.setId(null);
+            return lidarPO;
+        }
+        String id = lidarPO.getId();
+        if(ObjectUtil.isNull(id)){//新增
+            lidarPO.setId(StringUtil.getRandomUUID());
+            lidarPO.setSensorId(StringUtil.getRandomUUID());
+            lidarPO.setShare(DictConstants.NO);//私有
+            lidarMapper.insert(lidarPO);
+        }else{//修改
+            lidarMapper.update(lidarPO);
+        }
+        return lidarPO;
+    }
+
+    public LidarPO shareLidar(LidarPO lidarPO) {
+        //常规字段赋值
+        String currentUserId = AuthUtil.getCurrentUserId();
+        Timestamp currentTime = TimeUtil.getNowForMysql();
+        lidarPO.setCreateUserId(currentUserId);
+        lidarPO.setCreateTime(currentTime);
+        lidarPO.setModifyUserId(currentUserId);
+        lidarPO.setModifyTime(currentTime);
+        lidarPO.setIsDeleted(DictConstants.NO);
+
+        lidarPO.setShare(DictConstants.YES);//转公有
+        lidarPO.setId(StringUtil.getRandomUUID());
+        lidarPO.setSensorId(StringUtil.getRandomUUID());
+        lidarMapper.insert(lidarPO);
+        return lidarPO;
+    }
+
+    public int delLidarById(LidarPO lidarPO) {
+        lidarPO.setIsDeleted(DictConstants.YES);
+        lidarPO.setModifyUserId(AuthUtil.getCurrentUserId());
+        lidarPO.setModifyTime(TimeUtil.getNowForMysql());
+        int i = lidarMapper.delLidarById(lidarPO);
+        return i;
+    }
+}

+ 128 - 0
simulation-resource-server/src/main/resources/mapper/model/LidarMapper.xml

@@ -0,0 +1,128 @@
+<?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.LidarMapper" >
+
+    <resultMap id="LidarVOMap" type="api.common.pojo.vo.model.LidarVO">
+        <id column="ID" property="id" jdbcType="VARCHAR" />
+    </resultMap>
+
+    <select id="getLidarList" parameterType="api.common.pojo.param.model.LidarParam" resultMap="LidarVOMap">
+        select
+        id,
+        sensor_name,
+        description,
+        share
+        from model_sensor_lidar l
+        where l.is_deleted = '0'
+        <if test="sensorName != null and sensorName != ''">
+            and l.sensor_name like CONCAT('%',#{sensorName,jdbcType=VARCHAR},'%')
+        </if>
+        <if test="share != null and share != ''">
+            and l.create_user_id = #{createUserId,jdbcType=VARCHAR}
+            and l.share = '0'
+        </if>
+        <if test="share == null or share == ''">
+            and (l.create_user_id = #{createUserId,jdbcType=VARCHAR} or l.share = '1')
+        </if>
+        order by l.create_time desc
+    </select>
+
+    <select id="getLidarInfo" parameterType="api.common.pojo.param.model.LidarParam" resultMap="LidarVOMap">
+        select
+            id,
+            sensor_id,
+            sensor_name,
+            description,
+            near_distance,
+            far_distance,
+            fov_h,
+            fov_v,
+            line_number,
+            frame_rate,
+            output_points,
+            output_mode,
+            share
+        from model_sensor_lidar l
+        where l.id = #{id,jdbcType=VARCHAR} limit 1
+    </select>
+
+    <select id="checkLidarName" parameterType="api.common.pojo.po.model.LidarPO" resultMap="LidarVOMap">
+        select
+            id
+        from model_sensor_lidar
+        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.LidarPO">
+        insert into model_sensor_lidar(
+            id,
+            sensor_id,
+            sensor_name,
+            description,
+            near_distance,
+            far_distance,
+            fov_h,
+            fov_v,
+            line_number,
+            frame_rate,
+            output_points,
+            output_mode,
+            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},
+            #{fovH,jdbcType=DECIMAL},
+            #{fovV,jdbcType=DECIMAL},
+            #{lineNumber,jdbcType=INTEGER},
+            #{frameRate,jdbcType=DECIMAL},
+            #{outputPoints,jdbcType=INTEGER},
+            #{outputMode,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.LidarPO">
+        update model_sensor_lidar 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 = #{fovH,jdbcType=DECIMAL},
+            fov_v = #{fovV,jdbcType=DECIMAL},
+            line_number = #{lineNumber,jdbcType=INTEGER},
+            frame_rate = #{frameRate,jdbcType=DECIMAL},
+            output_points = #{outputPoints,jdbcType=INTEGER},
+            output_mode = #{outputMode,jdbcType=VARCHAR},
+
+            modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+            modify_user_id = #{modifyUserId,jdbcType=VARCHAR}
+        where id = #{id,jdbcType=VARCHAR}
+    </update>
+
+    <update id="delLidarById" parameterType="api.common.pojo.po.model.LidarPO">
+        update model_sensor_lidar set
+          modify_time = #{modifyTime,jdbcType=TIMESTAMP},
+          modify_user_id = #{modifyUserId,jdbcType=VARCHAR},
+          is_deleted = #{isDeleted,jdbcType=VARCHAR}
+        where id = #{id,jdbcType=VARCHAR}
+    </update>
+</mapper>