From 93e36c526fe445c14d5fb19f3653f8a8e55e3a6c Mon Sep 17 00:00:00 2001
From: wang <3597712270@qq.com>
Date: 星期四, 09 五月 2024 15:49:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java |  168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 168 insertions(+), 0 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
new file mode 100644
index 0000000..d559304
--- /dev/null
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -0,0 +1,168 @@
+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.edgstoragecage.entity.EdgStorageCage;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
+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.service.TaskCacheService;
+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 CacheGlassTask {
+
+    @Autowired
+    TaskCacheService taskCacheService;
+    @Autowired
+    GlassInfoService glassInfoService;
+    @Autowired
+    EdgStorageCageService edgStorageCageService;
+    @Autowired
+    EdgStorageCageDetailsService edgStorageCageDetailsService;
+
+    @Value("${mes.threshold}")
+    private int threshold;
+
+    @Scheduled(fixedDelay = 10000)
+    public void plcHomeEdgTask() {
+        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();
+//        1涓篈09绌洪棽锛�2涓篈10绌洪棽锛�3涓篈09A10閮界┖闂�,0涓篈09A10閮芥湁鐜荤拑
+        String outGlassstate = plcParameterObject.getPlcParameter("A09_glass_status").getValue();
+
+        String confirmationWrodAddress = plcParameterObject.getPlcParameter("MES_confirmation_word").getAddress();
+
+        if ("0".equals(taskRequestTypeValue)) {
+            log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓�0锛屽皢纭瀛楁敼涓�0");
+            S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0);
+            return;
+        }
+        if (!"0".equals(confirmationWrodValue)) {
+            log.info("1銆佽幏鍙栧埌鐨勮姹傚瓧涓嶄负0锛屽皢纭瀛楁敼涓�0");
+            S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 0);
+            return;
+        }
+        if ("1".equals(taskRequestTypeValue)) {
+            log.info("2銆佽繘鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+            inTo(glassIdeValue, confirmationWrodAddress);
+        } else if ("2".equals(taskRequestTypeValue)) {
+            //09绌洪棽 锛�1      10绌洪棽 锛�2        閮界┖闂诧細3    鍏朵粬0
+            log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+            outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress);
+        } else if ("3".equals(taskRequestTypeValue)) {
+            log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
+            if ("0".equals(outGlassstate)) {
+                inTo(glassIdeValue, confirmationWrodAddress);
+            } else {
+                outTo(Integer.parseInt(outGlassstate), confirmationWrodAddress);
+            }
+        }
+    }
+
+    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);
+        //娣诲姞杩涚墖浠诲姟  鏌ユ壘绌烘牸
+        List<EdgStorageCage> list = edgStorageCageService.selectCacheEmpty();
+        log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", list);
+        if (CollectionUtil.isEmpty(list)) {
+            log.info("4銆佷笉瀛樺湪绌烘牸");
+            return;
+        }
+        log.info("4銆佸皢鐜荤拑淇℃伅鎻掑叆鍗у紡鐞嗙墖绗�:{}", glassInfo);
+        EdgStorageCageDetails details = new EdgStorageCageDetails();
+        BeanUtils.copyProperties(glassInfo, details);
+        details.setState(100);
+        Integer slot = list.get(0).getSlot();
+        Integer deviceId = list.get(0).getDeviceId();
+        log.info("5銆佽幏鍙栫┖闂叉牸瀛愪负:{},璁惧鍙蜂负{}", slot, deviceId);
+        details.setSlot(slot);
+        details.setDeviceId(deviceId);
+        edgStorageCageDetailsService.save(details);
+
+        log.info("6銆佺敓鎴愯繘鐗囦换鍔′俊鎭瓨鍏ヤ换鍔¤〃");
+        TaskCache taskCache = new TaskCache();
+        taskCache.setGlassId(glassId);
+        taskCache.setTaskStatus(0);
+        taskCache.setStartCell(0);
+        taskCache.setEndCell(slot);
+        taskCache.setTaskType(1);
+        taskCache.setCreateTime(new Date());
+        taskCacheService.insertTaskCache(taskCache);
+        log.info("6銆佸彂閫佺‘璁ゅ瓧");
+        S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1);
+
+
+    }
+
+    private void outTo(int line, String confirmationWrodAddress) {
+        Assert.isTrue(line != 0, "A09銆丄10閮芥湁鐜荤拑锛屾棤娉曞嚭鐗�");
+        log.info("1銆佸嚭鐗囦换鍔″嚭銆恵}銆戝彿绾�,澶囨敞(09绌洪棽锛�1;10绌洪棽锛�2;閮界┖闂诧細3)", line);
+        int endcell = 0;
+
+        List<TaskCache> oldTaskCacheList;
+        if (line == 2) {
+            endcell = Const.A10_OUT_TARGET_POSITION;
+            oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A10_OUT_TARGET_POSITION);
+        } else {
+            endcell = Const.A09_OUT_TARGET_POSITION;
+            oldTaskCacheList = taskCacheService.selectLastOutCacheInfos(Const.A09_OUT_TARGET_POSITION);
+        }
+        log.info("2銆佸垽鏂嚭鐗囩嚎璺瘂}锛岃幏鍙栨渶鍚庤鏉$嚎宸插嚭鐗囩殑浠诲姟淇℃伅{}(澶囨敞锛�0寰呮墽琛岋紝1宸叉墽琛�).閮界┖闂蹭紭鍏堝嚭A09绾�", endcell, oldTaskCacheList);
+
+        String glassId = "";
+        if (CollectionUtil.isNotEmpty(oldTaskCacheList)) {
+            glassId = oldTaskCacheList.get(0).getGlassId();
+        }
+        EdgStorageCageDetails glassInfo = edgStorageCageDetailsService.selectOutGlass(glassId, threshold);
+        log.info("3銆佹寜鐓у巻鍙插凡鍑虹幓鐠僫d{}鍜岄槇鍊納}锛屾嬁鍑虹悊鐗囩鍐呯殑鍑虹墖淇℃伅{}", glassId, threshold, glassInfo);
+
+        if (glassInfo != null) {
+            log.info("4銆佹坊鍔犲嚭鐗囦换鍔★紝鐜荤拑id锛歿}锛屼换鍔$被鍨嬶細{}锛岃捣濮嬩綅缃細{}锛岀粨鏉熶綅缃細{}", glassInfo.getGlassId(),
+                    2, glassInfo.getSlot(), endcell);
+            TaskCache taskCache = new TaskCache();
+            taskCache.setGlassId(glassInfo.getGlassId());
+            taskCache.setTaskStatus(0);
+            taskCache.setStartCell(glassInfo.getSlot());
+            taskCache.setEndCell(endcell);
+            taskCache.setTaskType(2);
+            taskCache.setCreateTime(new Date());
+            taskCacheService.insertTaskCache(taskCache);
+            S7object.getinstance().plccontrol.WriteWord(confirmationWrodAddress, (short) 1);
+        }
+
+
+    }
+
+
+}

--
Gitblit v1.8.0