From 0ec03c977e15aa7ac16c08e4fa4f0d4c901d19ee Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期二, 07 五月 2024 08:52:26 +0800 Subject: [PATCH] 磨边前缓存 测试代码 --- hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java | 177 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 174 insertions(+), 3 deletions(-) diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java index 6321ba4..f4944a9 100644 --- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java +++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/common/PlcHomeEdg.java @@ -1,16 +1,187 @@ package com.mes.common; +import cn.hutool.core.date.DateTime; import cn.hutool.json.JSONObject; +import com.github.yulichang.query.MPJLambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.mes.edgstoragecage.entity.EdgStorageCage; +import com.mes.edgstoragecage.entity.EdgStorageCageDetails; +import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper; +import com.mes.edgstoragecage.service.EdgStorageCageDetailsService; +import com.mes.edgstoragecage.service.EdgStorageCageService; +import com.mes.glassinfo.entity.GlassInfo; +import com.mes.glassinfo.service.GlassInfoService; +import com.mes.taskcache.entity.TaskCache; +import com.mes.taskcache.mapper.TaskCacheMapper; +import com.mes.taskcache.service.TaskCacheService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; - +@Service +@Slf4j public class PlcHomeEdg extends Thread { + + + + @Autowired + TaskCacheService taskCacheService; + @Autowired + GlassInfoService glassInfoService; + @Autowired + EdgStorageCageService edgStorageCageService; + @Autowired + EdgStorageCageDetailsService edgStorageCageDetailsService; + @Autowired + private EdgStorageCageDetailsMapper edgStorageCageDetailsMapper; + + private Map<String,String> mapParameter=new HashMap<String,String>(); + private Map<String,String> mapValue=new HashMap<String,String>(); + private Map<String,Object> mapSettings=new HashMap<String,Object>(); + + + private void initialize(){ + mapParameter.put("A06_request_word","DB11.0"); + mapParameter.put("A05_scanning_ID","DB11.2"); + mapParameter.put("MES_confirmation_word","DB11.40"); + mapParameter.put("A09_glass_status","DB11.70"); + mapParameter.put("A10_glass_status","DB11.72"); + mapParameter.put("A09_prohibit_film_production","DB11.74"); + mapParameter.put("A10_prohibit_film_production","DB11.76"); + mapSettings.put("territoryPoor",3); + +// mapValue.put("A06_request_word","1");//璇锋眰瀛� +// mapValue.put("A05_scanning_ID","7");//璇锋眰ID +// mapValue.put("MES_confirmation_word","0");//MES鍙戦�佸瓧 +// mapValue.put("A09_glass_status","0");//A09鐜荤拑鐘舵�� +// mapValue.put("A10_glass_status","0");//A09鐜荤拑鐘舵�� +// mapValue.put("A09_prohibit_film_production","0");//A9绂佹鍑虹墖 +// mapValue.put("A10_prohibit_film_production","0");//A10绂佹鍑虹墖 + for (String key:mapParameter.keySet()){ + String value=S7object.getinstance().plccontrol.readString(mapParameter.get(key)); + mapValue.put(key,value); + } + } + private void inTo(){ + List<GlassInfo> glassInfos=glassInfoService.selectId(mapValue.get("A05_scanning_ID")); + if(glassInfos.size()<1){ + log.info("姝ょ幓鐠冪紪鍙蜂笉瀛樺湪"); + }else if(glassInfos.size()==1){ + //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 + log.info("姝e父"); + List<EdgStorageCage> list=edgStorageCageService.selectCacheEmpty(); + + if(list.size()>1){ + EdgStorageCageDetails edgStorageCageDetails=edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>() + .eq(EdgStorageCageDetails::getGlassId,glassInfos.get(0).getGlassId())); + edgStorageCageDetails.setState(200); + + TaskCache taskCache=new TaskCache(); + EdgStorageCage edgStorageCage=list.get(0); + taskCache.setGlassId(glassInfos.get(0).getGlassId()); + taskCache.setTaskStatus(0); + taskCache.setStartCell(0); + taskCache.setEndCell(edgStorageCage.getSlot()); + taskCache.setTaskType(1); + taskCache.setCreateTime(new DateTime()); + edgStorageCageDetailsMapper.updateById(edgStorageCageDetails); + taskCacheService.insertTaskCache(taskCache); + }else{ + log.info("涓嶅瓨鍦ㄧ┖鏍�"); + } + }else{ + log.info("姝ょ幓鐠冪紪鍙峰瓨鍦ㄥ涓�"); + } + } + private void outTo(int line){ + int endcell=0; + EdgStorageCageDetails outEdgStorageCageDetails=new EdgStorageCageDetails(); + TaskCache taskCacheA09=taskCacheService.selectLastOutCacheInfo(""); + TaskCache taskCacheA10=taskCacheService.selectLastOutCacheInfo(""); + //涓ょ嚎鍚勮嚜瑕佸嚭鐨勭幓鐠� + EdgStorageCageDetails glassInfo09=edgStorageCageDetailsService.selectConformGlass(taskCacheA09.getGlassId(),(int)mapSettings.get("territoryPoor")); + EdgStorageCageDetails glassInfo10=edgStorageCageDetailsService.selectConformGlass(taskCacheA10.getGlassId(),(int)mapSettings.get("territoryPoor")); + //鍐冲畾绾胯矾 + if(line==1){ + endcell=9000; + outEdgStorageCageDetails=glassInfo09; + }else if(line==2){ + endcell=1000; + outEdgStorageCageDetails=glassInfo10; + }else if(line==3){ + endcell=9000;//榛樿璧颁竴鍙风嚎 浼樺寲鏂瑰悜鍙牴鎹� 瀵规瘮涓ょ嚎閫熷害/涓ょ嚎褰撳墠浠诲姟鎯呭喌鍋� + outEdgStorageCageDetails=glassInfo09; + } + if(outEdgStorageCageDetails!=null&&endcell>0){ + TaskCache taskCache=new TaskCache(); + taskCache.setGlassId(outEdgStorageCageDetails.getGlassId()); + taskCache.setTaskStatus(0); + taskCache.setStartCell(outEdgStorageCageDetails.getSlot()); + taskCache.setEndCell(endcell); + taskCache.setTaskType(2); + taskCache.setCreateTime(new DateTime()); + taskCacheService.insertTaskCache(taskCache); + } + + + + + } @Override public void run() { - while (this != null) { + boolean start=true; + while (this != null&&start) { JSONObject jsonObject = new JSONObject(); try { Thread.sleep(1000); + taskCacheService = WebSocketServer.applicationContext.getBean(TaskCacheService.class); + glassInfoService = WebSocketServer.applicationContext.getBean(GlassInfoService.class); + edgStorageCageService = WebSocketServer.applicationContext.getBean(EdgStorageCageService.class); + edgStorageCageDetailsMapper = WebSocketServer.applicationContext.getBean(EdgStorageCageDetailsMapper.class); + initialize();//鍒濆鍖栨暟鎹� + log.info("褰撳墠鍙傛暟鍊硷細{}",mapValue); + if("0".equals(mapValue.get("A06_request_word"))){ + //娓呴櫎 + //S7object.getinstance().plccontrol.WriteWord(mapParameter.get("MES_confirmation_word"),(short) 0); + }else if("1".equals(mapValue.get("A06_request_word"))&& + "0".equals(mapValue.get("MES_confirmation_word"))) + { + + inTo(); + }else if("2".equals(mapValue.get("A06_request_word"))&& + "0".equals(mapValue.get("MES_confirmation_word"))&& + ( + "0".equals(mapValue.get("A09_glass_status"))|| + "0".equals(mapValue.get("A10_glass_status")) + ) + ){ + + outTo(3); + }else if("3".equals(mapValue.get("A06_request_word"))&& + "0".equals(mapValue.get("MES_confirmation_word"))){ + + if("0".equals(mapValue.get("A09_glass_status"))||"0".equals(mapValue.get("A10_glass_status"))){ + outTo(3); + }else{ + inTo(); + } + } + + +// List<String> address2=new ArrayList<String>(); +// address.add(""); +// List<String> list2= S7object.getinstance().plccontrol.readStrings(address); +// PlcParameterObject plcmes=PLCAutoMes.PlcMesObject; +// log.info("plcmes:{}",plcmes); +// S7object.getinstance().plccontrol.WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(),(short) 1); + +// taskCacheMapper = WebSocketServer.applicationContext.getBean(TaskCacheMapper.class); +// List<TaskCache> list=taskCacheMapper.selectList(null); +// log.info("鏁版嵁{}",list); // 娉ㄥ叆mapper // HomeService = WebSocketServer.applicationContext.getBean(HomeService.class); // QueueMapper = WebSocketServer.applicationContext.getBean(QueueMapper.class); @@ -38,7 +209,7 @@ } catch (InterruptedException e) { e.printStackTrace(); } - +// log.info("鎺ㄦ暟鎹�"); // jsonObject.append("params", new short[] { 30, 40, }); ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home"); if (sendwServer != null) { -- Gitblit v1.8.0