From d5d0d1c7a84b996b9bbcebfaf2c2c95f1a5a3678 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 11 十月 2024 08:39:15 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 113 +++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 83 insertions(+), 30 deletions(-)
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 5a7eade..8ab87a9 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
@@ -4,7 +4,6 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.github.yulichang.toolkit.JoinWrappers;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
@@ -132,7 +131,7 @@
judgeGlassTypeStatus(d01Id, Const.A09_OUT_TARGET_POSITION, mesD01Address);
edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
.set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d01Id));
- d01GlassId = d01Id;
+// d01GlassId = d01Id;
}
}
// 鐘舵�佷负0涓嶆搷浣滐紙D01閫佺墖锛�0涓嶆搷浣滐紝1鍏佽閫佺墖锛夛紝璇锋眰瀛椾负1锛� 鍗ц浆绔嬫湭鍚姩
@@ -141,7 +140,7 @@
judgeGlassTypeStatus(d04Id, Const.A10_OUT_TARGET_POSITION, mesD04Address);
edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
.set(EdgGlassTaskInfo::getStatus, Const.EDG_GLASS_SUCCESS).eq(EdgGlassTaskInfo::getGlassId, d04Id));
- d04GlassId = d04Id;
+// d04GlassId = d04Id;
}
}
Date endDate = new Date();
@@ -152,11 +151,28 @@
public void plcToHomeEdgFreeCarTask() {
Date startDate = new Date();
log.info("澶х悊鐗囩绌鸿溅杩涚墖浠诲姟寮�濮嬫墽琛屾椂闂达細{}", startDate);
+ PlcParameterObject plcMesObject = S7object.getinstance().PlcMesObject;
+ String mesD03Address = plcMesObject.getPlcParameter("MESToD03").getValue();
+ String mesD05Address = plcMesObject.getPlcParameter("MESToD05").getValue();
+ log.info("MESToD03:{},MESToD05:{}", mesD03Address, mesD05Address);
+ if ("2".equals(mesD03Address) || "2".equals(mesD05Address)) {
+ log.info("鏈夊惎鍔ㄤ俊鍙凤紝MESToD03:{},MESToD05:{}", mesD03Address, mesD05Address);
+ }
PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
String e01Status = plcParameterObject.getPlcParameter("E01State").getValue();
String d03ToMES = plcParameterObject.getPlcParameter("D03ToMES").getValue();
String d05ToMES = plcParameterObject.getPlcParameter("D05ToMES").getValue();
log.info("鎵ц绌鸿溅閫佺墖浠诲姟锛岃幏鍙栧埌鐨勫ぇ杞︾姸鎬佷负{}锛屽崸杞珛鐘舵�佸垎鍒负d03:{}锛宒05:{}", e01Status, d03ToMES, d05ToMES);
+ List<BigStorageCageFeedTask> bigStorageCageFeedTasks = bigStorageCageFeedTaskService.list(
+ new LambdaQueryWrapper<BigStorageCageFeedTask>()
+ .ne(BigStorageCageFeedTask::getTargetSlot, 0)
+ .lt(BigStorageCageFeedTask::getTaskState, Const.BIG_STORAGE_IN_SLOT)
+ );
+ if (bigStorageCageFeedTasks.size() > 0) {
+ Date endDate = new Date();
+ log.info("澶ц溅鏈夋鍦ㄦ墽琛岀殑浠诲姟{}锛岀粨鏉熼�佺墖浠诲姟锛屼换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", bigStorageCageFeedTasks, endDate, endDate.getTime() - startDate.getTime());
+ return;
+ }
if (REQUEST_WORD.equals(e01Status)) {
Date endDate = new Date();
log.info("杩涚墖澶ц溅闈炵┖闂诧紝缁撴潫閫佺墖浠诲姟锛屼换鍔$粨鏉熸椂闂达細{}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
@@ -301,21 +317,23 @@
//鐜荤拑鍒伴綈鍖呮嫭宸插嚭鐗囩殑
//鍒伴綈锛屽皢鐜荤拑灏忕墖鏁版嵁瀛樺叆閽㈠寲灏忕墖琛紝閫昏緫鐢熸垚鍑虹墖浠诲姟 缁撴潫
for (TemperingLayoutDTO item : temperingLayoutDTOList) {
- List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
- .selectAll(GlassInfo.class)
- .select("-1 as state")
- .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
- .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
- .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
- .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
- .eq(GlassInfo::getEngineerId, item.getEngineerId())
- .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
- if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
- temperingGlassInfoService.saveBatch(temperingGlassInfos);
- computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
- Date endDate = new Date();
- log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
- return;
+ if (redisUtil.getCacheObject("temperingengineerId").equals(item.getEngineerId())) {
+ List<TemperingGlassInfo> temperingGlassInfos = glassInfoService.selectJoinList(TemperingGlassInfo.class, JoinWrappers.lambda(GlassInfo.class)
+ .selectAll(GlassInfo.class)
+ .select("-1 as state")
+ .selectAs(BigStorageCageDetails::getSlot, TemperingGlassInfo::getSlot)
+ .innerJoin(BigStorageCageDetails.class, BigStorageCageDetails::getGlassId, GlassInfo::getGlassId)
+ .eq(BigStorageCageDetails::getState, Const.GLASS_STATE_IN)
+ .eq(GlassInfo::getTemperingLayoutId, item.getTemperingLayoutId())
+ .eq(GlassInfo::getEngineerId, item.getEngineerId())
+ .orderBy(Boolean.TRUE, sequenceOrder, GlassInfo::getTemperingFeedSequence));
+ if (CollectionUtils.isNotEmpty(temperingGlassInfos)) {
+ temperingGlassInfoService.saveBatch(temperingGlassInfos);
+ computeOutMoreGlassInfo(temperingGlassInfoList, Boolean.TRUE, mesToPLCAddress);
+ Date endDate = new Date();
+ log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
+ return;
+ }
}
}
}
@@ -340,7 +358,7 @@
int serialNumber = 1;
for (BigStorageCageDetails item : list) {
outTasks.add(new BigStorageCageOutTask(item.getGlassId(), first.getSlot(), second.getSlot(),
- item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW));
+ item.getWidth() * 10, item.getHeight() * 10, 1, serialNumber++, Const.BIG_STORAGE_OUT_NEW, new Date()));
}
//鏂板璋冨害浠诲姟
bigStorageCageOutTaskService.saveBatch(outTasks);
@@ -419,6 +437,16 @@
List<BigStorageCageOutTask> outSuccessGlass = bigStorageCageOutTaskService.list(new LambdaQueryWrapper<BigStorageCageOutTask>()
.in(BigStorageCageOutTask::getGlassId, glassIds).in(BigStorageCageOutTask::getTaskState, Const.BIG_STORAGE_OUT_ALL));
if (CollectionUtils.isNotEmpty(outSuccessGlass)) {
+ for (BigStorageCageOutTask bigStorageCageOutTask:outSuccessGlass
+ ) {
+ if(bigStorageCageOutTask.getEndSlot().equals(Const.ARTIFICIAL_OUT_TARGET_POSITION)){
+ temperingGlassInfoService.update(
+ new LambdaUpdateWrapper<TemperingGlassInfo>()
+ .set(TemperingGlassInfo::getState,Const.TEMPERING_END)
+ .eq(TemperingGlassInfo::getGlassId,bigStorageCageOutTask.getGlassId())
+ );
+ }
+ }
log.info("3銆佽幏鍙栧嚭鐗囧凡瀹屾垚鐨勭幓鐠冧俊鎭痠d:{}", outSuccessGlass);
List<UpdateBigStorageCageDTO> storageCageDTOList = outSuccessGlass.stream().map(e -> {
UpdateBigStorageCageDTO storageCageDTO = new UpdateBigStorageCageDTO();
@@ -584,7 +612,11 @@
if (glassCount < inCarMaxSize) {
addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
} else {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+ if (glassCount < inCarMaxSize + 1) {
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+ } else {
+ return Boolean.FALSE;
+ }
}
} else {
flag = Boolean.FALSE;
@@ -595,12 +627,20 @@
if (remainWidth >= widthFirst) {
if (remainWidth - widthFirst - glassGap >= widthSecond) {
if (glassCount < inCarMaxSize) {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightSecond);
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_WAIT, widthFirst, heightFirst);
} else {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond);
+ if (glassCount < inCarMaxSize + 1) {
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+ } else {
+ return Boolean.FALSE;
+ }
}
} else {
- addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightSecond);
+ if (glassCount < inCarMaxSize + 1) {
+ addFeedTask(glassId, line, Const.BIG_STORAGE_IN_RUN, widthFirst, heightFirst);
+ } else {
+ return Boolean.FALSE;
+ }
}
} else {
flag = Boolean.FALSE;
@@ -634,6 +674,15 @@
bigStorageCageFeedTask.setWidth(width);
bigStorageCageFeedTask.setHeight(height);
bigStorageCageFeedTask.setCreateTime(new Date());
+ //鍒犻櫎鐞嗙墖绗艰〃鎷胯蛋/鐮存崯鏁版嵁鏁版嵁
+ damageService.deleteByGlassId(glassId);
+ Damage damage = new Damage();
+ damage.setGlassId(glassId);
+ damage.setWorkingProcedure("纾ㄨ竟");
+ damage.setLine(line);
+ damage.setType(1);
+ damage.setRemark("杩涘ぇ鐞嗙墖");
+ damageService.insertDamage(damage);
return bigStorageCageFeedTaskService.save(bigStorageCageFeedTask);
}
@@ -722,7 +771,7 @@
for (int i = 1; i <= taskList.size(); i++) {
s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
- log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚", i);
+ log.info("鍚憄lc鍙戦�佺{}鐗囩幓鐠冨凡瀹屾垚,璧峰浣嶇疆鏄瘂}锛岀洰鏍囦綅缃槸", i, taskList.get(i - 1).getLine(), taskList.get(i - 1).getTargetSlot());
}
int returnData = 0;
int count = 1;
@@ -757,7 +806,7 @@
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));
+ e.getWidth() * 10, e.getHeight() * 10, 0, 0, 1, new Date()));
maxX = Math.max(maxX, e.getXCoordinate());
} else {
break;
@@ -765,7 +814,7 @@
} else {
bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
- e.getWidth() * 10, e.getHeight(), 0, 0, 1));
+ e.getWidth() * 10, e.getHeight(), 0, 0, 1, new Date()));
}
}
Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
@@ -816,7 +865,7 @@
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, trainNumber, serialNumber++, 1));
+ e.getWidth() * 10, e.getHeight() * 10, trainNumber, serialNumber++, 1, new Date()));
maxX = Math.max(maxX, e.getXCoordinate());
} else {
remainWidth = carWidth - maxLength - glassGap;
@@ -824,16 +873,20 @@
serialNumber = 1;
maxX = e.getXCoordinate();
bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.TEMPERING_OUT_TARGET_POSITION,
- e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1));
+ e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
}
} else {
bigStorageCageOutTaskList.add(new BigStorageCageOutTask(e.getGlassId(), e.getSlot(), Const.ARTIFICIAL_OUT_TARGET_POSITION,
- e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1));
+ e.getWidth() * 10, e.getHeight(), trainNumber, serialNumber++, 1, new Date()));
}
}
Assert.isFalse(CollectionUtils.isEmpty(bigStorageCageOutTaskList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", bigStorageCageOutTaskList.size());
- bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
+ for (BigStorageCageOutTask bigStorageCageOutTask : bigStorageCageOutTaskList
+ ) {
+ bigStorageCageOutTaskService.save(bigStorageCageOutTask);
+ }
+// bigStorageCageOutTaskService.saveBatch(bigStorageCageOutTaskList);
List<String> glassIds = bigStorageCageOutTaskList.stream().map(BigStorageCageOutTask::getGlassId).collect(Collectors.toList());
log.info("灏嗗嚭鐗囩幓鐠儃}鐜荤拑鐘舵�佹敼涓哄凡鍑虹墖", glassIds);
bigStorageCageDetailsService.update(new LambdaUpdateWrapper<BigStorageCageDetails>()
--
Gitblit v1.8.0