From 74fd9f80be6b5a6edddf6631d0829d51590d1e56 Mon Sep 17 00:00:00 2001 From: wuzeyu <1223318623@qq.com> Date: 星期五, 16 八月 2024 14:42:47 +0800 Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV --- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java | 52 ++ pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java | 121 ++++ pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml | 88 +++ pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java | 8 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java | 31 + pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java | 304 +++++++++-- pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml | 463 ++++++++++------- pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java | 34 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java | 57 ++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java | 39 + pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java | 31 + pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java | 75 +++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java | 28 + pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java | 22 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml | 103 ++++ pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java | 34 + 16 files changed, 1,229 insertions(+), 261 deletions(-) diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java index 6c4af43..b7a48f5 100644 --- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaBlockMapper.java @@ -2,6 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dy.pipIrrGlobal.pojoBa.BaBlock; +import com.dy.pipIrrGlobal.voBa.VoBlock; +import com.dy.pipIrrGlobal.voBa.VoMapCoordinates; +import com.dy.pipIrrGlobal.voBa.VoMapGraph; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -40,6 +43,34 @@ List<BaBlock> selectSome(Map<?, ?> params) ; /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯璁板綍鏁伴噺 + * @param params + * @return + */ + Long getBlocksCount(Map<?, ?> params) ; + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯 + * @param params + * @return + */ + List<VoBlock> getBlocks(Map<?, ?> params) ; + + /** + * 鏍规嵁鐗囧尯ID鑾峰彇鍦板浘鍥惧舰鍒楄〃 + * @param blockId + * @return + */ + List<VoMapGraph> gertMapGraphsByBlockId(Long blockId); + + /** + * 鏍规嵁鍦板浘鍥惧舰ID鑾峰彇鍦板浘鍥惧舰鍧愭爣鍒楄〃 + * @param graphId + * @return + */ + List<VoMapCoordinates> getCoordinatesByGraphId(Long graphId); + + /** * insert record to table * @param record the record * @return insert count diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java new file mode 100644 index 0000000..3cef43f --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapCoordinatesMapper.java @@ -0,0 +1,34 @@ +package com.dy.pipIrrGlobal.daoBa; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author ZhuBaoMin + * @date 2024-08-13 11:33 + * @LastEditTime 2024-08-13 11:33 + * @Description + */ + +@Mapper +public interface BaMapCoordinatesMapper extends BaseMapper<BaMapCoordinates> { + int deleteByPrimaryKey(Long id); + + int insert(BaMapCoordinates record); + + int insertSelective(BaMapCoordinates record); + + BaMapCoordinates selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(BaMapCoordinates record); + + int updateByPrimaryKey(BaMapCoordinates record); + + /** + * 鏍规嵁鐗囧尯ID鍒犻櫎璇ョ墖鍖轰笅鐨勫潗鏍囩偣 + * @param blockId + * @return + */ + int deleteByBlockId(Long blockId); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java new file mode 100644 index 0000000..521f975 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaMapGraphMapper.java @@ -0,0 +1,34 @@ +package com.dy.pipIrrGlobal.daoBa; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dy.pipIrrGlobal.pojoBa.BaMapGraph; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author ZhuBaoMin + * @date 2024-08-13 11:26 + * @LastEditTime 2024-08-13 11:26 + * @Description + */ + +@Mapper +public interface BaMapGraphMapper extends BaseMapper<BaMapGraph>{ + int deleteByPrimaryKey(Long id); + + int insert(BaMapGraph record); + + int insertSelective(BaMapGraph record); + + BaMapGraph selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(BaMapGraph record); + + int updateByPrimaryKey(BaMapGraph record); + + /** + * 鏍规嵁鐗囧尯ID鍒犻櫎鍦板浘鍥惧舰 + * @param blockId + * @return + */ + int deleteByBlockId(Long blockId); +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java new file mode 100644 index 0000000..1ba9b76 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapCoordinates.java @@ -0,0 +1,57 @@ +package com.dy.pipIrrGlobal.pojoBa; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import jakarta.validation.constraints.NotNull; +import lombok.*; + +import java.math.BigDecimal; + +/** + * @author ZhuBaoMin + * @date 2024-08-13 11:33 + * @LastEditTime 2024-08-13 11:33 + * @Description + */ +/** + * 鍦板浘鍥惧舰鍧愭爣 + */ + +@TableName(value="ba_map_coordinates", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class BaMapCoordinates implements BaseEntity { + public static final long serialVersionUID = 202408131135001L; + + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + private Long id; + + /** + * 鍥惧舰ID + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @NotNull(message = "鎵�灞炲浘褰笉鑳戒负绌�") + private Long graphId; + + /** + * 绾害 + */ + private BigDecimal lat; + + /** + * 缁忓害 + */ + private BigDecimal lng; + +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java new file mode 100644 index 0000000..239bf99 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoBa/BaMapGraph.java @@ -0,0 +1,52 @@ +package com.dy.pipIrrGlobal.pojoBa; + +/** + * @author ZhuBaoMin + * @date 2024-08-13 11:26 + * @LastEditTime 2024-08-13 11:26 + * @Description + */ + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.dy.common.po.BaseEntity; +import jakarta.validation.constraints.NotNull; +import lombok.*; + +/** + * 鍦板浘鍥惧舰琛� + */ + +@TableName(value="ba_map_graph", autoResultMap = true) +@Data +@Builder +@ToString +@NoArgsConstructor +@AllArgsConstructor +public class BaMapGraph implements BaseEntity { + public static final long serialVersionUID = 202408131130001L; + + /** + * 涓婚敭 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @TableId(type = IdType.INPUT) + private Long id; + + /** + * 鐗囧尯ID + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + @NotNull(message = "鎵�灞炵墖鍖轰笉鑳戒负绌�") + private Long blockId; + + /** + * 鍥惧舰绫诲瀷;1-CircleMarker 锛�2-Polygon 锛�3-Polyline + */ + @NotNull(message = "鍥惧舰绫诲瀷涓嶈兘涓虹┖") + private Byte graphType; + +} \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java new file mode 100644 index 0000000..e26ffa2 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoBlock.java @@ -0,0 +1,39 @@ +package com.dy.pipIrrGlobal.voBa; + +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-08-14 16:05 + * @LastEditTime 2024-08-14 16:05 + * @Description 鐗囧尯瑙嗗浘瀵硅薄 + */ + +@Data +@JsonPropertyOrder({"id","name","header","phone","area","color","remark","deleted"}) +public class VoBlock { + private static final long serialVersionUID = 202408141606001L; + + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private Long id; + + private String name; + + private String header; + + private String phone; + + private Integer area; + + private String color; + + private String remark; + + private Integer deleted; + + private JSONArray graphs; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java new file mode 100644 index 0000000..bc4dd1d --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapCoordinates.java @@ -0,0 +1,31 @@ +package com.dy.pipIrrGlobal.voBa; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @author ZhuBaoMin + * @date 2024-08-14 19:37 + * @LastEditTime 2024-08-14 19:37 + * @Description 鍦板浘鍥惧舰鍧愭爣瑙嗗浘瀵硅薄 + */ + +@Data +public class VoMapCoordinates { + private static final long serialVersionUID = 202408141938001L; + + /** + * 绾害 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private BigDecimal lat; + + /** + * 缁忓害 + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private BigDecimal lng; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java new file mode 100644 index 0000000..aab00e5 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voBa/VoMapGraph.java @@ -0,0 +1,28 @@ +package com.dy.pipIrrGlobal.voBa; + +import com.alibaba.fastjson2.annotation.JSONField; +import com.alibaba.fastjson2.writer.ObjectWriterImplToString; +import lombok.Data; + +/** + * @author ZhuBaoMin + * @date 2024-08-14 16:56 + * @LastEditTime 2024-08-14 16:56 + * @Description 鍦板浘鍥惧舰瑙嗗浘瀵硅薄 + */ + +@Data +public class VoMapGraph { + private static final long serialVersionUID = 202408141657001L; + + /** + * 鍦板浘鍥惧舰ID + */ + @JSONField(serializeUsing= ObjectWriterImplToString.class) + private Long graphId; + + /** + * 鍦板浘鍥惧舰绫诲瀷 + */ + private String type; +} diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml index f2a1069..ae58fd7 100644 --- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaBlockMapper.xml @@ -1,207 +1,282 @@ <?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.dy.pipIrrGlobal.daoBa.BaBlockMapper"> - <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaBlock"> - <!--@mbg.generated--> - <!--@Table ba_block--> - <id column="id" jdbcType="BIGINT" property="id" /> - <result column="name" jdbcType="VARCHAR" property="name" /> - <result column="header" jdbcType="VARCHAR" property="header" /> - <result column="phone" jdbcType="VARCHAR" property="phone" /> - <result column="area" jdbcType="INTEGER" property="area" /> - <result column="color" jdbcType="VARCHAR" property="color" /> - <result column="remark" jdbcType="VARCHAR" property="remark" /> - <result property="deleted" column="deleted" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" javaType="com.dy.common.mybatis.envm.Deleted"/> - </resultMap> - <sql id="Base_Column_List"> - <!--@mbg.generated--> - id, `name`, `header`, phone, area, color, remark, deleted - </sql> - <sql id="part_Column_List"> - <!--@mbg.generated--> - id, `name` - </sql> - <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> - <!--@mbg.generated--> - select - <include refid="Base_Column_List" /> - from ba_block - where id = #{id,jdbcType=BIGINT} and deleted = 0 - </select> - - <select id="selectAll" resultMap="BaseResultMap"> - select -<!-- <include refid="part_Column_List" />--> - <include refid="Base_Column_List" /> - from ba_block - WHERE deleted = 0 - </select> - -<select id="selectTotal" parameterType="java.util.Map" resultType="java.lang.Long"> - select - count(*) - from ba_block - <trim prefix="where " suffixOverrides="and"> - <if test="name != null and name != ''"> - name like concat('%', #{name}, '%') and - </if> - <if test="header != null and header != ''"> - header like concat('%', #{header}, '%') and - </if> - <if test="phone != null and phone != ''"> - phone = #{phone,jdbcType=VARCHAR} and - </if> - <if test="area != null"> - area = #{area,jdbcType=INTEGER} and - </if> - </trim> - </select> - <select id="selectSome" parameterType="java.util.Map" resultMap="BaseResultMap"> - <!--@mbg.generated--> - select - <include refid="Base_Column_List" /> - from ba_block - <trim prefix="where " suffixOverrides="and"> - deleted = 0 and - <if test="name != null and name != ''"> - name like concat('%', #{name}, '%') and - </if> - <if test="header != null and header != ''"> - header = #{header,jdbcType=VARCHAR} and - </if> - <if test="phone != null and phone != ''"> - phone = #{phone,jdbcType=VARCHAR} and - </if> - <if test="area != null"> - area = #{area,jdbcType=INTEGER} and - </if> - </trim> - order by id DESC - <trim prefix="limit " > - <if test="start != null and count != null"> - #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} - </if> - </trim> - </select> - - <insert id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> - <!--@mbg.generated--> - insert into ba_block (id, `name`, `header`, phone, area, color, remark, deleted) - values (#{id,jdbcType=BIGINT}, - #{name,jdbcType=VARCHAR}, - #{header,jdbcType=VARCHAR}, - #{phone,jdbcType=VARCHAR}, - #{area,jdbcType=INTEGER}, - #{color,jdbcType=VARCHAR}, - #{remark,jdbcType=VARCHAR}, - #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}) - </insert> - <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> - <!--@mbg.generated--> - insert into ba_block - <trim prefix="(" suffix=")" suffixOverrides=","> - <if test="id != null"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaBlock"> + <!--@mbg.generated--> + <!--@Table ba_block--> + <id column="id" jdbcType="BIGINT" property="id"/> + <result column="name" jdbcType="VARCHAR" property="name"/> + <result column="header" jdbcType="VARCHAR" property="header"/> + <result column="phone" jdbcType="VARCHAR" property="phone"/> + <result column="area" jdbcType="INTEGER" property="area"/> + <result column="color" jdbcType="VARCHAR" property="color"/> + <result column="remark" jdbcType="VARCHAR" property="remark"/> + <result property="deleted" column="deleted" typeHandler="com.dy.common.mybatis.envm.EnumCodeTypeHandler" + javaType="com.dy.common.mybatis.envm.Deleted"/> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> id, - </if> - <if test="name != null"> `name`, - </if> - <if test="header != null"> `header`, - </if> - <if test="phone != null"> phone, - </if> - <if test="area != null"> area, - </if> - <if test="color != null"> color, - </if> - <if test="remark != null"> remark, - </if> - <if test="deleted != null"> - deleted, - </if> - </trim> - <trim prefix="values (" suffix=")" suffixOverrides=","> - <if test="id != null"> - #{id,jdbcType=BIGINT}, - </if> - <if test="name != null"> - #{name,jdbcType=VARCHAR}, - </if> - <if test="header != null"> - #{header,jdbcType=VARCHAR}, - </if> - <if test="phone != null"> - #{phone,jdbcType=VARCHAR}, - </if> - <if test="area != null"> - #{area,jdbcType=INTEGER}, - </if> - <if test="color != null"> - #{color,jdbcType=VARCHAR}, - </if> - <if test="remark != null"> - #{remark,jdbcType=VARCHAR}, - </if> - <if test="deleted != null"> - #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, - </if> - </trim> - </insert> - <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> - <!--@mbg.generated--> - update ba_block - <set> - <if test="name != null"> - `name` = #{name,jdbcType=VARCHAR}, - </if> - <if test="header != null"> - `header` = #{header,jdbcType=VARCHAR}, - </if> - <if test="phone != null"> - phone = #{phone,jdbcType=VARCHAR}, - </if> - <if test="area != null"> - area = #{area,jdbcType=INTEGER}, - </if> - <if test="color != null"> - color = #{color,jdbcType=VARCHAR}, - </if> - <if test="remark != null"> - remark = #{remark,jdbcType=VARCHAR}, - </if> - <if test="deleted != null"> - deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, - </if> - </set> - where id = #{id,jdbcType=BIGINT} - </update> - <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> - <!--@mbg.generated--> - update ba_block - set `name` = #{name,jdbcType=VARCHAR}, - `header` = #{header,jdbcType=VARCHAR}, - phone = #{phone,jdbcType=VARCHAR}, - area = #{area,jdbcType=INTEGER}, - color = #{color,jdbcType=VARCHAR}, - remark = #{remark,jdbcType=VARCHAR}, - deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT} - where id = #{id,jdbcType=BIGINT} - </update> + deleted + </sql> + <sql id="part_Column_List"> + <!--@mbg.generated--> + id, + `name` + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List"/> + from ba_block + where id = #{id,jdbcType=BIGINT} + and deleted = 0 + </select> - <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> - <!--@mbg.generated--> - delete from ba_block - where id = #{id,jdbcType=BIGINT} - </delete> - <delete id="deleteLogicById" parameterType="java.lang.Long"> - <!--@mbg.generated--> - update ba_block set deleted = 1 - where id = #{id,jdbcType=BIGINT} - </delete> + <select id="selectAll" resultMap="BaseResultMap"> + select + <!-- <include refid="part_Column_List" />--> + <include refid="Base_Column_List"/> + from ba_block + WHERE deleted = 0 + </select> + <select id="selectTotal" parameterType="java.util.Map" resultType="java.lang.Long"> + select count(*) + from ba_block + <trim prefix="where " suffixOverrides="and"> + <if test="name != null and name != ''"> + name like concat('%', #{name}, '%') + and + </if> + <if test="header != null and header != ''"> + header like concat('%', #{header}, '%') + and + </if> + <if test="phone != null and phone != ''"> + phone = #{phone,jdbcType=VARCHAR} + and + </if> + <if test="area != null"> + area = #{area,jdbcType=INTEGER} and + </if> + </trim> + </select> + <select id="selectSome" parameterType="java.util.Map" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List"/> + from ba_block + <trim prefix="where " suffixOverrides="and"> + deleted = 0 + and + <if test="name != null and name != ''"> + name like concat('%', #{name}, '%') + and + </if> + <if test="header != null and header != ''"> + header = #{header,jdbcType=VARCHAR} + and + </if> + <if test="phone != null and phone != ''"> + phone = #{phone,jdbcType=VARCHAR} + and + </if> + <if test="area != null"> + area = #{area,jdbcType=INTEGER} and + </if> + </trim> + order by id DESC + <trim prefix="limit "> + <if test="start != null and count != null"> + #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER} + </if> + </trim> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯璁板綍鏁伴噺--> + <select id="getBlocksCount" resultType="java.lang.Long"> + SELECT COUNT(*) AS recordCount + FROM ba_block + <where> + AND deleted = 0 + <if test="name != null and name != ''"> + AND name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + </select> + + <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯--> + <select id="getBlocks" resultType="com.dy.pipIrrGlobal.voBa.VoBlock"> + SELECT id, + name, + header, + phone, + area, + color, + remark, + deleted + FROM ba_block + <where> + AND deleted = 0 + <if test="name != null and name != ''"> + AND name LIKE CONCAT('%', #{name}, '%') + </if> + </where> + ORDER BY id + LIMIT #{pageCurr}, #{pageSize} +<!-- <trim prefix="limit ">--> +<!-- <if test="start != null and count != null">--> +<!-- #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}--> +<!-- </if>--> +<!-- </trim>--> + </select> + + <!--鏍规嵁鐗囧尯ID鑾峰彇鍦板浘鍥惧舰鍒楄〃--> + <select id="gertMapGraphsByBlockId" resultType="com.dy.pipIrrGlobal.voBa.VoMapGraph"> + SELECT id AS graphId, + CASE + WHEN graph_type = 1 THEN 'CircleMarker' + WHEN graph_type = 2 THEN 'Polygon' + WHEN graph_type = 3 THEN 'Polyline' + END AS type + FROM ba_map_graph + WHERE block_id = #{blockId} + </select> + + <!--鏍规嵁鍦板浘鍥惧舰ID鑾峰彇鍦板浘鍥惧舰鍧愭爣鍒楄〃--> + <select id="getCoordinatesByGraphId" resultType="com.dy.pipIrrGlobal.voBa.VoMapCoordinates"> + SELECT + lat,lng + FROM ba_map_coordinates + WHERE graph_id = #{graphId} + </select> + + <insert id="putin" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> + <!--@mbg.generated--> + insert into ba_block (id, `name`, `header`, phone, area, color, remark, deleted) + values (#{id,jdbcType=BIGINT}, + #{name,jdbcType=VARCHAR}, + #{header,jdbcType=VARCHAR}, + #{phone,jdbcType=VARCHAR}, + #{area,jdbcType=INTEGER}, + #{color,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, + #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> + <!--@mbg.generated--> + insert into ba_block + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="name != null"> + `name`, + </if> + <if test="header != null"> + `header`, + </if> + <if test="phone != null"> + phone, + </if> + <if test="area != null"> + area, + </if> + <if test="color != null"> + color, + </if> + <if test="remark != null"> + remark, + </if> + <if test="deleted != null"> + deleted, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="name != null"> + #{name,jdbcType=VARCHAR}, + </if> + <if test="header != null"> + #{header,jdbcType=VARCHAR}, + </if> + <if test="phone != null"> + #{phone,jdbcType=VARCHAR}, + </if> + <if test="area != null"> + #{area,jdbcType=INTEGER}, + </if> + <if test="color != null"> + #{color,jdbcType=VARCHAR}, + </if> + <if test="remark != null"> + #{remark,jdbcType=VARCHAR}, + </if> + <if test="deleted != null"> + #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> + <!--@mbg.generated--> + update ba_block + <set> + <if test="name != null"> + `name` = #{name,jdbcType=VARCHAR}, + </if> + <if test="header != null"> + `header` = #{header,jdbcType=VARCHAR}, + </if> + <if test="phone != null"> + phone = #{phone,jdbcType=VARCHAR}, + </if> + <if test="area != null"> + area = #{area,jdbcType=INTEGER}, + </if> + <if test="color != null"> + color = #{color,jdbcType=VARCHAR}, + </if> + <if test="remark != null"> + remark = #{remark,jdbcType=VARCHAR}, + </if> + <if test="deleted != null"> + deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaBlock"> + <!--@mbg.generated--> + update ba_block + set `name` = #{name,jdbcType=VARCHAR}, + `header` = #{header,jdbcType=VARCHAR}, + phone = #{phone,jdbcType=VARCHAR}, + area = #{area,jdbcType=INTEGER}, + color = #{color,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + deleted = #{deleted,typeHandler=com.dy.common.mybatis.envm.EnumCodeTypeHandler, jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + </update> + + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete + from ba_block + where id = #{id,jdbcType=BIGINT} + </delete> + <delete id="deleteLogicById" parameterType="java.lang.Long"> + <!--@mbg.generated--> + update ba_block + set deleted = 1 + where id = #{id,jdbcType=BIGINT} + </delete> </mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml new file mode 100644 index 0000000..a245416 --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapCoordinatesMapper.xml @@ -0,0 +1,103 @@ +<?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.dy.pipIrrGlobal.daoBa.BaMapCoordinatesMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates"> + <!--@mbg.generated--> + <!--@Table ba_map_coordinates--> + <id column="id" jdbcType="BIGINT" property="id"/> + <result column="graph_id" jdbcType="BIGINT" property="graphId"/> + <result column="lat" jdbcType="DECIMAL" property="lat"/> + <result column="lng" jdbcType="DECIMAL" property="lng"/> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, + graph_id, + lat, + lng + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List"/> + from ba_map_coordinates + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete + from ba_map_coordinates + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates"> + <!--@mbg.generated--> + insert into ba_map_coordinates (id, graph_id, lat, + lng) + values (#{id,jdbcType=BIGINT}, #{graphId,jdbcType=BIGINT}, #{lat,jdbcType=DECIMAL}, + #{lng,jdbcType=DECIMAL}) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates"> + <!--@mbg.generated--> + insert into ba_map_coordinates + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="graphId != null"> + graph_id, + </if> + <if test="lat != null"> + lat, + </if> + <if test="lng != null"> + lng, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="graphId != null"> + #{graphId,jdbcType=BIGINT}, + </if> + <if test="lat != null"> + #{lat,jdbcType=DECIMAL}, + </if> + <if test="lng != null"> + #{lng,jdbcType=DECIMAL}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates"> + <!--@mbg.generated--> + update ba_map_coordinates + <set> + <if test="graphId != null"> + graph_id = #{graphId,jdbcType=BIGINT}, + </if> + <if test="lat != null"> + lat = #{lat,jdbcType=DECIMAL}, + </if> + <if test="lng != null"> + lng = #{lng,jdbcType=DECIMAL}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates"> + <!--@mbg.generated--> + update ba_map_coordinates + set graph_id = #{graphId,jdbcType=BIGINT}, + lat = #{lat,jdbcType=DECIMAL}, + lng = #{lng,jdbcType=DECIMAL} + where id = #{id,jdbcType=BIGINT} + </update> + + <!--鏍规嵁鐗囧尯ID鍒犻櫎璇ョ墖鍖轰笅鐨勫潗鏍囩偣--> + <delete id="deleteByBlockId" parameterType="java.lang.Long"> + DELETE coo + FROM ba_map_coordinates coo + INNER JOIN ba_map_graph gra ON gra.id = coo.graph_id + WHERE gra.block_id = #{blockId} + </delete> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml new file mode 100644 index 0000000..e7586ae --- /dev/null +++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaMapGraphMapper.xml @@ -0,0 +1,88 @@ +<?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.dy.pipIrrGlobal.daoBa.BaMapGraphMapper"> + <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoBa.BaMapGraph"> + <!--@mbg.generated--> + <!--@Table ba_map_graph--> + <id column="id" jdbcType="BIGINT" property="id"/> + <result column="block_id" jdbcType="BIGINT" property="blockId"/> + <result column="graph_type" jdbcType="TINYINT" property="graphType"/> + </resultMap> + <sql id="Base_Column_List"> + <!--@mbg.generated--> + id, + block_id, + graph_type + </sql> + <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> + <!--@mbg.generated--> + select + <include refid="Base_Column_List"/> + from ba_map_graph + where id = #{id,jdbcType=BIGINT} + </select> + <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> + <!--@mbg.generated--> + delete + from ba_map_graph + where id = #{id,jdbcType=BIGINT} + </delete> + <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph"> + <!--@mbg.generated--> + insert into ba_map_graph (id, block_id, graph_type) + values (#{id,jdbcType=BIGINT}, #{blockId,jdbcType=BIGINT}, #{graphType,jdbcType=TINYINT}) + </insert> + <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph"> + <!--@mbg.generated--> + insert into ba_map_graph + <trim prefix="(" suffix=")" suffixOverrides=","> + <if test="id != null"> + id, + </if> + <if test="blockId != null"> + block_id, + </if> + <if test="graphType != null"> + graph_type, + </if> + </trim> + <trim prefix="values (" suffix=")" suffixOverrides=","> + <if test="id != null"> + #{id,jdbcType=BIGINT}, + </if> + <if test="blockId != null"> + #{blockId,jdbcType=BIGINT}, + </if> + <if test="graphType != null"> + #{graphType,jdbcType=TINYINT}, + </if> + </trim> + </insert> + <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph"> + <!--@mbg.generated--> + update ba_map_graph + <set> + <if test="blockId != null"> + block_id = #{blockId,jdbcType=BIGINT}, + </if> + <if test="graphType != null"> + graph_type = #{graphType,jdbcType=TINYINT}, + </if> + </set> + where id = #{id,jdbcType=BIGINT} + </update> + <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoBa.BaMapGraph"> + <!--@mbg.generated--> + update ba_map_graph + set block_id = #{blockId,jdbcType=BIGINT}, + graph_type = #{graphType,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + </update> + + <!--鏍规嵁鐗囧尯ID鍒犻櫎鍦板浘鍥惧舰--> + <delete id="deleteByBlockId" parameterType="java.lang.Long"> + DELETE + FROM ba_map_graph + WHERE block_id = #{blockId} + </delete> +</mapper> \ No newline at end of file diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java index db4b1fe..d528969 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockCtrl.java @@ -1,12 +1,20 @@ package com.dy.pipIrrBase.block; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.dy.common.aop.SsoAop; import com.dy.common.mybatis.envm.Deleted; import com.dy.common.webUtil.BaseResponse; import com.dy.common.webUtil.BaseResponseUtils; import com.dy.common.webUtil.QueryResultVo; import com.dy.common.webUtil.ResultCodeMsg; +import com.dy.pipIrrBase.block.dto.Block; +import com.dy.pipIrrBase.block.enums.graphTypeENUM; +import com.dy.pipIrrBase.result.SystemResultCode; import com.dy.pipIrrGlobal.pojoBa.BaBlock; +import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates; +import com.dy.pipIrrGlobal.pojoBa.BaMapGraph; +import com.dy.pipIrrGlobal.voBa.VoBlock; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; @@ -17,28 +25,31 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Objects; +import java.util.Optional; @Slf4j @Tag(name = "鐗囧尯绠$悊", description = "鐗囧尯澧炲垹鏀规煡绛夋搷浣�") @RestController -@RequestMapping(path="block") +@RequestMapping(path = "block") @SuppressWarnings("unchecked")//java鐗堟湰瓒婇珮锛屽娉涘瀷绾︽潫瓒婁弗锛屾墍浠ラ厤缃甋uppressWarnings("unchecked") public class BlockCtrl { - private BlockSv sv ; + private BlockSv sv; @Autowired - private void setSv(BlockSv sv){ - this.sv = sv ; + private void setSv(BlockSv sv) { + this.sv = sv; } /** * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹� + * * @return 鎵�鏈夌墖鍖烘暟鎹� */ @Operation(summary = "鑾峰緱鍏ㄩ儴鐗囧尯", description = "杩斿洖鍏ㄩ儴鐗囧尯鏁版嵁") @@ -52,43 +63,57 @@ }) @GetMapping(path = "all") @SsoAop() - public BaseResponse<QueryResultVo<List<BaBlock>>> all(){ + public BaseResponse<QueryResultVo<List<BaBlock>>> all() { try { - QueryResultVo<List<BaBlock>> res = this.sv.selectAll() ; + QueryResultVo<List<BaBlock>> res = this.sv.selectAll(); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鏌ヨ鐗囧尯寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); } } /** - * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹� + * 瀹㈡埛绔姹傚緱鍒版墍鏈夌墖鍖烘暟鎹� 2024-08-14搴熷純 + * * @return 鎵�鏈夌墖鍖烘暟鎹� */ - @Operation(summary = "鑾峰緱涓�椤电墖鍖�", description = "杩斿洖涓�椤电墖鍖烘暟鎹�") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "杩斿洖涓�椤电墖鍖烘暟鎹紙BaseResponse.content:QueryResultVo[{}]锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = BaBlock.class))} - ) - }) - @PostMapping(path = "some", consumes = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(path = "some2", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() - public BaseResponse<QueryResultVo<List<BaBlock>>> some(@RequestBody QueryVo vo){ + public BaseResponse<QueryResultVo<List<BaBlock>>> some(@RequestBody QueryVo vo) { try { - QueryResultVo<List<BaBlock>> res = this.sv.selectSome(vo) ; + QueryResultVo<List<BaBlock>> res = this.sv.selectSome(vo); return BaseResponseUtils.buildSuccess(res); } catch (Exception e) { log.error("鏌ヨ鐗囧尯寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); + } + } + + /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯锛�2024-08-14鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯鍒嗛〉鏌ヨ + * + * @param qo + * @param bindingResult + * @return + */ + @GetMapping(path = "/some") + @SsoAop() + public BaseResponse<QueryResultVo<List<VoBlock>>> getBlocks(@Valid QueryVo qo, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + try { + return BaseResponseUtils.buildSuccess(this.sv.getBlocks(qo)); + } catch (Exception e) { + log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e); + return BaseResponseUtils.buildException(e.getMessage()); } } /** * 寰楀埌涓�涓墖鍖烘暟鎹� + * * @return 涓�涓墖鍖烘暟鎹� */ @Operation(summary = "涓�涓墖鍖�", description = "寰楀埌涓�涓墖鍖烘暟鎹�") @@ -103,12 +128,13 @@ //@GetMapping(path = "one", consumes = MediaType.TEXT_PLAIN_VALUE) @GetMapping(path = "one") @SsoAop() - public BaseResponse<BaBlock> one(Long id){ + public BaseResponse<BaBlock> one(Long id) { return BaseResponseUtils.buildSuccess(this.sv.selectById(id)); } /** * 淇濆瓨鐗囧尯 + * * @param po 淇濆瓨鐗囧尯form琛ㄥ崟瀵硅薄 * @return 鏄惁鎴愬姛 */ @@ -122,67 +148,210 @@ ) }) @PostMapping(path = "save", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> save(@RequestBody @Valid BaBlock po, BindingResult bindingResult){ - if(bindingResult != null && bindingResult.hasErrors()){ + //public BaseResponse<Boolean> save(@RequestBody @Valid BaBlock po, BindingResult bindingResult){ + public BaseResponse<Boolean> save(@RequestBody @Valid Block po, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } - po.id = null ; - po.deleted = Deleted.NO; - int count; - try { - count = this.sv.save(po); - } catch (Exception e) { - log.error("淇濆瓨鐗囧尯寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + + // 娣诲姞鐗囧尯璁板綍 + BaBlock baBlock = new BaBlock(); + baBlock.setName(po.getName()); + baBlock.setHeader(po.getHeader()); + baBlock.setPhone(po.getPhone()); + baBlock.setArea(po.getArea()); + baBlock.setColor(po.getColor()); + baBlock.setRemark(po.getRemark()); + baBlock.deleted = Deleted.NO; + Long blockId = Optional.ofNullable(this.sv.save(baBlock)).orElse(0L); + if (blockId.equals(0)) { + return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage()); } - if(count <= 0){ - return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; - }else{ - return BaseResponseUtils.buildSuccess(true) ; + + JSONArray graphs = po.getGraphs(); + for (int i = 0; i < graphs.size(); i++) { + JSONObject graph = graphs.getJSONObject(i); + + // 娣诲姞鍦板浘鍥惧舰璁板綍 + BaMapGraph baMapGraph = new BaMapGraph(); + baMapGraph.setBlockId(blockId); + switch (graph.getString("type")) { + case "CircleMarker": + baMapGraph.setGraphType(graphTypeENUM.CIRCLE_MARKER.getCode()); + break; + case "Polygon": + baMapGraph.setGraphType(graphTypeENUM.POLYGON.getCode()); + break; + case "Polyline": + baMapGraph.setGraphType(graphTypeENUM.POLYLINE.getCode()); + break; + } + Long graphId = Optional.ofNullable(this.sv.addMapGraph(baMapGraph)).orElse(0L); + if (graphId.equals(0)) { + return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage()); + } + + // 娣诲姞鍦板浘鍥惧舰鍧愭爣璁板綍 + JSONArray coordinates = graph.getJSONArray("coordinates"); + for (int j = 0; j < coordinates.size(); j++) { + JSONArray coordinate = coordinates.getJSONArray(j); + for (int k = 0; k < coordinate.size(); k++) { + JSONObject point = coordinate.getJSONObject(k); + + BaMapCoordinates mapCoordinates = new BaMapCoordinates(); + mapCoordinates.setGraphId(graphId); + mapCoordinates.setLat(point.getBigDecimal("lat")); + mapCoordinates.setLng(point.getBigDecimal("lng")); + Long coordinateId = Optional.ofNullable(this.sv.addMapCoordinate(mapCoordinates)).orElse(0L); + if (coordinateId.equals(0)) { + return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage()); + } + } + } } + return BaseResponseUtils.buildSuccess(true); + + //po.id = null ; + //po.deleted = Deleted.NO; + //int count; + //try { + // count = this.sv.save(po); + //} catch (Exception e) { + // log.error("淇濆瓨鐗囧尯寮傚父", e); + // return BaseResponseUtils.buildException(e.getMessage()) ; + //} + //if(count <= 0){ + // return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; + //}else{ + // return BaseResponseUtils.buildSuccess(true) ; + //} } /** - * 缂栬緫淇敼鐗囧尯 + * 缂栬緫淇敼鐗囧尯 2024-08-15 浣滃簾 + * * @param po 淇濆瓨鐗囧尯form琛ㄥ崟瀵硅薄 * @return 鏄惁鎴愬姛 */ - @Operation(summary = "缂栬緫淇敼鐗囧尯", description = "鎻愪氦鐗囧尯鏁版嵁锛坒orm琛ㄥ崟锛夛紝杩涜淇敼") - @ApiResponses(value = { - @ApiResponse( - responseCode = ResultCodeMsg.RsCode.SUCCESS_CODE, - description = "鎿嶄綔缁撴灉锛歵rue锛氭垚鍔燂紝false锛氬け璐ワ紙BaseResponse.content锛�", - content = {@Content(mediaType = MediaType.APPLICATION_JSON_VALUE, - schema = @Schema(implementation = Boolean.class))} - ) - }) - @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(path = "update2", consumes = MediaType.APPLICATION_JSON_VALUE) @SsoAop() - public BaseResponse<Boolean> update(@RequestBody @Valid BaBlock po, BindingResult bindingResult){ - if(bindingResult != null && bindingResult.hasErrors()){ + public BaseResponse<Boolean> update2(@RequestBody @Valid BaBlock po, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); } - if(po.id == null){ - return BaseResponseUtils.buildFail("鏃犳暟鎹疄浣揑D") ; + if (po.id == null) { + return BaseResponseUtils.buildFail("鏃犳暟鎹疄浣揑D"); } int count; try { count = this.sv.update(po); } catch (Exception e) { log.error("淇濆瓨鐗囧尯寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); } - if(count <= 0){ - return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; - }else{ - return BaseResponseUtils.buildSuccess(true) ; + if (count <= 0) { + return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�"); + } else { + return BaseResponseUtils.buildSuccess(true); } } + /** + * 淇敼鐗囧尯淇℃伅锛�2024-08-15鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯淇敼鎺ュ彛 + * + * @param po + * @param bindingResult + * @return + */ + @PostMapping(path = "update", consumes = MediaType.APPLICATION_JSON_VALUE) + @Transactional(rollbackFor = Exception.class) + @SsoAop() + public BaseResponse<Boolean> update(@RequestBody @Valid Block po, BindingResult bindingResult) { + if (bindingResult != null && bindingResult.hasErrors()) { + return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage()); + } + + Long blockId = po.getId(); + if (blockId == null) { + return BaseResponseUtils.buildErrorMsg(SystemResultCode.THE_BLOCK_NOT_EXIST.getMessage()); + } + + // 淇敼鐗囧尯淇℃伅 + BaBlock baBlock = new BaBlock(); + baBlock.setId(po.getId()); + baBlock.setName(po.getName()); + baBlock.setHeader(po.getHeader()); + baBlock.setPhone(po.getPhone()); + baBlock.setArea(po.getArea()); + baBlock.setColor(po.getColor()); + baBlock.setRemark(po.getRemark()); + baBlock.setDeleted(po.getDeleted()); + int count; + try { + count = this.sv.update(baBlock); + } catch (Exception e) { + log.error("淇濆瓨鐗囧尯寮傚父", e); + return BaseResponseUtils.buildException(e.getMessage()); + } + if (count <= 0) { + return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�"); + } + + // 鍒犻櫎鍦板浘鍥惧舰鍧愭爣 + this.sv.deleteMapCoordinates(blockId); + // 鍒犻櫎鐗囧尯鍏宠仈鐨勫湴鍥惧浘褰� + this.sv.deleteMapGraph(blockId); + + JSONArray graphs = po.getGraphs(); + for (int i = 0; i < graphs.size(); i++) { + JSONObject graph = graphs.getJSONObject(i); + + // 娣诲姞鍦板浘鍥惧舰璁板綍 + BaMapGraph baMapGraph = new BaMapGraph(); + baMapGraph.setBlockId(blockId); + switch (graph.getString("type")) { + case "CircleMarker": + baMapGraph.setGraphType(graphTypeENUM.CIRCLE_MARKER.getCode()); + break; + case "Polygon": + baMapGraph.setGraphType(graphTypeENUM.POLYGON.getCode()); + break; + case "Polyline": + baMapGraph.setGraphType(graphTypeENUM.POLYLINE.getCode()); + break; + } + Long graphId = Optional.ofNullable(this.sv.addMapGraph(baMapGraph)).orElse(0L); + if (graphId.equals(0)) { + return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage()); + } + + // 娣诲姞鍦板浘鍥惧舰鍧愭爣璁板綍 + JSONArray coordinates = graph.getJSONArray("coordinates"); + for (int j = 0; j < coordinates.size(); j++) { + JSONArray coordinate = coordinates.getJSONArray(j); + for (int k = 0; k < coordinate.size(); k++) { + JSONObject point = coordinate.getJSONObject(k); + + BaMapCoordinates mapCoordinates = new BaMapCoordinates(); + mapCoordinates.setGraphId(graphId); + mapCoordinates.setLat(point.getBigDecimal("lat")); + mapCoordinates.setLng(point.getBigDecimal("lng")); + Long coordinateId = Optional.ofNullable(this.sv.addMapCoordinate(mapCoordinates)).orElse(0L); + if (coordinateId.equals(0)) { + return BaseResponseUtils.buildErrorMsg(SystemResultCode.SAVA_BLOCK_ERROR.getMessage()); + } + } + } + } + + return BaseResponseUtils.buildSuccess(true); + } /** * 鍒犻櫎鐗囧尯 + * * @param id 鐗囧尯ID * @return 鏄惁鎴愬姛 */ @@ -195,24 +364,31 @@ schema = @Schema(implementation = Boolean.class))} ) }) + //@GetMapping(path = "delete", consumes = MediaType.TEXT_PLAIN_VALUE) @GetMapping(path = "delete") + @Transactional(rollbackFor = Exception.class) @SsoAop() - public BaseResponse<Boolean> delete(Long id){ - if(id == null){ - return BaseResponseUtils.buildFail("id涓嶈兘涓虹┖") ; + public BaseResponse<Boolean> delete(Long id) { + if (id == null) { + return BaseResponseUtils.buildFail("id涓嶈兘涓虹┖"); } int count; try { count = this.sv.delete(id); } catch (Exception e) { log.error("淇濆瓨鐗囧尯寮傚父", e); - return BaseResponseUtils.buildException(e.getMessage()) ; + return BaseResponseUtils.buildException(e.getMessage()); } - if(count <= 0){ - return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�") ; - }else{ - return BaseResponseUtils.buildSuccess(true) ; + if (count <= 0) { + return BaseResponseUtils.buildFail("鏁版嵁搴撳瓨鍌ㄥけ璐�"); } + + // 鍒犻櫎鍦板浘鍥惧舰鍧愭爣 + this.sv.deleteMapCoordinates(id); + // 鍒犻櫎鐗囧尯鍏宠仈鐨勫湴鍥惧浘褰� + this.sv.deleteMapGraph(id); + + return BaseResponseUtils.buildSuccess(true); } } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java index 89f37a1..1c6b508 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/BlockSv.java @@ -1,8 +1,18 @@ package com.dy.pipIrrBase.block; +import com.alibaba.fastjson2.JSON; +import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSONObject; import com.dy.common.webUtil.QueryResultVo; import com.dy.pipIrrGlobal.daoBa.BaBlockMapper; +import com.dy.pipIrrGlobal.daoBa.BaMapCoordinatesMapper; +import com.dy.pipIrrGlobal.daoBa.BaMapGraphMapper; import com.dy.pipIrrGlobal.pojoBa.BaBlock; +import com.dy.pipIrrGlobal.pojoBa.BaMapCoordinates; +import com.dy.pipIrrGlobal.pojoBa.BaMapGraph; +import com.dy.pipIrrGlobal.voBa.VoBlock; +import com.dy.pipIrrGlobal.voBa.VoMapCoordinates; +import com.dy.pipIrrGlobal.voBa.VoMapGraph; import lombok.extern.slf4j.Slf4j; import org.apache.dubbo.common.utils.PojoUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -22,6 +32,12 @@ private void setDao(BaBlockMapper dao){ this.dao = dao; } + + @Autowired + private BaMapGraphMapper baMapGraphMapper; + + @Autowired + private BaMapCoordinatesMapper baMapCoordinatesMapper; /** * 寰楀埌涓�涓墖鍖� @@ -62,13 +78,76 @@ } /** + * 鏍规嵁鎸囧畾鏉′欢鑾峰彇鐗囧尯锛�2024-08-14鏂板锛屾浛鎹㈠師鏉ョ殑鐗囧尯鍒嗛〉鏌ヨ + * @param vo + * @return + */ + public QueryResultVo<List<VoBlock>> getBlocks(QueryVo vo){ + vo.setPageCurr((vo.pageCurr -1) * vo.pageSize); + Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(vo) ; + Long itemTotal = this.dao.getBlocksCount(params) ; + + JSONArray array_blocks = null; + JSONArray array_mapGraphs = null; + + // 鑾峰彇鐗囧尯鍒楄〃 + List<VoBlock> list_blocks = this.dao.getBlocks(params); + if(list_blocks != null && list_blocks.size() > 0) { + //JSONArray array_blocks = (JSONArray) JSON.toJSON(list_blocks); + array_blocks = (JSONArray) JSON.toJSON(list_blocks); + for (int i = 0; i < array_blocks.size(); i++) { + JSONObject job_block = array_blocks.getJSONObject(i); + Long blockId = job_block.getLong("id"); + + // 鏍规嵁鐗囧尯ID鑾峰彇鍦板浘鍥惧舰鍒楄〃 + List<VoMapGraph> list_mapGraphs = this.dao.gertMapGraphsByBlockId(blockId); + if(list_mapGraphs != null && list_mapGraphs.size() > 0) { + array_mapGraphs = (JSONArray) JSON.toJSON(list_mapGraphs); + for (int j = 0; j < array_mapGraphs.size(); j++) { + JSONObject job_mapGraph = array_mapGraphs.getJSONObject(j); + job_mapGraph = array_mapGraphs.getJSONObject(j); + Long graphId = job_mapGraph.getLong("graphId"); + String graphType = job_mapGraph.getString("type"); + + // 鏍规嵁鍦板浘鍥惧舰ID鑾峰彇鍦板浘鍥惧舰鍧愭爣鍒楄〃锛屽苟娣诲姞鍒板湴鍥惧浘褰㈠璞′腑 + List<VoMapCoordinates> list_mapCoordinates = this.dao.getCoordinatesByGraphId(graphId); + if(list_mapCoordinates != null && list_mapCoordinates.size() > 0) { + JSONArray array_mapCoordinates = (JSONArray) JSON.toJSON(list_mapCoordinates); + + JSONArray[] arrays = new JSONArray[1]; + arrays[0] = array_mapCoordinates; + job_mapGraph.put("coordinates", arrays); + } + } + } + + // 灏嗗湴鍥惧浘褰㈡暟缁勬坊鍔犲埌鐗囧尯涓� + if(array_mapGraphs != null && array_mapGraphs.size() > 0) { + job_block.put("graphs", array_mapGraphs); + } + } + } + + QueryResultVo<List<VoBlock>> rsVo = new QueryResultVo<>() ; + rsVo.pageSize = vo.pageSize ; + rsVo.pageCurr = vo.pageCurr ; + rsVo.calculateAndSet(itemTotal, params); + //rsVo.obj = this.dao.getBlocks(params) ; + rsVo.obj = array_blocks.toList(VoBlock.class); + + return rsVo ; + } + + /** * 淇濆瓨瀹炰綋 * @param po 瀹炰綋 * @return 鏁伴噺 */ @Transactional - public int save(BaBlock po){ - return this.dao.putin(po) ; + public Long save(BaBlock po){ + //return this.dao.putin(po) ; + this.dao.putin(po); + return po.getId(); } /** @@ -91,4 +170,42 @@ return this.dao.deleteLogicById(id) ; } + /** + * 娣诲姞鍦板浘鍥惧舰 + * @param po + * @return + */ + public Long addMapGraph(BaMapGraph po) { + this.baMapGraphMapper.insert(po); + return po.getId(); + } + + /** + * 娣诲姞鍦板浘鍥惧舰鍧愭爣 + * @param po + * @return + */ + public Long addMapCoordinate(BaMapCoordinates po) { + this.baMapCoordinatesMapper.insert(po); + return po.getId(); + }; + + /** + * 鏍规嵁鐗囧尯ID鍒犻櫎鍦板浘鍥惧舰 + * @param blockId + * @return + */ + public int deleteMapGraph(Long blockId) { + return this.baMapGraphMapper.deleteByBlockId(blockId); + } + + /** + * 鏍规嵁鐗囧尯ID鍒犻櫎璇ョ墖鍖轰笅鐨勫潗鏍囩偣 + * @param blockId + * @return + */ + public int deleteMapCoordinates(Long blockId) { + return this.baMapCoordinatesMapper.deleteByBlockId(blockId); + } + } diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java new file mode 100644 index 0000000..50fda27 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/dto/Block.java @@ -0,0 +1,75 @@ +package com.dy.pipIrrBase.block.dto; + +import com.alibaba.fastjson2.JSONArray; +import com.dy.common.mybatis.envm.Deleted; +import jakarta.validation.constraints.Max; +import jakarta.validation.constraints.Min; +import jakarta.validation.constraints.NotBlank; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +/** + * @author ZhuBaoMin + * @date 2024-08-13 11:39 + * @LastEditTime 2024-08-13 11:39 + * @Description 鐗囧尯瀵硅薄 + */ + +@Data +public class Block { + public static final long serialVersionUID = 202408131140001L; + + /** + * 鐗囧尯ID + */ + private Long id; + + /** + * 鐗囧尯鍚嶇О + */ + @NotBlank(message = "鐗囧尯鍚嶇О涓嶈兘涓虹┖") + private String name; + + /** + * 璐熻矗浜� + */ + @Length(message = "鐗囧尯璐熻矗浜哄鍚嶄笉澶т簬{max}瀛楋紝涓嶅皬浜巤min}瀛�", min = 1, max = 25) + private String header; + + /** + * 璐熻矗浜虹數璇� + */ + @Length(message = "鐗囧尯璐熻矗浜烘墜鏈哄彿蹇呴』{max}浣嶆暟鎹�", min = 11, max = 11) + private String phone; + + /** + * 绉嶆闈㈢Н + */ + @Max(message = "鐗囧尯闈㈢Н涓嶆纭�", value = 100000000) + @Min(message = "鐗囧尯闈㈢Н涓嶆纭�",value = 0) + private Integer area; + + /** + * 鐢靛瓙鍦板浘鍖哄煙鐫�鑹� + */ + @Length(message = "鍖哄煙鐫�鑹查暱搴﹀皬浜巤max}瀛�", min = 0, max = 6) + private String color; + + /** + * 澶囨敞 + */ + @Length(message = "澶囨敞闀垮害灏忎簬{max}瀛�", min = 0, max = 50) + private String remark; + + /** + * 鏄惁鍒犻櫎: 0琛ㄧず鏈垹闄� 1琛ㄧず鍒犻櫎. + */ + private Deleted deleted; + + /** + * 鍦板浘鍥惧舰瀵硅薄 + */ + private JSONArray graphs; + + +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java new file mode 100644 index 0000000..18f3081 --- /dev/null +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/block/enums/graphTypeENUM.java @@ -0,0 +1,22 @@ +package com.dy.pipIrrBase.block.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author ZhuBaoMin + * @date 2024-08-14 11:17 + * @LastEditTime 2024-08-14 11:17 + * @Description 鍦板浘鍥惧舰鍒嗙被鏋氫妇绫� + */ + +@Getter +@AllArgsConstructor +public enum graphTypeENUM { + CIRCLE_MARKER((byte)1, "鍦嗗湀鏍囪"), + POLYGON((byte)2, "澶氳竟褰�"), + POLYLINE((byte)3, "澶氭绾�"); + + private final Byte code; + private final String message; +} diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java index b757745..7d68698 100644 --- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java +++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/result/SystemResultCode.java @@ -27,7 +27,13 @@ /** * 鐢ㄦ埛 */ - THE_USER_NOT_EXIST(20001, "鐢ㄦ埛涓嶅瓨鍦�"); + THE_USER_NOT_EXIST(20001, "鐢ㄦ埛涓嶅瓨鍦�"), + + /** + * 鐗囧尯 + */ + SAVA_BLOCK_ERROR(30001, "淇濆瓨鐗囧尯澶辫触"), + THE_BLOCK_NOT_EXIST(30002, "鐗囧尯涓嶅瓨鍦�"); private final Integer code; private final String message; -- Gitblit v1.8.0