jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java
@@ -112,14 +112,14 @@ String thoroughfare = Constants.thoroughfareMap.get(bsFormulaChildInfo.getProcessesCode());//获取通道 String str = thoroughfare+"."+bsFormulaChildInfo.getProcessesCode()+".MESScrew"; miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(stepNumber).build());//拧紧步骤 if(bsFormulaChildInfo.getProcessesCode().equals("OP230")){ if("OP230".equals(bsFormulaChildInfo.getProcessesCode())){ //所有进站将进站时间写给PLC SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentDate = dateFormat.format(new Date()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".StartTime").value(currentDate).build()); miloService.writeToOpcUa(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".SNCode").value(bsFormulaChildInfo.getSfcBarcode()).build()); miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".RecordDataDone").value(11).build()); }else if(bsFormulaChildInfo.getProcessesCode().equals("OP220")){ }else if("OP220".equals(bsFormulaChildInfo.getProcessesCode())){ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + bsFormulaChildInfo.getProcessesCode() + ".RecordDataDone").value(11).build()); } jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java
@@ -528,17 +528,19 @@ @Override public AjaxResult updateTighteningFormula(BsFormulaChildInfo bsFormulaChildInfo) { Boolean b = true; BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo(); getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode()); getMaterTwo.setOperationType("2"); List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo); List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList()); for (String s : collect) { if(s.equals("")){ return AjaxResult.error("扫码未完成,禁止拧紧操作!"); if(!"OP100".equals(bsFormulaChildInfo.getLocationCode())){ BsFormulaChildInfo getMaterTwo = new BsFormulaChildInfo(); getMaterTwo.setProductCode(bsFormulaChildInfo.getProductCode()); getMaterTwo.setProcessesCode(bsFormulaChildInfo.getLocationCode()); getMaterTwo.setOperationType("2"); List<BsFormulaChildInfo> operationType = bsFormulaChildInfoMapper.selectBsFormulaChildInfoList(getMaterTwo); List<String> collect = operationType.stream().map(BsFormulaChildInfo::getResults).collect(Collectors.toList()); for (String s : collect) { if(s.equals("")){ return AjaxResult.error("扫码未完成,禁止拧紧操作!"); } } } //添加拧紧参数-参数采集表 DaParamCollection daParamCollection = new DaParamCollection(); daParamCollection.setParamCode(bsFormulaChildInfo.getParamCode()); jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
@@ -91,7 +91,7 @@ //主线人工工位 Constants.OP040_OP160.add(Constants.OP040); //Constants.OP040_OP160.add(Constants.OP060); Constants.OP040_OP160.add(Constants.OP080); Constants.OP040_OP160.add(Constants.OP070); Constants.OP040_OP160.add(Constants.OP100); Constants.OP040_OP160.add(Constants.OP120_2); jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java
@@ -109,11 +109,11 @@ if (Constants.RECORD_DATA.equals(tab)) { //出入站 if (Constants.ONE.equals(valueString)) {//入站 if(Constants.OP040_OP160.contains(device)){//人工工位 Object snCodeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".SNCode").getValue(); if (ObjectUtil.isNull(snCodeObjcet)){ Object snCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".SNCode").getValue(); if (ObjectUtil.isNull(snCodeObject)){ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); }else{ String productNum = snCodeObjcet.toString().trim(); String productNum = snCodeObject.toString().trim(); if(productNum.length()<10){ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(12).build()); }else{ @@ -145,14 +145,14 @@ WebSocketUsers.sendMessageToUserByText(map.get(device), "END"); } else{//自动工位 //先判断是否有产品SN Object snCodeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".SNCode").getValue(); Object snCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".SNCode").getValue(); Object orderObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".WorkOrderNumber").getValue(); if (ObjectUtil.isNull(snCodeObjcet)){ if (ObjectUtil.isNull(snCodeObject)){ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(thoroughfare + "." + device + ".RecordDataDone").value(25).build()); }else { Integer result = 21; String snCode = snCodeObjcet.toString().trim();//产品SN String snCode = snCodeObject.toString().trim();//产品SN String orderNumber = orderObjcet.toString().trim();//工单号 if(snCode.length()<10){ result = 22; @@ -167,11 +167,11 @@ if (ObjectUtil.isNotNull(stationStatusObjcet)) { String stationStatus = stationStatusObjcet.toString(); if (Constants.OP010.equals(device)) { Object housingCodeObjcet = miloService.readFromOpcUa(thoroughfare + "." + device + ".HousingCode").getValue();//壳体条码,存到工单,返修用 if (ObjectUtil.isNull(housingCodeObjcet)){ Object housingCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + ".HousingCode").getValue();//壳体条码,存到工单,返修用 if (ObjectUtil.isNull(housingCodeObject)){ result = 25; }else{ String housingCode = housingCodeObjcet.toString();//壳体条码,存到工单,返修用 String housingCode = housingCodeObject.toString();//壳体条码,存到工单,返修用 if(housingCode.length()<10){ result = 25; }else{ @@ -397,7 +397,7 @@ JSONObject dataObject = jsonObject.getJSONObject("data"); String code = jsonObject.getStr("code"); // 判断接单是否成功 if(code.equals("success")) { if("success".equals(code)) { OmProductionOrdeInfo omProductionOrdeInfo = new OmProductionOrdeInfo(); omProductionOrdeInfo.setWorkOrderNo(dataObject.getStr("productionOrderNum")); omProductionOrdeInfo.setProductNum(dataObject.getStr("productNum")); @@ -460,27 +460,30 @@ * 工厂MES报工 * @param productNum 通道 * @param stationCode 工位 * @param confirmTime 物料号 * @param confirmTime 时间 * @throws Exception e */ //{"code":"success","data":{"productNum":"LCV123456P0600036","stationCode":"1HZ01","resultCode":"S","resultText":"报工成功"},"message":"API调用成功"} public static void reportFactoryMes(String productNum, String stationCode, String confirmTime) public static void reportFactoryMes(String productNum,String stationCode,String confirmTime) { String result = ""; String url = Constants.FACTORY_EMS_UAT_GET_RUL + "workReportResultFeedback?siteCode="+Constants.FACTORY_EMS_SITE_CODE+"&stationCode="+stationCode+"&productNum="+productNum+"&confirmTime="+confirmTime; try { CompletableFuture<Void> cp1 = CompletableFuture.runAsync(() -> { log.info("请求工厂MES报工:入参device{},productNum:{}", stationCode, productNum); String url = Constants.FACTORY_EMS_UAT_GET_RUL + "workReportResultFeedback?siteCode="+Constants.FACTORY_EMS_SITE_CODE+"&stationCode="+stationCode+"&productNum="+productNum+"&confirmTime="+confirmTime; HttpResponse response = HttpRequest.get(url).execute(); /*HttpRequest httpRequest = HttpRequest.get(url);*/ String result = response.body(); log.info("请求工厂MES报工:出参:{}", result); }); log.info("执行工厂MES报工方法start,序列号{}工位号{}url{}",productNum,stationCode ,url); HttpResponse response = HttpRequest.get(url).execute(); //HttpRequest httpRequest = HttpRequest.get(url); result = response.body(); log.info("执行工厂MES报工方法第一次end,序列号{}工位号{}返回数据{}",productNum,stationCode ,result); }catch (Exception e){ throw new RuntimeException(e); }finally { if(result.isEmpty()){ HttpResponse response = HttpRequest.get(url).execute(); result = response.body(); log.info("执行工厂MES报工方法第二次end,序列号{}工位号{}返回数据{}",productNum,stationCode ,result); } } } public static String TightenTheConversionOkNg(String param){ // 去除首尾的方括号,然后按照逗号分割字符串 String[] parts = param.substring(1, param.length() - 1).split(","); jcdm-ui/src/views/main/kb/stationTerminal/index.vue
@@ -289,7 +289,7 @@ name: "stationTerminal", data() { return { text: 'P9900166410#T2342325325235235\n#V993983#SSW002.005#HHW001.001#NMCU#', text: 'P9900200461#T2408170000004 #V993983#SSW001.001#HHW001.001#NMCU', materialCode: '', // 物料编码 carCode: '', showInput: false, @@ -424,24 +424,6 @@ } }, // getWorkOrders(){ // if(this.headContent.sfcCode === '' || this.headContent.sfcCode === null){ // //接收工单 // const param = { // lineCode: this.headContent.processesCode // } // mozuReceivingWorkOrders(param).then(response => { // this.headContent.sfcCode = response.msg; // this.queryParams.productNum = response.msg; // this.getList() // this.cakeLamp.scanFinish = 1 // this.cakeLamp.startWork = 1 // this.cakeLamp.InPlace = 1 // }); // }else { // this.$message.error("已经有工单了,不能接收!"); // } // }, serialLink() { this.open1 = true }, @@ -538,16 +520,18 @@ async getList() { await listProductionOrde(this.queryParams).then(response => { let rowsData = response.rows[0]; console.log(rowsData) this.workpieceInformation.workOrderNo = rowsData.workOrderNo; this.workpieceInformation.productCode = rowsData.productCode; this.workpieceInformation.materialCode = rowsData.materialCode; this.workpieceInformation.planQty = rowsData.planQty; this.headContent.cardCode = rowsData.trolleyYard; if(rowsData){ this.workpieceInformation.workOrderNo = rowsData.workOrderNo; this.workpieceInformation.productCode = rowsData.productCode; this.workpieceInformation.materialCode = rowsData.materialCode; this.workpieceInformation.planQty = rowsData.planQty; this.headContent.cardCode = rowsData.trolleyYard; this.getListFormulaChild() this.workpieceInformation.inboundTime = this.getCurrentTime() }else { this.$message.error('系统没有此工单,请重新扫码!'); } }); this.getListFormulaChild() this.workpieceInformation.inboundTime = this.getCurrentTime() }, initializedData(){ @@ -564,7 +548,7 @@ this.cakeLamp.InPlace = 1 // this.test1() // this.test2() this.text = 'P9900166410#T'+this.headContent.sfcCode+'\n#V993983#SSW002.005#HHW001.001#NMCU#' this.text = 'P9900200461#T'+this.headContent.sfcCode+' #V993983#SSW001.001#HHW001.001#NMCU' } }); }, @@ -595,7 +579,7 @@ let qrCode = new QRCode('canvasWrapper1',{ width: 83, height: 83, text: 'P9900166410#T'+ this.headContent.sfcCode +'#V993983#SSW002.005#HHW001.001#NMCU#', text: 'P9900200461#T'+this.headContent.sfcCode+' #V993983#SSW001.001#HHW001.001#NMCU', colorDark: '#000', colorLight: '#fff' }) @@ -608,7 +592,7 @@ let qrCode = new QRCode('canvasWrapper2',{ width: 83, height: 83, text: 'P9900166410#T'+ this.headContent.sfcCode +'#V993983#SSW002.005#HHW001.001#NMCU#', text: 'P9900200461#T'+this.headContent.sfcCode+' #V993983#SSW001.001#HHW001.001#NMCU', colorDark: '#000', colorLight: '#fff' })