ZengTao
2025-03-28 f68d3c71819feb59e7a227a5d992b059b900916c
hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/bigstoragetask/service/impl/BigStorageCageOutTaskServiceImpl.java
@@ -1,12 +1,14 @@
package com.mes.bigstoragetask.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.bigstorage.entity.BigStorageCageDetails;
import com.mes.bigstorage.mapper.BigStorageCageDetailsMapper;
import com.mes.bigstoragetask.entity.BigStorageCageFeedTask;
import com.mes.bigstoragetask.entity.BigStorageCageOutTask;
import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -32,29 +34,103 @@
    BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
    @Resource
    BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
    @Override
    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState){
        log.info("根据传入的任务状态查询任务信息:"+taskState);
        LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper=new LambdaQueryWrapper<>();
        getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState,taskState);
    public boolean saveBatch(List<BigStorageCageOutTask> list) {
        return baseMapper.saveBatch(list);
    }
    /**
     * 查询任务信息
     */
    @Override
    public List<BigStorageCageOutTask> querybigStorageCageOutTask(int taskState) {
        log.info("根据传入的任务状态查询任务信息:" + taskState);
        LambdaQueryWrapper<BigStorageCageOutTask> getOutTaskWrapper = new LambdaQueryWrapper<>();
        getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState, taskState);
        return baseMapper.selectList(getOutTaskWrapper);
    }
    /**
     * 检测PLC是否完成任务
     */
    @Override
    public void updateOutTask(){
        List<BigStorageCageOutTask> bigStorageCageOutTaskList=querybigStorageCageOutTask(1);
        log.info("查询任务表是否有已完成的出片任务"+bigStorageCageOutTaskList.size());
        for (BigStorageCageOutTask bigStorageCageOutTask:bigStorageCageOutTaskList
        ) {
            deleteOutTask(bigStorageCageOutTask.getId());
            deleteOutTask(bigStorageCageOutTask.getGlassId());
        }
    }
    /**
     * 完成出片任务
     */
    @Override
    public void deleteOutTask(Long taskId){
        log.info("根据任务id修改钢化小片表状态,删除已完成的出片任务");
        temperingGlassInfoMapper.deleteById(taskId);
        bigStorageCageOutTaskMapper.deleteById(taskId);
        bigStorageCageDetailsMapper.deleteById(taskId);
    public void deleteOutTask(String glassId){
        log.info("根据任务id修改钢化小片表状态,删除已完成的出片任务,删除笼子表玻璃");
        LambdaQueryWrapper<TemperingGlassInfo> temperingGlassInfoWrapper =new LambdaQueryWrapper<>();
        temperingGlassInfoWrapper.eq(TemperingGlassInfo::getGlassId,glassId);
        TemperingGlassInfo temperingGlassInfo=temperingGlassInfoMapper.selectOne(temperingGlassInfoWrapper);
        //判断是否手动任务,不钢化任务完成后删掉,钢化任务完成后改状态为0
        if(temperingGlassInfo.getState()==-2){
            temperingGlassInfoMapper.deleteById(temperingGlassInfo.getId());
        }else{
            temperingGlassInfo.setState(0);
            temperingGlassInfoMapper.updateById(temperingGlassInfo);
        }
        LambdaQueryWrapper<BigStorageCageOutTask> bigStorageCageOutTaskWrapper =new LambdaQueryWrapper<>();
        bigStorageCageOutTaskWrapper.eq(BigStorageCageOutTask::getGlassId,glassId);
        BigStorageCageOutTask bigStorageCageOutTask=bigStorageCageOutTaskMapper.selectOne(bigStorageCageOutTaskWrapper);
        bigStorageCageOutTaskMapper.deleteById(bigStorageCageOutTask.getId());
        LambdaQueryWrapper<BigStorageCageDetails> bigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
        bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId,glassId);
        BigStorageCageDetails bigStorageCageDetails=bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailsWrapper);
        bigStorageCageDetailsMapper.deleteById(bigStorageCageOutTask.getId());
    }
    @Override
    public void deleteTask(List<BigStorageCageOutTask> outGlassId){
        baseMapper.deleteTask(outGlassId);
    }
    @Override
    public List<BigStorageCageOutTask> selectBigStorageCageOutTask(BigStorageCageOutTask bigStorageCageOutTask, String startTime, String endTime){
        if (endTime != null && !endTime.isEmpty()) {
            endTime = endTime + " 23:59:59";
        }
        LambdaQueryWrapper<BigStorageCageOutTask> wrapper = new LambdaQueryWrapper<>();
        if (bigStorageCageOutTask.getStartSlot() != null) {
            wrapper.eq(BigStorageCageOutTask::getStartSlot, bigStorageCageOutTask.getStartSlot());
        }
        if (bigStorageCageOutTask.getWidth() != null) {
            wrapper.eq(BigStorageCageOutTask::getWidth, bigStorageCageOutTask.getWidth());
        }
        if (bigStorageCageOutTask.getHeight() != null) {
            wrapper.eq(BigStorageCageOutTask::getHeight, bigStorageCageOutTask.getHeight());
        }
        if (bigStorageCageOutTask.getEndSlot() != 0) {
            wrapper.eq(BigStorageCageOutTask::getEndSlot, bigStorageCageOutTask.getEndSlot());
        }
        if (bigStorageCageOutTask.getTaskState() != -1) {
            wrapper.eq(BigStorageCageOutTask::getTaskState, bigStorageCageOutTask.getTaskState());
        }
        if (startTime != null && !startTime.isEmpty()) {
            wrapper.ge(BigStorageCageOutTask::getCreateTime, startTime);
        }
        if (endTime != null && !endTime.isEmpty()) {
            wrapper.le(BigStorageCageOutTask::getCreateTime, endTime);
        }
        wrapper.orderByDesc(BigStorageCageOutTask::getId);
        wrapper.and(item -> item.eq(BigStorageCageOutTask::getDeleted, 0)
                .or()
                .eq(BigStorageCageOutTask::getDeleted, 1));
        wrapper.between(BigStorageCageOutTask::getCreateTime, startTime, endTime);
        return baseMapper.selectList(wrapper);
    }
}