package com.example.springboot.mapper; import org.apache.ibatis.annotations.*; import com.example.springboot.entity.CarPosition; import com.example.springboot.entity.Glass; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.alarmmg; import java.util.List; @Mapper public interface HomeMapper { //查询每个笼子的使用情况 @Select("select cage,round(100-(21-sum(if(state>0,1,state)))/21*100) as cell,21-sum(if(state>0,1,state)) as state from (select cage,cell,max(state) as state from storage_cage group by cage,cell) as cages group by cage") List selectAll(); // 查询10-6笼内层格子状态 @Select("SELECT cage,state,ifnull(glasswidth/2750*2,0) as glasswidth from storage_cage where cage>5 and tier=2 order by cage desc,cell desc") List selectRack1(); // 查询5-1笼内层格子状态 @Select("SELECT cage,state,ifnull(glasswidth/2750*2,0) as glasswidth from storage_cage where cage<=5 and tier=2 order by cage desc,cell desc") List selectRack2(); // 查询10-6笼外层格子状态 @Select("SELECT case when tier=1 then cage else 0 end as cage,case when tier=1 then state else 0 end as state,sum(case when tier=1 then glasswidth/2750*2 else 0 end) as glasswidth,sum(case when tier=2 then glasswidth/2750*2 else 0 end) as width from storage_cage where cage>5 group by cage,cell order by cage desc,cell desc") List selectRack3(); // 查询5-1笼外层格子状态 @Select("SELECT case when tier=1 then cage else 0 end as cage,case when tier=1 then state else 0 end as state,sum(case when tier=1 then glasswidth/2750*2 else 0 end) as glasswidth,sum(case when tier=2 then glasswidth/2750*2 else 0 end) as width from storage_cage where cage<=5 group by cage,cell order by cage desc,cell desc") List selectRack4(); // 根据任务类型查询当前正在出片,进片的玻璃信息 @Select("select *,concat(glasswidth,' x ',glassheight) as lengthwidth from storage_cage where state=#{task_type} limit 1") List selectinout(@Param("task_type") Integer task_type); // 查询是否存在此订单 @Select("select count(*) from storage_cage where order_id=#{orderid} and state=1") short SelectOrder(@Param("orderid") String orderid); // @Insert("insert into order_out(orderid) values('#{orderid}')") @Insert("INSERT INTO `canadames`.`order_out`( `order_id`,`state`) VALUES ( #{orderid},0)") void InsertOrder(String orderid); // 停止按当前订单出片 @Update("update order_out set state=1 where state=0") void updateOrder(); // 查询是否存在正在上片的任务 @Select("select count(*) from storage_task where task_state=0 and task_type=0") short SelectInTask(); // 手动完成任务 @Update("update storage_task set task_state=1 where task_type=#{task_type} and task_state=0") void UpdateTask(@Param("task_type") Integer task_type); // 手动完成进片任务修改笼子数据 @Update("update storage_cage set state=1 where glass_id=#{glassid} and state=2") void UpdateCageTask1(@Param("glassid") String glassid); // 手动完成出片任务修改笼子数据 @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null where glass_id=#{glassid} and state=3") void UpdateCageTask2(@Param("glassid") String glassid); //获取报警信息 @Select("select id,content,timeon as timeons,endTime from alarmmg where endTime is null") List SelectAlarmmgInfo(); //获取理片笼内玻璃信息 @Select("select *,concat(round(a.glasswidth*b.Conversionrate,2),' x ',round(a.glassheight*b.Conversionrate,2)) as lengthwidth from storage_cage as a,glass as b ") List SelectCageInfo(short cage); @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null where glass_id=#{glassid}") void DeleteByGlassID(String glassid); //查询小车位置 @Select("select * from car_position") List Loadcarlist(); //查询操作密码 @Select("select dianqimima from user where id=1") String SelectPassword(); //根据玻璃id查询理片笼信息 @Select("select * from storage_cage where glass_id=#{glassid}") StorageCage SelectGlassInfo(String glassid); //查询玻璃信息 // @Select("select * from glass where glassid=#{glassid}") @Select("SELECT id,glassid,orderid,\n" + " ROUND(width * Conversionrate, 2) AS width,\n" + " ROUND(height * Conversionrate, 2) AS height\n" + "FROM glass\n" + "where glassid=#{glassid};") Glass SelectGlassByGlassID(String glassid); //启用/禁用理片笼格子 @Update("update storage_cage set disabled=#{disabled} where cage=#{cage} and cell=#{cell}") void Disabled(short cage, short cell, short disabled); //理片笼新增玻璃 @Update("update storage_cage set state=1,glass_id=#{glass.glassId},order_id=#{glass.orderId},glasswidth=#{glass.width},glassheight=#{glass.height} where cage=#{cage} and cell=#{cell} and tier=#{tier}") void Inglassid(Glass glass, short cage, short cell, short tier); //查询理片笼中是否有此玻璃 @Select("select count(*) from storage_cage where glass_id=#{glassId}") short SelectStorageByGlassId(String glassId); //根据订单查询玻璃信息 @Select("select * from glass where position(#{orderid} in orderid)") List SelectGlass(String orderid); //获取上片队列信息 @Select("select gl.* from queue qe inner join glass gl on qe.glassid=gl.glassid where qe.id=#{id}") Glass GetQueueInfo(int id); //手动添加扫码位玻璃 @Select("update queue set glassid=#{glassid},state=1 where id=#{id}") void InsertQueueGlassId(String glassid,Short id); //确认扫码位玻璃信息 @Select("update queue set state=1 where id=1") void UpdateQueueState(); //手动添加扫码位玻璃 @Select("update queue set glassid='' where id=#{id}") void DeleteQueueGlass(String id); }