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.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.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.*;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author zhoush
|
* @since 2024-04-07
|
*/
|
@Slf4j
|
@Service
|
public class TaskCacheServiceImpl extends MPJBaseServiceImpl<TaskCacheMapper, TaskCache> 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<Map<String,Object>> selectEdgInfo(String line) {
|
List<TaskCache> taskCache=baseMapper.selectList(new MPJLambdaWrapper<TaskCache>()
|
.selectAll(TaskCache.class)
|
.eq(TaskCache::getEndCell, line)
|
.eq(TaskCache::getTaskStatus,1)
|
.orderByAsc(TaskCache::getCreateTime));
|
List<Map<String,Object>> result=new ArrayList<>();
|
int serialNumber=1;
|
for(TaskCache taskCache1:taskCache){
|
Map<String,Object> map=new HashMap<>();
|
// GlassInfo glassInfo=glassInfoMapper.selectOne(new MPJLambdaWrapper<GlassInfo>()
|
// .selectAll(GlassInfo.class)
|
// .eq(GlassInfo::getGlassId,taskCache1.getGlassId()));
|
List<GlassInfo> glassInfos=glassInfoMapper.selectJoinList(GlassInfo.class, new MPJLambdaWrapper<GlassInfo>()
|
.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<TaskCache>().eq("end_cell",line));
|
}
|
|
@Override
|
public TaskCache queryGlassByTaskCache(int line, List<Integer> taskTypes) {
|
return baseMapper.queryGlassByTaskCache(line, taskTypes);
|
}
|
|
/**
|
* 查询待理片工作的任务
|
* @return
|
*/
|
@Override
|
public List<TaskCache> selectCacheInfo(){
|
return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0));
|
// return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0));
|
}
|
|
/**
|
* 查询全部任务
|
* @return
|
*/
|
@Override
|
public List<TaskCache> selectAll() {
|
return baseMapper.selectList(null);
|
}
|
|
/**
|
* 查询待进片任务
|
* @return
|
*/
|
@Override
|
public List<TaskCache> selectInputTaskCache(){
|
return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,1));
|
|
// return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",1));
|
}
|
|
/**
|
* 查询待出片任务
|
* @return
|
*/
|
@Override
|
public List<TaskCache> selectOutTaskCache(){
|
return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getTaskStatus,0).eq(TaskCache::getTaskType,2));
|
// return baseMapper.selectList(new QueryWrapper<TaskCache>().eq("task_status",0).eq("task_type",2));
|
}
|
|
/**
|
* 查询 A09 或 A10 最新的一片 出片任务
|
* @param line
|
* @return
|
*/
|
@Override
|
public List<TaskCache> selectLastOutCacheInfos(int line){
|
return baseMapper.selectList(new MPJLambdaWrapper<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime));
|
// return baseMapper.selectList(new QueryWrapper<TaskCache>().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<TaskCache>().selectAll(TaskCache.class).eq(TaskCache::getEndCell,line).eq(TaskCache::getTaskStatus,1).orderByDesc(TaskCache::getCreateTime));
|
}
|
/**
|
* 查询判断磨边线是否有玻璃运行
|
* @param
|
* @return
|
*/
|
@Override
|
public List<TaskCache> selectTaskCacheIsRun() {
|
List<TaskCache> taskCaches=null;
|
taskCaches=taskCacheMapper.selectJoinList(TaskCache.class, new MPJLambdaWrapper<TaskCache>()
|
.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;
|
}
|
|
|
}
|