<?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.qianwen.mdc.collect.mapper.iotdb.DeviceStateMapper">
|
<resultMap id="BaseResultMap" type="com.qianwen.mdc.collect.entity.iotdb.DeviceState">
|
<result column="workstation_id" jdbcType="BIGINT" property="workstationId"/>
|
<result column="value_collect" jdbcType="INTEGER" property="valueCollect"/>
|
<result column="calendar_code" jdbcType="VARCHAR" property="calendarCode"/>
|
<result column="factory_year" jdbcType="INTEGER" property="factoryYear"/>
|
<result column="factory_month" jdbcType="INTEGER" property="factoryMonth"/>
|
<result column="factory_week" jdbcType="INTEGER" property="factoryWeek"/>
|
<result column="factory_date" jdbcType="INTEGER" property="factoryDate"/>
|
<result column="shift_index" jdbcType="INTEGER" property="shiftIndex"/>
|
<result column="shift_time_type" jdbcType="INTEGER" property="shiftTimeType"/>
|
<result column="wcs" jdbcType="INTEGER" property="wcs"/>
|
<result column="rps" jdbcType="INTEGER" property="rps"/>
|
<result column="is_sync" jdbcType="BOOLEAN" property="isSync"/>
|
<result column="feedback_id" jdbcType="BIGINT" property="feedbackId"/>
|
<result column="is_deleted" jdbcType="BOOLEAN" property="isDeleted"/>
|
<result column="is_plan" jdbcType="INTEGER" property="isPlan"/>
|
|
<result column="feedback_point_type" jdbcType="INTEGER" property="feedbackPointType"/><!-- new -->
|
|
<result column="employee_id" jdbcType="BIGINT" property="employeeId"/>
|
</resultMap>
|
<!--
|
|
<select id="getProcessingFeedbackState" resultType="org.springblade.posting.entity.tdengine.WorkstationState"
|
parameterType="java.lang.Long">
|
select * FROM iot_data.super_state WHERE workstation_id = #{workstationId} AND is_deleted != true AND is_sync = false AND feedback_point_type != 0
|
</select>
|
|
<insert id="insert" parameterType="org.springblade.posting.entity.tdengine.WorkstationState">
|
insert into iot_data.state_${workstationId} USING iot_data.super_state TAGS (${workstationId})
|
values (#{ts}, #{valueCollect}, #{calendarCode}, #{factoryYear}, #{factoryMonth}, #{factoryWeek}, #{factoryDate},
|
#{shiftIndex}, #{shiftTimeType}, #{wcs}, #{rps},#{isFixPoint},#{isSync}, #{isPlan},#{feedbackPointType},#{feedbackId},#{isDeleted}, #{employeeId})
|
</insert>
|
|
<insert id="batchInsert" >
|
insert into
|
<foreach separator=" " collection="list" item="item" index="index" >
|
iot_data.state_${item.workstationId} USING iot_data.super_state TAGS (${item.workstationId}) values
|
(#{item.ts}, #{item.valueCollect},#{item.calendarCode}, #{item.factoryYear}, #{item.factoryMonth}, #{item.factoryWeek}, #{item.factoryDate},
|
#{item.shiftIndex}, #{item.shiftTimeType}, #{item.wcs}, #{item.rps},#{item.isFixPoint}, #{item.isSync}, #{item.isPlan},#{item.feedbackPointType},#{item.feedbackId},#{item.isDeleted}, #{item.employeeId})
|
</foreach>
|
</insert>
|
|
<insert id="batchSave">
|
insert into iot_data.state_${workstationId} USING iot_data.super_state TAGS (${workstationId}) values
|
<foreach separator="," collection="list" item="item" index="index" >
|
(#{item.ts}, #{item.valueCollect},#{item.calendarCode}, #{item.factoryYear}, #{item.factoryMonth}, #{item.factoryWeek}, #{item.factoryDate},
|
#{item.shiftIndex}, #{item.shiftTimeType}, #{item.wcs}, #{item.rps}, #{item.isFixPoint},
|
#{item.isSync}, #{item.isPlan},#{item.feedbackPointType},#{item.feedbackId},#{item.isDeleted}, #{item.employeeId})
|
</foreach>
|
</insert>
|
|
|
<select id="getLastIsSyncNoFixPointState"
|
resultType="org.springblade.posting.entity.tdengine.WorkstationState">
|
select LAST_ROW(*), workstation_Id FROM iot_data.super_state WHERE workstation_id = #{workstationId} AND is_deleted != true AND is_sync = true and is_fix_point=false
|
</select>
|
|
|
|
<select id="getFirstWorkstationState" resultType="org.springblade.posting.entity.tdengine.WorkstationState"
|
parameterType="com.baomidou.mybatisplus.core.conditions.Wrapper">
|
select First(*) FROM iot_data.super_state
|
${ew.customSqlSegment}
|
</select>
|
-->
|
<sql id="all_columns">
|
workstation_id,value_collect,calendar_code,factory_year,factory_month,factory_date,factory_week,shift_index,shift_time_type,wcs,rps,is_fix_point,is_sync,is_plan,feedback_point_type,feedback_id,is_deleted,employee_id
|
</sql>
|
<!-- resultType="com.qianwen.mdc.collect.entity.iotdb.DeviceState" -->
|
<select id="lastSyncedNoFeedbackPointState" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where is_sync=true and is_fix_point=false and feedback_point_type=0 and is_deleted=false
|
order by time desc limit 1
|
</select>
|
|
<select id="firstNotSyncedNofeedbackPointState" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where is_sync=false and is_fix_point=false and feedback_point_type=0 and is_deleted=false
|
order by time asc limit 1
|
</select>
|
<!-- -->
|
<select id="statesInTimeRange" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
<where>
|
is_deleted=false
|
<if test="timeRange.startTime != null">
|
AND time >= #{timeRange.startTime}
|
</if>
|
AND time <= #{timeRange.endTime}
|
</where>
|
|
order by time asc
|
align by device
|
</select>
|
|
<select id="fixPointCountByDate" resultType="Long">
|
select count(factory_date) FROM root.f2.state_* where factory_date=#{factoryDate} and is_fix_point=true
|
</select>
|
|
<!-- 获取工位上时间小于指定时间的非反馈点(不含固定点) -->
|
<!-- .eq(WorkstationState::getWorkstationId, feedback.getWorkstationId())
|
.lt(WorkstationState::getTs,cancelDetail.getStartTime().getTime())
|
.eq(WorkstationState::getIsFixPoint, Boolean.FALSE)
|
.eq(WorkstationState::getFeedbackPointType, FeedbackTimePointEnum.NO_FEED_BACK_POINT.getValue())
|
.ne(WorkstationState::getIsDeleted, Boolean.TRUE)); -->
|
<select id="lastNoFeedbackStateLessThanTime" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where
|
is_deleted=false and is_fix_point=false
|
and feedback_point_type=0
|
AND time < #{time}
|
order by time desc limit 1
|
|
</select>
|
|
<select id="lastNoFeedbackStateLeTime" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where
|
is_deleted=false and is_fix_point=false
|
and feedback_point_type=0
|
AND time <= #{time}
|
order by time desc limit 1
|
|
</select>
|
|
<!-- stateMapper.selectOne(Wrappers.<WorkstationState>lambdaQuery().eq(WorkstationState::getWorkstationId
|
, workstationId).ne(WorkstationState::getIsDeleted, Boolean.TRUE).eq(WorkstationState::getTs, time)); -->
|
<select id="getByWorkstationIdAndTime" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where is_deleted=false AND time = #{time}
|
limit 1
|
</select>
|
|
|
<!--
|
Wrappers.<WorkstationState>lambdaQuery()
|
.eq(WorkstationState::getWorkstationId, feedback.getWorkstationId())
|
.le(WorkstationState::getTs, Long.valueOf(feedback.getEndTime().getTime()))
|
.isNotNull(WorkstationState::getShiftIndex)
|
.ne(WorkstationState::getIsDeleted, Boolean.TRUE));
|
-->
|
<select id="getLastByWorkstationIdAndLeTimeAndShiftIndexNotNull" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where is_deleted=false AND time <= #{time} and shift_index is not null
|
order by time desc limit 1
|
</select>
|
|
<!--
|
stateMapper.selectOne(Wrappers.<WorkstationState>lambdaQuery()
|
.eq(WorkstationState::getWorkstationId, feedback.getWorkstationId())
|
.eq(WorkstationState::getIsFixPoint, Boolean.TRUE)
|
.eq(WorkstationState::getTs, Long.valueOf(feedback.getStartTime().getTime())));
|
-->
|
<select id="getFixPointByWorkstationIdAndTime" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where is_fix_point=true AND time = #{time}
|
limit 1
|
</select>
|
|
<!--
|
工位上所有符合时间区间的非反馈点状态数据
|
List<WorkstationState> effectiveStateList = stateMapper.selectList(Wrappers.<WorkstationState>lambdaQuery()
|
.le(WorkstationState::getTs, Long.valueOf(analyseResult.getEffectiveEndDate().getTime()))
|
.ge(WorkstationState::getTs, Long.valueOf(analyseResult.getEffectiveStartDate().getTime()))
|
.eq(WorkstationState::getWorkstationId, analyseResult.getWorkstationId())
|
.ne(WorkstationState::getIsDeleted, Boolean.TRUE)
|
.gt(WorkstationState::getFeedbackPointType, FeedbackTimePointEnum.NO_FEED_BACK_POINT.getValue()));
|
-->
|
<select id="workstationNoFeedbackPointStatesInTimeRange" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where feedback_point_type=0 and is_deleted=false and time >= #{startTime} AND time <= #{endTime}
|
</select>
|
|
<!--
|
时间区间内的固定点数据
|
List<WorkstationState> fixPointStateList = stateMapper.selectList(Wrappers.<WorkstationState>lambdaQuery()
|
.le(WorkstationState::getTs, Long.valueOf(analyseResult.getEffectiveEndDate().getTime()))
|
.ge(WorkstationState::getTs, Long.valueOf(analyseResult.getEffectiveStartDate().getTime()))
|
.eq(WorkstationState::getWorkstationId, analyseResult.getWorkstationId())
|
.eq(WorkstationState::getIsFixPoint, Boolean.TRUE));
|
-->
|
<select id="workstationFixPointStatesInTimeRange" resultMap="BaseResultMap">
|
select <include refid="all_columns" /> FROM root.f2.state_${workstationId}
|
where is_fix_point=true and is_deleted=false and time >= #{startTime} AND time <= #{endTime}
|
</select>
|
|
|
</mapper>
|