package com.mes.taskcache.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.yulichang.base.MPJBaseServiceImpl; 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.edgglasstask.entity.EdgGlassTaskInfo; 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.*; /** *

* 服务实现类 *

* * @author zhoush * @since 2024-04-07 */ @Slf4j @Service public class TaskCacheServiceImpl extends MPJBaseServiceImpl implements TaskCacheService { @Autowired EdgStorageCageDetailsMapper edgStorageCageDetailsMapper; @Autowired GlassInfoMapper glassInfoMapper; @Autowired private TaskCacheMapper taskCacheMapper; /** * 添加理片笼任务 * * @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)); } /** * 查询判断磨边线是否有玻璃运行 * * @param * @return */ @Override public List selectTaskCacheIsRun() { List taskCaches = null; taskCaches = taskCacheMapper.selectJoinList(TaskCache.class, new MPJLambdaWrapper() .select("top 4 t.end_cell,ISNULL(b.glass_id, 0)as glass_id") .leftJoin("big_storage_cage_feed_task as b on t.glass_id=b.glass_id ") .groupBy("t.end_cell,b.glass_id,t.create_time") .orderByDesc("t.create_time") ); return taskCaches; } }