WcsController.java 5.32 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.WcsTask;
import com.huaheng.api.wcs.service.WcsService;
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.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.material.domain.Material;
import com.huaheng.pc.config.material.service.MaterialService;
import com.huaheng.pc.task.taskDetail.domain.TaskDetail;
import com.huaheng.pc.task.taskDetail.service.TaskDetailService;
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.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * @author 游杰
 */
@RestController
@RequestMapping("/API/WMS/v2")
public class WcsController extends BaseController {

    @Resource
    private TaskHeaderService taskHeaderService;
    @Resource
    private TaskDetailService taskDetailService;
    @Resource
    private MaterialService materialService;
    @Resource
    private WcsService wcsService;

    @PostMapping("/calculateWeight")
    @ApiOperation("估算重量")
    @ApiLogger(apiName = "估算重量", from="WCS")
    @Transactional(rollbackFor = Exception.class)
    @ResponseBody
    public AjaxResult calculateWeight(@RequestBody Map<String,String> map) {
        String taskNo = map.get("taskNo");
        String weight1 = map.get("weight");
        if(taskNo == null) {
            return AjaxResult.error("称重信息没有任务号");
        }
        if(weight1 == null) {
            return AjaxResult.error("称重信息没有重量");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = wcsService.calculateWeight(taskNo, weight1);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    /**
     * 查询托盘库存
     */
    @PostMapping("/back")
    @ApiOperation("查询托盘是否返回")
    @ApiLogger(apiName = "查询托盘是否返回", from="WCS")
    @Transactional(rollbackFor = Exception.class)
    @ResponseBody
    public AjaxResult back(@RequestBody WcsTask wcsTask) {
        String containerCode = wcsTask.getContainerCode();
        if(containerCode == null) {
            return AjaxResult.error("没有托盘号");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = wcsService.innerBack(wcsTask);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    /**
     * 扣减库存
     */
    @PostMapping("/decreaseInventory")
    @ApiOperation("扣减库存")
    @ApiLogger(apiName = "扣减库存", from="WCS")
    @Transactional(rollbackFor = Exception.class)
    @ResponseBody
    public AjaxResult decreaseInventory(@RequestBody Map<String,String> map) {
        String containerCode = map.get("containerCode");
        String boxCode = map.get("boxCode");
        if(containerCode == null) {
            return AjaxResult.error("称重信息没有任务号");
        }
        if(boxCode == null) {
            return AjaxResult.error("称重信息没有重量");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = wcsService.decreaseInventory(containerCode, boxCode);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }


    /**
     * 木托盘组盘
     */
    @PostMapping("/receiptContainer")
    @ApiOperation("木托盘组盘")
    @ApiLogger(apiName = "木托盘组盘", from="WCS")
    @Transactional(rollbackFor = Exception.class)
    @ResponseBody
    public AjaxResult receiptContainer(@RequestBody Map<String,String> map) {
        String boxCode = map.get("boxCode");
        String port = map.get("port");
        String stack = map.get("stack");
        String finish = map.get("finish");
        if(boxCode == null) {
            return AjaxResult.error("木托盘组盘,没有boxCode");
        }
        if(port == null) {
            return AjaxResult.error("木托盘组盘,没有port");
        }
        if(stack == null) {
            return AjaxResult.error("木托盘组盘,没有stack");
        }
        if(finish == null) {
            return AjaxResult.error("木托盘组盘,没有finish");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = wcsService.receiptContainer(boxCode, port, stack, Integer.parseInt(finish));
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

}