From 051613aa73be3e75af5a6dfdb86a722bcb5af094 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期五, 23 八月 2024 16:46:51 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageServiceImpl.java |  274 +++++++++++++++++++++++++++++-------------------------
 1 files changed, 148 insertions(+), 126 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 ecceaf3..18e1259 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,12 +1,22 @@
 package com.mes.downstorage.service.impl;
 
-import com.github.yulichang.query.MPJQueryWrapper;
-import com.mes.downstorage.entity.DownStorageCage;
+import cn.hutool.core.collection.CollectionUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.service.DownGlassTaskService;
+import com.mes.downstorage.entity.DownStorageCage;
 import com.mes.downstorage.entity.DownStorageCageDetails;
+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 lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -15,7 +25,7 @@
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author zhoush
@@ -24,158 +34,170 @@
 @Slf4j
 @Service
 public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService {
-    @Autowired
+    @Autowired(required = false)
     private DownStorageCageMapper downStorageCageMapper;
-    @Override
-    public List<Map> gettask(){
-        downStorageCageMapper.selectList(null);
-//        downStorageCageMapper.selectJoin();
-        return null;
-    };
 
+    @Autowired
+    private GlassInfoService glassInfoService;
 
+    @Autowired
+    private DownGlassTaskService downGlassTaskService;
+    @Autowired
+    private DownStorageCageDetailsService downStorageCageDetailsService;
+    @Autowired
+    private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
 
     @Override
-    public List<DownStorageCageDetails> getCacheLeisure() {
-        log.info(" 鏌ヨ绗煎瓙鍐呯┖闂�");
-        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNull("escd.slot")
-                        .orderByAsc("escd.slot")
-        );
-        return list;
+    public DownGlassTask createDownGlassTask(GlassInfo glassInfo, Integer startCell, Integer endCell, Integer taskType) {
+        DownGlassTask downGlassTask = new DownGlassTask();
+
+        BeanUtils.copyProperties(glassInfo, downGlassTask);
+
+        downGlassTask.setStartCell(startCell);
+        downGlassTask.setTaskType(taskType);
+        downGlassTask.setEndCell(endCell);
+        return downGlassTask;
+    }
+
+    @Override
+    public DownGlassTask createDownGlassTask(DownStorageCageDetails glassInfo, Integer startCell, Integer endCell, Integer taskType) {
+        DownGlassTask downGlassTask = new DownGlassTask();
+
+        BeanUtils.copyProperties(glassInfo, downGlassTask);
+        downGlassTask.setStartCell(startCell);
+        downGlassTask.setTaskType(taskType);
+        downGlassTask.setEndCell(endCell);
+        return downGlassTask;
     }
 
 
-//    @Override
-//    public List<Map> getCacheOut(int start, int end) {
-//        log.info(" 鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
-//        List<Map> map = downStorageCageMapper.selectJoinList(
-//                Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
-//                        .select("escd.*")
-//                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-//                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
-//                        .isNotNull("escd.slot")
-//                        .between("dw.workstation_id", start, end)
-//                        .orderByAsc("escd.tempering_layout_id, escd.tempering_feed_sequence")
-//        );
-//        return map;
-//    }
+    //鎵惧埌绌烘牸瀛�
+    @Override
+    public List<DownStorageCageDetails> selectCacheEmpty() {
+        return this.selectJoinList(DownStorageCageDetails.class,
+                JoinWrappers.lambda(DownStorageCage.class)
+                        .selectAll(DownStorageCage.class)
+                        .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)
+        );
+    }
 
-
-
+    //鎵惧埌绌烘牸瀛�
+    @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> getCacheOut(int start, int end) {
-        log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
-        return  downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .leftJoin("down_workstation dw on escd.flow_card_id = dw.flow_card_id")
-                        .leftJoin("glass_info gi on dw.flow_card_id = gi.flowcard_id  and gi.flowcard_id=escd.flow_card_id ")
-                        .isNotNull("escd.slot")
-                        .between("dw.workstation_id", start, end)
-                        .orderByDesc("escd.width")
-                        .orderByDesc("escd.height")
+    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
-    public List<Map> getCacheInfo() {
-        log.info(" 鏌ヨ绗煎瓙鍐呬俊鎭�");
-        return downStorageCageMapper.selectJoinList(
-                Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .orderByAsc("t.slot")
+    public List<Map<String, Object>> selectDownStorageCages() {
+        return baseMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCage.class)
+                .selectAll(DownStorageCage.class)
+                .selectAs(DownStorageCageDetails::getId, "esdId")
+                .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::getState, Const.GLASS_STATE_IN))
         );
 
     }
 
-
-
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     *
+     * @param downStorageCage
+     * @return
+     */
     @Override
-    public List<DownStorageCageDetails> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width) {
-        log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌鐩稿悓鐗堝浘id骞朵笖澶т簬鍓嶉潰鐨勯『搴忕殑绌烘牸");
-        List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .eq("escd.tempering_layout_id", tempering_layout_id)
-                        .lt("escd.tempering_feed_sequence", tempering_feed_sequence)
-                        .gt("t.remain_width", width)
-                        .orderByAsc("escd.tempering_feed_sequence")
-        );
-        return list;
+    public boolean updateDownStorageCage(DownStorageCage downStorageCage) {
+        DownStorageCage downItem = baseMapper.selectById(downStorageCage.getId());
+        if (downItem != null) {
+            downItem.setEnableState(downStorageCage.getEnableState());
+            int rowsAffected = baseMapper.updateById(downItem);
+            if (rowsAffected > 0) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return false;
+        }
     }
 
 
-
-
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     *
+     * @param downStorageCageId
+     * @param downStorageCageDetails
+     * @return
+     */
     @Override
-    public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
-        log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿  鎵惧埌鐩稿悓娴佺▼鍗″彿鐨勭┖鏍�");
+    public boolean updateDownStorageCageDetails(int downStorageCageId, DownStorageCageDetails downStorageCageDetails) {
+        DownStorageCage downItem = baseMapper.selectById(downStorageCageId);
+        log.info("姝e父" + downItem);
+        if (downStorageCageDetails != null) {
+            DownStorageCageDetails edgDItem = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+            //娣诲姞
+            if (edgDItem != null) {
+                //鍙紶鏍煎瓙  锛氱Щ闄ょ幓鐠�
+                DownStorageCageDetails newresult = downStorageCageDetailsMapper.selectById(downStorageCageDetails.getId());
+                newresult.setSlot(downItem.getSlot());
+                downStorageCageDetailsMapper.updateById(newresult);
+            }
+        }
 
-        return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .eq("escd.flow_card_id", flowcardid)
-                        .gt("t.remain_width", width)
-                        .orderByAsc("escd.tempering_feed_sequence")
-        );
+        if (downItem != null) {
+            //绉婚櫎
+            DownStorageCageDetails result = downStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<DownStorageCageDetails>().eq(DownStorageCageDetails::getSlot, downStorageCageId));
+            if (result != null) {
+                result.setSlot(0);
+                downStorageCageDetailsMapper.updateById(result);
+            }
 
+        }
+        return true;
     }
-
-
-
-    @Override
-    public List<DownStorageCageDetails> IsExistIntoCacheByflowcardid(String flowcardid, double width) {
-        log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿");
-        return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .lt("escd.flow_card_id", flowcardid)
-                        // 鏉′欢 t.remain_width - width > 0
-                        .apply("t.remain_width - " + width + " > 0")
-                        .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
-        );
-
-    }
-
-
-    @Override
-    public List<DownStorageCageDetails> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width) {
-        log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿");
-        return downStorageCageMapper.selectJoinList(
-                DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
-                        .select("escd.*")
-                        .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
-                        .isNotNull("escd.slot")
-                        .lt("escd.tempering_layout_id", tempering_layout_id)
-                        // 鏉′欢 t.remain_width - width > 0
-                        .apply("t.remain_width - " + width + " > 0")
-                        .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
-        );
-
-    }
-
-
-
-
-
-
 
 }

--
Gitblit v1.8.0