From 82ae4f5a83ffaadc6c7f37c19050400156eb8a9e Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期六, 28 十二月 2024 21:56:20 +0800
Subject: [PATCH] 1、中空大理片笼详情页新增删除、破损、拿走操作按钮接口 2、理片笼进片任务计算目标格子优化:笼子进笼将格子分组求笼内最大组序,确保中间块玻璃破损后仍能进入,导致玻璃错乱的情况
---
hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java | 96 ++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 92 insertions(+), 4 deletions(-)
diff --git a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
index e8a5742..25e0566 100644
--- a/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
+++ b/hangzhoumesParent/moduleService/howllowGlassModule/src/main/java/com/mes/hollow/service/impl/HollowBigStorageCageDetailsServiceImpl.java
@@ -1,17 +1,27 @@
package com.mes.hollow.service.impl;
+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.base.entity.vo.BigStorageVO;
+import com.mes.common.config.Const;
+import com.mes.glassinfo.entity.GlassInfo;
+import com.mes.glassinfo.service.GlassInfoService;
import com.mes.hollow.entity.HollowBigStorageCageDetails;
-import com.mes.hollow.entity.dto.BigStorageSequenceDTO;
-import com.mes.hollow.entity.dto.FlowCardGlassInfoDTO;
-import com.mes.hollow.entity.dto.FlowCardVirtualSlotDTO;
-import com.mes.hollow.entity.dto.UpdateHollowBigStorageCageDTO;
+import com.mes.hollow.entity.HollowGlassRelationInfo;
+import com.mes.hollow.entity.dto.*;
+import com.mes.hollow.entity.vo.HollowBigStorageDetailsQueryVO;
import com.mes.hollow.mapper.HollowBigStorageCageDetailsMapper;
import com.mes.hollow.service.HollowBigStorageCageDetailsService;
+import com.mes.hollow.service.HollowBigStorageCageService;
+import com.mes.hollow.service.HollowGlassRelationInfoService;
+import com.mes.job.OpcPlcStorageCageHollowTask;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.Arrays;
import java.util.List;
/**
@@ -24,6 +34,15 @@
@Slf4j
public class HollowBigStorageCageDetailsServiceImpl extends ServiceImpl<HollowBigStorageCageDetailsMapper, HollowBigStorageCageDetails> implements HollowBigStorageCageDetailsService {
+ @Resource
+ HollowBigStorageCageService hollowBigStorageCageService;
+
+ @Resource
+ HollowGlassRelationInfoService hollowGlassRelationInfoService;
+ @Resource
+ GlassInfoService glassInfoService;
+ @Resource
+ OpcPlcStorageCageHollowTask opcPlcStorageCageHollowTask;
@Override
public void updateBySlot(List<UpdateHollowBigStorageCageDTO> storageCageDTOList, Integer state) {
@@ -54,5 +73,74 @@
public List<BigStorageVO> queryHollowbigStorageCageDetail() {
return baseMapper.queryHollowbigStorageCageDetail();
}
+
+ @Override
+ public List<HollowBigStorageCageDetails> querySlotMaxSequence(String flowCardId, Integer totalLayer, Integer layer, Integer virtualSlot) {
+ return baseMapper.querySlotMaxSequence(flowCardId, totalLayer, layer, virtualSlot);
+ }
+
+ @Override
+ public List<HollowBigStorageAndDetailsDTO> insertHollowBigStorageCageDetails(HollowBigStorageCageDetails bigStorageCageDetails) {
+ GlassInfo info = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().in(GlassInfo::getGlassId, bigStorageCageDetails.getGlassId()));
+ HollowBigStorageDTO hollowBigStorageDTO = hollowGlassRelationInfoService.queryHollowTargetSlot(bigStorageCageDetails.getFlowCardId(), bigStorageCageDetails.getWidth(),
+ bigStorageCageDetails.getHeight(), bigStorageCageDetails.getTotalLayer(), bigStorageCageDetails.getLayer());
+ HollowBigStorageCageDetails cageDetails = new HollowBigStorageCageDetails();
+ BeanUtils.copyProperties(hollowBigStorageDTO, cageDetails);
+ BeanUtils.copyProperties(info, cageDetails);
+ cageDetails.setState(Const.GLASS_STATE_NEW);
+ cageDetails.setSequence(hollowBigStorageDTO.getSlotSequence());
+ cageDetails.setGap(250);
+ cageDetails.setId(null);
+ this.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, hollowBigStorageDTO.getFlowCardId())
+ .eq(HollowGlassRelationInfo::getLayer, hollowBigStorageDTO.getLayer())
+ .eq(HollowGlassRelationInfo::getVirtualSlot, hollowBigStorageDTO.getVirtualSlot())
+ .eq(HollowGlassRelationInfo::getSlotSequence, hollowBigStorageDTO.getSlotSequence())
+ .eq(HollowGlassRelationInfo::getHollowSequence, hollowBigStorageDTO.getHollowSequence())
+ );
+ HollowBigStorageDetailsQueryVO query = new HollowBigStorageDetailsQueryVO();
+ query.setDeviceId(bigStorageCageDetails.getDeviceId());
+ return hollowBigStorageCageService.queryHollowBigStorageCageDetail(query);
+ }
+
+ @Override
+ public List<HollowBigStorageAndDetailsDTO> deleteHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot) {
+ return hollowBigStorageCageDetailsChild(glassId, deviceId, slot, Const.GLASS_STATE_OUT);
+ }
+
+ @Override
+ public List<HollowBigStorageAndDetailsDTO> damageHollowBigStorageCageDetails(String glassId, Integer deviceId, Integer slot, int state) {
+ return hollowBigStorageCageDetailsChild(glassId, deviceId, slot, state);
+ }
+
+ private List<HollowBigStorageAndDetailsDTO> hollowBigStorageCageDetailsChild(String glassId, Integer deviceId, Integer slot, int state) {
+ //灏嗗搴旀牸瀛愬彿鐨勭幓鐠僫d缃负101
+ this.update(new LambdaUpdateWrapper<HollowBigStorageCageDetails>()
+ .set(HollowBigStorageCageDetails::getState, state)
+ .eq(HollowBigStorageCageDetails::getSlot, slot)
+ .eq(HollowBigStorageCageDetails::getGlassId, glassId)
+ );
+ //灏嗘祦绋嬪崱骞胯タ琛ㄥ唴瀵瑰簲鐨勭幓鐠冧俊鎭竻闄�
+ 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::getGlassId, glassId)
+ );
+ //鏇存柊瀵瑰簲鏍煎瓙鐨勫墿浣欏昂瀵�
+ opcPlcStorageCageHollowTask.updateSlotRemainBySlots(Arrays.asList(slot));
+ //杩斿洖瀵瑰簲鐨勭瀛愮殑鍒楄〃淇℃伅
+ HollowBigStorageDetailsQueryVO query = new HollowBigStorageDetailsQueryVO();
+ query.setDeviceId(deviceId);
+ return hollowBigStorageCageService.queryHollowBigStorageCageDetail(query);
+ }
}
--
Gitblit v1.8.0