package com.baiyue.lastleg.appointmentplanning; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.*; import java.util.List; @Mapper public interface AppointmentImpactMapper extends BaseMapper { @Select("") List byContainers(@Param("ids") List ids); @Select("SELECT COUNT(*) FROM ll_appointment_impact_history WHERE container_booking_id=#{id}") long historyCount(String id); @Select("SELECT * FROM ll_appointment_impact WHERE container_booking_id=#{id} FOR UPDATE") AppointmentImpact lock(String id); @Update(""" UPDATE ll_appointment_impact SET baseline_json=#{baselineJson},latest_json=#{latestJson},forecast_token=#{forecastToken}, status=#{status},reason=#{reason},owner_id=#{ownerId},owner_name=#{ownerName},version=#{version},updated_at=#{updatedAt} WHERE container_booking_id=#{containerBookingId} """) int save(AppointmentImpact row); @Select("SELECT * FROM ll_appointment_impact_history WHERE container_booking_id=#{id} AND operator_id=#{operator} AND command_key=#{key}") AppointmentImpactHistory command(@Param("id") String id,@Param("operator") String operator,@Param("key") String key); @Insert(""" INSERT INTO ll_appointment_impact_history (id,container_booking_id,version,action,operator_id,operator_name,result,next_action,followup_date,command_key,request_hash,response_json,created_at) VALUES(#{id},#{containerBookingId},#{version},#{action},#{operatorId},#{operatorName},#{result},#{nextAction},#{followupDate},#{commandKey},#{requestHash},#{responseJson},#{createdAt}) """) int history(AppointmentImpactHistory row); @Select("SELECT * FROM ll_appointment_impact_history WHERE container_booking_id=#{id} ORDER BY version DESC LIMIT #{size} OFFSET #{offset}") List historyPage(@Param("id") String id,@Param("size") int size,@Param("offset") long offset); }