From 8e944cfabb253fc2556588e308e282586043f7b0 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期二, 18 十一月 2025 22:09:56 +0800
Subject: [PATCH] 即时消息时间出现负数的问题修改
---
smart-man-boot/src/main/resources/com/qianwen/smartman/modules/mdc/mapper/SuperAggregateStateMapper.xml | 455 +++++++++++++++++++++++++-------------------------------
1 files changed, 207 insertions(+), 248 deletions(-)
diff --git a/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/mdc/mapper/SuperAggregateStateMapper.xml b/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/mdc/mapper/SuperAggregateStateMapper.xml
index af876a4..60144c5 100644
--- a/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/mdc/mapper/SuperAggregateStateMapper.xml
+++ b/smart-man-boot/src/main/resources/com/qianwen/smartman/modules/mdc/mapper/SuperAggregateStateMapper.xml
@@ -6,24 +6,7 @@
insert into iot_data.aggregate_state_${workstationId}
values ${sql}
</insert>
-
- <insert id="saveState">
- insert into iot_data.aggregate_state_${workstationId} USING iot_data.super_aggregate_state
- TAGS(${workstationId}) values
- <foreach separator="," collection="list" item="item" index="index">
- (#{item.startTime}, #{item.endTime}, #{item.durationCollect}, #{item.valueCollect}, #{item.calendarCode},
- #{item.factoryYear}, #{item.factoryMonth}, #{item.factoryWeek}, #{item.factoryDate},
- #{item.shiftIndex}, #{item.shiftTimeType}, #{item.wcs}, #{item.rps}, #{item.isDeleted},#{item.isPlan})
- </foreach>
- </insert>
-
- <update id="createTable">
- create table if not exists iot_data.aggregate_state_${workstationId} using super_aggregate_state tags
- (
- #{workstationId}
- )
- </update>
-
+
<select id="countStatsShiftEndTimeNotNull" resultType="com.qianwen.smartman.modules.mdc.dto.CountResult">
select sum(duration_collect) as nums, value_collect status
from iot_data.super_aggregate_state
@@ -112,129 +95,13 @@
</select>
- <select id="dateState"
- resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select ts as startTime,
- end_time as endTime,
- duration_collect,
- value_collect,
- calendar_code as calendarCode,
- factory_year as factoryYear,
- factory_month as factoryMonth,
- factory_week as factoryWeek,
- factory_date as factoryDate,
- shift_index as shiftIndex,
- shift_time_type as shiftTimeType,
- wcs,
- rps,
- is_deleted as isDeleted,
- workstation_id as workstationId,
- is_plan as isPlan
- from iot_data.super_aggregate_state
- where is_deleted = 0
- and wcs > 0
- and factory_date = #{factoryDate}
- <if test="ids != null and ids.size() > 0">
- AND workstation_id IN
- <foreach collection="ids" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </select>
+
- <select id="weekState"
- resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select ts as startTime,
- end_time as endTime,
- duration_collect,
- value_collect,
- calendar_code as calendarCode,
- factory_year as factoryYear,
- factory_month as factoryMonth,
- factory_week as factoryWeek,
- factory_date as factoryDate,
- shift_index as shiftIndex,
- shift_time_type as shiftTimeType,
- wcs,
- rps,
- is_deleted as isDeleted,
- workstation_id as workstationId,
- is_plan as isPlan
- from iot_data.super_aggregate_state
- where factory_year = #{year}
- and factory_week = #{week}
- and is_deleted = 0
- and wcs > 0
- <if test="ids != null and ids.size() > 0">
- AND workstation_id IN
- <foreach collection="ids" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </select>
+
- <select id="yearState"
- resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select ts as startTime,
- end_time as endTime,
- duration_collect,
- value_collect,
- calendar_code as calendarCode,
- factory_year as factoryYear,
- factory_month as factoryMonth,
- factory_week as factoryWeek,
- factory_date as factoryDate,
- shift_index as shiftIndex,
- shift_time_type as shiftTimeType,
- wcs,
- rps,
- is_deleted as isDeleted,
- workstation_id as workstationId,
- is_plan as isPlan
- from iot_data.super_aggregate_state
- where factory_year = #{year}
- and factory_month = #{month}
- and is_deleted = 0
- and wcs > 0
- <if test="ids != null and ids.size() > 0">
- AND workstation_id IN
- <foreach collection="ids" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </select>
+
- <select id="shiftState"
- resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select ts as startTime,
- end_time as endTime,
- duration_collect,
- value_collect,
- calendar_code as calendarCode,
- factory_year as factoryYear,
- factory_month as factoryMonth,
- factory_week as factoryWeek,
- factory_date as factoryDate,
- shift_index as shiftIndex,
- shift_time_type as shiftTimeType,
- wcs,
- rps,
- is_deleted as isDeleted,
- workstation_id as workstationId,
- is_plan as isPlan
- from iot_data.super_aggregate_state
- where factory_date = #{factoryDate}
- and wcs > 0
- and shift_index = #{shiftIndex}
- and calendar_code = #{calendarCode}
- and is_deleted = 0
- <if test="ids != null and ids.size() > 0">
- AND workstation_id IN
- <foreach collection="ids" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </select>
+
<select id="deviceStatusStatisticsList"
resultType="com.qianwen.smartman.modules.mdc.vo.DeviceStatusStatisticsVO">
@@ -394,20 +261,7 @@
</if>
</select>
- <select id="getStatusData" resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select
- <include refid="superAggregateStateColumnSql"/>
- from iot_data.super_aggregate_state
- where is_deleted = 0
- and wcs > 0
- and ts <![CDATA[>=]]> #{startDate} and ts <![CDATA[<]]> #{endDate}
- <if test="workstationIds != null and workstationIds.size() > 0">
- AND workstation_id IN
- <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </select>
+
<sql id="superAggregateStateColumnSql">
ts as startTime,
@@ -428,101 +282,11 @@
is_plan as isPlan
</sql>
- <select id="getStatusDataByTimeSection"
- resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select
- <include refid="superAggregateStateColumnSql"/>
- from iot_data.super_aggregate_state
- where is_deleted = 0
- and wcs > 0
- and ts <![CDATA[<]]> #{startDate} and #{startDate} <![CDATA[<=]]> end_time
- <if test="workstationIds != null and workstationIds.size() > 0">
- AND workstation_id IN
- <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- union all
- select
- <include refid="superAggregateStateColumnSql"/>
- from iot_data.super_aggregate_state
- where is_deleted = 0
- and wcs > 0
- and ts <![CDATA[>=]]> #{startDate} and ts <![CDATA[<=]]> #{endDate}
- <if test="workstationIds != null and workstationIds.size() > 0">
- AND workstation_id IN
- <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </select>
+
- <select id="getStatusDataByFactoryDate"
- resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select ts as startTime,
- end_time as endTime,
- duration_collect,
- value_collect,
- calendar_code as calendarCode,
- factory_year as factoryYear,
- factory_month as factoryMonth,
- factory_week as factoryWeek,
- factory_date as factoryDate,
- shift_index as shiftIndex,
- shift_time_type as shiftTimeType,
- wcs,
- rps,
- workstation_id as workstationId,
- is_plan as isPlan
- from iot_data.super_aggregate_state
- where factory_date <![CDATA[>=]]> #{startDate} and factory_date <![CDATA[<=]]> #{endDate}
- and rps > 0
- and wcs > 0
- and is_deleted = false
- <if test="workstationIds != null and workstationIds.size() > 0">
- AND workstation_id IN
- <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- </select>
+
- <select id="getEquipmentStatusDuration"
- resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
- select
- <include refid="superAggregateStateColumnSql"/>
- from iot_data.super_aggregate_state
- where ts <![CDATA[<]]> #{startDate} and #{startDate} <![CDATA[<=]]> end_time
- and is_deleted = 0
- and rps > 0
- and wcs > 0
- <if test="workstationIds != null and workstationIds.size() > 0">
- AND workstation_id IN
- <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- <if test="status != null and status !=''">
- and wcs =#{status}
- </if>
- union all
- select
- <include refid="superAggregateStateColumnSql"/>
- from iot_data.super_aggregate_state
- where ts <![CDATA[>=]]> #{startDate} and ts <![CDATA[<=]]> #{endDate}
- and is_deleted = 0
- and rps > 0
- and wcs > 0
- <if test="workstationIds != null and workstationIds.size() > 0">
- AND workstation_id IN
- <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- <if test="status != null and status !=''">
- and wcs =#{status}
- </if>
- </select>
+
<select id="getEquipmentStatusRecord" resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
select ts as startTime,
@@ -641,7 +405,7 @@
#{week}
</foreach>
</select>
-
+ <!--
<select id="getDataByMonth" resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
select ts as startTime,
end_time as endTime,
@@ -671,7 +435,40 @@
#{month}
</foreach>
</select>
-
+ -->
+
+ <select id="getDataByMonth" resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select
+ end_time as endTime,
+ duration_collect,
+ value_collect,
+ calendar_code as calendarCode,
+ factory_year as factoryYear,
+ factory_month as factoryMonth,
+ factory_week as factoryWeek,
+ factory_date as factoryDate,
+ shift_index as shiftIndex,
+ shift_time_type as shiftTimeType,
+ wcs,
+ rps,
+ is_deleted as isDeleted,
+ workstation_id as workstationId
+ from root.f2.aggregate_state_*
+ where is_deleted=false
+ and wcs > 0
+ and factory_year = #{year}
+ and workstation_id IN
+ <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ and factory_month IN
+ <foreach collection="monthList" item="month" open="(" separator="," close=")">
+ #{month}
+ </foreach>
+ align by device
+ </select>
+
+ <!-- 杩欎釜鏈夌敤鍚� -->
<select id="listCrossDay" resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
select ts as startTime,
end_time as endTime,
@@ -1124,6 +921,168 @@
and is_deleted = 0
</select>
-
+ <!-- 璋冩暣鐨剆ql寮�濮� -->
+ <sql id="aggregateStateColumnSql">
+ end_time as endTime,
+ duration_collect as durationCollect,
+ value_collect as valueCollect,
+ calendar_code as calendarCode,
+ factory_year as factoryYear,
+ factory_month as factoryMonth,
+ factory_week as factoryWeek,
+ factory_date as factoryDate,
+ shift_index as shiftIndex,
+ shift_time_type as shiftTimeType,
+ wcs,
+ rps,
+ is_deleted as isDeleted,
+ workstation_id as workstationId,
+ is_plan as isPlan
+ </sql>
+
+
+ <!-- 鍘熸潵鏄痷nion2涓猻ql锛岀幇鍦ㄥ悎骞舵湭涓�涓� -->
+ <!--
+ OK: where ((time <![CDATA[<]]> #{startDate} and end_time <![CDATA[>=]]> #{startDate.time}) or (time <![CDATA[>=]]> #{startDate} and time <![CDATA[<=]]> #{endDate.time}))
+ where ((time <![CDATA[<]]> #{startDate} and #{startDate.time} <![CDATA[<=]]> end_time) or (time <![CDATA[>=]]> #{startDate} and time <![CDATA[<=]]> #{endDate.time})) -->
+ <select id="getEquipmentStatusDuration"
+ resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select
+ <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where ((time <![CDATA[<]]> #{startDate} and end_time <![CDATA[>=]]> #{startDate}) or (time <![CDATA[>=]]> #{startDate} and time <![CDATA[<=]]> #{endDate}))
+ and is_deleted=false
+ and rps > 0
+ and wcs > 0
+ <if test="workstationIds != null and workstationIds.size() > 0">
+ AND workstation_id IN
+ <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ <if test="status != null and status !=''">
+ and wcs =#{status}
+ </if>
+ align by device
+ </select>
+
+ <select id="getStatusDataByTimeSection"
+ resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select
+ <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where is_deleted = false
+ and wcs > 0
+ and ((time <![CDATA[<]]> #{startDate} and end_time <![CDATA[>=]]> #{startDate}) or (time <![CDATA[>=]]> #{startDate} and time <![CDATA[<=]]> #{endDate}))
+ <if test="workstationIds != null and workstationIds.size() > 0">
+ AND workstation_id IN
+ <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ align by device
+ </select>
+
+ <select id="getStatusData" resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select
+ <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where is_deleted = false
+ and wcs > 0
+ and time <![CDATA[>=]]> #{startDate} and time <![CDATA[<]]> #{endDate}
+ <if test="workstationIds != null and workstationIds.size() > 0">
+ AND workstation_id IN
+ <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ align by device
+ </select>
+
+ <select id="getStatusDataByFactoryDate"
+ resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where factory_date <![CDATA[>=]]> #{startFactoryDate} and factory_date <![CDATA[<=]]> #{endFactoryDate}
+ and rps > 0
+ and wcs > 0
+ and is_deleted = false
+ <if test="workstationIds != null and workstationIds.size() > 0">
+ AND workstation_id IN
+ <foreach collection="workstationIds" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ align by device
+ </select>
+
+ <!-- 鏌ヨ鎸夌彮娆$殑鐘舵�佹暟鎹紝鍦ㄧ敤鏃跺垎鏋愪腑浣跨敤 and calendar_code = #{calendarCode,jdbcType=VARCHAR} -->
+ <select id="shiftState"
+ resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where factory_date = #{factoryDate}
+ and wcs > 0
+ and shift_index = #{shiftIndex}
+ and calendar_code = "#{calendarCode}"
+ and is_deleted = false
+ <if test="ids != null and ids.size() > 0">
+ AND workstation_id IN
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ align by device
+ </select>
+
+ <select id="weekState"
+ resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where factory_year = #{year}
+ and factory_week = #{week}
+ and is_deleted = false
+ and wcs > 0
+ <if test="ids != null and ids.size() > 0">
+ AND workstation_id IN
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ align by device
+ </select>
+
+ <select id="yearState"
+ resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where factory_year = #{year}
+ and factory_month = #{month}
+ and is_deleted = false
+ and wcs > 0
+ <if test="ids != null and ids.size() > 0">
+ AND workstation_id IN
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ align by device
+ </select>
+
+ <select id="dateState"
+ resultType="com.qianwen.smartman.modules.mdc.entity.SuperAggregateState">
+ select <include refid="aggregateStateColumnSql"/>
+ from root.f2.aggregate_state_*
+ where is_deleted = false
+ and wcs > 0
+ and factory_date = #{factoryDate}
+ <if test="ids != null and ids.size() > 0">
+ AND workstation_id IN
+ <foreach collection="ids" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ align by device
+ </select>
</mapper>
--
Gitblit v1.9.3