package com.mes.hollow.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.HollowGlassOutRelationInfo; import com.mes.hollow.mapper.HollowGlassOutRelationInfoMapper; import com.mes.hollow.service.HollowBigStorageCageDetailsService; import com.mes.hollow.service.HollowGlassOutRelationInfoService; import com.mes.hollowqueue.entity.HollowGlassQueueInfo; import com.mes.hollowqueue.service.HollowGlassQueueInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; /** * (HollowGlassOutRelationInfo)表服务实现类 * * @author makejava * @since 2024-11-30 13:57:29 */ @Service @Slf4j public class HollowGlassOutRelationInfoServiceImpl extends ServiceImpl implements HollowGlassOutRelationInfoService { @Resource GlassInfoService glassInfoService; @Resource HollowBigStorageCageDetailsService hollowBigStorageCageDetailsService; @Resource HollowGlassQueueInfoService hollowGlassQueueInfoService; @Override public HollowGlassOutRelationInfo receiveTask(String flowCardId, int cell, int totalPairQuantity) { return childrenTask(flowCardId,cell,totalPairQuantity,0); } @Override public HollowGlassOutRelationInfo forceOutGlass(String flowCardId, int cell, int totalPairQuantity) { return childrenTask(flowCardId,cell,totalPairQuantity,1); } private HollowGlassOutRelationInfo childrenTask(String flowCardId, int cell, int totalPairQuantity,int isForce) { GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper().eq(GlassInfo::getFlowCardId, flowCardId).last("limit 1")); HollowGlassOutRelationInfo info = new HollowGlassOutRelationInfo(); if (null == glassInfo) { log.info("该流程卡信息系统未找到"); return info; } info.setFlowCardId(flowCardId); info.setCell(cell); info.setIsForce(isForce); info.setTotalLayer(glassInfo.getTotalLayer()); info.setState(Const.HOLLOW_FLOW_CARD_START); info.setTotalPairQuantity(totalPairQuantity); List hollowBigStorageCageDetailsList = hollowBigStorageCageDetailsService.queryOutGlassList(flowCardId, cell); int isPairCount = glassInfo.getTotalLayer() * totalPairQuantity; List hollowQueues = new ArrayList<>(); loop: for (HollowBigStorageCageDetails queue : hollowBigStorageCageDetailsList) { HollowGlassQueueInfo queueInfo = new HollowGlassQueueInfo(); BeanUtils.copyProperties(queue, queueInfo); queueInfo.setState(Const.TEMPERING_NEW); queueInfo.setCell(cell); hollowQueues.add(queueInfo); if (queue.getIsPair() == 1){ isPairCount -=1; if (isPairCount == 0){ break loop; } } } hollowGlassQueueInfoService.saveBatch(hollowQueues); this.save(info); return info; } }