From b639aacebde9923c025a3b1f9d2f6c41aaa6cb0e Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期二, 16 七月 2024 14:55:43 +0800
Subject: [PATCH] 磨边前理片:新增笼子状态过滤 大理片:新增格子厚度参数过滤
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml | 2
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java | 15 ++++++-
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 42 +++++++--------------
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java | 13 ++++--
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 18 ++++++---
5 files changed, 48 insertions(+), 42 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
index 1ac00f6..98206a6 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.yulichang.query.MPJQueryWrapper;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.common.S7object;
import com.mes.common.config.Const;
import com.mes.device.PlcParameterObject;
@@ -128,27 +129,6 @@
}
Date endDate = new Date();
log.info("鏈浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms", endDate, endDate.getTime() - startDate.getTime());
- }
-
- public void plcToHomeEdgTask() {
- // log.info("鎺ㄦ暟鎹�");
- // jsonObject.append("params", new short[] { 30, 40, });
-// ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Home");
-// if (sendwServer != null) {
-// for (WebSocketServer webserver : sendwServer) {
-// webserver.sendMessage(jsonObject.toString());
-// if (webserver != null) {
-//
-// List<String> messages = webserver.getMessages();
-//
-// if (!messages.isEmpty()) {
-// // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
-// webserver.clearMessages();
-// }
-// }
-//
-// }
-// }
}
/**
@@ -277,6 +257,7 @@
MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>();
wrapper.select("count(t.glass_id), t.width, t.height")
.eq("t.state", Const.GLASS_STATE_IN)
+ .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
.groupBy("t.width, t.height");
if (endcell == Const.A10_OUT_TARGET_POSITION) {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
@@ -372,8 +353,9 @@
glassList.add(resultDetails);
}
//鑾峰彇绗煎唴鐜荤拑
- List<EdgStorageCageDetails> details = edgStorageCageDetailsService.list(new LambdaQueryWrapper<EdgStorageCageDetails>()
- .eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN));
+ List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, new MPJLambdaWrapper<EdgStorageCageDetails>().selectAll(EdgStorageCageDetails.class)
+ .leftJoin(EdgStorageCage.class, on -> on.eq(EdgStorageCage::getSlot, EdgStorageCageDetails::getSlot).eq(EdgStorageCageDetails::getState, Const.GLASS_STATE_IN))
+ .eq(EdgStorageCage::getEnableState, Const.SLOT_ON));
glassList.addAll(details);
return glassList;
@@ -384,19 +366,20 @@
*
* @return
*/
- private boolean queryMaxMinDiff(int threshold) {
+ public boolean queryMaxMinDiff(int threshold) {
//鑾峰彇绗煎瓙鍐呮渶澶х増鍥緄d鍜屾渶灏忕増鍥緄d鎻掑�硷紝鍒ゆ柇鏄惁澶т簬闃堝�硷紝澶т簬闃堝�肩洿鎺ュ嚭鏈�灏忕増鍥剧幓鐠�
QueryWrapper<EdgStorageCageDetails> queryWrapper = new QueryWrapper<>();
queryWrapper.select("max(tempering_layout_id)-min(tempering_layout_id) as diff")
- .eq("state", Const.GLASS_STATE_IN);
+ .eq("state", Const.GLASS_STATE_IN)
+ .inSql("slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON);
List<Object> list = edgStorageCageDetailsService.listObjs(queryWrapper);
+ //鑾峰彇绗煎唴鐜荤拑鐗堝浘宸�兼槸鍚﹀ぇ浜庨槇鍊�
if (CollectionUtil.isNotEmpty(list)) {
- Long diff = (Long) list.get(0);
+ int diff = (int) list.get(0);
return diff > threshold;
} else {
return Boolean.FALSE;
}
-
}
/**
@@ -411,6 +394,7 @@
.eq(EdgStorageCageDetails::getState, 100)
.eq(width != 0, EdgStorageCageDetails::getWidth, width)
.eq(height != 0, EdgStorageCageDetails::getHeight, height)
+ .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
.orderByAsc(EdgStorageCageDetails::getTemperingLayoutId)
.orderBy(Boolean.TRUE, sequenceOrder, EdgStorageCageDetails::getTemperingFeedSequence)
.last("limit 1"));
@@ -446,6 +430,7 @@
.eq("t.glass_id", taskCache.getGlassId())
.ne("t1.glass_id", taskCache.getGlassId())
.eq("t1.state", Const.GLASS_STATE_IN)
+ .inSql("t1.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
.orderByAsc("t1.tempering_layout_id")
.orderBy(Boolean.TRUE, sequenceOrder, "t1.tempering_feed_sequence");
List<EdgStorageCageDetails> details = edgStorageCageDetailsService.selectJoinList(EdgStorageCageDetails.class, mpjLambdaWrapper);
@@ -469,7 +454,7 @@
return null;
}
return edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>().eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId())
-// .inSql(EdgStorageCageDetails::getEngineerId, "select engineer_id from engineering where state = 1")
+ .inSql(EdgStorageCageDetails::getSlot, "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
.last(" limit 1 "));
}
@@ -513,6 +498,7 @@
MPJQueryWrapper<EdgStorageCageDetails> wrapper = new MPJQueryWrapper<>();
wrapper.select("count(t.glass_id) as count, t.width, t.height")
.eq("t.state", Const.GLASS_STATE_IN)
+ .inSql("t.slot", "select slot from edg_storage_cage where enable_state = " + Const.SLOT_ON)
.groupBy("t.width, t.height");
if (endcell == Const.A10_OUT_TARGET_POSITION) {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
index 9b6ecc4..5a79a88 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/entity/BigStorageCage.java
@@ -46,15 +46,26 @@
private Integer slot;
/**
+ * 鏍呮牸鍙�
+ */
+ @ApiModelProperty(value = "鏈�灏忓帤搴�", position = 5)
+ private Integer minThickness;
+ /**
+ * 鏍呮牸鍙�
+ */
+ @ApiModelProperty(value = "鏈�澶у帤搴�", position = 6)
+ private Integer maxThickness;
+
+ /**
* 鍚敤鐘舵��
*/
- @ApiModelProperty(value = "鍚敤鐘舵��", position = 5)
+ @ApiModelProperty(value = "鍚敤鐘舵��", position = 7)
private Integer enableState;
/**
* 鍓╀綑瀹藉害
*/
- @ApiModelProperty(value = "鍓╀綑瀹藉害", position = 6)
+ @ApiModelProperty(value = "鍓╀綑瀹藉害", position = 8)
private Integer remainWidth;
@ApiModelProperty(hidden = true)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
index 5b09ac0..b6fd6e6 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageDetailsServiceImpl.java
@@ -96,12 +96,12 @@
.lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
.isNull(BigStorageCageFeedTask::getTargetSlot);
List<BigStorageCageFeedTask> bigStorageCageFeedTaskNoTargetList = bigStorageCageFeedTaskMapper.selectList(feedTaskNoTargetWrapper);
- for (BigStorageCageFeedTask bigStorageCageFeedTask:bigStorageCageFeedTaskNoTargetList
- ) {
- BigStorageCageDetails bigStorageCageDetails=new BigStorageCageDetails();
+ for (BigStorageCageFeedTask bigStorageCageFeedTask : bigStorageCageFeedTaskNoTargetList
+ ) {
+ BigStorageCageDetails bigStorageCageDetails = new BigStorageCageDetails();
LambdaQueryWrapper<GlassInfo> glassInfoWrapper = new LambdaQueryWrapper<>();
- glassInfoWrapper.eq(GlassInfo::getGlassId,bigStorageCageFeedTask.getGlassId());
- GlassInfo glassInfo= glassInfoMapper.selectOne(glassInfoWrapper);
+ glassInfoWrapper.eq(GlassInfo::getGlassId, bigStorageCageFeedTask.getGlassId());
+ GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoWrapper);
BeanUtils.copyProperties(glassInfo, bigStorageCageDetails);
bigStorageCageDetailsList.add(bigStorageCageDetails);
}
@@ -285,9 +285,12 @@
bigStorageDTO.setSlot(bigStorageCage.getSlot());
return bigStorageDTO;
}
+ //todo:鑾峰彇鐜荤拑鐨勫帤搴︼細閲嶆柊閫夌瀛愰渶瑕佹寜鐓х瀛愬彲鏀剧幓鐠冨帤搴﹁繘琛岄�夋嫨
bigStorageCage = bigStorageCageService.getOne(new LambdaQueryWrapper<BigStorageCage>()
.eq(BigStorageCage::getRemainWidth, slotWidth)
.eq(BigStorageCage::getEnableState, Const.SLOT_ON)
+ .gt(BigStorageCage::getMaxThickness, glassInfo.getThickness())
+ .orderByAsc(BigStorageCage::getDeviceId)
.last("limit 1"));
Assert.isTrue(null != bigStorageCage, "娌℃湁绌轰綑鐨勭瀛愬瓨鏀剧幓鐠�");
bigStorageDTO = new BigStorageDTO();
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index ad16377..dfc2719 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -377,27 +377,29 @@
Boolean flag = Boolean.TRUE;
//2銆佽幏鍙栧崸杞珛
Integer widthFirst = Math.max(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
+ Integer heightFirst = Math.min(edgGlassTaskInfoList.get(0).getWidth() / 10, edgGlassTaskInfoList.get(0).getHeight() / 10);
if (edgGlassTaskInfoList.size() == 1) {
if (remainWidth >= widthFirst) {
if (glassCount < inCarMaxSize) {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst);
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
} else {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst);
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
}
} else {
flag = Boolean.FALSE;
}
} else {
Integer widthSecond = Math.max(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
+ Integer heightSecond = Math.min(edgGlassTaskInfoList.get(1).getWidth() / 10, edgGlassTaskInfoList.get(1).getHeight() / 10);
if (remainWidth >= widthFirst) {
if (remainWidth - widthFirst - glassGap >= widthSecond) {
if (glassCount < inCarMaxSize) {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst);
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightSecond);
} else {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst);
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond);
}
} else {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst);
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond);
}
} else {
flag = Boolean.FALSE;
@@ -414,13 +416,14 @@
/**
* 娣诲姞浠诲姟淇℃伅
*/
- private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width) {
+ private Boolean addFeedTask(String glassId, Integer line, Integer taskType, Integer width, Integer height) {
BigStorageCageFeedTask bigStorageCageFeedTask = new BigStorageCageFeedTask();
bigStorageCageFeedTask.setGlassId(glassId);
bigStorageCageFeedTask.setTaskState(Const.BIG_STORAGE_IN_NEW);
bigStorageCageFeedTask.setLine(line);
bigStorageCageFeedTask.setTaskType(taskType);
bigStorageCageFeedTask.setWidth(width);
+ bigStorageCageFeedTask.setHeight(height);
bigStorageCageFeedTask.setCreateTime(new Date());
return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask);
}
@@ -576,6 +579,9 @@
public Boolean computeIsRun(int line, String glassId) {
//鑾峰彇鍗ц浆绔嬪墿浣欏搴�
BigStorageDTO sitToUpRemainWidth = bigStorageCageFeedTaskService.querySitToUpRemainWidth(line);
+ if (sitToUpRemainWidth.getGlassCount() == 0) {
+ return Boolean.FALSE;
+ }
//鑾峰彇鐜荤拑淇℃伅
GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
return sitToUpRemainWidth.getWidth() < glassInfo.getWidth();
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
index 2776022..0a32e28 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageFeedTaskMapper.xml
@@ -33,7 +33,7 @@
ELSE HEIGHT
END MAX_LENGTH
FROM BIG_STORAGE_CAGE_FEED_TASK
- WHERE LINE = 2002
+ WHERE LINE = #{line}
AND TASK_STATE IN (1, 2)
) T
</select>
--
Gitblit v1.8.0