From 425e9e1f5413fdd46368e5486d582a25473f7476 Mon Sep 17 00:00:00 2001
From: wangfei <3597712270@qq.com>
Date: 星期四, 12 十二月 2024 14:14:36 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/YiWuProject
---
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/job/OpcPlcStorageCageHollowTask.java | 171 ++++++++++++++++++++++++++++++++++++--------------------
1 files changed, 109 insertions(+), 62 deletions(-)
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 241f50f..dfd6891 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
@@ -141,7 +141,7 @@
}
}
List<HollowBigStorageCageDetails> detailsList = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>().in(HollowBigStorageCageDetails::getGlassId, glassIdList)
- .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL));
+ .in(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN_ALL_ZERO));
if (CollectionUtil.isNotEmpty(detailsList)) {
log.info("鐞嗙墖绗煎瓨鍦ㄧ浉鍚岀殑杩涚墖鐜荤拑{}锛岀粨鏉熸湰娆′换鍔�", detailsList);
//todo:鍚憄lc鍙戦�佹姤璀�
@@ -162,43 +162,56 @@
//璁$畻鐩爣鏍煎瓙
List<HollowBigStorageCageHistoryTask> historyTasks = new ArrayList<>();
- for (BigStorageCageTask task : inTaskList) {
- GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
- HollowBigStorageDTO bigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(info.getFlowCardId(),
- info.getWidth(), info.getHeight(), info.getTotalLayer(), info.getLayer());
+ try {
+ for (BigStorageCageTask task : inTaskList) {
+ GlassInfo info = glassListMap.get(task.getGlassId()).get(0);
+ HollowBigStorageDTO bigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(info.getFlowCardId(),
+ info.getWidth(), info.getHeight(), info.getTotalLayer(), info.getLayer());
// 涓存椂鏇存柊鏍煎瓙鐨勫墿浣欏昂瀵革細闃叉鐩搁偦鐜荤拑杩涘悓涓�鏍煎瓙閫犳垚鍓╀綑灏哄涓嶈冻锛岀幓鐠冭秺鐣岀殑鎯呭喌锛屼换鍔″畬鎴愬悗鍐嶆鏇存柊澶х悊鐗囩琛ㄥ墿浣欏搴︼紙鎸夌収绗煎唴鐜荤拑鏁伴噺鏇存柊澶х悊鐗囩鍓╀綑灏哄锛�
- hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
- .set(HollowBigStorageCage::getRemainWidth, bigStorageDTO.getRemainWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
- .eq(HollowBigStorageCage::getSlot, bigStorageDTO.getSlot()));
- task.setTargetSlot(bigStorageDTO.getSlot());
- task.setGlassId(info.getGlassId());
- bigStorageCageTaskService.updateTaskMessage(BIG_STORAGE_CAGE_IN_TWO_TASK, task);
- //瀛樻斁鍘嗗彶浠诲姟
- HollowBigStorageCageHistoryTask historyTask = new HollowBigStorageCageHistoryTask();
- BeanUtils.copyProperties(task, historyTask);
- historyTask.setTaskType(Const.BIG_STORAGE_AFTER_IN);
- historyTask.setGlassCount(glassInfoList.size());
- historyTask.setTaskState(Const.ENGINEERING_NEW);
- historyTasks.add(historyTask);
- //瀛樻斁璇︽儏鏁版嵁
- HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
- BeanUtils.copyProperties(bigStorageDTO, cageDetails);
- BeanUtils.copyProperties(info, cageDetails);
- cageDetails.setState(Const.GLASS_STATE_NEW);
- cageDetails.setSequence(bigStorageDTO.getSlotSequence());
- cageDetails.setGap(glassGap);
- cageDetails.setId(null);
- hollowBigStorageCageDetailsService.save(cageDetails);
+ hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
+ .set(HollowBigStorageCage::getRemainWidth, bigStorageDTO.getRemainWidth() - Math.max(info.getWidth(), info.getHeight()) - glassGap)
+ .eq(HollowBigStorageCage::getSlot, bigStorageDTO.getSlot()));
+ task.setTargetSlot(bigStorageDTO.getSlot());
+ task.setGlassId(info.getGlassId());
+ bigStorageCageTaskService.updateTaskMessage(BIG_STORAGE_CAGE_IN_TWO_TASK, task);
+ //瀛樻斁鍘嗗彶浠诲姟
+ HollowBigStorageCageHistoryTask historyTask = new HollowBigStorageCageHistoryTask();
+ BeanUtils.copyProperties(task, historyTask);
+ historyTask.setTaskType(Const.BIG_STORAGE_AFTER_IN);
+ historyTask.setGlassCount(glassInfoList.size());
+ historyTask.setTaskState(Const.ENGINEERING_NEW);
+ historyTasks.add(historyTask);
+ //瀛樻斁璇︽儏鏁版嵁
+ HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
+ BeanUtils.copyProperties(bigStorageDTO, cageDetails);
+ BeanUtils.copyProperties(info, cageDetails);
+ cageDetails.setState(Const.GLASS_STATE_NEW);
+ cageDetails.setSequence(bigStorageDTO.getSlotSequence());
+ cageDetails.setGap(glassGap);
+ cageDetails.setId(null);
+ hollowBigStorageCageDetailsService.save(cageDetails);
+ hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+ .set(HollowGlassRelationInfo::getGlassId, cageDetails.getGlassId())
+ .set(HollowGlassRelationInfo::getTemperingLayoutId, cageDetails.getTemperingLayoutId())
+ .set(HollowGlassRelationInfo::getTemperingFeedSequence, cageDetails.getTemperingFeedSequence())
+ .set(HollowGlassRelationInfo::getEngineerId, cageDetails.getEngineerId())
+ .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+ .eq(HollowGlassRelationInfo::getFlowCardId, bigStorageDTO.getFlowCardId())
+ .eq(HollowGlassRelationInfo::getLayer, bigStorageDTO.getLayer())
+ .eq(HollowGlassRelationInfo::getVirtualSlot, bigStorageDTO.getVirtualSlot())
+ .eq(HollowGlassRelationInfo::getSlotSequence, bigStorageDTO.getSlotSequence())
+ .eq(HollowGlassRelationInfo::getHollowSequence, bigStorageDTO.getHollowSequence())
+ );
+ }
+ } catch (Exception exception) {
+ log.info("杩涚墖浠诲姟鎵ц涓彂鐢熷紓甯革細{}", exception);
hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
- .set(HollowGlassRelationInfo::getGlassId, cageDetails.getGlassId())
- .set(HollowGlassRelationInfo::getTemperingLayoutId, cageDetails.getTemperingLayoutId())
- .set(HollowGlassRelationInfo::getTemperingFeedSequence, cageDetails.getTemperingFeedSequence())
- .set(HollowGlassRelationInfo::getEngineerId, cageDetails.getEngineerId())
- .eq(HollowGlassRelationInfo::getFlowCardId, bigStorageDTO.getFlowCardId())
- .eq(HollowGlassRelationInfo::getLayer, bigStorageDTO.getLayer())
- .eq(HollowGlassRelationInfo::getVirtualSlot, bigStorageDTO.getVirtualSlot())
- .eq(HollowGlassRelationInfo::getSlotSequence, bigStorageDTO.getSlotSequence())
- .eq(HollowGlassRelationInfo::getHollowSequence, bigStorageDTO.getHollowSequence())
+ .set(HollowGlassRelationInfo::getGlassId, null)
+ .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+ .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+ .set(HollowGlassRelationInfo::getEngineerId, null)
+ .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+ .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
);
}
//鍘嗗彶鏁版嵁鍏ュ簱
@@ -274,7 +287,7 @@
if (CollectionUtil.isNotEmpty(unFinishHollowQueueList)) {
log.info("鏈夋鍦ㄥ嚭鐗囩殑涓┖浠诲姟");
Integer isPair = unFinishHollowQueueList.get(0).getIsPair();
- hollowOutGlassByIsPair(unFinishHollowQueueList, hollowGlassOutRelationInfo.getCell(), isPair, hollowGlassOutRelationInfo.getTotalLayer(),hollowGlassOutRelationInfo.getIsForce());
+ hollowOutGlassByIsPair(unFinishHollowQueueList, hollowGlassOutRelationInfo.getCell(), isPair, hollowGlassOutRelationInfo.getTotalLayer(), hollowGlassOutRelationInfo.getIsForce());
Date endDate = new Date();
log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
return;
@@ -367,7 +380,7 @@
int targetSlot = item.getSlot();
list = hollowBigStorageCageDetailsService.list(new LambdaQueryWrapper<HollowBigStorageCageDetails>()
.eq(HollowBigStorageCageDetails::getState, Const.GLASS_STATE_IN).eq(HollowBigStorageCageDetails::getSlot, startSlot));
- hollowOutGlassByIsPair(list, targetSlot, 0, 0,0);
+ hollowOutGlassByIsPair(list, targetSlot, 0, 0, 0);
List<Integer> slotList = new ArrayList<>();
slotList.add(targetSlot);
updateSlotRemainBySlots(slotList);
@@ -440,12 +453,38 @@
hollowBigStorageCageDetailsService.updateBySlot(storageCageDTOList, Const.GLASS_STATE_IN);
log.info("4銆佸ぇ鐞嗙墖绗艰繘鐗囩姸鎬佸凡瀹屾垚宸插畬鎴愮殑鐜荤拑淇℃伅id:{}", v);
updateSlotRemainBySlots(inSuccessGlassSlot);
+ List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+ hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+ .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_SUCCESS)
+ .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+ .in(HollowGlassRelationInfo::getGlassId, glassList)
+ );
} else if (e1 == 3) {
//鐮存崯澶勭悊
dealDamageInTask(v);
+ List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+ hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+ .set(HollowGlassRelationInfo::getGlassId, null)
+ .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+ .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+ .set(HollowGlassRelationInfo::getEngineerId, null)
+ .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+ .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+ .in(HollowGlassRelationInfo::getGlassId, glassList)
+ );
} else {
//娓呯┖鐞嗙墖绗肩┖鏁版嵁
noDealInTask(v);
+ List<String> glassList = v.stream().map(BigStorageCageTask::getGlassId).collect(Collectors.toList());
+ hollowGlassRelationInfoService.update(new LambdaUpdateWrapper<HollowGlassRelationInfo>()
+ .set(HollowGlassRelationInfo::getGlassId, null)
+ .set(HollowGlassRelationInfo::getTemperingLayoutId, null)
+ .set(HollowGlassRelationInfo::getTemperingFeedSequence, null)
+ .set(HollowGlassRelationInfo::getEngineerId, null)
+ .set(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_NEW)
+ .eq(HollowGlassRelationInfo::getState, Const.HOLLOW_RELATION_OCCUPY)
+ .in(HollowGlassRelationInfo::getGlassId, glassList)
+ );
}
});
for (BigStorageCageTask item : inTaskList) {
@@ -560,36 +599,36 @@
try {
//鏇存柊鏁伴噺
//鎸夌収鐜荤拑id鑾峰彇闇�瑕佸嚭鐗囧鍒楄〃涓殑鏁版嵁
- if(finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT) ){
+ if (finalTaskType.equals(Const.BIG_STORAGE_AFTER_OUT)) {
HollowGlassQueueInfo hollowGlassQueueInfo = hollowGlassQueueInfoService.getOne(new LambdaQueryWrapper<HollowGlassQueueInfo>()
.eq(HollowGlassQueueInfo::getGlassId, outTaskList.get(0).getGlassId())
.orderByDesc(HollowGlassQueueInfo::getUpdateTime).last("limit 1"));
List<HollowGlassQueueInfo> list = hollowGlassQueueInfoService.list(new LambdaQueryWrapper<HollowGlassQueueInfo>()
- .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassQueueInfo.getFlowCardId())
- .eq(HollowGlassQueueInfo::getCell, hollowGlassQueueInfo.getCell())
+ .eq(HollowGlassQueueInfo::getFlowCardId, hollowGlassQueueInfo.getFlowCardId())
+ .eq(HollowGlassQueueInfo::getCell, hollowGlassQueueInfo.getCell())
// .eq(HollowGlassQueueInfo::getIsPair, 1)
- .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
+ .eq(HollowGlassQueueInfo::getState, Const.TEMPERING_NEW)
);
- if (CollectionUtil.isEmpty(list)){
+ if (CollectionUtil.isEmpty(list)) {
// 浠诲姟鏇存柊涓哄凡瀹屾垚
hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
- .eq("flow_card_id",hollowGlassQueueInfo.getFlowCardId())
- .eq("cell",hollowGlassQueueInfo.getCell())
+ .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+ .eq("cell", hollowGlassQueueInfo.getCell())
.setSql("pair_quantity = total_pair_quantity")
- .set("state",Const.HOLLOW_FLOW_CARD_SUCCESS)
+ .set("state", Const.HOLLOW_FLOW_CARD_SUCCESS)
);
- }else{
+ } else {
// 璁$畻鍓╀綑鐜荤拑瀵规暟锛岀敤浠诲姟鎬婚槦鏁板噺鍓╀綑瀵规暟
int remainCount = list.size() / hollowGlassQueueInfo.getTotalLayer();
hollowGlassOutRelationInfoService.update(new UpdateWrapper<HollowGlassOutRelationInfo>()
- .eq("flow_card_id",hollowGlassQueueInfo.getFlowCardId())
- .eq("cell",hollowGlassQueueInfo.getCell())
- .setSql("pair_quantity = total_pair_quantity -"+remainCount)
+ .eq("flow_card_id", hollowGlassQueueInfo.getFlowCardId())
+ .eq("cell", hollowGlassQueueInfo.getCell())
+ .setSql("pair_quantity = total_pair_quantity -" + remainCount)
);
}
}
- }catch (Exception e){
- log.info("璁$畻鐜荤拑鏁伴噺杩囩▼涓嚭鐜伴敊璇紝閿欒淇℃伅{}",e.getMessage());
+ } catch (Exception e) {
+ log.info("璁$畻鐜荤拑鏁伴噺杩囩▼涓嚭鐜伴敊璇紝閿欒淇℃伅{}", e.getMessage());
}
// hollowGlassOutRelationInfoService.update
@@ -703,7 +742,7 @@
}
- private <T extends HollowBigStorageCageBaseInfo> Boolean hollowOutGlassByIsPair(List<T> list, int targetSlot, int isPair, int totalLayer,int isForce) {
+ private <T extends HollowBigStorageCageBaseInfo> Boolean hollowOutGlassByIsPair(List<T> list, int targetSlot, int isPair, int totalLayer, int isForce) {
List<T> resultList = new ArrayList<>();
List<T> tempList = new ArrayList<>();
int taskType = Const.BIG_STORAGE_AFTER_OUT;
@@ -711,25 +750,30 @@
for (T t : list) {
if (isPair == (t.getIsPair() == null ? 0 : t.getIsPair())) {
tempList.add(t);
- }else{
+ } else {
break;
}
}
- if (isPair == 0 && isForce!=1) {
+ if (isPair == 0 && isForce != 1) {
taskType = Const.BIG_STORAGE_AFTER_DISPATCH;
taskState = Const.GLASS_STATE_SCHEDULE_ING;
- resultList.add(list.get(0));
//鐩墠璋冨害浠诲姟totalLayer涓�0 鍑虹墖璋冨害浠诲姟鏈夊眰鍙凤紝鐢ㄤ簬鍖哄垎璋冨害鏂瑰紡
- if (totalLayer !=0){
+ // 鍥犱负鍑虹墖瀛樺湪璋冨害锛屽鏋滀负璋冨害锛屾彁鍓嶅崰鐢ㄦ牸瀛愶紝鏇存柊鏍煎瓙鍓╀綑灏哄锛岄伩鍏嶈杩涚墖鐜荤拑鍗犵敤
+ if (totalLayer != 0) {
+ resultList.add(list.get(0));
HollowBigStorageCage storageCage = hollowBigStorageCageService.getOne(new LambdaQueryWrapper<HollowBigStorageCage>()
.eq(HollowBigStorageCage::getEnableState, Const.SLOT_ON).eq(HollowBigStorageCage::getRemainWidth, slotWidth).last("limit 1"));
targetSlot = storageCage.getSlot();
+ hollowBigStorageCageService.update(new LambdaUpdateWrapper<HollowBigStorageCage>()
+ .set(HollowBigStorageCage::getRemainWidth, 0).eq(HollowBigStorageCage::getSlot, targetSlot));
+ }else{
+ resultList = tempList;
}
totalLayer = 0;
- }else{
+ } else {
resultList = tempList;
}
- return computeOutGlassInfo(resultList, BIG_STORAGE_CAGE_OUT_TWO_TASK, targetSlot, taskState, taskType, totalLayer,isForce);
+ return computeOutGlassInfo(resultList, BIG_STORAGE_CAGE_OUT_TWO_TASK, targetSlot, taskState, taskType, totalLayer, isForce);
}
/**
@@ -740,7 +784,7 @@
* @param totalLayer
* @return
*/
- private <T extends HollowBigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName, int targetSlot, int state, int taskType, int totalLayer,int isForce) {
+ private <T extends HollowBigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, String tableName, int targetSlot, int state, int taskType, int totalLayer, int isForce) {
//浠诲姟鏁版嵁:鑾峰彇杞﹀瓙瀛樻斁鐜荤拑鏈�澶ф暟閲�,鐜荤拑闂撮殧
List<BigStorageCageTask> tempList = new ArrayList<>();
List<T> tempTList = new ArrayList<>();
@@ -759,13 +803,13 @@
Assert.isFalse(CollectionUtil.isEmpty(tempList), "鏈幏鍙栧嚭鐗囨暟鎹紝缁撴潫鍑虹墖浠诲姟");
log.info("鑾峰彇鍑虹墖浠诲姟鏁版嵁{}鏉★紝鎵ц淇濆瓨", tempList.size());
List<BigStorageCageTask> bigStorageCageTaskList = tempList;
- if (1!= isForce){
+ if (1 != isForce) {
if (taskType == Const.BIG_STORAGE_AFTER_OUT) {
if (tempList.size() <= totalLayer) {
bigStorageCageTaskList = tempList;
} else {
int remainCount = tempList.size() % totalLayer;
- bigStorageCageTaskList = tempList.subList(0,tempList.size() - remainCount);
+ bigStorageCageTaskList = tempList.subList(0, tempList.size() - remainCount);
}
}
}
@@ -810,6 +854,9 @@
//鏄惁瀛樺湪鏈夋牸瀛愰潪绌虹殑鐜荤拑
if (CollectionUtils.isNotEmpty(inSlotGlassList)) {
//瀛樺湪 灏嗘牸瀛愬唴鐨勭幓鐠冨垎鍒繘琛屾洿鏂�
+// List<HollowBigStorageCage> hollowBigStorageCageList = hollowBigStorageCageService.list(new LambdaQueryWrapper<HollowBigStorageCage>()
+// .lt(HollowBigStorageCage::getRemainWidth, 0).in(HollowBigStorageCage::getSlot, slotList));
+// List<Integer> resultSlotList = hollowBigStorageCageList.stream().map(HollowBigStorageCage::getSlot).collect(Collectors.toList());
slotRemainMap = inSlotGlassList.stream()
.collect(Collectors.groupingBy(HollowBigStorageCageDetails::getSlot, Collectors.summingDouble(item -> Math.max(item.getWidth(), item.getHeight()) + glassGap)));
slotRemainMap.forEach((e, v) -> {
--
Gitblit v1.8.0