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