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