package com.mes.taskcache.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.mes.common.config.Const; import com.mes.damage.entity.Damage; import com.mes.damage.service.DamageService; import com.mes.edgstoragecage.entity.EdgStorageCage; import com.mes.edgstoragecage.entity.EdgStorageCageDetails; import com.mes.edgstoragecage.mapper.EdgStorageCageDetailsMapper; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; import com.mes.taskcache.entity.TaskCache; import com.mes.taskcache.mapper.TaskCacheMapper; import com.mes.taskcache.service.TaskCacheService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** *

* 服务实现类 *

* * @author zhoush * @since 2024-04-07 */ @Slf4j @Service public class TaskCacheServiceImpl extends ServiceImpl implements TaskCacheService { @Autowired EdgStorageCageDetailsMapper edgStorageCageDetailsMapper; @Autowired GlassInfoMapper glassInfoMapper; /** * 添加理片笼任务 * @param taskCache * @return */ @Override public boolean insertTaskCache(TaskCache taskCache){ baseMapper.insert(taskCache); return true; } /** * 查询磨边任务 * @param line * @return */ @Override public List> selectEdgInfo(String line) { List taskCache=baseMapper.selectList(new MPJLambdaWrapper() .selectAll(TaskCache.class) .eq(TaskCache::getEndCell, line) .eq(TaskCache::getTaskStatus,1) .orderByAsc(TaskCache::getCreateTime)); List> result=new ArrayList<>(); int serialNumber=1; for(TaskCache taskCache1:taskCache){ Map map=new HashMap<>(); // GlassInfo glassInfo=glassInfoMapper.selectOne(new MPJLambdaWrapper() // .selectAll(GlassInfo.class) // .eq(GlassInfo::getGlassId,taskCache1.getGlassId())); List glassInfos=glassInfoMapper.selectJoinList(GlassInfo.class, new MPJLambdaWrapper() .selectAll(GlassInfo.class) .innerJoin(EdgStorageCageDetails.class, on -> on .eq(EdgStorageCageDetails::getGlassId, GlassInfo::getGlassId) .eq(EdgStorageCageDetails::getEngineerId, GlassInfo::getEngineerId)) .eq(GlassInfo::getGlassId,taskCache1.getGlassId()) .eq(EdgStorageCageDetails::getState,Const.GLASS_STATE_OUT) ); if(glassInfos.size()==1){ GlassInfo glassInfo=glassInfos.get(0); map.put("Line",line);//线路 2001 1线, 2002 2线 map.put("Width",glassInfo.getWidth());//宽 map.put("Height",glassInfo.getHeight());//高 map.put("Thickness",glassInfo.getThickness());//厚 map.put("GlassId",glassInfo.getGlassId());//玻璃ID map.put("FlowCardId",glassInfo.getFlowCardId());//流程卡号 map.put("TemperingLayoutId",glassInfo.getTemperingLayoutId());// 暂不显示 钢化版图ID map.put("TemperingFeedSequence",glassInfo.getTemperingFeedSequence());// 暂不显示 钢化版图ID内的序号 map.put("FilmsId",glassInfo.getFilmsid());//膜系 map.put("SerialNumber",serialNumber);//出片顺序 result.add(map); }else if(glassInfos.size()>1){ log.info("数据不符合逻辑--磨边队列glassId重复:",glassInfos); return new ArrayList<>(); } serialNumber++; } return result; // return baseMapper.selectList(new QueryWrapper().eq("end_cell",line)); } @Override public TaskCache queryGlassByTaskCache(int line, List taskTypes) { return baseMapper.queryGlassByTaskCache(line, taskTypes); } /** * 查询待理片工作的任务 * @return */ @Override public List selectCacheInfo(){ return baseMapper.selectList(new MPJLambdaWrapper().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0)); // return baseMapper.selectList(new QueryWrapper().eq("task_status",0)); } /** * 查询全部任务 * @return */ @Override public List selectAll() { return baseMapper.selectList(null); } /** * 查询待进片任务 * @return */ @Override public List selectInputTaskCache(){ return baseMapper.selectList(new MPJLambdaWrapper().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,1)); // return baseMapper.selectList(new QueryWrapper().eq("task_status",0).eq("task_type",1)); } /** * 查询待出片任务 * @return */ @Override public List selectOutTaskCache(){ return baseMapper.selectList(new MPJLambdaWrapper().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,2)); // return baseMapper.selectList(new QueryWrapper().eq("task_status",0).eq("task_type",2)); } /** * 查询 A09 或 A10 最新的一片 出片任务 * @param line * @return */ @Override public List selectLastOutCacheInfos(int line){ return baseMapper.selectList(new MPJLambdaWrapper().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime)); // return baseMapper.selectList(new QueryWrapper().eq("end_cell",line).eq("task_status",1).orderByDesc("ID")); } /** * 查询 A09 或 A10 最新的一片 出片任务 * @param line * @return */ @Override public TaskCache selectLastOutCacheInfo(int line){ return baseMapper.selectOne(new MPJLambdaWrapper().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime)); } }