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 javax.annotation.Resource;
|
import java.util.*;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author zhoush
|
* @since 2024-04-07
|
*/
|
@Slf4j
|
@Service
|
public class TaskCacheServiceImpl extends MPJBaseServiceImpl<TaskCacheMapper, TaskCache> implements TaskCacheService {
|
|
@Resource
|
EdgStorageCageDetailsMapper edgStorageCageDetailsMapper;
|
|
@Resource
|
GlassInfoMapper glassInfoMapper;
|
@Resource
|
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));
|
}
|
|
|
@Override
|
public List<TaskCache> selectTaskCache(TaskCache taskCache, String startTime, String endTime){
|
if (endTime != null && !endTime.isEmpty()) {
|
endTime = endTime + " 23:59:59";
|
}
|
LambdaQueryWrapper<TaskCache> wrapper = new LambdaQueryWrapper<>();
|
if (taskCache.getStartCell() != null) {
|
wrapper.eq(TaskCache::getStartCell, taskCache.getStartCell());
|
}
|
if (taskCache.getEndCell() != 0) {
|
wrapper.eq(TaskCache::getEndCell, taskCache.getEndCell());
|
}
|
if (taskCache.getTaskStatus() != -1) {
|
wrapper.eq(TaskCache::getTaskStatus, taskCache.getTaskStatus());
|
}
|
if (taskCache.getTaskType() != -1) {
|
wrapper.eq(TaskCache::getTaskType, taskCache.getTaskType());
|
}
|
if (startTime != null && !startTime.isEmpty()) {
|
wrapper.ge(TaskCache::getCreateTime, startTime);
|
}
|
if (endTime != null && !endTime.isEmpty()) {
|
wrapper.le(TaskCache::getCreateTime, endTime);
|
}
|
wrapper.orderByDesc(TaskCache::getCreateTime);
|
wrapper.and(item -> item.eq(TaskCache::getDeleted, 0)
|
.or()
|
.eq(TaskCache::getDeleted, 1));
|
wrapper.between(TaskCache::getCreateTime, startTime, endTime);
|
return baseMapper.selectList(wrapper);
|
}
|
|
}
|