From ecb4007518d3b3fb658dcd3fdcf3d87083874bdf Mon Sep 17 00:00:00 2001
From: wang <3597712270@qq.com>
Date: 星期二, 23 四月 2024 19:11:33 +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 | 330 +++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 294 insertions(+), 36 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..e91289e 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,22 +1,27 @@
package com.mes.downstorage.service.impl;
import com.github.yulichang.query.MPJQueryWrapper;
+import com.mes.common.PLCAutoMes;
+import com.mes.common.S7control;
+import com.mes.device.PlcParameterObject;
+import com.mes.downglassinfo.entity.DownGlassTask;
+import com.mes.downglassinfo.service.DownGlassTaskService;
import com.mes.downstorage.entity.DownStorageCage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.downstorage.entity.DownStorageCageDetails;
import com.mes.downstorage.mapper.DownStorageCageDetailsMapper;
import com.mes.downstorage.mapper.DownStorageCageMapper;
import com.mes.downstorage.service.DownStorageCageService;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.tools.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
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>
* 鏈嶅姟瀹炵幇绫�
@@ -30,6 +35,13 @@
public class DownStorageCageServiceImpl extends ServiceImpl<DownStorageCageMapper, DownStorageCage> implements DownStorageCageService {
@Autowired
private DownStorageCageMapper downStorageCageMapper;
+
+ @Autowired
+ private GlassInfoService glassInfoService;
+ @Autowired
+ private DownStorageCageService downStorageCageService;
+ @Autowired
+ private DownGlassTaskService downGlassTaskService;
@Override
public List<Map> gettask(){
downStorageCageMapper.selectList(null);
@@ -40,17 +52,18 @@
@Override
- public List<Map> getCacheLeisure() {
+ public List<DownStorageCageDetails> getCacheLeisure() {
log.info(" 鏌ヨ绗煎瓙鍐呯┖闂�");
- List<Map> map = downStorageCageMapper.selectJoinList(
- Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
+ 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 map;
+ return list;
}
+
// @Override
// public List<Map> getCacheOut(int start, int end) {
@@ -72,49 +85,44 @@
@Override
- public List<Map> getCacheOut(int start, int end) {
+ public List<DownStorageCageDetails> getCacheOut(int start, int end) {
log.info("鏍规嵁浼犲叆鐨勫伐浣嶆煡璇㈢鍚堟寜鐓ч『搴忓拰澶у皬鍑虹墖鐨勫皬鐗�");
- List<Map> map = downStorageCageMapper.selectJoinList(
- Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
+ 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)
- .orderByAsc("escd.tempering_layout_id, escd.tempering_feed_sequence")
+ .orderByDesc("escd.width")
+ .orderByDesc("escd.height")
);
-
- // 瀵硅幏鍙栫殑鏁版嵁鍒楄〃鎸夌収瀹藉害杩涜鎺掑簭
- 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);
- }
- });
-
- return map;
}
+
+
+
@Override
public List<Map> getCacheInfo() {
log.info(" 鏌ヨ绗煎瓙鍐呬俊鎭�");
- List<Map> map = downStorageCageMapper.selectJoinList(
+ return 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;
+
}
+
+
@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>()
+ 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")
@@ -123,24 +131,274 @@
.gt("t.remain_width", width)
.orderByAsc("escd.tempering_feed_sequence")
);
- return map;
+ return list;
}
+
+
+
+
+
+
@Override
- public List<Map> getIsExistIntoCacheByLayout(Integer tempering_layout_id, double width) {
- List<Map> map = downStorageCageMapper.selectJoinList(
- Map.class, new MPJQueryWrapper<DownStorageCageDetails>()
+ 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)
- .gt("t.remain_width", width)
+ // 鏉′欢 t.remain_width - width > 0
+ .apply("t.remain_width - " + width + " > 0")
.orderByDesc("escd.tempering_layout_id, escd.tempering_feed_sequence")
);
- return map;
+
}
+
+
+
+ @Override
+ public List<DownStorageCageDetails> getIsExistIntoCacheByflowcardid(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")
+ .eq("escd.flow_card_id", flowcardid)
+ .gt("t.remain_width", width)
+ .orderByAsc("escd.sequence")
+ );
+
+ }
+
+
+// @Override
+// public List<DownStorageCageDetails> Out() {
+// 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")
+// .isNotNull("escd.slot")
+//
+// .orderByDesc("escd.width")
+// .orderByDesc("escd.height")
+// );
+// }
+
+
+
+
+
+
+
+ public DownGlassTask createDownGlassTask(GlassInfo glassInfo, String startCell, String endCell,String taskType ) {
+ DownGlassTask downGlassTask = new DownGlassTask();
+ downGlassTask.setId(glassInfo.getId());
+ downGlassTask.setStartCell(startCell);
+ downGlassTask.setTaskType(taskType);
+ downGlassTask.setEndCell(endCell);
+ downGlassTask.setWidth(glassInfo.getWidth());
+ downGlassTask.setHeight(glassInfo.getHeight());
+ downGlassTask.setFilmsid(String.valueOf(glassInfo.getFilmsid()));
+ downGlassTask.setThickness(glassInfo.getThickness());
+ downGlassTask.setFlowCardId(glassInfo.getFlowcardId());
+
+ return downGlassTask;
+ }
+
+
+
+ @Override
+ public boolean processInto(String Number) {
+
+ //鎸塱d鏌ヨ鐜荤拑淇℃伅琛ㄩ噷鐨勭幓鐠�
+ GlassInfo GlassInfo = glassInfoService.selectGlassId(Number);
+ PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+ //瀛樺湪姝ょ幓鐠冪紪鍙�
+ if (GlassInfo != null) {
+ //鍚屾壘鍒板悓娴佺▼鍗¢檮杩戠┖鏍�
+ List<DownStorageCageDetails> list = getIsExistIntoCacheByflowcardid(GlassInfo.getFlowcardId(), GlassInfo.getWidth());
+ if (list.size() > 0) {
+ //瀛樺湪绌烘牸
+ //1.鐢熸垚浠诲姟锛� 璧峰浣嶇疆0 缁撴潫浣嶇疆this.slot 浠诲姟绫诲瀷 1 锛堣繘鐗囦换鍔★級
+ //2.鍥炲 1杩涚墖
+ DownStorageCageDetails item = list.get(0);
+
+ //selectInfo.insertCacheTask(GlassInfo.getId() + "", "0", item.getSlot() + "", "1", GlassInfo.getWidth(), GlassInfo.getHeight(), GlassInfo.getFilmsid(), GlassInfo.getThickness(), GlassInfo.getFlowcardId());
+
+ DownGlassTask downGlassTask = createDownGlassTask(GlassInfo,"0",item.getSlot()+"","1");
+
+ downGlassTaskService.insertCacheTask(downGlassTask);
+
+ S7control.getinstance().WriteWord(plcmes.getPlcParameter("MESToGaStatus").getAddress(), (short) 1);
+
+
+ //瀹屾垚鍚庢彃鍏ュ皬鐗囨暟鎹埌缂撳瓨琛�
+ return true;
+ }
+
+ } else {
+ // ID缂栧彿涓嶅瓨鍦� 涓嶅鐞�/鍥炲PLC 杩涜鎶ヨ鎻愮ず
+ }
+ //杩斿洖缁撴灉
+ return false;
+ }
+
+
+ /**
+ * 鐞嗙墖 鍑�
+ * @return
+ */
+ //
+ @Override
+ public boolean processOut() {
+ // 鏌ヨ浠诲姟
+
+
+ PlcParameterObject plcmes = PLCAutoMes.PlcMesObject;
+
+ List<DownStorageCageDetails> list = getCacheOut(1, 5);
+ List<DownStorageCageDetails> list2 = getCacheOut(6, 10);
+ List<DownStorageCageDetails> list3 = getCacheOut(1, 10);
+ //鑷姩缁戝畾鏋跺瓙
+
+
+
+ // 浼樺厛 瓒呭嚭灏哄浼樺厛浜哄伐鍑虹墖 浜哄伐澶勭悊
+
+ if (!list3.isEmpty()) {
+ DownStorageCageDetails item3 = list3.get(0);
+ if (item3.getHeight() >= 1 && item3.getWidth() >= 1) {
+
+ String endcell = "13";
+ String SendEndcell = "1";
+
+// selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
+
+ DownGlassTask downGlassTask = new DownGlassTask();
+ downGlassTask.setId(item3.getId()); // 璁剧疆鐜荤拑ID
+ downGlassTask.setStartCell("0");
+ downGlassTask.setEndCell(endcell);
+ downGlassTask.setTaskType("2");
+ downGlassTask.setWidth(item3.getWidth()); // 璁剧疆鐜荤拑瀹藉害
+ downGlassTask.setHeight(item3.getHeight()); // 璁剧疆鐜荤拑楂樺害
+ downGlassTask.setFilmsid(item3.getFilmsid()+""); // 璁剧疆鑶淚D
+ downGlassTask.setThickness(item3.getThickness()); // 璁剧疆鐜荤拑鍘氬害
+ downGlassTask.setFlowCardId(item3.getFlowCardId()); // 璁剧疆娴佺▼鍗″彿
+ downGlassTaskService.insertCacheTask(downGlassTask);
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ return true;
+ }
+ }
+
+
+ //鍚屾椂璇锋眰 浼樺厛鍚庣鍑虹墖
+ else if (!list3.isEmpty()) {
+ DownStorageCageDetails item3 = list3.get(0);
+ String endcell = "11";
+ String SendEndcell = "1";
+ // selectInfo.insertCacheTask(item3.getGlassId() + "", "0", endcell, "2", item3.getWidth(), item3.getHeight(), item3.getFilmsid(), item3.getThickness(), item3.getFlowCardId());
+ DownGlassTask downGlassTask = new DownGlassTask();
+ downGlassTask.setId(item3.getId()); // 璁剧疆鐜荤拑ID
+ downGlassTask.setStartCell("0");
+ downGlassTask.setEndCell(endcell);
+ downGlassTask.setTaskType("2");
+ downGlassTask.setWidth(item3.getWidth()); // 璁剧疆鐜荤拑瀹藉害
+ downGlassTask.setHeight(item3.getHeight()); // 璁剧疆鐜荤拑楂樺害
+ downGlassTask.setFilmsid(item3.getFilmsid()+""); // 璁剧疆鑶淚D
+ downGlassTask.setThickness(item3.getThickness()); // 璁剧疆鐜荤拑鍘氬害
+ downGlassTask.setFlowCardId(item3.getFlowCardId()); // 璁剧疆娴佺▼鍗″彿
+ downGlassTaskService.insertCacheTask(downGlassTask);
+
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), SendEndcell);
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ return true;
+
+ }
+ // 鎸夌収澶у皬绗﹀悎鍓嶇鍑虹墖
+ else if (!list.isEmpty()) {
+ DownStorageCageDetails item = list.get(0);
+
+ // 鍑哄埌 G06
+ //selectInfo.insertCacheTask(item.getGlassId() + "", "0", "06", "2", item.getWidth(), item.getHeight(), item.getFilmsid(), item.getThickness(), item.getFlowCardId());
+ DownGlassTask downGlassTask = new DownGlassTask();
+ downGlassTask.setId(item.getId()); // 璁剧疆鐜荤拑ID
+ downGlassTask.setStartCell("0");
+ downGlassTask.setEndCell("06");
+ downGlassTask.setTaskType("2");
+ downGlassTask.setWidth(item.getWidth()); // 璁剧疆鐜荤拑瀹藉害
+ downGlassTask.setHeight(item.getHeight()); // 璁剧疆鐜荤拑楂樺害
+ downGlassTask.setFilmsid(item.getFilmsid()+""); // 璁剧疆鑶淚D
+ downGlassTask.setThickness(item.getThickness()); // 璁剧疆鐜荤拑鍘氬害
+ downGlassTask.setFlowCardId(item.getFlowCardId()); // 璁剧疆娴佺▼鍗″彿
+ downGlassTaskService.insertCacheTask(downGlassTask);
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "1");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ return true;
+
+ // 鎸夌収椤哄簭绗﹀悎鍚庣鍑虹墖
+ } else if (!list2.isEmpty()) {
+ DownStorageCageDetails item2 = list2.get(0);
+
+ // 鍑哄埌 G11
+ // selectInfo.insertCacheTask(item2.getGlassId() + "", "0", "11", "2", item2.getWidth(), item2.getHeight(), item2.getFilmsid(), item2.getThickness(), item2.getFlowCardId());
+ DownGlassTask downGlassTask = new DownGlassTask();
+ downGlassTask.setId(item2.getId()); // 璁剧疆鐜荤拑ID
+ downGlassTask.setStartCell("0");
+ downGlassTask.setEndCell("11");
+ downGlassTask.setTaskType("2");
+ downGlassTask.setWidth(item2.getWidth()); // 璁剧疆鐜荤拑瀹藉害
+ downGlassTask.setHeight(item2.getHeight()); // 璁剧疆鐜荤拑楂樺害
+ downGlassTask.setFilmsid(item2.getFilmsid()+""); // 璁剧疆鑶淚D
+ downGlassTask.setThickness(item2.getThickness()); // 璁剧疆鐜荤拑鍘氬害
+ downGlassTask.setFlowCardId(item2.getFlowCardId()); // 璁剧疆娴佺▼鍗″彿
+ downGlassTaskService.insertCacheTask(downGlassTask);
+
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.28").getAddress(), "2");
+ S7control.getinstance().writeString(plcmes.getPlcParameter("DB14.20").getAddress(), "1");
+ return true;
+
+
+ }
+
+
+
+ // 杩斿洖缁撴灉
+ return false;
+ }
+
+
+
+
+
+
}
--
Gitblit v1.8.0