From de6ca339923e420c941d8127056efb700bb295f6 Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期五, 02 八月 2024 09:26:44 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 4
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/CacheGlassTask.java | 42 +++++---
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java | 139 ++++++++++++++-------------
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 84 +++++++++++++++-
4 files changed, 178 insertions(+), 91 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
index 1e52a35..9a607ac 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java
@@ -1,15 +1,13 @@
package com.mes.damage.service.impl;
-import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.damage.entity.Damage;
import com.mes.damage.mapper.DamageMapper;
import com.mes.damage.service.DamageService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.glassinfo.entity.GlassInfo;
import com.mes.glassinfo.mapper.GlassInfoMapper;
-import com.mes.pp.entity.BasicDataProduce;
import com.mes.pp.entity.ReportingWork;
import com.mes.work_assignment.entity.WorkAssignment;
import com.mes.work_assignment.mapper.WorkAssignmentMapper;
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 772a88b..9e9c1fb 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
@@ -74,11 +74,17 @@
@Value("${mes.max.secondLength}")
private String secondLength;
- @Value("${mes.min.firstLength}")
- private String minFirstLength;
+ @Value("${mes.min.one.firstLength}")
+ private String minOneFirstLength;
- @Value("${mes.min.secondLength}")
- private String minSecondLength;
+ @Value("${mes.min.one.secondLength}")
+ private String minOneSecondLength;
+
+ @Value("${mes.min.two.firstLength}")
+ private String minTwoFirstLength;
+
+ @Value("${mes.min.two.secondLength}")
+ private String minTwoSecondLength;
@Scheduled(fixedDelay = 1000)
public void plcHomeEdgTask() {
@@ -115,7 +121,7 @@
inTo(glassIdeValue, confirmationWrodAddress, currentSlot);
} else if ("2".equals(taskRequestTypeValue)) {
//09绌洪棽 锛�1 10绌洪棽 锛�2 閮界┖闂诧細3 鍏朵粬0
- log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛岃繘鐗囦换鍔�");
+ log.info("2銆佸嚭鐗囪姹傦紝涓旂‘璁ゅ瓧涓�0锛屾墽琛屽嚭鐗囦换鍔�");
outTo(Integer.parseInt(out08Glassstate),
Integer.parseInt(out10Glassstate), confirmationWrodAddress, "", 0);
} else if ("3".equals(taskRequestTypeValue)) {
@@ -227,7 +233,7 @@
// 2銆佸鏋滄病鏈夊巻鍙插嚭鐗囦换鍔�
// 2.1銆佸嚭褰撳墠鐗堝浘id鏈�灏忕増搴忔渶灏忕殑鐜荤拑锛堥棶棰橈細涓ゆ潯绾块兘娌℃湁鍘嗗彶浠诲姟锛屽嚭鐗囨椂涓ゆ潯绾跨殑鐜荤拑灏哄鐩稿悓锛屾槸鍚︽壘灏哄涓嶅悓鐨勶級
if ((out08Glassstate == 2 && out10Glassstate == 2) || (out08Glassstate == 0 && out10Glassstate == 0)) {
- log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖");
+ log.info("A09銆丄10涓簕},{}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", out08Glassstate, out10Glassstate);
return Boolean.FALSE;
}
log.info("0銆佸嚭鐗囦换鍔″嚭鐨勭姸鎬�:A09:銆恵}銆�;A10:銆恵}銆�)", out08Glassstate, out10Glassstate);
@@ -263,26 +269,27 @@
if (endcell == Const.A10_OUT_TARGET_POSITION) {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+ + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
} else {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
}
wrapper.last("order by count(t.glass_id) desc limit 2");
List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
if (CollectionUtil.isEmpty(list)) {
MPJQueryWrapper<GlassInfo> queryWrapper = new MPJQueryWrapper<GlassInfo>()
.selectAll(GlassInfo.class).eq("t.glass_id", glassId);
-// .inSql("t.engineer_id", "select engineer_id from engineering where state = 1");
if (endcell == Const.A10_OUT_TARGET_POSITION) {
- wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+ queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+ + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
} else {
- wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
+ queryWrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
}
GlassInfo one = glassInfoService.getOne(queryWrapper);
if (one != null) {
@@ -504,11 +511,12 @@
if (endcell == Const.A10_OUT_TARGET_POSITION) {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length <=" + firstLength + " and t1.second_length<=" + secondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length between " + minTwoFirstLength + " and " + firstLength
+ + " and t1.second_length between " + minTwoSecondLength + " and " + secondLength + ") ");
} else {
wrapper.innerJoin("(select glass_id, case when height <= width then width else height end as first_length, " +
"case when width < height then width else height end as second_length from edg_storage_cage_details) t1 " +
- "on t.glass_id = t1.glass_id and (t1.first_length >=" + minFirstLength + " and t1.second_length>=" + minSecondLength + ") ");
+ "on t.glass_id = t1.glass_id and (t1.first_length >=" + minOneFirstLength + " and t1.second_length>=" + minOneSecondLength + ") ");
}
wrapper.last("order by count(t.glass_id) desc limit 2");
List<EdgStorageCageDetails> list = edgStorageCageDetailsService.list(wrapper);
@@ -546,7 +554,7 @@
return queryMinGlass(firstSize.getWidth(), firstSize.getHeight(), glassId);
}
EdgStorageCageDetails outGlassInfo = edgStorageCageDetailsService.getOne(new LambdaQueryWrapper<EdgStorageCageDetails>()
- .eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()));
+ .eq(EdgStorageCageDetails::getGlassId, taskCache.getGlassId()).last("limit 1"));
log.info("{}绾挎湁鍑虹墖浠诲姟淇℃伅,浠诲姟淇℃伅涓簕}锛岀幓鐠冧俊鎭负{}", endcell, taskCache, outGlassInfo);
if (outGlassInfo.getWidth() == firstWidth && outGlassInfo.getHeight() == firstHeight) {
log.info("鏁伴噺鏈�澶氱殑瀹絳}楂榹}鍜寋}绾夸换鍔$殑瀹絳}楂榹}鐩稿悓锛屽嚭鏁伴噺鎺掔浜岀殑鐜荤拑锛屽{}楂榹}",
@@ -641,6 +649,8 @@
edgGlassTaskInfo.setStatus(Const.EDG_GLASS_BEFORE);
edgGlassTaskInfo.setLine(endcell);
edgGlassTaskInfo.setTime(new Date());
+ //鍏堝皢鍘嗗彶瀵瑰垪琛ㄤ腑鏈幓鐠冪殑鏁版嵁鍒犻櫎锛岄噸鏂版柊澧炰竴浠芥渶鏂扮殑鏁版嵁
+ edgGlassTaskInfoService.remove(new LambdaQueryWrapper<EdgGlassTaskInfo>().eq(EdgGlassTaskInfo::getGlassId, glassInfo.getGlassId()));
return edgGlassTaskInfoService.save(edgGlassTaskInfo);
}
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 94d89f3..b1a5bf5 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
@@ -244,7 +244,7 @@
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
}
- @Scheduled(fixedDelay = 2000)
+ @Scheduled(fixedDelay = 300)
public void plcToHomeEdgOutTask() {
Date startDate = new Date();
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
@@ -484,6 +484,7 @@
bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getState, Const.GLASS_STATE_NEW).in(BigStorageCageDetails::getGlassId, inDamageTaskInfoList.stream().map(BigStorageCageFeedTask::getGlassId).collect(Collectors.toList())));
//灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+ List<Integer> slotList = new ArrayList<>();
for (BigStorageCageFeedTask bigStorageCageFeedTask : inDamageTaskInfoList) {
Damage damage = new Damage();
damage.setGlassId(bigStorageCageFeedTask.getGlassId());
@@ -492,7 +493,10 @@
damage.setRemark("杩涚鍓嶅崸杞珛");
damage.setStatus(2);
damageService.insertDamage(damage);
+ slotList.add(bigStorageCageFeedTask.getTargetSlot());
}
+ //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+ updateSlotRemainBySlots(slotList);
log.info("杩涚墖浠诲姟鎵ц瀹屾垚");
}
//鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐘舵�佷负鐮存崯鐨勬暟鎹�
@@ -500,7 +504,7 @@
.eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_DAMAGE));
if (CollectionUtils.isNotEmpty(outDamageTaskInfoList)) {
log.info("鑾峰彇鍑虹墖浠诲姟琛ㄤ腑鐮存崯鐨勭幓鐠冧俊鎭瘂}", outDamageTaskInfoList);
- bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_IN_DAMAGE));
+ bigStorageCageOutTaskService.remove(new LambdaQueryWrapper<BigStorageCageOutTask>().eq(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_DAMAGE));
List<String> glassIdList = outDamageTaskInfoList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
//绉婚櫎閽㈠寲涓嬬墖琛ㄦ暟鎹�
temperingGlassInfoService.remove(new LambdaQueryWrapper<TemperingGlassInfo>().in(TemperingGlassInfo::getGlassId, glassIdList));
@@ -508,6 +512,7 @@
bigStorageCageDetailsService.remove(new LambdaQueryWrapper<BigStorageCageDetails>().in(BigStorageCageDetails::getGlassId, glassIdList));
//灏嗙牬鎹熶俊鎭柊澧炲叆鐮存崯琛�
+ List<Integer> slotList = new ArrayList<>();
for (BigStorageCageOutTask bigStorageCageOutTask : outDamageTaskInfoList) {
Damage damage = new Damage();
damage.setGlassId(bigStorageCageOutTask.getGlassId());
@@ -516,7 +521,10 @@
damage.setRemark("鍑虹墖鍚庡崸杞珛");
damage.setStatus(2);
damageService.insertDamage(damage);
+ slotList.add(bigStorageCageOutTask.getStartSlot());
}
+ //鏇存柊鏍煎瓙鍓╀綑瀹藉害
+ updateSlotRemainBySlots(slotList);
log.info("鍑虹墖浠诲姟鎵ц瀹屾垚");
}
Date endDate = new Date();
@@ -704,7 +712,69 @@
}
}
+ /**
+ * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+ *
+ * @param list
+ * @param isTempering
+ * @param mesToPLCAddress
+ * @param <T>
+ * @return
+ */
private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
+ //浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧
+ List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
+ //鎵撹溅鍓╀綑灏哄
+ Integer remainWidth = carWidth;
+ int maxX = 0;
+ for (T e : list) {
+ if (bigStorageCageOutTaskList.size() >= outCarMaxSize || e.getWidth() > remainWidth) {
+ break;
+ }
+ remainWidth = remainWidth - (int) e.getWidth() - glassGap;
+ if (isTempering) {
+ int minLength = Math.min((int) e.getWidth(), (int) e.getHeight());
+ if (maxX + minLength <= xMaxSize) {
+ bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
+ e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1));
+ maxX = Math.max(maxX, e.getXCoordinate());
+ } else {
+ break;
+ }
+
+ } else {
+ bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+ e.getWidth() * 10, e.getHeight(), 0, 0, 1));
+ }
+ }
+ Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
+ log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
+ bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+ List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
+ log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
+ bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
+ .set(BigStorageCageDetails::getState, Const.GLASS_STATE_OUT_ING)
+ .in(BigStorageCageDetails::getGlassId, glassIds));
+ int returnData = 0;
+ int count = 1;
+ while (returnData == 0) {
+ S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+ returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+ log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
+ }
+ return Boolean.TRUE;
+ }
+
+ /**
+ * 鍑虹墖涓�娆$敓鎴愪竴鐐夌幓鐠�
+ *
+ * @param list
+ * @param isTempering
+ * @param mesToPLCAddress
+ * @param <T>
+ * @return
+ */
+ private <T extends BigStorageCageBaseInfo> Boolean computeOutMoreGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
//浠诲姟鏁版嵁 鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲� 鐜荤拑闂撮殧
List<BigStorageCageOutTask> bigStorageCageOutTaskList = new ArrayList<>();
//鎵撹溅鍓╀綑灏哄
@@ -714,12 +784,11 @@
int maxX = 0;
for (T e : list) {
int maxLength = Math.max((int) e.getWidth(), (int) e.getHeight());
- if (bigStorageCageOutTaskList.size() >= outCarMaxSize || maxLength > remainWidth) {
+ if (serialNumber > outCarMaxSize || maxLength > remainWidth) {
remainWidth = carWidth;
trainNumber = trainNumber + 1;
serialNumber = 1;
maxX = 0;
- continue;
}
remainWidth = remainWidth - maxLength - glassGap;
if (isTempering) {
@@ -729,11 +798,12 @@
e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1));
maxX = Math.max(maxX, e.getXCoordinate());
} else {
- remainWidth = carWidth;
+ remainWidth = carWidth - maxLength - glassGap;
trainNumber = trainNumber + 1;
serialNumber = 1;
- maxX = 0;
- continue;
+ maxX = e.getXCoordinate();
+ bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
+ e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1));
}
} else {
bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
index 841570f..7e31c30 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/job/DownLoadCacheGlassTask.java
@@ -134,13 +134,15 @@
log.info("2銆佹煡璇㈠崸寮忕悊鐗囩閲岄潰鐨勭┖鏍�:{}", nearestEmpty);
GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId));
Assert.isFalse(null == glassInfo, "鐜荤拑淇℃伅涓嶅瓨鍦�");
- if ("1".equals(requestWord) && (glassInfo.getWidth() > throughWidth || glassInfo.getHeight() > throughHeight)) {
- log.info("鐜荤拑褰撳墠灏哄瀹斤細{}锛岄珮锛歿}鍙兘鐩撮�氾紝褰撳墠杩涚墖浠诲姟闇�绛夊緟", glassInfo.getWidth(), glassInfo.getHeight());
+ double glassWidth = Math.max(glassInfo.getWidth(), glassInfo.getHeight());
+ double glassHeight = Math.min(glassInfo.getWidth(), glassInfo.getHeight());
+ if ("1".equals(requestWord) && (glassWidth > throughWidth || glassHeight > throughHeight)) {
+ log.info("鐜荤拑褰撳墠灏哄瀹斤細{}锛岄珮锛歿}鍙兘鐩撮�氾紝褰撳墠杩涚墖浠诲姟闇�绛夊緟", glassWidth, glassHeight);
return;
}
Boolean checkFlag = Boolean.FALSE;
//鐜荤拑灏哄鏄惁璧颁汉宸ヤ笅鐗�
- if (glassInfo.getWidth() > maxWidth || glassInfo.getHeight() > maxHeight || glassInfo.getWidth() < minWidth || glassInfo.getHeight() < minHeight) {
+ if (glassWidth > maxWidth || glassHeight > maxHeight || glassWidth < minWidth || glassHeight < minHeight) {
log.info("璇ョ幓鐠冨昂瀵镐笉绗﹀悎瑕佹眰锛岄渶瑕佽蛋浜哄伐涓嬬墖鐩存帴杩涚墖");
} else {
log.info("璇ョ幓鐠冨昂瀵搁潪浜哄伐涓嬬墖");
@@ -148,6 +150,7 @@
DownWorkstation one = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>()
.eq(DownWorkstation::getLayer, glassInfo.getLayer())
.eq(DownWorkstation::getFlowCardId, glassInfo.getFlowCardId()));
+ //鏄惁宸茬粡缁戝畾 true锛氬凡缁戝畾 false:鏈粦瀹�
Boolean isBind = Boolean.FALSE;
if (null != one) {
log.info("璇ユ祦绋嬪崱宸茬粦瀹氭灦瀛�");
@@ -157,7 +160,7 @@
if (!checkFlag && !isBind) {
log.info("璇ョ幓鐠冪殑娴佺▼鍗℃湭缁戝畾鏋跺瓙锛岃幏鍙栨槸鍚︽湁绌烘灦瀛�");
List<DownWorkstation> list = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
- .isNull(DownWorkstation::getFlowCardId).orderByDesc(DownWorkstation::getWorkstationId));
+ .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).orderByDesc(DownWorkstation::getWorkstationId));
if (CollectionUtils.isNotEmpty(list)) {
log.info("鏈夌┖鏋跺瓙,灏嗘祦绋嬪崱涓庢灦瀛愬ソ缁戝畾锛屾墽琛岃繘鐗囦换鍔� 缁撴潫");
//缁戝畾娴佺▼鍗�
@@ -176,28 +179,31 @@
endLoop:
for (DownGlassInfoDTO e : downGlassInfoDTOList) {
List<GlassInfo> glassInfoList = e.getGlassInfoList();
- Optional<GlassInfo> glassInfoTempOptional = glassInfoList.stream().filter(item -> item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight()
- && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid()))
- .findFirst();
- if (glassInfoTempOptional.isPresent()) {
- GlassInfo item = glassInfoTempOptional.get();
- //鐜荤拑鏄惁涓哄灞�
- checkFlag = multilayerCheck(item, Boolean.FALSE);
- if (checkFlag) {
- //鐜荤拑鏇挎崲 浠呮浛鎹㈡祦绋嬪崱id鍙婂眰鏁�
- String tempFlowCardId = item.getFlowCardId();
- Integer tempLayer = item.getLayer();
- String flowCardId = glassInfo.getFlowCardId();
- Integer layer = glassInfo.getLayer();
- log.info("鏇挎崲娴佺▼鍗′俊鎭�,褰撳墠鐜荤拑淇℃伅:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗},鏇挎崲鍚庣幓鐠冧俊鎭�:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗}",
- item, glassInfo, flowCardId, layer, tempFlowCardId, tempLayer);
- glassInfo.setFlowCardId(tempFlowCardId);
- glassInfo.setLayer(tempLayer);
- glassInfoService.updateById(glassInfo);
- item.setFlowCardId(flowCardId);
- item.setLayer(layer);
- glassInfoService.updateById(item);
- break endLoop;
+ List<GlassInfo> glassInfoTempList = glassInfoList.stream().filter(item -> item.getWidth() == glassInfo.getWidth() && item.getHeight() == glassInfo.getHeight()
+ && item.getThickness() == glassInfo.getThickness() && item.getFilmsid().equals(glassInfo.getFilmsid())).collect(Collectors.toList());
+ if (CollectionUtils.isNotEmpty(glassInfoTempList)) {
+ for (GlassInfo item : glassInfoTempList) {
+ //鐜荤拑鏄惁涓哄灞傦細1銆佸厛鑾峰彇褰撳墠娴佺▼鍗¤惤鏋舵渶澶氱殑灞傛暟锛屽鏋滀负绌猴紝琛ㄦ槑鏈粦瀹氭祦绋嬪崱锛屾湭钀芥灦锛岀劧鍚庢寜鐓ф槸鍚﹀彲缁戝畾鏋跺瓙鍐冲畾鏄惁鏇挎崲銆傦紙鍙拷鐣ヤ笉璁★紝鏈牎楠屼粎鍦ㄥ墠涓�娆¤皟鐢ㄨ捣浣滅敤锛�
+// 2銆佸垽鏂惤鏋舵渶澶氱殑灞傛暟鏄惁涓哄綋鍓嶆浛鎹㈢幓鐠冪殑灞傛暟锛屾槸 鍒欒蛋鏇挎崲閫昏緫杩斿洖true
+// 3銆佷笉鏄渶澶氱殑灞傛暟锛岃幏鍙栬惤鏋舵渶澶氬眰鏁扮殑鐩稿悓娆″簭鐨勭幓鐠冨昂瀵镐笌褰撳墠鏇挎崲鐜荤拑鐨勫昂瀵告瘮杈冿紝鐩稿悓璧版浛鎹紝鍚﹀垯缁х画寰幆
+// 4銆佸崟灞傜幓鐠冪洿鎺ヨ蛋鏇挎崲
+ checkFlag = multilayerCheck(item, Boolean.FALSE);
+ if (checkFlag) {
+ //鐜荤拑鏇挎崲 浠呮浛鎹㈡祦绋嬪崱id鍙婂眰鏁�
+ String tempFlowCardId = item.getFlowCardId();
+ Integer tempLayer = item.getLayer();
+ String flowCardId = glassInfo.getFlowCardId();
+ Integer layer = glassInfo.getLayer();
+ log.info("鏇挎崲娴佺▼鍗′俊鎭�,褰撳墠鐜荤拑淇℃伅:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗},鏇挎崲鍚庣幓鐠冧俊鎭�:{}鐨勬祦绋嬪崱鍙穥}鍙婂眰鏁皗}",
+ item, glassInfo, flowCardId, layer, tempFlowCardId, tempLayer);
+ glassInfo.setFlowCardId(tempFlowCardId);
+ glassInfo.setLayer(tempLayer);
+ glassInfoService.updateById(glassInfo);
+ item.setFlowCardId(flowCardId);
+ item.setLayer(layer);
+ glassInfoService.updateById(item);
+ break endLoop;
+ }
}
}
}
@@ -210,7 +216,6 @@
downStorageCageDetails.setState(Const.GLASS_STATE_IN);
downStorageCageDetails.setSlot(nearestEmpty.getSlot());
downStorageCageDetailsService.save(downStorageCageDetails);
-
// 鐢熸垚杩涚墖浠诲姟
initDownGlassTask(glassInfo, 0, nearestEmpty.getSlot(), Const.GLASS_CACHE_TYPE_IN);
}
@@ -221,9 +226,9 @@
log.info("G06銆丟11銆丟13鍒嗗埆涓簕},{}銆亄}闈炶嚜鍔ㄧ姸鎬侊紝鏃犳硶鍑虹墖", glassStatus06, glassStatus11, glassStatus13);
return Boolean.FALSE;
}
-
List<DownStorageCageDetails> tempList = downStorageCageDetailsService.list(new LambdaQueryWrapper<DownStorageCageDetails>()
.eq(DownStorageCageDetails::getState, Const.GLASS_STATE_IN));
+ log.info("鍑虹墖1銆佺鍐呯殑鐜荤拑淇℃伅鏈夛細{}", tempList);
//鑾峰彇寰呰繘鐗囩幓鐠�
DownStorageCageDetails cageDetails = new DownStorageCageDetails();
if (StringUtils.isNotBlank(glassId)) {
@@ -234,12 +239,15 @@
cageDetails.setSlot(empty.getSlot());
tempList.add(cageDetails);
}
-
- log.info("绗煎唴鐜荤拑鐨勬暟鎹湁锛歿}", tempList);
+ log.info("鍑虹墖2锛氱鍐呯幓鐠冪殑鏁版嵁(鍖呮嫭寰呰繘鐗�)鏈夛細{}", tempList);
if (CollectionUtils.isEmpty(tempList)) {
log.info("绗煎唴娌℃湁鐜荤拑,鏃犳硶鎵ц鍑虹墖");
return Boolean.FALSE;
}
+ //浼樺厛璧�08鐗囧彴鐨勭幓鐠冿細璧颁汉宸ヤ笅鐗囨垨鑰�2鍙锋満姊拌噦
+ //1銆�08鍙板繖纰岋紝浠呰蛋1鍙锋満姊拌噦
+ //2銆�08鍙扮┖闂诧紝鍏堣蛋鎵斿伐涓嬬墖鎴�2鍙锋満姊拌噦锛屾棤鐜荤拑鍑虹墖 鍦ㄨ蛋1鍙锋満姊拌噦
+ //鏈烘鑷傝绂佺敤鐨勬儏鍐典笅涓嶈兘缁х画鍚戠鐢ㄧ殑鏈烘鑷傛斁鐜荤拑
Boolean flag08 = "1".equals(out08Glassstate) ? Boolean.TRUE : Boolean.FALSE;
if (!flag08) {
generateTaskByShelf(glassStatus06, glassStatus11, flag08, glassStatus13, tempList, cageDetails, glassId);
@@ -248,7 +256,6 @@
return generateTaskByShelf(glassStatus06, glassStatus11, !flag08, glassStatus13, tempList, cageDetails, glassId);
}
}
-
return Boolean.TRUE;
}
@@ -264,7 +271,6 @@
log.info("鏋跺瓙宸茬粡鍗犳弧锛屽灞傜幓鐠冩棤娉曟壘鍒板搴旂殑鏍煎瓙锛岄渶鎵ц鏇挎崲鐜荤拑鐨勬搷浣�");
return Boolean.FALSE;
}
-
}
if (downGlassInfoDTO.getLayer().equals(glassInfo.getLayer())) {
log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶� 鐩存帴杩涚墖");
@@ -293,7 +299,6 @@
glassStatus13, List<DownStorageCageDetails> tempList, DownStorageCageDetails cageDetails, String glassId) {
//鑾峰彇2涓満姊拌噦鑼冨洿鍐呯殑鏋跺瓙缁戝畾鐨勬祦绋嬪崱淇℃伅
List<Integer> workList = new ArrayList();
-
if (flag08) {
if (!"2".equals(glassStatus11)) {
workList.addAll(Const.G11_WORK_STATION);
@@ -306,51 +311,59 @@
List<Integer> workStationAll = Arrays.asList(1, 2, 3, 4, 5, 6);
List<Integer> offWorkStationList = workStationAll.stream().filter(e -> !workList.contains(e)).collect(Collectors.toList());
List<DownStorageCageDetails> list = new ArrayList();
+ //鏄惁鏈夌┖鏋跺瓙 true锛氭湁 false:鏃�
Boolean isEmptyShelf = Boolean.FALSE;
//瀵圭鍐呯幓鐠冭繘琛岃繃婊わ紝浠呭嚭绗﹀悎閫昏緫鐨勭幓鐠�
if (CollectionUtils.isNotEmpty(workList)) {
List<DownWorkstation> downWorkstationList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
.eq(DownWorkstation::getEnableState, Const.SLOT_ON).in(DownWorkstation::getWorkstationId, workList));
-// log.info("鏋跺瓙琚鐢紝鏃犳硶鍑虹墖钀芥灦");
if (CollectionUtils.isEmpty(downWorkstationList)) {
log.info("绗煎瓙琚鐢紝鏃犳硶璧版満姊拌噦涓嬬墖");
//璧颁汉宸ヤ笅鐗�
- if (!"2".equals(glassStatus13)) {
- list = tempList.stream().filter(item -> item.getWidth() > maxWidth || item.getHeight() > maxHeight).collect(Collectors.toList());
+ if (flag08 && !"2".equals(glassStatus13)) {
+ list = tempList.stream().filter(item -> {
+ double firstLength = Math.max(item.getWidth(), item.getHeight());
+ double secondLength = Math.min(item.getWidth(), item.getHeight());
+ return firstLength > maxWidth || secondLength > maxHeight;
+ }).collect(Collectors.toList());
}
} else {
//鑾峰彇鍙惤鏋剁殑鐨勬灦瀛愪俊鎭紙鍖呮嫭绌烘灦瀛愶級
- List<DownWorkstation> workstationsIsNotBind = downWorkstationList.stream().filter(item -> null == (item.getFlowCardId())).collect(Collectors.toList());
- //灏嗘灦瀛愮殑娴佺▼鍗″彿鍙婂眰鏁颁綔涓簁ey
+ //浠呰幏鍙栫┖鏋跺瓙淇℃伅
+ List<DownWorkstation> workstationsIsNotBind = downWorkstationList.stream().filter(item -> StringUtils.isBlank(item.getFlowCardId())).collect(Collectors.toList());
+ //灏嗘灦瀛愮殑娴佺▼鍗″彿鍙婂眰鏁颁綔涓簁ey 涓嶅瓨鍦ㄧ┖鏋跺瓙鐨勬儏鍐�
if (CollectionUtils.isEmpty(workstationsIsNotBind)) {
log.info("涓嶅瓨鍦ㄦ湭缁戝畾娴佺▼鍗℃灦瀛�");
//绛涢�夊嚭瀵瑰簲鏋跺瓙宸茬粦瀹氭祦绋嬪崱鍙笅鐗囩殑鐜荤拑
Map<String, List<DownWorkstation>> listMap = downWorkstationList.stream()
- .filter(item -> null != (item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
+ .filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
+ //杩囨护绛涢�夎幏鍙栨灦瀛愪笂瀵瑰簲娴佺▼鍗�+灞傛暟鐨勭瀛愬唴鐨勭幓鐠冧俊鎭�
list = tempList.stream().filter(item -> listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
} else {
log.info("瀛樺湪鏈粦瀹氭祦绋嬪崱鏋跺瓙锛岀洿鎺ヨ幏鍙栫鍐呮墍鏈夌幓鐠�,涓旀湭缁戝畾鏋跺瓙鐨勭幓鐠冧俊鎭�");
- //鑾峰彇绂佺敤鏋跺瓙鐨勬祦绋嬪彿锛屽皢绗煎唴缁戝畾鏋跺瓙涓旀灦瀛愯绂佺敤鐨勬祦绋嬪崱淇℃伅
-
+ //鑾峰彇绂佺敤鍙婇潪鏈満姊拌噦鐨勬灦瀛愮殑娴佺▼鍙峰強灞傛暟瀵瑰簲鐨勭幓鐠冧俊鎭�
List<DownWorkstation> downWorkstationOffList = downWorkstationService.list(new LambdaQueryWrapper<DownWorkstation>()
.and(i -> i.in(DownWorkstation::getWorkstationId, offWorkStationList).or().eq(DownWorkstation::getEnableState, Const.SLOT_OFF)));
- //鑾峰彇琚鐢ㄧ殑娴佺▼鍗′俊鎭�
+ //鑾峰彇琚鐢ㄧ殑娴佺▼鍗′俊鎭� 涓虹┖锛氬皢杩斿洖绗煎唴鐨勬墍鏈夌幓鐠冧俊鎭�
if (CollectionUtils.isEmpty(downWorkstationOffList)) {
list = tempList;
} else {
- Map<String, List<DownWorkstation>> listOffMap = downWorkstationOffList.stream().filter(item -> null != (item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
+ //绗煎唴瀛樺湪鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝杩囨护鏃犳硶鍑虹墖鐨勭幓鐠冧俊鎭紝浠呰幏鍙栧彲鍑虹墖鐨勭幓鐠冧俊鎭� 鏃犳硶鍑虹墖鐨勭幓鐠冧负锛氭湭缁戝畾鏋跺瓙銆佺粦瀹氭灦瀛愯绂佺敤銆侀潪鏈満姊拌噦瀵瑰簲鐨勬灦瀛�
+ Map<String, List<DownWorkstation>> listOffMap = downWorkstationOffList.stream().filter(item -> StringUtils.isNotBlank(item.getFlowCardId())).collect(Collectors.groupingBy(item -> item.getFlowCardId() + ":" + item.getLayer()));
list = tempList.stream().filter(item -> !listOffMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
}
+ //绌烘灦瀛愯〃绀虹疆涓簍rue
isEmptyShelf = Boolean.TRUE;
- //todo:濡傛灉绂佺敤鏋跺瓙宸茬粦瀹氭祦绋嬪崱锛屽洜涓烘椂闂翠笉纭畾锛岀瀛愬唴鐨勭幓鐠冨彲閲嶆柊缁戝畾鏂版灦瀛�
-// list = tempList.stream().filter(item -> !listMap.containsKey(item.getFlowCardId() + ":" + item.getLayer())).collect(Collectors.toList());
-
}
}
} else {
if (flag08 && !"2".equals(glassStatus13)) {
//鐩存帴璧颁汉宸ヤ笅鐗�
- list = tempList.stream().filter(item -> item.getWidth() > maxWidth || item.getHeight() > maxHeight).collect(Collectors.toList());
+ list = tempList.stream().filter(item -> {
+ double firstLength = Math.max(item.getWidth(), item.getHeight());
+ double secondLength = Math.min(item.getWidth(), item.getHeight());
+ return firstLength > maxWidth || secondLength > maxHeight;
+ }).collect(Collectors.toList());
}
}
if (CollectionUtils.isEmpty(list)) {
@@ -358,10 +371,12 @@
return Boolean.FALSE;
}
String tempGlassId = null;
- Boolean isBind = Boolean.FALSE;
+ Boolean isNeedBind = Boolean.FALSE;
for (DownStorageCageDetails item : list) {
- if (item.getWidth() > maxWidth || item.getHeight() > maxHeight) {
+ double firstLength = Math.max(item.getWidth(), item.getHeight());
+ double secondLength = Math.min(item.getWidth(), item.getHeight());
+ if (firstLength > maxWidth || secondLength > maxHeight) {
if (flag08 && !"2".equals(glassStatus13)) {
log.info("鐜荤拑瀹藉害鎴栭珮搴﹁秴鍑洪槇鍊硷紝鎵ц浜哄伐涓嬬墖");
tempGlassId = item.getGlassId();
@@ -378,7 +393,7 @@
//鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList);
- isBind = Boolean.TRUE;
+ isNeedBind = Boolean.TRUE;
break loop;
}
//灏嗙瀛愬唴鐨勭幓鐠冭繘琛岃繃婊わ紝浠呰幏鍙栨棤娉曡惤鏋剁殑娴佺▼鍗$幓鐠�
@@ -391,7 +406,7 @@
if (isEmptyShelf) {
//鏋跺瓙閮芥湭缁戝畾娴佺▼鍗★紝鍑虹鍐呭瓙鏁伴噺鏈�澶氬昂瀵告渶澶х殑鐜荤拑id,鏃� 鍒欒繑鍥炴壂鎻忔壂鍒扮殑鐜荤拑id杩涜鍑虹墖
tempGlassId = downStorageCageDetailsService.getGlassInfoMaxCount(glassId, offWorkStationList);
- isBind = Boolean.TRUE;
+ isNeedBind = Boolean.TRUE;
break loop;
}
}
@@ -409,16 +424,13 @@
DownGlassInfoDTO downGlassInfoDTO = downGlassInfoService.queryDownGlassMaxLayer(item.getFlowCardId());
if (null == downGlassInfoDTO) {
// 鍘嗗彶钀芥灦鐜荤拑鎸夌収鐩稿叧娴佺▼鍗″彇鏁版嵁搴撴湭鎵惧埌鏈�澶氱幓鐠冧俊鎭紝琛ㄦ槑褰撳墠娴佺▼鍗′笅鐨勬湁灞傜殑鐜荤拑鍧囨湭钀芥灦锛岀洿鎺ュ彲鍑哄綋鍓嶇幓鐠�
- log.info("");
- isBind = Boolean.FALSE;
tempGlassId = item.getGlassId();
+ log.info("褰撳墠娴佺▼鍗′笉瀛樺湪钀芥灦鐨勭幓鐠冿紝鍙洿鎺ュ嚭鐗囪惤鏋讹紝鐜荤拑id:{}", tempGlassId);
break loop;
}
if (downGlassInfoDTO.getLayer().equals(downGlassInfoDTO.getLayer())) {
- log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶�,鐩存帴鍑虹墖");
- //鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟
tempGlassId = item.getGlassId();
- isBind = Boolean.FALSE;
+ log.info("褰撳墠鐜荤拑鐨勬祦绋嬪湪鏋跺瓙涓婅惤鏋舵渶澶�,鐩存帴鍑虹墖锛岀幓鐠僫d:{}", tempGlassId);
break loop;
}
Integer sequence = downGlassInfoService.queryMaxSequence(item.getFlowCardId(), item.getLayer());
@@ -427,10 +439,8 @@
.eq(DownGlassInfo::getFlowCardId, downGlassInfoDTO.getFlowCardId())
.eq(DownGlassInfo::getLayer, downGlassInfoDTO.getLayer()).eq(DownGlassInfo::getSequence, sequence));
if (null != downGlassInfoDTO && downGlassInfo.getWidth() == item.getWidth() && downGlassInfo.getHeight() == item.getHeight()) {
- log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔�");
- //鏇存柊鐜荤拑鐘舵�侊紝鐢熸垚鍑虹墖浠诲姟
tempGlassId = item.getGlassId();
- isBind = Boolean.FALSE;
+ log.info("鐩稿悓娆″簭鐜荤拑瀵瑰簲涓婏紝鍙墽琛岃繘鐗囦换鍔★紝鐜荤拑id:{}", tempGlassId);
break loop;
}
}
@@ -445,7 +455,6 @@
List<DownStorageCageDetails> downStorageCageDetails = singleLayerMap.get(e.getFlowCardId() + e.getLayer());
if (CollectionUtils.isNotEmpty(downStorageCageDetails)) {
tempGlassId = downStorageCageDetails.get(0).getGlassId();
- isBind = Boolean.FALSE;
break;
}
}
@@ -457,12 +466,12 @@
return Boolean.FALSE;
} else {
//鎸夌収鍑虹墖鐨勭幓鐠僫d鏇存柊绗煎唴鐨勭幓鐠冪姸鎬佷负宸插嚭鐗�
- return generateDownGlassOutTask(tempGlassId, Const.GLASS_CACHE_TYPE_OUT, isBind, cageDetails, workList);
+ return generateDownGlassOutTask(tempGlassId, Const.GLASS_CACHE_TYPE_OUT, isNeedBind, cageDetails, workList);
}
}
public Boolean generateDownGlassOutTask(String glassId, Integer taskType, Boolean
- isBind, DownStorageCageDetails cageDetails, List<Integer> workList) {
+ isNeedBind, DownStorageCageDetails cageDetails, List<Integer> workList) {
//鎸夌幓鐠僫d鑾峰彇鐜荤拑淇℃伅
DownStorageCageDetails downStorageCageDetails = null;
if (glassId.equals(cageDetails.getGlassId())) {
@@ -486,10 +495,10 @@
}
Integer endCell = null;
- if (isBind) {
+ if (isNeedBind) {
//鑾峰彇绌烘灦瀛愪俊鎭紝灏嗙┖鏋跺瓙淇℃伅缁戝畾娴佺▼鍗�
DownWorkstation emptyDownWorkstation = downWorkstationService.getOne(new LambdaQueryWrapper<DownWorkstation>()
- .isNull(DownWorkstation::getFlowCardId).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1"));
+ .and(on -> on.isNull(DownWorkstation::getFlowCardId).or().eq(DownWorkstation::getFlowCardId, "")).in(DownWorkstation::getWorkstationId, workList).orderByDesc(DownWorkstation::getWorkstationId).last("limit 1"));
if (null != emptyDownWorkstation) {
log.info("鑾峰彇鍒扮┖鏋跺瓙淇℃伅锛岀粦瀹氭祦绋嬪崱");
downWorkstationService.updateFlowCardIdAndCount(downStorageCageDetails.getFlowCardId(), emptyDownWorkstation.getWorkstationId(), downStorageCageDetails.getLayer());
@@ -515,7 +524,7 @@
//鐢熸垚浠诲姟淇℃伅
DownGlassInfo downGlassInfo = new DownGlassInfo();
BeanUtils.copyProperties(downStorageCageDetails, downGlassInfo);
- //todo锛氳惤鏋剁墖搴�
+ //钀芥灦鐗囧簭
downGlassInfo.setSequence(downGlassInfoService.queryMaxSequence(downGlassInfo.getFlowCardId(), downGlassInfo.getLayer()));
downGlassInfoService.save(downGlassInfo);
//鐢熸垚浠诲姟淇℃伅
--
Gitblit v1.8.0