From f8889f7364adae89e45a5ec3fcf4b38e430cf389 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 10 九月 2024 10:41:18 +0800
Subject: [PATCH] 工单详情

---
 ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml |  311 ++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 304 insertions(+), 7 deletions(-)

diff --git a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
index c77e645..34b5f19 100644
--- a/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
+++ b/ycl-server/src/main/resources/mapper/zgyw/YwPointMapper.xml
@@ -4,13 +4,310 @@
 
     <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
     <resultMap id="BaseResultMap" type="com.ycl.platform.domain.vo.YwPointVO">
-        <result column="id" property="id" />
-        <result column="point_name" property="pointName" />
-        <result column="start_time" property="startTime" />
-        <result column="end_time" property="endTime" />
-        <result column="unit_id" property="unitId" />
-        <result column="status" property="status" />
-        <result column="remark" property="remark" />
+        <result column="id" property="id"/>
+        <result column="point_name" property="pointName"/>
+        <result column="start_time" property="startTime"/>
+        <result column="end_time" property="endTime"/>
+        <result column="unit_id" property="unitId"/>
+        <result column="unit_name" property="unitName"/>
+        <result column="status" property="status"/>
+        <result column="dept_id" property="deptId"/>
+        <result column="dept_name" property="deptName"/>
+        <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="important_tag" property="importantTag"/>
+        <result column="important_command_image_tag" property="importantCommandImageTag"/>
+        <result column="dept_tag" property="deptTag"/>
     </resultMap>
 
+    <select id="selectData" resultType="com.ycl.platform.base.BaseSelect">
+
+    </select>
+
+    <select id="page" resultMap="BaseResultMap">
+        SELECT
+        typ.id,
+        typ.point_name,
+        typ.start_time,
+        typ.end_time,
+        typ.unit_id,
+        tyu.unit_name,
+        typ.status,
+        typ.dept_id,
+        sd.dept_name,
+        typ.remark,
+        typ.create_time,
+        typ.update_time,
+        typ.important_tag,
+        typ.province_tag,
+        typ.important_command_image_tag,
+        typ.dept_tag
+        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>
+            <if test="query.pointName != null and query.pointName != ''">
+                AND typ.point_name like concat('%', #{query.pointName}, '%')
+            </if>
+        </where>
+    </select>
+
+    <select id="dataCenterPage">
+        SELECT
+               m.*
+        FROM
+             t_yw_point p INNER JOIN t_monitor m ON p.serial_number = m.serial_number
+        <where>
+            AND p.create_time between #{query.startTime} and #{query.endTime}
+            <if test="query.keyword != null and query.keyword != ''">
+                AND (m.name like concat('%', #{query.keyword}, '%') OR m.serial_number like concat('%', #{query.keyword}, '%'))
+            </if>
+            <if test="query.dataType == 1">
+                AND p.province_tag = 1
+            </if>
+            <choose>
+                <when test="query.deptTag == 1">
+                    AND p.dept_tag = 1
+                </when>
+                <when test="query.deptTag == 2">
+                    AND p.province_tag = 1
+                </when>
+                <when test="query.deptTag == 3">
+                    AND p.important_tag = 1
+                </when>
+                <when test="query.deptTag == 4">
+                    AND p.important_command_image_tag = 1
+                </when>
+                <when test="query.deptTag == 5">
+                    AND p.new_device = 1
+                </when>
+            </choose>
+            <choose>
+                <when test="query.deviceType == 1">
+                    AND m.camera_fun_type like '%1%'
+                </when>
+                <when test="query.deviceType == 2">
+                    AND m.camera_fun_type like '%2%'
+                </when>
+                <when test="query.deviceType == 3">
+                    AND m.camera_fun_type like '%3%'
+                </when>
+            </choose>
+        </where>
+    </select>
+
+    <select id="distinctCount" resultType="integer">
+        SELECT
+            count(DISTINCT m.serial_number)
+        FROM
+            t_yw_point p INNER JOIN t_monitor m ON p.serial_number = m.serial_number
+        <where>
+            <if test="query.dataType == 1">
+                AND p.province_tag = 1
+            </if>
+            <choose>
+                <when test="query.deptTag == 1">
+                    AND dept_tag = 1
+                </when>
+                <when test="query.deptTag == 2">
+                    AND province_tag = 1
+                </when>
+                <when test="query.deptTag == 3">
+                    AND important_tag = 1
+                </when>
+                <when test="query.deptTag == 4">
+                    AND important_command_image_tag = 1
+                </when>
+                <when test="query.deptTag == 5">
+                    AND new_device = 1
+                </when>
+            </choose>
+            <choose>
+                <when test="query.deviceType == 1">
+                    AND m.camera_fun_type like '%1%'
+                </when>
+                <when test="query.deviceType == 2">
+                    AND m.camera_fun_type like '%2%'
+                </when>
+                <when test="query.deviceType == 3">
+                    AND m.camera_fun_type like '%3%'
+                </when>
+            </choose>
+        </where>
+    </select>
+
+    <select id="home" resultType="com.ycl.platform.domain.entity.YwPoint">
+        <![CDATA[
+        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
+          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
+        ]]>
+    </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
+        m.name as pointName,
+        m.serial_number,
+        m.ip as pointIp,
+        yu.unit_name,
+        yp.start_time,
+        yp.end_time,
+        CASE WHEN yp.province_tag = 0 THEN '鍚�' ELSE '鏄�' END AS provinceTagString,
+        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
+        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
+        <where>
+            <if test="query.pointName != null and query.pointName != ''">
+                AND m.name like concat('%', #{query.pointName} ,'%')
+            </if>
+        </where>
+        ORDER BY yu.unit_name
+    </select>
+
+    <delete id="deleteAll">
+        delete from t_yw_point
+    </delete>
+
+    <update id="updatePoint">
+        <foreach collection="pointList" separator=";" item="point">
+            UPDATE t_yw_point
+            SET
+            <if test="point.pointName != null and point.pointName != ''">
+                point_name = #{point.pointName},
+            </if>
+            <if test="point.unitId != null">
+                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},
+            important_command_image_tag = #{point.importantCommandImageTag},
+            dept_tag = #{point.deptTag}
+            WHERE serial_number = #{point.serialNumber}
+        </foreach>
+    </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
+                 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}
+    </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>
+
+    <select id="getDeptPointGB" resultType="string">
+        SELECT
+            DISTINCT serial_number
+        FROM
+             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
+    </select>
+
+    <select id="select" resultType="com.ycl.platform.domain.entity.YwPoint">
+        SELECT
+               *
+        FROM
+             t_yw_point
+        <where>
+            <if test="keyword != null and keyword != ''">
+                AND (serial_number like concat('%', #{keyword}, '%') or point_name like concat('%', #{keyword}, '%'))
+            </if>
+            <if test="unitId != null">
+                AND unit_id = #{unitId}
+            </if>
+            AND deleted = 0
+        </where>
+
+    </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
+                 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
+    </select>
+
+    <select id="getTagsByGB" resultType="com.ycl.platform.domain.vo.CheckTagVO">
+        SELECT
+               serial_number as no, province_tag, 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, important_tag, important_command_image_tag, dept_tag
+    </select>
+
+
 </mapper>

--
Gitblit v1.8.0