From 8d2b573ced32e6ca6fab7c1dc45e1fa108030ba1 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 28 八月 2024 17:21:23 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml                                         |    2 
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/dto/Network.java                   |   28 +
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java                                         |   33 +
 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                         |   64 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/ReportExportCellWriteHandler.java                     |  173 ++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/network/NetworkCtrl.java                   |   97 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java |    2 
 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/daoBa/BaUserMapper.java                                     |    5 
 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-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java                                        |   11 
 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/PrNetworkCoordinates.java                            |   58 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java                                    |   61 ++-
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java                           |   65 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/ExcelUtil.java                                        |   22 +
 pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/result/SellResultCode.java                       |    8 
 pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java                                          |    9 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoPr/PrNetworkCoordinatesMapper.java                       |   39 +
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml                                                    |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoPr/PrWaterNetwork.java                                  |   45 ++
 25 files changed, 1,111 insertions(+), 46 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java
index 0721be2..1a4779b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoBa/BaUserMapper.java
@@ -133,4 +133,9 @@
      */
     List<Map<String, Object>> getRoleNamesByUserId(@Param("userId") Long userId);
 
+    /**
+     * 寰楀埌鎵�鏈夋墜鏈哄彿(鐧诲綍璐﹀彿)
+     * @return
+     */
+    List<String> getPhones();
 }
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/excel/ExcelUtil.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/ExcelUtil.java
new file mode 100644
index 0000000..6674095
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/ExcelUtil.java
@@ -0,0 +1,22 @@
+package com.dy.pipIrrGlobal.excel;
+
+import jakarta.servlet.http.HttpServletResponse;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-26 10:28
+ * @LastEditTime 2024-08-26 10:28
+ * @Description 璁剧疆excel涓嬭浇鍝嶅簲澶村睘鎬�
+ */
+public class ExcelUtil {
+    public static void setExcelRespProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException {
+        String fileName = URLEncoder.encode(rawFileName, "UTF-8").replaceAll("\\+", "%20");
+        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+        response.setCharacterEncoding("utf-8");
+        response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/ReportExportCellWriteHandler.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/ReportExportCellWriteHandler.java
new file mode 100644
index 0000000..8f3ede8
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/excel/ReportExportCellWriteHandler.java
@@ -0,0 +1,173 @@
+package com.dy.pipIrrGlobal.excel;
+
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.metadata.data.WriteCellData;
+import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteTableHolder;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
+import com.alibaba.excel.write.style.AbstractVerticalCellStyleStrategy;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.DefaultIndexedColorMap;
+import org.apache.poi.xssf.usermodel.XSSFCellStyle;
+import org.apache.poi.xssf.usermodel.XSSFColor;
+import org.springframework.util.PropertyPlaceholderHelper;
+
+import java.util.List;
+import java.util.Objects;
+import java.util.Properties;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-08-26 14:18
+ * @LastEditTime 2024-08-26 14:18
+ * @Description
+ */
+
+public class ReportExportCellWriteHandler extends AbstractVerticalCellStyleStrategy  {
+    private String title;
+
+    PropertyPlaceholderHelper propertyPlaceholderHelper = new PropertyPlaceholderHelper("${", "}");
+
+    public ReportExportCellWriteHandler(String title) {
+        this.title = title;
+    }
+
+    // 鍔ㄦ�佸鍏ユ爣棰�
+    @Override
+    public void beforeCellCreate(WriteSheetHolder writeSheetHolder, WriteTableHolder writeTableHolder,
+                                 Row row, Head head, Integer integer, Integer integer1, Boolean aBoolean) {
+        if (head != null) {
+            List<String> headNameList = head.getHeadNameList();
+            if (CollectionUtils.isNotEmpty(headNameList)) {
+                Properties properties = new Properties();
+                properties.setProperty("title", title);
+                headNameList.replaceAll(value -> propertyPlaceholderHelper.replacePlaceholders(value, properties));
+            }
+        }
+    }
+
+    // 璁剧疆鏍囬鏍峰紡锛屽寘鍚瓧浣撱�佽儗鏅�
+    @Override
+    protected void setHeadCellStyle(CellWriteHandlerContext context) {
+        // 鑾峰彇鍜屽垱寤篊ellStyle
+        WriteCellData<?> cellData = context.getFirstCellData();
+        CellStyle originCellStyle = cellData.getOriginCellStyle();
+        Cell cell = context.getCell();
+
+        if (Objects.isNull(originCellStyle)) {
+            originCellStyle = context.getWriteWorkbookHolder().getWorkbook().createCellStyle();
+        }
+
+        ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 255, 255), new DefaultIndexedColorMap()));
+
+        // 璁剧疆鎸囧畾鍒楄儗鏅壊
+        //if(cell.getColumnIndex() == 10
+        //) {
+        //    ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(237, 237, 237), new DefaultIndexedColorMap()));
+        //}
+
+        // 璁剧疆鑳屾櫙棰滆壊
+        originCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        // 鐢变簬鍦‵illStyleCellWriteHandler锛屼細鎶奜riginCellStyle鍜學riteCellStyle鍚堝苟锛屼細浠riteCellStyle鏍峰紡涓轰富锛屾墍鏈夊繀椤绘妸WriteCellStyle璁剧疆鐨勮儗鏅壊娓呯┖
+        // 鍏蜂綋鍚堝苟瑙勫垯鐪媁riteWorkbookHolder.createCellStyle鏂规硶
+        WriteCellStyle writeCellStyle = cellData.getWriteCellStyle();
+        writeCellStyle.setFillForegroundColor(null);
+        // 蹇呴』璁剧疆OriginCellStyle
+        cellData.setOriginCellStyle(originCellStyle);
+
+        WriteFont headWriteFont = new WriteFont();
+        if (cell.getRowIndex() == 0) {
+            headWriteFont.setFontHeightInPoints((short)14);
+            headWriteFont.setFontName("Arial");
+            headWriteFont.setBold(true);
+        }else if (cell.getRowIndex() == 1) {
+            headWriteFont.setFontHeightInPoints((short)12);
+            headWriteFont.setFontName("Arial");
+            headWriteFont.setBold(false);
+        }
+
+        cellData.getWriteCellStyle().setWriteFont(headWriteFont);
+    }
+
+    // 璁剧疆鍐呭鍏ず銆佸唴瀹瑰瓧浣撴牱寮忋�佽儗鏅牱寮�
+    @Override
+    protected void setContentCellStyle(CellWriteHandlerContext context) {
+
+        // 鑾峰彇鍜屽垱寤篊ellStyle
+        WriteCellData<?> cellData = context.getFirstCellData();
+        CellStyle originCellStyle = cellData.getOriginCellStyle();
+        Cell cell = context.getCell();
+
+        if (Objects.isNull(originCellStyle)) {
+            originCellStyle = context.getWriteWorkbookHolder().getWorkbook().createCellStyle();
+        }
+        // 璁剧疆鑳屾櫙棰滆壊
+        ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 192, 0), new DefaultIndexedColorMap()));
+        //System.out.println("Go to row: " +  context.getCell().getRowIndex() + ", column: " +  context.getCell().getColumnIndex());
+
+        if (cell.getRowIndex() >= 2){
+            ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(237, 237, 237), new DefaultIndexedColorMap()));
+            // 绁ㄩ潰鎬讳环
+            //if (cell.getColumnIndex() == 10){
+            //    int actualCellRowNum =  context.getCell().getRowIndex() + 1;
+            //    context.getCell().setCellFormula("I" + actualCellRowNum +"+J" + actualCellRowNum);
+            //    System.out.println("绗�" +   context.getCell().getRowIndex() + "琛�,绗�" +  context.getCell().getColumnIndex() + "绁ㄩ潰鎬讳环鍐欏叆鍏紡瀹屾垚");
+            //}else if (cell.getColumnIndex() == 12){
+            //    // 鏀粯绁ㄦ
+            //    int actualCellRowNum =  context.getCell().getRowIndex() + 1;
+            //    context.getCell().setCellFormula("K" + actualCellRowNum +"-L" + actualCellRowNum);
+            //    System.out.println("绗�" +   context.getCell().getRowIndex() + "琛�,绗�" +  context.getCell().getColumnIndex() + "鏀粯绁ㄦ鍐欏叆鍏紡瀹屾垚");
+            //}else if (cell.getColumnIndex() == 15){
+            //    // 鏀粯鎬婚
+            //    int actualCellRowNum =  context.getCell().getRowIndex() + 1;
+            //    context.getCell().setCellFormula("M" + actualCellRowNum +"+N" + actualCellRowNum +"+O" + actualCellRowNum);
+            //    System.out.println("绗�" +   context.getCell().getRowIndex() + "琛�,绗�" +  context.getCell().getColumnIndex() + "鏀粯鎬婚鍐欏叆鍏紡瀹屾垚");
+            //}else if (cell.getColumnIndex() == 17){
+            //    // 瀹為檯鍒╂鼎
+            //    int actualCellRowNum =  context.getCell().getRowIndex() + 1;
+            //    context.getCell().setCellFormula("L" + actualCellRowNum +"+Q" + actualCellRowNum);
+            //    System.out.println("绗�" +   context.getCell().getRowIndex() + "琛�,绗�" +  context.getCell().getColumnIndex() + "瀹為檯鍒╂鼎鍐欏叆鍏紡瀹屾垚");
+            //}else if (cell.getColumnIndex() == 18){
+            //    // 搴旀敹娆�
+            //    int actualCellRowNum =  context.getCell().getRowIndex() + 1;
+            //    context.getCell().setCellFormula("P" + actualCellRowNum +"+R" + actualCellRowNum);
+            //    System.out.println("绗�" +   context.getCell().getRowIndex() + "琛�,绗�" +  context.getCell().getColumnIndex() + "搴旀敹娆惧啓鍏ュ叕寮忓畬鎴�");
+            //}else if (cell.getColumnIndex() == 20){
+            //    // 鏈敹娆�
+            //    int actualCellRowNum =  context.getCell().getRowIndex() + 1;
+            //    context.getCell().setCellFormula("S" + actualCellRowNum +"-T" + actualCellRowNum);
+            //    System.out.println("绗�" +   context.getCell().getRowIndex() + "琛�,绗�" +  context.getCell().getColumnIndex() + "鏈敹娆惧啓鍏ュ叕寮忓畬鎴�");
+            //}else if (cell.getColumnIndex() >= 2){
+            //    ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(189, 215, 238), new DefaultIndexedColorMap()));
+            //}else if (cell.getColumnIndex() < 2){
+            //    ((XSSFCellStyle) originCellStyle).setFillForegroundColor(new XSSFColor(new java.awt.Color(255, 192, 0), new DefaultIndexedColorMap()));
+            //}
+        }
+
+        originCellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
+        originCellStyle.setBorderLeft(BorderStyle.THIN);                    //宸﹁竟妗嗙嚎
+        originCellStyle.setBorderTop(BorderStyle.THIN);                     //椤堕儴妗嗙嚎
+        originCellStyle.setBorderRight(BorderStyle.THIN);                   //鍙宠竟妗嗙嚎
+        originCellStyle.setBorderBottom(BorderStyle.THIN);                  //搴曢儴妗嗙嚎
+        // 鐢变簬鍦‵illStyleCellWriteHandler锛屼細鎶奜riginCellStyle鍜學riteCellStyle鍚堝苟锛屼細浠riteCellStyle鏍峰紡涓轰富锛屾墍鏈夊繀椤绘妸WriteCellStyle璁剧疆鐨勮儗鏅壊娓呯┖
+        // 鍏蜂綋鍚堝苟瑙勫垯鐪媁riteWorkbookHolder.createCellStyle鏂规硶
+        WriteCellStyle writeCellStyle = cellData.getWriteCellStyle();
+        writeCellStyle.setFillForegroundColor(null);
+        writeCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+        writeCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        // 蹇呴』璁剧疆OriginCellStyle
+        cellData.setOriginCellStyle(originCellStyle);
+
+        WriteFont headWriteFont = new WriteFont();
+        headWriteFont.setFontHeightInPoints((short)12);
+        headWriteFont.setFontName("瀹嬩綋");
+        headWriteFont.setBold(false);
+        headWriteFont.setColor(IndexedColors.BLACK.getIndex());
+
+        cellData.getWriteCellStyle().setWriteFont(headWriteFont);
+    }
+}
+
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/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java
index 49ef7bb..264803d 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoGeneral.java
@@ -1,5 +1,10 @@
 package com.dy.pipIrrGlobal.voSe;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
 import com.alibaba.fastjson2.annotation.JSONField;
 import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
 import com.dy.common.po.BaseEntity;
@@ -16,40 +21,50 @@
 
 @Data
 @JsonPropertyOrder({ "generalId", "cashierId", "cashierName", "tradeAmount", "gift", "refundAmount", "totalAmount", "operateDate", "auditStatus"})
-@Schema(title = "璐㈠姟瀵硅处涔嬫�昏处瑙嗗浘瀵硅薄")
+@HeadRowHeight(30)
+@ContentRowHeight(20)
 public class VoGeneral implements BaseEntity {
     private static final long serialVersionUID = 202401241706001L;
 
     @Schema(title = "鎬昏处ID")
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @ExcelIgnore
     private Long generalId;
 
     @Schema(title = "鏀堕摱鍛業D")
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @ExcelIgnore
     private Long cashierId;
 
-    @Schema(title = "鏀堕摱鍛樺鍚�")
+    @ExcelProperty(value = {"${title}", "鏀堕摱鍛樺鍚�"})
+    @ColumnWidth(18)
     private String cashierName;
 
-    @Schema(title = "瀹炴敹閲戦")
+    @ExcelProperty(value = {"${title}", "瀹炴敹閲戦"})
+    @ColumnWidth(15)
     private Float tradeAmount;
 
-    @Schema(title = "璧犻�侀噾棰�")
+    @ExcelProperty(value = {"${title}", "璧犻�侀噾棰�"})
+    @ColumnWidth(15)
     private Float gift;
 
-    @Schema(title = "杩旇繕閲戦")
+    @ExcelProperty(value = {"${title}", "杩旇繕閲戦"})
+    @ColumnWidth(15)
     private Float refundAmount;
 
     /**
-     * 鎬婚 = 瀹炴敹閲戦 + 璧犻�侀噾棰� + 杩旇繕閲戦
+     * 鎬婚 = 瀹炴敹閲戦 + 璧犻�侀噾棰� - 杩旇繕閲戦
      */
-    @Schema(title = "鎬婚")
+    @ExcelProperty(value = {"${title}", "鎬婚"})
+    @ColumnWidth(10)
     private Float totalAmount;
 
-    @Schema(title = "浜ゆ槗鏃ユ湡")
+    @ExcelProperty(value = {"${title}", "浜ゆ槗鏃ユ湡"})
+    @ColumnWidth(15)
     private String operateDate;
 
-    @Schema(title = "瀹℃牳鐘舵��")
+    @ExcelProperty(value = {"${title}", "瀹℃牳鐘舵��"})
+    @ColumnWidth(15)
     private String auditStatus;
 
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java
index 3caef8d..559f77e 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voSe/VoTradeDetails.java
@@ -1,7 +1,12 @@
 package com.dy.pipIrrGlobal.voSe;
 
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
 import com.dy.common.po.BaseEntity;
-import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -16,51 +21,67 @@
  */
 
 @Data
-@Schema(title = "璐㈠姟瀵硅处锛屼氦鏄撴槑缁嗚鍥惧璞�")
+@JsonPropertyOrder({ "cashierId", "villageId", "clientNum", "districtTitle", "clientName", "phone", "operateType", "tradeAmount", "waterCost", "cardCost", "gift", "refundAmount", "paymentName", "tradeTime"})
+@HeadRowHeight(30)
+@ContentRowHeight(20)
 public class VoTradeDetails implements BaseEntity {
     private static final long serialVersionUID = 202402012040001L;
 
     @Schema(title = "鏀堕摱鍛業D")
+    @ExcelIgnore
     private String cashierId;
 
-    @Schema(title = "鍖哄垝鍚嶇О涓�")
-    private String districtTitle;
-
     @Schema(title = "鏉戝簞ID")
+    @ExcelIgnore
     private String villageId;
 
-    @Schema(title = "鍐滄埛濮撳悕")
-    private String clientName;
-
-    @Schema(title = "鑱旂郴鐢佃瘽")
-    private String phone;
-
     @Schema(title = "鍐滄埛缂栧彿")
+    @ExcelIgnore
     private String clientNum;
 
-    @Schema(title = "涓氬姟绫诲瀷")
+    @ExcelProperty(value = {"${title}", "鏉戝簞鍚嶇О"})
+    @ColumnWidth(20)
+    private String districtTitle;
+
+    @ExcelProperty(value = {"${title}", "鍐滄埛濮撳悕"})
+    @ColumnWidth(15)
+    private String clientName;
+
+    @ExcelProperty(value = {"${title}", "鑱旂郴鐢佃瘽"})
+    @ColumnWidth(15)
+    private String phone;
+
+    @ExcelProperty(value = {"${title}", "涓氬姟绫诲瀷"})
+    @ColumnWidth(15)
     private String operateType;
 
-    @Schema(title = "浜ゆ槗閲戦")
+    @ExcelProperty(value = {"${title}", "浜ゆ槗閲戦"})
+    @ColumnWidth(15)
     private Double tradeAmount;
 
-    @Schema(title = "璐按閲戦")
+    @ExcelProperty(value = {"${title}", "璐按閲戦"})
+    @ColumnWidth(15)
     private Double waterCost;
 
-    @Schema(title = "璐崱閲戦")
+    @ExcelProperty(value = {"${title}", "璐崱閲戦"})
+    @ColumnWidth(15)
     private Double cardCost;
 
-    @Schema(title = "璧犻�侀噾棰�")
+    @ExcelProperty(value = {"${title}", "璧犻�侀噾棰�"})
+    @ColumnWidth(15)
     private Double gift;
 
-    @Schema(title = "杩斿洖閲戦")
+    @ExcelProperty(value = {"${title}", "杩旇繕閲戦"})
+    @ColumnWidth(15)
     private Double refundAmount;
 
-    @Schema(title = "浠樻鏂瑰紡")
+    @ExcelProperty(value = {"${title}", "浠樻鏂瑰紡"})
+    @ColumnWidth(15)
     private String paymentName;
 
     @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    @Schema(title = "浜ゆ槗鏃堕棿")
+    @ExcelProperty(value = {"${title}", "浜ゆ槗鏃堕棿"})
+    @ColumnWidth(20)
     private Date tradeTime;
+
 }
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
index dcb0b69..fa6d313 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/BaUserMapper.xml
@@ -366,4 +366,8 @@
         from ba_user
         where id = #{id,jdbcType=BIGINT}
     </select>
+
+    <select id="getPhones" resultType="java.lang.String">
+        SELECT phone FROM ba_user WHERE deleted = 0 and disabled = 0
+    </select>
 </mapper>
\ No newline at end of file
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-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
index 0a4eb71..9e7786d 100644
--- a/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
+++ b/pipIrr-platform/pipIrr-mw/pipIrr-mw-rtu/src/main/resources/application-database.yml
@@ -3,7 +3,7 @@
     datasource: #閰嶇疆鏁版嵁婧�
         type: com.alibaba.druid.pool.DruidDataSource
         driver-class-name: com.mysql.cj.jdbc.Driver
-        #url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
+#        url: jdbc:mysql://192.168.40.166:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
         #url: jdbc:mysql://8.130.130.233:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
         #url: jdbc:mysql://8.140.179.55:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
         url: jdbc:mysql://127.0.0.1:3306/pipIrr_ym?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
index fe3ca1a..8bc4a6b 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-project/src/main/java/com/dy/pipIrrProject/intakeController/IntakeControllerCtrl.java
@@ -104,6 +104,7 @@
         prController.setRtuAddr(prControllerTramp.getRtuAddr());
         prController.setProtocol(prControllerTramp.getProtocol());
         prController.setFindDt(prControllerTramp.getFindDt());
+        prController.setOrgTag(prControllerTramp.getOrgTag());
         prController.setAddWays((byte) 1);
         prController.setOperator(operator);
         Date operateTime = new Date();
@@ -188,6 +189,7 @@
         prControllerTramp.setRtuAddr(ControllerList.getRtuAddr());
         prControllerTramp.setProtocol(ControllerList.getProtocol());
         prControllerTramp.setFindDt(new Date());
+        prControllerTramp.setOrgTag(ControllerList.getOrgTag());
         Integer rec_addControllerTramp = Optional.ofNullable(intakeControllerSv.addTrampController(prControllerTramp)).orElse(0);
         if (rec_addControllerTramp == 0) {
             return BaseResponseUtils.buildFail(ProjectResultCode.ADD_TRAMP_CONTROLLER_FAIL.getMessage());
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 f8f3b8b..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
@@ -1,14 +1,18 @@
 package com.dy.pipIrrSell.general;
 
+import com.alibaba.excel.EasyExcel;
 import com.dy.common.aop.SsoAop;
 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.pipIrrGlobal.excel.ExcelUtil;
+import com.dy.pipIrrGlobal.excel.ReportExportCellWriteHandler;
 import com.dy.pipIrrGlobal.pojoBa.BaClient;
 import com.dy.pipIrrGlobal.pojoSe.SeAudits;
 import com.dy.pipIrrGlobal.pojoSe.SeGeneral;
 import com.dy.pipIrrGlobal.voSe.VoGeneral;
+import com.dy.pipIrrGlobal.voSe.VoTradeDetails;
 import com.dy.pipIrrSell.general.dto.DtoGeneral;
 import com.dy.pipIrrSell.general.qo.QoGeneral;
 import com.dy.pipIrrSell.general.qo.QoSummary;
@@ -20,14 +24,18 @@
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.responses.ApiResponses;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
+import lombok.SneakyThrows;
 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.io.IOException;
+import java.time.LocalDate;
 import java.util.*;
 
 /**
@@ -66,15 +74,29 @@
         try {
             add_general();
             QueryResultVo<List<VoGeneral>> res = generalSv.getGenerals(vo);
-            if(res.itemTotal > 0) {
-                return BaseResponseUtils.buildSuccess(res);
-            }else {
-                return BaseResponseUtils.buildSuccess(SellResultCode.No_GENERALS.getMessage());
-            }
+            return BaseResponseUtils.buildSuccess(res);
         } catch (Exception e) {
             log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
+    }
+
+    /**
+     * 瀵煎嚭鎬昏处璁板綍
+     * @param response
+     * @param vo
+     */
+    @SneakyThrows(IOException.class)
+    @RequestMapping(value = "/export_general", method = RequestMethod.GET)
+    @SsoAop()
+    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("鎬昏处")
+                .doWrite(generalList);
     }
 
     /**
@@ -218,15 +240,35 @@
     @SsoAop()
     public BaseResponse<Map> getTradeDetails(QoToAudit vo){
         try {
-            Map res = Optional.ofNullable(generalSv.getTradeDetails(vo)).orElse(new HashMap());
-            if(res.size() > 0) {
-                return BaseResponseUtils.buildSuccess(res);
-            }else {
-                return BaseResponseUtils.buildFail(SellResultCode.No_TRADE_DETAILS.getMessage());
-            }
+            return BaseResponseUtils.buildSuccess(generalSv.getTradeDetails(vo));
         } catch (Exception e) {
             log.error("鏌ヨ浜ゆ槗璁板綍寮傚父", e);
             return BaseResponseUtils.buildException(e.getMessage()) ;
         }
     }
+
+    /**
+     * 瀵煎嚭璐㈠姟瀵硅处_浜ゆ槗鏄庣粏
+     * @param response
+     * @param vo
+     */
+    @SneakyThrows(IOException.class)
+    @RequestMapping(value = "/export_trade_details", method = RequestMethod.GET)
+    @SsoAop()
+    public void exportTradeDetails(HttpServletResponse response, QoToAudit vo) {
+        ExcelUtil.setExcelRespProp(response, "浜ゆ槗鏄庣粏" + LocalDate.now());
+
+        Map map_result = generalSv.exportTradeDetails(vo);
+        Map map_record = (Map) map_result.get("records");
+        List<VoTradeDetails> list = (List<VoTradeDetails>) map_record.get("list");
+        Double totalTradeAmount = Double.parseDouble(map_result.get("totalTradeAmount").toString());
+        VoTradeDetails po = new VoTradeDetails();
+        po.setTradeAmount(totalTradeAmount);
+        list.add(po);
+
+        EasyExcel.write(response.getOutputStream(), VoTradeDetails.class)
+                .registerWriteHandler(new ReportExportCellWriteHandler("璐㈠姟瀵硅处-浜ゆ槗鏄庣粏"))
+                .sheet("浜ゆ槗鏄庣粏")
+                .doWrite(list);
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java
index 7c6804d..49c1cce 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sell/src/main/java/com/dy/pipIrrSell/general/GeneralSv.java
@@ -88,8 +88,25 @@
         rsVo.pageSize = queryVo.pageSize ;
         rsVo.pageCurr = queryVo.pageCurr ;
 
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = seGeneralMapper.getGenerals(params);
+        return rsVo ;
+    }
+
+    /**
+     * 瀵煎嚭鎸囧畾鏉′欢鐨勬�昏处璁板綍
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoGeneral>> exportGenerals(QoGeneral queryVo) {
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = seGeneralMapper.getRecordCount(params);
+        QueryResultVo<List<VoGeneral>> rsVo = new QueryResultVo<>() ;
 
         rsVo.calculateAndSet(itemTotal, params);
+        params.remove("start");
+        params.remove("count");
         rsVo.obj = seGeneralMapper.getGenerals(params);
         return rsVo ;
     }
@@ -279,4 +296,52 @@
         return map_result;
 
     }
+
+    /**
+     * 瀵煎嚭浜ゆ槗鏄庣粏璁板綍
+     * @param queryVo
+     * @return
+     */
+    public Map exportTradeDetails(QoToAudit queryVo) {
+        DecimalFormat df = new DecimalFormat("0.00");
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = seGeneralMapper.getTradeDetailsRecordCount(params);
+
+        QueryResultVo<List<VoTradeDetails>> rsVo = new QueryResultVo<>() ;
+        rsVo.pageSize = queryVo.pageSize ;
+        rsVo.pageCurr = queryVo.pageCurr ;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        params.remove("start");
+        params.remove("count");
+        List<VoTradeDetails> list = Optional.ofNullable(seGeneralMapper.getTradeDetails(params)).orElse(new ArrayList<>());
+        if(list.size() == 0) {
+            return new HashMap();
+        }
+
+        // 閬嶅巻浜ゆ槗鏄庣粏璁板綍锛屾眹鎬讳氦鏄撻噾棰�
+        Double totalTradeAmount = 0.0;
+        JSONArray array= JSONArray.parseArray(JSON.toJSONString(list));
+        for(int i = 0; i < array.size(); i++) {
+            JSONObject job = array.getJSONObject(i);
+            Double tradeAmount = Optional.ofNullable(job.getDouble("tradeAmount")).orElse(0.0);
+            totalTradeAmount = totalTradeAmount + tradeAmount;
+        }
+
+        Map map_record = new HashMap();
+        map_record.put("itemTotal", rsVo.itemTotal);
+        map_record.put("pageCurr", rsVo.pageCurr);
+        map_record.put("pageSize", rsVo.pageSize);
+        map_record.put("pageTotal", rsVo.pageTotal);
+        map_record.put("list", list);
+
+        Map map_result = new HashMap();
+
+        map_result.put("totalTradeAmount", df.format(totalTradeAmount));
+        map_result.put("records", map_record);
+
+        return map_result;
+
+    }
 }
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, "瑕佸鍑虹殑浜ゆ槗鏄庣粏涓虹┖"),
 
     /**
      * 铏氭嫙鍗�
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
index b15cb61..47d2e2f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoCtrl.java
@@ -102,6 +102,9 @@
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
+        if(vo.phone == null || vo.phone.trim().length() == 0){
+            return BaseResponseUtils.buildFail("鎵嬫満鍙蜂笉鑳戒负绌�");
+        }
         if(!vo.phone.equals("admin")){
             if(vo.phone.length() != 11){
                 return BaseResponseUtils.buildFail("鎵嬫満鍙凤紙闀垮害涓嶆槸11浣嶏級涓嶆纭�");
@@ -112,6 +115,12 @@
         }
         //鎶婄粍缁囧崟浣嶆爣绛句綔涓烘暟鎹簮鍚嶇О
         DataSourceContext.set(vo.orgTag);
+
+        //寰楀埌鎵�鏈夌敤鎴疯处鍙�
+        List<String> phones = sv.getPhones();
+        if(!phones.contains(vo.phone)){
+            return BaseResponseUtils.buildFail("璐﹀彿涓嶅瓨鍦�");
+        }
 
         String uuid ;
         BaUser userPo ;
@@ -136,7 +145,7 @@
             uVo.token = uuid ;
             return BaseResponseUtils.buildSuccess(uVo);
         }else{
-            return BaseResponseUtils.buildFail("鐧诲綍澶辫触");
+            return BaseResponseUtils.buildFail("瀵嗙爜閿欒");
         }
     }
 
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java
index 9dd39b3..fbd0ceb 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-sso/src/main/java/com/dy/sso/busi/SsoSv.java
@@ -10,6 +10,8 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.List;
+
 @Slf4j
 @Service
 public class SsoSv {
@@ -67,4 +69,11 @@
         return null ;
     }
 
+    /**
+     * 寰楀埌鎵�鏈夌敤鎴锋墜鏈哄彿
+     * @return
+     */
+    public List<String> getPhones(){
+        return baUserMapper.getPhones() ;
+    }
 }

--
Gitblit v1.8.0