springboot-vue3/src/main/java/com/example/springboot/component/PlcHold.java
@@ -21,90 +21,93 @@
  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
        // \\ 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();
      // }
      //判断进片请求
      List<Short> datas1List = S7control.getinstance().ReadWord("DB106.24", 1);
      List<Short> datas1ListState = S7control.getinstance().ReadWord("DB106.8", 1);
      
      //根据玻璃id获取订单号
      try {
          Glass glass=jdbcConnections.selectGlass(112);
      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<Short> datas1ListID = S7control.getinstance().ReadWord("DB106.26", 13);
            if (datas1ListID != null) {
              // 获取玻璃id
              for (Short list1 : datas1ListID) {
                glassid=glassid.concat(list1.toString());
              }
              spianService.selectAll(Short.parseShort(glassid));
            }
          //System.out.println(glass.getOrderId());
        } catch (SQLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
      //spianService.selectout("11");
      //判断进片请求
       List<Short> datas1List=S7control.getinstance().ReadWord("DB106.24", 1);
       List<Short> 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);
      //进片请求为1时
       if(exist=true){
        //当进片车空闲时
        if(exist1=true){
        //获取进片id
        List<Short> datas1ListID=S7control.getinstance().ReadWord("DB106.26", 13);
        //获取玻璃id
        for(Short list1:datas1ListID){
            spianService.selectAll((short)list1);
         }
        }
        //System.out.println(exist);
       }
     }
     List<Short> outlist=S7control.getinstance().ReadWord("DB106.20", 1); //出片车状态
     List<Short> outlist2=S7control.getinstance().ReadWord("DB106.20", 1); //出片任务完成
     List<Short>ceshi1=new ArrayList<Short>();//出片车状态
     List<Short>ceshi2=new ArrayList<Short>();//出片任务完成
     ceshi1.add((short)0);
     ceshi2.add((short)1);
     if(outlist!=null && outlist2!=null){
      //判断按订单出片
      boolean outstate = outlist.contains((short)0);
      boolean outstate2 = outlist2.contains((short)1);
      if(outstate=true){ //出片车状态空闲时
        if(outstate2=true){  //出片车任务完成时
           String orderid=spianMapper.SelectOrderout();
           if(orderid!=null){
           spianService.selectout(orderid);
        }
          }
          // System.out.println(exist);
        }
      }
      //spianService.selectAll((short) 111);
      
      List<Short> 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);
            }
        }
      
      // 查询数据库
      // 推送到前端
    }
  }
}