ReleaseNoticeController.java 2.85 KB
package com.huaheng.api.wcs.controller;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.huaheng.api.wcs.domain.ReleasedCons;
import com.huaheng.api.wcs.domain.ReleasedResult;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.common.utils.StringUtils;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.zone.domain.Zone;
import com.huaheng.pc.config.zone.service.ZoneService;
import com.huaheng.pc.task.agvTask.domain.AgvTask;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.TaskHeaderService;
import io.swagger.annotations.ApiOperation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.Map;

/**
 * 铜箔仓 二楼出库时不能有入库任务堵
 * 放行通知
 */

@RestController
@RequestMapping("/API/WMS/v2")
public class ReleaseNoticeController {

    @Resource
    private TaskHeaderService taskHeaderService;
    @Resource
    private ZoneService zoneService;

    @PostMapping("/releasedNotice")
    @ApiOperation("放行通知")
    @ApiLogger(apiName = "放行通知", from="WCS")
    @Transactional(rollbackFor = Exception.class)
    @ResponseBody
    public AjaxResult releasedNotice(@RequestBody Map<String,String> map) {
        AjaxResult result = AjaxResult.toAjax(false).setData(ReleasedCons.RELEASED_ERR);
        String area = map.get("area");
        String port = map.get("port");

        if(StringUtils.isEmpty(port)){
            return result.setMsg("站台编码不能为空!!");
        }
        if(StringUtils.isEmpty(area)){
            return result.setMsg("库区编号不能为空!!");
        }
        if(!"P5043".equals(port)){
            return result.setMsg("站台编码错误!!");
        }
        Zone zone = zoneService.getZoneByArea(area);
        if(zone == null){
            return result.setMsg("库区编号错误或不存在!!");
        }
        String zoneCode = zone.getCode();
        LambdaQueryWrapper<TaskHeader> query = Wrappers.lambdaQuery();
        query.eq(TaskHeader::getTaskType, QuantityConstant.TASK_TYPE_EMPTYRECEIPT)
                .lt(TaskHeader::getStatus,QuantityConstant.TASK_STATUS_COMPLETED)
                .eq(TaskHeader::getZoneCode, zoneCode)
                .eq(TaskHeader::getPort, "P5043")
                .last("LIMIT 1");
        TaskHeader taskHeader = taskHeaderService.getOne(query);
        if(taskHeader != null){
            return result.setMsg("请求失败目标站台存在空托盘入库任务:["+taskHeader.getId()+"]");
        }
        return result.toAjax(true).setData(ReleasedCons.RELEASED_SUC);
    }

}