package com.dreamworks.boditech.mapper; import com.dreamworks.boditech.entity.MdbTestTubeRackTestTask; import org.apache.ibatis.annotations.*; import java.util.List; @Mapper public interface TestTubeRackTestTaskMapper { @Insert("INSERT INTO btd_test_tube_rack_test_tasks " + "(status, tubeTypeDetectType, tubeType, editable, createdAt, createdBy) " + "VALUES " + "(#{status}, #{tubeTypeDetectType}, #{tubeType}, #{editable}, #{createdAt}, #{createdBy})" ) @Options(useGeneratedKeys=true, keyProperty="id", keyColumn="id") void insert(MdbTestTubeRackTestTask task); @Update("UPDATE btd_test_tube_rack_test_tasks SET " + "tubeTypeDetectType = #{tubeTypeDetectType}, " + "tubeType = #{tubeType}, " + "updatedAt = #{updatedAt}, " + "updatedBy = #{updatedBy} " + "WHERE id = #{id}" ) void update(MdbTestTubeRackTestTask task); @Update("UPDATE btd_test_tube_rack_test_tasks SET " + "editable = #{editable}, " + "status = #{status}, " + "updatedAt = #{updatedAt}, " + "updatedBy = #{updatedBy} " + "WHERE id = #{id}" ) void updateLock(MdbTestTubeRackTestTask task); @Select("SELECT * FROM btd_test_tube_rack_test_tasks WHERE id = #{id}") MdbTestTubeRackTestTask findById(Integer id); @Select("SELECT * FROM btd_test_tube_rack_test_tasks ORDER BY createdAt ASC") List findAll(); @Delete("DELETE FROM btd_test_tube_rack_test_tasks WHERE id = #{id}") void deleteById(Integer id); @Select("SELECT * FROM btd_test_tube_rack_test_tasks WHERE status = 'WAITING' ORDER BY id ASC LIMIT 1") MdbTestTubeRackTestTask findExecutableTask(); @Select("SELECT * FROM btd_test_tube_rack_test_tasks WHERE status = 'EXECUTING' ORDER BY id ASC LIMIT 1") MdbTestTubeRackTestTask findCurrentTask(); @Update("UPDATE btd_test_tube_rack_test_tasks SET status = #{status}, execStartedAt = #{execStartedAt} WHERE id = #{id}") void testStart( MdbTestTubeRackTestTask task ); @Update("UPDATE btd_test_tube_rack_test_tasks SET status = #{status}, execFinishedAt = #{execFinishedAt} WHERE id = #{id}") void testFinish( MdbTestTubeRackTestTask task ); @Update("UPDATE btd_test_tube_rack_test_tasks SET status = #{status}, execFinishedAt = #{execFinishedAt} WHERE id = #{id}") void testCancel( MdbTestTubeRackTestTask task ); @Select("SELECT * FROM btd_test_tube_rack_test_tasks WHERE status IN ('WAITING','CONFIGURING') ORDER BY id ASC") List findAllEditableTasks(); @Update("UPDATE btd_test_tube_rack_test_tasks SET status = 'CANCELED' WHERE status = 'EXECUTING'") void cancelAllTasks(); }