package com.example.springboot.component; import cn.hutool.json.JSONObject; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.example.springboot.entity.Out_slice; import com.example.springboot.entity.Queue; import com.example.springboot.entity.StorageCage; import com.example.springboot.entity.alarmmg; import com.example.springboot.mapper.HomeMapper; import com.example.springboot.mapper.SpianMapper; import com.example.springboot.service.JdbcConnections; import com.example.springboot.service.North_Glass_Buffer1Service; import com.example.springboot.service.SpianService; public class Plchome extends Thread { @Autowired private HomeMapper homeMapper; private SpianMapper spianMapper; private SpianService spianService; private North_Glass_Buffer1Service north_Glass_Buffer1Service; private JdbcConnections dbserve; //出片队列是否允许出片 public static Boolean isAllowQueue=true; //铝框id public static String FrameNo; //是否需要手动确认玻璃 public static Boolean isConfirm=false; // public static Map b=new HashMap<>(); // b.put() @Override public void run() { while (this != null) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } JSONObject jsonObject = new JSONObject(); // 注入mapper homeMapper = WebSocketServer.applicationContext.getBean(HomeMapper.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); spianService = WebSocketServer.applicationContext.getBean(SpianService.class); north_Glass_Buffer1Service = WebSocketServer.applicationContext.getBean(North_Glass_Buffer1Service.class); // 笼子使用情况 List tableData = homeMapper.selectAll(); jsonObject.append("tableData", tableData); // 格理片笼格子状态 List cagelist1 = homeMapper.selectRack1(); List cagelist2 = homeMapper.selectRack2(); List cagelist3 = homeMapper.selectRack3(); List cagelist4 = homeMapper.selectRack4(); jsonObject.append("cagelist1", cagelist1); jsonObject.append("cagelist2", cagelist2); jsonObject.append("cagelist3", cagelist3); jsonObject.append("cagelist4", cagelist4); // 进出片任务 List tasklist1 = homeMapper.selectinout(3); List tasklist2 = homeMapper.selectinout(2); jsonObject.append("tasklist1", tasklist1); jsonObject.append("tasklist2", tasklist2); // 查询报警信息 List alarmmg = homeMapper.SelectAlarmmgInfo(); jsonObject.append("alarmmg", alarmmg); // 读去Plc进片车与出片车位置W // List addressList = new ArrayList(); // addressList.add("DB106.12"); // addressList.add("DB106.0"); // List paramlist = S7control.getinstance().ReadWord(addressList); // if (paramlist != null) { // jsonObject.append("params", paramlist); // } // // 获取进片车状态 // List datas1ListState = S7control.getinstance().ReadWord("DB106.8", // 1);// 获取进片车状态 // boolean exist1 = datas1ListState.contains((short) 0); // jsonObject.append("zhuangtai", exist1); // //获取进片玻璃信息 // List inglassInfo = S7control.getinstance().ReadWord("DB106.24", 1); // if (inglassInfo != null) { // if (inglassInfo.size() > 0) // jsonObject.append("loadglassheight", inglassInfo.get(0) * 70); // } // 伍 获取进是否有待确认的玻璃id String queid = spianMapper.Selectqueueid(); int state = spianMapper.Selectqueuestate(); jsonObject.append("queid", queid); jsonObject.append("state", state); // 获取扫码位与上片位玻璃信息 Queue form2 = homeMapper.GetQueueInfo(2); Queue form3 = homeMapper.GetQueueInfo(1); if(form2.getglassId()!=null&&form2.getglassId()!=""){ jsonObject.append("form2", form2); } if(form3.getglassId()!=null&&form3.getglassId()!=""){ jsonObject.append("form3", form3); } // 获取出片队列信息 List listoutslice = homeMapper.SelectProductionqueue(); for (Out_slice out_slice : listoutslice) { out_slice.setstorageCage(homeMapper.SelectStorageGlassById(out_slice.getGlassId())); } jsonObject.append("listoutslice", listoutslice); //获取当前出片队列状态 jsonObject.append("isAllowQueue",Plchome.isAllowQueue); //获取铝框idDB106.DBW64 // String frameno=spianService.queGlassid("DB106.24",14).toString(); // if(frameno!=Plchome.FrameNo){ // Plchome.FrameNo=frameno; // } // Plchome.FrameNo="123"; // try { // north_Glass_Buffer1Service.AddOutSliceS(Plchome.FrameNo); // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } //是否需要人工确认上片玻璃 jsonObject.append("isConfirm", isConfirm); //铝框线交互 // //铝框id请求字 // List framerequest = S7control.getinstance().ReadWord("铝框id请求字地址", 1); // if(framerequest!=null){ // //铝框id // String franmeno= spianService.queGlassid("铝框id地址", 14).toString(); // String position; // try { // position=dbserve.SelectPositionByFrameBarcode(franmeno); // } catch (SQLException e) { // // TODO Auto-generated catch block // position="0"; // e.printStackTrace(); // } // Short send; // if(position=="0"){ // send=0; // }else{ // send=1; // } // S7control.getinstance().WriteWord("铝框翻转发送地址", (short)send); // } dbserve = WebSocketServer.applicationContext.getBean(JdbcConnections.class); boolean dbconnected = false; try { dbserve.getConn(); dbconnected = true; } catch (Exception e) { // TODO: handle exception dbconnected = false; } jsonObject.append("dbconnected", dbconnected); // jsonObject.append("params", new short[] { 30, 40, }); WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Home"); if (sendwServer != null) { sendwServer.sendMessage(jsonObject.toString()); } } } }