| | |
| | | try{ |
| | | if (Constants.RECORD_DATA.equals(tab)) { //出入站 |
| | | if (Constants.ONE.equals(valueString)) {//入站 |
| | | if(Constants.OP040_OP160.contains(device)){ |
| | | if(Constants.OP040_OP160.contains(device)){//人工工位 |
| | | Object snCodeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".SNCode").getValue(); |
| | | if (ObjectUtil.isNull(snCodeObjcet)){ |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); |
| | |
| | | WebSocketUsers.sendMessageToUserByText(map.get(device), productNum); |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(11).build()); |
| | | } |
| | | }else { |
| | | }else {//自动工位 |
| | | //所有进站将进站时间写给PLC |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String currentDate = dateFormat.format(new Date()); |
| | | miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".StartTime").value(currentDate).build()); |
| | | |
| | | Integer recordDataDone = 11; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(recordDataDone).build()); |
| | | } |
| | | |
| | | } else if(Constants.TWO.equals(valueString)){//出站 |
| | | if(Constants.OP040_OP160.contains(device)){//人工工位 |
| | | WebSocketUsers.sendMessageToUserByText(map.get(device), "END"); |
| | | }else{//自动工位 |
| | | //先判断是否有产品SN |
| | | //先判断是否有产品SNy |
| | | Object snCodeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".SNCode").getValue(); |
| | | Object orderObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".WorkOrderNumber").getValue(); |
| | | if (ObjectUtil.isNull(snCodeObjcet)){ |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(25).build()); |
| | | }else { |
| | | //所有出站将出站时间写给PLC |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String currentDate = dateFormat.format(new Date()); |
| | | miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".StopTime").value(currentDate).build()); |
| | | |
| | | Integer result = 21; |
| | | String snCode = snCodeObjcet.toString();//产品SN |
| | | String orderNumber = orderObjcet.toString();//工单号 |
| | |
| | | if (ObjectUtil.isNotNull(stationStatusObjcet)) { |
| | | String stationStatus = stationStatusObjcet.toString(); |
| | | if (Constants.OP010.equals(device)) { |
| | | updateOrderStatus(snCode, "3");//OP010工位更新工单状态为执行中 |
| | | reportFactoryMes(snCode, device, format.format(new Date()));//工厂MES报工 |
| | | CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { |
| | | updateOrderStatus(snCode, "3");//OP010工位更新工单状态为执行中 |
| | | reportFactoryMes(snCode, device, format.format(new Date()));//工厂MES报工 |
| | | }); |
| | | } |
| | | result = savePassingStation(thoroughfare, device, snCode, orderNumber, stationStatus);//保存过站 |
| | | if (result == 21) { |
| | |
| | | } |
| | | }else if(Constants.SCREW.equals(tab)){ |
| | | List<String> list = new ArrayList<>(); |
| | | String[] suffixes = {"Torque", "Angle", "TorqueResult", "AngleResult"}; |
| | | String[] suffixes = {"Torque1", "Angle1", "TorqueResult1", "AngleResult1"}; |
| | | |
| | | for (String suffix : suffixes) { |
| | | String string = thoroughfare + "." + device + "." + suffix; |
| | |
| | | Date startTime = new Date(); |
| | | ReadWriteEntity startTimeRead = miloService.readFromOpcUa(thoroughfare + "." + device + ".StartTime");//进站时间 |
| | | if (ObjectUtil.isNotNull(startTimeRead.getValue())){ |
| | | startTime = format.parse(TimeUtil.test(TimeUtil.stringProcessing(startTimeRead.getValue().toString()))); |
| | | startTime = format.parse(startTimeRead.getValue().toString()); |
| | | }else{ |
| | | result = 23; |
| | | log.info("读取到工位{}的StartTime数据:{},返回RecordDataDone的值为{}",device,"IS NULL!",result); |
| | |
| | | sb.append(']'); // 添加右方括号 |
| | | return sb.toString(); |
| | | } |
| | | |
| | | /* public static void main(String[] args) { |
| | | SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); |
| | | String currentDate = dateFormat.format(new Date()); |
| | | System.out.println(currentDate); |
| | | }*/ |
| | | } |