From 90276a76b56cc1e744f7fa68ce921a28a8a9c92f Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期三, 08 一月 2025 11:52:10 +0800
Subject: [PATCH] 运行监控报表导出时间少一天问题

---
 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml |  249 ++++++++++++++++++++++++++++++++-----------------
 1 files changed, 163 insertions(+), 86 deletions(-)

diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index a4e932f..a503036 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -2,8 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ycl.platform.mapper.YwPointMapper">
 
-    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
-    <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.YwPointVO">
+    <!-- 鍒嗛〉鏄犲皠缁撴灉 -->
+    <resultMap id="pageMap" type="com.ycl.platform.domain.vo.YwPointVO">
         <result column="id" property="id"/>
         <result column="point_name" property="pointName"/>
         <result column="start_time" property="startTime"/>
@@ -16,17 +16,23 @@
         <result column="remark" property="remark"/>
         <result column="create_time" property="createTime"/>
         <result column="update_time" property="updateTime"/>
-        <result column="province_tag" property="provinceTag"/>
+        <result column="province_tag_video" property="provinceTagVideo"/>
+        <result column="province_tag_car" property="provinceTagCar"/>
+        <result column="province_tag_face" property="provinceTagFace"/>
         <result column="important_tag" property="importantTag"/>
         <result column="important_command_image_tag" property="importantCommandImageTag"/>
         <result column="dept_tag" property="deptTag"/>
+        <collection property="dynamicColumnList" select="getDyColumns"
+                    column="{id=id,tableName=tableName,pointName=pointName}"
+                    ofType="com.ycl.platform.domain.vo.DynamicColumnVO"/>
     </resultMap>
 
-    <select id="selectData" resultType="com.ycl.platform.base.BaseSelect">
-
-    </select>
-
-    <select id="page" resultMap="BaseResultMap">
+    <resultMap id="dynamicColumnMap" type="com.ycl.platform.domain.vo.DynamicColumnVO">
+        <result column="prop_name" property="propName"/>
+        <result column="label_value" property="labelValue"/>
+        <result column="column_value" property="columnValue"/>
+    </resultMap>
+    <select id="page" resultMap="pageMap">
         SELECT
         typ.id,
         typ.point_name,
@@ -41,18 +47,39 @@
         typ.create_time,
         typ.update_time,
         typ.important_tag,
-        typ.province_tag,
+        typ.province_tag_video,
+        typ.province_tag_car,
+        typ.province_tag_face,
         typ.important_command_image_tag,
-        typ.dept_tag
+        typ.dept_tag,
+        't_yw_point' as tableName,
+        #{query.pointName} as pointName
         FROM
         t_yw_point typ
         LEFT JOIN t_yw_unit tyu ON typ.unit_id = tyu.id AND tyu.deleted = 0
         LEFT JOIN sys_dept sd ON typ.dept_id = sd.dept_id AND sd.del_flag = 0
         <where>
+            typ.examine_status = 1
             <if test="query.pointName != null and query.pointName != ''">
                 AND typ.point_name like concat('%', #{query.pointName}, '%')
             </if>
+            <if test="query.unitId != null">
+                AND typ.unit_id = #{query.unitId}
+            </if>
         </where>
+    </select>
+
+    <select id="getDyColumns" resultMap="dynamicColumnMap">
+        SELECT
+        *
+        FROM
+        t_dynamic_column_value dcv
+        LEFT JOIN t_dynamic_column dc ON dc.id = dcv.dynamic_column_id AND dc.table_name = #{tableName}
+        WHERE
+        dcv.ref_id = #{id}
+<!--        <if test="pointName != null and pointName != ''">-->
+<!--            and dcv.column_value like concat('%', #{pointName}, '%')-->
+<!--        </if>-->
     </select>
 
     <select id="home" resultType="com.ycl.platform.domain.entity.YwPoint">
@@ -60,49 +87,37 @@
         SELECT t_yw_point.id, point_name, start_time, end_time, status, unit_name AS remark
         FROM t_yw_point
                  LEFT JOIN t_yw_unit ON t_yw_unit.id = t_yw_point.unit_id AND t_yw_point.deleted = 0
-        WHERE t_yw_point.deleted = 0
+        WHERE t_yw_point.deleted = 0 AND t_yw_point.examine_status = 1
           AND TIMESTAMPDIFF(MONTH, NOW(), end_time) <= (SELECT config_value
                                                         FROM sys_config
                                                         WHERE config_key = 'operation.and.maintenance.expiration.warning.time')
-        ORDER BY end_time
+        ORDER BY end_time limit 50
         ]]>
     </select>
 
-    <select id="selectByTag" resultType="com.ycl.platform.domain.entity.YwPoint">
-        select * from t_yw_point
-        <where>
-            <if test="important!=null and important == true ">
-                and important_tag = #{important}
-            </if>
-            <if test="province!=null and province == true ">
-                and province_tag = #{province}
-            </if>
-            <if test="commandImage!=null and commandImage == true ">
-                and important_command_image_tag = #{commandImage}
-            </if>
-            <if test="deptTag !=null and deptTag == true ">
-                and dept_tag = #{deptTag}
-            </if>
-        </where>
-    </select>
-
-    <select id="export" resultType="com.ycl.platform.domain.excel.PointExport">
+    <select id="export" resultType ="com.ycl.platform.domain.excel.PointExport">
         SELECT
+        yp.id,
         m.name as pointName,
         m.serial_number,
-        m.ip,
+        m.ip as pointIP,
         yu.unit_name,
         yp.start_time,
         yp.end_time,
-        CASE WHEN yp.province_tag = 0 THEN '鍚�' ELSE '鏄�' END AS provinceTagString,
+        d.area,
+        CASE WHEN yp.province_tag_video = 0 THEN '鍚�' ELSE '鏄�' END AS provinceTagVideoString,
+        CASE WHEN yp.province_tag_car = 0 THEN '鍚�' ELSE '鏄�' END AS provinceTagCarString,
+        CASE WHEN yp.province_tag_face = 0 THEN '鍚�' ELSE '鏄�' END AS provinceTagFaceString,
         CASE WHEN yp.important_tag = 0 THEN '鍚�' ELSE '鏄�' END AS importantTagString,
         CASE WHEN yp.important_command_image_tag = 0 THEN '鍚�' ELSE '鏄�' END AS importantCommandImageTagString,
-        CASE WHEN yp.dept_tag = 0 THEN '鍚�' ELSE '鏄�' END AS deptTag
+        CASE WHEN yp.dept_tag = 0 THEN '鍚�' ELSE '鏄�' END AS deptTagString
         FROM
         t_yw_point yp
         INNER JOIN t_monitor m ON yp.serial_number = m.serial_number
         LEFT JOIN t_yw_unit yu ON yu.id = yp.unit_id
+        LEFT JOIN sys_dept d ON yp.dept_id = d.dept_id
         <where>
+            yp.examine_status = 1
             <if test="query.pointName != null and query.pointName != ''">
                 AND m.name like concat('%', #{query.pointName} ,'%')
             </if>
@@ -111,7 +126,8 @@
     </select>
 
     <delete id="deleteAll">
-        delete from t_yw_point
+        delete
+        from t_yw_point
     </delete>
 
     <update id="updatePoint">
@@ -121,16 +137,14 @@
             <if test="point.pointName != null and point.pointName != ''">
                 point_name = #{point.pointName},
             </if>
-            <if test="point.unitId != null">
+            <if test="needUpdateUnit != null and needUpdateUnit">
                 unit_id = #{point.unitId},
-            </if>
-            <if test="point.startTime != null">
                 start_time = #{point.startTime},
-            </if>
-            <if test="point.endTime != null">
                 end_time = #{point.endTime},
             </if>
-            province_tag = #{point.provinceTag},
+            province_tag_video = #{point.provinceTagVideo},
+            province_tag_car = #{point.provinceTagCar},
+            province_tag_face = #{point.provinceTagFace},
             important_command_image_tag = #{point.importantCommandImageTag},
             dept_tag = #{point.deptTag}
             WHERE serial_number = #{point.serialNumber}
@@ -138,54 +152,52 @@
     </update>
 
     <select id="countNotFinishedWorkOrderByPointId" resultType="com.ycl.platform.domain.vo.YwPointVO">
-        SELECT
-            yp.id, yp.point_name, wo.serial_number
-        FROM
-             t_yw_point yp
+        SELECT yp.id,
+               yp.point_name,
+               wo.serial_number
+        FROM t_yw_point yp
                  INNER JOIN t_work_order wo ON yp.serial_number = wo.serial_number
-                                                   AND wo.status not in ('AUDITING_SUCCESS','WAIT_DISTRIBUTE')
-                                                   AND wo.deleted = 0
-                                                   AND yp.deleted = 0
-        WHERE
-            yp.id = #{pointId}
+            AND wo.status not in ('AUDITING_SUCCESS', 'WAIT_DISTRIBUTE')
+            AND wo.deleted = 0
+            AND yp.deleted = 0
+        WHERE yp.id = #{pointId}
     </select>
 
     <select id="countNotFinishedWorkOrderByGb" resultType="com.ycl.platform.domain.vo.YwPointVO">
-        SELECT
-            yp.id, yp.point_name, wo.serial_number
-        FROM
-            t_yw_point yp
-                INNER JOIN t_work_order wo ON yp.serial_number = wo.serial_number
-                AND wo.status not in ('AUDITING_SUCCESS','WAIT_DISTRIBUTE')
-                AND wo.deleted = 0
-                AND yp.deleted = 0
-                AND yp.serial_number = #{serialNumber}
-        LIMIT 1
+        SELECT yp.id,
+               yp.point_name,
+               wo.serial_number
+        FROM t_yw_point yp
+                 INNER JOIN t_work_order wo ON yp.serial_number = wo.serial_number
+            AND wo.status not in ('AUDITING_SUCCESS', 'WAIT_DISTRIBUTE')
+            AND wo.deleted = 0
+            AND yp.deleted = 0
+            AND yp.serial_number = #{serialNumber} LIMIT 1
     </select>
 
     <select id="getDeptPointGB" resultType="string">
         SELECT
-            DISTINCT serial_number
+        DISTINCT serial_number
         FROM
-             t_yw_point
+        t_yw_point
         WHERE
-            <if test="tagType == 0">
-                dept_tag = 1
-            </if>
-            <if test="tagType == 1">
-                important_tag = 1
-            </if>
-            <if test="tagType == 2">
-                important_command_image_tag = 1
-            </if>
-             AND deleted = 0
+        <if test="tagType == 0">
+            dept_tag = 1
+        </if>
+        <if test="tagType == 1">
+            important_tag = 1
+        </if>
+        <if test="tagType == 2">
+            important_command_image_tag = 1
+        </if>
+        AND deleted = 0
     </select>
 
     <select id="select" resultType="com.ycl.platform.domain.entity.YwPoint">
         SELECT
-               *
+        *
         FROM
-             t_yw_point
+        t_yw_point
         <where>
             <if test="keyword != null and keyword != ''">
                 AND (serial_number like concat('%', #{keyword}, '%') or point_name like concat('%', #{keyword}, '%'))
@@ -199,19 +211,84 @@
     </select>
 
     <select id="getReportResult" resultType="com.ycl.platform.domain.vo.ReportAuditingRecordVO">
-        SELECT
-               ar.result, r.begin_create_time, r.end_create_time
-        FROM
-             t_report r
+        SELECT ar.result,
+               r.begin_create_time,
+               r.end_create_time
+        FROM t_report r
                  INNER JOIN t_report_auditing_record ar ON r.id = ar.report_id
-                                                               AND ar.deleted = 0
-                                                               AND r.report_type = #{reportType}
-                                                               AND r.deleted = 0
-                                                               AND r.serial_number = #{serialNumber}
-                                                                AND ar.result = 1
-        ORDER BY
-             ar.create_time DESC
-        limit 1
+            AND ar.deleted = 0
+            AND r.report_type = #{reportType}
+            AND r.deleted = 0
+            AND r.serial_number = #{serialNumber}
+            AND ar.result = 1
+        ORDER BY ar.create_time DESC limit 1
+    </select>
+    <select id="getTagsByGB" resultType="com.ycl.platform.domain.vo.CheckTagVO">
+        SELECT
+        serial_number as no, province_tag_face,province_tag_car,province_tag_video, important_tag, important_command_image_tag, dept_tag
+        FROM
+        t_yw_point
+        WHERE
+        deleted = 0 AND serial_number in
+        <foreach collection="gbList" open="(" separator="," close=")" item="no">#{no}</foreach>
+        GROUP BY
+        serial_number, province_tag_face,province_tag_car,province_tag_video, important_tag, important_command_image_tag, dept_tag
     </select>
 
+    <select id="selectToCount" resultType="com.ycl.platform.domain.vo.YwPointVO">
+        select p.* from t_yw_point p
+        left join t_monitor m on p.serial_number = m.serial_number
+        <where>
+            p.examine_status = 1 and m.camera_fun_type like concat('%',#{examineCategory},'%')
+            <if test="examineTag == 0 and examineCategory ==1" >
+                and p.province_tag_video = 1
+            </if>
+            <if test="examineTag == 0 and examineCategory ==2" >
+                and p.province_tag_car = 1
+            </if>
+            <if test="examineTag == 0 and examineCategory ==3" >
+                and p.province_tag_face = 1
+            </if>
+            <if test="examineTag == 2">
+                and p.dept_tag = 1
+            </if>
+        </where>
+    </select>
+    <update id="myUpdateById">
+        update t_yw_point
+        <set>
+            <if test="pointName !=null and pointName !=''">
+                point_name = #{pointName},
+            </if>
+            <if test="updateTime !=null">
+                update_time = #{updateTime},
+            </if>
+            <if test="deptId !=null">
+                dept_id = #{deptId},
+            </if>
+            <if test="provinceTagVideo !=null">
+                province_tag_video = #{provinceTagVideo},
+            </if>
+            <if test="provinceTagCar !=null">
+                province_tag_car = #{provinceTagCar},
+            </if>
+            <if test="provinceTagFace !=null">
+                province_tag_face = #{provinceTagFace},
+            </if>
+            <if test="importantTag !=null">
+                important_tag = #{importantTag},
+            </if>
+            <if test="importantCommandImageTag !=null">
+                important_command_image_tag = #{importantCommandImageTag},
+            </if>
+            <if test="deptTag !=null">
+                dept_tag = #{deptTag},
+            </if>
+            unit_id = #{unitId},
+            start_time = #{startTime},
+            end_time = #{endTime},
+            remark = #{remark},
+        </set>
+        where id =#{id}
+    </update>
 </mapper>

--
Gitblit v1.8.0