From f22986b1aae508adbcf6d3a43e44a5e2cdda8adf Mon Sep 17 00:00:00 2001
From: zhubaomin <zhubaomin>
Date: 星期三, 28 八月 2024 15:17:38 +0800
Subject: [PATCH] 2024-08-28 朱宝民 管网添加接口、管网查询接口

---
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/dto/Network.java      |   28 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrNetworkCoordinatesMapper.xml                         |  108 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java            |    1 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkCtrl.java      |   97 ++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetwork.java                            |   34 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetworkCoordinates.java                 |   30 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrWaterNetworkMapper.java                |   42 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrWaterNetworkMapper.xml                               |   81 ++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java          |    8 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrNetworkCoordinatesMapper.java          |   39 +++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java |    7 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java        |  129 ++++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrWaterNetwork.java                     |   45 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrNetworkCoordinates.java               |   58 ++++
 14 files changed, 703 insertions(+), 4 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrNetworkCoordinatesMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrNetworkCoordinatesMapper.java
new file mode 100644
index 0000000..7e80ba8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrNetworkCoordinatesMapper.java
@@ -0,0 +1,39 @@
+package com.dy.pipIrrGlobal.daoPr;
+
+import com.dy.pipIrrGlobal.pojoPr.PrNetworkCoordinates;
+import com.dy.pipIrrGlobal.voPr.VoNetworkCoordinates;
+
+import java.util.List;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-27 17:23
+ * @LastEditTime 2024-08-27 17:23
+ * @Description
+ */
+public interface PrNetworkCoordinatesMapper {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PrNetworkCoordinates record);
+
+    int insertSelective(PrNetworkCoordinates record);
+
+    PrNetworkCoordinates selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(PrNetworkCoordinates record);
+
+    int updateByPrimaryKey(PrNetworkCoordinates record);
+
+    /**
+     * 娓呴櫎鍏ㄩ儴绠$綉鍧愭爣
+     */
+    void clearCoordinates();
+
+    /**
+     * 鏍规嵁绠$綉ID鑾峰彇绠$綉鍧愭爣鍒楄〃
+     * @param networkId
+     * @return
+     */
+    List<VoNetworkCoordinates> getCoordinatesByNetworkId(Long networkId);
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrWaterNetworkMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrWaterNetworkMapper.java
new file mode 100644
index 0000000..8ac1ae1
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrWaterNetworkMapper.java
@@ -0,0 +1,42 @@
+package com.dy.pipIrrGlobal.daoPr;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork;
+import com.dy.pipIrrGlobal.voPr.VoNetwork;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-27 17:14
+ * @LastEditTime 2024-08-27 17:14
+ * @Description
+ */
+
+@Mapper
+public interface PrWaterNetworkMapper extends BaseMapper<PrWaterNetwork> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(PrWaterNetwork record);
+
+    int insertSelective(PrWaterNetwork record);
+
+    PrWaterNetwork selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(PrWaterNetwork record);
+
+    int updateByPrimaryKey(PrWaterNetwork record);
+
+    /**
+     * 娓呴櫎鍏ㄩ儴绠$綉
+     */
+    void clearNetworks();
+
+    /**
+     * 鑾峰彇鍏ㄩ儴绠$綉
+     * @return
+     */
+    List<VoNetwork> getAllNewworks();
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrNetworkCoordinates.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrNetworkCoordinates.java
new file mode 100644
index 0000000..31f3606
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrNetworkCoordinates.java
@@ -0,0 +1,58 @@
+package com.dy.pipIrrGlobal.pojoPr;
+
+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-27 17:23
+ * @LastEditTime 2024-08-27 17:23
+ * @Description
+ */
+
+/**
+ * 绠$綉鍧愭爣琛�
+ */
+
+@TableName(value="pr_network_coordinates", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class PrNetworkCoordinates implements BaseEntity {
+    public static final long serialVersionUID = 202408271720001L;
+
+    /**
+     * 涓婚敭
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+     * 绠$綉ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "鎵�灞炵缃戜笉鑳戒负绌�")
+    private Long networkId;
+
+    /**
+     * 绾害
+     */
+    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/pojoPr/PrWaterNetwork.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrWaterNetwork.java
new file mode 100644
index 0000000..80cb636
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrWaterNetwork.java
@@ -0,0 +1,45 @@
+package com.dy.pipIrrGlobal.pojoPr;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-27 17:14
+ * @LastEditTime 2024-08-27 17:14
+ * @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="pr_water_network", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class PrWaterNetwork implements BaseEntity {
+    public static final long serialVersionUID = 202408271719001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+    * 绠$綉绫诲瀷;1-杈撴按锛�2-閰嶆按
+    */
+    @NotNull(message = "绠$綉绫诲瀷涓嶈兘涓虹┖")
+    private Byte networkType;
+
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetwork.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetwork.java
new file mode 100644
index 0000000..173d7f9
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetwork.java
@@ -0,0 +1,34 @@
+package com.dy.pipIrrGlobal.voPr;
+
+import com.alibaba.fastjson2.JSONObject;
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-28 11:42
+ * @LastEditTime 2024-08-28 11:42
+ * @Description
+ */
+
+@Data
+public class VoNetwork {
+    private static final long serialVersionUID = 202408281143001L;
+
+    /**
+     * 绠$綉ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long networkId;
+
+    /**
+     * 绠$綉绫诲瀷锛�1-杈撴按锛�2-閰嶆按
+     */
+    private Byte type;
+
+    /**
+     * 绠$綉瀵硅薄锛屽寘鍚缃戝潗鏍�
+     */
+    private JSONObject data;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetworkCoordinates.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetworkCoordinates.java
new file mode 100644
index 0000000..3996ae6
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetworkCoordinates.java
@@ -0,0 +1,30 @@
+package com.dy.pipIrrGlobal.voPr;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-28 14:06
+ * @LastEditTime 2024-08-28 14:06
+ * @Description
+ */
+@Data
+public class VoNetworkCoordinates {
+    private static final long serialVersionUID = 202408281407001L;
+
+    /**
+     * 绾害
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private BigDecimal lat;
+
+    /**
+     * 缁忓害
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private BigDecimal lng;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrNetworkCoordinatesMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrNetworkCoordinatesMapper.xml
new file mode 100644
index 0000000..2a2f9fe
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrNetworkCoordinatesMapper.xml
@@ -0,0 +1,108 @@
+<?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.daoPr.PrNetworkCoordinatesMapper">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrNetworkCoordinates">
+        <!--@mbg.generated-->
+        <!--@Table pr_network_coordinates-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="network_id" jdbcType="BIGINT" property="networkId"/>
+        <result column="lat" jdbcType="DECIMAL" property="lat"/>
+        <result column="lng" jdbcType="DECIMAL" property="lng"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id,
+        network_id,
+        lat,
+        lng
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from pr_network_coordinates
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from pr_network_coordinates
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrNetworkCoordinates">
+        <!--@mbg.generated-->
+        insert into pr_network_coordinates (id, network_id, lat,
+                                            lng)
+        values (#{id,jdbcType=BIGINT}, #{networkId,jdbcType=BIGINT}, #{lat,jdbcType=DECIMAL},
+                #{lng,jdbcType=DECIMAL})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrNetworkCoordinates">
+        <!--@mbg.generated-->
+        insert into pr_network_coordinates
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="networkId != null">
+                network_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="networkId != null">
+                #{networkId,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.pojoPr.PrNetworkCoordinates">
+        <!--@mbg.generated-->
+        update pr_network_coordinates
+        <set>
+            <if test="networkId != null">
+                network_id = #{networkId,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.pojoPr.PrNetworkCoordinates">
+        <!--@mbg.generated-->
+        update pr_network_coordinates
+        set network_id = #{networkId,jdbcType=BIGINT},
+            lat        = #{lat,jdbcType=DECIMAL},
+            lng        = #{lng,jdbcType=DECIMAL}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <!--娓呴櫎鍏ㄩ儴绠$綉鍧愭爣-->
+    <delete id="clearCoordinates">
+        TRUNCATE pr_network_coordinates
+    </delete>
+
+    <!--鏍规嵁绠$綉ID鑾峰彇绠$綉鍧愭爣鍒楄〃-->
+    <select id="getCoordinatesByNetworkId" resultType="com.dy.pipIrrGlobal.voPr.VoNetworkCoordinates">
+        SELECT lat,
+               lng
+        FROM pr_network_coordinates
+        WHERE network_id = #{networkId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrWaterNetworkMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrWaterNetworkMapper.xml
new file mode 100644
index 0000000..61c58fe
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrWaterNetworkMapper.xml
@@ -0,0 +1,81 @@
+<?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.daoPr.PrWaterNetworkMapper">
+    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork">
+        <!--@mbg.generated-->
+        <!--@Table pr_water_network-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="network_type" jdbcType="TINYINT" property="networkType"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id,
+        network_type
+    </sql>
+    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+        <!--@mbg.generated-->
+        select
+        <include refid="Base_Column_List"/>
+        from pr_water_network
+        where id = #{id,jdbcType=BIGINT}
+    </select>
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+        <!--@mbg.generated-->
+        delete
+        from pr_water_network
+        where id = #{id,jdbcType=BIGINT}
+    </delete>
+    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork">
+        <!--@mbg.generated-->
+        insert into pr_water_network (id, network_type)
+        values (#{id,jdbcType=BIGINT}, #{networkType,jdbcType=TINYINT})
+    </insert>
+    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork">
+        <!--@mbg.generated-->
+        insert into pr_water_network
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                id,
+            </if>
+            <if test="networkType != null">
+                network_type,
+            </if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">
+                #{id,jdbcType=BIGINT},
+            </if>
+            <if test="networkType != null">
+                #{networkType,jdbcType=TINYINT},
+            </if>
+        </trim>
+    </insert>
+    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork">
+        <!--@mbg.generated-->
+        update pr_water_network
+        <set>
+            <if test="networkType != null">
+                network_type = #{networkType,jdbcType=TINYINT},
+            </if>
+        </set>
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork">
+        <!--@mbg.generated-->
+        update pr_water_network
+        set network_type = #{networkType,jdbcType=TINYINT}
+        where id = #{id,jdbcType=BIGINT}
+    </update>
+
+    <!--娓呴櫎鍏ㄩ儴绠$綉-->
+    <delete id="clearNetworks">
+        TRUNCATE pr_water_network
+    </delete>
+
+    <!--鑾峰彇鍏ㄩ儴绠$綉-->
+    <select id="getAllNewworks" resultType="com.dy.pipIrrGlobal.voPr.VoNetwork">
+        SELECT id           AS networkId,
+               network_type AS type
+        FROM pr_water_network
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkCtrl.java
new file mode 100644
index 0000000..103f8d8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkCtrl.java
@@ -0,0 +1,97 @@
+package com.dy.pipIrrProject.network;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.voPr.VoNetwork;
+import com.dy.pipIrrProject.network.dto.Network;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-27 17:08
+ * @LastEditTime 2024-08-27 17:08
+ * @Description
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path = "network")
+@RequiredArgsConstructor
+public class NetworkCtrl {
+    private final NetworkSv networkSv;
+
+    /**
+     * 娣诲姞绠$綉
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "save", consumes = MediaType.APPLICATION_JSON_VALUE)
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> save(@RequestBody @Valid Network po, BindingResult bindingResult) {
+        if (bindingResult != null && bindingResult.hasErrors()) {
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        String result = networkSv.addNetworks(po);
+        if(result.trim().length()> 0) {
+            return BaseResponseUtils.buildErrorMsg(result);
+        }
+
+        //PrWaterNetwork prWaterNetwork = null;
+        //Long networkId = null;
+        //
+        //JSONArray networks = po.getData();
+        //for (int i = 0; i < networks.size(); i++) {
+        //    // 鍙栧嚭涓�绗旂粯鐢�
+        //    JSONObject polyline = networks.getJSONObject(i);
+        //    // 娣诲姞璇ョ瑪缁樼敾
+        //    prWaterNetwork = new PrWaterNetwork();
+        //    prWaterNetwork.setNetworkType(po.getType());
+        //    networkId = networkSv.addNetwork(prWaterNetwork);
+        //
+        //    // 鍙栧嚭涓�绗旂粯鐢讳腑鐨勫潗鏍囩偣
+        //    JSONArray coordinates = polyline.getJSONArray("coordinates");
+        //    for (int j = 0; j < coordinates.size(); j++) {
+        //        JSONObject point = coordinates.getJSONObject(j);
+        //
+        //        PrNetworkCoordinates prNetworkCoordinates = new PrNetworkCoordinates();
+        //        prNetworkCoordinates.setNetworkId(networkId);
+        //        prNetworkCoordinates.setLat(point.getBigDecimal("lat"));
+        //        prNetworkCoordinates.setLng(point.getBigDecimal("lng"));
+        //
+        //        Long coordinateId = Optional.ofNullable(networkSv.addNetworkCoordinate(prNetworkCoordinates)).orElse(0L);
+        //        if (coordinateId.equals(0)) {
+        //            return BaseResponseUtils.buildErrorMsg(ProjectResultCode.SAVA_NETWORK_ERROR.getMessage());
+        //        }
+        //    }
+        //}
+        return BaseResponseUtils.buildSuccess(true);
+    }
+
+    /**
+     * 鑾峰彇鍏ㄩ儴绠$綉
+     * @return
+     */
+    @GetMapping(path = "/all")
+    @SsoAop()
+    public BaseResponse<List<VoNetwork>> getNetworks() {
+        try {
+            return BaseResponseUtils.buildSuccess(networkSv.getNetworks());
+        } catch (Exception e) {
+            log.error("鑾峰彇寮�鍗¤褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java
new file mode 100644
index 0000000..c0cb3fc
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java
@@ -0,0 +1,129 @@
+package com.dy.pipIrrProject.network;
+
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.dy.pipIrrGlobal.daoPr.PrNetworkCoordinatesMapper;
+import com.dy.pipIrrGlobal.daoPr.PrWaterNetworkMapper;
+import com.dy.pipIrrGlobal.pojoPr.PrNetworkCoordinates;
+import com.dy.pipIrrGlobal.pojoPr.PrWaterNetwork;
+import com.dy.pipIrrGlobal.voPr.VoNetwork;
+import com.dy.pipIrrGlobal.voPr.VoNetworkCoordinates;
+import com.dy.pipIrrProject.network.dto.Network;
+import com.dy.pipIrrProject.result.ProjectResultCode;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-27 17:08
+ * @LastEditTime 2024-08-27 17:08
+ * @Description
+ */
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class NetworkSv {
+    private final PrWaterNetworkMapper prWaterNetworkMapper;
+    private final PrNetworkCoordinatesMapper prNetworkCoordinatesMapper;
+
+    /**
+     * 娣诲姞绠$綉
+     * @param po
+     * @return
+     */
+    public Long addNetwork(PrWaterNetwork po) {
+        prWaterNetworkMapper.insert(po);
+        return po.getId();
+    }
+
+    /**
+     * 娣诲姞绠$綉鍧愭爣
+     * @param po
+     * @return
+     */
+    public Long addNetworkCoordinate(PrNetworkCoordinates po) {
+        prNetworkCoordinatesMapper.insert(po);
+        return po.getId();
+    };
+
+    /**
+     * 娣诲姞绠$綉
+     * @param po
+     * @return
+     */
+    public String addNetworks(Network po) {
+        String result = "";
+        PrWaterNetwork prWaterNetwork = null;
+        Long networkId = null;
+
+        prWaterNetworkMapper.clearNetworks();
+        prNetworkCoordinatesMapper.clearCoordinates();
+
+        JSONArray networks = po.getData();
+        for (int i = 0; i < networks.size(); i++) {
+            // 鍙栧嚭涓�绗旂粯鐢�
+            JSONObject polyline = networks.getJSONObject(i);
+            // 娣诲姞璇ョ瑪缁樼敾
+            prWaterNetwork = new PrWaterNetwork();
+            prWaterNetwork.setNetworkType(po.getType());
+            networkId = addNetwork(prWaterNetwork);
+
+            // 鍙栧嚭涓�绗旂粯鐢讳腑鐨勫潗鏍囩偣
+            JSONArray coordinates = polyline.getJSONArray("coordinates");
+            for (int j = 0; j < coordinates.size(); j++) {
+                JSONObject point = coordinates.getJSONObject(j);
+
+                PrNetworkCoordinates prNetworkCoordinates = new PrNetworkCoordinates();
+                prNetworkCoordinates.setNetworkId(networkId);
+                prNetworkCoordinates.setLat(point.getBigDecimal("lat"));
+                prNetworkCoordinates.setLng(point.getBigDecimal("lng"));
+
+                Long coordinateId = Optional.ofNullable(addNetworkCoordinate(prNetworkCoordinates)).orElse(0L);
+                if (coordinateId.equals(0)) {
+                    //return BaseResponseUtils.buildErrorMsg(ProjectResultCode.SAVA_NETWORK_ERROR.getMessage());
+                    result = ProjectResultCode.SAVA_NETWORK_ERROR.getMessage();
+                }
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 鑾峰彇鍏ㄩ儴绠$綉
+     * @return
+     */
+    public List<VoNetwork> getNetworks() {
+        JSONArray array_result = new JSONArray();
+        JSONArray array_networks = null;
+
+        List<VoNetwork> list_networks = prWaterNetworkMapper.getAllNewworks();
+        if(list_networks != null && list_networks.size() > 0) {
+            array_networks = (JSONArray) JSON.toJSON(list_networks);
+            for (int i = 0; i < array_networks.size(); i++) {
+                JSONObject job_network = array_networks.getJSONObject(i);
+
+                List<VoNetworkCoordinates> list_networkCoordinates = prNetworkCoordinatesMapper.getCoordinatesByNetworkId(job_network.getLong("networkId"));
+                if(list_networkCoordinates == null) {
+                    list_networkCoordinates = new ArrayList<>();
+                }
+
+                JSONObject job_points = new JSONObject();
+                job_points.put("type", "Polyline");
+                job_points.put("coordinates", (JSONArray) JSON.toJSON(list_networkCoordinates));
+                job_network.put("data", job_points);
+                array_result.add(job_network);
+            }
+            return array_result.toList(VoNetwork.class);
+
+        }else {
+            return new ArrayList<>();
+        }
+    }
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/dto/Network.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/dto/Network.java
new file mode 100644
index 0000000..fec1f88
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/dto/Network.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrProject.network.dto;
+
+import com.alibaba.fastjson2.JSONArray;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-28 10:23
+ * @LastEditTime 2024-08-28 10:23
+ * @Description 绠$綉浼犺緭瀵硅薄
+ */
+
+@Data
+public class Network {
+    public static final long serialVersionUID = 202408281024001L;
+
+    /**
+     * 绠$綉绫诲瀷锛�1-杈撴按锛�2-閰嶆按
+     */
+    @NotNull(message = "绠$綉绫诲瀷涓嶈兘涓虹┖")
+    private Byte type;
+
+    /**
+     * 绠$綉瀵硅薄鏁扮粍锛屾瘡涓璞℃槸涓�绗旂粯鐢�
+     */
+    private JSONArray data;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
index 6cd64b9..41cb1ba 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java
@@ -78,7 +78,12 @@
     MONITORING_FLOWMETER_BIND_FAIL(70002, "娴侀噺鐩戞祴绔欎笌娴侀噺璁$粦瀹氬け璐�"),
     STATION_OR_FLOWMETER_NO_EXIST(70003, "娴侀噺鐩戞祴绔欐垨娴侀噺璁′笉瀛樺湪"),
     STATION_FLOWMETER_HAS_UNBOUND(70004, "娴侀噺鐩戞祴绔欎笌娴侀噺璁″凡瑙g粦"),
-    NO_MONITORING_FLOWMETERS(70005, "娌℃湁绗﹀悎鏉′欢鐨勭粦瀹氳褰曟暟鎹�");
+    NO_MONITORING_FLOWMETERS(70005, "娌℃湁绗﹀悎鏉′欢鐨勭粦瀹氳褰曟暟鎹�"),
+
+    /**
+     * 绠$綉
+     */
+    SAVA_NETWORK_ERROR(30001, "淇濆瓨绠$綉澶辫触");
 
     private final Integer code;
     private final String message;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
index da3e000..1dc16a5 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java
@@ -92,6 +92,7 @@
     public void exportGeneral(HttpServletResponse response, QoGeneral vo) {
         ExcelUtil.setExcelRespProp(response, "鎬昏处" + LocalDate.now());
         List<VoGeneral> generalList = generalSv.exportGenerals(vo).getObj();
+
         EasyExcel.write(response.getOutputStream(), VoGeneral.class)
                 .registerWriteHandler(new ReportExportCellWriteHandler("璐㈠姟瀵硅处-鎬昏处"))
                 .sheet("鎬昏处")
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
index 7dc0cf8..5acba42 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java
@@ -76,9 +76,11 @@
      * 鎬昏处
      */
     GENERAL_ID_CANNOT_BE_NULL(80001, "鎬昏处缂栧彿涓嶈兘涓虹┖"),
-    GENERAL_NOT_EXIST(80001, "鎬昏处涓嶅瓨鍦�"),
-    GENERAL_AUDIT_FAIL(80001, "鎬昏处瀹℃牳澶辫触"),
-    AUDITS_ADD_FAIL(80001, "鎬昏处瀹℃牳璁板綍娣诲姞澶辫触"),
+    GENERAL_NOT_EXIST(80002, "鎬昏处涓嶅瓨鍦�"),
+    GENERAL_AUDIT_FAIL(80003, "鎬昏处瀹℃牳澶辫触"),
+    AUDITS_ADD_FAIL(80004, "鎬昏处瀹℃牳璁板綍娣诲姞澶辫触"),
+    GENERAL_IS_NULL(80005, "瑕佸鍑虹殑鎬昏处涓虹┖"),
+    TRADE_DETAILS_IS_NULL(80006, "瑕佸鍑虹殑浜ゆ槗鏄庣粏涓虹┖"),
 
     /**
      * 铏氭嫙鍗�

--
Gitblit v1.8.0