<?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="cn.iocoder.yudao.module.system.dal.mysql.log.RobotTaskDetailActionLogMapper">

    <!--
        一般情况下，尽可能使用 Mapper 进行 CRUD 增删改查即可。
        无法满足的场景，例如说多表关联查询，才使用 XML 编写 SQL。
        代码生成器暂时只生成 Mapper XML 文件本身，更多推荐 MybatisX 快速开发插件来生成查询。
        文档可见：https://www.iocoder.cn/MyBatis/x-plugins/
     -->

    <update id="updateActionStatus">
        update
            robot_task_detail_action_log
        set
            action_status = #{actionStatus},
            end_time = #{time}
        where
            task_detail_id = #{taskDetailId}
        and command_id = '-1'
    </update>

    <update id="alreadyCounted">
        update
            robot_task_detail_action_log
        set already_counted = '1'
        where
            id in
        <foreach collection="ids" item="id" index="index" open="(" close=")"
                 separator=",">
            #{id}
        </foreach>
    </update>

    <select id="getMistakeTaskByCommandType"
            resultType="cn.iocoder.yudao.module.system.dal.dataobject.log.RobotTaskDetailActionLogDO">
        select
            *
        from
            robot_task_detail_action_log
        where
            command_id = '-1'
        and deleted = '0'
        and action_status in ('0','1')
        and create_time >= DATE_SUB(NOW(), INTERVAL 1 DAY)
        and command_type in
        <foreach collection="commandTypes" item="commandType" index="index" open="(" close=")"
                 separator=",">
            #{commandType}
        </foreach>
    </select>


    <select id="getUnStatisticsDurationLog"
            resultType="cn.iocoder.yudao.module.system.dal.dataobject.log.RobotTaskDetailActionLogDO">
        select
            *
        from
            robot_task_detail_action_log
        where
            command_id is null
          and deleted = '0'
          and already_counted = '0'
          and create_time >= DATE_SUB(NOW(), INTERVAL 48 HOUR)
    </select>
    <select id="getLastTwoTask"
            resultType="cn.iocoder.yudao.module.system.dal.dataobject.log.RobotTaskDetailActionLogDO">
        select
            *
        from
            robot_task_detail_action_log
        where
            command_id = '-1'
          and deleted = '0'
          and robot_no = #{robotNo}
        order by create_time desc
        limit 2
    </select>
</mapper>