From 09381335e11d32e01c8067b71d897c7064ec279d Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期一, 20 五月 2024 14:38:18 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes --- hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java | 293 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 293 insertions(+), 0 deletions(-) diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java new file mode 100644 index 0000000..69b61b3 --- /dev/null +++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownCacheGlassTask.java @@ -0,0 +1,293 @@ +package com.mes.job; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.mes.common.S7object; +import com.mes.common.config.Const; +import com.mes.device.PlcParameterObject; +import com.mes.downglassinfo.entity.DownGlassInfo; +import com.mes.downglassinfo.mapper.DownGlassInfoMapper; +import com.mes.downglassinfo.service.DownGlassInfoService; +import com.mes.downstorage.entity.DownStorageCage; +import com.mes.downstorage.entity.DownStorageCageDetails; +import com.mes.downstorage.service.DownStorageCageDetailsService; +import com.mes.downstorage.service.DownStorageCageService; +import com.mes.downworkstation.entity.DownWorkstation; +import com.mes.downworkstation.entity.DownWorkstationTask; +import com.mes.downworkstation.service.DownWorkstationService; +import com.mes.downworkstation.service.DownWorkstationTaskService; +import com.mes.glassinfo.entity.GlassInfo; +import com.mes.glassinfo.service.GlassInfoService; +import com.mes.downglassinfo.entity.DownGlassTask; +import com.mes.downglassinfo.service.DownGlassTaskService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +/** + * @Author : zhoush + * @Date: 2024/5/8 8:17 + * @Description: + */ +@Component +@Slf4j +public class DownCacheGlassTask { + + + @Autowired + DownGlassTaskService downGlassTaskService; + @Autowired + GlassInfoService glassInfoService; + @Autowired + DownStorageCageDetailsService downStorageCageDetailsService; + @Autowired + DownStorageCageService downStorageCageService; + @Autowired + DownWorkstationService downWorkstationService; + @Autowired + DownGlassInfoService downGlassInfoService; + + + + + @Autowired + private DownWorkstationTaskService downWorkstationTaskService; + +// @Value("${mes.threshold}") + private int threshold; + + //@Scheduled(fixedDelay = 1000) + public void plcdownGlassTask() { + // PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject; +// String taskRequestTypeValue = plcParameterObject.getPlcParameter("A06_request_word").getValue(); +// String glassIdeValue = plcParameterObject.getPlcParameter("A05_scanning_ID").getValue(); +// String confirmationWrodValue = plcParameterObject.getPlcParameter("MES_confirmation_word").getValue(); +// String outGlassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue(); +// String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress(); + // String G06RobotTaskRequestWord = plcParameterObject.getPlcParameter("G06RobotTaskRequestWord").getAddress(); + + + String taskRequestTypeValue ="3"; + String glassIdeValue ="NG24041101C002-2-6-1-6"; + String confirmationWrodValue ="1"; + String outGlassstate="1"; + String confirmationWrodAddress="1"; + String G11RobotTaskRequestWord ="1"; + String G06RobotTaskRequestWord ="1"; + String G13RobotTaskRequestWord ="1"; + + log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓猴細{}锛岃幏鍙栧埌鐨勬壂鎻廔D涓猴細{}锛岃幏鍙栧埌鐨勭‘璁ゅ瓧涓猴細{}锛岃幏鍙栧埌鐨勫嚭鐗囩姸鎬佷负锛歿}", + taskRequestTypeValue, glassIdeValue, confirmationWrodValue, outGlassstate); + +// if ("0".equals(taskRequestTypeValue)) { +// if ("0".equals(confirmationWrodValue)) { +// log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屼笖纭瀛椾负0锛屼笉鎵ц浠诲姟"); +// return; +// } +// log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0"); +// S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0); +// return; +// } +// if (!"0".equals(confirmationWrodValue)) { +// log.info("2銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛楁敼涓�0"); +// S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0); +// return; +// } + + if ("1".equals(taskRequestTypeValue)) { + log.info("3銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); + inTo(glassIdeValue, confirmationWrodAddress); + } else if ("2".equals(taskRequestTypeValue)) { + + log.info("3銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�"); + outTo( confirmationWrodAddress); + + } else if ("3".equals(taskRequestTypeValue)) { + log.info("3銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟"); + if (outTo(confirmationWrodAddress)) { + inTo(glassIdeValue, confirmationWrodAddress); + + + } + } + + if (("1".equals(G11RobotTaskRequestWord) || "1".equals(G06RobotTaskRequestWord)) || "1".equals(G13RobotTaskRequestWord)) { + log.info("4銆佹湁鏈哄櫒浜轰笅鐗囪姹傦紝鎵ц涓嬬墖浠诲姟"); + insertdownglassinfo(); + } + + //鑷姩缁戝畾鏋跺瓙锛屽鏋滃伐浣嶈〃娌℃湁缁戝畾鏋跺瓙锛岄粯璁ゅ皢绗煎瓙涓暟閲忔渶澶氱殑娴佺▼鍗″彿缁戝畾鏈哄櫒鎵�2鐨勭┖鏋跺瓙 + + + + } + + /** + * 杩涚墖浠诲姟 + * @param glassId + * @param confirmationWrodAddress + * @param + */ + private void inTo(String glassId, String confirmationWrodAddress) { + log.info("1銆佹寜鐓х幓鐠僫d:{}鑾峰彇鐜荤拑灏忕墖淇℃伅", glassId); + GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId)); + if (glassInfo == null) { + log.info("2銆佹鐜荤拑缂栧彿涓嶅瓨鍦�"); + return; + } + log.info("2銆佽幏鍙栧埌鐨勭幓鐠冧俊鎭负{}", glassInfo); + +// if(glassInfo.getFlowCardId()=){ +// +// } + //娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸 + List<DownStorageCageDetails> list = downStorageCageService.selectCacheEmpty(); + if(list.size()>0){ + DownStorageCageDetails item = list.get(0); + + + + log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", list); + log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�,褰撳墠鐜荤拑淇℃伅:{}", glassInfo); + DownStorageCageDetails details = new DownStorageCageDetails(); + BeanUtils.copyProperties(glassInfo, details); + details.setState(1); + details.setGlassId(glassInfo.getGlassId()); + details.setSlot(item.getSlot()); + details.setDeviceId(item.getDeviceId()); + downStorageCageDetailsService.save(details); + log.info("5銆佺幓鐠冧俊鎭凡瀛樺叆鐞嗙墖绗艰鎯呰〃锛岀幓鐠冧俊鎭负{}", details); + + DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(glassInfo, "0", item.getSlot() + "", "1"); + //娣诲姞杩涚墖浠诲姟 + log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃{}", downGlassTask); + downGlassTaskService.insertCacheTask(downGlassTask); + } + //S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1); + log.info("7銆佸彂閫佺‘璁ゅ瓧瀹屾垚"); + + + } + + /** + * 鍑虹墖浠诲姟 + * + * @param confirmationWrodAddress + * + */ + private Boolean outTo( String confirmationWrodAddress) { + log.info("鍗曠墖鎯呭喌鏍规嵁浼犲叆鐨勬枡鏋跺彿 鏌ヨ绗﹀悎鎸夌収鐗堝浘id鍜岀墖搴忓嚭鐗�,骞朵笖浼樺厛鍑烘弧鏋剁殑灏忕墖"); + List<DownStorageCageDetails> list = downStorageCageDetailsService.CacheOut1(1,3); + + List<DownStorageCageDetails> list2 = downStorageCageDetailsService.CacheOut1(4,6); + + List<DownStorageCageDetails> list3 = downStorageCageDetailsService.CacheOut1(1,6); + // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊 + if (!list3.isEmpty()) { + + DownStorageCageDetails item3 = list3.get(0); + if (item3.getHeight() >= 2500 && item3.getWidth() >= 2660) { + log.info("浜哄伐澶勭悊"); + String endcell = "7"; + + + DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item3, "9", endcell, "2"); + downGlassTaskService.insertCacheTask(downGlassTask); + // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2); + + return true; + } + else if (!list2.isEmpty() && !list3.isEmpty()) { + log.info("鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦"); + DownStorageCageDetails item4 = list2.get(0); + + DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item4.getFlowCardId())); + String endcell = String.valueOf(downWorkstation.getWorkstationId()); + + DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item4, "9", endcell, "2"); + downGlassTaskService.insertCacheTask(downGlassTask); + + //S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2); + + return true; + + } + // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝墠绔嚭鐗� + else if (!list.isEmpty()) { + log.info("鍓嶇鍑虹墖"); + DownStorageCageDetails item = list.get(0); + DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item.getFlowCardId())); + String endcell = String.valueOf(downWorkstation.getWorkstationId()); + // 鍑哄埌 G06 + DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item, "9", endcell, "2"); + downGlassTaskService.insertCacheTask(downGlassTask); + // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2); + + + return true; + // 鎸夌収鐗堝浘id鍜岀墖搴忕鍚堝悗绔嚭鐗� + } else if (!list2.isEmpty()) { + log.info("鍚庣鍑虹墖"); + DownStorageCageDetails item2 = list2.get(0); + DownWorkstation downWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>().eq(DownWorkstation::getFlowCardId, item2.getFlowCardId())); + String endcell = String.valueOf(downWorkstation.getWorkstationId()); + // 鍑哄埌 G11 + DownGlassTask downGlassTask = downStorageCageService.createDownGlassTask(item2, "9", endcell, "2"); + downGlassTaskService.insertCacheTask(downGlassTask); + // S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 2); + return true; + } + } + //濡傛灉鍚屾椂鍓嶅悗绔兘绌洪棽 浼樺厛鍚庣鍑虹墖骞朵笖浼樺厛婊℃灦 + + // 杩斿洖缁撴灉 + return false; + } + + +// + public void insertdownglassinfo() { + try { + + List<DownGlassTask> taskdownGlassInf = downGlassTaskService.getUnloadingTaskState(); + if (taskdownGlassInf != null && !taskdownGlassInf.isEmpty()) { + + for (DownGlassTask downGlassInfo : taskdownGlassInf) { + // 鍒涘缓鏂扮殑 DownGlassInfo 瀵硅薄骞惰缃浉鍏冲睘鎬� + DownGlassInfo newdownGlassInfo = new DownGlassInfo(); + + Integer maxSequence = downGlassInfoService.getMaxSequenceByFlowCardId(downGlassInfo.getFlowCardId()); + // 鍒濆鍖栭『搴忓瓧娈靛�� + int sequence = maxSequence != null ? maxSequence + 1 : 1; + BeanUtils.copyProperties(downGlassInfo, newdownGlassInfo); + // 璁剧疆椤哄簭瀛楁鍊� + newdownGlassInfo.setSequence(sequence); + // 鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃 + downGlassInfoService.insertDownGlassInfo(newdownGlassInfo); + log.info("鎻掑叆鏁版嵁鍒颁笅鐗囩幓鐠冧俊鎭〃"); + DownWorkstation downWorkstation1 = downWorkstationService.selectByFlowCardId(downGlassInfo.getFlowCardId()); + downWorkstationService.updateracksnumber(downGlassInfo.getFlowCardId(), downWorkstation1.getRacksnumber() + 1); + log.info("鏇存柊钀芥灦鏁伴噺"); + sequence++; // 閫掑椤哄簭瀛楁鍊� + + + } + } + } catch (Exception e) { + // 鎵撳嵃寮傚父淇℃伅 + e.printStackTrace(); + // 鎴栬�呭彲浠ヨ繘琛屽叾浠栧紓甯稿鐞嗭紝姣斿璁板綍鏃ュ織鎴栬�呰繑鍥炵壒瀹氱殑閿欒淇℃伅 + } + + + } + + +} -- Gitblit v1.8.0