From a320dcc8a480436f2f6b3ef81fe6b607f080a64a Mon Sep 17 00:00:00 2001 From: admin <15939171744@163.com> Date: 星期三, 15 五月 2024 19:15:50 +0800 Subject: [PATCH] - --- jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java | 2 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java | 2 jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java | 13 +++ jcdm-ui/src/views/main/kb/stationTerminal/index.vue | 16 ++++- jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java | 29 +++++++++ jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java | 20 ++++++ jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java | 3 + jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js | 10 +++ jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java | 55 +++++++++++++++++ 9 files changed, 141 insertions(+), 9 deletions(-) diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java index 6814c17..6a5a950 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java +++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/controller/BsFormulaChildInfoController.java @@ -7,6 +7,8 @@ import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jcdm.main.constant.Constants; +import com.kangaroohy.milo.model.ReadWriteEntity; +import com.kangaroohy.milo.service.MiloService; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -39,12 +41,30 @@ @Autowired private IBsFormulaChildInfoService bsFormulaChildInfoService; + @Autowired + private MiloService miloService; + + /** + * 鎵爜纭 + */ + @GetMapping("/fistSetpNumber") + public void fistSetpNumber(BsFormulaChildInfo bsFormulaChildInfo) + { + try { + String str = "PACK."+bsFormulaChildInfo.getProcessesCode()+".MStepNumber"; + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(str).value(1).build()); + } catch (Exception e) { + throw new RuntimeException(e); + } + } + /** * 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛� */ @GetMapping("/noPageListFormulaChild") public TableDataInfo noPageListFormulaChild(BsFormulaChildInfo bsFormulaChildInfo) { + List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>() .eq(BsFormulaChildInfo::getProductCode,bsFormulaChildInfo.getProductCode()) .eq(BsFormulaChildInfo::getProcessesCode,bsFormulaChildInfo.getProcessesCode())); diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java index 66d188b..ee0cf8c 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java +++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/domain/BsFormulaChildInfo.java @@ -139,6 +139,9 @@ @TableField(exist = false) private Integer counts; + @TableField(exist = false) + private String productBarcode; + public String getParamName() { return paramName; } diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java index a555451..7bf0853 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/bs/formulaChild/service/impl/BsFormulaChildInfoServiceImpl.java @@ -15,8 +15,10 @@ import com.jcdm.framework.websocket.WebSocketUsers; import com.jcdm.main.da.paramCollection.domain.DaParamCollection; import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; +import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; +import com.jcdm.main.da.testDeviceInterface.service.IDaTestDeviceInterfaceService; import com.kangaroohy.milo.model.ReadWriteEntity; import com.kangaroohy.milo.service.MiloService; import org.aspectj.weaver.loadtime.Aj; @@ -51,6 +53,12 @@ @Autowired private DaPassingStationCollectionMapper daPassingStationCollectionMapper; + + @Autowired + private IDaTestDeviceInterfaceService daTestDeviceInterfaceService; + + @Autowired + private IDaParamCollectionService daParamCollectionService; Map<String, Session> map = WebSocketUsers.getUsers(); @@ -215,7 +223,7 @@ Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort()); try { - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber).build()); + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build()); } catch (Exception e) { throw new RuntimeException(e); } @@ -375,6 +383,7 @@ @Override public AjaxResult workpieceRelease(BsFormulaChildInfo bsFormulaChildInfo) { + daParamCollectionService.pushGeelycvMesFeedback(bsFormulaChildInfo.getProductBarcode(), bsFormulaChildInfo.getLocationCode()); List<BsFormulaChildInfo> list = bsFormulaChildInfoService.list(new LambdaQueryWrapper<BsFormulaChildInfo>() .eq(BsFormulaChildInfo::getProcessesCode, bsFormulaChildInfo.getLocationCode()) .eq(BsFormulaChildInfo::getProductCode, bsFormulaChildInfo.getProductCode())); @@ -415,7 +424,7 @@ Integer stepNumber = Integer.valueOf(bsFormulaChildInfos.get(0).getStepSort()); try { - miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber).build()); + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier("PACK."+bsFormulaChildInfo.getLocationCode()+".MStepNumber").value(stepNumber+1).build()); } catch (Exception e) { throw new RuntimeException(e); } diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java index 86b002f..38e1422 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/IDaPassingStationCollectionService.java @@ -72,4 +72,6 @@ void insertRepairRecordByIds(DaPassingStationCollection daPassingStationCollection); int jrmAddPassingStationCollection(DaPassingStationCollection daPassingStationCollection); + + void saveBeachDaPassingStationCollection(List<DaPassingStationCollection> list); } diff --git a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java index 8d5d721..d5ac935 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java +++ b/jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java @@ -5,14 +5,19 @@ //import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling; //import com.jcdm.main.bs.orderScheduling.mapper.BsOrderSchedulingMapper; //import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService; +import com.jcdm.main.da.paramCollection.mapper.DaParamCollectionMapper; import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection; import com.jcdm.main.da.passingStationCollection.mapper.DaPassingStationCollectionMapper; import com.jcdm.main.da.passingStationCollection.service.IDaPassingStationCollectionService; import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord; import com.jcdm.main.rm.repairRecord.mapper.RmRepairRecordMapper; +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -35,6 +40,9 @@ @Autowired private RmRepairRecordMapper rmRepairRecordMapper; + + @Resource + private SqlSessionFactory sqlSessionFactory; // @Autowired // private BsOrderSchedulingMapper bsOrderSchedulingMapper; @@ -157,4 +165,25 @@ } return 1; } + + @Override + public void saveBeachDaPassingStationCollection(List<DaPassingStationCollection> list) { + // ExecutorType.SIMPLE: 杩欎釜鎵ц鍣ㄧ被鍨嬩笉鍋氱壒娈婄殑浜嬫儏銆傚畠涓烘瘡涓鍙ョ殑鎵ц鍒涘缓涓�涓柊鐨勯澶勭悊璇彞銆� + // ExecutorType.REUSE: 杩欎釜鎵ц鍣ㄧ被鍨嬩細澶嶇敤棰勫鐞嗚鍙ャ�� + // ExecutorType.BATCH: 杩欎釜鎵ц鍣ㄤ細鎵归噺鎵ц鎵�鏈夋洿鏂拌鍙�,濡傛灉 SELECT 鍦ㄥ畠浠腑闂存墽琛岃繕浼氭爣瀹氬畠浠槸 蹇呴』鐨�,鏉ヤ繚璇佷竴涓畝鍗曞苟鏄撲簬鐞嗚В鐨勮涓恒�� + + // 鍏抽棴session鐨勮嚜鍔ㄦ彁浜� + SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false); + try { + DaPassingStationCollectionMapper userMapper = sqlSession.getMapper(DaPassingStationCollectionMapper.class); + list.stream().forEach(item -> userMapper.insertDaPassingStationCollection(item)); + // 鎻愪氦鏁版嵁 + sqlSession.commit(); + sqlSession.rollback(); + } catch (Exception e) { + sqlSession.rollback(); + } finally { + sqlSession.close(); + } + } } diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java index 569af77..20e805e 100644 --- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java +++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java @@ -92,7 +92,7 @@ */ public static final String PACK_OP400_RecordData = "PACK.OP400.RecordData";//璇锋眰璁板綍鏁版嵁 - public static final String PACK_OP400_AngleResult = "PACK.OP400.AngleResult_1";//璇锋眰鎷х揣鏁版嵁 + public static final String PACK_OP400_AngleResult = "PACK.OP400.AngleResult";//璇锋眰鎷х揣鏁版嵁 /** * OP410 */ 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 8dc6dd6..104b1b7 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 @@ -115,6 +115,16 @@ String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; //璇绘ā缁勭爜 Object moduleCode = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCode").getValue(); + if(device.equals("OP365")){ + Object moduleCodeA = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCodeA").getValue(); + Object moduleCodeB = miloService.readFromOpcUa(thoroughfare + "." + device + ".ModuleCodeB").getValue(); + if(moduleCodeA!=null && moduleCodeB!=null){ + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); + }else { + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(12).build()); + } + return; + } if(moduleCode!=null){ miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(11).build()); @@ -150,7 +160,6 @@ }else { miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(12).build()); } - } } }else { @@ -231,6 +240,13 @@ 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"; } @@ -264,7 +280,10 @@ //1銆佹洿鏂板伐鍗曚俊鎭� updateOrderInfo(snCode); } - daParamCollectionService.pushGeelycvMesFeedback(snCode,device); + try{ + daParamCollectionService.pushGeelycvMesFeedback(snCode,device); + }catch (Exception e){ + } result = "21"; } @@ -492,4 +511,36 @@ return CollUtil.isEmpty(list); } + /** + * 淇濆瓨杩囩珯閲囬泦 + */ + public void saveStationInfo365(String thoroughfare,String device) throws Exception { + String prefix = thoroughfare+"."+device+"."; + List<DaPassingStationCollection> passingStationCollections = new ArrayList<>(); + String ModuleCodeA = miloService.readFromOpcUa(prefix + "ModuleCodeA").getValue().toString(); + String ModuleCodeB = miloService.readFromOpcUa(prefix + "ModuleCodeB").getValue().toString(); + String StationStatusA = miloService.readFromOpcUa(prefix + "StationStatusA").getValue().toString(); + String StationStatusB = miloService.readFromOpcUa(prefix + "StationStatusB").getValue().toString(); + String[] modeles = {ModuleCodeA,ModuleCodeB}; + String[] StationStatus = {StationStatusA,StationStatusB}; + + String startTime = miloService.readFromOpcUa(prefix + "StartTime").getValue().toString(); + String stopTime = miloService.readFromOpcUa(prefix + "StopTime").getValue().toString(); + for (int i = 0; i < 2; i++) { + DaPassingStationCollection daPassingStationCollection = new DaPassingStationCollection(); + String strt = TimeUtil.stringProcessing(startTime); + String end = TimeUtil.stringProcessing(stopTime); + daPassingStationCollection.setInboundTime(format.parse(TimeUtil.test(strt)));//鍏ョ珯鏃堕棿 + daPassingStationCollection.setOutboundTime(format.parse(TimeUtil.test(end)));//鍑虹珯鏃堕棿 + daPassingStationCollection.setSfcCode(modeles[i]); + daPassingStationCollection.setLocationCode(device); + daPassingStationCollection.setOutRsSign(StationStatus[i]);//鍑虹珯鏄惁鍚堟牸 + passingStationCollections.add(daPassingStationCollection); + } + daPassingStationCollectionService.saveBeachDaPassingStationCollection(passingStationCollections); + String RecordDataDoneAddress = thoroughfare + "." + device + ".RecordDataDone"; + miloService.writeToOpcShort(ReadWriteEntity.builder().identifier(RecordDataDoneAddress).value(21).build()); + return; + } + } diff --git a/jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js b/jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js index 29569a3..26ae74b 100644 --- a/jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js +++ b/jcdm-ui/src/api/main/bs/formulaChild/formulaChild.js @@ -38,6 +38,16 @@ } // 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛� +export function fistSetpNumber(query) { + return request({ + url: '/bs/formulaChild/fistSetpNumber', + method: 'get', + params: query + + }) +} + +// 鏌ヨ閰嶆柟閰嶇疆瀛愪俊鎭垪琛� export function jrmUpdateResults(query) { return request({ url: '/bs/formulaChild/jrmUpdateResults', diff --git a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue index be3361d..d76b681 100644 --- a/jcdm-ui/src/views/main/kb/stationTerminal/index.vue +++ b/jcdm-ui/src/views/main/kb/stationTerminal/index.vue @@ -298,6 +298,7 @@ import {listWorkReport} from "@/api/main/om/workReport/workReport"; import {listStationConf,getIpv4} from "@/api/main/sc/stationConf"; import { + fistSetpNumber, listFormulaChild, noPageListFormulaChild, releaseCheck, @@ -575,9 +576,9 @@ this.workpieceInformation.productCode = rowsData.productCode; this.workpieceInformation.productModel = rowsData.productModel; this.workpieceInformation.productName = rowsData.productName; - this.timer = setInterval(() => { - this.workpieceInformation.beat++; - }, 1000); + // this.timer = setInterval(() => { + // this.workpieceInformation.beat++; + // }, 1000); }); this.getListFormulaChild() this.addOverStationCollection() @@ -633,6 +634,7 @@ } console.log('璁剧疆宸ヤ綅缂栫爜' + this.headContent.processesCode) + }); this.conCom() console.log('websocket杩炴帴宸ヤ綅涓�' + this.headContent.processesCode) @@ -641,10 +643,16 @@ const self = this; this.ws.onopen = function (event) { this.$message('websocket杩炴帴鎴愬姛锛�'); + }; this.ws.onmessage = function (event) { if (event.data === "IN") { self.cakeLamp.InPlace = 1; + console.log(self.headContent.processesCode); + const param = { + processesCode: self.headContent.processesCode, + } + fistSetpNumber(param).then(response => {}); } else if (event.data === "IN0") { self.cakeLamp.InPlace = 0; } else if (event.data === "OUT") { @@ -703,7 +711,7 @@ if(this.headContent.sfcCode !== ''){ if(scanValue.includes("P9900173252")){ this.headContent.yzSfcCode = scanValue - }else if(scanValue.includes("HDY")){ + }else if(scanValue.includes("RSP01TE")){ this.headContent.cardCode = scanValue }else { this.$message('鎵弿鐗╂枡缂栫爜'+scanValue); -- Gitblit v1.9.3