From 2d92826d942cd4c06e1f415d4a3896b99ec65e2b Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期四, 07 十一月 2024 19:32:00 +0800 Subject: [PATCH] 更改配片逻辑 --- springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java | 54 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 45 insertions(+), 9 deletions(-) diff --git a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java index 4056b3d..a0f59c0 100644 --- a/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java +++ b/springboot-vue3/src/main/java/com/example/springboot/mapper/AlbaniaMapper.java @@ -1,4 +1,6 @@ package com.example.springboot.mapper; +import java.util.List; + import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Insert; import org.apache.ibatis.annotations.Mapper; @@ -7,6 +9,7 @@ import org.springframework.stereotype.Repository; import com.example.springboot.entity.GlassInfo; import com.example.springboot.entity.StorageCage; +import com.example.springboot.entity.StorageTask; @Mapper @Repository @@ -26,9 +29,12 @@ //澧炲姞浠诲姟璁板綍 @Insert("INSERT INTO `albania`.`storage_task`(`task_type`, `task_state`, `shelf_rack`, `load_rack`,start_time,glass_id,glasstype,flowcard,mateid,tier) VALUES (#{tasktype},#{taskstate},#{shelfrack},#{loadrack},now(),#{glassid},#{glasstype},#{flowcard},#{mateid},#{tier});") void Inserttask(int tasktype, int taskstate, int shelfrack, int loadrack, String glassid, int glasstype,String flowcard,int mateid,int tier); + //澧炲姞浠e彂浠诲姟璁板綍 + @Insert("INSERT INTO `albania`.`out_task`(`task_type`, `task_state`, `shelf_rack`, `load_rack`,start_time,glass_id,glasstype,flowcard,mateid,tier) VALUES (#{tasktype},#{taskstate},#{shelfrack},#{loadrack},now(),#{glassid},#{glasstype},#{flowcard},#{mateid},#{tier});") + void InsertOutTask(int tasktype, int taskstate, int shelfrack, int loadrack, String glassid, int glasstype,String flowcard,int mateid,int tier); //鏂板涓�鏉$瀛愭暟鎹� - @Update("UPDATE `albania`.`storage_cage` SET `glass_id` =#{glassid}, `width` =width-#{glasswidth}, `glasswidth` =#{glasswidth}, `glassheight` =#{glassheight}, `glasswidthmm` =#{glasswidth}, `glassheightmm` = #{glassheight}, `state` = #{state}, `glasstype` = #{glasstype}, `number` = #{number} WHERE `id` =#{id};") - void AddCage(int id,String glassid,Double glasswidth,Double glassheight,int state,int glasstype,int number); + @Update("UPDATE `albania`.`storage_cage` SET `glass_id` =#{glassid}, `width` =width-#{glasswidth}, `glasswidth` =#{glasswidth}, `glassheight` =#{glassheight}, `glasswidthmm` =#{glasswidth}, `glassheightmm` = #{glassheight}, `state` = #{state}, `glasstype` = #{glasstype}, `number` = #{number},thickness=#{thickness},films=#{films},flowcard=#{flowcard},mateid=#{mateid} WHERE `id` =#{id};") + void AddCage(int id,String glassid,Double glasswidth,Double glassheight,int state,int glasstype,int number,Double thickness,String films,String flowcard,int mateid); //鑾峰彇杩涚墖鏁版嵁 @Select("select glassid,flowcard,glasswidth as width,glassheight as height,glasswidthmm,glassheightmm,glasstype,thickness from queue where state=1 limit 1") GlassInfo SelectGlass(); @@ -38,29 +44,40 @@ //浜屽彿绾挎煡璇换鍔� @Select("select * from v_cagerelease2 where mateid not in(select mateid from v_cagerelease2 where surplus=0 group by mateid)LIMIT 1;") GlassInfo SelectOutGlass2(); + //寰呭嚭鐗囦换鍔℃煡璇� + @Select("select * from out_task where task_state=0") + List<StorageTask> SelectOutTask(); //娴佺▼鍗′换鍔℃煡璇� - @Select("select G.flowcard,G.glasstype,G.number,G.mateid,G.tier,G.starttime,G.finishnumber,IF((G.number-G.finishnumber-ku.KuCount)<0,G.number,ku.KuCount) as 'surplus',G.totaltier as id,G.width,G.glassid from (select Gfd.flowcard,Ggf.glasstype,Ggf.number,Ggf.mateid,Ggf.tier,Ggf.finishnumber,Gfd.starttime,Gfd.totaltier,Ggf.width,Ggf.glassid from flowcard as Gfd LEFT JOIN glassinfo as Ggf on Gfd.flowcard=Ggf.flowcard where Gfd.state=1 and Gfd.line=#{line}) as G left join (select glasstype,sum(number) AS KuCount from storage_cage where flowcard is not null group by glasstype) as ku on G.glasstype=ku.glasstype where G.mateid not in(select mateid from v_cagerelease1 where surplus=0 group by mateid)order by `g`.`starttime`,`g`.`mateid`,`g`.`finishnumber`,`g`.`tier`LIMIT 1;") + @Select("select G.flowcard,G.glasstype,G.number,G.mateid,G.tier,G.starttime,G.finishnumber,IF((G.number-G.finishnumber-ku.KuCount)<0,G.number,IFNULL(ku.KuCount,0)) as 'surplus',G.totaltier as id,G.width,G.glassid from (select Gfd.flowcard,Ggf.glasstype,Ggf.number,Ggf.mateid,Ggf.tier,Ggf.finishnumber,Gfd.starttime,Gfd.totaltier,Ggf.width,Ggf.glassid from flowcard as Gfd LEFT JOIN glassinfo as Ggf on Gfd.flowcard=Ggf.flowcard where Gfd.state=1 and Gfd.line=1) as G left join (select glasstype,sum(number) AS KuCount from storage_cage where glasstype is not null and disabled=0 group by glasstype) as ku on G.glasstype=ku.glasstype where G.mateid not in(select mateid from v_cagerelease1 where surplus=0 group by mateid) HAVING surplus>0 order by `g`.`starttime`,`g`.`mateid`,`g`.`finishnumber`,`g`.`tier`LIMIT 1;") GlassInfo SelectOutGlass(int line); + // @Select("select SQL_NO_CACHE G.flowcard,G.glasstype,G.number,G.mateid,G.tier,G.starttime,G.finishnumber,IF((G.number-G.finishnumber-ku.KuCount)<0,G.number,ku.KuCount) as 'surplus',G.totaltier as id,G.width,G.glassid from (select Gfd.flowcard,Ggf.glasstype,Ggf.number,Ggf.mateid,Ggf.tier,Ggf.finishnumber,Gfd.starttime,Gfd.totaltier,Ggf.width,Ggf.glassid from flowcard as Gfd LEFT JOIN glassinfo as Ggf on Gfd.flowcard=Ggf.flowcard where Gfd.state=1 and Gfd.line=#{line}) as G left join (select glasstype,sum(number) AS KuCount from storage_cage where flowcard is not null group by glasstype) as ku on G.glasstype=ku.glasstype where G.mateid not in(select mateid from v_cagerelease1 where surplus=0 group by mateid) HAVING surplus>0 order by `g`.`starttime`,`g`.`mateid`,`g`.`finishnumber`,`g`.`tier`LIMIT 1;") + // GlassInfo SelectOutGlass(int line); //鑾峰彇璇ョ被鍨嬪湪搴撳瓨鐨勪綅缃� @Select("select * from storage_cage where glasstype=#{glasstype} and number>0 limit 1") StorageCage SelectCageGlass(int glasstype); //鍙戦�佸嚭鐗囧悗澧炲姞宸插彂鏁伴噺 - @Update("update glassinfo set finishnumber=finishnumber+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{tier};") + @Update("update glassinfo set finishnumber=ifnull(finishnumber,0)+1 where flowcard=#{flowcard} and mateid=#{mateid} and tier=#{tier};") void AddFinishNumber(String flowcard,int mateid,int tier); //鑾峰彇褰撳墠浠诲姟鐨刬d @Select("select id from storage_task where task_state=0 and glass_id=#{glassid} ORDER BY id desc LIMIT 1") GlassInfo SelectTaskId(String glassid); + //鑾峰彇褰撳墠鏈畬鎴愪换鍔$殑鏁伴噺 + @Select("select count(*) from storage_task where task_state=0") + int SelectTaskcount(); + //鑾峰彇褰撳墠鏈畬鎴愪换鍔$殑鏁伴噺 + @Select("select count(*) from out_task where task_state=0") + int SelectOutTaskCount(); //鍒犻櫎娴嬮噺琛ㄧ殑淇℃伅 @Delete("delete from queue where glassid=#{glassid}") int DeleteQueue(String glassid); //鍒ゆ柇鏄惁鏄洿鍑烘ā寮� - @Select("select method from flowcard where state=1 and line=#{line} ORDER BY starttime LIMIT 1;") + @Select("select method,flowcard from flowcard where state=1 and line=#{line} ORDER BY starttime LIMIT 1;") GlassInfo SelectMethod(int line); //鐩村嚭妯″紡浠诲姟鏌ヨ - @Select("select b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=1 and c.number>0 limit 1") + @Select("select b.flowcard,b.glassid,b.glasstype,b.mateid,b.width,b.tier,a.totaltier as id,IFNULL(c.number,0)as number,b.glassid from flowcard a left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=1 and c.number>0 and b.finishnumber<b.number ORDER BY b.finishnumber,b.tier asc limit 1") GlassInfo SelectOutGlass2(int line); //鏌ヨ鐩撮�氭ā寮忎笅鏈�鍚庝竴鍧� - @Select("select b.tier from flowcard a left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0 ORDER BY b.tier desc LIMIT 1") + @Select("select IFNULL(b.tier, 0) from flowcard a left join glassinfo b on a.flowcard=b.flowcard left join(select sum(number)as number,glasstype from storage_cage GROUP BY glasstype)c on b.glasstype=c.glasstype where a.line=#{line} and c.number>0 ORDER BY b.tier desc LIMIT 1") int SelectOutGlassend(int line); //澧炲姞绗煎瓙琛ㄥ楂� @Select("update storage_cage a set a.glasswidth=#{width},a.glassheight=#{height} where id=#{id} ") @@ -68,6 +85,25 @@ //鏇存敼闃熷垪琛ㄧ姸鎬� @Update("update queue set state=2 where glassid=#{glassid};") void UpdateQueueState(String glassid); - - + //鏇存敼闃熷垪琛ㄧ姸鎬� + @Select("select*from glassinfo where glasstype=#{glasstype} limit 1;") + GlassInfo SelectGlassinfo(Integer glasstype); + //鏌ヨ绾厤鐗囨ā寮忓彲鍑洪厤鐗噄d + @Select("select gls.flowcard,gls.mateid,gls.tier,gls.glasstype,kc.number from glassinfo as gls left join (select glasstype,sum(number) as number from storage_cage where number>0 and disabled=0 GROUP BY glasstype)as kc on gls.glasstype=kc.glasstype where gls.flowcard=#{flowcard} and gls.number>gls.finishnumber and kc.number>0 GROUP BY gls.flowcard, gls.mateid, gls.tier, gls.glasstype, kc.number,mateid order by gls.mateid;") + List<GlassInfo> SelectOutGlass3(String flowcard); + //鍒ゆ柇姝ら厤鐗噄d鏄惁鏈夎冻澶熺殑鐜荤拑 + @Select("SELECT CASE WHEN storage.number >= required.number THEN '瓒冲' ELSE '涓嶈冻' END AS status FROM (SELECT a.glasstype, COUNT(a.glasstype) AS number FROM glassinfo a WHERE a.flowcard =#{flowcard} AND a.mateid =#{mateid} GROUP BY a.glasstype) AS required LEFT JOIN (SELECT a.glasstype, SUM(a.number) AS number FROM storage_cage a WHERE a.number > 0 and disabled=0 GROUP BY a.glasstype) AS storage ON required.glasstype = storage.glasstype;") + List<String> SelectOutGlass4(String flowcard,int mateid); + //鏌ヨ姝ら厤鐗噄d闇�瑕佺殑鐜荤拑绫诲瀷 + @Select("select glasstype,width,sumtier from glassinfo where flowcard=#{flowcard} and mateid=#{mateid}") + List<GlassInfo> SelectOutGlass5(String flowcard,int mateid); + //鍒ゆ柇姝ょ粍鐜荤拑鏄惁鑳戒竴娆′笂杞� + @Select("select sum(width)+(sumtier-1)*300 as width,mateid from glassinfo where flowcard=#{flowcard} and mateid=#{mateid} GROUP BY mateid,sumtier") + GlassInfo SelectOutGlass6(String flowcard,int mateid); + //鏌ヨ姝ら厤鐗噄d鎵�闇�鐨勭被鍨� + @Select("select * from glassinfo where flowcard=#{flowcard} and mateid=#{mateid}") + List<GlassInfo> SelectOutGlass7(String flowcard,int mateid); + //鏌ヨ姝ら厤鐗噄d鏄惁鏈夊彲鍑虹墖鏁伴噺 + @Select("SELECT CASE WHEN number >finishnumber THEN '瓒冲' ELSE '涓嶈冻' END AS status FROM glassinfo a WHERE a.flowcard =#{flowcard} AND a.mateid =#{mateid}") + List<String> SelectOutGlass8(String flowcard,int mateid); } -- Gitblit v1.8.0