package com.example.springboot.component; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.example.springboot.service.JdbcConnections; import com.example.springboot.service.SpianService; import com.example.springboot.entity.Glass; import com.example.springboot.mapper.AlarmMapper; import com.example.springboot.mapper.SpianMapper; public class PlcHold extends Thread { private AlarmMapper alarmMapper; @Autowired private JdbcConnections jdbcConnections; private SpianMapper spianMapper; private SpianService spianService; @Override public void run() { while (this != null) { try { Thread.sleep(500); } catch (InterruptedException e) { // \\ TODO Auto-generated catch block e.printStackTrace(); } spianService = WebSocketServer.applicationContext.getBean(SpianService.class); spianMapper = WebSocketServer.applicationContext.getBean(SpianMapper.class); jdbcConnections = WebSocketServer.applicationContext.getBean(JdbcConnections.class); // 根据玻璃id获取订单号,单独数据源 // try { // Glass glass = jdbcConnections.selectGlass(112); // // System.out.println(glass.getOrderId()); // } catch (SQLException e) { // // TODO Auto-generated catch block // e.printStackTrace(); // } spianService.selectAll((short)257); //判断进片请求 List datas1List = S7control.getinstance().ReadWord("DB106.24", 1); List datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1); if (datas1List != null && datas1ListState != null) { // 获取prc进片请求数据 boolean exist = datas1List.contains((short) 1); // 获取进片车状态 boolean exist1 = datas1ListState.contains((short) 0); String glassid=""; // 进片请求为1时 if (exist == true) { // 当进片车空闲时 if (exist1 == true) { // 获取进片id List datas1ListID = S7control.getinstance().ReadWord("DB106.26", 1); if (datas1ListID != null) { // 获取玻璃id for (Short list1 : datas1ListID) { glassid=glassid.concat(list1.toString()); } spianService.selectAll(Short.parseShort(glassid)); } } // System.out.println(exist); } } //spianService.selectAll((short) 111); List outlist = S7control.getinstance().ReadWord("DB106.20", 1); // 出片车状态 boolean outstate=false;//出片车空闲判断 if (outlist != null) { // 判断按订单出片 outstate = outlist.contains((short) 0); Glass glass=spianMapper.SelectDBOut();//判断是否有调拨后的出片任务未完成 if(outstate== true ){ if(glass.getId()==2){ spianService.selectout2(glass.getGlassId().toString()); } } } if (outstate == true) { // 出片车状态空闲时 String orderid = spianMapper.SelectOrderout(); if (orderid != null) { spianService.selectout(orderid); } } // 查询数据库 // 推送到前端 } } }