| | |
| | | if(automaticList.stream().anyMatch(s -> s.equals(device))){ |
| | | //自动工位 |
| | | //出站保存数据 |
| | | recordDataDoneValue = outSaveDate(thoroughfare,device); |
| | | outSaveDate(thoroughfare,device); |
| | | //记录数据完成 |
| | | String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf(recordDataDoneValue)).build()); |
| | | /*String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf(recordDataDoneValue)).build());*/ |
| | | }else { |
| | | //手动工位 |
| | | // if(device.contains("OP330")){ |
| | |
| | | /** |
| | | * 出站保存数据 |
| | | */ |
| | | public String outSaveDate(String thoroughfare,String device) { |
| | | public void outSaveDate(String thoroughfare,String device) { |
| | | String snCode = ""; |
| | | String result = ""; |
| | | String read = thoroughfare + "." + device + "."; |
| | | |
| | | try { |
| | | if(nullList.stream().noneMatch(s -> s.equals(device))){ |
| | | if(nullList.stream().noneMatch(s -> s.equals(device))){//删除…………………………………………………… |
| | | if(moduleCodeList.stream().anyMatch(s -> s.equals(device))){ |
| | | read = read + "ModuleCode"; |
| | | |
| | | }else { |
| | | read = read + "PACKCode"; |
| | | } |
| | | } |
| | | if(device.equals("OP365")){ |
| | | try { |
| | | result = saveStationInfo365(thoroughfare,device); |
| | | return result; |
| | | // return saveStationInfo365(thoroughfare,device); |
| | | // return result; |
| | | saveStationInfo365(thoroughfare,device); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | } |
| | |
| | | snCode = miloService.readFromOpcUa(read).getValue().toString(); |
| | | |
| | | if(null == snCode || "".equals(snCode)){ |
| | | result = "22"; |
| | | String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf("22")).build()); |
| | | }else{ |
| | | |
| | | String workOrderNo = ""; |
| | |
| | | //1、更新工单信息 |
| | | updateOrderInfo(snCode); |
| | | } |
| | | |
| | | try{ |
| | | daParamCollectionService.automaticWorkstationPushGeelycvMesFeedback(snCode,device,daParamCollectionList); |
| | | }catch (Exception e){ |
| | | } |
| | | result = "21"; |
| | | |
| | | } |
| | | |
| | | } |
| | | }catch (Exception e) { |
| | | logger.error("出站保存数据异常:"+e); |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | |
| | | * 保存过站采集 |
| | | */ |
| | | public void saveStationInfo(String packCode,String thoroughfare,String device,String workOrderNo,String productCode) throws Exception { |
| | | logger.info("进入工位{}-方法saveStationInfo",device); |
| | | SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.US); |
| | | sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); // CST通常表示中国标准时间,即东八区 |
| | | String prefix = thoroughfare+"."+device+"."; |
| | |
| | | daPassingStationCollection.setOutboundTime(format.parse(TimeUtil.test(end)));//出站时间 |
| | | daPassingStationCollection.setOutRsSign(stationStatus);//出站是否合格 |
| | | daPassingStationCollectionService.insertDaPassingStationCollection(daPassingStationCollection); |
| | | logger.info("结束工位{}-方法saveStationInfo",device); |
| | | } |
| | | |
| | | public static List<DaParamCollection> SaveParamData(String packCode,String thoroughfare,String device,String workOrderNo,String productType) throws Exception { |
| | | logger.info("进入工位{}-方法SaveParamData",device); |
| | | List<DaCollectionParamConf> list; |
| | | DaCollectionParamConf daCollectionParamConf = new DaCollectionParamConf(); |
| | | daCollectionParamConf.setGatherAddress(thoroughfare+ "." + device); |
| | |
| | | |
| | | if(!nodeIdList.isEmpty()){ |
| | | List<ReadWriteEntity> readWriteEntityList = miloService.readFromOpcUa(nodeIdList); |
| | | for (int i = 0; i < readWriteEntityList.size(); i++) { |
| | | for(int i=0;i<nodeIdList.size();i++){ |
| | | if(readWriteEntityList.get(i).getValue() == null){ |
| | | readWriteEntityList.get(i).setValue(" "); |
| | | } |
| | | } |
| | | |
| | | for(int i=0;i<nodeIdList.size();i++){ |
| | | if(!readWriteEntityList.get(i).getValue().toString().equals("0.0")){ |
| | | String tt = readWriteEntityList.get(i).getValue().toString(); |
| | | DaParamCollection ParamCollection = new DaParamCollection(); |
| | | ChildVO childVO = new ChildVO(); |
| | | ParamCollection.setParamCode(list.get(i).getCollectParameterId()); |
| | | ParamCollection.setLocationCode(device); |
| | | if(tt.contains("Time")){ |
| | | // String str = TimeUtil.getTimestamp(TimeUtil.stringProcessing(tt)); |
| | | // ParamCollection.setParamValue(str); |
| | | ParamCollection.setParamValue(TimeUtil.test(TimeUtil.stringProcessing(tt))); |
| | | }else { |
| | | ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); |
| | | } |
| | | ParamCollection.setSfcCode(packCode); |
| | | if(device.contains("OP360")){ |
| | | String node = nodeIdList.get(i); |
| | | Object value = miloService.readFromOpcUa("PACK.OP360.ModuleSNCode"+node.charAt(node.length()-1)).getValue(); |
| | | if(value!=null){ |
| | | ParamCollection.setModuleCode(value.toString()); |
| | | } |
| | | } |
| | | ParamCollection.setParamName(list.get(i).getCollectParameterName()); |
| | | ParamCollection.setParamUpper(list.get(i).getParamUpper()); |
| | | ParamCollection.setParamLower(list.get(i).getParamLower()); |
| | | ParamCollection.setUnit(list.get(i).getCollectParameterUnit()); |
| | | //ParamCollection.setState("合格"); |
| | | ParamCollection.setType(list.get(i).getCollectParameterType()); |
| | | ParamCollection.setCollectionTime(new Date()); |
| | | ParamCollection.setWorkOrderNo(workOrderNo); |
| | | ParamCollection.setProductCode(productType); |
| | | daParamCollectionlist.add(ParamCollection); |
| | | // daParamCollectionService.insertDaParamCollection(ParamCollection); |
| | | String paramValue = readWriteEntityList.get(i).getValue().toString(); |
| | | DaParamCollection ParamCollection = new DaParamCollection(); |
| | | ParamCollection.setParamCode(list.get(i).getCollectParameterId()); |
| | | ParamCollection.setLocationCode(device); |
| | | if(paramValue.contains("Time")){ |
| | | ParamCollection.setParamValue(TimeUtil.test(TimeUtil.stringProcessing(paramValue))); |
| | | }else { |
| | | ParamCollection.setParamValue(readWriteEntityList.get(i).getValue().toString()); |
| | | } |
| | | ParamCollection.setSfcCode(packCode); |
| | | if(device.contains("OP360")){ |
| | | String node = nodeIdList.get(i); |
| | | Object value = miloService.readFromOpcUa("PACK.OP360.ModuleSNCode"+node.charAt(node.length()-1)).getValue(); |
| | | if(value!=null){ |
| | | ParamCollection.setModuleCode(value.toString()); |
| | | } |
| | | } |
| | | ParamCollection.setParamName(list.get(i).getCollectParameterName()); |
| | | ParamCollection.setParamUpper(list.get(i).getParamUpper()); |
| | | ParamCollection.setParamLower(list.get(i).getParamLower()); |
| | | ParamCollection.setUnit(list.get(i).getCollectParameterUnit()); |
| | | ParamCollection.setType(list.get(i).getCollectParameterType()); |
| | | ParamCollection.setCollectionTime(new Date()); |
| | | ParamCollection.setWorkOrderNo(workOrderNo); |
| | | ParamCollection.setProductCode(productType); |
| | | daParamCollectionlist.add(ParamCollection); |
| | | } |
| | | daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist); |
| | | |
| | | } |
| | | String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf("21")).build()); |
| | | logger.info("给工位{}写了21",device); |
| | | daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist); |
| | | List<DaParamCollection> baseDataList = addBaseData(workOrderNo,productType,device,packCode); |
| | | for (int i = 0; i < baseDataList.size(); i++){ |
| | | daParamCollectionlist.add(baseDataList.get(i)); |
| | | } |
| | | logger.info("结束工位{}-方法SaveParamData",device); |
| | | return daParamCollectionlist; |
| | | } |
| | | |
| | |
| | | try { |
| | | value = Float.parseFloat(part); // 尝试将字符串转换为浮点数 |
| | | String replacement; |
| | | if (value == 1f) { |
| | | if(i<2){ |
| | | replacement = part; |
| | | }else{ |
| | | if (value == 1f) { |
| | | replacement = "OK"; |
| | | } else{ |
| | | replacement = "NG"; |
| | | } |
| | | } |
| | | /* if (value == 1f) { |
| | | replacement = "OK"; |
| | | } else if (value == 2f) { |
| | | replacement = "NG"; |
| | | } else { |
| | | replacement = part; // 如果不是1或2,则保持不变 |
| | | } |
| | | }*/ |
| | | sb.append(replacement); |
| | | if (i < parts.length - 1) { |
| | | sb.append(','); // 添加逗号(除了最后一个元素) |
| | |
| | | /** |
| | | * 保存过站采集 |
| | | */ |
| | | public String saveStationInfo365(String thoroughfare,String device) throws Exception { |
| | | public void saveStationInfo365(String thoroughfare,String device) throws Exception { |
| | | String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; |
| | | String prefix = thoroughfare+"."+device+"."; |
| | | List<DaPassingStationCollection> passingStationCollections = new ArrayList<>(); |
| | |
| | | passingStationCollections.add(daPassingStationCollection); |
| | | } |
| | | daPassingStationCollectionService.saveBeachDaPassingStationCollection(passingStationCollections); |
| | | // miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(21).build()); |
| | | return "21"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(21).build()); |
| | | logger.info("工位{}回复21",device); |
| | | |
| | | }else { |
| | | // miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(22).build()); |
| | | return "22"; |
| | | miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(22).build()); |
| | | } |
| | | } |
| | | |