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 | 257 +++++++++++++++++++++++++++++++--------------------
1 files changed, 157 insertions(+), 100 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 05c3b11..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,25 +1,31 @@
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;
-import java.util.Collections;
-import java.util.Comparator;
import java.util.List;
import java.util.Map;
-import java.util.Collections;
-import java.util.Comparator;
+
/**
* <p>
- * 鏈嶅姟瀹炵幇绫�
+ * 鏈嶅姟瀹炵幇绫�
* </p>
*
* @author zhoush
@@ -28,119 +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<Map> getCacheLeisure() {
- 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")
- .isNull("escd.slot")
- .orderByAsc("escd.slot")
- );
- return map;
+ 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 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 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<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> 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> 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")
+ 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))
);
- // 瀵硅幏鍙栫殑鏁版嵁鍒楄〃鎸夌収瀹藉害杩涜鎺掑簭
- Collections.sort(map, new Comparator<Map>() {
- @Override
- public int compare(Map o1, Map o2) {
- // 鑾峰彇瀹藉害骞舵瘮杈�
- double width1 = (double) o1.get("width");
- double width2 = (double) o2.get("width");
- return Double.compare(width2, width1);
+ }
+
+ /**
+ * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愬惎鐢�/绂佺敤銆�
+ *
+ * @param downStorageCage
+ * @return
+ */
+ @Override
+ 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;
}
- });
-
- return map;
+ } else {
+ return false;
+ }
}
+ /**
+ * 淇敼鐞嗙墖绗间俊鎭� 鍔熻兘锛氬绗煎唴鏍呮牸鐜荤拑 銆愭坊鍔�/鍒犻櫎/鏇存崲銆�
+ *
+ * @param downStorageCageId
+ * @param downStorageCageDetails
+ * @return
+ */
@Override
- public List<Map> getCacheInfo() {
- 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")
- .orderByAsc("t.slot")
- );
- return map;
+ 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);
+ }
+ }
+
+ 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<Map> getIsExistIntoCacheByLayoutAndSequence(Integer tempering_layout_id, Integer tempering_feed_sequence, double width) {
- List<Map> map = downStorageCageMapper.selectJoinList(
- Map.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 map;
- }
-
- @Override
- public List<Map> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width) {
- List<Map> map = downStorageCageMapper.selectJoinList(
- Map.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)
- .gt("t.remain_width", width)
- .orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
- );
- return map;
- }
-
-
-
}
--
Gitblit v1.8.0