From ca1ae93196be366e707647c42e3039512a2cf45f Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期二, 12 十一月 2024 14:00:24 +0800
Subject: [PATCH] 字段显示,结束任务功能更新,界面调整,测量显示
---
springboot-vue3/src/main/java/com/example/springboot/service/SpianServiceNew.java | 373 +++++++++++++++++++++++++++++++++++++---------------
1 files changed, 265 insertions(+), 108 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 d0d4082..0641df8 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;
@@ -8,120 +9,248 @@
import com.example.springboot.component.S7control;
import com.example.springboot.entity.GlassInfo;
import com.example.springboot.entity.StorageCage;
+import com.example.springboot.entity.StorageTask;
import com.example.springboot.entity.device.PlcParameterObject;
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;
+ @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() > 4 &&glassInfo.getWidth()>= 1500) {
+ 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);
+
}
- //瀹氫箟鍒濆瀛楁
- 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, 50);
-
- //濡傛灉鏈夊悓绫诲瀷鏃剁洿鎺ュ鍔�
- if(cage!=null){
- //鍙戦�乸lc浠诲姟
- Mestast(glassid, 1001, cage.getId(), 1,"MESID1",1);
+
+ // 琛ュ厖鍑虹墖
+ public Short mateOut() {
+ double carwidth = -300;
- }else{
- //鍒ゆ柇鐜荤拑鏄惁杩涘叆澶х墖绗�
- if(glassInfo.getThickness()>=15){
- cage=albaniaMapper.SelectNewCell(3,5);
- }else{
- cage=albaniaMapper.SelectNewCell(0,5);
- }
- //褰撹繑鍥炵殑鏍煎瓙鍙蜂负绌烘椂,杩斿洖400绗煎瓙宸叉弧
- if(cage!=null){
- albaniaMapper.AddCage(cage.getId(), glassid,width, height, 1, glasstype, 0);
- Mestast(glassid,1001,cage.getId(),1,"MESID1",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);
-
-}
-
- //鍑虹墖
- public Short selectout(int line) {
- GlassInfo glassmate=new GlassInfo();
- GlassInfo method=new GlassInfo();
- StorageCage glass=new StorageCage();
- int glassend=0;
- method=albaniaMapper.SelectMethod(line);
- double width=0;
- for(int i=1;i<=7;i++){
- //濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱
- if(method.getMethod()==0){
- glassmate= albaniaMapper.SelectOutGlass(line);
- }else{
- //鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑�
- glassmate= albaniaMapper.SelectOutGlass2(line);
- //鑾峰彇鐩撮�氭ā寮忔渶鍚庝竴鍧�
- glassend=albaniaMapper.SelectOutGlassend(line);
- }
-
- if(glassmate==null){
- //鏈鍙栦换鍔�
- return (400);
- }else{
-
- glass= albaniaMapper.SelectCageGlass(glassmate.getGlasstype());
- if(glass!=null){
- //鍙戦�佷换鍔′箣鍓嶅垽鏂溅涓婄殑鍓╀綑瀹藉害鏄惁澶т簬姝ょ幓鐠�
- width=width+glassmate.getWidth()+50;
- //澶т簬杞︿笂绌轰綑瀹藉害鏃舵彁鍓嶅彂閫佸嚭鐗囧惎鍔�
- 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(), 2002, 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);//鍑虹墖浠诲姟鍚姩
- return (200);//缁撴潫
- }
-
-
- }else{
- return (400);//缁撴潫
- }
-
-
+ List<StorageTask> glassmate = albaniaMapper.SelectOutTask();
+ String type=glassmate.get(0).getTaskType();
+ if (glassmate.size() == 0) {
+ return (400);
+ } else {
+ for (int i = 0; i < glassmate.size(); i++) {
+ GlassInfo glass = albaniaMapper.SelectGlassInfo(glassmate.get(i).getGlasstype());
+ carwidth = carwidth + glass.getWidth() + 300;
+ if (carwidth >= 4300&&type!=glassmate.get(i).getTaskType()) {
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+ return (200);
+ } else {
+ //澧炲姞涓�鏉′换鍔¤褰�
+ albaniaMapper.Inserttask(1, 0, Integer.parseInt(glassmate.get(i).getShelfRack()), 2001,
+ glassmate.get(i).getGlassId(), glassmate.get(i).getGlasstype(),
+ glassmate.get(i).getFlowcard(), glassmate.get(i).getMateid(), glassmate.get(i).geTier());
+ //瀹屾垚鍑虹墖闃熷垪鐨勪换鍔�
+ albaniaMapper.UpdateOutTask(glassmate.get(i).getId());
+ //鍙戦�乸lc浠诲姟
+ Mestast(glassmate.get(i).getGlassId(),
+ Integer.parseInt(glassmate.get(i).getShelfRack()), 2001, 0, "MESID" + (i + 1),i + 1);
+ System.out.println("鍙戦�佸嚭鐗囬槦鍒楅厤鐗囦换鍔�:"+glassmate.get(i).getShelfRack());
}
}
- return(200);// 缁撴潫
+ // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+ // S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(), (short) 1);// 鍑虹墖浠诲姟鍚姩
+ MestoPlc();
+
+ }
+ return (200);
+ }
+
+ // 鍑虹墖
+ public Short selectout(int line) {
+ GlassInfo glassmate = new GlassInfo();
+ GlassInfo method = new GlassInfo();
+ StorageCage glass = new StorageCage();
+ int glassend = 0;
+ double carwidth = -300;
+ double width = 0;
+ for (int i = 1; i <= 7; i++) {
+ method = albaniaMapper.SelectMethod(line);
+ if (method == null) {
+ return (400);
+ }
+ // 濡傛灉涓嶆槸鐩撮�氭ā寮忓彧鍑烘湁瀹屾暣閰嶇墖鐨勬祦绋嬪崱
+ 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 {
+ 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);// 鍑虹墖浠诲姟鍚姩
+ MestoPlc();
+ return (200);// 缁撴潫
+ }
+ // }
+ // else {
+ // continue;
+ // }
+ }
+ System.out.println("鏈湁瀹屾暣閰嶇墖");
+ return (400);
+ }
+
+ } else {
+ // 鐩撮�氭ā寮忔椂鎸夐『搴忕洿鍑�
+ // glassmate = albaniaMapper.SelectOutGlass(1);
+ glassmate = albaniaMapper.SelectOutGlass2(1);
+ System.out.println("glassmate:"+glassmate);
+ // // 鑾峰彇鐩撮�氭ā寮忔渶鍚庝竴鍧�
+ // glassend = albaniaMapper.SelectOutGlassend(1);
+
+ }
+ System.err.println("鍑虹墖:" + glassmate);
+ if (glassmate == null && i > 1) {
+ // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+ // 鍑虹墖浠诲姟鍚姩
+ MestoPlc();
+ System.out.println("鍑哄畬浠诲姟:1,浠诲姟鐘舵��:0,璧峰:" + glass.getId() + ",鐩爣" + "2001");
+ return (200);// 缁撴潫
+ }
+ if (glassmate == null) {
+ // 鏈鍙栦换鍔�
+ System.out.println("鏈鍙栦换鍔�:" + i);
+ glassmate = albaniaMapper.SelectOutGlass2(1);
+ if(glassmate==null){
+ System.out.println("glassmate绌�");
+ 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) {
+ // 鏈閰嶇墖瀹屾垚鍙戦�佸惎鍔ㄥ懡浠�
+ MestoPlc();
+ 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();
@@ -129,7 +258,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();
@@ -146,7 +275,7 @@
writedstrIdOut.append((char) iditem);
}
}
- return writedstrIdOut;
+ return writedstrIdOut;
}
// char鏁扮粍杞寲鎴恇it鏁扮粍
@@ -168,15 +297,43 @@
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) {
+ 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鐞嗙墖浠诲姟绫诲瀷
+ MestoPlc();
+ }
}
+ // 鎵爜澧炲姞闃熷垪浠诲姟
+ public boolean scan(String address) {
+ List<Short> list = S7control.getinstance().ReadWord(address, 1);// 杩斿洖涓簍ure鏃朵负1
+ boolean listbool = list.contains((short) 1);
+ return listbool;
+ }
+
+ public void MestoPlc() {
+ while (true) {
+ String currentValue = plcmes.getPlcParameter("MESToPLC").getValue();
+ // 妫�鏌� MESToPLC 鐨勫�兼槸鍚︿负 0
+ if (currentValue.equals("1")) {
+ System.out.println("鍙戦�佸惎鍔ㄥ瓧鐜板湪涓�1,鍋滄寰幆鍐欏叆");
+ break; // 閫�鍑哄惊鐜�
+ }
+ // 濡傛灉涓嶄负 1锛岀户缁啓鍏�
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToPLC").getAddress(),(short) 1);// 浠诲姟鍙戦�佸瓧
+ System.out.println("缁х画鍐欏叆 MESToPLC,褰撳墠鍊�:" + currentValue);
+ try {
+ Thread.sleep(100); // 渚嬪姣忕妫�鏌ヤ竴娆�
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
}
--
Gitblit v1.8.0