From 65fcc14b336fca3fea921f160780cb52e0af2ff2 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 01 八月 2024 12:26:06 +0800
Subject: [PATCH] 大理片笼出片任务:1、提供一次生成一车玻璃。 2、一次生成一炉玻璃 下片模块:流程卡判断为空异常fixbug
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java | 64 +++++++++++++++++++++++++++++++
1 files changed, 63 insertions(+), 1 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 e060877..dba789f 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);
@@ -704,11 +704,73 @@
}
}
+ /**
+ * 鍑虹墖涓�娆′粎鐢熸垚涓�杞︾幓鐠�
+ *
+ * @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<>();
+ //鎵撹溅鍓╀綑灏哄
+ Integer remainWidth = carWidth;
int trainNumber = 1;
int serialNumber = 1;
int maxX = 0;
--
Gitblit v1.8.0