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