qa-prevention-gwj/src/main/resources/mybatis/datasource/bimap/BiMapMapper.xml

320 lines
12 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?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.zcloud.mapper.datasource.bimap.BiMapMapper">
<select id="getCarRecordslistPage" resultType="com.zcloud.entity.PageData">
SELECT LICENSE_PLATE,
STATE,
COMING_REASON,
CASE
STATE
WHEN 4 THEN
TIME_IN
WHEN 5 THEN
TIME_OUT
END TIME
from bus_foreigncar
where STATE in (4, 5) AND ISDELETE = 0 <if test="pd.AREA != null and pd.AREA != ''">
and CORPINFO_ID in (select CORPINFO_ID from bus_corp_info where AREA = #{pd.AREA} and ISDELETE = 0)
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
and CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
ORDER BY TIME DESC
</select>
<!-- 统计今日临时人员检测
* 提交申请数[COUNTAPPLY],门卫确认进入数[COUNTIN],现场车辆数[COUNTSITE]
* 审核通过数[COUNPASS],门卫确认离开数[COUNTOUT],入场车辆比例[INRATIO]
* 审核未通过数[COUNREFUSE] -->
<select id="statisticsOutsiderCount" parameterType="pd" resultType="pd">
SELECT F.*,
(f.COUNTIN - f.COUNTOUT) COUNTSITE,
IF(ISNULL(f.COUNTIN / f.COUNTAPPLY), 0, ROUND(f.COUNTIN / f.COUNTAPPLY * 100, 2)) INRATIO
FROM (SELECT COUNT(case when f.STATE != '0' then f.OUTSIDERS_ID END) COUNTAPPLY,
COUNT(case when f.TIME_IN IS NOT NULL then f.OUTSIDERS_ID END) COUNTIN,
COUNT(case when f.TIME_OUT IS NOT NULL then f.OUTSIDERS_ID END) COUNTOUT,
COUNT(case when f.STATE IN ('3', '4', '5', '7', '8') then f.OUTSIDERS_ID END) COUNPASS,
COUNT(case when f.STATE = '6' then f.OUTSIDERS_ID END) COUNREFUSE
FROM bus_outsiders f
WHERE f.ISDELETE = 0
AND f.CREATTIME >= CONCAT_WS(" ", DATE_FORMAT(CURDATE(), '%Y-%m-%d'), '00:00:00')) f
</select>
<!-- 统计今日临时车辆-->
<!-- 统计今日人员刷卡数据(今日进入[COUNTUSERIN],今日离场[COUNTUSEROUT],现场人数[COUNTUSER],入场刷卡数[COUNTCARDIN],出场刷卡数[COUNTCARDOUT] -->
<select id="statisticsCardUserCount" parameterType="pd" resultType="pd">
SELECT f.*, (COUNTUSERIN - COUNTUSEROUT) COUNTUSER
FROM (SELECT COUNT(DISTINCT (case when f.STATE = 0 then f.USERID END)) COUNTUSERIN,
COUNT(DISTINCT (case when f.STATE = 1 then f.USERID END)) COUNTUSEROUT,
COUNT(case when f.STATE = 0 then f.CARDID END) COUNTCARDIN,
COUNT(case when f.STATE = 1 then f.CARDID END) COUNTCARDOUT
FROM bus_carduser f
WHERE f.`TIME` >= CONCAT_WS(" ", DATE_FORMAT(CURDATE(), '%Y-%m-%d'), '00:00:00')) f
</select>
<!-- 统计今日车辆-->
<select id="getCorpinfoIds" parameterType="string" resultType="string">
SELECT CORPINFO_ID FROM bus_corp_info WHERE ISDELETE = '0' AND AREA IN
<foreach item="item" index="index" collection="array" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="getPeopleRecordslistPage" resultType="com.zcloud.entity.PageData">
select
CARDID,
CARDNUMBER,
USERID,
USERNAME,
USERNUMBER,
USERDEPARTMENTNAME,
CARDTYPE,
EQUIPMENTNAME,
EQUIPMENTID,
TIME,
STATE
from
BUS_CARDUSER f
where 1 = 1
<if test="pd.AREA != null and pd.AREA != ''">
and f.CORPINFO_ID in (select CORPINFO_ID from bus_corp_info where AREA = #{pd.AREA} and ISDELETE = 0)
</if>
<if test="pd.CORPINFO_ID != null and pd.CORPINFO_ID != ''">
and f.CORPINFO_ID = #{pd.CORPINFO_ID}
</if>
<if test="pd.USERNAME != null and pd.USERNAME != ''"><!-- 关键词检索 -->
and f.USERNAME LIKE CONCAT(CONCAT('%', #{pd.USERNAME}),'%')
</if>
<if test="pd.STARTTIME != null and pd.STARTTIME != ''"><!-- 关键词检索 -->
and f.TIME <![CDATA[ >= ]]> CONCAT_WS(' ',#{pd.STARTTIME}, '00:00')
</if>
<if test="pd.ENDTIME != null and pd.ENDTIME != ''"><!-- 关键词检索 -->
and f.TIME <![CDATA[ <= ]]> CONCAT_WS(' ',#{pd.ENDTIME}, '23:59')
</if>
<if test="pd.STATE != null and pd.STATE != ''"><!-- 关键词检索 -->
and f.STATE = #{pd.STATE}
</if>
ORDER BY f.`TIME` DESC
</select>
<select id="getRiskIdentificationCount" resultType="com.zcloud.entity.PageData">
SELECT *
FROM (
(SELECT COUNT(r.RISKUNIT_ID) '0'
FROM bus_riskunit r
WHERE r.ISDELETE = '0'
AND r.CORPINFO_ID = #{CORPINFO_ID}) t1,
(
SELECT
COUNT( i.IDENTIFICATIONPARTS_ID ) '1'
FROM
bus_identificationparts i
WHERE
i.ISDELETE = '0'
AND i.CORPINFO_ID = #{CORPINFO_ID}
) t2,
( SELECT COUNT( 1 ) '2' FROM bus_riskpoint r WHERE r.ISDELETE = '0' AND r.CORPINFO_ID = #{CORPINFO_ID} )
t3
)
</select>
<!-- 列表 -->
<select id="listbymeteorological" parameterType="pd" resultType="pd">
SELECT
m.CORPINFO_ID,
f.TEMPERATURE,
f.HUMIDITY,
f.WINDDIRECTION,
f.WINDSPEED,
f.ISDELETE,
f.OPERATTIME,
f.METEOROLOGICAL_ID,
f.METEOROLOGICALINFO_ID,
f.OPERATOR,
f.CODE,
sd.NAME as NAME,
m.EQUIPMENTNAME
FROM
`qa-czks-regulatory`.BUS_METEOROLOGICALINFO f
LEFT JOIN `qa-czks-regulatory`.bus_meteorological m ON m.CODE = f.CODE
LEFT JOIN sys_dictionaries sd on sd.DICTIONARIES_ID = m.EQUIPMENTTYPE
WHERE 1=1
<if test="CORPINFO_ID != null and CORPINFO_ID != ''"><!-- 关键词检索 -->
and m.CORPINFO_ID = #{CORPINFO_ID}
</if>
<if test="TYPE != null and TYPE != ''"><!-- 关键词检索 -->
and m.EQUIPMENTTYPE = #{TYPE}
</if>
<if test="id != null and id != ''"><!-- 关键词检索 -->
and m.METEOROLOGICAL_ID = #{id}
</if>
ORDER BY
f.OPERATTIME DESC
LIMIT 1
</select>
<select id="getPersonPositioningCount" resultType="com.zcloud.entity.PageData">
SELECT *
FROM (
(SELECT COUNT(u.USER_ID) '0'
FROM sys_user u
WHERE u.ISDELETE = '0'
AND u.CORPINFO_ID = #{CORPINFO_ID}) t1,
(
SELECT
COUNT( o.DEPARTMENT_ID ) '1'
FROM
oa_department o
WHERE
o.CORPINFO_ID = #{CORPINFO_ID}
) t2,
( SELECT 0 '2' )
t3
)
</select>
<select id="getRiskIndex" resultType="com.zcloud.entity.PageData">
SELECT
IFNULL( COUNT( 1 ), 0 ) COUNT,
'levelA' TYPE,
'重大风险区域数' label
FROM
bus_riskpoint p
LEFT JOIN bus_corp_info ci ON p.CORPINFO_ID = ci.CORPINFO_ID
LEFT JOIN sys_dictionaries d ON p.LEVELID = d.BIANMA
WHERE
p.ISDELETE = 0
AND p.LEVELID = 'levelA'
AND ci.AREA IS NOT NULL
AND ci.AREA != ''
<if test="AREA != null and AREA != ''">
AND ci.AREA = #{AREA}
</if>
UNION ALL
SELECT
IFNULL( COUNT( 1 ), 0 ) COUNT,
'levelB' TYPE,
'较大风险区域数' label
FROM
bus_riskpoint p
LEFT JOIN bus_corp_info ci ON p.CORPINFO_ID = ci.CORPINFO_ID
LEFT JOIN sys_dictionaries d ON p.LEVELID = d.BIANMA
WHERE
p.ISDELETE = 0
AND p.LEVELID = 'levelB'
AND ci.AREA IS NOT NULL
AND ci.AREA != ''
<if test="AREA != null and AREA != ''">
AND ci.AREA = #{AREA}
</if>
UNION ALL
SELECT
IFNULL( COUNT( 1 ), 0 ) COUNT,
'levelC' TYPE,
'一般风险区域数' label
FROM
bus_riskpoint p
LEFT JOIN bus_corp_info ci ON p.CORPINFO_ID = ci.CORPINFO_ID
LEFT JOIN sys_dictionaries d ON p.LEVELID = d.BIANMA
WHERE
p.ISDELETE = 0
AND p.LEVELID = 'levelC'
AND ci.AREA IS NOT NULL
AND ci.AREA != ''
<if test="AREA != null and AREA != ''">
AND ci.AREA = #{AREA}
</if>
UNION ALL
SELECT
IFNULL( COUNT( 1 ), 0 ) COUNT,
'levelD' TYPE,
'低风险性区域数' label
FROM
bus_riskpoint p
LEFT JOIN bus_corp_info ci ON p.CORPINFO_ID = ci.CORPINFO_ID
LEFT JOIN sys_dictionaries d ON p.LEVELID = d.BIANMA
WHERE
p.ISDELETE = 0
AND p.LEVELID = 'levelD'
AND ci.AREA IS NOT NULL
AND ci.AREA != ''
<if test="AREA != null and AREA != ''">
AND ci.AREA = #{AREA}
</if>
</select>
<select id="inAndoutPeoCarToday" resultType="com.zcloud.entity.PageData">
SELECT
IFNULL( COUNT( 1 ), 0 ) count,
'今日出港人员数' label,
'PERSON_OUT' TYPE
FROM
bus_carduser c
WHERE
c.TIME BETWEEN CONCAT( DATE_FORMAT( now(), '%Y-%m-%d' ), ' 00:00:00' )
AND CONCAT( DATE_FORMAT( now(), '%Y-%m-%d' ), ' 23:59:59' )
<if test="AREA != null and AREA != ''">
and CORPINFO_ID in (select CORPINFO_ID from bus_corp_info where AREA = #{AREA} and ISDELETE = 0)
</if>
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and CORPINFO_ID = #{CORPINFO_ID}
</if>
AND c.STATE = 1 UNION ALL
SELECT
IFNULL( COUNT( 1 ), 0 ) count,
'今日进港人员数' label,
'PERSON_IN' TYPE
FROM
bus_carduser c
WHERE
c.TIME BETWEEN CONCAT( DATE_FORMAT( now(), '%Y-%m-%d' ), ' 00:00:00' )
AND CONCAT( DATE_FORMAT( now(), '%Y-%m-%d' ), ' 23:59:59' )
<if test="AREA != null and AREA != ''">
and CORPINFO_ID in (select CORPINFO_ID from bus_corp_info where AREA = #{AREA} and ISDELETE = 0)
</if>
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and CORPINFO_ID = #{CORPINFO_ID}
</if>
AND c.STATE = 0 UNION ALL
SELECT
IFNULL( COUNT( 1 ), 0 ) count,
'今日进港车辆数' label,
'CAR_IN' TYPE
FROM
bus_foreigncar c
WHERE
c.TIME_IN BETWEEN CONCAT( DATE_FORMAT( now(), '%Y-%m-%d' ), ' 00:00:00' )
AND CONCAT( DATE_FORMAT( now(), '%Y-%m-%d' ), ' 23:59:59' )
<if test="AREA != null and AREA != ''">
and CORPINFO_ID in (select CORPINFO_ID from bus_corp_info where AREA = #{AREA} and ISDELETE = 0)
</if>
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and CORPINFO_ID = #{CORPINFO_ID}
</if>
UNION ALL
SELECT
IFNULL( COUNT( 1 ), 0 ) count,
'今日出港车辆数' label,
'CAR_OUT' TYPE
FROM
bus_foreigncar c
WHERE
c.TIME_OUT BETWEEN CONCAT( DATE_FORMAT( now(), '%Y-%m-%d' ), ' 00:00:00' )
AND CONCAT(
DATE_FORMAT( now(), '%Y-%m-%d' ),
' 23:59:59'
)
<if test="AREA != null and AREA != ''">
and CORPINFO_ID in (select CORPINFO_ID from bus_corp_info where AREA = #{AREA} and ISDELETE = 0)
</if>
<if test="CORPINFO_ID != null and CORPINFO_ID != ''">
and CORPINFO_ID = #{CORPINFO_ID}
</if>
</select>
</mapper>