zhubaomin
2024-08-28 f22986b1aae508adbcf6d3a43e44a5e2cdda8adf
2024-08-28 朱宝民 管网添加接口、管网查询接口
11个文件已添加
3个文件已修改
707 ■■■■■ 已修改文件
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrNetworkCoordinatesMapper.java 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrWaterNetworkMapper.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrNetworkCoordinates.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrWaterNetwork.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetwork.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetworkCoordinates.java 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrNetworkCoordinatesMapper.xml 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrWaterNetworkMapper.xml 81 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkCtrl.java 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java 129 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/dto/Network.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/result/ProjectResultCode.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralCtrl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrNetworkCoordinatesMapper.java
New file
@@ -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);
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrWaterNetworkMapper.java
New file
@@ -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();
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrNetworkCoordinates.java
New file
@@ -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;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrWaterNetwork.java
New file
@@ -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;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetwork.java
New file
@@ -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;
}
pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voPr/VoNetworkCoordinates.java
New file
@@ -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;
}
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrNetworkCoordinatesMapper.xml
New file
@@ -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>
pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrWaterNetworkMapper.xml
New file
@@ -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>
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkCtrl.java
New file
@@ -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());
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkSv.java
New file
@@ -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<>();
        }
    }
}
pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/dto/Network.java
New file
@@ -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;
}
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, "流量监测站与流量计已解绑"),
    NO_MONITORING_FLOWMETERS(70005, "没有符合条件的绑定记录数据");
    NO_MONITORING_FLOWMETERS(70005, "没有符合条件的绑定记录数据"),
    /**
     * 管网
     */
    SAVA_NETWORK_ERROR(30001, "保存管网失败");
    private final Integer code;
    private final String message;
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("总账")
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, "要导出的交易明细为空"),
    /**
     * 虚拟卡