From b9b44b51b201e2f5a9a1f3665c7fb76b5690f9af Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期一, 23 十二月 2024 16:13:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 deletions(-)

diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
index 68350a7..3a365aa 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageServiceImpl.java
@@ -1,10 +1,22 @@
 package com.mes.hollow.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.mes.common.config.Const;
 import com.mes.hollow.entity.HollowBigStorageCage;
+import com.mes.hollow.entity.HollowBigStorageCageDetails;
+import com.mes.hollow.entity.dto.HollowBigStorageAndDetailsDTO;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
 import com.mes.hollow.mapper.HollowBigStorageCageMapper;
 import com.mes.hollow.service.HollowBigStorageCageService;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * (HollowBigStorageCage)琛ㄦ湇鍔″疄鐜扮被
@@ -15,5 +27,39 @@
 @Service
 public class HollowBigStorageCageServiceImpl extends ServiceImpl<HollowBigStorageCageMapper, HollowBigStorageCage> implements HollowBigStorageCageService {
 
+    @Value("${mes.slotWidth}")
+    private Integer slotWidth;
+    @Override
+    public List<HollowBigStorageAndDetailsDTO> queryHollowBigStorageCageDetail(HollowBigStorageDetailsQueryVO query) {
+        MPJLambdaWrapper<HollowBigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(HollowBigStorageCage.class).selectCollection(HollowBigStorageCageDetails.class, HollowBigStorageCage::getHollowBigStorageCageDetails)
+                .leftJoin(HollowBigStorageCageDetails.class, on -> on.eq(HollowBigStorageCageDetails::getSlot, HollowBigStorageCage::getSlot)
+                        .like(StringUtils.isNotBlank(query.getFilmsId()), HollowBigStorageCageDetails::getFilmsId, query.getFilmsId())
+                        .like(StringUtils.isNotBlank(query.getFlowCardId()), HollowBigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+                        .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
+                .eq(HollowBigStorageCage::getDeviceId, query.getDeviceId())
+                .orderByAsc(HollowBigStorageCage::getDeviceId)
+                .orderByAsc(HollowBigStorageCage::getSlot);
+        return baseMapper.selectJoinList(HollowBigStorageAndDetailsDTO.class, wrapper);
+    }
+
+    @Override
+    public Map<Integer, List<HollowBigStorageCage>> queryHollowbigStorageCageDetail() {
+        MPJLambdaWrapper<HollowBigStorageCage> wrapper = new MPJLambdaWrapper<>();
+        wrapper.selectAll(HollowBigStorageCage.class).selectCollection(HollowBigStorageCageDetails.class, HollowBigStorageCage::getHollowBigStorageCageDetails)
+                .leftJoin(HollowBigStorageCageDetails.class, on -> on.eq(HollowBigStorageCageDetails::getSlot, HollowBigStorageCage::getSlot)
+                        .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL).orderByAsc(HollowBigStorageCageDetails::getUpdateTime));
+        List<HollowBigStorageCage> bigStorageCages = baseMapper.selectJoinList(HollowBigStorageCage.class, wrapper);
+        Map<Integer, List<HollowBigStorageCage>> listMap = bigStorageCages.stream().collect(Collectors.groupingBy(item -> item.getDeviceId()));
+        return listMap;
+    }
+
+    @Override
+    public List<Map<String, Object>> selectBigStorageCageUsage() {
+        QueryWrapper<HollowBigStorageCage> wrapper = new QueryWrapper<>();
+        wrapper.select("device_id,ROUND(1 - SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) / COUNT(device_id), 2)*100 AS percentage,SUM(CASE WHEN remain_width = " + slotWidth + " THEN 1 ELSE 0 END) AS count")
+                .groupBy("device_id");
+        return baseMapper.selectMaps(wrapper);
+    }
 }
 

--
Gitblit v1.8.0