From 2fbce7d8c0b7e5b055bb7ab77e58b1ec9ce61885 Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期一, 24 六月 2024 19:00:22 +0800 Subject: [PATCH] 1,优化人工工位参数采集temp表删除方法 pushGeelycvMesFeedback 2,优化人工工位更新过站记录方法 workpieceRelease 3,优化未绑定小车码弹框提示 4,优化人工工位扫码重复会添加参数采集记录的问题及拧紧数据会添加上物料采集上的问题 --- jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 199 ++++++++++++++++++++++++++----------------------- 1 files changed, 107 insertions(+), 92 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java index 18c3ed1..52c039b 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java @@ -24,6 +24,8 @@ import com.jcdm.main.plcserver.conf.OPCElement; import com.jcdm.main.plcserver.util.TimeUtil; import com.jcdm.main.restful.factoryMes.service.RestfulService; +import com.jcdm.main.restful.qingYan.doman.ChildVO; +import com.jcdm.main.restful.qingYan.doman.ParentVO; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.runner.subscription.SubscriptionCallback; import com.kangaroohy.milo.service.MiloService; @@ -35,6 +37,7 @@ import javax.websocket.Session; import java.text.SimpleDateFormat; +import java.time.Instant; import java.util.*; import java.util.stream.Collectors; @@ -190,10 +193,10 @@ 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")){ @@ -251,7 +254,7 @@ } } catch (Exception e) { logger.info("璁㈤槄鏂规硶鎶ラ敊:{}"+e.getMessage()); - e.printStackTrace(); + logger.error("璁㈤槄鏂规硶鎶ラ敊",e); } } @@ -268,67 +271,67 @@ /** * 鍑虹珯淇濆瓨鏁版嵁 */ - 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"; - if(device.equals("OP365")){ - try { - saveStationInfo365(thoroughfare,device); - }catch (Exception e){ - e.printStackTrace(); - } - } }else { read = read + "PACKCode"; } } - snCode = miloService.readFromOpcUa(read).getValue().toString(); - - if(null == snCode || "".equals(snCode)){ - result = "22"; - }else{ - - String workOrderNo = ""; - String productCode = ""; - //2銆佷繚瀛樿繃绔欓噰闆嗘暟鎹� - Object orderNumberObject = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "WorkOrderNumber").getValue(); - if(orderNumberObject!=null){ - workOrderNo = orderNumberObject.toString(); - } - - Object productCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "ProductType").getValue(); - if(productCodeObject!=null){ - productCode = productCodeObject.toString(); - } - - saveStationInfo(snCode,thoroughfare,device,workOrderNo,productCode); - //3銆佷繚瀛樺弬鏁伴噰闆嗘暟鎹� - SaveParamData(snCode,thoroughfare,device,workOrderNo,productCode); - - //濡傛灉鏄湯灏惧伐绔欒鎶ュ伐 - if(device.equals("OP500")){ - RestfulService.getWorkReportResultFeedback(snCode,device,format.format(new Date())); - //1銆佹洿鏂板伐鍗曚俊鎭� - updateOrderInfo(snCode); - } - try{ - daParamCollectionService.pushGeelycvMesFeedback(snCode,device); + if(device.equals("OP365")){ + try { + saveStationInfo365(thoroughfare,device); }catch (Exception e){ + e.printStackTrace(); } - result = "21"; + }else { + snCode = miloService.readFromOpcUa(read).getValue().toString(); + + if(null == snCode || "".equals(snCode)){ + String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(Integer.valueOf("22")).build()); + }else{ + + String workOrderNo = ""; + String productCode = ""; + //2銆佷繚瀛樿繃绔欓噰闆嗘暟鎹� + Object orderNumberObject = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "WorkOrderNumber").getValue(); + if(orderNumberObject!=null){ + workOrderNo = orderNumberObject.toString(); + } + + Object productCodeObject = miloService.readFromOpcUa(thoroughfare + "." + device + "." + "ProductType").getValue(); + if(productCodeObject!=null){ + productCode = productCodeObject.toString(); + } + + saveStationInfo(snCode,thoroughfare,device,workOrderNo,productCode); + //3銆佷繚瀛樺弬鏁伴噰闆嗘暟鎹� + List<DaParamCollection> daParamCollectionList = SaveParamData(snCode,thoroughfare,device,workOrderNo,productCode); + + //濡傛灉鏄湯灏惧伐绔欒鎶ュ伐 + if(device.equals("OP500")){ + RestfulService.getWorkReportResultFeedback(snCode,device,format.format(new Date())); + //1銆佹洿鏂板伐鍗曚俊鎭� + updateOrderInfo(snCode); + } + + try{ + daParamCollectionService.automaticWorkstationPushGeelycvMesFeedback(snCode,device,daParamCollectionList); + }catch (Exception e){ + } + } } - }catch (Exception e) { - System.out.println(e.getMessage()); + logger.error("鍑虹珯淇濆瓨鏁版嵁寮傚父锛�"+e); } - return result; } @@ -366,6 +369,7 @@ * 淇濆瓨杩囩珯閲囬泦 */ 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+"."; @@ -384,13 +388,16 @@ daPassingStationCollection.setOutboundTime(format.parse(TimeUtil.test(end)));//鍑虹珯鏃堕棿 daPassingStationCollection.setOutRsSign(stationStatus);//鍑虹珯鏄惁鍚堟牸 daPassingStationCollectionService.insertDaPassingStationCollection(daPassingStationCollection); + logger.info("缁撴潫宸ヤ綅{}-鏂规硶saveStationInfo",device); } - public static void SaveParamData(String packCode,String thoroughfare,String device,String workOrderNo,String productType) throws Exception { + 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); list = collectionParamConfService.selectDaCollectionParamConfList(daCollectionParamConf); + List<DaParamCollection> daParamCollectionlist = new ArrayList<>(); List<String> nodeIdList = list.stream().map(info -> { String nodeid = info.getGatherAddress(); @@ -399,53 +406,51 @@ 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(" "); } - } - List<DaParamCollection> daParamCollectionlist = new ArrayList<>(); - 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(); - 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); } - addBaseData(workOrderNo,productType,device,packCode); - + 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; } - public static void addBaseData(String workOrderNo,String productCode,String locationCode,String packCode){ + public static List<DaParamCollection> addBaseData(String workOrderNo,String productCode,String locationCode,String packCode){ Map<String, String> map = new HashMap<>(); map.put("GC", "鍗楁禂宸ュ巶"); map.put("CXBH", "Pack绾�"); @@ -468,6 +473,7 @@ confList.add(saveData); }); daParamCollectionService.insertBatch(confList); + return confList; } public static void getFactoryOrder(String locationCode){ @@ -512,13 +518,22 @@ 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(','); // 娣诲姞閫楀彿锛堥櫎浜嗘渶鍚庝竴涓厓绱狅級 @@ -589,10 +604,10 @@ } daPassingStationCollectionService.saveBeachDaPassingStationCollection(passingStationCollections); miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(21).build()); - return; + logger.info("宸ヤ綅{}鍥炲21",device); + }else { miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(22).build()); - return; } } -- Gitblit v1.9.3