package com.mes.md.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.github.yulichang.base.MPJBaseServiceImpl;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.mes.md.entity.*;
import com.mes.md.mapper.PrimitiveTaskMapper;
import com.mes.md.service.KBBTJPDrawingBPService;
import com.mes.md.service.LineConfigurationService;
import com.mes.md.service.PrimitiveTaskService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
*
* 原始任务表 服务实现类
*
*
* @author wu
* @since 2024-08-28
*/
@Service
public class PrimitiveTaskServiceImpl extends MPJBaseServiceImpl implements PrimitiveTaskService {
@Autowired
LineConfigurationService lineConfigurationService;
@Autowired
KBBTJPDrawingBPService kBBTJPDrawingBPService;
/**
*查询标准未领取的任务
* @return
*/
@Override
public List findPrimitiveTaskNotFinish(){
return baseMapper.selectList(new QueryWrapper().lambda()
.eq(PrimitiveTask::getIsWorking,0)
.eq(PrimitiveTask::getTaskType,"标准")
.orderByAsc(PrimitiveTask::getCreateTime)
.orderByAsc(PrimitiveTask::getTaskSequence));
}
/**
*查询标准此线路已领取的任务
* @return
*/
@Override
public List findPrimitiveTasking(Machine machine,Long line){
return baseMapper.selectList(new MPJLambdaWrapper()
.eq(PrimitiveTask::getIsWorking,1)
.eq(PrimitiveTask::getGetLine,line)
.eq(PrimitiveTask::getTaskType,"标准")
.orderByAsc(PrimitiveTask::getBeginTime));
}
/**
* 标准:领取任务 /结束任务
* @return
*/
@Override
public int startOrStopPrimitiveTasking(PrimitiveTask primitiveTask){
if (primitiveTask.getIsWorking()==1){//领取
return kBBTJPDrawingBPService.receiveKBBTJPDrawingBP(primitiveTask.getId(),primitiveTask.getGetLine());
}else if (primitiveTask.getIsWorking()==2){//完工
PrimitiveTask thisPrimitiveTask=baseMapper.selectById(primitiveTask);
thisPrimitiveTask.setIsWorking(primitiveTask.getIsWorking());
thisPrimitiveTask.setEndTime(new Date());
return baseMapper.updateById(thisPrimitiveTask);
}
return 0;
}
@Override
public boolean updateReportCount(String scanId) {
//更新报工数量
UpdateWrapper wrapper = new UpdateWrapper<>();
wrapper.eq("scan_id", scanId)
.set("report_count",1);
return update(wrapper);
}
@Override
public boolean updatePrimitiveTask(PrimitiveTask task) {
//手动报工更改数量
UpdateWrapper wrapper = new UpdateWrapper<>();
wrapper.eq("batch_number", task.getBatchNumber())
.set("report_count", task.getReportCount());
return update(wrapper);
}
@Override
public List selectPrimitiveTask(PrimitiveTask task) {
//查询报工数据
return list(new QueryWrapper<>(task)) ;
}
//客户表格转 我们的任务表
@Override
public Tasking convertListTasking(PrimitiveTask primitiveTask, Long LineConfigurationId) {
try {
Tasking tasking=new Tasking();
tasking.setLineConfigurationId(LineConfigurationId);
tasking.setState("线上");
tasking.setWorkState("等待");
tasking.setGlassState("正常");
tasking.setScanId(primitiveTask.getScanId());
tasking.setProgramId(primitiveTask.getProgramId());
tasking.setBatchNumber(primitiveTask.getBatchNumber()==null?"":primitiveTask.getBatchNumber());
tasking.setTaskType(primitiveTask.getTaskType());
tasking.setLength(primitiveTask.getLength());
tasking.setWidth(primitiveTask.getWidth());
tasking.setThickness(primitiveTask.getThickness());
tasking.setIsMarking((primitiveTask.getDrawingMarking()==null||primitiveTask.getDrawingMarking().isEmpty())?0:1);
tasking.setDrawingMarking(primitiveTask.getDrawingMarking());
tasking.setIsSilkScreen(((primitiveTask.getSilkScreenX()==null||primitiveTask.getSilkScreenY()==null||primitiveTask.getSilkScreenX()==0||primitiveTask.getSilkScreenY()==0)?1:0));
tasking.setSilkScreenX(primitiveTask.getSilkScreenX()==null?0:primitiveTask.getSilkScreenX());
tasking.setSilkScreenY(primitiveTask.getSilkScreenY()==null?0:primitiveTask.getSilkScreenY());
tasking.setTaskSequence(primitiveTask.getTaskSequence());
tasking.setTaskQuantity(primitiveTask.getTaskQuantity());
tasking.setR_1_1(primitiveTask.getR_1_1()==null?0:primitiveTask.getR_1_1());
tasking.setR_1_2(primitiveTask.getR_1_2()==null?0:primitiveTask.getR_1_2());
tasking.setR_2_1(primitiveTask.getR_2_1()==null?0:primitiveTask.getR_2_1());
tasking.setR_2_2(primitiveTask.getR_2_2()==null?0:primitiveTask.getR_2_2());
tasking.setR_3_1(primitiveTask.getR_3_1()==null?0:primitiveTask.getR_3_1());
tasking.setR_3_2(primitiveTask.getR_3_2()==null?0:primitiveTask.getR_3_2());
tasking.setR_4_1(primitiveTask.getR_4_1()==null?0:primitiveTask.getR_4_1());
tasking.setR_4_2(primitiveTask.getR_4_2()==null?0:primitiveTask.getR_4_2());
return tasking;
}catch (Exception e) {
return null;
}
}
}