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/service/SpianServiceNew.java | 308 +++++++++++++++++++++++++++++++------------------- 1 files changed, 191 insertions(+), 117 deletions(-) diff --git a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java index 64d54bb..f2a2366 100644 --- a/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java +++ b/springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java @@ -1,4 +1,5 @@ package com.example.springboot.service; + import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; @@ -12,128 +13,193 @@ import com.example.springboot.mapper.AlbaniaMapper; import com.google.common.primitives.Bytes; - @Service public class SpianServiceNew { @Autowired private AlbaniaMapper albaniaMapper; - //璇诲彇DB105鍖烘枃浠� - private PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; -public Short selectAll(GlassInfo glassInfo) { - if(glassInfo==null){ - //鏈夎繘鐗囪姹備絾鏄祴閲忓彴娌℃湁鐜荤拑 - return 400; - } - - System.out.println(glassInfo+"鍒濆"); - //瀹氫箟鍒濆瀛楁 - StorageCage cage; - String glassid=glassInfo.getGlassid(); - Double width=glassInfo.getWidth(); - Double height=glassInfo.getHeight(); - String flowcard=glassInfo.getFlowcard(); - int glasstype=glassInfo.getGlasstype(); - //鍒ゆ柇鏄惁鏈夊悓绫诲瀷鐨� - cage=albaniaMapper.SelectCage(glasstype,width, 300); - - //濡傛灉鏈夊悓绫诲瀷鏃剁洿鎺ュ鍔� - if(cage!=null){ - //鍙戦�乸lc浠诲姟 - Mestast(glassid, 1001, cage.getId(), 1,"MESID1",1); - System.out.println("浠诲姟鍙戦�佺幓鐠僫d:"+glassid+"璧峰浣嶇疆:"+1001+"鏍煎瓙鍙�:"+cage.getId()+"鍚姩:"+1); - - }else{ - //鍒ゆ柇鐜荤拑鏄惁杩涘叆澶х墖绗� - if(glassInfo.getThickness()>=15){ - cage=albaniaMapper.SelectNewCell(3,5); - }else{ - cage=albaniaMapper.SelectNewCell(0,4); - - System.out.println(cage+"鐞嗙墖绗煎垽鏂�"); - } - //褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧 - if(cage!=null){ - albaniaMapper.AddCage(cage.getId(), glassid,width, height, 1, glasstype, 0); - Mestast(glassid,1001,cage.getId(),1,"MESID1",1); - System.out.println("浠诲姟鍙戦�佺幓鐠僫d:"+glassid+"璧峰浣嶇疆:"+1001+"鏍煎瓙鍙�:"+cage.getId()+"鍚姩:"+1); - albaniaMapper.UpdateStorage(width,height,cage.getId()); - }else{ - return(400); - } - } - //澧炲姞浠诲姟璁板綍 - albaniaMapper.Inserttask(0, 0, 1001, cage.getId(), glassid,glasstype, flowcard,0,0); - albaniaMapper.UpdateQueueState(glassid); - return(200); + @Autowired + private StorageCageService storageCageService; + // 璇诲彇DB105鍖烘枃浠� + private PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; -} + public Short selectAll(GlassInfo glassInfo) { + if (glassInfo == null) { + // 鏈夎繘鐗囪姹備絾鏄祴閲忓彴娌℃湁鐜荤拑 + return 400; + } - //鍑虹墖 + System.out.println(glassInfo + "鍒濆"); + // 瀹氫箟鍒濆瀛楁 + StorageCage cage; + String glassid = glassInfo.getGlassid(); + Double width = glassInfo.getWidth(); + Double height = glassInfo.getHeight(); + String flowcard = glassInfo.getFlowcard(); + Integer glasstype = glassInfo.getGlasstype(); + Double thickness = glassInfo.getThickness(); + GlassInfo glassfilms = albaniaMapper.SelectGlassinfo(glasstype); + // 鍒ゆ柇鏄惁鏈夊悓绫诲瀷鐨� + cage = albaniaMapper.SelectCage(glasstype, width, 300); + // 濡傛灉鏈夊悓绫诲瀷鏃剁洿鎺ュ鍔� + if (cage != null) { + // 鍙戦�乸lc浠诲姟 + Mestast(glassid, 1001, cage.getId(), 1, "MESID1", 1); + System.out.println("浠诲姟鍙戦�佺幓鐠僫d:" + glassid + "璧峰浣嶇疆:" + 1001 + "鏍煎瓙鍙�:" + cage.getId() + "鍚姩:" + 1); + + } else { + // 鍒ゆ柇鐜荤拑鏄惁杩涘叆澶х墖绗� + if (glassInfo.getThickness() >= 15) { + cage = albaniaMapper.SelectNewCell(3, 5); + } else { + cage = albaniaMapper.SelectNewCell(0, 4); + + // System.out.println(cage + "鐞嗙墖绗煎垽鏂�"); + } + // 褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧 + if (cage != null) { + albaniaMapper.AddCage(cage.getId(), glassid, width, height, 1, glasstype, 0, thickness, + glassfilms.getFilms(),glassfilms.getFlowcard(),glassfilms.getMateid()); + Mestast(glassid, 1001, cage.getId(), 1, "MESID1", 1); + System.out.println("浠诲姟鍙戦�佺幓鐠僫d:" + glassid + "璧峰浣嶇疆:" + 1001 + "鏍煎瓙鍙�:" + cage.getId() + "鍚姩:" + 1); + albaniaMapper.UpdateStorage(width, height, cage.getId()); + } else { + return (400); + } + } + // 澧炲姞浠诲姟璁板綍 + albaniaMapper.Inserttask(0, 0, 1001, cage.getId(), glassid, glasstype, flowcard, glassfilms.getMateid(), 0); + albaniaMapper.UpdateQueueState(glassid); + return (200); + + } + //琛ュ厖鍑虹墖 + public Short mateOut() { + double carwidth = -300; + list<StorageTask> glassmate = albaniaMapper.SelectMateOut(); + return (200); + } + // 鍑虹墖 public Short selectout(int line) { - GlassInfo glassmate=new GlassInfo(); - GlassInfo method=new GlassInfo(); - StorageCage glass=new StorageCage(); - int glassend=0; - method=albaniaMapper.SelectMethod(line); - if(method==null){ + GlassInfo glassmate = new GlassInfo(); + GlassInfo method = new GlassInfo(); + StorageCage glass = new StorageCage(); + int glassend = 0; + double carwidth = -300; + method = albaniaMapper.SelectMethod(line); + if (method == null) { return (400); } - double width=0; - for(int i=1;i<=7;i++){ - //濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱 - if(method.getMethod()==0){ - glassmate= albaniaMapper.SelectOutGlass(1); - }else{ - //鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑� - glassmate= albaniaMapper.SelectOutGlass2(1); - //鑾峰彇鐩撮�氭ā寮忔渶鍚庝竴鍧� - glassend=albaniaMapper.SelectOutGlassend(1); - } - System.err.println("method:"+method+"glassmate:"+glassmate); - System.err.println(line); - if(glassmate==null){ - //鏈鍙栦换鍔� - System.out.println("鏈鍙栦换鍔�"); + double width = 0; + for (int i = 1; i <= 7; i++) { + // 濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱 + if (method.getMethod() == 0) { + // glassmate= albaniaMapper.SelectOutGlass(1); + //鍒ゆ柇鏈夋暟閲忕殑閰嶇墖id + List<GlassInfo> peipianid = albaniaMapper.SelectOutGlass3(method.getFlowcard()); + if (peipianid.size() == 0) { + System.out.println("peipianid:"+peipianid); return (400); - }else{ - - glass= albaniaMapper.SelectCageGlass(glassmate.getGlasstype()); - System.out.println("glassmate:"+glassmate+"glassend:"+glassend+"glass:"+glass); - if(glass!=null){ - //鍙戦�佷换鍔′箣鍓嶅垽鏂溅涓婄殑鍓╀綑瀹藉害鏄惁澶т簬姝ょ幓鐠� - width=width+glassmate.getWidth()+300; - //澶т簬杞︿笂绌轰綑瀹藉害鏃舵彁鍓嶅彂閫佸嚭鐗囧惎鍔� - if(width>5000){ - //鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short)1);//鍑虹墖浠诲姟鍚姩 - return (200);//缁撴潫 - } - //鍙戦�侀厤鐗囨暟鎹� - Mestast(glass.getGlassId(), glass.getId(),40, 0,"MESID"+i,i); - albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(), glassmate.getTier()); - albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, glassmate.getGlassid(), glassmate.getGlasstype(),glass.getFlowcard(),glassmate.getMateid(),glassmate.getTier()); - if(glassmate.getTier()==glassmate.getId()||glassmate.getTier()==glassend){//褰撻厤鐗囨暟閲忕瓑浜庢垚鍝佸皬鐗囨�荤墖鏁版椂 - //鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� - S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short)1);//鍑虹墖浠诲姟鍚姩 - System.out.println("浠诲姟绫诲瀷:1,浠诲姟鐘舵��:0,璧峰:"+glass.getId()+",鐩爣"+"40"); - return (200);//缁撴潫 - } - - - }else{ - return (400);//缁撴潫 + } else { + for (int j = 0; j < peipianid.size(); j++) { + // 鍒ゆ柇閰嶇墖瀹藉害鏄惁澶熶笂澶ц溅 + // GlassInfo glasswidth = albaniaMapper.SelectOutGlass6(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid()); + // if (glasswidth.getWidth() <= 4300) { + //鏄惁鏈夎冻澶熺殑搴撳瓨鏁伴噺 + List<String> peipiancage = albaniaMapper.SelectOutGlass4(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid()); + //鏄惁鏈夎冻澶熺殑鍙嚭鐗囨暟閲� + List<String> peipiancage2 = albaniaMapper.SelectOutGlass8(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid()); + // System.out.println("peipiancage:"+peipiancage+peipianid.get(j).getMateid()); + // System.out.println("peipiancage2:"+peipiancage2); + if (!peipiancage.contains("涓嶈冻")&&!peipiancage2.contains("涓嶈冻")) { + List<GlassInfo> chupian = albaniaMapper.SelectOutGlass7(peipianid.get(j).getFlowcard(),peipianid.get(j).getMateid()); + for (int k = 0; k < chupian.size(); k++) { + glass = albaniaMapper.SelectCageGlass(chupian.get(k).getGlasstype()); + carwidth= carwidth+glass.getGlassWidth()+300; + if (carwidth<=4300) { + // 鍙戦�侀厤鐗囨暟鎹� + // Mestast(chupian.get(k).getGlassid(), glass.getId(), 2001, 0, "MESID" + (k+1), k+1); + albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier()); + storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1 + albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(), + chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier()); + }else { + albaniaMapper.AddFinishNumber(chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier()); + storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1 + albaniaMapper.InsertOutTask(1, 0, glass.getId(), 2001, chupian.get(k).getGlassid(), + chupian.get(k).getGlasstype(), chupian.get(k).getFlowcard(), chupian.get(k).getMateid(), chupian.get(k).getTier()); + } + + } + // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩 + return (200);// 缁撴潫 + } + // } + // else { + // continue; + // } } - - + System.out.println("鏈湁瀹屾暣閰嶇墖"); + return (400); } + + } else { + // 鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑� + glassmate= albaniaMapper.SelectOutGlass(1); + // glassmate = albaniaMapper.SelectOutGlass2(1); + // // 鑾峰彇鐩撮�氭ā寮忔渶鍚庝竴鍧� + // glassend = albaniaMapper.SelectOutGlassend(1); + } - return(200);// 缁撴潫 + System.err.println("鍑虹墖:" + glassmate); + if (glassmate == null && i > 1) { + // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩 + System.out.println("鍑哄畬浠诲姟:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001"); + return (200);// 缁撴潫 + } + if (glassmate == null) { + // 鏈鍙栦换鍔� + System.out.println("鏈鍙栦换鍔�:" + i); + return (400); + } else { + glass = albaniaMapper.SelectCageGlass(glassmate.getGlasstype()); + System.out.println("glassmate:" + glassmate + "glass:" + glass); + if (glass != null) { + // 鍙戦�佷换鍔′箣鍓嶅垽鏂溅涓婄殑鍓╀綑瀹藉害鏄惁澶т簬姝ょ幓鐠� + width = width + glassmate.getWidth() + 300; + // 澶т簬杞︿笂绌轰綑瀹藉害鏃舵彁鍓嶅彂閫佸嚭鐗囧惎鍔� + if (width > 4300) { + // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩 + return (200);// 缁撴潫 + } + // 鍙戦�侀厤鐗囨暟鎹� + Mestast(glass.getGlassId(), glass.getId(), 2001, 0, "MESID" + i, i); + albaniaMapper.AddFinishNumber(glassmate.getFlowcard(), glassmate.getMateid(), glassmate.getTier()); + storageCageService.UpdateStroageCageByCell(glass.getId(), -1);// 鐜荤拑鏁伴噺-1 + albaniaMapper.Inserttask(1, 0, glass.getId(), 2001, glassmate.getGlassid(), + glassmate.getGlasstype(), glass.getFlowcard(), glassmate.getMateid(), glassmate.getTier()); + // if (glassmate.getTier() == glassmate.getId() || glassmate.getTier() == glassend|| method.getMethod() == 1) {// 褰撻厤鐗囨暟閲忕瓑浜庢垚鍝佸皬鐗囨�荤墖鏁版椂 + // // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠� + // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩 + // System.out.println("浠诲姟绫诲瀷:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001"); + // return (200);// 缁撴潫 + // } + + } else { + return (400);// 缁撴潫 + } + + } + } + return (200);// 缁撴潫 } // 娲惧彂浠诲姟鐜荤拑id public void outmesid(String glassid, String address) { - //璇诲彇DB105鍖烘枃浠� - PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; + // 璇诲彇DB105鍖烘枃浠� + PlcParameterObject plcmes = PLCAutoMes.PlcMesObject; // System.out.println("outmesid:" + glassid); List<Byte> glassidlist = new ArrayList(); char ds[] = glassid.toCharArray(); @@ -141,7 +207,7 @@ glassidlist.add((byte) iditem); } byte[] bytes = Bytes.toArray(glassidlist); - //writeString + // writeString System.out.println("outmesidbytes:" + bytes.length); System.out.println(plcmes.getPlcParameter(address).getAddress()); System.out.println(); @@ -158,7 +224,7 @@ writedstrIdOut.append((char) iditem); } } - return writedstrIdOut; + return writedstrIdOut; } // char鏁扮粍杞寲鎴恇it鏁扮粍 @@ -180,22 +246,30 @@ return listbool; } - //涓嬪彂鐞嗙墖浠诲姟 - public void Mestast(String glassid,int MESToPLCStart1,int MESToPLCTarget1,int MESToPLC,String address,int i) { - S7control.getinstance().writeString(plcmes.getPlcParameter(address).getAddress(),glassid);//鐜荤拑id - S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart"+i).getAddress(), (short) MESToPLCStart1);//璧峰浣嶇疆 - S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget"+i).getAddress(), (short) MESToPLCTarget1);//鐩爣浣嶇疆 - if(MESToPLC!=0){ - S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short)MESToPLC);//mes鐞嗙墖浠诲姟绫诲瀷 - } + // 涓嬪彂鐞嗙墖浠诲姟 + public void Mestast(String glassid, int MESToPLCStart1, int MESToPLCTarget1, int MESToPLC, String address, int i) { + // System.out.println("涓嬪彂鐞嗙墖浠诲姟鏁版嵁锛�"); + // System.out.println("鐜荤拑 ID: " + glassid); + // System.out.println("璧峰浣嶇疆: " + MESToPLCStart1); + // System.out.println("鐩爣浣嶇疆: " + MESToPLCTarget1); + // System.out.println("浠诲姟绫诲瀷: " + MESToPLC); + // System.out.println("鍦板潃: " + address); + // System.out.println("绱㈠紩: " + i); + S7control.getinstance().writeString(plcmes.getPlcParameter(address).getAddress(), glassid);// 鐜荤拑id + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCStart" + i).getAddress(), + (short) MESToPLCStart1);// 璧峰浣嶇疆 + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLCTarget" + i).getAddress(), + (short) MESToPLCTarget1);// 鐩爣浣嶇疆 + if (MESToPLC != 0) { + S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) MESToPLC);// mes鐞嗙墖浠诲姟绫诲瀷 + } } - + // 鎵爜澧炲姞闃熷垪浠诲姟 public boolean scan(String address) { List<Short> list = S7control.getinstance().ReadWord(address, 1);// 杩斿洖涓簍ure鏃朵负1 boolean listbool = list.contains((short) 1); return listbool; } - } -- Gitblit v1.8.0