From 4464c056c18deb156e51b9ec6fb1fb18223b69d4 Mon Sep 17 00:00:00 2001
From: wuzeyu <1223318623@qq.com>
Date: 星期五, 22 十一月 2024 15:52:04 +0800
Subject: [PATCH] 查询巡检轨迹

---
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java    |   40 ++++++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeInspectMapper.java        |   18 +++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoInspect.java                |   48 +++++++++
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java  |   26 ++++
 pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTrackMapper.java          |    7 +
 pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/qo/QoInspect.java |   41 ++++++++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTrackMapper.xml                         |   10 ++
 pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeInspectMapper.xml                       |   48 +++++++++
 pipIrr-platform/pipIrr-common/pom.xml                                                              |    5 +
 9 files changed, 239 insertions(+), 4 deletions(-)

diff --git a/pipIrr-platform/pipIrr-common/pom.xml b/pipIrr-platform/pipIrr-common/pom.xml
index 9b94099..c044a21 100644
--- a/pipIrr-platform/pipIrr-common/pom.xml
+++ b/pipIrr-platform/pipIrr-common/pom.xml
@@ -167,6 +167,11 @@
             <artifactId>log4j-slf4j-impl</artifactId>
             <version>2.17.2</version>
         </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-extension</artifactId>
+            <version>3.5.3.2</version>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeInspectMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeInspectMapper.java
index 86ab9e7..3e5c041 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeInspectMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeInspectMapper.java
@@ -2,7 +2,11 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeInspect;
+import com.dy.pipIrrGlobal.voOp.VoInspect;
 import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -24,4 +28,18 @@
     int updateByPrimaryKeySelective(OpeInspect record);
 
     int updateByPrimaryKey(OpeInspect record);
+
+    /**
+     * 宸℃鏌ヨ
+     * @param params
+     * @return
+     */
+    Long getInspectsCount(Map<String, Object> params);
+
+    /**
+     * 宸℃鏌ヨ
+     * @param params
+     * @return
+     */
+    List<VoInspect> getInspects(Map<String, Object> params);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTrackMapper.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTrackMapper.java
index 492a918..c1e7004 100644
--- a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTrackMapper.java
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/daoOp/OpeTrackMapper.java
@@ -33,4 +33,11 @@
      * @return
      */
     int insertTracks(List<OpeTrack> list);
+
+    /**
+     * 閫氳繃宸℃ID鏌ヨ杞ㄨ抗
+     * @param inspectId
+     * @return
+     */
+    List<OpeTrack> selectByInspectId(Long inspectId);
 }
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoInspect.java b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoInspect.java
new file mode 100644
index 0000000..4e5ff81
--- /dev/null
+++ b/pipIrr-platform/pipIrr-global/src/main/java/com/dy/pipIrrGlobal/voOp/VoInspect.java
@@ -0,0 +1,48 @@
+package com.dy.pipIrrGlobal.voOp;
+
+import com.dy.common.po.BaseEntity;
+import com.dy.pipIrrGlobal.pojoOp.OpeTrack;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/11/20  15:37
+ * @LastEditTime :2024/11/20  15:37
+ * @Description
+ */
+@Data
+public class VoInspect implements BaseEntity {
+    private static final long serialVersionUID = 202411201537001L;
+
+    /**
+     * 宸℃鍛業D
+     */
+    private Long inspectorId;
+
+    /**
+     * 宸℃鍛樺鍚�
+     */
+    private String inspectorName;
+
+    /**
+     * 宸℃ID
+     */
+    private Long inspectId;
+    /**
+     * 寮�濮嬪贰妫�鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data startTime;
+    /**
+     * 缁撴潫宸℃鏃堕棿
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Data stopTime;
+    /**
+     * 鍚勪釜宸℃鐐�
+     */
+    private List<OpeTrack> tracks;
+}
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeInspectMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeInspectMapper.xml
index 888dd76..c7f927a 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeInspectMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeInspectMapper.xml
@@ -88,4 +88,52 @@
       stop_time = #{stopTime,jdbcType=TIMESTAMP}
     where id = #{id,jdbcType=BIGINT}
   </update>
+<!-- 鏌ヨ鎬绘暟 -->
+  <select id="getInspectsCount" resultType="java.lang.Long">
+    SELECT
+    count(*)
+    FROM	`ope_inspect` oi
+    INNER JOIN `ba_user` ON oi.inspector_id = ba_user.id
+    <where>
+      ba_user.deleted = 0
+      <if test="inspectorId != null">
+        AND oi.inspector_id = #{inspectorId}
+      </if>
+      <if test="inspectId != null">
+        AND oi.id = #{inspectId}
+      </if>
+      <if test="inspectorName != null">
+        AND ba_user.`name` LIKE CONCAT('%',#{inspectorName},'%')
+      </if>
+      <if test="timeStart != null and timeStop != null">
+        AND oi.start_time BETWEEN #{timeStart} AND #{timeStop}
+      </if>
+    </where>
+    </select>
+<!-- 鏌ヨ鍒楄〃 -->
+  <select id="getInspects" resultType="com.dy.pipIrrGlobal.voOp.VoInspect">
+    SELECT
+      oi.inspector_id AS inspectorId,
+      ba_user.`name` AS inspectorName,
+      oi.id AS inspectId,
+      oi.start_time AS startTime,
+      oi.stop_time AS stopTime
+    FROM	`ope_inspect` oi
+              INNER JOIN `ba_user` ON oi.inspector_id = ba_user.id
+    <where>
+      ba_user.deleted = 0
+      <if test="inspectorId != null">
+        AND oi.inspector_id = #{inspectorId}
+      </if>
+      <if test="inspectId != null">
+        AND oi.id = #{inspectId}
+      </if>
+      <if test="inspectorName != null">
+        AND ba_user.`name` LIKE CONCAT('%',#{inspectorName},'%')
+      </if>
+      <if test="timeStart != null and timeStop != null">
+        AND oi.start_time BETWEEN #{timeStart} AND #{timeStop}
+      </if>
+    </where>
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTrackMapper.xml b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTrackMapper.xml
index ebb150d..52d3403 100644
--- a/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTrackMapper.xml
+++ b/pipIrr-platform/pipIrr-global/src/main/resources/mapper/OpeTrackMapper.xml
@@ -108,4 +108,14 @@
       (#{item.id}, #{item.inspectId}, #{item.lng}, #{item.lat}, #{item.locateTime})
     </foreach>
   </insert>
+    <!--鏍规嵁宸℃id鏌ヨ杞ㄨ抗-->
+  <select id="selectByInspectId" resultMap="BaseResultMap">
+    SELECT
+      id,
+      inspect_id AS inspectId,
+      lng,
+      lat,
+      locate_time AS locateTime
+    FROM ope_track WHERE inspect_id = #{inspectId}
+  </select>
 </mapper>
\ No newline at end of file
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
index 26446d4..f18bb02 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectCtrl.java
@@ -4,19 +4,20 @@
 import com.dy.common.util.IDLongGenerator;
 import com.dy.common.webUtil.BaseResponse;
 import com.dy.common.webUtil.BaseResponseUtils;
+import com.dy.common.webUtil.QueryResultVo;
 import com.dy.pipIrrApp.inspect.dto.Inspects;
+import com.dy.pipIrrApp.inspect.qo.QoInspect;
 import com.dy.pipIrrGlobal.pojoOp.OpeInspect;
 import com.dy.pipIrrGlobal.pojoOp.OpeTrack;
+import com.dy.pipIrrGlobal.voOp.VoInspect;
+import com.dy.pipIrrGlobal.voOp.VoIssueReport;
 import jakarta.validation.Valid;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
 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.Date;
 import java.util.List;
@@ -121,4 +122,21 @@
         return BaseResponseUtils.buildErrorMsg("鎮ㄦ彁浜ょ殑宸℃杞ㄨ抗涓虹┖");
     }
 
+    /**
+     * 鏌ヨ宸℃杞ㄨ抗
+     * @param qo
+     * @return
+     */
+    @GetMapping(path = "/getInspects")
+    @SsoAop()
+    public BaseResponse<QueryResultVo<List<VoInspect>>> getInspects(QoInspect qo){
+
+        try{
+            QueryResultVo<List<VoInspect>> res = inspectSv.getInspects(qo);
+            return BaseResponseUtils.buildSuccess(res);
+        }catch (Exception e){
+            log.error("鑾峰彇宸℃鍒楄〃寮傚父", e);
+            return BaseResponseUtils.buildException(e.getMessage());
+        }
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
index 6d04f09..7434053 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/InspectSv.java
@@ -1,14 +1,20 @@
 package com.dy.pipIrrApp.inspect;
 
+import com.dy.common.webUtil.QueryResultVo;
+import com.dy.pipIrrApp.inspect.qo.QoInspect;
 import com.dy.pipIrrGlobal.daoOp.OpeInspectMapper;
 import com.dy.pipIrrGlobal.daoOp.OpeTrackMapper;
 import com.dy.pipIrrGlobal.pojoOp.OpeInspect;
 import com.dy.pipIrrGlobal.pojoOp.OpeTrack;
+import com.dy.pipIrrGlobal.voOp.VoInspect;
+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.List;
+import java.util.Map;
 
 /**
  * @author ZhuBaoMin
@@ -54,5 +60,39 @@
         return opeTrackMapper.insertTracks(list);
     }
 
+    /**
+     * 宸℃鏌ヨ
+     * @param queryVo
+     * @return
+     */
+    public QueryResultVo<List<VoInspect>> getInspects(QoInspect 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 = opeInspectMapper.getInspectsCount(params);
+        QueryResultVo<List<VoInspect>> rsVo = new QueryResultVo<>();
+
+        rsVo.pageSize = queryVo.pageSize;
+        rsVo.pageCurr = queryVo.pageCurr;
+
+        rsVo.calculateAndSet(itemTotal, params);
+
+        List<VoInspect> inspects = opeInspectMapper.getInspects(params);
+        for (int i = 0; i < inspects.size(); i++) {
+             inspects.get(i).setTracks(opeTrackMapper.selectByInspectId(inspects.get(i).getInspectId()));
+        }
+        rsVo.obj = inspects;
+        return rsVo;
+    }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/qo/QoInspect.java b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/qo/QoInspect.java
new file mode 100644
index 0000000..294c259
--- /dev/null
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-app/src/main/java/com/dy/pipIrrApp/inspect/qo/QoInspect.java
@@ -0,0 +1,41 @@
+package com.dy.pipIrrApp.inspect.qo;
+
+import com.dy.common.webUtil.QueryConditionVo;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+/**
+ * @author :WuZeYu
+ * @Date :2024/11/20  15:19
+ * @LastEditTime :2024/11/20  15:19
+ * @Description
+ */
+@Data
+public class QoInspect extends QueryConditionVo {
+    /**
+     * 宸℃ID
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long inspectId;
+    /**
+     * 宸℃鍛業D
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long inspectorId;
+
+    /**
+     * 宸℃鍛樺鍚�
+     */
+    private String inspectorName;
+
+    /**
+     * 銆佸紑濮嬪贰妫�鐨勬椂闂达紝寮�濮嬭寖鍥�
+     */
+    private String timeStart;
+
+    /**
+     * 銆佸紑濮嬪贰妫�鐨勬椂闂达紝缁撴潫鑼冨洿
+     */
+    private String timeStop;
+}

--
Gitblit v1.8.0