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