ERPController.java 4.54 KB
package com.huaheng.api.erp.controller;

import com.huaheng.api.erp.domain.*;
import com.huaheng.api.erp.service.ERPService;
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.math.BigDecimal;
import java.util.Date;
import java.util.List;

@RestController
@RequestMapping("/API/WMS/v2")
public class ERPController extends BaseController {

    @Resource
    private ERPService erpService;

    @PostMapping("/receipt")
    @ApiOperation("入库组盘信息")
    @ResponseBody
    @ApiLogger(apiName = "入库组盘信息", from="码垛系统")
    @Transactional
    public AjaxResult receipt(@RequestBody ERPReceipt erpReceipt) {
        if(erpReceipt == null) {
            return AjaxResult.error("入库组盘信息为空");
        }
        String containerCode = erpReceipt.getContainerCode();
        String position = erpReceipt.getRequestInCode();
        String orderCode = erpReceipt.getOrderCode();
        String orderName = erpReceipt.getOrderName();
        List<BoxInfo> boxInfoList = erpReceipt.getListBoxInfo();
        String stack = erpReceipt.getStack();
        int qc = erpReceipt.getQc();
        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("入库组盘信息,箱信息为空");
        }
        if(stack == null) {
            return AjaxResult.error("入库组盘信息,垛型为空");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = erpService.innerReceipt(containerCode, position, orderCode,
                        orderName, boxInfoList, stack, qc);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    @PostMapping("/shipment")
    @ApiOperation("入库组盘信息")
    @ResponseBody
    @ApiLogger(apiName = "入库组盘信息", from="码垛系统")
    @Transactional
    public AjaxResult shipment(@RequestBody ERPShipment erpShipment) {
        if(erpShipment == null) {
            return AjaxResult.error("出库组盘信息为空");
        }
        String shipmentCode = erpShipment.getShipmentCode();
        String shipmentType = erpShipment.getShipmentType();
        String carType = erpShipment.getCarType();
        String order = erpShipment.getOrder();
        List<MaterialInfo> materialList = erpShipment.getMaterialList();
        Date scheduleDate =  erpShipment.getScheduleDate();
        String remake = erpShipment.getRemake();
        BigDecimal totalQty = erpShipment.getTotalQty();
        if(shipmentCode == null) {
            return AjaxResult.error("出库组盘信息为空 出库单编号为空");
        }
        if(shipmentType == null) {
            return AjaxResult.error("出库组盘信息 出库单类型为空");
        }
        if(carType == null) {
            return AjaxResult.error("出库组盘信息 车类型为空");
        }
        if(order== null) {
            return AjaxResult.error("出库组盘信息 订单信息为空");
        }
        if(materialList == null) {
            return AjaxResult.error("出库组盘信息 订单信息为空");
        }
        if(remake == null) {
            return AjaxResult.error("出库组盘信息 备注信息为空");
        }
        if(totalQty == null) {
            return AjaxResult.error("出库组盘信息 出库总数量为空");
        }
        AjaxResult ajaxResult = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = erpService.innerShipment(shipmentCode,shipmentType,carType,order,
                        materialList,remake,scheduleDate,totalQty);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }



}