From ce2791d2a730845a564ce0e16563b03fea0970db Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期三, 15 五月 2024 16:24:28 +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/DownStorageCageDetailsServiceImpl.java | 185 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 179 insertions(+), 6 deletions(-)
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
index 04f9393..f94df84 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downstorage/service/impl/DownStorageCageDetailsServiceImpl.java
@@ -1,30 +1,47 @@
package com.mes.downstorage.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.yulichang.query.MPJQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.yulichang.toolkit.JoinWrappers;
+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.downworkstation.entity.DownWorkstation;
+import com.mes.downworkstation.mapper.DownWorkstationMapper;
import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.mapper.GlassInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
+
@Slf4j
@Service
public class DownStorageCageDetailsServiceImpl extends ServiceImpl<DownStorageCageDetailsMapper, DownStorageCageDetails> implements DownStorageCageDetailsService {
-
+ @Autowired(required = false)
+ private DownStorageCageMapper downStorageCageMapper;
@Autowired
private DownStorageCageDetailsMapper downStorageCageDetailsMapper;
+ @Autowired
+ private GlassInfoMapper glassInfoMapper;
+ @Autowired
+ private DownWorkstationMapper downWorkstationMapper;
+
@Override
public void addDownStorageCageDetails(DownStorageCageDetails details) {
this.save(details);
@@ -33,7 +50,7 @@
@Override
//淇敼鐞嗙墖绗煎唴淇℃伅 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
- public boolean updatedownStorageCageDetails(DownStorageCageDetails details){
+ public boolean updatedownStorageCageDetails(DownStorageCageDetails details) {
baseMapper.updateById(details);
return true;
}
@@ -46,8 +63,8 @@
DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCageDetails>()
.select("t.*")
.leftJoin("(SELECT t1.* FROM down_storage_cage_details t1 "
- + "JOIN (SELECT flow_card_id, MAX(width) AS max_width FROM glass_info GROUP BY flow_card_id) t "
- + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width = t.max_width) t3"
+ + "JOIN (SELECT flow_card_id, MAX(width*height) AS max_width FROM glass_info GROUP BY flow_card_id) t "
+ + "ON t1.flow_card_id = t.flow_card_id WHERE t1.width*t1.height = t.max_width) t3"
+ " ON t.glass_id = t3.glass_id")
.leftJoin("down_workstation t4 ON t3.flow_card_id = t4.flow_card_id")
.isNull(Boolean.parseBoolean("t.glass_id"), "SELECT glass_id FROM down_glass_info")
@@ -59,7 +76,163 @@
}
+// @Override
+// public List<DownStorageCageDetails> getCacheOut(int start, int end) {
+// log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
+// return downStorageCageMapper.selectJoinList(
+// DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+// .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")
+// );
+// }
- // Other business methods can be implemented here
+// @Override
+// public List<DownStorageCageDetails> selectCacheEmpty2(){
+// return downStorageCageMapper.selectJoinList(
+// DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+// .select("escd.glass_id","escd.flow_card_id","escd.width","escd.height")
+// .leftJoin("down_storage_cage_details escd on t.device_id=escd.device_id and t.slot=escd.slot")
+// .isNull("escd.slot")
+// );
+// }
+
+
+ @Override
+ public List<Map<String, Object>> getCacheInfo() {
+ log.info("鏌ヨ绗煎瓙鍐呬俊鎭�");
+ return downStorageCageDetailsMapper.selectJoinMaps(JoinWrappers.lambda(DownStorageCageDetails.class) // 浣跨敤 JoinWrappers.lambda 鍒涘缓鑱斿悎鏌ヨ
+ .selectAll(DownStorageCageDetails.class) // 閫夋嫨鎵�鏈夊瓧娈�
+ .eq(DownStorageCage::getSlot, DownStorageCageDetails::getSlot) // 璁剧疆鍏宠仈鏉′欢
+ .orderByAsc(DownStorageCage::getSlot) // 鎸� slot 瀛楁鍗囧簭鎺掑簭
+ );
+ }
+
+//
+// @Override
+// public List<Map> getCacheInfo() {
+// log.info(" 鏌ヨ绗煎瓙鍐呬俊鎭�");
+// return downStorageCageMapper.selectJoinList(
+// Map.class, new MPJQueryWrapper<DownStorageCage>()
+// .select("escd.*")
+// .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+// .orderByAsc("t.slot")
+// );
+//
+// }
+
+// @Override
+// public List<DownStorageCageDetails> getCacheLeisure() {
+// log.info(" 鏌ヨ绗煎瓙鍐呯┖闂�");
+// List<DownStorageCageDetails> list = downStorageCageMapper.selectJoinList(
+// DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+// .select("escd.*")
+// .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+// .isNull("escd.slot")
+//
+// .orderByAsc("escd.slot")
+// );
+// return list;
+// }
+
+
+// @Override
+// public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(String flowcardid, double width) {
+// log.info(" 鏌ヨ鍙繘姝ょ墖鐜荤拑鐨勬爡鏍煎彿 鎵惧埌绌烘牸");
+//
+// return downStorageCageMapper.selectJoinList(
+// DownStorageCageDetails.class, new MPJQueryWrapper<DownStorageCage>()
+// .select("escd.*")
+// .leftJoin("down_storage_cage_details escd on t.slot = escd.slot")
+// .isNull("escd.slot")
+// .apply("t.remain_width - " + width + " > 0")
+// .orderByAsc("escd.sequence")
+// );
+//
+//
+//
+//
+// }
+
+
+ @Override
+ public List<DownStorageCageDetails> CacheOut1(int start, int end) {
+
+
+ List<DownStorageCageDetails> cageDetails = downStorageCageDetailsMapper.selectList(null);
+ // Step 5: 鍒ゆ柇 down_storage_cage_details 缁撴灉鏁伴噺鏄惁涓�9锛屽鏋滄槸锛屽垯鎵ц鍙﹀涓�涓煡璇�
+ if (cageDetails.size() == 9) {
+ log.info("1銆佺瀛愭弧浜嗙殑鏃跺�欙紝鎸夌収绗煎唴鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+ List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+
+ List<String> flowCardIds = new ArrayList<>();
+ for (DownWorkstation workstation : workstationList) {
+ flowCardIds.add(workstation.getFlowCardId());
+ }
+
+ if (flowCardIds.isEmpty()) {
+ log.error("鏈壘鍒板搴旂殑 flow_card_id");
+ return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+ }
+ LambdaQueryWrapper<DownStorageCageDetails> anotherQueryWrapper = Wrappers.lambdaQuery();
+
+ anotherQueryWrapper.orderByAsc(DownStorageCageDetails::getTemperingLayoutId);
+ anotherQueryWrapper.orderByDesc(DownStorageCageDetails::getTemperingFeedSequence);
+ anotherQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+ anotherQueryWrapper.last("LIMIT 1");
+ return downStorageCageDetailsMapper.selectList(anotherQueryWrapper);
+ } else {
+
+ // Step 1: 鏌ヨ DownWorkstation 琛ㄨ幏鍙栧搴� workstation_id 鐨� flow_card_id
+ List<DownWorkstation> workstationList = downWorkstationMapper.selectList(new QueryWrapper<DownWorkstation>().between("workstation_id", start, end));
+
+
+ List<String> flowCardIds = new ArrayList<>();
+ for (DownWorkstation workstation : workstationList) {
+ flowCardIds.add(workstation.getFlowCardId());
+ }
+
+ if (flowCardIds.isEmpty()) {
+ log.error("2銆佹湭鎵惧埌瀵瑰簲鐨� flow_card_id");
+ return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+ }
+ log.info("娴佺▼鍗�:{}", flowCardIds);
+ LambdaQueryWrapper<GlassInfo> queryWrapper2 = Wrappers.lambdaQuery();
+ queryWrapper2.select(GlassInfo::getFlowCardId,
+ GlassInfo::getGlassId,
+ GlassInfo::getTemperingLayoutId,
+ GlassInfo::getTemperingFeedSequence)
+ .notInSql(GlassInfo::getGlassId, "SELECT glass_id FROM down_glass_info")
+ .orderByAsc(GlassInfo::getTemperingLayoutId)
+ .orderByDesc(GlassInfo::getTemperingFeedSequence)
+ .last("LIMIT 1");
+
+ // 鏌ヨ GlassInfo 琛�
+ List<GlassInfo> glassInfos = glassInfoMapper.selectList(queryWrapper2);
+ if (glassInfos.isEmpty()) {
+ log.error("鏈壘鍒板搴旂殑鐜荤拑淇℃伅");
+ return Collections.emptyList(); // 杩斿洖绌哄垪琛ㄦ垨鑰呮姏鍑哄紓甯革紝瑙嗘儏鍐佃�屽畾
+ }
+ // Step 3: 鏋勯�犳煡璇� down_storage_cage_details 琛ㄧ殑鏉′欢
+ List<String> glassIds = glassInfos.stream().map(GlassInfo::getGlassId).collect(Collectors.toList());
+ LambdaQueryWrapper<DownStorageCageDetails> cageDetailsQueryWrapper = Wrappers.lambdaQuery();
+ cageDetailsQueryWrapper.in(DownStorageCageDetails::getGlassId, glassIds);
+ cageDetailsQueryWrapper.in(DownStorageCageDetails::getFlowCardId, flowCardIds);
+
+ log.info("鎸夌収娴佺▼鍗$殑鐗堝浘id 鐗堝浘鐗囧簭鍑�");
+ // Step 4: 鏌ヨ down_storage_cage_details 琛ㄥ苟杩斿洖缁撴灉
+ return downStorageCageDetailsMapper.selectList(cageDetailsQueryWrapper);
+ }
+
+
+ }
+
+
}
--
Gitblit v1.8.0