From b64ef67b6950301c5e808cbb709248e341a3e6a2 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期五, 20 十二月 2024 22:53:14 +0800
Subject: [PATCH] 1、大理片笼及中空大理片笼自动报工,增加过渡台限制(高度超过2500或者厚度超过12) 2、卧理报工
---
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml | 2
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java | 43 ++++++++++++++++++++-
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java | 4 +-
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java | 4 ++
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java | 25 ++++++++----
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java | 9 ++++
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml | 1
hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java | 8 ++++
hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml | 2 +
9 files changed, 83 insertions(+), 15 deletions(-)
diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
index 4e5ec39..dfd5bc6 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/DamageService.java
@@ -27,6 +27,14 @@
Boolean submitReport(Damage damage);
/**
+ * 鎸夌収鐜荤拑id淇℃伅鑷姩鎶ュ伐
+ * @param glassId
+ * @param deviceId
+ * @param workingProcedure
+ * @param remark
+ */
+ void autoSubmitReport(String glassId, int deviceId,String workingProcedure,String remark);
+ /**
* 鍗曚釜鐮存崯
*
* @param damage
diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
index 5a08b5f..204ef25 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcCacheGlassTask.java
@@ -9,6 +9,7 @@
import com.kangaroohy.milo.model.ReadWriteEntity;
import com.kangaroohy.milo.service.MiloService;
import com.mes.common.config.Const;
+import com.mes.damage.service.DamageService;
import com.mes.edgglasstask.entity.EdgGlassTaskInfo;
import com.mes.edgglasstask.service.EdgGlassTaskInfoService;
import com.mes.edgstoragecage.entity.EdgStorageCage;
@@ -72,6 +73,8 @@
EdgStorageCageService edgStorageCageService;
@Resource
EdgStorageDeviceTaskHistoryService edgStorageDeviceTaskHistoryService;
+ @Resource
+ DamageService damageService;
@Value("${mes.glassGap}")
private int glassGap;
@@ -122,17 +125,17 @@
private void startOneOpcTaskChild(String tableName, int device) {
EdgStorageDeviceTask task = edgStorageDeviceTaskService.queryTaskMessage(tableName);
// try {
- if (task == null) {
- log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
- return;
- }
- if (task.getTaskState() == 2) {
- //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
- task.setGlassIdIn("");
- }
+ if (task == null) {
+ log.info("浠诲姟琛ㄥ熀纭�鏁版嵁褰曞叆澶辫触锛岃妫�鏌ユ暟鎹槸鍚﹀綍鍏ユ垚鍔�");
+ return;
+ }
+ if (task.getTaskState() == 2) {
+ //闃叉鍑虹墖浠诲姟涓旂鍓嶆湁鐜荤拑鐨勬儏鍐碉紝灏嗚繘鐗噄d缃┖锛屽嵆鍑虹墖浠呰�冭檻绗煎唴鐨勭幓鐠�
+ task.setGlassIdIn("");
+ }
int request = task.getTaskState();
int taskRunning = task.getTaskRunning();
- log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
+ log.info("寮�濮嬫墽琛屼换鍔★紝浠诲姟璇蜂俊鎭负{}", task);
if (request == 0) {
log.info("璁惧锛歿}鐘舵�侊細{}", device, request);
log.info("鏈敹鍒颁换鍔¤姹傦紝缁撴潫鏈浠诲姟");
@@ -487,6 +490,10 @@
.eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
.eq(EdgStorageDeviceTaskHistory::getDeviceId, device)
.orderByDesc(EdgStorageDeviceTaskHistory::getCreateTime).last("limit 1"));
+ //濡傛灉浠诲姟绫诲瀷涓�1锛�3锛屽皢鍒囧壊瀹屾垚鐨勭幓鐠冭嚜鍔ㄦ姤宸�
+ if (Const.GLASS_CACHE_TYPE_IN_ALL.contains(taskHistory.getTaskType())) {
+ damageService.autoSubmitReport(taskHistory.getGlassIdIn(), taskHistory.getDeviceId(),"鍒囧壊","杩涘崸鐞�");
+ }
updateCellRemainWidth(cell, device, taskHistory);
edgStorageDeviceTaskHistoryService.update(new LambdaUpdateWrapper<EdgStorageDeviceTaskHistory>()
.eq(EdgStorageDeviceTaskHistory::getTaskState, Const.RAW_GLASS_TASK_NEW)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
index 959d8b7..57b2a42 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstorage/service/impl/BigStorageCageServiceImpl.java
@@ -221,8 +221,8 @@
MPJLambdaWrapper<BigStorageCage> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(BigStorageCage.class).selectCollection(BigStorageCageDetails.class, BigStorageCage::getBigStorageCageDetails)
.leftJoin(BigStorageCageDetails.class, on -> on.eq(BigStorageCageDetails::getSlot, BigStorageCage::getSlot)
- .eq(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
- .eq(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
+ .like(StringUtils.isNotBlank(query.getFilmsId()), BigStorageCageDetails::getFilmsId, query.getFilmsId())
+ .like(StringUtils.isNotBlank(query.getFlowCardId()), BigStorageCageDetails::getFlowCardId, query.getFlowCardId())
.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN, Const.GLASS_STATE_ARTIFICIAL, Const.GLASS_STATE_OUT_ING))
.eq(BigStorageCage::getDeviceId, query.getDeviceId())
.orderByAsc(BigStorageCage::getDeviceId)
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
index 44d88bd..b506c45 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageNewTask.java
@@ -101,6 +101,8 @@
private Integer artificialOutTargetPosition;
@Value("${mes.slotMaxHeight}")
private Integer slotMaxHeight;
+ @Value("${mes.slotMaxthickness}")
+ private Integer slotMaxthickness;
@Scheduled(fixedDelay = 1000)
public void inBigStorageTask() throws Exception {
@@ -175,7 +177,7 @@
}
}
//todo:瓒呭ぇ灏哄
- if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight())) {
+ if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() > slotMaxthickness) {
int count = bigStorageCageDetailsService.count(new LambdaQueryWrapper<BigStorageCageDetails>()
.eq(BigStorageCageDetails::getSlot, THROUGH_SLOT)
.in(BigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
@@ -189,6 +191,11 @@
//淇敼纾ㄨ竟瀵瑰垪琛ㄧ殑鐜荤拑鐘舵��
edgGlassTaskInfoService.update(new LambdaUpdateWrapper<EdgGlassTaskInfo>()
.set(EdgGlassTaskInfo::getState, Const.EDG_GLASS_SUCCESS).in(EdgGlassTaskInfo::getGlassId, glassIdList));
+ //鎶ュ伐
+ for (String glass : glassIdList) {
+ damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "纾ㄨ竟", "杩涘ぇ鐞嗙墖绗�");
+ }
+
Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
//璁$畻鐩爣鏍煎瓙
List<BigStorageCageHistoryTask> historyTasks = new ArrayList<>();
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
index 51356c7..c60e249 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/application.yml
@@ -28,6 +28,7 @@
glassGap: 250 #鐜荤拑闂磋窛
xMaxSize: 2800
slotMaxHeight: 2500
+ slotMaxthickness: 12
temperingOutTargetPosition: 930
artificialOutTargetPosition: 931
diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
index 61adf41..ebda8bb 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/resources/mapper/BigStorageCageDetailsMapper.xml
@@ -132,7 +132,7 @@
</where>
</update>
<update id="updateDeviceIdBySlot">
- update big_storage_cage_details t innser join big_storage_cage t1 on t.slot = t1.slot
+ update big_storage_cage_details t inner join big_storage_cage t1 on t.slot = t1.slot
set t.device_id = t1.device_id
where t.slot in (
<foreach collection="list" item="item" separator=",">
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
index a61b3dd..690605a 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowGlassRelationInfoServiceImpl.java
@@ -63,6 +63,7 @@
.eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
.eq(HollowGlassRelationInfo::getWidth, width)
.eq(HollowGlassRelationInfo::getHeight, height)
+ .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
.eq(HollowGlassRelationInfo::getLayer, layer)
.eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
.orderByAsc(HollowGlassRelationInfo::getHollowSequence)
@@ -76,6 +77,7 @@
.eq(HollowGlassRelationInfo::getFlowCardId, flowCardId)
.eq(HollowGlassRelationInfo::getWidth, width)
.eq(HollowGlassRelationInfo::getHeight, height)
+ .eq(HollowGlassRelationInfo::getTotalLayer, totalLayer)
.eq(HollowGlassRelationInfo::getLayer, layer)
.eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
.orderByAsc(HollowGlassRelationInfo::getHollowSequence)
@@ -84,6 +86,7 @@
}
HollowBigStorageCageDetails hollowDetails = hollowBigStorageCageDetailsService.getOne(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
.eq(HollowBigStorageCageDetails::getFlowCardId, relationInfoOne.getFlowCardId())
+ .eq(HollowBigStorageCageDetails::getTotalLayer, totalLayer)
.eq(HollowBigStorageCageDetails::getLayer, layer)
.eq(HollowBigStorageCageDetails::getVirtualSlot, relationInfoOne.getVirtualSlot())
.in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO)
@@ -102,6 +105,7 @@
}
HollowGlassRelationInfo relationInfoBefore = hollowGlassRelationInfoService.getOne(new LambdaQueryWrapper<HollowGlassRelationInfo>()
.eq(HollowGlassRelationInfo::getFlowCardId, relationInfoOne.getFlowCardId())
+ .eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getTotalLayer())
.eq(HollowGlassRelationInfo::getLayer, relationInfoOne.getLayer())
.eq(HollowGlassRelationInfo::getVirtualSlot, relationInfoOne.getVirtualSlot())
.eq(HollowGlassRelationInfo::getSlotSequence, relationInfoOne.getSlotSequence() - 1));
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
index dfd6891..d7e8364 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java
@@ -78,6 +78,10 @@
private static final String BIG_STORAGE_CAGE_IN_TWO_TASK = "big_storage_cage_in_two_task";
private static final String BIG_STORAGE_CAGE_OUT_TWO_TASK = "big_storage_cage_out_two_task";
+ /**
+ * 鐩撮�氭牸瀛�
+ */
+ private static final Integer THROUGH_SLOT = 920;
@Autowired(required = false)
MiloService miloService;
@Resource
@@ -94,6 +98,11 @@
@Value("${mes.outCarMaxSize}")
private Integer outCarMaxSize;
+
+ @Value("${mes.slotMaxHeight}")
+ private Integer slotMaxHeight;
+ @Value("${mes.slotMaxthickness}")
+ private Integer slotMaxthickness;
@Scheduled(fixedDelay = 1000)
public void inBigStorageTask() throws Exception {
@@ -154,10 +163,40 @@
//todo:鍚憄lc鍙戦�佹姤璀�
return;
}
+ //鎸夌収鐜荤拑鍘氬害鍒嗙粍锛屽垽鏂墿浣欐牸瀛愭槸鍚﹀彲浠ュ瓨鏀�
+ Map<Double, Long> thickCountMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getThickness, Collectors.counting()));
+ for (Map.Entry<Double, Long> entry : thickCountMap.entrySet()) {
+ int count = hollowBigStorageCageService.count(new LambdaQueryWrapper<HollowBigStorageCage>()
+ .eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth)
+ .le(HollowBigStorageCage::getMinThickness, entry.getKey())
+ .ge(HollowBigStorageCage::getMaxThickness, entry.getKey()));
+ if (count < entry.getValue()) {
+ log.info("绗煎唴鏍煎瓙鍓╀綑鏁伴噺涓嶈冻锛岀粨鏉熸湰娆¤繘鐗�");
+ //todo:鍚憄lc鍙戦�佹姤璀�
+ return;
+ }
+ }
+ //todo:瓒呭ぇ灏哄
+ if (slotMaxHeight < Math.min(glassInfoList.get(0).getWidth(), glassInfoList.get(0).getHeight()) || glassInfoList.get(0).getThickness() > slotMaxthickness) {
+ int count = hollowBigStorageCageDetailsService.count(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
+ .eq(HollowBigStorageCageDetails::getSlot, THROUGH_SLOT)
+ .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+ if (count > 0) {
+ log.info("鐩撮�氱墖鍙板瓨鍦ㄧ幓鐠冿紝缁撴潫鏈杩涚墖");
+ //todo:鍚憄lc鍙戦�佹姤璀�
+ return;
+ }
+ }
+
+ log.info("灏嗛挗鍖栧皬鐗囪〃鍐呯殑鐘舵�佹敼涓洪挗鍖栫粨鏉燂紝鐜荤拑id鏈夛細{}", glassIdList);
//淇敼閽㈠寲浠诲姟琛ㄤ腑鐨勭姸鎬�
temperingGlassInfoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>()
.set(TemperingGlassInfo::getState, Const.TEMPERING_END).in(TemperingGlassInfo::getGlassId, glassIdList));
-
+ //鎶ュ伐
+ log.info("灏嗘帴鏀跺埌鐨勭幓鐠冭繘琛岄挗鍖栬嚜鍔ㄦ姤宸ワ紝鐜荤拑id鏈夛細{}", glassIdList);
+ for (String glass : glassIdList) {
+ damageService.autoSubmitReport(glass, inTaskList.get(0).getStartSlot(), "閽㈠寲", "杩涗腑绌虹悊鐗囩");
+ }
Map<String, List<GlassInfo>> glassListMap = glassInfoList.stream().collect(Collectors.groupingBy(GlassInfo::getGlassId));
//璁$畻鐩爣鏍煎瓙
@@ -766,7 +805,7 @@
targetSlot = storageCage.getSlot();
hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
.set(HollowBigStorageCage::getRemainWidth, 0).eq(HollowBigStorageCage::getSlot, targetSlot));
- }else{
+ } else {
resultList = tempList;
}
totalLayer = 0;
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
index d1efe15..71d5812 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/resources/application.yml
@@ -29,6 +29,8 @@
xMaxSize: 2800
temperingOutTargetPosition: 930
artificialOutTargetPosition: 931
+ slotMaxHeight: 2500
+ slotMaxthickness: 12
kangaroohy:
milo:
enabled: true
--
Gitblit v1.8.0