From 9e6d86cfea30f99668cde150b49abae780239a55 Mon Sep 17 00:00:00 2001
From: wujian <14790700720@163.com>
Date: 星期五, 22 三月 2024 08:38:20 +0800
Subject: [PATCH] change 通信逻辑 fix 相关问题修改

---
 jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/IBsTechnologyRouteChildInfoService.java             |    7 +
 jcdm-main/src/main/java/com/jcdm/main/plcserver/conf/OPCElement.java                                                      |   10 +
 jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/impl/BsTechnologyRouteChildInfoServiceImpl.java     |   19 ++-
 jcdm-main/src/main/resources/mapper/bs/technologyRouteChild/BsTechnologyRouteChildInfoMapper.xml                          |   16 ++
 jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/mapper/BsTechnologyRouteChildInfoMapper.java                |    6 
 jcdm-main/src/main/java/com/jcdm/main/bs/technologyRoute/service/impl/BsTechnologyRouteInfoServiceImpl.java               |    3 
 jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java                                                         |   22 +++
 jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/controller/BsTechnologyRouteChildInfoController.java        |   28 +--
 jcdm-main/src/main/java/com/jcdm/main/da/passingStationCollection/service/impl/DaPassingStationCollectionServiceImpl.java |    4 
 jcdm-main/src/main/java/com/jcdm/main/plcserver/sub/OPCUaSubscription.java                                                |  227 +++++++++++++++++++++++++------------
 10 files changed, 234 insertions(+), 108 deletions(-)

diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRoute/service/impl/BsTechnologyRouteInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRoute/service/impl/BsTechnologyRouteInfoServiceImpl.java
index 6d856b0..4742612 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRoute/service/impl/BsTechnologyRouteInfoServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRoute/service/impl/BsTechnologyRouteInfoServiceImpl.java
@@ -6,6 +6,7 @@
 import com.jcdm.main.bs.technologyRoute.domain.BsTechnologyRouteInfo;
 import com.jcdm.main.bs.technologyRoute.mapper.BsTechnologyRouteInfoMapper;
 import com.jcdm.main.bs.technologyRoute.service.IBsTechnologyRouteInfoService;
+import com.jcdm.main.bs.technologyRouteChild.mapper.BsTechnologyRouteChildInfoMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
@@ -26,7 +27,7 @@
 
 
     @Autowired
-    private com.jcdm.main.bs.mapper.BsTechnologyRouteChildInfoMapper bsTechnologyRouteChildInfoMapper;
+    private BsTechnologyRouteChildInfoMapper bsTechnologyRouteChildInfoMapper;
 
     /**
      * 鏌ヨ宸ヨ壓娴佺▼
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/controller/BsTechnologyRouteChildInfoController.java b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/controller/BsTechnologyRouteChildInfoController.java
index d96bbfc..5fd06fd 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/controller/BsTechnologyRouteChildInfoController.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/controller/BsTechnologyRouteChildInfoController.java
@@ -1,25 +1,19 @@
-package com.jcdm.main.bs.controller;
+package com.jcdm.main.bs.technologyRouteChild.controller;
 
-import java.util.List;
-import javax.servlet.http.HttpServletResponse;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
 import com.jcdm.common.annotation.Log;
 import com.jcdm.common.core.controller.BaseController;
 import com.jcdm.common.core.domain.AjaxResult;
-import com.jcdm.common.enums.BusinessType;
-import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
-import com.jcdm.main.bs.service.IBsTechnologyRouteChildInfoService;
-import com.jcdm.common.utils.poi.ExcelUtil;
 import com.jcdm.common.core.page.TableDataInfo;
+import com.jcdm.common.enums.BusinessType;
+import com.jcdm.common.utils.poi.ExcelUtil;
+import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
+import com.jcdm.main.bs.technologyRouteChild.service.IBsTechnologyRouteChildInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
 
 /**
  * 宸ヨ壓璺嚎瀛愪俊鎭疌ontroller
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/mapper/BsTechnologyRouteChildInfoMapper.java b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/mapper/BsTechnologyRouteChildInfoMapper.java
index fc09dd9..fed459f 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/mapper/BsTechnologyRouteChildInfoMapper.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/mapper/BsTechnologyRouteChildInfoMapper.java
@@ -1,7 +1,9 @@
-package com.jcdm.main.bs.mapper;
+package com.jcdm.main.bs.technologyRouteChild.mapper;
 
 import java.util.List;
 import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * 宸ヨ壓璺嚎瀛愪俊鎭疢apper鎺ュ彛
@@ -61,4 +63,6 @@
      * @return 缁撴灉
      */
     public int deleteBsTechnologyRouteChildInfoByIds(Long[] ids);
+
+    public List<BsTechnologyRouteChildInfo> selectAllTechnologyRouteByProductCode(@Param("productCode") String productCode);
 }
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/IBsTechnologyRouteChildInfoService.java b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/IBsTechnologyRouteChildInfoService.java
index ee3c274..2ef5c84 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/IBsTechnologyRouteChildInfoService.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/IBsTechnologyRouteChildInfoService.java
@@ -1,4 +1,4 @@
-package com.jcdm.main.bs.service;
+package com.jcdm.main.bs.technologyRouteChild.service;
 
 import java.util.List;
 import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
@@ -58,4 +58,9 @@
      * @return 缁撴灉
      */
     public int deleteBsTechnologyRouteChildInfoById(Long id);
+
+
+
+
+    public List<BsTechnologyRouteChildInfo> selectAllTechnologyRouteByProductCode(String productCode);
 }
diff --git a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/impl/BsTechnologyRouteChildInfoServiceImpl.java b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/impl/BsTechnologyRouteChildInfoServiceImpl.java
index 25a5783..6a0eba0 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/impl/BsTechnologyRouteChildInfoServiceImpl.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/bs/technologyRouteChild/service/impl/BsTechnologyRouteChildInfoServiceImpl.java
@@ -1,12 +1,13 @@
-package com.jcdm.main.bs.service.impl;
+package com.jcdm.main.bs.technologyRouteChild.service.impl;
 
-import java.util.List;
 import com.jcdm.common.utils.DateUtils;
+import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
+import com.jcdm.main.bs.technologyRouteChild.mapper.BsTechnologyRouteChildInfoMapper;
+import com.jcdm.main.bs.technologyRouteChild.service.IBsTechnologyRouteChildInfoService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import com.jcdm.main.bs.mapper.BsTechnologyRouteChildInfoMapper;
-import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
-import com.jcdm.main.bs.service.IBsTechnologyRouteChildInfoService;
+
+import java.util.List;
 
 import static org.apache.commons.lang3.SystemUtils.getUserName;
 
@@ -17,7 +18,7 @@
  * @date 2023-12-09
  */
 @Service
-public class BsTechnologyRouteChildInfoServiceImpl implements IBsTechnologyRouteChildInfoService 
+public class BsTechnologyRouteChildInfoServiceImpl implements IBsTechnologyRouteChildInfoService
 {
     @Autowired
     private BsTechnologyRouteChildInfoMapper bsTechnologyRouteChildInfoMapper;
@@ -97,4 +98,10 @@
     {
         return bsTechnologyRouteChildInfoMapper.deleteBsTechnologyRouteChildInfoById(id);
     }
+
+
+    @Override
+    public List<BsTechnologyRouteChildInfo> selectAllTechnologyRouteByProductCode(String productCode) {
+        return bsTechnologyRouteChildInfoMapper.selectAllTechnologyRouteByProductCode(productCode);
+    }
 }
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 de56bec..e3edb00 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
@@ -226,8 +226,8 @@
     public String SelectSN(String SNcode,String node) {
         try {
             Map<String, Object> params = new HashMap<>();
-            params.put("SNcode",SNcode);
-            params.put("node",node);
+            params.put("SN_CODE",SNcode);
+            params.put("Node",node);
             params.put("Success","");
             daPassingStationCollectionMapper.SelectSN(params);
             return (String)params.get("Success");
diff --git a/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java b/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
index 970139d..e566d30 100644
--- a/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
+++ b/jcdm-main/src/main/java/com/jcdm/main/plcserver/CustomRunner.java
@@ -1,12 +1,15 @@
 package com.jcdm.main.plcserver;
 
 
+import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
+import com.jcdm.main.bs.technologyRouteChild.service.IBsTechnologyRouteChildInfoService;
 import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
 import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig;
 import com.jcdm.main.da.opcuaconfig.service.IDaOpcuaConfigService;
 import com.jcdm.main.da.paramCollection.service.IDaParamCollectionService;
 import com.jcdm.main.da.passingStationCollection.service.impl.DaPassingStationCollectionServiceImpl;
 import com.jcdm.main.plcserver.sub.OPCUaSubscription;
+import com.jcdm.main.rm.repairRecord.service.IRmRepairRecordService;
 import com.kangaroohy.milo.service.MiloService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.ApplicationArguments;
@@ -35,6 +38,15 @@
     @Resource
     private IDaOpcuaConfigService iDaOpcuaConfigService;
 
+    @Resource
+    private IBsOrderSchedulingService bsOrderSchedulingService;
+
+    @Resource
+    private IRmRepairRecordService rmRepairRecordService;
+
+    @Resource
+    private IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService;
+
     @Override
     public void run(ApplicationArguments args) throws Exception {
 
@@ -43,9 +55,12 @@
         OPCUaSubscription opcUaSubscription = new OPCUaSubscription(
                 miloService,
                 collectionParamConfService,
-                daParamCollectionService
-        ,passingStationCollectionServiceImpl,
-                lists);
+                daParamCollectionService,
+                passingStationCollectionServiceImpl,
+                bsOrderSchedulingService,
+                lists,
+                rmRepairRecordService,
+                bsTechnologyRouteChildInfoService);
 
 
         miloService.subscriptionFromOpcUa(collect,opcUaSubscription);
@@ -57,6 +72,7 @@
      */
     public List<DaOpcuaConfig> getSubList(){
         DaOpcuaConfig config = new DaOpcuaConfig();
+        config.setState(1L);
         List<DaOpcuaConfig> list = iDaOpcuaConfigService.selectDaOpcuaConfigList(config);
 //        List<String> lists = new ArrayList<>();
 //        if (CollUtil.isNotEmpty(list)){
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 39298a7..746ac5c 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
@@ -27,9 +27,17 @@
     public static final String OP020_MesSaveFeed = OP020_ITEM + "MesSaveFeed";//Mes淇濆瓨瀹屾垚
 
     public static final String OP120_ZZ_CODE_CHECK = OP120_ITEM_ZZ + "CodeCheck";//璇锋眰淇濆瓨
+    public static final String OP050_HX_CODE_CHECK = "CFL4HX.OP050.CodeCheck";//璇锋眰淇濆瓨
+
+    //杩斾慨鐩戝惉鐐逛綅-465
+    public static final String OP465_ZZ_CODE_CHECK = "CFL4ZZ.OP465.CodeCheck";
+    //杩斾慨鐩戝惉鐐逛綅-355
+    public static final String OP355_ZZ_CODE_CHECK = "CFL4ZZ.OP355.CodeCheck";
 
     public static final String SN_CHECK = "SNRetrieval";
-    public static final String SAVE_DATA = "saveData";
+    public static final String SAVE_DATA = "SaveData";
+    public static final String QUALIFIED = "鍚堟牸";
+    public static final String UN_QUALIFIED = "涓嶅悎鏍�";
 
 
 
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 f7313b2..da17b4d 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
@@ -1,6 +1,13 @@
 package com.jcdm.main.plcserver.sub;
 
 
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.jcdm.main.bs.domain.BsTechnologyRouteChildInfo;
+import com.jcdm.main.bs.orderScheduling.domain.BsOrderScheduling;
+import com.jcdm.main.bs.orderScheduling.service.IBsOrderSchedulingService;
+import com.jcdm.main.bs.technologyRouteChild.service.IBsTechnologyRouteChildInfoService;
 import com.jcdm.main.da.collectionParamConf.domain.DaCollectionParamConf;
 import com.jcdm.main.da.collectionParamConf.service.IDaCollectionParamConfService;
 import com.jcdm.main.da.opcuaconfig.domain.DaOpcuaConfig;
@@ -9,13 +16,15 @@
 import com.jcdm.main.da.passingStationCollection.domain.DaPassingStationCollection;
 import com.jcdm.main.da.passingStationCollection.service.impl.DaPassingStationCollectionServiceImpl;
 import com.jcdm.main.plcserver.conf.OPCElement;
+import com.jcdm.main.rm.repairRecord.domain.RmRepairRecord;
+import com.jcdm.main.rm.repairRecord.service.IRmRepairRecordService;
 import com.kangaroohy.milo.model.ReadWriteEntity;
 import com.kangaroohy.milo.runner.subscription.SubscriptionCallback;
 import com.kangaroohy.milo.service.MiloService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
 
-import java.text.Format;
+import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -39,16 +48,28 @@
 
     public static final HashMap<String,Integer> map = new HashMap<>();
 
+    public IBsOrderSchedulingService bsOrderSchedulingService;
+
+    public IRmRepairRecordService rmRepairRecordService;
+
+    public IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService;
+
     public OPCUaSubscription(MiloService miloService,
                              IDaCollectionParamConfService collectionParamConfService,
                              IDaParamCollectionService daParamCollectionService,
                              DaPassingStationCollectionServiceImpl passingStationCollectionServiceImpl,
-                             List<DaOpcuaConfig> lists) {
+                             IBsOrderSchedulingService bsOrderSchedulingService,
+                             List<DaOpcuaConfig> lists,
+                             IRmRepairRecordService rmRepairRecordService,
+                             IBsTechnologyRouteChildInfoService bsTechnologyRouteChildInfoService) {
         OPCUaSubscription.miloService = miloService;
         this.collectionParamConfService = collectionParamConfService;
         this.daParamCollectionService = daParamCollectionService;
         this.passingStationCollectionServiceImpl = passingStationCollectionServiceImpl;
+        this.bsOrderSchedulingService = bsOrderSchedulingService;
         this.lists = lists;
+        this.rmRepairRecordService = rmRepairRecordService;
+        this.bsTechnologyRouteChildInfoService = bsTechnologyRouteChildInfoService;
 
 
     }
@@ -58,7 +79,7 @@
     public void onSubscribe(String identifier, Object value) {
         String ecpStr = "";//寮傚父璁板綍鏍囪
         try {
-            if(null != value) {
+            if(null != value && "1".equals(value.toString())) {
                 //1銆佹绱N鍙�
                 //2銆佽繃绔欏弬鏁伴噰闆�
                 //3銆佹壂鐮佹灙鏁版嵁鍥炰紶
@@ -72,80 +93,57 @@
                     if (identifier.equals(OPCElement.OP120_ZZ_CODE_CHECK) && "1".equals(value.toString())){
                         //鎬昏涓婄嚎鎵爜浼犺緭鏁版嵁
                         log.info("-------鐩戝惉鍒�,{}鐨勬壂鐮佹灙鎵爜鐨凜ODE_CHECK鐨勪俊鍙�",identifier);
-                        Integer i = map.getOrDefault(identifier + "鐨勬壂鐮佹灙鎵爜鐨凜ODE_CHECK鐨勪俊鍙�",0);
-                        if (0==i){
-                            map.put(identifier + "鐨勬壂鐮佹灙鎵爜鐨凜ODE_CHECK鐨勪俊鍙�",i+1);
-                        }
-                        String[] parts = OPCElement.OP120_ZZ_CODE_CHECK.split("[.]");
-                        Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code1").getValue();
-                        if (null != SNCodeObject){
-                            String SNCode = SNCodeObject.toString();
-                            passingStationCollectionServiceImpl.sendMessage(SNCode);
+                        scannerGunMessage();
+                    }
+                }
+                if (collect2.contains(identifier)){
+                    if ("1".equals(value.toString())){
+                        //save
+                        this.SaveData(identifier);
+                        //杩斿洖plc淇濆瓨鎴愬姛
+                        String[] parts = identifier.split("[.]");
+                        if (parts.length==3){
+                            if ("SaveRequest".equals(parts[2])){
+                                ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeed", 1);
+                                log.info("-------鐩戝惉鍒�,{}鐨剆aveRequest鐨勪俊鍙�",identifier);
+                                Integer i = map.getOrDefault(identifier + "鐨剆aveRequest鐨勪俊鍙�",0);
+                                if (0==i){
+                                    map.put(identifier + "鐨剆aveRequest鐨勪俊鍙�",i+1);
+                                }
+//                                miloService.writeToOpcByte(entity);
+                            }else if ("SaveRequestLast".equals(parts[2])){
+                                ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeedLast", 1);
+                                log.info("-------鐩戝惉鍒�,{}鐨凷aveRequestLast鐨勪俊鍙�",identifier);
+                                Integer i = map.getOrDefault(identifier + "鐨凷aveRequestLast鐨勪俊鍙�",0);
+                                if (0==i){
+                                    map.put(identifier + "鐨凷aveRequestLast鐨勪俊鍙�",i+1);
+                                }
+//                                miloService.writeToOpcByte(entity);
+                            }
                         }
                     }
                 }
-                else if (collect2.contains(identifier)){
-                    //save
-                    this.SaveData(identifier);
-                    //杩斿洖plc淇濆瓨鎴愬姛
-                    String[] parts = identifier.split("[.]");
-                    if (parts.length==3){
-                        if ("SaveRequest".equals(parts[2])){
-                            ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeed", 1);
-                            log.info("-------鐩戝惉鍒�,{}鐨剆aveRequest鐨勪俊鍙�",identifier);
-                            Integer i = map.getOrDefault(identifier + "鐨剆aveRequest鐨勪俊鍙�",0);
-                            if (0==i){
-                                map.put(identifier + "鐨剆aveRequest鐨勪俊鍙�",i+1);
-                            }
-//                            miloService.writeToOpcByte(entity);
-                        }else if ("SaveRequestLast".equals(parts[2])){
-                            ReadWriteEntity entity = new ReadWriteEntity(parts[0] + "." + parts[1] + ".SaveFeedLast", 1);
-                            log.info("-------鐩戝惉鍒�,{}鐨凷aveRequestLast鐨勪俊鍙�",identifier);
-                            Integer i = map.getOrDefault(identifier + "鐨凷aveRequestLast鐨勪俊鍙�",0);
-                            if (0==i){
-                                map.put(identifier + "鐨凷aveRequestLast鐨勪俊鍙�",i+1);
-                            }
-//                            miloService.writeToOpcByte(entity);
-                        }
-                    }
 
-
-                }
-
-                //OP010淇濆瓨璇锋眰
-//                if (identifier.equals(OPCElement.OP120_SaveRequestLast) && "1".equals(value.toString())) {
-//                    this.SaveData(OPCElement.OP120_SaveRequestLast);
-//                    //1銆佹洿鏂板伐鍗曟暟鎹�
-//                    //2銆佷繚瀛樿繃绔欓噰闆嗘暟鎹�
-//                    //3銆佷繚瀛樺弬鏁伴噰闆嗘暟鎹�
-//                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP010_MesSaveFeed, 1);
-//                    miloService.writeToOpcByte(entity);
-//                }
-//                else if (identifier.equals(OPCElement.OP120_ZZ_CODE_CHECK) && "1".equals(value.toString())){
-//                    //鎬昏涓婄嚎鎵爜浼犺緭鏁版嵁
-//                    String[] parts = OPCElement.OP120_ZZ_CODE_CHECK.split("[.]");
-//                    Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code1").getValue();
-//                    if (null != SNCodeObject){
-//                        String SNCode = SNCodeObject.toString();
-//                        passingStationCollectionServiceImpl.sendMessage(SNCode);
-//                    }
-//                }
-//                //OP010璇锋眰妫�绱㈡潯鐮�
-//                else if (identifier.equals(OPCElement.OP010_CodeCheck) && "1".equals(value.toString())) {
-//                    ReadWriteEntity entity = new ReadWriteEntity(OPCElement.OP010_MesCodeCheckFeed, 1);
-//                    miloService.writeToOpcByte(entity);
-//                }
             }
 
 
 
         } catch (Exception e) {
-
+            System.out.println(e.getMessage());
         } finally {
             if (!"".equals(ecpStr)) {
                 System.out.println(ecpStr + "\r\n");
 
             }
+        }
+    }
+
+    private void scannerGunMessage() throws Exception {
+        String[] parts = OPCElement.OP120_ZZ_CODE_CHECK.split("[.]");
+        Object SNCodeObject = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Code1").getValue();
+        if (null != SNCodeObject){
+            String SNCode = SNCodeObject.toString();
+            passingStationCollectionServiceImpl.sendMessage(SNCode);
         }
     }
 
@@ -157,20 +155,83 @@
             if(null != SNCodeObject) {
                 String SNCode=SNCodeObject.toString();
                 String a=passingStationCollectionServiceImpl.SelectSN(SNCode,parts[1]);
+//                String a="1";
                 // 1:OK鍙敓浜� 2:NG涓嶅彲鐢熶骇 3:NG鍙繑宸� 4:PC妫�绱㈠け璐ワ紙鏃犺褰曪級5:PC妫�绱㈠け璐ワ紙杞欢锛�
-                ReadWriteEntity entity = new ReadWriteEntity(parts[0]+"."+parts[1]+".CodeCheckFeed", a);
-                log.info("-------鐩戝惉鍒�,{}鐨凜odeCheck鐨勪俊鍙�",Node);
-                Integer i = map.getOrDefault(Node + "鐨凜odeCheck鐨勪俊鍙�",0);
-                if (0==i){
-                    map.put(Node + "鐨凜odeCheck鐨勪俊鍙�",i+1);
-                }
+                if (StrUtil.isNotBlank(a)){
+                    int input = Integer.parseInt(a);
+                    ReadWriteEntity entity = new ReadWriteEntity(parts[0]+"."+parts[1]+".CodeCheckFeed", input);
+                    log.info("-------鐩戝惉鍒�,{}鐨凜odeCheck鐨勪俊鍙�",Node);
+                    //棣栫珯浼犺緭璁㈠崟鍙�
+                    if (OPCElement.OP050_HX_CODE_CHECK.equals(Node)){
+                        //鏌ヨ璁㈠崟鍙�
+                        BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
+                        bsOrderScheduling.setEngineNo(SNCode);
+                        List<BsOrderScheduling> tempList = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling);
+                        String orderNum = "";
+                        if (CollUtil.isNotEmpty(tempList)){
+                            BsOrderScheduling bsOrderScheduling1 = tempList.get(0);
+                            orderNum = bsOrderScheduling1.getOrderNo();
+                        }
+
+                        ReadWriteEntity entity2 = new ReadWriteEntity(parts[0]+"."+parts[1]+".OrderNumber", orderNum);
+//                        miloService.writeToOpcByte(entity2);
+                    }
+                    //濡傛灉鏄繑淇伐浣嶉渶瑕佷紶杈撹繑淇伐浣嶅彿
+                    if (OPCElement.OP465_ZZ_CODE_CHECK.equals(Node) || OPCElement.OP355_ZZ_CODE_CHECK.equals(Node)){
+                        rework(SNCode);
+                    }
 //                miloService.writeToOpcByte(entity);
-                DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection();
-                PassingStationCollection.setSfcCode(SNCode);
-                PassingStationCollection.setLocationCode(parts[1]);
-                PassingStationCollection.setInboundTime(new Date());
-                passingStationCollectionServiceImpl.insertDaPassingStationCollection(PassingStationCollection);
+                }
+
             }
+        }
+    }
+
+    private void rework(String SNCode) {
+        BsOrderScheduling bsOrderScheduling = new BsOrderScheduling();
+        bsOrderScheduling.setEngineNo(SNCode);
+        List<String> allProcessCoed = new ArrayList<>();
+        List<String> collect = bsOrderSchedulingService.selectBsOrderSchedulingList(bsOrderScheduling).stream().map(BsOrderScheduling::getModel).collect(Collectors.toList());
+        if (CollUtil.isNotEmpty(collect)){
+            String s = collect.get(0);
+            //鏌ユ壘娆℃満鍨嬬殑瀹屾暣宸ュ簭
+            List<BsTechnologyRouteChildInfo> bsTechnologyRouteChildInfos = bsTechnologyRouteChildInfoService.selectAllTechnologyRouteByProductCode(SNCode);
+            if (CollUtil.isNotEmpty(bsTechnologyRouteChildInfos)){
+                allProcessCoed = bsTechnologyRouteChildInfos.stream().map(BsTechnologyRouteChildInfo::getProcessesCode).collect(Collectors.toList());
+            }
+        }
+        RmRepairRecord rmRepairRecord = new RmRepairRecord();
+        rmRepairRecord.setBoxCode(SNCode);
+        List<ReadWriteEntity> writeList = new ArrayList<>();
+        List<RmRepairRecord> rmRepairRecords = rmRepairRecordService.selectRmRepairRecordList(rmRepairRecord);
+        //鎵�鏈夊弽宸ュ伐浣�
+        List<String> collect1 = rmRepairRecords.stream().map(RmRepairRecord::getProcessesCode).collect(Collectors.toList());
+        //鎵�鏈夋斁琛屽伐浣�
+        List<String> collect2 = allProcessCoed;
+        if (CollUtil.isNotEmpty(rmRepairRecords)){
+            //鏁版嵁搴撴煡璇㈠嚭鐨勫伐浣�
+            rmRepairRecords.forEach(x -> {
+                ReadWriteEntity readWriteEntity = new ReadWriteEntity();
+                readWriteEntity.setIdentifier(x.getProcessesCode());
+                readWriteEntity.setValue(1);
+                writeList.add(readWriteEntity);
+            });
+            collect2 = allProcessCoed.stream().filter(x -> !collect1.contains(x)).collect(Collectors.toList());
+        }
+        if (CollUtil.isNotEmpty(collect2)){
+            collect2.forEach(x -> {
+                ReadWriteEntity readWriteEntity = new ReadWriteEntity();
+                readWriteEntity.setIdentifier(x);
+                readWriteEntity.setValue(2);
+                writeList.add(readWriteEntity);
+            });
+        }
+        if (CollUtil.isNotEmpty(writeList)){
+            ReadWriteEntity readWriteEntity = new ReadWriteEntity();
+            readWriteEntity.setIdentifier("Repair_sign");
+            readWriteEntity.setValue(1);
+            writeList.add(readWriteEntity);
+//                            miloService.writeToOpcByte(writeList);
         }
     }
 
@@ -214,6 +275,24 @@
                 }
                 daParamCollectionService.saveBeachDaParamCollection(daParamCollectionlist);
             }
+
+            Object object = miloService.readFromOpcUa(parts[0] + "." + parts[1] + ".Runtime").getValue();
+            Long beatTime = 0L;
+            if (ObjectUtil.isNotEmpty(object)){
+                beatTime = (Long) object;
+            }
+            DaPassingStationCollection PassingStationCollection=new DaPassingStationCollection();
+            PassingStationCollection.setSfcCode(SNCode);
+            PassingStationCollection.setLocationCode(parts[1]);
+            PassingStationCollection.setOutboundTime(new Date());
+            PassingStationCollection.setInboundTime(new Date(new Date().getTime()-beatTime*1000));
+            PassingStationCollection.setCollectionTime(new Date());
+            PassingStationCollection.setCreateTime(new Date());
+            PassingStationCollection.setBeatTime(beatTime.toString());
+            PassingStationCollection.setOutRsSign("鍚堟牸");
+            passingStationCollectionServiceImpl.insertDaPassingStationCollection(PassingStationCollection);
+
+
         }
     }
 }
diff --git a/jcdm-main/src/main/resources/mapper/bs/technologyRouteChild/BsTechnologyRouteChildInfoMapper.xml b/jcdm-main/src/main/resources/mapper/bs/technologyRouteChild/BsTechnologyRouteChildInfoMapper.xml
index f7e46c9..4fff471 100644
--- a/jcdm-main/src/main/resources/mapper/bs/technologyRouteChild/BsTechnologyRouteChildInfoMapper.xml
+++ b/jcdm-main/src/main/resources/mapper/bs/technologyRouteChild/BsTechnologyRouteChildInfoMapper.xml
@@ -2,8 +2,8 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.jcdm.main.bs.mapper.BsTechnologyRouteChildInfoMapper">
-    
+<mapper namespace="com.jcdm.main.bs.technologyRouteChild.mapper.BsTechnologyRouteChildInfoMapper">
+
     <resultMap type="BsTechnologyRouteChildInfo" id="BsTechnologyRouteChildInfoResult">
         <result property="id"    column="id"    />
         <result property="processesCode"    column="processes_code"    />
@@ -161,4 +161,16 @@
             #{id}
         </foreach>
     </delete>
+
+
+    <select id="selectAllTechnologyRouteByProductCode" parameterType="String" resultMap="BsTechnologyRouteChildInfoResult">
+        <include refid="selectBsTechnologyRouteChildInfoVo"/>
+            left join bs_technology_route_info
+            on bs_technology_route_info.route_code = bs_technology_route_child_info.route_code
+        <where>
+            <if test="productCode != null  and productCode != ''">
+            and bs_technology_route_info.product_code = #{productCode}
+            </if>
+        </where>
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3