TrussRobotController.java 4.38 KB
package com.huaheng.api.acs.controller;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.acs.domain.pickContainer.ContainerPositionDomain;
import com.huaheng.api.acs.service.AcsService;
import com.huaheng.api.sap.domain.ZarDomain;
import com.huaheng.api.sap.service.ZarApiService;
import com.huaheng.api.wcs.service.warecellAllocation.LocationAllocationService;
import com.huaheng.api.wcs.service.warecellAllocation.WarecellAllocationService;
import com.huaheng.common.exception.service.ServiceException;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.framework.web.service.ConfigService;
import com.huaheng.pc.sap.domain.Zarsh;
import com.huaheng.pc.sap.domain.Zarsi;
import com.huaheng.pc.sap.service.SapTaskLogService;
import com.huaheng.pc.sap.service.ZarshService;
import com.huaheng.pc.sap.service.ZarsiService;
import com.huaheng.pc.task.agvTask.domain.AgvTask;
import com.huaheng.pc.task.agvTask.service.AgvTaskService;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/***
 * 商片二楼包装 自动行架抓取
 * @author tongzonghao
 *
 */
@RestController
@RequestMapping("/API/WMS/v2")
public class TrussRobotController {

    @Resource
    private AgvTaskService agvTaskService;
    @Resource
    private ZarshService zarshService;
    @Resource
    private ZarsiService zarsiService;
    @Resource
    private AcsService acsService;
    @Resource
    private WarecellAllocationService warecellAllocationService;
    @Resource
    private ZarApiService zarApiService;
    @Resource
    private SapTaskLogService sapTaskLogService;

    @PostMapping("/pickContainerPosition")
    @ApiOperation("商片分拣物料")
    @ResponseBody
    @ApiLogger(apiName = "商片分拣物料", from = "acs")
    public AjaxResult pickContainerPosition(@RequestBody ContainerPositionDomain domain) {
        if(StringUtils.isNull(domain)){
            AjaxResult.error("请求内容未空");
        }
        String containerCode = domain.getContainerCode();
        String port = domain.getStationCode();
        if(StringUtils.isEmpty(containerCode)){
            return AjaxResult.error("容器号不能为空");
        }
        if(!"P2026".equals(port)){
            return AjaxResult.error("不是指定站台P2026");
        }
        return acsService.pickContainerPosition(containerCode,port);

    }

    @PostMapping("/leavedContainerPosition")
    @ApiOperation("离开托盘位置")
    @ResponseBody
    @ApiLogger(apiName = "离开托盘位置", from = "acs")
    public AjaxResult leavedContainerPosition(@RequestBody ContainerPositionDomain domain) {

        String containerCode = domain.getContainerCode();
        Integer position = domain.getPosition();
        String rollNumber = domain.getRollNumber();
        boolean isEx = domain.getIsEx();
        if(StringUtils.isEmpty(containerCode)){
            return AjaxResult.error("抓取容器号不能为空");
        }
        if(StringUtils.isNull(position)){
            return AjaxResult.error("抓取位置号不能为空");
        }
        if(StringUtils.isEmpty(rollNumber)){
            return AjaxResult.error("抓取批次不能为空");
        }

        AgvTask agvTask = agvTaskService.getOne(new LambdaQueryWrapper<AgvTask>()
                .eq(AgvTask::getPalletNo,containerCode)
                .eq(AgvTask::getState,60)
                .eq(AgvTask::getIsEmpty,1)
                .isNotNull(AgvTask::getUniqueId));
        if(agvTask == null){
            return AjaxResult.error("未找到到达容器");
        }
        String uniqueId = agvTask.getUniqueId();
        List<Zarsi> zarsis = zarsiService.getListByUniq(uniqueId);

        for (Zarsi zarsi : zarsis) {
            if(zarsi.getCharg().equals(rollNumber)){
                zarsi.setUseFlag("XX");
                if(isEx){
                    zarsi.setUseFlag("");
                }
                zarsiService.updateById(zarsi);
                return AjaxResult.success(zarsi);
            }
        }
        return AjaxResult.success();

    }

}