From abd8ca3f3a51423abc469b211a7c1d36ce9dfc28 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期一, 11 十一月 2024 18:52:50 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeIssueReport.java                     |   95 ++++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java            |  146 ++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/dto/DtoDeleteProResult.java |   28 +
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java              |   14 
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java                  |   55 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeIssueReportMapper.java                |   27 +
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/qo/OnLineIntakesQO.java  |   13 
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java                    |   51 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeIssueReport.java                      |    2 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeProcessingResultMapper.xml                          |   42 +
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java          |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java              |   46 ++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java              |    4 
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java          |   89 +++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml                               |  173 ++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml                                               |   15 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java                   |   47 +
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java            |   89 ++--
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml                                     |   27 -
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java                   |   94 ++++
 /dev/null                                                                                                      |   64 ---
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeWorkOrderMapper.java                  |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml                                 |   10 
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java          |    1 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeProcessingResultMapper.java           |   28 +
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java            |   33 -
 26 files changed, 960 insertions(+), 241 deletions(-)

diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java
index adef976..fcad735 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeApproveResultMapper.java
@@ -6,8 +6,8 @@
 
 /**
  * @author ZhuBaoMin
- * @date 2024-11-06 11:49
- * @LastEditTime 2024-11-06 11:49
+ * @date 2024-11-11 9:32
+ * @LastEditTime 2024-11-11 9:32
  * @Description
  */
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeIssueReportMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeIssueReportMapper.java
new file mode 100644
index 0000000..dde252e
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeIssueReportMapper.java
@@ -0,0 +1,27 @@
+package com.dy.pipIrrGlobal.daoOp;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-11 16:18
+ * @LastEditTime 2024-11-11 16:18
+ * @Description
+ */
+
+@Mapper
+public interface OpeIssueReportMapper extends BaseMapper<OpeIssueReport> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(OpeIssueReport record);
+
+    int insertSelective(OpeIssueReport record);
+
+    OpeIssueReport selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(OpeIssueReport record);
+
+    int updateByPrimaryKey(OpeIssueReport record);
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeProcessingResultMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeProcessingResultMapper.java
index ad53364..c3ab70b 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeProcessingResultMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeProcessingResultMapper.java
@@ -2,7 +2,9 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
+import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author ZhuBaoMin
@@ -26,9 +28,31 @@
     int updateByPrimaryKey(OpeProcessingResult record);
 
     /**
-     * 鏍规嵁workOrderId鑾峰彇鏈垹闄ょ殑澶勭悊缁撴灉鏁伴噺锛屾坊鍔犵粨鏋滀笂鎶ュ墠鍒ゆ柇浣跨敤
+     * 鏍规嵁宸ュ崟ID鑾峰彇鏈垹闄ょ殑宸ュ崟瀵硅薄
      * @param workOrderId
      * @return
      */
-    Integer getValidResultCount(Long workOrderId);
+    OpeProcessingResult getByWorkOrderId(Long workOrderId);
+
+    /**
+     * 鑾峰彇鎸囧畾宸℃鍛樼殑鎸囧畾鏈垹闄や笖鏈鎵圭殑澶勭悊缁撴灉涓婃姤锛屽垹闄ゅ鐞嗙粨鏋滃墠鍒ゆ柇浣跨敤浣跨敤
+     * @param proResultId
+     * @param inspectorId
+     * @return
+     */
+    OpeProcessingResult getProResult(@Param("proResultId")Long proResultId, @Param("inspectorId")Long inspectorId);
+
+    /**
+     * 閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫鐞嗙粨鏋滆褰�
+     * @param proResultId
+     * @return
+     */
+    Integer deleteProResult(Long proResultId);
+
+    /**
+     * 鏍规嵁涓婚敭鑾峰彇澶勭悊缁撴灉瑙嗗浘瀵硅薄
+     * @param proResultId
+     * @return
+     */
+    VoProcessingResult getProResultById(Long proResultId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeWorkOrderMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeWorkOrderMapper.java
index 998ab45..e0bf898 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeWorkOrderMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeWorkOrderMapper.java
@@ -39,11 +39,11 @@
 
     /**
      * 鑾峰彇鎸囧畾娲惧崟浜虹殑鎸囧畾鏈垹闄ゅ伐鍗曪紝鍒犻櫎宸ュ崟鍓嶅垽鏂娇鐢ㄤ娇鐢�
-     * @param dispatcherId
      * @param workOrderId
+     * @param dispatcherId
      * @return
      */
-    OpeWorkOrder getWorkOrder(@Param("dispatcherId")Long dispatcherId, @Param("workOrderId")Long workOrderId);
+    OpeWorkOrder getWorkOrder(@Param("workOrderId")Long workOrderId, @Param("dispatcherId")Long dispatcherId);
 
     /**
      * 閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫伐鍗�
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java
index 22e2ff0..23d5d43 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeApproveResult.java
@@ -7,65 +7,76 @@
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.dy.common.po.BaseEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import jakarta.validation.constraints.Max;
+import jakarta.validation.constraints.Min;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Positive;
 import lombok.*;
 
 import java.util.Date;
 
 /**
  * @author ZhuBaoMin
- * @date 2024-11-06 11:49
- * @LastEditTime 2024-11-06 11:49
+ * @date 2024-11-11 9:32
+ * @LastEditTime 2024-11-11 9:32
  * @Description 澶勭悊缁撴灉瀹℃牳瀹炰綋绫�
  */
 
-@TableName(value="ope_approve_result", autoResultMap = true)
+@TableName(value = "ope_approve_result", autoResultMap = true)
 @Data
 @Builder
 @ToString
 @NoArgsConstructor
 @AllArgsConstructor
 public class OpeApproveResult implements BaseEntity {
-    public static final long serialVersionUID = 202411061152001L;
+    public static final long serialVersionUID = 202411110935001L;
 
     /**
-    * 涓婚敭
-    */
+     * 涓婚敭
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     @TableId(type = IdType.INPUT)
     private Long id;
 
     /**
-    * 宸ュ崟ID
-    */
+     * 宸ュ崟ID
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "宸ュ崟ID涓嶈兘涓虹┖")
     private Long workOrderId;
 
     /**
-    * 澶勭悊缁撴灉ID
-    */
+     * 澶勭悊缁撴灉ID
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "澶勭悊缁撴灉涓嶈兘涓虹┖")
     private Long processingResultId;
 
     /**
-    * 瀹℃牳浜篒D
-    */
+     * 瀹℃牳浜篒D
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @NotNull(message = "瀹℃牳浜轰笉鑳戒负绌�")
     private Long approverId;
 
     /**
-    * 瀹℃牳鏃堕棿
-    */
+     * 瀹℃牳鏃堕棿
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date approveTime;
 
     /**
-    * 瀹℃牳缁撴灉;1-閫氳繃锛�2-椹冲洖
-    */
+     * 瀹℃牳缁撴灉;1-閫氳繃锛�2-椹冲洖
+     */
+    @NotNull(message = "瀹℃牳缁撴灉涓嶈兘涓虹┖")
+    @Positive(message = "瀹℃牳缁撴灉鍊煎繀椤讳负姝f暟")
+    @Min(value = 1, message = "瀹℃牳缁撴灉鏈�灏忎负1")
+    @Max(value = 2, message = "瀹℃牳缁撴灉鏈�澶т负2")
     private Byte approveResult;
 
     /**
-    * 閫昏緫鍒犻櫎鏍囪瘑;鏈垹闄や负0锛屽凡鍒犻櫎涓哄垹闄ゆ椂闂�
-    */
+     * 閫昏緫鍒犻櫎鏍囪瘑;鏈垹闄や负0锛屽凡鍒犻櫎涓哄垹闄ゆ椂闂�
+     */
     @JSONField(serializeUsing= ObjectWriterImplToString.class)
     private Long deleted;
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeIssueReport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeIssueReport.java
new file mode 100644
index 0000000..8cf2652
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoOp/OpeIssueReport.java
@@ -0,0 +1,95 @@
+package com.dy.pipIrrGlobal.pojoOp;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.*;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-11 16:18
+ * @LastEditTime 2024-11-11 16:18
+ * @Description 宸℃鍛橀棶棰樹笂鎶ュ疄浣撶被
+ */
+
+@TableName(value="ope_issue_report", autoResultMap = true)
+@Data
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class OpeIssueReport implements BaseEntity {
+    public static final long serialVersionUID = 202411111622001L;
+
+    /**
+    * 涓婚敭
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    @TableId(type = IdType.INPUT)
+    private Long id;
+
+    /**
+    * 闂鍐呭
+    */
+    private String content;
+
+    /**
+    * 鐓х墖鍒楄〃
+    */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private JSONArray images;
+
+    /**
+    * 闊抽鍒楄〃
+    */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private JSONArray audios;
+
+    /**
+    * 瑙嗛鍒楄〃
+    */
+    @TableField(typeHandler = JacksonTypeHandler.class)
+    private JSONArray videos;
+
+    /**
+    * 缁忓害
+    */
+    private BigDecimal lng;
+
+    /**
+    * 绾害
+    */
+    private BigDecimal lat;
+
+    /**
+    * 宸℃鍛業D
+    */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long inspectorId;
+
+    /**
+    * 涓婃姤鏃堕棿
+    */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reportTime;
+
+    /**
+    * 鑱旂郴鐢佃瘽
+    */
+    private String phone;
+
+    /**
+    * 鐘舵��;1-鏈彈鐞嗭紝2-宸插彈鐞嗭紝3宸插垹闄�
+    */
+    private Byte state;
+}
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeIssueReport.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeIssueReport.java
index 1fca704..c2f83b4 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeIssueReport.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/pojoSe/SeIssueReport.java
@@ -19,7 +19,7 @@
  * @author ZhuBaoMin
  * @date 2024-10-29 16:53
  * @LastEditTime 2024-10-29 16:53
- * @Description 闂涓婃姤瀹炰綋绫�
+ * @Description 鍐滄埛闂涓婃姤瀹炰綋绫�
  */
 
 @TableName(value="se_issue_report", autoResultMap = true)
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java
new file mode 100644
index 0000000..3f927c2
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoProcessingResult.java
@@ -0,0 +1,94 @@
+package com.dy.pipIrrGlobal.voOp;
+
+import com.alibaba.fastjson2.annotation.JSONField;
+import com.alibaba.fastjson2.writer.ObjectWriterImplToString;
+import com.dy.common.po.BaseEntity;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonPropertyOrder;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-08 14:59
+ * @LastEditTime 2024-11-08 14:59
+ * @Description
+ */
+
+@Data
+@JsonPropertyOrder({"proResultId","workOrderId","inspector","content"," images"," audios"," videos","lng","lat","completeTime","reportTime","state","stateName"})
+public class VoProcessingResult implements BaseEntity {
+    public static final long serialVersionUID = 202411081500001L;
+
+    /**
+     * 闂缁撴灉ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long proResultId;
+
+    /**
+     * 宸ュ崟ID
+     */
+    @JSONField(serializeUsing= ObjectWriterImplToString.class)
+    private Long workOrderId;
+
+    /**
+     * 宸℃鍛業D
+     */
+    private String inspector;
+
+    /**
+     * 缁撴灉鍐呭
+     */
+    private String content;
+
+    /**
+     * 鐓х墖鍒楄〃
+     */
+    private String images;
+
+    /**
+     * 闊抽鍒楄〃
+     */
+    private String audios;
+
+    /**
+     * 瑙嗛鍒楄〃
+     */
+    private String videos;
+
+    /**
+     * 缁忓害
+     */
+    private BigDecimal lng;
+
+    /**
+     * 绾害
+     */
+    private BigDecimal lat;
+
+    /**
+     * 浠诲姟瀹屾垚鏃堕棿;绮剧‘鍒板垎
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
+    private Date completeTime;
+
+    /**
+     * 涓婃姤鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reportTime;
+
+    /**
+     * 鐘舵��;1-宸蹭笂鎶ワ紝2-宸查�氳繃锛�3-宸查┏鍥�
+     */
+    private Byte state;
+
+    /**
+     * 鐘舵�佸悕绉�
+     */
+    private String stateName;
+
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
index f015a6c..d8535a2 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/init-config.xml
@@ -59,6 +59,11 @@
                 <item5 rechargeAmount = "500" sort = "5"/>
                 <item6 rechargeAmount = "1000" sort = "6"/>
             </rechargeProfile>
+            <taskType>
+                <item1 typeName="璁惧瀹夎"/>
+                <item2 typeName="璁惧缁翠慨"/>
+                <item3 typeName="璁惧淇濆吇"/>
+            </taskType>
         </org1>
         <org2 tag="sp" name="娌欑洏" enable="true">
             <districts>
@@ -117,6 +122,11 @@
                 <item5 rechargeAmount = "500" sort = "5"/>
                 <item6 rechargeAmount = "1000" sort = "6"/>
             </rechargeProfile>
+            <taskType>
+                <item1 typeName="璁惧瀹夎"/>
+                <item2 typeName="璁惧缁翠慨"/>
+                <item3 typeName="璁惧淇濆吇"/>
+            </taskType>
         </org2>
         <org3 tag="test" name="娴嬭瘯" enable="true">
             <districts>
@@ -175,6 +185,11 @@
                 <item5 rechargeAmount = "500" sort = "5"/>
                 <item6 rechargeAmount = "1000" sort = "6"/>
             </rechargeProfile>
+            <taskType>
+                <item1 typeName="璁惧瀹夎"/>
+                <item2 typeName="璁惧缁翠慨"/>
+                <item3 typeName="璁惧淇濆吇"/>
+            </taskType>
         </org3>
     </orgs>
 </config>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml
new file mode 100644
index 0000000..8dedb69
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml
@@ -0,0 +1,173 @@
+<?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.daoOp.OpeIssueReportMapper">
+  <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoOp.OpeIssueReport">
+    <!--@mbg.generated-->
+    <!--@Table ope_issue_report-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="content" jdbcType="VARCHAR" property="content" />
+    <result column="images" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" property="images" />
+    <result column="audios" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" property="audios" />
+    <result column="videos" jdbcType="JAVA_OBJECT" typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" property="videos" />
+    <result column="lng" jdbcType="DECIMAL" property="lng" />
+    <result column="lat" jdbcType="DECIMAL" property="lat" />
+    <result column="inspector_id" jdbcType="BIGINT" property="inspectorId" />
+    <result column="report_time" jdbcType="TIMESTAMP" property="reportTime" />
+    <result column="phone" jdbcType="VARCHAR" property="phone" />
+    <result column="state" jdbcType="TINYINT" property="state" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, content, images, audios, videos, lng, lat, inspector_id, report_time, phone, 
+    `state`
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    <!--@mbg.generated-->
+    select 
+    <include refid="Base_Column_List" />
+    from ope_issue_report
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    <!--@mbg.generated-->
+    delete from ope_issue_report
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeIssueReport">
+    <!--@mbg.generated-->
+    insert into ope_issue_report (id, content, images, 
+      audios, videos, lng, 
+      lat, inspector_id, report_time, 
+      phone, `state`)
+    values (#{id,jdbcType=BIGINT}, #{content,jdbcType=VARCHAR}, #{images,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      #{audios,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{videos,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler}, #{lng,jdbcType=DECIMAL},
+      #{lat,jdbcType=DECIMAL}, #{inspectorId,jdbcType=BIGINT}, #{reportTime,jdbcType=TIMESTAMP}, 
+      #{phone,jdbcType=VARCHAR}, #{state,jdbcType=TINYINT})
+  </insert>
+  <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeIssueReport">
+    <!--@mbg.generated-->
+    insert into ope_issue_report
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="content != null">
+        content,
+      </if>
+      <if test="images != null">
+        images,
+      </if>
+      <if test="audios != null">
+        audios,
+      </if>
+      <if test="videos != null">
+        videos,
+      </if>
+      <if test="lng != null">
+        lng,
+      </if>
+      <if test="lat != null">
+        lat,
+      </if>
+      <if test="inspectorId != null">
+        inspector_id,
+      </if>
+      <if test="reportTime != null">
+        report_time,
+      </if>
+      <if test="phone != null">
+        phone,
+      </if>
+      <if test="state != null">
+        `state`,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="content != null">
+        #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="images != null">
+        #{images,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      </if>
+      <if test="audios != null">
+        #{audios,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      </if>
+      <if test="videos != null">
+        #{videos,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      </if>
+      <if test="lng != null">
+        #{lng,jdbcType=DECIMAL},
+      </if>
+      <if test="lat != null">
+        #{lat,jdbcType=DECIMAL},
+      </if>
+      <if test="inspectorId != null">
+        #{inspectorId,jdbcType=BIGINT},
+      </if>
+      <if test="reportTime != null">
+        #{reportTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="phone != null">
+        #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="state != null">
+        #{state,jdbcType=TINYINT},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeIssueReport">
+    <!--@mbg.generated-->
+    update ope_issue_report
+    <set>
+      <if test="content != null">
+        content = #{content,jdbcType=VARCHAR},
+      </if>
+      <if test="images != null">
+        images = #{images,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      </if>
+      <if test="audios != null">
+        audios = #{audios,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      </if>
+      <if test="videos != null">
+        videos = #{videos,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      </if>
+      <if test="lng != null">
+        lng = #{lng,jdbcType=DECIMAL},
+      </if>
+      <if test="lat != null">
+        lat = #{lat,jdbcType=DECIMAL},
+      </if>
+      <if test="inspectorId != null">
+        inspector_id = #{inspectorId,jdbcType=BIGINT},
+      </if>
+      <if test="reportTime != null">
+        report_time = #{reportTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="phone != null">
+        phone = #{phone,jdbcType=VARCHAR},
+      </if>
+      <if test="state != null">
+        `state` = #{state,jdbcType=TINYINT},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoOp.OpeIssueReport">
+    <!--@mbg.generated-->
+    update ope_issue_report
+    set content = #{content,jdbcType=VARCHAR},
+      images = #{images,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      audios = #{audios,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      videos = #{videos,jdbcType=JAVA_OBJECT, typeHandler=com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler},
+      lng = #{lng,jdbcType=DECIMAL},
+      lat = #{lat,jdbcType=DECIMAL},
+      inspector_id = #{inspectorId,jdbcType=BIGINT},
+      report_time = #{reportTime,jdbcType=TIMESTAMP},
+      phone = #{phone,jdbcType=VARCHAR},
+      `state` = #{state,jdbcType=TINYINT}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeProcessingResultMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeProcessingResultMapper.xml
index 56a5430..4315729 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeProcessingResultMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeProcessingResultMapper.xml
@@ -195,8 +195,44 @@
     where id = #{id,jdbcType=BIGINT}
   </update>
 
-  <!--鏍规嵁workOrderId鑾峰彇鏈垹闄ょ殑澶勭悊缁撴灉鏁伴噺锛屾坊鍔犵粨鏋滀笂鎶ュ墠鍒ゆ柇浣跨敤-->
-  <select id="getValidResultCount" resultType="java.lang.Integer">
-    SELECT COUNT(*) FROM  ope_processing_result WHERE deleted = 0 AND work_order_id = #{workOrderId}
+  <!--鏍规嵁宸ュ崟ID鑾峰彇鏈垹闄ょ殑宸ュ崟瀵硅薄-->
+  <select id="getByWorkOrderId" resultType="com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult">
+    SELECT * FROM ope_processing_result WHERE deleted = 0 AND work_order_id = #{workOrderId} LIMIT 1
+  </select>
+
+  <!--鑾峰彇鎸囧畾宸℃鍛樼殑鎸囧畾鏈垹闄や笖鏈鎵圭殑澶勭悊缁撴灉涓婃姤锛屽垹闄ゅ鐞嗙粨鏋滃墠鍒ゆ柇浣跨敤浣跨敤-->
+  <select id="getProResult" resultType="com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult">
+    SELECT * FROM ope_processing_result
+    WHERE deleted = 0 AND state = 1 AND id = #{proResultId} AND inspector_id = #{inspectorId} LIMIT 1
+  </select>
+
+  <!--閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫鐞嗙粨鏋滆褰�-->
+  <update id="deleteProResult">
+    UPDATE ope_processing_result SET deleted = UNIX_TIMESTAMP() WHERE deleted = 0 AND id = #{proResultId}
+  </update>
+
+  <!--鏍规嵁涓婚敭鑾峰彇澶勭悊缁撴灉瑙嗗浘瀵硅薄-->
+  <select id="getProResultById" resultType="com.dy.pipIrrGlobal.voOp.VoProcessingResult">
+    SELECT
+        res.id AS proResultId,
+        res.work_order_id AS workOrderId,
+        us.name AS inspector,
+        res.content,
+        res.images,
+        res.audios,
+        res.videos,
+        res.lng,
+        res.lat,
+        res.complete_time AS completeTime,
+        res.report_time AS reportTime,
+        res.state,
+        CASE
+            WHEN res.state = 1 THEN '宸蹭笂鎶�'
+            WHEN res.state = 2 THEN '宸查�氳繃'
+            WHEN res.state = 3 THEN '宸查┏鍥�'
+        END AS stateName
+    FROM ope_processing_result res
+        INNER JOIN ba_user us ON us.id = res.inspector_id
+    WHERE res.deleted = 0 AND res.id = #{proResultId}
   </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
index 9e2a155..2cdd204 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeWorkOrderMapper.xml
@@ -242,10 +242,14 @@
     WHERE ord.deleted = 0 AND ord.id = #{workOrderId}
   </select>
 
-  <!--鑾峰彇鎸囧畾娲惧崟浜虹殑鎸囧畾鏈垹闄ゅ伐鍗曪紝鍒犻櫎宸ュ崟鍓嶅垽鏂娇鐢ㄤ娇鐢�-->
+  <!--鑾峰彇鎸囧畾娲惧崟浜虹殑銆佹湭涓婃姤鐨勬寚瀹氭湭鍒犻櫎宸ュ崟锛屽垹闄ゅ伐鍗曞墠鍒ゆ柇浣跨敤浣跨敤-->
   <select id="getWorkOrder" resultType="com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder">
-    SELECT * FROM ope_work_order
-    WHERE deleted = 0 AND id = #{workOrderId} AND dispatcher_id = #{dispatcherId} LIMIT 1
+    SELECT
+        *
+    FROM ope_work_order ord
+    WHERE deleted = 0
+        AND NOT EXISTS(SELECT * FROM ope_processing_result res WHERE res.work_order_id = ord.id)
+        AND id = #{workOrderId} AND dispatcher_id = #{dispatcherId} LIMIT 1
   </select>
 
   <!--閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫伐鍗�-->
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
index 5c02036..6b07701 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/PrIntakeMapper.xml
@@ -603,31 +603,14 @@
         </trim>
     </select>
 
-
-
-
-
-
-
-
-
-
-
     <!--鏍规嵁鍙栨按鍙g紪鍙疯幏鍙栧彇姘村彛瀵硅薄-->
     <select id="getIntakeByName" resultType="com.dy.pipIrrGlobal.voPr.VoOnLineIntake">
-        SELECT con.intakeId,
-        con.rtuAddr,
-        inta.name AS intakeNum,
-        rtus.isOnLine
+        SELECT
+            con.intakeId,
+            con.rtuAddr,
+            inta.name AS intakeNum
         FROM pr_controller con
-        INNER JOIN pr_intake inta ON con.intakeId = inta.id
-        left JOIN JSON_TABLE(
-        #{onLineMap},
-        '$[*]' COLUMNS (
-        rtuAddr VARCHAR(20) PATH '$.rtuAddr',
-        isOnLine BOOLEAN PATH '$.isOnLine'
-        )
-        ) rtus ON con.rtuAddr = rtus.rtuAddr
+            INNER JOIN pr_intake inta ON con.intakeId = inta.id
         <where>
             <if test="intakeNum != null and intakeNum != ''">
                 AND LOWER(inta.name) = #{intakeNum}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java
new file mode 100644
index 0000000..9fb6484
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java
@@ -0,0 +1,55 @@
+package com.dy.pipIrrApp.issue;
+
+import com.dy.common.aop.SsoAop;
+import com.dy.common.webUtil.BaseResponse;
+import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Objects;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-11 16:29
+ * @LastEditTime 2024-11-11 16:29
+ * @Description
+ */
+
+@Slf4j
+@RestController
+@RequestMapping(path="issue")
+@RequiredArgsConstructor
+public class IssueCtrl {
+    private final IssueSv issueSv;
+
+    /**
+     * 娣诲姞宸℃鍛橀棶棰樹笂鎶ヨ褰�
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "addIssueReport")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> addIssueReport(@RequestBody @Valid OpeIssueReport po, BindingResult bindingResult) {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        String result = issueSv.addIssueReport(po);
+        if(!result.equals("success")) {
+            return BaseResponseUtils.buildErrorMsg(result);
+        }
+
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java
new file mode 100644
index 0000000..36f7867
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java
@@ -0,0 +1,51 @@
+package com.dy.pipIrrApp.issue;
+
+import com.dy.pipIrrGlobal.daoOp.OpeIssueReportMapper;
+import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-11 16:29
+ * @LastEditTime 2024-11-11 16:29
+ * @Description
+ */
+
+@Slf4j
+@Service
+public class IssueSv {
+    @Autowired
+    private OpeIssueReportMapper opeIssueReportMapper;
+
+    /**
+     * 娣诲姞宸℃鍛橀棶棰樹笂鎶�
+     * @param po
+     * @return
+     */
+    public String addIssueReport(OpeIssueReport po) {
+        po.setReportTime(new Date());
+        po.setState((byte)1);
+        opeIssueReportMapper.insert(po);
+        Long issueReportId = po.getId();
+        if(issueReportId == null) {
+            return "宸℃鍛橀棶棰樹笂鎶ュけ璐�";
+        }
+
+        return "success";
+    }
+
+    /**
+     * 娣诲姞宸℃鍛橀棶棰樹笂鎶ヤ俊鎭�
+     * @param po
+     * @return
+     */
+    //public Long insertIssueReport(OpeIssueReport po) {
+    //    opeIssueReportMapper.insert(po);
+    //    return po.getId();
+    //}
+
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
index dbf73c5..38b9743 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderCtrl.java
@@ -1,13 +1,17 @@
 package com.dy.pipIrrApp.workOrder;
 
+import com.alibaba.fastjson2.JSON;
 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.pipIrrApp.workOrder.dto.DtoDeleteProResult;
 import com.dy.pipIrrApp.workOrder.dto.DtoDeleteWorkOrder;
 import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
+import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
+import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
 import com.dy.pipIrrGlobal.voOp.VoWorkOrder;
 import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
@@ -133,7 +137,7 @@
             return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
-        OpeWorkOrder workOrder = workOrderSv.getWorkOrder(deleteWorkOrder.getDispatcherId(), deleteWorkOrder.getWorkOrderId());
+        OpeWorkOrder workOrder = workOrderSv.getWorkOrder(deleteWorkOrder.getWorkOrderId(), deleteWorkOrder.getDispatcherId());
         if(workOrder == null) {
             return BaseResponseUtils.buildErrorMsg("鎮ㄨ鍒犻櫎鐨勫伐鍗曚笉瀛樺湪");
         }
@@ -141,7 +145,6 @@
         if(workOrderSv.deleteWorkOrder(deleteWorkOrder.getWorkOrderId()) == 0) {
             return BaseResponseUtils.buildErrorMsg("宸ュ崟鍒犻櫎澶辫触");
         }
-
 
         return BaseResponseUtils.buildSuccess();
     }
@@ -167,6 +170,7 @@
      * @return
      */
     @GetMapping(path = "/getOneWorkOrder")
+    @SsoAop()
     public BaseResponse<VoWorkOrder> getOneWorkOrder(@RequestParam("workOrderId") Long workOrderId) {
         try {
             return BaseResponseUtils.buildSuccess(workOrderSv.getWorkOrderById(workOrderId));
@@ -178,29 +182,92 @@
 
     /**
      * 涓婃姤宸ュ崟澶勭悊缁撴灉
-     *      鍒ゆ柇璇ュ伐鍗曟槸鍚﹀瓨鍦ㄦ湁鏁堢殑澶勭悊缁撴灉锛屽鏋滃瓨鍦ㄥ垯鎻愮ず鐢ㄦ埛璇ュ伐鍗曞凡瀛樺湪澶勭悊缁撴灉
-     *      娣诲姞澶勭悊缁撴灉鍥炲
+     *      1.鏈笂鎶ョ殑锛岀洿鎺ヤ笂鎶�
+     *      2. 宸蹭笂鎶ョ殑鐨勶紝鎻愮ず鐢ㄦ埛涓嶈兘閲嶅涓婃姤
+     *      3. 宸查�氳繃鐨勶紝鎻愮ず鐢ㄦ埛澶勭悊缁撴灉澶勭悊缁撴灉宸查�氳繃
+     *      4. 椹冲洖鐨勶紝閫昏緫鍒犻櫎鍘熷鐞嗙粨鏋滐紝涓婃姤鏂扮殑澶勭悊缁撴灉
      * @param po
      * @param bindingResult
      * @return
      */
     @PostMapping(path = "addProcessingResult")
     @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
     public BaseResponse<Boolean> addProcessingResult(@RequestBody @Valid OpeProcessingResult po, BindingResult bindingResult) {
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
-        if(workOrderSv.hasValidProcessingResult(po.getWorkOrderId())) {
-            return BaseResponseUtils.buildErrorMsg("璇ュ伐鍗曞瓨鍦ㄦ湁鏁堢殑澶勭悊缁撴灉");
-        }
-
-        Long processingResultId = workOrderSv.insertProcessingResult(po);
-        if(processingResultId == null) {
-            return BaseResponseUtils.buildErrorMsg("涓婃姤宸ュ崟澶勭悊缁撴灉澶辫触");
+        String result = workOrderSv.addProcessingResult(po);
+        if(!result.equals("success")) {
+            return BaseResponseUtils.buildErrorMsg(result);
         }
 
         return BaseResponseUtils.buildSuccess(true) ;
     }
 
+    /**
+     * 閫昏緫鍒犻櫎涓�涓鐞嗙粨鏋�
+     * @param deleteProResult
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "deleteProResult")
+    @SsoAop()
+    public BaseResponse<Boolean> deleteProResult(@RequestBody @Valid DtoDeleteProResult deleteProResult, BindingResult bindingResult) {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildErrorMsg(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        OpeProcessingResult proResult = workOrderSv.getProResult(deleteProResult.getProResultId(), deleteProResult.getInspectorId());
+        if(proResult == null) {
+            return BaseResponseUtils.buildErrorMsg("鎮ㄨ鍒犻櫎鐨勫鐞嗙粨鏋滀笉瀛樺湪");
+        }
+
+        if(workOrderSv.deleteProResult(deleteProResult.getProResultId()) == 0) {
+            return BaseResponseUtils.buildErrorMsg("澶勭悊缁撴灉鍒犻櫎澶辫触");
+        }
+
+        return BaseResponseUtils.buildSuccess();
+    }
+
+    /**
+     * 鑾峰彇澶勭悊缁撴灉璇︽儏
+     * @param proResultId
+     * @return
+     */
+    @GetMapping(path = "/getProResult")
+    @SsoAop()
+    public BaseResponse<VoProcessingResult> getProResult(@RequestParam("proResultId") Long proResultId) {
+        try {
+            String  aa = JSON.toJSONString(workOrderSv.getProResultById(proResultId));
+            System.out.println(aa);
+            return BaseResponseUtils.buildSuccess(workOrderSv.getProResultById(proResultId));
+        } catch (Exception e) {
+            log.error("鑾峰彇澶勭悊缁撴灉璇︽儏寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 瀹℃牳澶勭悊缁撴灉
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "approveProResult")
+    @Transactional(rollbackFor = Exception.class)
+    @SsoAop()
+    public BaseResponse<Boolean> approveProResult(@RequestBody @Valid OpeApproveResult po, BindingResult bindingResult) {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        String result = workOrderSv.approveProResult(po);
+        if(!result.equals("success")) {
+            return BaseResponseUtils.buildErrorMsg(result);
+        }
+
+        return BaseResponseUtils.buildSuccess(true) ;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
index 34746ef..30d7b7f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/WorkOrderSv.java
@@ -2,10 +2,13 @@
 
 import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrApp.workOrder.qo.QoWorkOrder;
+import com.dy.pipIrrGlobal.daoOp.OpeApproveResultMapper;
 import com.dy.pipIrrGlobal.daoOp.OpeProcessingResultMapper;
 import com.dy.pipIrrGlobal.daoOp.OpeWorkOrderMapper;
+import com.dy.pipIrrGlobal.pojoOp.OpeApproveResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeProcessingResult;
 import com.dy.pipIrrGlobal.pojoOp.OpeWorkOrder;
+import com.dy.pipIrrGlobal.voOp.VoProcessingResult;
 import com.dy.pipIrrGlobal.voOp.VoWorkOrder;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.common.utils.PojoUtils;
@@ -32,6 +35,9 @@
     @Autowired
     private OpeProcessingResultMapper opeProcessingResultMapper;
 
+    @Autowired
+    private OpeApproveResultMapper opeApproveResultMapper;
+
     /**
      * 娣诲姞宸ュ崟璁板綍
      * @param po
@@ -53,8 +59,8 @@
      * @param workOrderId
      * @return
      */
-    public OpeWorkOrder getWorkOrder(Long dispatcherId, Long workOrderId) {
-        return opeWorkOrderMapper.getWorkOrder(dispatcherId, workOrderId);
+    public OpeWorkOrder getWorkOrder(Long workOrderId, Long dispatcherId) {
+        return opeWorkOrderMapper.getWorkOrder(workOrderId, dispatcherId);
     }
 
     /**
@@ -96,27 +102,129 @@
     }
 
     /**
-     * 鏍规嵁workOrderId鑾峰彇鏈垹闄ょ殑澶勭悊缁撴灉鏁伴噺锛屾坊鍔犵粨鏋滀笂鎶ュ墠鍒ゆ柇浣跨敤
-     * @param workOrderId
-     * @return
-     */
-    public Boolean hasValidProcessingResult(Long workOrderId) {
-        if (opeProcessingResultMapper.getValidResultCount(workOrderId) == 0) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
      * 涓婃姤宸ュ崟澶勭悊缁撴灉
      * @param po
      * @return
      */
-    public Long insertProcessingResult(OpeProcessingResult po) {
-        po.setReportTime(new Date());
-        po.setState((byte)1);
+    public String addProcessingResult(OpeProcessingResult po) {
+        String result = "";
+        OpeProcessingResult processingResult = opeProcessingResultMapper.getByWorkOrderId(po.getWorkOrderId());
+        if(processingResult == null) {
+            // 鏃犲鐞嗙粨鏋滀笂鎶ュ鐞嗙粨鏋�
+            po.setReportTime(new Date());
+            po.setState((byte)1);
+            po.setDeleted(0L);
+            opeProcessingResultMapper.insert(po);
+            if(po.getId() == 0) {
+                result = "宸ュ崟澶勭悊缁撴灉涓婃姤澶辫触";
+                return result;
+            }
+
+            result = "success";
+            return result;
+        }
+
+        switch (processingResult.getState()) {
+            case 1:
+                result = "宸ュ崟澶勭悊缁撴灉宸蹭笂鎶ワ紝璇峰嬁閲嶅涓婃姤";
+                break;
+            case 2:
+                result = "宸ュ崟澶勭悊缁撴灉宸查�氳繃";
+                break;
+            case 3:
+                // 澶勭悊缁撴灉琚┏鍥炴椂锛屽垹闄ゅ綋鍓嶅鐞嗙粨鏋滐紝涓婃姤鏂扮殑澶勭悊缁撴灉
+                processingResult.setDeleted(System.currentTimeMillis()/1000);
+                opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
+
+                po.setReportTime(new Date());
+                po.setState((byte)1);
+                po.setDeleted(0L);
+                opeProcessingResultMapper.insert(po);
+                result = "success";
+                break;
+        }
+
+        return result;
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾宸℃鍛樼殑鎸囧畾鏈垹闄や笖鏈鎵圭殑澶勭悊缁撴灉涓婃姤锛屽垹闄ゅ鐞嗙粨鏋滃墠鍒ゆ柇浣跨敤浣跨敤
+     * @param proResultId
+     * @param inspectorId
+     * @return
+     */
+    public OpeProcessingResult getProResult(Long proResultId, Long inspectorId) {
+        return opeProcessingResultMapper.getProResult(proResultId, inspectorId);
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎涓�涓湭鍒犻櫎鐨勫鐞嗙粨鏋�
+     * @param proResultId
+     * @return
+     */
+    public Integer deleteProResult(Long proResultId) {
+        return opeProcessingResultMapper.deleteProResult(proResultId);
+    }
+
+    /**
+     * 鑾峰彇澶勭悊缁撴灉璇︽儏
+     * @param proResultId
+     * @return
+     */
+    public VoProcessingResult getProResultById(Long proResultId) {
+        return opeProcessingResultMapper.getProResultById(proResultId);
+    }
+
+    /**
+     * 瀹℃牳宸ュ崟澶勭悊缁撴灉
+     *      1. 鍒ゆ柇鎸囧畾鐨勫伐鍗曞強澶勭悊缁撴灉鏄惁瀛樺湪涓旀湭瀹屾垚
+     *      2. 娣诲姞瀹℃牳璁板綍
+     *      3. 濡傛灉瀹℃牳閫氳繃
+     *          澶勭悊缁撴灉鐘舵�佹敼涓哄凡閫氳繃
+     *          宸ュ崟琛ュ厖浠诲姟瀹屾垚鏃堕棿
+     *          宸ュ崟鐘舵�佹敼涓哄凡瀹屾垚
+     *      4. 濡傛灉椹冲洖
+     *          浠诲姟澶勭悊缁撴灉鏀逛负椹冲洖
+     *          宸ュ崟椹冲洖娆℃暟鍔�1
+     * @param po
+     * @return
+     */
+    public String approveProResult(OpeApproveResult po) {
+
+        OpeProcessingResult processingResult = opeProcessingResultMapper.selectByPrimaryKey(po.getProcessingResultId());
+        if(processingResult == null || processingResult.getDeleted() != 0 || processingResult.getState() != 1) {
+            return "澶勭悊缁撴灉涓嶅瓨鍦ㄦ垨宸插畬鎴愬鏍�";
+        }
+
+        OpeWorkOrder workOrder = opeWorkOrderMapper.selectByPrimaryKey(po.getWorkOrderId());
+        if(workOrder == null || workOrder.getDeleted() != 0 || workOrder.getState() == 2) {
+            return "宸ュ崟涓嶅瓨鍦ㄦ垨宸插畬鎴�";
+        }
+
+        po.setApproveTime(new Date());
         po.setDeleted(0L);
-        opeProcessingResultMapper.insert(po);
-        return po.getId();
+        if(opeApproveResultMapper.insert(po) == 0) {
+            return "瀹℃牳璁板綍娣诲姞澶辫触";
+        }
+
+        if(po.getApproveResult() == 1) {
+            // 瀹℃牳閫氳繃
+            processingResult.setState((byte)2);
+            opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
+
+            workOrder.setCompleteTime(processingResult.getCompleteTime());
+            workOrder.setState((byte)2);
+            opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder);
+
+        } else {
+            // 椹冲洖
+            processingResult.setState((byte)3);
+            opeProcessingResultMapper.updateByPrimaryKeySelective(processingResult);
+
+            workOrder.setRejectTimes(workOrder.getRejectTimes() + 1);
+            opeWorkOrderMapper.updateByPrimaryKeySelective(workOrder);
+        }
+
+        return "success";
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/dto/DtoDeleteProResult.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/dto/DtoDeleteProResult.java
new file mode 100644
index 0000000..601bc66
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/workOrder/dto/DtoDeleteProResult.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrApp.workOrder.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-08 11:43
+ * @LastEditTime 2024-11-08 11:43
+ * @Description 鍒犻櫎澶勭悊缁撴灉浼犺緭绫�
+ */
+
+@Data
+public class DtoDeleteProResult {
+    public static final long serialVersionUID = 202411081144001L;
+
+    /**
+     * 澶勭悊缁撴灉ID
+     */
+    @NotNull(message = "澶勭悊缁撴灉涓嶈兘涓虹┖")
+    private Long proResultId;
+
+    /**
+     * 宸℃鍛業D
+     */
+    @NotNull(message = "宸℃鍛樹笉鑳戒负绌�")
+    private Long inspectorId;
+}
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java
index 40c1a8b..3b223c1 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/PipIrrBaseApplication.java
@@ -18,7 +18,9 @@
                 })
         }
 )
-@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa","com.dy.pipIrrGlobal.daoSe","com.dy.pipIrrGlobal.daoRm","com.dy.pipIrrGlobal.daoPr","com.dy.pipIrrGlobal.daoFi"})
+@MapperScan(basePackages={"com.dy.pipIrrGlobal.daoBa","com.dy.pipIrrGlobal.daoSe","com.dy.pipIrrGlobal.daoRm",
+        "com.dy.pipIrrGlobal.daoPr","com.dy.pipIrrGlobal.daoFi","com.dy.pipIrrGlobal.daoOp"
+            })
 public class PipIrrBaseApplication {
 
     public static void main(String[] args) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
index 095b9fa..c535adf 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-base/src/main/java/com/dy/pipIrrBase/util/InitListener.java
@@ -6,12 +6,14 @@
 import com.dy.common.util.ConfigXml4Springboot;
 import com.dy.common.util.MD5;
 import com.dy.pipIrrGlobal.daoBa.*;
+import com.dy.pipIrrGlobal.daoOp.OpeTaskTypeMapper;
 import com.dy.pipIrrGlobal.daoPr.PrWaterPriceMapper;
 import com.dy.pipIrrGlobal.daoRm.RmIrrigateProfileMapper;
 import com.dy.pipIrrGlobal.daoSe.SePaymentMethodMapper;
 import com.dy.pipIrrGlobal.daoSe.SeRechargeProfileMapper;
 import com.dy.pipIrrGlobal.daoSe.SeWaterTypeMapper;
 import com.dy.pipIrrGlobal.pojoBa.*;
+import com.dy.pipIrrGlobal.pojoOp.OpeTaskType;
 import com.dy.pipIrrGlobal.pojoPr.PrWaterPrice;
 import com.dy.pipIrrGlobal.pojoRm.RmIrrigateProfile;
 import com.dy.pipIrrGlobal.pojoSe.SePaymentMethod;
@@ -47,6 +49,7 @@
     private BaDictMapper baDictDao;
     private BaDictItemMapper baDictItemDao;
     private SeRechargeProfileMapper seRechargeProfileDao;
+    private OpeTaskTypeMapper taskTypeDao;
 
     @Autowired
     public void setResourceLoader(ResourceLoader resourceLoader){
@@ -101,6 +104,11 @@
     @Autowired
     public void setSeRechargeProfileDao(SeRechargeProfileMapper seRechargeProfileDao) {
         this.seRechargeProfileDao = seRechargeProfileDao;
+    }
+
+    @Autowired
+    public void setOpeTaskTypeDao(OpeTaskTypeMapper taskTypeDao) {
+        this.taskTypeDao = taskTypeDao;
     }
 
     /**
@@ -268,6 +276,20 @@
                                 }
                             }
                         }
+
+                        if(!this.existTaskType()){
+                            if(configXml.existElement(doc, "config.orgs.org" + num + ".taskType")){
+                                for(int i = 1 ; i < 10000; i++){
+                                    if(configXml.existElement(doc, "config.orgs.org" + num + ".taskType.item" + i)){
+                                        String taskType = configXml.getSetAttrTxt(doc, "config.orgs.org" + num + ".taskType.item" + i,"typeName", null, false, null) ;
+                                        this.saveTaskType(orgTag, taskType);
+                                    }else{
+                                        break ;
+                                    }
+                                }
+                            }
+                        }
+
                     }
                 }else{
                     break ;
@@ -355,6 +377,15 @@
     private boolean existDict() {
         Long total = this.baDictDao.selectCount(null);
         return (total != null && total > 0) ;
+    }
+
+    /**
+     * 鏁版嵁搴撲腑鏄惁瀛樺湪宸ュ崟浠诲姟绫诲瀷
+     * @return
+     */
+    private boolean existTaskType() {
+        Long total = this.taskTypeDao.selectCount(null);
+        return (total != null && total > 0);
     }
 
     /**
@@ -552,9 +583,20 @@
             po.setDeleted(0L);
             this.baDictItemDao.insert(po);
         }
-
     }
 
-
+    /**
+     * 淇濆瓨宸ュ崟浠诲姟绫诲瀷
+     * @param orgTag
+     * @param task_type
+     */
+    private void saveTaskType(String orgTag, String task_type) {
+        if(task_type != null && !task_type.trim().equals("")) {
+            OpeTaskType po = new OpeTaskType();
+            po.setTaskType(task_type);
+            po.setDeleted(0L);
+            this.taskTypeDao.insert(po);
+        }
+    }
 
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java
index b8a722e..435445d 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeCtrl.java
@@ -36,7 +36,6 @@
      * @param qo
      * @return
      */
-    //@GetMapping(path = "one_intake")
     @GetMapping(path = "all_intakes")
     public BaseResponse<QueryResultVo<VoOnLineIntake>> getOneIntake(OnLineIntakesQO qo) {
         try {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java
index f8ce89c..d48c4fd 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/IntakeSv.java
@@ -68,30 +68,28 @@
      * @return
      */
     public VoOnLineIntake selectOneIntake(OnLineIntakesQO qo) {
-        Command com = new Command() ;
-        com.id = Command.defaultId;
-        com.code = "LCD0001";
-        com.type = "innerCommand";
-        comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+        //Command com = new Command() ;
+        //com.id = Command.defaultId;
+        //com.code = "LCD0001";
+        //com.type = "innerCommand";
+        //comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+        //
+        //JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+        //
+        //JSONArray jsonArray = new JSONArray();
+        //if(response != null && response.getString("code").equals("0001")) {
+        //    JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
+        //    if(attachment != null) {
+        //        attachment.forEach((key, value) -> {
+        //            JSONObject jsonObject = new JSONObject();
+        //            jsonObject.put("rtuAddr", key);
+        //            jsonObject.put("isOnLine", value);
+        //            jsonArray.add(jsonObject);
+        //        });
+        //    }
+        //}
+        //qo.setOnLineMap(jsonArray.toJSONString());
 
-        JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
-
-        JSONArray jsonArray = new JSONArray();
-        if(response != null && response.getString("code").equals("0001")) {
-            JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
-            if(attachment != null) {
-                attachment.forEach((key, value) -> {
-                    JSONObject jsonObject = new JSONObject();
-                    jsonObject.put("rtuAddr", key);
-                    jsonObject.put("isOnLine", value);
-                    jsonArray.add(jsonObject);
-                });
-            }
-        //} else {
-        //    return new VoOnLineIntake();
-        }
-
-        qo.setOnLineMap(jsonArray.toJSONString());
         // 濡傛灉 intakeNum 涓嶄负绌猴紝鍒欒浆涓哄皬鍐欏啀鍐欏叆qo瀵硅薄
         String intakeNum = qo.getIntakeNum();
         if(intakeNum != null) {
@@ -107,31 +105,28 @@
      * @return
      */
     public QueryResultVo<List<VoOnLineIntake>> selectAllIntakes(OnLineIntakesQO qo) {
-        Command com = new Command() ;
-        com.id = Command.defaultId;
-        com.code = "LCD0001";
-        com.type = "innerCommand";
-        comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+        //Command com = new Command() ;
+        //com.id = Command.defaultId;
+        //com.code = "LCD0001";
+        //com.type = "innerCommand";
+        //comSendUrl = env.getProperty(pro_mw + "." + DataSourceContext.get() + "." + key_mw);
+        //
+        //JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
+        //
+        //JSONArray jsonArray = new JSONArray();
+        //if(response != null && response.getString("code").equals("0001")) {
+        //    JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
+        //    if(attachment != null) {
+        //        attachment.forEach((key, value) -> {
+        //            JSONObject jsonObject = new JSONObject();
+        //            jsonObject.put("rtuAddr", key);
+        //            jsonObject.put("isOnLine", value);
+        //            jsonArray.add(jsonObject);
+        //        });
+        //    }
+        //}
+        //qo.setOnLineMap(jsonArray.toJSONString());
 
-        JSONObject response = (JSONObject) JSON.toJSON(sendCom2Mw(com));
-
-        JSONArray jsonArray = new JSONArray();
-        if(response != null && response.getString("code").equals("0001")) {
-            JSONObject attachment = response.getJSONObject("content").getJSONObject("attachment");
-            if(attachment != null) {
-                attachment.forEach((key, value) -> {
-                    JSONObject jsonObject = new JSONObject();
-                    jsonObject.put("rtuAddr", key);
-                    jsonObject.put("isOnLine", value);
-                    jsonArray.add(jsonObject);
-                });
-            }
-        //} else {
-        //    QueryResultVo<List<VoOnLineIntake>> rsVo = new QueryResultVo<>();
-        //    return rsVo;
-        }
-
-        qo.setOnLineMap(jsonArray.toJSONString());
         // 濡傛灉 intakeNum 涓嶄负绌猴紝鍒欒浆涓哄皬鍐欏啀鍐欏叆qo瀵硅薄
         String intakeNum = qo.getIntakeNum();
         if(intakeNum != null) {
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/qo/OnLineIntakesQO.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/qo/OnLineIntakesQO.java
index da34da0..bf92c9f 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/qo/OnLineIntakesQO.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/intake/qo/OnLineIntakesQO.java
@@ -1,8 +1,6 @@
 package com.dy.pipIrrWechat.intake.qo;
 
 import com.dy.common.webUtil.QueryConditionVo;
-import jakarta.validation.constraints.Max;
-import jakarta.validation.constraints.Min;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -17,19 +15,8 @@
 @EqualsAndHashCode(callSuper = false)
 public class OnLineIntakesQO extends QueryConditionVo {
     /**
-     * 涓棿浠惰繑鍥炵殑RTU鍦ㄧ嚎鎯呭喌瀵硅薄鏁扮粍
-     */
-    private String onLineMap;
-
-    /**
      * 鍙栨按鍙g紪鍙�
      */
     private String intakeNum;
 
-    /**
-     * 鏄惁鍦ㄧ嚎
-     */
-    @Max(value = 1,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
-    @Min(value = 0,message = "鏄惁鍦ㄧ嚎浠呭厑璁镐负鐪熸垨鍋�")
-    private Boolean isOnLine;
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
index 925dad6..e7bfaba 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java
@@ -1,6 +1,6 @@
 package com.dy.pipIrrWechat.issue;
 
-import com.alibaba.fastjson2.JSONArray;
+import com.dy.common.aop.SsoAop;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
@@ -9,7 +9,6 @@
 import com.dy.pipIrrGlobal.voSe.VoIssueReport;
 import com.dy.pipIrrGlobal.voSe.VoIssueReportReply;
 import com.dy.pipIrrWechat.issue.dto.DtoDeleteParam;
-import com.dy.pipIrrWechat.issue.dto.DtoIssueReport;
 import com.dy.pipIrrWechat.issue.dto.DtoReportReply;
 import com.dy.pipIrrWechat.issue.qo.QoIssueReport;
 import jakarta.validation.Valid;
@@ -19,7 +18,6 @@
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.*;
 
-import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Objects;
@@ -47,34 +45,15 @@
      */
     @PostMapping(path = "addIssueReport")
     @Transactional(rollbackFor = Exception.class)
-    public BaseResponse<Boolean> addIssueReport(@RequestBody @Valid DtoIssueReport po, BindingResult bindingResult) {
+    @SsoAop()
+    public BaseResponse<Boolean> addIssueReport(@RequestBody @Valid SeIssueReport po, BindingResult bindingResult) {
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
         }
 
-        Long clientId = po.getClientId();
-        String phone = Optional.ofNullable(po.getPhone()).orElse("");
-        BigDecimal lng = Optional.ofNullable(po.getLng()).orElse(BigDecimal.valueOf(0));
-        BigDecimal lat = Optional.ofNullable(po.getLat()).orElse(BigDecimal.valueOf(0));
-        String content = Optional.ofNullable(po.getContent()).orElse("");
-        JSONArray images = Optional.ofNullable(po.getImages()).orElse(new JSONArray());
-        JSONArray audios = Optional.ofNullable(po.getAudios()).orElse(new JSONArray());
-        JSONArray videos = Optional.ofNullable(po.getVideos()).orElse(new JSONArray());
-
-        SeIssueReport seIssueReport = new SeIssueReport();
-        seIssueReport.setClientId(clientId);
-        seIssueReport.setPhone(phone);
-        seIssueReport.setLng(lng);
-        seIssueReport.setLat(lat);
-        seIssueReport.setContent(content);
-        seIssueReport.setImages(images);
-        seIssueReport.setAudios(audios);
-        seIssueReport.setVideos(videos);
-        seIssueReport.setReportTime(new Date());
-        seIssueReport.setState((byte)1);
-        Long issueReportId = issueSv.insertIssueReport(seIssueReport);
-        if(issueReportId == null) {
-            return BaseResponseUtils.buildErrorMsg("鍐滄埛闂涓婃姤澶辫触");
+        String result = issueSv.addIssueReport(po);
+        if(!result.equals("success")) {
+            return BaseResponseUtils.buildErrorMsg(result);
         }
 
         return BaseResponseUtils.buildSuccess(true) ;
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
index 367d6b9..2b6e52c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueSv.java
@@ -13,6 +13,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -33,13 +34,20 @@
     private SeReportReplyMapper seReportReplyMapper;
 
     /**
-     * 娣诲姞闂涓婃姤淇℃伅
+     * 娣诲姞鐢ㄦ埛闂涓婃姤
      * @param po
      * @return
      */
-    public Long insertIssueReport(SeIssueReport po) {
+    public String addIssueReport(SeIssueReport po) {
+        po.setReportTime(new Date());
+        po.setState((byte)1);
         seIssueReportMapper.insert(po);
-        return po.getId();
+        Long issueReportId = po.getId();
+        if(issueReportId == null) {
+            return "鍐滄埛闂涓婃姤澶辫触";
+        }
+
+        return "success";
     }
 
     /**
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/dto/DtoIssueReport.java b/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/dto/DtoIssueReport.java
deleted file mode 100644
index 39a693f..0000000
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/dto/DtoIssueReport.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package com.dy.pipIrrWechat.issue.dto;
-
-import com.alibaba.fastjson2.JSONArray;
-import jakarta.validation.constraints.NotNull;
-import lombok.Data;
-
-import java.math.BigDecimal;
-
-/**
- * @author ZhuBaoMin
- * @date 2024-10-30 10:45
- * @LastEditTime 2024-10-30 10:45
- * @Description 鍐滄埛闂涓婃姤浼犺緭绫�
- */
-
-@Data
-public class DtoIssueReport {
-    public static final long serialVersionUID = 202410301046001L;
-
-    /**
-     * 鍙嶉鍐呭
-     */
-    private String content;
-
-    /**
-     * 鐓х墖鍒楄〃
-     */
-    //@TableField(typeHandler = JacksonTypeHandler.class)
-    private JSONArray images;
-
-    /**
-     * 闊抽鍒楄〃
-     */
-    //@TableField(typeHandler = JacksonTypeHandler.class)
-    private JSONArray audios;
-
-    /**
-     * 瑙嗛鍒楄〃
-     */
-    //@TableField(typeHandler = JacksonTypeHandler.class)
-    private JSONArray videos;
-
-    /**
-     * 缁忓害
-     */
-    private BigDecimal lng;
-
-    /**
-     * 绾害
-     */
-    private BigDecimal lat;
-
-    /**
-     * 鍐滄埛ID
-     */
-    @NotNull(message = "鍐滄埛涓嶈兘涓虹┖")
-    private Long clientId;
-
-    /**
-     * 鑱旂郴鐢佃瘽
-     */
-    private String phone;
-
-}

--
Gitblit v1.8.0