huang
2025-05-20 2c2413760b6467bf62402dba7338bd3bbcbd7341
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/md/service/impl/PrimitiveTaskServiceImpl.java
@@ -1,11 +1,20 @@
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.mes.md.entity.PrimitiveTask;
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;
/**
 * <p>
@@ -18,4 +27,114 @@
@Service
public class PrimitiveTaskServiceImpl extends MPJBaseServiceImpl<PrimitiveTaskMapper, PrimitiveTask> implements PrimitiveTaskService {
    @Autowired
    LineConfigurationService lineConfigurationService;
    @Autowired
    KBBTJPDrawingBPService kBBTJPDrawingBPService;
    /**
     *查询标准未领取的任务
     * @return
     */
    @Override
    public List<PrimitiveTask> findPrimitiveTaskNotFinish(){
        return baseMapper.selectList(new QueryWrapper<PrimitiveTask>().lambda()
                .eq(PrimitiveTask::getIsWorking,0)
                .eq(PrimitiveTask::getTaskType,"标准")
                .orderByAsc(PrimitiveTask::getCreateTime)
                .orderByAsc(PrimitiveTask::getTaskSequence));
    }
    /**
     *查询标准此线路已领取的任务
     * @return
     */
    @Override
    public List<PrimitiveTask> findPrimitiveTasking(Machine machine,Long line){
        return baseMapper.selectList(new MPJLambdaWrapper<PrimitiveTask>()
                .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<PrimitiveTask> wrapper = new UpdateWrapper<>();
        wrapper.eq("scan_id", scanId)
                .set("report_count",1);
        return update(wrapper);
    }
    @Override
    public boolean updatePrimitiveTask(PrimitiveTask task) {
        //手动报工更改数量
        UpdateWrapper<PrimitiveTask> wrapper = new UpdateWrapper<>();
        wrapper.eq("batch_number", task.getBatchNumber())
                .set("report_count", task.getReportCount());
        return update(wrapper);
    }
    @Override
    public List<PrimitiveTask> 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;
        }
    }
}