TpPEqpReportStatisticSMapper.xml
5.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<?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.zteits.park.mapper.smapper.TpPEqpReportStatisticSMapper">
<resultMap id="BaseResultMap" type="com.zteits.park.domain.TpPEqpReportStatistic">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="statistic_begin_time" jdbcType="TIMESTAMP" property="statisticBeginTime" />
<result column="statistic_end_time" jdbcType="TIMESTAMP" property="statisticEndTime" />
<result column="statistic_type" jdbcType="INTEGER" property="statisticType" />
<result column="pl_no" jdbcType="VARCHAR" property="plNo" />
<result column="eqp_type" jdbcType="INTEGER" property="eqpType" />
<result column="eqp_no" jdbcType="VARCHAR" property="eqpNo" />
<result column="berth_no" jdbcType="VARCHAR" property="berthNo" />
<result column="fault_num" jdbcType="INTEGER" property="faultNum" />
<result column="inpark_num" jdbcType="INTEGER" property="inparkNum" />
<result column="outpark_num" jdbcType="INTEGER" property="outparkNum" />
<result column="data_state" jdbcType="INTEGER" property="dataState" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="create_op" jdbcType="BIGINT" property="createOp" />
<result column="modify_time" jdbcType="TIMESTAMP" property="modifyTime" />
<result column="modify_op" jdbcType="BIGINT" property="modifyOp" />
<result column="eqp_is_online" jdbcType="CHAR" property="eqpIsOnline" />
</resultMap>
<sql id="Base_Column_List">
id, statistic_begin_time, statistic_end_time, statistic_type, pl_no, eqp_type, eqp_no,
berth_no, fault_num, inpark_num, outpark_num, data_state, create_time, create_op,
modify_time, modify_op,eqp_is_online
</sql>
<select id="statisticReportNum" resultMap="BaseResultMap">
SELECT
eqp.pl_no,
eqp.eqp_type,
eqp.eqp_no,
eqp.berth_no,
eqp.eqp_is_online,
ifnull(t.outpark_num,0) as outpark_num,
ifnull(t.inpark_num,0) as inpark_num,
ifnull(t.fault_num,0) as fault_num
FROM
tp_p_eqp eqp
LEFT JOIN (
SELECT
eqp_no,
sum( CASE log.event_type WHEN 10 THEN 1 ELSE 0 END ) outpark_num,
sum( CASE WHEN ( log.event_type IN ( 11, 21 ) ) THEN 1 ELSE 0 END ) inpark_num,
sum( CASE log.event_type WHEN 99 THEN 1 ELSE 0 END ) fault_num
FROM
${tableName} log
WHERE
data_state = 1
AND date( create_time ) = #{date}
GROUP BY
eqp_no
) t ON eqp.eqp_no = t.eqp_no
WHERE
eqp.data_state = 1;
</select>
<insert id="batchInsert" parameterType="java.util.List">
insert into tp_p_eqp_report_statistic (statistic_begin_time, statistic_end_time,
statistic_type, pl_no, eqp_type,
eqp_no, berth_no, fault_num,eqp_is_online,
inpark_num, outpark_num, data_state,
create_time, modify_time)
values
<foreach collection="dataList" separator="," item="item" index="index">
(
#{item.statisticBeginTime,jdbcType=TIMESTAMP},
#{item.statisticEndTime,jdbcType=TIMESTAMP},
#{item.statisticType,jdbcType=INTEGER},
#{item.plNo,jdbcType=VARCHAR}, #{item.eqpType,jdbcType=INTEGER},
#{item.eqpNo,jdbcType=VARCHAR}, #{item.berthNo,jdbcType=VARCHAR},
#{item.faultNum,jdbcType=INTEGER}, #{item.eqpIsOnline,jdbcType=VARCHAR},
#{item.inparkNum,jdbcType=INTEGER}, #{item.outparkNum,jdbcType=INTEGER},
1,
#{item.createTime,jdbcType=TIMESTAMP},
#{item.modifyTime,jdbcType=TIMESTAMP}
)
</foreach>
</insert>
<select id="statisticsGeoNumsByStatus" resultType="com.zteits.clouds.api.dto.park.dto.GeoStatusNumDTO"
parameterType="com.zteits.clouds.api.dto.clouds.param.GeoStatusQueryRequest">
SELECT
ifnull(max(tmp.allNum), 0) allNum,
ifnull(max(tmp.faultNum), 0) faultNum
FROM (
SELECT
date_format(t.statistic_end_time, '%y-%M-%d') staticticTime,
count(*) allNum,
-- 所有地磁数量
sum(CASE WHEN t.eqp_is_online in(1, 2)
THEN 1
ELSE 0 END) faultNum -- 异常地磁数量
FROM tp_p_eqp e,tp_p_eqp_report_statistic t
WHERE e.eqp_no = t.eqp_no
AND e.pl_no = t.pl_no
AND e.used_type='20' -- 10-调试中;20-商用中
AND t.statistic_type = 1
AND t.data_state =1
<if test="plNos != null and plNos.size>0">
and t.pl_no IN
<foreach collection="plNos" open="(" close=")" separator="," item="plNo">
#{plNo}
</foreach>
</if>
AND t.statistic_end_time >= #{beginTime} and t.statistic_end_time <= #{endTime}
GROUP BY staticticTime) tmp
</select>
<!-- 地磁在线率统计 -->
<select id="statisticEqpOnlineRateByPlNo" resultType="com.zteits.park.domain.EqpOnlineRateStatisticDay">
select
tt.plNo plNo,
count(tt.eqpNum) eqpNum,
Round(sum(tt.onlineNum)/sum(tt.eqpNum),4) eqpOnlineRate
from (select
t.pl_no as plNo,
t.eqp_no eqp_no,
ifnull(count(t.eqp_no),0) eqpNum,
count(CASE WHEN t.eqp_is_online = 0 THEN t.pl_no END) onlineNum
FROM tp_p_eqp e,tp_p_eqp_report_statistic t
WHERE e.eqp_no = t.eqp_no
and e.used_type = 20
AND t.statistic_type = 1
AND t.data_state = 1
and t.pl_no = #{plNo}
AND DATE_FORMAT(t.statistic_end_time,'%Y-%m-%d') >= DATE_FORMAT(#{startDate},'%Y-%m-%d')
and DATE_FORMAT(t.statistic_end_time,'%Y-%m-%d') >= DATE_FORMAT(#{endDate},'%Y-%m-%d')
GROUP BY t.pl_no,t.eqp_no) tt
GROUP BY tt.plNo
</select>
</mapper>