From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 11 十月 2024 08:39:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java |  103 ++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 85 insertions(+), 18 deletions(-)

diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
index 53d6be3..b204f0c 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java
@@ -1,23 +1,24 @@
 package com.mes.downstorage.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.yulichang.toolkit.JoinWrappers;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
-
-//import com.mes.device.PlcParameterObject;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.downglassinfo.entity.DownGlassTask;
 import com.mes.downglassinfo.service.DownGlassTaskService;
 import com.mes.downstorage.entity.DownStorageCage;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.mes.downstorage.entity.DownStorageCageDetails;
+import com.mes.downstorage.entity.request.CacheWornRequest;
 import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
 import com.mes.downstorage.mapper.DownStorageCageMapper;
 import com.mes.downstorage.service.DownStorageCageDetailsService;
 import com.mes.downstorage.service.DownStorageCageService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.service.GlassInfoService;
-import com.mes.pp.entity.OptimizeDetail;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,9 +50,11 @@
     private DownStorageCageDetailsService downStorageCageDetailsService;
     @Autowired
     private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+    @Autowired
+    DamageService damageService;
 
     @Override
-    public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell, String taskType) {
+    public DownGlassTask createDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) {
         DownGlassTask downGlassTask = new DownGlassTask();
 
         BeanUtils.copyProperties(glassInfo, downGlassTask);
@@ -63,7 +66,7 @@
     }
 
     @Override
-    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, String startCell, String endCell, String taskType) {
+    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, Integer startCell, Integer endCell, Integer taskType) {
         DownGlassTask downGlassTask = new DownGlassTask();
 
         BeanUtils.copyProperties(glassInfo, downGlassTask);
@@ -72,27 +75,63 @@
         downGlassTask.setEndCell(endCell);
         return downGlassTask;
     }
-
-
 
 
     //鎵惧埌绌烘牸瀛�
     @Override
     public List<DownStorageCageDetails> selectCacheEmpty() {
-        return baseMapper.selectJoinList(DownStorageCageDetails.class,
+        return this.selectJoinList(DownStorageCageDetails.class,
                 JoinWrappers.lambda(DownStorageCage.class)
                         .selectAll(DownStorageCage.class)
-                        .select(DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getGlassId)
                         .leftJoin(DownStorageCageDetails.class, on -> on
                                 .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
-                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot))
+                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
                         .isNull(DownStorageCageDetails::getSlot)
         );
     }
 
+    //鎵惧埌绌烘牸瀛�
+    @Override
+    public DownStorageCage selectCacheEmpty(int currentSlot, boolean flag) {
+        List<DownStorageCage> emptyList = this.selectJoinList(DownStorageCage.class,
+                JoinWrappers.lambda(DownStorageCage.class)
+                        .selectAll(DownStorageCage.class)
+                        .leftJoin(DownStorageCageDetails.class, on -> on
+                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                        .isNull(DownStorageCageDetails::getSlot)
+                        .eq(DownStorageCage::getEnableState, Const.SLOT_ON)
+                        .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
+        );
+        if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+            return emptyList.get(0);
+        }
+        if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
+            return null;
+        }
+        return emptyList.get(0);
+    }
 
 
+    @Override
+    public List<DownStorageCageDetails> selectCacheMax() {
+        return baseMapper.selectJoinList(DownStorageCageDetails.class,
+                JoinWrappers.lambda(DownStorageCage.class)
+                        // 娣诲姞 DownStorageCage 鐨� enableState 涓� 1 鐨勬潯浠�
+                        .select(DownStorageCageDetails::getFlowCardId)
+                        .leftJoin(DownStorageCageDetails.class, on -> on
+                                .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
+                                .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                                .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                        .isNull(DownStorageCageDetails::getSlot)
+                        .eq(DownStorageCage::getEnableState, 1)
+                        .groupBy(DownStorageCageDetails::getFlowCardId) // 鏍规嵁 flowCardId 鍒嗙粍
+                        // 浣跨敤瀛愭煡璇㈠拰鎺掑簭鏉ヨ幏鍙栫浉鍚� FlowCardId 涓殑鏈�澶氳褰�
+                        .having("count(*) = (select max(cnt) from (select count(*) as cnt from down_storage_cage_details group by flow_card_id) as temp)")
 
+        );
+    }
 
 
     @Override
@@ -103,7 +142,8 @@
                 .select(DownStorageCageDetails::getGlassId, DownStorageCageDetails::getWidth, DownStorageCageDetails::getHeight, DownStorageCageDetails::getId)
                 .leftJoin(DownStorageCageDetails.class, on -> on
                         .eq(DownStorageCageDetails::getDeviceId, DownStorageCage::getDeviceId)
-                        .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot))
+                        .eq(DownStorageCageDetails::getSlot, DownStorageCage::getSlot)
+                        .eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN))
         );
 
     }
@@ -117,10 +157,19 @@
     @Override
     public boolean updateDownStorageCage(DownStorageCage downStorageCage) {
         DownStorageCage downItem = baseMapper.selectById(downStorageCage.getId());
-        downItem.setEnableState(downStorageCage.getEnableState());
-        baseMapper.updateById(downItem);
-        return true;
+        if (downItem != null) {
+            downItem.setEnableState(downStorageCage.getEnableState());
+            int rowsAffected = baseMapper.updateById(downItem);
+            if (rowsAffected > 0) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
     }
+
 
     /**
      * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
@@ -146,7 +195,10 @@
 
         if (downItem != null) {
             //绉婚櫎
-            DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot, downStorageCageId));
+            DownStorageCageDetails result = downStorageCageDetailsMapper
+                    .selectOne(new MPJLambdaWrapper<DownStorageCageDetails>()
+                            .eq(DownStorageCageDetails::getSlot, downStorageCageId)
+                    );
             if (result != null) {
                 result.setSlot(0);
                 downStorageCageDetailsMapper.updateById(result);
@@ -156,4 +208,19 @@
         return true;
     }
 
+    @Override
+    public void deleteDownStorageCage(CacheWornRequest cacheWornRequest) {
+        Damage damage = new Damage();
+        BeanUtils.copyProperties(cacheWornRequest, damage);
+        damage.setType(cacheWornRequest.getState());
+        damage.setRemark("");
+        damage.setStatus(0);
+        damageService.insertDamage(damage);
+        downStorageCageDetailsService.update(new LambdaUpdateWrapper<DownStorageCageDetails>()
+                .set(DownStorageCageDetails::getState, Const.GLASS_STATE_OUT)
+                .eq(DownStorageCageDetails::getGlassId, cacheWornRequest.getGlassId())
+                .eq(DownStorageCageDetails::getState,Const.GLASS_STATE_IN));
+
+    }
+
 }

--
Gitblit v1.8.0