package com.example.springboot.mapper; import org.apache.ibatis.annotations.*; import com.example.springboot.entity.CarPosition; import com.example.springboot.entity.FlowCard; import com.example.springboot.entity.GlassInfo; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.StorageTask; import com.example.springboot.entity.alarmmg; import com.example.springboot.entity.north_glass_buffer1; import com.example.springboot.entity.Out_slice; import com.example.springboot.entity.Queue; import com.example.springboot.entity.RolePermission; 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 * from storage_cage where state=#{task_type}") 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 glass_id=#{glassid}") void UpdateTask(@Param("task_type") Integer task_type,String glassid); // 手动完成进片任务修改笼子数据 @Update("update storage_cage set state=1 where glass_id=#{glassid} and state=2") void UpdateCageTask1(@Param("glassid") String glassid); //获取报警信息 @Select("select id,content,timeon as timeons,endTime from alarmmg where endTime is null") List SelectAlarmmgInfo(); //获取理片笼内玻璃信息 @Select("select * from storage_cage where position(#{cage} in ifnull(glass_id,\"\"))") List SelectCageInfo(String cage); // 手动完成出片任务修改笼子数据 @Update("update storage_cage set state=0,glass_id=null,order_id=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,listid=null,boxid=null,FrameBarcode=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); //根据玻璃id查询理片笼信息 @Select("select * from storage_cage where glass_id=#{glassid}") List SelectStorageInfoByGlassId(String glassid); //查询玻璃信息 // @Select("select * from glass where glassid=#{glassid}") @Select("SELECT ordernumber,listnumber,boxnumber,barcode,glasslength,glassheight,glasslength_mm,glassheight_mm FROM north_glass_buffer1 where barcode=#{barcode}") north_glass_buffer1 SelectGlassByGlassID(String barcode); //启用/禁用理片笼格子 @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.glasswidth},glassheight=#{glass.glassheight},glasswidthmm=#{glass.glasswidthmm},glassheightmm=#{glass.glassheightmm},listid=#{glass.listId},boxid=#{glass.boxId} where cage=#{cage} and cell=#{cell} and tier=#{tier}") void Inglassid(Queue glass, short cage, short cell, short tier); //查询理片笼中是否有此玻璃 @Select("select count(*) from storage_cage where glass_id=#{glassId}") short SelectStorageByGlassId(String glassId); //根据订单查询玻璃信息 @Select("select * from north_glass_buffer1 where position(#{orderid} in ordernumber)") List SelectGlass(String orderid); //获取上片队列信息 @Select("select * from queue where id=#{id}") Queue GetQueueInfo(int id); //手动添加扫码位玻璃 @Update("update queue set glassid=#{queue.glassId},orderid=#{queue.orderId},listId=#{queue.listId},boxId=#{queue.boxId},glasswidth=#{queue.glasswidth},glassheight=#{queue.glassheight},glasswidthmm=#{queue.glasswidthmm},glassheightmm=#{queue.glassheightmm},state=1 where id=#{id}") void InsertQueueGlassId(Queue queue,Short id); //确认扫码位玻璃信息 @Update("update queue set state=1 where id=1") void UpdateQueueState(); //手动添加扫码位玻璃 @Update("update queue set glassid=null,orderid=null,listid=null,boxid=null,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,state=0 where id=#{id}") void DeleteQueueGlass(String id); //查询此订单在理片笼里的玻璃数 @Select("select count(*) from storage_cage where order_id=#{orderid}") Short SelectGlassNo(String orderid); //根据玻璃id从客户表查询数据 @Select("select * from north_glass_buffer1 where barcode=#{glassid}") north_glass_buffer1 SelectBoxNo(String glassid); //查询出片队列信息 @Select("select * from out_slice order by sequence") List SelectProductionqueue(); //根据玻璃id查询笼内玻璃信息 @Select("select * from storage_cage where glass_id=#{glassid}") StorageCage SelectStorageGlassById(String glassid); //根据玻璃id查询笼内玻璃信息 @Select("select * from storage_cage where glass_id=#{glassid}") List SelectStoragesGlassById(String glassid); // //根据玻璃id删除出片队列玻璃 // @Update("update out_slice set state=4 where barcode=#{FrameNo} and (state=0 or state=1 or state=2)") // void DeleteProductionQueueGlass(String id); //根据铝框id查询对应玻璃信息 @Select("select * from north_glass_buffer1 where FrameBarcode=#{FrameBarcode}") List SelectAluminumFrameInfoById(String FrameBarcode); //根据玻璃id查询出片队列信息 @Select("select * from out_slice where glassid=#{getbarcode}") Out_slice SelectQueueByglassid(String getbarcode); //添加出片队列 @Insert("INSERT INTO out_slice( `glassId`, `barcode`, `glasswidth`, `glassheight`, `state`, `flip`, `sequence`, `time` ,`position` ,`orderid` ,`listid` ,`boxid` ,`glasswidthmm` ,`glassheightmm` ,`framewidthmm` ,`frameheightmm` ,`framestate` ) VALUES ( #{glassid}, #{FrameNo}, #{glasslengthMm}, #{glassheightMm}, #{state}, #{flip}, #{sequence}, now(), #{position}, #{orderid}, #{listid}, #{boxid}, #{glasswidth}, #{glassheight}, #{framewidthmm}, #{frameheightmm}, 0);") void AddOutSliceS(String glassid, String flip, String FrameNo, String glasslengthMm, String glassheightMm, int sequence, String position, Short state,String orderid, String listid, String boxid, String glasswidth, String glassheight,String framewidthmm,String frameheightmm); //出片队列调序 @Update("update out_slice set sequence=#{sequence} where glassid=#{glassId}") void UpdateOutSliceSequence(String glassId,int sequence); //查询出片队列最大顺序 @Select("select ifnull(max(sequence),0)+1 from out_slice ") Short SelectMaxSquence(); //查询用户权限 @Select("select rp.* from role_permission rp inner join user r on rp.role_id=r.role_id and r.username=#{username} and (permission_id=32 or permission_id=33 or permission_id=34 or permission_id=35 or permission_id=36 or permission_id=37 or permission_id=38 or permission_id=39)") List SelectPermissionByUserName(String username); // //根据玻璃完成出片任务 // @Update("update out_slice set state=2 where id=#{id}") // void CompleteQueue(String id); //根据玻璃完成出片任务 @Update("update out_slice set state=2 where glassid=#{glassid}") void CompleteQueueByGlassId(String glassid); //查询铝框id对应玻璃完成数量 @Select("select count(*) from out_slice where barcode=#{frameid} and state!=4") Short SelectCountByFrameNo(String frameid); //删除已完成的任务 @Delete("delete from out_slice where Barcode=#{frameid}") void CompleteQueueByFrameNo(String frameid); //查询笼内格子剩余宽度 @Select("Select width from storage_cage where cage=#{cage} and cell=#{cell} limit 1") Double SelectCageWidth(short cage, short cell); //修改出片队列玻璃状态为缺失 @Update("update out_slice set state=3 where glassId=#{glassid} and state<3") void UpdateOutSliceGlass(String glassid); //查询未完成的任务 @Select("select * from storage_task where task_state=0 and task_type=#{task_type}") List SelectTaskByState(int task_type); //修改出片队列铝框状态 @Update("update out_slice set framestate=1 where barcode=#{frameno}") void FrameStateUpdate(String frameno); //查询当前铝框信息 @Select("select * from out_slice where framestate=0 order by id limit 1") Out_slice SelectCurrentFrame(); //根据玻璃id查询任务信息 @Select("select task_type from storage_task where glass_id=#{glassid} and task_state!=1") Short SelectTaskByGlassId(String glassid); //修改格子宽度 @Update("update storage_cage set width=width+#{width} where cage=#{cage} and cell=#{cell};") void UpdataCageWidth(double width, int cage, int cell); //获取铝框有没有正在出片的玻璃 @Select("select count(*) from out_slice where barcode=#{frameNo} and state=1") Short SelectOutingQueueCount(String frameNo); //查询理片笼内信息 @Select("select * from storage_cage") List SelectStorageCageInfo(); //删除格子内玻璃信息 @Update("update storage_cage set width=5000,glasswidth=null,glassheight=null,glasswidthmm=null,glassheightmm=null,thickness=null,glasstype=null,number=null where cell=#{cell}") void DeleteStroageCageByCell(Integer cell); //修改格子玻璃数量 @Update("update storage_cage set number=ifnull(number,0)+#{num} where cell=#{cell}") void updateStroageCageByCell(Integer cell, Integer num); //计算格子内剩余宽度 @Update("update storage_cage set width=5000-(glasswidth+100)*number where cell=#{cell}") void UpdateStroageCageWidthByCell(Integer cell); //根据任务类型获取任务 @Select("select * from storage_task where task_type=#{task_type} and task_state=0") List SelectStorageTask(int task_type); //根据id任务 @Select("select * from storage_task where id=#{id}") StorageTask SelectStorageTaskById(int id); //根据格子查询玻璃信息 @Select("select * from storage_cage where cell=#{cell}") StorageCage SelectStorageByCell(String cell); //手动完成任务 @Select("update storage_task set task_state=1 where id=1429") void FinishTask(Integer id); @Select("select gi.* from glassinfo gi inner join flowcard fc on gi.flowcard=fc.flowcard where fc.state!=2 and position(#{width} in gi.width) and position(#{height} in gi.height) and position(#{thickness} in gi.thickness) and position(#{films} in gi.films) group by gi.id") List SelectGlassInfo(String width,String height,String thickness,String films); @Update("update storage_cage set glasstype=#{glassInfo.glasstype},glasswidth=#{glassInfo.width},glassheight=#{glassInfo.height},thickness=#{glassInfo.thickness},films=#{glassInfo.films},number=0 where cell=#{cell}") void StorageCageAddGlass(String cell, GlassInfo glassInfo); @Select("select * from flowcard where state!=2") List SelectOrderTask(); @Select("select gi.*,sum(sc.number) as cageno from glassinfo gi left join storage_cage sc on gi.glasstype=sc.glasstype where gi.flowcard=#{flowcard} group by gi.id order by gi.mateid,gi.tier") List SelectOrderView(String flowcard); @Update("update flowcard set state=#{state} where flowcard=#{flowcard}") void ClaimTasks(String flowcard, int state); @Update("update flowcard set method=#{method} where flowcard=#{flowcard}") void ModeChange(String flowcard, int method); @Update("update queue set flowcard=#{flowcard},glasswidth=#{width},glassheight=#{height},glasstype=#{glasstype},state=1 where state<=0") void UpdateQueue(String flowcard,double width,double height,Integer glasstype); @Update("update glassinfo set finishnumber=finishnumber+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{geTier}") void AddGlassNo(String flowcard, Integer mateid, Integer geTier); }