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.BigStorageCageOutTask;
import com.mes.bigstoragetask.mapper.BigStorageCageOutTaskMapper;
import com.mes.bigstoragetask.service.BigStorageCageOutTaskService;
import com.mes.temperingglass.entity.TemperingGlassInfo;
import com.mes.temperingglass.mapper.TemperingGlassInfoMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author zhoush
* @since 2024-04-16
*/
@Slf4j
@Service
public class BigStorageCageOutTaskServiceImpl extends ServiceImpl implements BigStorageCageOutTaskService {
@Resource
TemperingGlassInfoMapper temperingGlassInfoMapper;
@Resource
BigStorageCageOutTaskMapper bigStorageCageOutTaskMapper;
@Resource
BigStorageCageDetailsMapper bigStorageCageDetailsMapper;
@Override
public boolean saveBatch(List list) {
return baseMapper.saveBatch(list);
}
/**
* 查询任务信息
*/
@Override
public List querybigStorageCageOutTask(int taskState) {
log.info("根据传入的任务状态查询任务信息:" + taskState);
LambdaQueryWrapper getOutTaskWrapper = new LambdaQueryWrapper<>();
getOutTaskWrapper.eq(BigStorageCageOutTask::getTaskState, taskState);
return baseMapper.selectList(getOutTaskWrapper);
}
/**
* 检测PLC是否完成任务
*/
@Override
public void updateOutTask(){
List bigStorageCageOutTaskList=querybigStorageCageOutTask(1);
log.info("查询任务表是否有已完成的出片任务"+bigStorageCageOutTaskList.size());
for (BigStorageCageOutTask bigStorageCageOutTask:bigStorageCageOutTaskList
) {
deleteOutTask(bigStorageCageOutTask.getGlassId());
}
}
/**
* 完成出片任务
*/
@Override
public void deleteOutTask(String glassId){
log.info("根据任务id修改钢化小片表状态,删除已完成的出片任务,删除笼子表玻璃");
LambdaQueryWrapper 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 bigStorageCageOutTaskWrapper =new LambdaQueryWrapper<>();
bigStorageCageOutTaskWrapper.eq(BigStorageCageOutTask::getGlassId,glassId);
BigStorageCageOutTask bigStorageCageOutTask=bigStorageCageOutTaskMapper.selectOne(bigStorageCageOutTaskWrapper);
bigStorageCageOutTaskMapper.deleteById(bigStorageCageOutTask.getId());
LambdaQueryWrapper bigStorageCageDetailsWrapper =new LambdaQueryWrapper<>();
bigStorageCageDetailsWrapper.eq(BigStorageCageDetails::getGlassId,glassId);
BigStorageCageDetails bigStorageCageDetails=bigStorageCageDetailsMapper.selectOne(bigStorageCageDetailsWrapper);
bigStorageCageDetailsMapper.deleteById(bigStorageCageOutTask.getId());
}
}