From 6db1c7d6ddc4e5781557f0c44b48716f5b32a12d Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 24 五月 2024 12:01:39 +0800
Subject: [PATCH] 卧式理片笼线程改造:新增状态码2非自动状态禁用
---
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 84 +++++++++++++++++++++++++++--------------
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java | 7 ++-
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java | 3 +
3 files changed, 62 insertions(+), 32 deletions(-)
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
index a9d0721..8c2763e 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/EdgStorageCageService.java
@@ -19,9 +19,10 @@
/**
* 鏌ヨ绗煎唴绂绘寚瀹氭牸瀛愭渶杩戠┖鏍�
+ *
* @return
*/
- EdgStorageCage selectNearestEmpty(int currentSlot);
+ EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag);
/**
* 鏌ヨ绗煎唴绌烘牸
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
index f94d854..5d27ac4 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/edgstoragecage/service/impl/EdgStorageCageServiceImpl.java
@@ -37,7 +37,7 @@
UpPattenUsageMapper upPattenUsageMapper;
@Override
- public EdgStorageCage selectNearestEmpty(int currentSlot) {
+ public EdgStorageCage selectNearestEmpty(int currentSlot, boolean flag) {
List<EdgStorageCage> emptyList = this.selectJoinList(EdgStorageCage.class, new MPJLambdaWrapper<EdgStorageCage>()
.selectAll(EdgStorageCage.class)
.leftJoin(EdgStorageCageDetails.class, on -> on
@@ -46,7 +46,10 @@
.isNull(EdgStorageCageDetails::getSlot)
.last("order by abs(t.slot - " + currentSlot + ") asc limit 2")
);
- if (CollectionUtil.isEmpty(emptyList) || emptyList.size() < 2) {
+ if (flag && CollectionUtil.isNotEmpty(emptyList)) {
+ return emptyList.get(0);
+ }
+ if (CollectionUtil.isEmpty(emptyList) || emptyList.size() == 1) {
return null;
}
return emptyList.get(0);
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 c0126b4..6a3a378 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
@@ -104,14 +104,10 @@
} else if ("3".equals(taskRequestTypeValue)) {
log.info("2銆佽繘鐗囧拰鍑虹墖閮界┖闂诧紝鎵ц鍑虹墖浠诲姟");
//鍔犵瀛愰噷闈㈡槸鍚︽湁鐜荤拑锛屾湁鍏堝嚭锛屾棤鐜荤拑鍏堣繘
- if (("1".equals(out08Glassstate) || "1".equals(out10Glassstate))) {
- boolean outFlase = outTo(Integer.parseInt(out08Glassstate),
- Integer.parseInt(out10Glassstate), confirmationWrodAddress, glassIdeValue, Integer.parseInt(currentSlot));
- log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue);
- if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) {
- inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
- }
- } else {
+ boolean outFlase = outTo(Integer.parseInt(out08Glassstate),
+ Integer.parseInt(out10Glassstate), confirmationWrodAddress, glassIdeValue, Integer.parseInt(currentSlot));
+ log.info("鍑虹墖浠诲姟鏄惁瀹屾垚锛歿},澶辫触涓旂幓鐠僫d:{}涓嶄负绌哄垯鎵ц杩涚墖浠诲姟", outFlase, glassIdeValue);
+ if (!outFlase && StringUtils.isNotBlank(glassIdeValue)) {
inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
}
}
@@ -155,7 +151,7 @@
}
log.info("2銆佽幏鍙栧埌鐨勭幓鐠冧俊鎭负{}", glassInfo);
//娣诲姞杩涚墖浠诲姟 鏌ユ壘绌烘牸
- EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot));
+ EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(Integer.parseInt(currentSlot), Boolean.FALSE);
Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧");
log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
@@ -200,7 +196,10 @@
// 1.2.3銆佹寜鐓у嚭鐗囦俊鎭幓璇︽儏琛ㄦ煡璇㈡牸瀛愬湪绗煎瓙閲岄潰鍓╀綑鐩稿悓灏哄鐨勭幓鐠冩暟鎹笖浠ョ増鍥緄d銆佺増搴忓崌搴忔帓搴� 鍙栫涓�鍧楃幓鐠冨嚭鐗�
// 2銆佸鏋滄病鏈夊巻鍙插嚭鐗囦换鍔�
// 2.1銆佸嚭褰撳墠鐗堝浘id鏈�灏忕増搴忔渶灏忕殑鐜荤拑锛堥棶棰橈細涓ゆ潯绾块兘娌℃湁鍘嗗彶浠诲姟锛屽嚭鐗囨椂涓ゆ潯绾跨殑鐜荤拑灏哄鐩稿悓锛屾槸鍚︽壘灏哄涓嶅悓鐨勶級
- Assert.isFalse(out08Glassstate == 0 && out10Glassstate == 0, "A09銆丄10閮芥湁鐜荤拑锛屾棤娉曞嚭鐗�");
+ if (out08Glassstate == 2 && out10Glassstate == 2) {
+ log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖");
+ return Boolean.FALSE;
+ }
log.info("0銆佸嚭鐗囦换鍔″嚭鐨勭姸鎬�:A09:銆恵}銆�;A10:銆恵}銆�)", out08Glassstate, out10Glassstate);
//瀹氫箟鍑虹墖鐜荤拑淇℃伅
int endcell = 0;
@@ -220,8 +219,9 @@
endcell = queryLineByGlassInfo(a09EdgGlass, a10EdgGlass, glassInfo, out08Glassstate, out10Glassstate);
} else {
//鍒ゆ柇涓ゆ潯绾挎槸鍚﹂兘绌洪棽
- endcell = out08Glassstate == 1 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
- if (out08Glassstate == 1 && out10Glassstate == 1) {
+ endcell = out08Glassstate == 1 || out10Glassstate == 2 ? Const.A09_OUT_TARGET_POSITION : Const.A10_OUT_TARGET_POSITION;
+
+ if ((out08Glassstate == 0 && out10Glassstate == 0) || (out08Glassstate == 1 && out10Glassstate == 1)) {
EdgStorageCageDetails a09EdgGlass = queryGlassByTaskCache(Const.A09_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT);
EdgStorageCageDetails a10EdgGlass = queryGlassByTaskCache(Const.A10_OUT_TARGET_POSITION, Const.GLASS_CACHE_TYPE_OUT);
if (a09EdgGlass == null && a10EdgGlass == null) {
@@ -258,7 +258,10 @@
} else {
//鑾峰彇绗煎唴鎵�鏈夌幓鐠冧俊鎭紝鍖呮嫭寰呰繘鐗囩殑
List<EdgStorageCageDetails> glassList = queryEdgAllGlass(glassId);
- Assert.isTrue(CollectionUtil.isNotEmpty(glassList), "绗煎唴鍜屽緟杩涚墖閮芥病鏈夌幓鐠�");
+ if (CollectionUtil.isEmpty(glassList)) {
+ log.info("绗煎唴鍜屽緟杩涚墖閮芥病鏈夌幓鐠�");
+ return Boolean.FALSE;
+ }
if (glassList.size() == 1 && glassId.equals(glassList.get(0).getGlassId())) {
glassInfo = glassList.get(0);
} else {
@@ -402,23 +405,46 @@
*/
private Integer queryLineByGlassInfo(EdgStorageCageDetails a08EdgStorageCageDetails, EdgStorageCageDetails a10EdgStorageCageDetails,
EdgStorageCageDetails glassInfo, int out08Glassstate, int out10Glassstate) {
- if (a08EdgStorageCageDetails != null && a08EdgStorageCageDetails.getHeight().equals(glassInfo.getHeight())
- && a08EdgStorageCageDetails.getWidth().equals(glassInfo.getWidth()) && out08Glassstate == 1) {
- return Const.A09_OUT_TARGET_POSITION;
+ boolean b08 = a08EdgStorageCageDetails != null && a08EdgStorageCageDetails.getHeight().equals(glassInfo.getHeight())
+ && a08EdgStorageCageDetails.getWidth().equals(glassInfo.getWidth());
+ boolean b10 = a10EdgStorageCageDetails != null && a10EdgStorageCageDetails.getHeight().equals(glassInfo.getHeight())
+ && a10EdgStorageCageDetails.getWidth().equals(glassInfo.getWidth());
+ //瀛樺湪鍑虹墖浠诲姟 07涓虹┖
+ if (a08EdgStorageCageDetails == null && a10EdgStorageCageDetails == null) {
+ return queryLineNoTask(out08Glassstate, out10Glassstate);
+ } else {
+ if (b08) {
+ return queryLineHasTask(out08Glassstate);
+ }
+ if (b10) {
+ return queryLineHasTask(out10Glassstate);
+ }
+ return queryLineNoTask(out08Glassstate, out10Glassstate);
}
- if (a10EdgStorageCageDetails != null && a10EdgStorageCageDetails.getHeight().equals(glassInfo.getHeight())
- && a10EdgStorageCageDetails.getWidth().equals(glassInfo.getWidth()) && out10Glassstate == 1) {
- return Const.A10_OUT_TARGET_POSITION;
- }
- if (out08Glassstate == 1) {
- return Const.A09_OUT_TARGET_POSITION;
- }
- if (out10Glassstate == 1) {
- return Const.A10_OUT_TARGET_POSITION;
- }
- Assert.isTrue(Boolean.FALSE, "娌℃湁鎵惧埌鍑虹墖璺緞");
- return 0;
}
+
+ /**
+ * 鑾峰彇鏈変换鍔″悗鐨勫嚭鐗囬�昏緫
+ */
+ private Integer queryLineHasTask(int outGlassstate) {
+ return outGlassstate == 2 ? Const.A10_OUT_TARGET_POSITION : Const.A09_OUT_TARGET_POSITION;
+ }
+
+ /**
+ * 鑾峰彇鏃犱换鍔″悗鐨勫嚭鐗囬�昏緫
+ *
+ * @return
+ */
+ private Integer queryLineNoTask(int out08Glassstate, int out10Glassstate) {
+ if (out08Glassstate == 2) {
+ return Const.A10_OUT_TARGET_POSITION;
+ }
+ if (out10Glassstate == 2 || out08Glassstate == 1) {
+ return Const.A09_OUT_TARGET_POSITION;
+ }
+ return Const.A10_OUT_TARGET_POSITION;
+ }
+
/**
* 鎸夌収灏哄鍑虹幓鐠�
@@ -504,7 +530,7 @@
log.info("5銆佺洿閫氫换鍔�,灏嗙幓鐠冧俊鎭彃鍏ュ崸寮忕悊鐗囩,褰撳墠鐜荤拑淇℃伅:{}", glassInfo);
EdgStorageCageDetails details = new EdgStorageCageDetails();
BeanUtils.copyProperties(glassInfo, details);
- EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(currentSlot);
+ EdgStorageCage nearestEmpty = edgStorageCageService.selectNearestEmpty(currentSlot, Boolean.TRUE);
Assert.isTrue(null != nearestEmpty, "鏍煎瓙宸叉弧,鏃犳硶鎵ц鐩撮�氫换鍔�");
log.info("3銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
details.setSlot(nearestEmpty.getSlot());
--
Gitblit v1.8.0