package com.mes.mapper; import com.baomidou.mybatisplus.annotation.InterceptorIgnore; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.mes.entity.DownGlassInfo; import com.mes.entity.DownWorkstation; import org.apache.ibatis.annotations.*; import org.springframework.stereotype.Component; import org.springframework.stereotype.Repository; import java.util.List; import java.util.Map; @Mapper @Component @Repository @InterceptorIgnore(tenantLine = "true") public interface DownWorkstationMapper extends BaseMapper { //根据工位ID和设备ID更新工位状态 @Update("UPDATE down_workstation SET work_state = #{workState} " + "WHERE workstation_id = #{workstationId} AND device_id = #{deviceId}") void updateWorkStateByWorkstationIdAndDeviceId(@Param("workstationId") Integer workstationId, @Param("deviceId") Integer deviceId, @Param("workState") Integer workState); //工位ID删除信息 @Delete("DELETE FROM down_workstation WHERE workstation_id = #{workstationId}") void deleteByWorkstationId(@Param("workstationId") Integer workstationId); //落架 @Insert("INSERT INTO down_workstation (workstation_id, flow_card_id, device_id, enable_state, work_state) " + "VALUES (#{workstationId}, #{flowCardId}, #{deviceId}, #{enableState}, #{workState})") void insertDownWorkstation(DownWorkstation downWorkstation); //根据设备ID查询工位信息 @Select("SELECT * FROM down_workstation WHERE device_id = #{deviceId}") List selectByDeviceId(@Param("deviceId") Integer deviceId); //从机械手任务表查询状态为1的流程卡号 // @Select("SELECT * FROM down_workstation_task WHERE state = 1") // List selectdownWorkstationstate(); //查询工位表和任务表中状态为1的流程卡号和已落架数量 @Select("SELECT dwt.flow_card_id,dw.id,dw.racks_number FROM down_workstation_task dwt JOIN down_workstation dw ON dwt.flow_card_id = dw.flow_card_id WHERE dwt.state = 1 LIMIT 1") List selectdownWorkstationstate(); //更新落架数量 @Update("UPDATE down_workstation SET racks_number = #{racksNumber} " + "WHERE flow_card_id = #{flowCardId}") void update_racks_number(@Param("flowCardId") String flowCardId, @Param("racksNumber") Integer racksNumber); //插入机械任务表 @Insert("INSERT INTO down_workstation_task (flow_card_id, width, height, thickness, filmsid,state) " + "VALUES (#{flowCardId}, #{width}, #{height}, #{thickness}, #{filmsid},1)") void insertdownWorkstationtask(DownGlassInfo downGlassInfo); //根据工位id更新实体类接收的数据 @Update("UPDATE down_workstation SET width = #{width}, height = #{height}, flow_card_id = #{flowCardId} WHERE workstation_id = #{workstationId}") void updateFlowCardId(DownWorkstation downWorkstation); //满架拉走,清空信息 @Update("UPDATE down_workstation SET width = null, height = null, flow_card_id = null WHERE workstation_id = #{workstationId}") void clearFlowCardId(DownWorkstation downWorkstation); @Update("UPDATE down_workstation_task SET state = 0 WHERE flow_card_id = #{flowCardId}") void update_task_state_to_zero(@Param("flowCardId") String flowCardId); @Select(" SELECT * FROM down_workstation WHERE workstation_id >= 1 AND workstation_id <= 5") List getoneDownWorkstations(); @Select(" SELECT * FROM down_workstation WHERE workstation_id >= 6 AND workstation_id <= 10") List gettwoDownWorkstations(); @Select("SELECT DISTINCT flowcard_id from glass_info") @ResultType(Map.class) List> getflowCardId(); @Update("UPDATE down_workstation SET flow_card_id = NULL, total_quantity = 0, racks_number = 0 WHERE workstation_id = #{workstationId}") void clearFlowCardInfoByWorkstationId(@Param("workstationId") int workstationId); // 获取总数量 @Select("SELECT total_quantity FROM down_workstation WHERE workstation_id = #{workstationId}") int getTotalQuantity(@Param("workstationId") int workstationId); // 获取落架数量 @Select("SELECT racks_number FROM down_workstation WHERE workstation_id = #{workstationId}") int getRacksNumber(@Param("workstationId") int workstationId); }