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/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java |  186 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 143 insertions(+), 43 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
index 2d5282b..b11d08b 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -1,82 +1,182 @@
 package com.mes.edgstoragecage.service.impl;
 
-import com.github.yulichang.query.MPJQueryWrapper;
+import cn.hutool.core.collection.CollectionUtil;
+import com.github.yulichang.base.MPJBaseServiceImpl;
+import com.github.yulichang.toolkit.JoinWrappers;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
+import com.mes.damage.entity.Damage;
+import com.mes.damage.service.DamageService;
 import com.mes.edgstoragecage.entity.EdgStorageCage;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
+import com.mes.edgstoragecage.entity.EdgStorageCageDetails;
 import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper;
+import com.mes.edgstoragecage.mapper.EdgStorageCageMapper;
+import com.mes.edgstoragecage.service.EdgStorageCageDetailsService;
 import com.mes.edgstoragecage.service.EdgStorageCageService;
 import com.mes.uppattenusage.entity.UpPattenUsage;
 import com.mes.uppattenusage.mapper.UpPattenUsageMapper;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
-import java.util.*;
 
 /**
  * <p>
- *  鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
  * </p>
  *
  * @author zhoush
  * @since 2024-04-07
  */
+@Slf4j
 @Service
-public class EdgStorageCageServiceImpl extends ServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
+public class EdgStorageCageServiceImpl extends MPJBaseServiceImpl<EdgStorageCageMapper, EdgStorageCage> implements EdgStorageCageService {
 
-    @Autowired
-    EdgStorageCageMapper edgStorageCageMapper;
     @Autowired
     EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
     @Autowired
     UpPattenUsageMapper upPattenUsageMapper;
 
-    @Override
-    //鏌ヨ绗煎唴绌烘牸
-    public List<Map> selectCacheEmpty(){
-        List<Map> map=edgStorageCageMapper.selectJoinList(
-                Map.class,new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
-                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
-                        .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
-                        .isNull("escd.slot")
-        );
-//        List<Map> map=baseMapper.selectJoinList(Map.class,JoinWrappers.lambda(EdgStorageCage.class)
-//                .selectAll(EdgStorageCage.class)
-//                .select(EdgStorageCageDetails::getGlassId,EdgStorageCageDetails::getFlowCardId,EdgStorageCageDetails::getWidth,EdgStorageCageDetails::getHeight)//鏌ヨuser_address tel 瀛楁
-//                .leftJoin(EdgStorageCageDetails.class,EdgStorageCageDetails::getSlot,EdgStorageCage::getSlot)
-//                .isNull(EdgStorageCageDetails::getSlot));
-        return map;
-    }
+    @Autowired
+    DamageService damageService;
 
     @Override
-    //鏌ヨ绗煎唴鍑虹墖浠诲姟   鎸夐挗鍖栫増鍥惧彿+鐗堝浘鍐呭簭鍙�
-    public List<Map> selectCacheOut(){
-        List<Map> list= upPattenUsageMapper.selectJoinList(
-                Map.class,new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class)
-                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
-                        .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
-                        .isNotNull("escd.slot")
-                        .orderByAsc("escd.tempering_layout_id","escd.tempering_feed_sequence")
+    public EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag) {
+        List<EdgStorageCage> emptyList = this.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
+                .selectAll(EdgStorageCage.class)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
+                .isNull(EdgStorageCageDetails::getSlot)
+                .last("order by abs(t.slot - " + currentSlot + ")  asc limit 2")
         );
-        return list;
+        if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+            return emptyList.get(0);
+        }
+        if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
+            return null;
+        }
+        return emptyList.get(0);
     }
 
+    /**
+     * 鏌ヨ绗煎唴绌烘牸
+     *
+     * @return
+     */
     @Override
-    //鐞嗙墖缂撳瓨璇︽儏
-    public List<Map> selectEdgStorageCages(){
-        List<Map> map=edgStorageCageMapper.selectJoinList(
-                Map.class,new MPJQueryWrapper<EdgStorageCage>().selectAll(EdgStorageCage.class)
-                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
-                        .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
+    public List<EdgStorageCage> selectCacheEmpty() {
+        return baseMapper.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
+                .selectAll(EdgStorageCage.class)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot)
+                        .eq(EdgStorageCageDetails::getState, "100"))
+                .isNull(EdgStorageCageDetails::getSlot)
+                .last("order by abs(t.slot - 4)  asc")
         );
-        return map;
     }
 
+    /**
+     * 鏌ヨ绗煎唴鍑虹墖浠诲姟   鎸夐挗鍖栫増鍥惧彿+鐗堝浘鍐呭簭鍙�
+     *
+     * @return
+     */
     @Override
-    //淇敼鐞嗙墖绗煎唴淇℃伅 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
-    public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage){
-        edgStorageCageMapper.updateById(edgStorageCage);
+    public List<Map<String, Object>> selectCacheOut() {
+
+        return upPattenUsageMapper.selectJoinMaps(JoinWrappers.lambda(UpPattenUsage.class).selectAll(UpPattenUsage.class)
+                .select(EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getGlassId)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
+                .isNull(EdgStorageCageDetails::getSlot)
+        );
+//        return upPattenUsageMapper.selectJoinMaps(new MPJQueryWrapper<UpPattenUsage>().selectAll(UpPattenUsage.class)
+//                        .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
+//                        .leftJoin("edg_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
+//                        .isNotNull("escd.slot")
+//                        .orderByAsc("escd.tempering_layout_id","escd.tempering_feed_sequence")
+//        );
+    }
+
+    /**
+     * 鐞嗙墖缂撳瓨璇︽儏
+     *
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> selectEdgStorageCages() {
+        return baseMapper.selectJoinMaps(JoinWrappers.lambda(EdgStorageCage.class)
+                .selectAll(EdgStorageCage.class)
+                .selectAs(EdgStorageCageDetails::getId, "esdId")
+                .select(EdgStorageCageDetails::getGlassId, EdgStorageCageDetails::getWidth, EdgStorageCageDetails::getHeight, EdgStorageCageDetails::getId)
+                .leftJoin(EdgStorageCageDetails.class, on -> on
+                        .eq(EdgStorageCageDetails::getDeviceId, EdgStorageCage::getDeviceId)
+                        .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN)
+                        .eq(EdgStorageCageDetails::getSlot, EdgStorageCage::getSlot))
+        );
+    }
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+     *
+     * @param edgStorageCage
+     * @return
+     */
+    @Override
+    public boolean updateEdgStorageCage(EdgStorageCage edgStorageCage) {
+        EdgStorageCage edgItem = baseMapper.selectById(edgStorageCage.getId());
+        if(edgItem!=null){
+            edgItem.setEnableState(edgStorageCage.getEnableState());
+            baseMapper.updateById(edgItem);
+            log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:鎴愬姛",edgStorageCage);
+            return true;
+        }
+        log.info("鍗у缂撳瓨锛氥�愬惎鐢�/绂佺敤銆� 鍙傛暟:{} 缁撴灉:澶辫触",edgStorageCage);
+        return false;
+    }
+
+    /**
+     * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+     *
+     * @param edgStorageCageId
+     * @param edgStorageCageDetails
+     * @return
+     */
+    @Override
+    public boolean updateEdgStorageCageDetails(int edgStorageCageId, EdgStorageCageDetails edgStorageCageDetails) {
+        EdgStorageCage edgItem = baseMapper.selectById(edgStorageCageId);
+        log.info("姝e父" + edgItem);
+        EdgStorageCageDetails edgDItem = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+        if (edgItem != null) {
+            //绉婚櫎  锛堢牬鎹�,鐩墠涓や釜姒傚康娣峰悎鍦ㄤ竴璧�,寤鸿鎷嗗紑锛�
+            EdgStorageCageDetails result = edgStorageCageDetailsMapper.selectOne(new MPJLambdaWrapper<EdgStorageCageDetails>()
+                    .eq(EdgStorageCageDetails::getSlot, edgStorageCageId));
+            if (result != null) {
+                int state=8;
+                result.setSlot(0);
+                result.setState(state);
+                Damage damage =new Damage();
+                damage.setGlassId(edgStorageCageDetails.getGlassId());
+                damage.setLine(1002);
+                damage.setWorkingProcedure("鍗у紡鐞嗙墖");
+                damage.setStatus(state);
+                damageService.insertDamage(damage);
+                edgStorageCageDetailsMapper.updateById(result);
+            }
+            //娣诲姞
+            if (edgDItem != null) {
+                //鍙紶鏍煎瓙  锛氱Щ闄ょ幓鐠�
+                EdgStorageCageDetails newresult = edgStorageCageDetailsMapper.selectById(edgStorageCageDetails.getId());
+                newresult.setSlot(edgItem.getSlot());
+                edgStorageCageDetailsMapper.updateById(newresult);
+            }
+        }
         return true;
     }
 
+
 }

--
Gitblit v1.8.0