wu
2024-08-13 34b5340108f6613d2ad6fd036501d33d8d18bd50
hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/taskcache/service/impl/TaskCacheServiceImpl.java
@@ -1,60 +1,186 @@
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.glassinfo.service.GlassInfoService;
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.List;
import java.util.*;
/**
 * <p>
 *  服务实现类
 * 服务实现类
 * </p>
 *
 * @author zhoush
 * @since 2024-04-07
 */
@Slf4j
@Service
public class TaskCacheServiceImpl extends ServiceImpl<TaskCacheMapper, TaskCache> implements TaskCacheService {
    //添加理片笼任务
    public boolean insertTaskCache(TaskCache taskCache){
        return this.save(taskCache);
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;
    }
    //查询磨边任务
    public List<TaskCache> selectEdgInfo(String line){
    /**
     * 查询磨边任务
     *
     * @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));
    }
    //查询理片任务
    public List<TaskCache> selectCacheInfo(){
    @Override
    public TaskCache queryGlassByTaskCache(int line, List<Integer> taskTypes) {
        return baseMapper.queryGlassByTaskCache(line, taskTypes);
    }
    //查询全部任务
    public List<TaskCache> selectAll(){
    /**
     * 查询待理片工作的任务
     *
     * @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));
    }
    //查询进片任务
    public List<TaskCache> selectInputTaskCache(){
    /**
     * 查询全部任务
     *
     * @return
     */
    @Override
    public List<TaskCache> selectAll() {
        return baseMapper.selectList(null);
    }
    //查询出片任务
    public List<TaskCache> selectOutTaskCache(){
    /**
     * 查询待进片任务
     *
     * @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));
    }
    //查询  A09  或 A10 最新的一片 出片任务
    public List<TaskCache> selectLastOutCacheInfo(String line){
    /**
     * 查询待出片任务
     *
     * @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));
    }
}