From 6bf911a38f75341dd5d2b86dad58fa313584a981 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 27 十一月 2024 09:46:13 +0800
Subject: [PATCH] `1、卧理正常第一版本代码提交 2、大理片笼正常版本提交

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java |   36 +++++++++++++++++++++---------------
 1 files changed, 21 insertions(+), 15 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index 0f4e52a..b9a8248 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -32,7 +32,6 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * @Author : zhoush
@@ -211,10 +210,6 @@
                     .eq(EdgStorageCage::getDeviceId, deviceId)
                     .eq(EdgStorageCage::getEnableState, Const.SLOT_ON)
                     .ge(EdgStorageCage::getRemainWidth, Math.max(glassInfo.getWidth(), glassInfo.getHeight())).last("order by abs(slot - " + task.getCurrentCell() + ")"));
-//            //鐩撮�氫换鍔�
-//            if (flag && CollectionUtil.isNotEmpty(emptyList)) {
-//                return emptyList.get(0);
-//            }
             if (CollectionUtil.isEmpty(storageCageList) || storageCageList.size() == 1) {
                 log.info("娌℃湁澶氫綑鐨勭┖鏍煎瓙");
                 return Boolean.FALSE;
@@ -233,7 +228,7 @@
         task.setStartCell(edgStorageCage.getSlot());
         task.setTaskRunning(Const.GLASS_CACHE_TYPE_IN);
         edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
-        saveHistoryTask(task);
+        saveHistoryTask(task, deviceId);
         return Boolean.TRUE;
     }
 
@@ -372,7 +367,7 @@
         task.setTaskRunning(taskType);
 
         edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
-        saveHistoryTask(task);
+        saveHistoryTask(task, deviceId);
         //鏇存柊璇︽儏琛ㄤ换鍔″嚭鐗囦腑
         edgStorageCageDetailsService.update(new LambdaUpdateWrapper<EdgStorageCageDetails>()
                 .set(EdgStorageCageDetails::getState, Const.GLASS_STATE_OUT)
@@ -399,16 +394,20 @@
         Integer cell = task.getStartCell();
         Integer state = task.getTaskState();
         task.setTaskRunning(Const.GLASS_CACHE_TYPE_EMPTY);
+        String glassIdOut = task.getGlassIdOut();
         task.setGlassIdOut("");
         task.setStartCell(0);
         edgStorageDeviceTaskService.updateTaskMessage(tableName, task);
+        EdgStorageDeviceTaskHistory taskHistory = edgStorageDeviceTaskHistoryService.getOne(new LambdaQueryWrapper<EdgStorageDeviceTaskHistory>()
+                .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
+                .orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
         edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
                 .eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
                 .set(EdgStorageDeviceTaskHistory::getTaskState,
                         Const.GLASS_CACHE_TYPE_FINISH.equals(state) ? Const.RAW_GLASS_TASK_SUCCESS : Const.RAW_GLASS_TASK_FAILURE)
         );
         int device = tableName.equals("edg_storage_device_one_task") ? 1 : 2;
-        updateCellRemainWidth(cell, device);
+        updateCellRemainWidth(cell, device, taskHistory);
         return Boolean.TRUE;
     }
 
@@ -435,7 +434,7 @@
                         "where engineer_id = '" + glassInfo.getEngineerId() + "' and width = " + glassInfo.getWidth() + " and height = " + glassInfo.getHeight()
                         + " and state != 100")
                 .orderByAsc(GlassInfo::getTemperingLayoutId)
-                .orderBy(Boolean.TRUE, Boolean.TRUE, GlassInfo::getTemperingFeedSequence)
+                .orderByAsc(GlassInfo::getTemperingFeedSequence)
                 .last("Limit 1");
         GlassInfo swapGlassInfo = glassInfoService.getOne(queryWrapper);
         if (swapGlassInfo != null && !glassInfo.getGlassId().equals(swapGlassInfo.getGlassId())) {
@@ -514,26 +513,33 @@
         }
     }
 
-    public boolean saveHistoryTask(EdgStorageDeviceTask task) {
+    public boolean saveHistoryTask(EdgStorageDeviceTask task, int deviceId) {
         EdgStorageDeviceTaskHistory taskHistory = new EdgStorageDeviceTaskHistory();
         BeanUtils.copyProperties(task, taskHistory);
         taskHistory.setTaskType(task.getTaskRunning());
         taskHistory.setCreateTime(new Date());
         taskHistory.setTaskState(Const.RAW_GLASS_TASK_NEW);
+        taskHistory.setDeviceId(deviceId);
         edgStorageDeviceTaskHistoryService.save(taskHistory);
         return Boolean.TRUE;
     }
 
-    private boolean updateCellRemainWidth(int slot, int device) {
+    private boolean updateCellRemainWidth(int slot, int device, EdgStorageDeviceTaskHistory taskHistory) {
         List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getSlot, slot)
                 .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
-        List<Integer> slotList = new ArrayList<>();
+        int remainWidth = cellLength;
         if (CollectionUtil.isNotEmpty(list)) {
-            slotList = list.stream().map(EdgStorageCageDetails::getSlot).distinct().collect(Collectors.toList());
+            if (2 == taskHistory.getTaskType()) {
+                remainWidth = 0;
+            } else {
+                EdgStorageCage storageCage = edgStorageCageService.getOne(new LambdaQueryWrapper<EdgStorageCage>()
+                        .eq(EdgStorageCage::getDeviceId, device).eq(EdgStorageCage::getSlot, slot));
+                EdgStorageCageDetails bigDetails = list.stream().filter(e -> e.getGlassId().equals(taskHistory.getGlassIdIn())).findFirst().orElse(null);
+                remainWidth = storageCage.getRemainWidth() - glassGap - (int) Math.max(bigDetails.getWidth(), bigDetails.getHeight());
+            }
         }
-        list.removeAll(slotList);
         edgStorageCageService.update(new LambdaUpdateWrapper<EdgStorageCage>().
-                set(EdgStorageCage::getRemainWidth, cellLength).eq(EdgStorageCage::getSlot, slot).eq(EdgStorageCage::getDeviceId, device));
+                set(EdgStorageCage::getRemainWidth, remainWidth).eq(EdgStorageCage::getSlot, slot).eq(EdgStorageCage::getDeviceId, device));
         return Boolean.TRUE;
     }
 

--
Gitblit v1.8.0