PdaApiController.java 11.6 KB
package com.huaheng.api.pda.controller;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.web.bind.annotation.*;

import com.huaheng.api.general.domain.ReceiptDomain;
import com.huaheng.api.pda.domain.PdaParameter;
import com.huaheng.api.pda.domain.ReceiptContainer;
import com.huaheng.api.pda.domain.ShipmentContainer;
import com.huaheng.api.pda.service.PdaApiService;
import com.huaheng.common.constant.QuantityConstant;
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.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.receipt.receiptHeader.service.ReceiptHeaderService;
import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;
import com.huaheng.pc.shipment.shipmentHeader.service.ShipmentHeaderService;
import com.huaheng.pc.task.taskHeader.domain.TaskHeader;
import com.huaheng.pc.task.taskHeader.service.WorkTaskService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

/**
 * pda外部接口
 * @author xcq
 */
@RestController
@RequestMapping("/api/pda")
@Api(tags = {"pda接口"}, value = "pda接口")
public class PdaApiController extends BaseController {
    @Resource
    private PdaApiService pdaApiService;
    @Resource
    private WorkTaskService workTaskService;
    @Resource
    private ShipmentHeaderService shipmentHeaderService;
    @Resource
    private ReceiptHeaderService receiptHeaderService;

    /**
     * pda通过采购订单创建入库单据
     */
    @PostMapping("/createReceipt")
    @ApiOperation("pda创建入库单据")
    @ResponseBody
    @ApiLogger(apiName = "pda创建入库单据", from = "pda")
    public AjaxResult createReceipt(@RequestBody PdaParameter parameter) {
        AjaxResult ajaxResult = handleMultiProcess(new BaseController.MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = pdaApiService.createReceiptService(parameter);
                return ajaxResult;
            }
        });
        return ajaxResult;
    }

    /**
     * pda通过采购订单创建出库单据
     */
    @PostMapping("/createShipment")
    @ApiOperation("pda创建出库单据")
    @ResponseBody
    @ApiLogger(apiName = "pda创建出库单据", from = "pda")
    public AjaxResult createShipment(@RequestBody PdaParameter parameter) {
        return pdaApiService.createShipmentService(parameter);
    }

    /**
     * pda通过库位获取容器编码
     */
    @PostMapping("/getContainerCode")
    @ApiOperation("pda获取容器编码")
    @ResponseBody
    public AjaxResult getContainerCode(@RequestBody String locationCode) {
        return pdaApiService.getContainerCodeService(locationCode);
    }

    /**
     * pda回传采购入库单
     */
    @PostMapping("/receiptEcho")
    @ResponseBody
    public AjaxResult receiptEcho(@RequestBody ReceiptHeader receiptHeader) {
        return pdaApiService.receiptEchoServer(receiptHeader);
    }

    /**
     * pda回传采购出库单
     */
    @PostMapping("/shipmentEcho")
    @ResponseBody
    public AjaxResult shipmentEcho(@RequestBody ShipmentHeader shipmentHeader) {
        return pdaApiService.shipmentEchoServer(shipmentHeader);
    }

    /**
     * pda调拨出库
     */
    @PostMapping("/stockTransferShipment")
    @ApiOperation("pda调拨出库")
    @ResponseBody
    @ApiLogger(apiName = "pda调拨出库", from = "pda")
    public AjaxResult stockTransferShipment(@RequestBody String code) {
        return pdaApiService.stockTransferShipmentServer(code);
    }

    /**
     * pda完成入库任务
     */
    @PostMapping("/completeReceiptTask")
    @ResponseBody
    public AjaxResult completeReceiptTask(@RequestBody TaskHeader taskHeader) {
        return pdaApiService.completeReceiptTaskServer(taskHeader);
    }

    /**
     * pda创建空托盘组入库任务
     */
    @PostMapping("/createManyEmptyIn")
    @ResponseBody
    public AjaxResult createManyEmptyIn(@RequestBody String containerCode) {
        return workTaskService.createManyEmptyIn(containerCode, null, QuantityConstant.WAREHOUSECODE);
    }

    /**
     * pda创建销售退货单
     */
    @PostMapping("/createSalesReturnNote")
    @ApiOperation("pda创建销售退货单")
    @ResponseBody
    @ApiLogger(apiName = "pda创建销售退货单", from = "pda")
    public AjaxResult createSalesReturnNote(@RequestBody ReceiptDomain receiptDomain) {
        return pdaApiService.createSalesReturnNoteServer(receiptDomain);
    }

    /**
     * RGV空托盘入库
     * @param  parameter
     * @return
     */
    @PostMapping("/rgvEmptyReceipt")
    @ApiOperation("RGV空托盘入库")
    @ResponseBody
    @ApiLogger(apiName = "PDARGV空托盘入库", from = "pda")
    public AjaxResult rgvEmptyReceipt(@RequestBody PdaParameter parameter) {
        return pdaApiService.rgvEmptyReceiptServer(parameter.getContainerCode());
    }

    /**
     * 空托盘出库
     * @param  parameter
     * @return
     */
    @PostMapping("/emptyShipment")
    @ApiOperation("PDA空托盘出库")
    @ResponseBody
    @ApiLogger(apiName = "PDA空托盘出库", from = "pda")
    public AjaxResult emptyShipment(@RequestBody PdaParameter parameter) {
        return pdaApiService.emptyShipmentServer(parameter.getPort());
    }

    /**
     * 周转箱入库
     * @param  parameter
     * @return
     */
    @PostMapping("/turnBoxReceipt")
    @ApiOperation("PDA周转箱入库")
    @ResponseBody
    @ApiLogger(apiName = "PDA周转箱入库", from = "pda")
    public AjaxResult turnBoxReceipt(@RequestBody PdaParameter parameter) {
        return pdaApiService.turnBoxReceiptServer(parameter.getContainerCode());
    }

    /**
     * 周转箱出库
     * @param  parameter
     * @return
     */
    @PostMapping("/turnBoxShipment")
    @ApiOperation("PDA周转箱出库")
    @ResponseBody
    @ApiLogger(apiName = "PDA周转箱出库", from = "pda")
    public AjaxResult turnBoxShipment(@RequestBody PdaParameter parameter) {
        return pdaApiService.turnBoxShipmentServer(parameter.getPort());
    }

    /**
     * 查询周转箱库存
     * @return
     */
    @GetMapping("/turnBoxInventory")
    @ApiOperation("PDA查询周转箱库存")
    @ResponseBody
    // @ApiLogger(apiName = "PDA查询周转箱库存", from = "pda")
    public AjaxResult turnBoxInventory() {
        return pdaApiService.turnBoxInventoryServer();
    }

    /**
     * pda人工码垛
     */
    @PostMapping("/manualPalletizing")
    @ApiOperation("pda人工码垛")
    @ResponseBody
    @ApiLogger(apiName = "pda人工码垛", from = "pda")
    public AjaxResult manualPalletizing(@RequestBody PdaParameter parameter) {
        return pdaApiService.manualPalletizingServer(parameter);
    }

    /**
     * 获取入库单
     * @param  containerCode
     * @return
     */
    @PostMapping("/getReceipt")
    @ApiOperation("通过托盘码获取入库单")
    @ResponseBody
    @ApiLogger(apiName = "获取入库单", from = "pda")
    public AjaxResult getReceipt(@RequestBody String containerCode) {
        return pdaApiService.getReceiptServer(containerCode);
    }

    /**
     * 查询库存
     * @param  locationCode
     * @return
     */
    @PostMapping("/selectInventory")
    @ApiOperation("通过地码查询库存")
    @ResponseBody
    public AjaxResult selectInventory(@RequestBody String locationCode) {
        return pdaApiService.selectInventoryServer(locationCode);
    }

    @PostMapping("/createReceiptContainer")
    @ApiOperation("创建入库组盘")
    @ResponseBody
    @ApiLogger(apiName = "创建入库组盘", from = "pda")
    public AjaxResult createReceiptContainer(@RequestBody List<ReceiptContainer> receiptContainerList) {
        return pdaApiService.createReceiptContainerServer(receiptContainerList);
    }

    /**
     * 校验采购入库单数量
     */
    @PostMapping("/checkReceipt")
    @ApiOperation("校验采购入库单数量")
    @ResponseBody
    @ApiLogger(apiName = "校验采购入库单数量", from = "pda")
    public AjaxResult checkReceipt(@RequestBody ReceiptContainer receiptContainer) {
        return pdaApiService.checkReceiptServer(receiptContainer);
    }

    /**
     * 删除采购入库单
     */
    @PostMapping("/delReceipt")
    @ApiOperation("删除采购入库单")
    @ResponseBody
    @ApiLogger(apiName = "删除采购入库单", from = "pda")
    public AjaxResult delReceipt(@RequestBody ReceiptContainer receiptContainer) {
        return pdaApiService.delReceiptService(receiptContainer);
    }

    /**
     * pda原材料出库
     * @return
     */
    @PostMapping("/rawMaterialShipment")
    @ApiOperation("原材料出库")
    @ResponseBody
    @ApiLogger(apiName = "原材料出库", from = "pda")
    public AjaxResult rawMaterialShipment(@RequestBody ShipmentContainer shipmentContainer) {
        return pdaApiService.rawMaterialShipmentServer(shipmentContainer);
    }

    @PostMapping("/getShipmentAll")
    @ApiOperation("获取所有材料出库单")
    @ResponseBody
    public AjaxResult getShipmentAll() {
        return pdaApiService.getShipmentAllService();
    }

    @PostMapping("/getReceiptAll")
    @ApiOperation("获取所有原材料入库")
    @ResponseBody
    public AjaxResult getReceiptAll() {
        return pdaApiService.getReceiptAllService();
    }

    @PostMapping("/rawMaterialShipmentComplete")
    @ApiOperation("材料出库完成")
    @ResponseBody
    @ApiLogger(apiName = "材料出库完成", from = "pda")
    public AjaxResult rawMaterialShipmentComplete(@RequestBody String code) {
        return pdaApiService.rawMaterialShipmentCompleteServer(code);
    }

    @PostMapping("/rawMaterialReceiptComplete")
    @ApiOperation("材料入库完成")
    @ResponseBody
    @ApiLogger(apiName = "材料入库完成", from = "pda")
    public AjaxResult rawMaterialReceiptComplete(@RequestBody String code) {
        return pdaApiService.rawMaterialReceiptCompleteServer(code);
    }

    /**
     * PDA扫纸箱唯一码
     * @param  code
     * @return
     */
    @PostMapping("/findCartons")
    @ApiOperation("查询纸箱数据")
    @ResponseBody
    public AjaxResult findCartons(@RequestBody String code) {
        return pdaApiService.findCartonsServer(code);
    }

    /**
     * PDA查询出库头
     * @param  id
     * @return
     */
    @PostMapping("/getShipmentById")
    @ResponseBody
    public AjaxResult getShipmentById(@RequestBody String id) {
        return AjaxResult.success("查询成功!", shipmentHeaderService.getById(id));
    }

    /**
     * PDA查询入库头
     * @param  id
     * @return
     */
    @PostMapping("/getReceiptById")
    @ResponseBody
    public AjaxResult getReceiptById(@RequestBody String id) {
        return AjaxResult.success("查询成功!", receiptHeaderService.getById(id));
    }

    /**
     * PDA查询库存
     * @param  parameter
     * @return
     */
    @PostMapping("/findInventory")
    @ResponseBody
    public AjaxResult findInventory(@RequestBody PdaParameter parameter) {
        return pdaApiService.findInventoryService(parameter);
    }

    /**
     * PDA快速出库
     * @param  pdaParameters
     * @return
     */
    @PostMapping("/fastShipment")
    @ResponseBody
    public AjaxResult fastShipment(@RequestBody List<PdaParameter> pdaParameters) {
        return pdaApiService.fastShipmentService(pdaParameters);
    }

    /**
     * PDA快速入库
     * @param  pdaParameters
     * @return
     */
    @PostMapping("/fastReceipt")
    @ResponseBody
    public AjaxResult fastReceipt(@RequestBody List<PdaParameter> pdaParameters) {
        return pdaApiService.fastReceiptService(pdaParameters);
    }

}