From 471c449df219f2be0a67dadf9ea2946cc3edfce7 Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期二, 12 十一月 2024 17:45:34 +0800
Subject: [PATCH] Merge branch 'master' of http://8.140.179.55:20000/r/pipIrr-SV

---
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueSv.java            |   57 ++++++++++-
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/dto/DtoDeleteParam.java |   28 +++++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/IssueCtrl.java          |   48 ++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml                                |    4 
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeIssueReportMapper.java        |   39 +++++++
 pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml                           |    4 
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml                       |   92 ++++++++++++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-wechat/src/main/java/com/dy/pipIrrWechat/issue/IssueCtrl.java    |    2 
 8 files changed, 259 insertions(+), 15 deletions(-)

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
index dde252e..2e59e7e 100644
--- 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
@@ -2,7 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
+import com.dy.pipIrrGlobal.voOp.VoIssueReport;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -24,4 +29,38 @@
     int updateByPrimaryKeySelective(OpeIssueReport record);
 
     int updateByPrimaryKey(OpeIssueReport record);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇宸℃鍛橀棶棰樹笂鎶ユ暟閲�
+     * @param params
+     * @return
+     */
+    Long getIssueReportsCount(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁鎸囧畾鏉′欢鑾峰彇宸℃鍛橀棶棰樹笂鎶�
+     * @param params
+     * @return
+     */
+    List<VoIssueReport> getIssueReports(Map<?, ?> params);
+
+    /**
+     * 鏍规嵁涓婃姤ID鍙婂贰妫�鍛業D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢�
+     * @param issueReportId
+     * @param inspectorId
+     * @return
+     */
+    OpeIssueReport getReport(@Param("issueReportId")Long issueReportId, @Param("inspectorId")Long inspectorId);
+
+    /**
+     * 閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶�
+     * @param issueReportId
+     * @return
+     */
+    /**
+     * 閫昏緫鍒犻櫎涓�涓贰妫�鍛橀棶棰樹笂鎶�
+     * @param issueReportId
+     * @return
+     */
+    Integer deleteIssueReport(Long issueReportId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
index 80e789b..ed9eb26 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-database-ym.yml
@@ -5,9 +5,9 @@
             #name: ym
             type: com.alibaba.druid.pool.DruidDataSource
             driverClassName: 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://127.0.0.1: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
             username: root
             password: dysql,;.abc!@#
             druid:
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
index c3e6b55..5e8b483 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/application-global.yml
@@ -77,7 +77,7 @@
 
 pipIrr:
     global:
-        dev: true  #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
+        dev: false  #鏄惁寮�鍙戦樁娈碉紝true鎴杅alse
         dsName: ym  #寮�鍙戦樁娈碉紝璁剧疆涓存椂鐨勬暟鎹簱鍚嶇О
     nginx:
         webPort: 54321
@@ -329,7 +329,7 @@
     #鐩戞祴鎺у埗妯″潡鍥炶皟鍦板潃
     rtuCallbackUrl_rm: "http://127.0.0.1:8081/remote/comRes/receive"
     #rtu杩滅▼鍗囩骇妯″潡鍥炶皟鍦板潃
-    ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive
+    ugCallbackUrl_rm: "http://127.0.0.1:8081/remote/rtuUpgradeStateReceiver/receive"
     #寰俊灏忕▼搴忓洖璋冨湴鍧�
     rtuCallbackUrl_wx: "http://127.0.0.1:8087/wx/comRes/receive"
 
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml
index 8dedb69..47379c7 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeIssueReportMapper.xml
@@ -170,4 +170,96 @@
       `state` = #{state,jdbcType=TINYINT}
     where id = #{id,jdbcType=BIGINT}
   </update>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇宸℃鍛橀棶棰樹笂鎶ユ暟閲�-->
+  <select id="getIssueReportsCount" resultType="java.lang.Long">
+    SELECT COUNT(*) AS recordCount
+    FROM ope_issue_report rpt
+        LEFT JOIN ba_user us ON us.id = rpt.inspector_id
+        LEFT JOIN ope_report_reply rpy ON rpy.report_id = rpt.id
+    <where>
+      AND rpt.state != 3
+
+      <if test="inspectorId != null">
+        AND rpt.inspector_id = #{inspectorId}
+      </if>
+
+      <if test="inspectorName != null and inspectorName != ''">
+        AND us.name like CONCAT('%', #{inspectorName}, '%')
+      </if>
+
+      <if test="content != null and content != ''">
+        AND rpt.content like CONCAT('%', #{content}, '%')
+      </if>
+
+      <if test="timeStart != null and timeStop != null ">
+        AND rpt.report_time BETWEEN #{timeStart} AND #{timeStop}
+      </if>
+
+      <if test="state != null">
+        AND rpt.state = #{state}
+      </if>
+    </where>
+  </select>
+
+  <!--鏍规嵁鎸囧畾鏉′欢鑾峰彇宸℃鍛橀棶棰樹笂鎶�-->
+  <select id="getIssueReports" resultType="com.dy.pipIrrGlobal.voOp.VoIssueReport">
+    SELECT
+        rpt.id AS issueReportId,
+        us.name AS inspectorName,
+        rpt.phone,
+        rpt.report_time AS reportTime,
+        rpt.content,
+        rpt.images,
+        rpt.audios,
+        rpt.videos,
+        rpy.reply_time AS replyTime,
+        rpt.state AS stateId,
+        CASE
+            WHEN rpt.state = 1 THEN '鏈彈鐞�'
+            WHEN rpt.state = 2 THEN '宸插彈鐞�'
+        END AS state
+    FROM ope_issue_report rpt
+        LEFT JOIN ba_user us ON us.id = rpt.inspector_id
+        LEFT JOIN ope_report_reply rpy ON rpy.report_id = rpt.id
+    <where>
+      AND rpt.state != 3
+
+      <if test="inspectorId != null">
+        AND rpt.inspector_id = #{inspectorId}
+      </if>
+
+      <if test="inspectorName != null and inspectorName != ''">
+        AND us.name like CONCAT('%', #{inspectorName}, '%')
+      </if>
+
+      <if test="content != null and content != ''">
+        AND rpt.content like CONCAT('%', #{content}, '%')
+      </if>
+
+      <if test="timeStart != null and timeStop != null ">
+        AND rpt.report_time BETWEEN #{timeStart} AND #{timeStop}
+      </if>
+
+      <if test="state != null">
+        AND rpt.state = #{state}
+      </if>
+    </where>
+    ORDER BY rpt.report_time DESC
+    <trim prefix="limit ">
+      <if test="start != null and count != null">
+        #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
+      </if>
+    </trim>
+  </select>
+
+  <!--鏍规嵁涓婃姤ID鍙婂贰妫�鍛業D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢�-->
+  <select id="getReport" resultType="com.dy.pipIrrGlobal.pojoOp.OpeIssueReport">
+    SELECT * FROM ope_issue_report WHERE state != 3 AND id = #{issueReportId} AND inspector_id = #{inspectorId}
+  </select>
+
+  <!--閫昏緫鍒犻櫎涓�涓啘鎴烽棶棰樹笂鎶�-->
+  <update id="deleteIssueReport">
+    UPDATE ope_issue_report SET state = 3 WHERE id = #{issueReportId}
+  </update>
 </mapper>
\ No newline at end of file
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
index 9fb6484..446935e 100644
--- 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
@@ -3,17 +3,19 @@
 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.issue.dto.DtoDeleteParam;
+import com.dy.pipIrrApp.issue.qo.QoIssueReport;
 import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
+import com.dy.pipIrrGlobal.voOp.VoIssueReport;
 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 org.springframework.web.bind.annotation.*;
 
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -52,4 +54,42 @@
         return BaseResponseUtils.buildSuccess(true) ;
     }
 
+    /**
+     * 鑾峰彇宸℃鍛橀棶棰樹笂鎶ヨ褰�
+     * @param vo
+     * @return
+     */
+    @GetMapping(path = "/getIssueReports")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoIssueReport>>> getIssueReports(QoIssueReport vo) {
+        try {
+            QueryResultVo<List<VoIssueReport>> res = issueSv.getIssueReports(vo);
+            return BaseResponseUtils.buildSuccess(res);
+        } catch (Exception e) {
+            log.error("鑾峰彇宸℃鍛橀棶棰樹笂鎶ヨ褰曞紓甯�", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎宸℃鍛橀棶棰樹笂鎶ワ紝鍒犻櫎鍓嶅厛鍒ゆ柇瑕佸垹闄ょ殑涓婃姤鏄惁瀛樺湪
+     * @param po
+     * @param bindingResult
+     * @return
+     */
+    @PostMapping(path = "deleteIssueReport")
+    public BaseResponse<Boolean> deleteIssueReport(@RequestBody @Valid DtoDeleteParam po, BindingResult bindingResult) {
+        if(bindingResult != null && bindingResult.hasErrors()){
+            return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());
+        }
+
+        String result = issueSv.deleteIssueReport(po);
+        if(!result.equals("success")) {
+            return BaseResponseUtils.buildErrorMsg(result);
+        }
+
+        return BaseResponseUtils.buildSuccess();
+
+    }
+
 }
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
index 36f7867..83c6422 100644
--- 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
@@ -1,12 +1,19 @@
 package com.dy.pipIrrApp.issue;
 
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrApp.issue.dto.DtoDeleteParam;
+import com.dy.pipIrrApp.issue.qo.QoIssueReport;
 import com.dy.pipIrrGlobal.daoOp.OpeIssueReportMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeIssueReport;
+import com.dy.pipIrrGlobal.voOp.VoIssueReport;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.common.utils.PojoUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.Date;
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -39,13 +46,53 @@
     }
 
     /**
-     * 娣诲姞宸℃鍛橀棶棰樹笂鎶ヤ俊鎭�
+     * 鏍规嵁鏉′欢鑾峰彇宸℃鍛橀棶棰樹笂鎶ヨ褰�
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoIssueReport>> getIssueReports(QoIssueReport queryVo) {
+        //瀹屽杽鏌ヨ鍏呭�艰褰曠殑璧锋鏃堕棿
+        String timeStart = queryVo.getTimeStart();
+        String timeStop = queryVo.getTimeStop();
+        if (timeStart != null) {
+            timeStart = timeStart + " 00:00:00";
+            queryVo.setTimeStart(timeStart);
+        }
+        if (timeStop != null) {
+            timeStop = timeStop + " 23:59:59";
+            queryVo.setTimeStop(timeStop);
+        }
+
+        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(queryVo);
+
+        Long itemTotal = opeIssueReportMapper.getIssueReportsCount(params);
+        QueryResultVo<List<VoIssueReport>> rsVo = new QueryResultVo<>();
+
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+        rsVo.obj = opeIssueReportMapper.getIssueReports(params);
+        return rsVo;
+    }
+
+    /**
+     * 閫昏緫鍒犻櫎宸℃鍛橀棶棰樹笂鎶ワ紝鍒犻櫎鍓嶅厛鍒ゆ柇瑕佸垹闄ょ殑涓婃姤鏄惁瀛樺湪
      * @param po
      * @return
      */
-    //public Long insertIssueReport(OpeIssueReport po) {
-    //    opeIssueReportMapper.insert(po);
-    //    return po.getId();
-    //}
+    public String deleteIssueReport(DtoDeleteParam po) {
+        // 鏍规嵁涓婃姤ID鍙婂贰妫�鍛業D鑾峰彇鏈垹闄ょ殑涓婃姤锛屽垹闄や笂鎶ュ垽鏂娇鐢�
+        OpeIssueReport opeIssueReport = opeIssueReportMapper.getReport(po.getIssueReportId(), po.getInspectorId());
+        if(opeIssueReport == null) {
+            return "鎮ㄨ鍒犻櫎鐨勯棶棰樹笂鎶ヤ笉瀛樺湪";
+        }
+
+        if(opeIssueReportMapper.deleteIssueReport(po.getIssueReportId()) == 0) {
+            return "宸℃鍛橀棶棰樹笂鎶ュ垹闄ゅけ璐�";
+        }
+
+        return "success";
+    }
 
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/dto/DtoDeleteParam.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/dto/DtoDeleteParam.java
new file mode 100644
index 0000000..1c6f41b
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/issue/dto/DtoDeleteParam.java
@@ -0,0 +1,28 @@
+package com.dy.pipIrrApp.issue.dto;
+
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * @author ZhuBaoMin
+ * @date 2024-11-12 16:18
+ * @LastEditTime 2024-11-12 16:18
+ * @Description 宸℃鍛橀棶棰樹笂鎶ュ垹闄ゅ弬鏁板璞�
+ */
+
+@Data
+public class DtoDeleteParam {
+    public static final long serialVersionUID = 202411121619001L;
+
+    /**
+     * 宸℃鍛橀棶棰樹笂鎶D
+     */
+    @NotNull(message = "璇烽�夋嫨瑕佸垹闄ょ殑闂涓婃姤")
+    private Long issueReportId;
+
+    /**
+     * 宸℃鍛業D
+     */
+    @NotNull(message = "宸℃鍛樼紪鍙蜂笉鑳戒负绌�")
+    private Long inspectorId;
+}
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 e7bfaba..b11901e 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,5 @@
 package com.dy.pipIrrWechat.issue;
 
-import com.dy.common.aop.SsoAop;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
 import com.dy.common.webUtil.QueryResultVo;
@@ -45,7 +44,6 @@
      */
     @PostMapping(path = "addIssueReport")
     @Transactional(rollbackFor = Exception.class)
-    @SsoAop()
     public BaseResponse<Boolean> addIssueReport(@RequestBody @Valid SeIssueReport po, BindingResult bindingResult) {
         if(bindingResult != null && bindingResult.hasErrors()){
             return BaseResponseUtils.buildFail(Objects.requireNonNull(bindingResult.getFieldError()).getDefaultMessage());

--
Gitblit v1.8.0