CodingController.java 4.38 KB
package com.huaheng.api.erp.controller;

import com.huaheng.api.erp.domain.BoxInfo;
import com.huaheng.api.erp.domain.ERPReceipt;
import com.huaheng.api.erp.domain.EmptyZu;
import com.huaheng.api.erp.domain.ShipmentRecord;
import com.huaheng.api.erp.service.CodingService;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import io.swagger.annotations.ApiOperation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;

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

/**
WMS和赋码系统交互
 * @author 游杰
 */
@RestController
@RequestMapping("/API/WMS/v2")
public class CodingController extends BaseController {

    @Resource
    private CodingService codingService;

    @PostMapping("/receipt")
    @ApiOperation("入库组盘信息")
    @ResponseBody
    @ApiLogger(apiName = "入库组盘信息", from="码垛系统")
    public AjaxResult receipt(@RequestBody ERPReceipt erpReceipt) {
        if(erpReceipt == null) {
            return AjaxResult.error("入库组盘信息为空");
        }
        String containerCode = erpReceipt.getContainerCode();
        String receiptCode = erpReceipt.getReceiptCode();
        String position = erpReceipt.getRequestInCode();
        String orderCode = erpReceipt.getOrderCode();
        String orderName = erpReceipt.getOrderName();
        List<BoxInfo> boxInfoList = erpReceipt.getListBoxInfo();
        int stack = erpReceipt.getStack();
        int qc = erpReceipt.getQc();
        int orderFinish = erpReceipt.getOrderFinish();
        if(receiptCode == null) {
            return AjaxResult.error("入库组盘信息,排产订单编码为空");
        }
        if(containerCode == null) {
            return AjaxResult.error("入库组盘信息,托盘号为空");
        }
        if(position == null) {
            return AjaxResult.error("入库组盘信息,码垛站台位置为空");
        }
        if(orderCode == null) {
            return AjaxResult.error("入库组盘信息,订单信息为空");
        }
        if(orderName == null) {
            return AjaxResult.error("入库组盘信息,订单名称为空");
        }
        if(boxInfoList == null) {
            return AjaxResult.error("入库组盘信息,箱信息为空");
        }

        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = codingService.innerReceipt(containerCode,
                        position, receiptCode, orderCode, orderName, boxInfoList, stack, qc, orderFinish);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    @PostMapping("/searchFleeingGoodsInfo")
    @ApiOperation("防串信息查询")
    @ResponseBody
    @ApiLogger(apiName = "防串信息查询", from="查询历史库存记录")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult searchFleeingGoodsInfo(@RequestBody ShipmentRecord shipmentRecord) {
        String boxCode = shipmentRecord.getBoxCode();
        if(boxCode == null) {
            return AjaxResult.error("历史库存信息,箱为空");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = codingService.findShipmentRecord(boxCode);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    @PostMapping("/requestEmptyContainer")
    @ApiOperation("申请空托盘组")
    @ResponseBody
    @ApiLogger(apiName = "申请空托盘组", from="申请空托盘组")
    @Transactional(rollbackFor = Exception.class)
    public AjaxResult requestEmptyContainer(@RequestBody EmptyZu emptyZu) {
        String requestInCode = emptyZu.getRequestInCode();
        if (requestInCode == null) {
            return AjaxResult.error("空托盘组信息,申请位置为空");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = codingService.requestEmptyContainer(requestInCode);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }



}