InStandingTaskServiceImpl.java 5.05 KB
package com.huaheng.api.wcs.service.InStandingTaskHandle;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.general.service.TaskService;
import com.huaheng.api.wcs.domain.InStandingTaskDomain;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.support.Convert;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.container.domain.Container;
import com.huaheng.pc.config.container.service.ContainerService;
import com.huaheng.pc.config.location.domain.Location;
import com.huaheng.pc.config.material.domain.Material;
import com.huaheng.pc.inventory.cycleCountHeader.domain.CycleCountHeader;
import com.huaheng.pc.inventory.inventoryDetail.domain.InventoryDetail;
import com.huaheng.pc.inventory.inventoryDetail.mapper.InventoryDetailMapper;
import com.huaheng.pc.inventory.inventoryDetail.service.InventoryDetailService;
import com.huaheng.pc.inventory.inventoryHeader.domain.InventoryHeader;
import com.huaheng.pc.inventory.inventoryHeader.mapper.InventoryHeaderMapper;
import com.huaheng.pc.inventory.inventoryHeader.service.InventoryHeaderService;
import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
import com.huaheng.pc.task.taskDetail.mapper.TaskDetailMapper;
import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.mapper.TaskHeaderMapper;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Service
public class InStandingTaskServiceImpl implements InStandingTaskService{

    @Resource
    TaskHeaderService taskHeaderService;
    @Resource
    TaskHeaderMapper taskHeaderMapper;
    @Resource
    InventoryHeaderService inventoryHeaderService;
    @Resource
    InventoryDetailService inventoryDetailService;
    @Resource
    InventoryHeaderMapper inventoryHeaderMapper;
    @Resource
    TaskDetailService taskDetailService;
    @Resource
    TaskDetailMapper taskDetailMapper;

    @Override
    @Transactional
    public AjaxResult instanding(InStandingTaskDomain inStandingTaskDomain) {

        TaskHeader header = taskHeaderService.getById(inStandingTaskDomain.getId());
        LambdaQueryWrapper<TaskDetail> taskDetailLambdaQueryWrapper = Wrappers.lambdaQuery();
        taskDetailLambdaQueryWrapper.eq(TaskDetail::getTaskId, header.getId());
        List<TaskDetail> details = taskDetailService.list(taskDetailLambdaQueryWrapper);


        LambdaQueryWrapper<InventoryHeader> ch = Wrappers.lambdaQuery();
        ch.eq(InventoryHeader::getLocationCode, header.getToLocation()).eq(InventoryHeader::getContainerCode, header.getContainerCode());
        InventoryHeader one = inventoryHeaderService.getOne(ch);


        if (inStandingTaskDomain.getWeight() > 150) {
            header.setWeight("" + inStandingTaskDomain.getWeight());
            taskHeaderMapper.updateById(header);
            one.setTotalWeight("" + inStandingTaskDomain.getWeight());
            inventoryHeaderMapper.updateById(one);
            return AjaxResult.success(1);
        } else {
            if (header.getStatus()==10&&header.getInternalTaskType()==300)
            {
            //任务完成---调完成接口
            taskHeaderService.completeTaskByWMS(Convert.toIntArray(""+header.getId()), null);
            header.setId(null);
            header.setTaskType(300);
            header.setInternalTaskType(200);
            header.setUserDef3("异常出库");
            header.setStatus(1);
            header.setToLocation(null);
            header.setPort("P3045");
            taskHeaderMapper.insert(header);
            for (int i=0;i<details.size();i++)
            {
                details.get(i).setId(null);
                details.get(i).setTaskId(header.getId());
                LambdaQueryWrapper<InventoryDetail> hea = Wrappers.lambdaQuery();
                hea.eq(InventoryDetail::getMaterialCode,details.get(i).getMaterialCode())
                .eq(InventoryDetail::getContainerCode,details.get(i).getContainerCode())
                .eq(InventoryDetail::getLocationCode,details.get(i).getToLocation());
                InventoryDetail detail = inventoryDetailService.getOne(hea);
                details.get(i).setQty(detail.getQty());
                detail.setTaskQty(detail.getQty());
                details.get(i).setStatus(10);
                inventoryDetailService.updateById(detail);
                List<InventoryDetail> list = inventoryDetailService.list(hea);
                taskDetailMapper.insert(details.get(i));
            }

//            taskHeaderService.completeTaskByWMS(Convert.toIntArray(""+header.getId()), null);
            }
            else {throw new ServiceException("当前任务非分拣任务");}



        }
            return AjaxResult.success(0);
    }   }
    //强制完成