ICSReceiptApi.java 6.45 KB
package com.huaheng.api.U8.controller;

import com.alibaba.fastjson.JSON;
import com.huaheng.common.constant.QuantityConstant;
import com.huaheng.pc.u8.domain.ICSReceiptDetail;
import com.huaheng.pc.u8.domain.ICSReceiptHeader;
import com.huaheng.pc.u8.domain.ICSReceiptModel;
import com.huaheng.pc.u8.service.ICSReceiptAPIService;
import com.huaheng.framework.aspectj.lang.annotation.ApiLogger;
import com.huaheng.framework.aspectj.lang.annotation.Log;
import com.huaheng.framework.aspectj.lang.constant.BusinessType;
import com.huaheng.framework.web.controller.BaseController;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.config.documentWarning.service.IDocumentWarningService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

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


/**
 * u8-wms入库下发或回传接口
 *  @author huaheng
 *  @date 2019-1-4
 *
 */
@RestController
@RequestMapping("/api/icsReceipt")
@Api(tags = {"icsReceipt"}, description = "ICS入库下发或回传接口")
public class ICSReceiptApi extends BaseController {

    @Autowired
    private ICSReceiptAPIService icsReceiptAPIService;
    @Resource
    private IDocumentWarningService documentWarningService;

    @Log(title = "采购订单", action = BusinessType.INSERT)
    @PostMapping("/GetICSPO_PO")
    @ApiOperation("ICS采购订单接口")
    @ResponseBody
    @ApiLogger(apiName = "ICS采购订单接口",from = "U8")
    public AjaxResult procureReceipt(@RequestBody ICSReceiptModel icsReceiptModel)  {

        ICSReceiptHeader icsReceiptHeader=icsReceiptModel.getIcsReceiptHeader();
//        String wareHouseCode = icsReceiptHeader.getCWarehouseCode();
//        if(wareHouseCode!=null && !"".equals(wareHouseCode)){
//            return AjaxResult.error("入库单头信息仓库编码不能为空");
//        }
        List<ICSReceiptDetail> icsReceiptDetails = icsReceiptModel.getIcsReceiptDetails();

        if(icsReceiptHeader == null ){
//            documentWarningService.ErpSendWarning("","采购订单缺少主单据");
            return AjaxResult.error("缺少主单据");
        }
        if(icsReceiptDetails==null){
//            documentWarningService.ErpSendWarning(icsReceiptHeader.getCCode(),"采购订单缺少子单据");
            return AjaxResult.error("缺少子单据");
        }
        icsReceiptHeader.setType("PCI");

        AjaxResult result = handleMultiProcess(new MultiProcessListener() {
            @Override
            public AjaxResult doProcess() {
                AjaxResult ajaxResult = icsReceiptAPIService.procureReceipt(icsReceiptModel);
                return ajaxResult;
            }
        });
        return result;
    }

    @Log(title = "材料出库单(红字)", action = BusinessType.INSERT)
    @PostMapping("/GetICSRdRecord_11_Return")
    @ApiOperation("ICS材料出库单(红字)下发接口")
    @ResponseBody
    @ApiLogger(apiName = "ICS材料出库单(红字)下发接口",from = "U8")
    public AjaxResult GetICSRdRecord_11_Return(@RequestBody ICSReceiptModel icsReceiptModel) {
        ICSReceiptHeader icsReceiptHeader=icsReceiptModel.getIcsReceiptHeader();
        List<ICSReceiptDetail> icsReceiptDetails = icsReceiptModel.getIcsReceiptDetails();

        if(icsReceiptHeader==null ){
//            documentWarningService.ErpSendWarning("","材料出库单(红字)缺少主单据");
            return AjaxResult.error("缺少主单据");
        }
        if(icsReceiptDetails==null){
//            documentWarningService.ErpSendWarning(icsReceiptHeader.getCCode(),"材料出库单(红字)缺少子单据");
            return AjaxResult.error("缺少子单据");
        }
        icsReceiptHeader.setType("CI");
        AjaxResult ajaxResult = icsReceiptAPIService.procureReceipt(icsReceiptModel);
        return ajaxResult;
    }



    @Log(title = "采购到货单下发", action = BusinessType.INSERT)
    @PostMapping("/GetICSPU_ArrivalVouch")
    @ApiOperation("ICS采购到货单下发接口")
    @ResponseBody
    @ApiLogger(apiName = "ICS采购到货单下发接口",from = "U8")
    public AjaxResult procureArrive(@RequestBody ICSReceiptModel icsReceiptModel) throws ParseException {
        ICSReceiptHeader icsReceiptHeader=icsReceiptModel.getIcsReceiptHeader();
        List<ICSReceiptDetail> icsReceiptDetails = icsReceiptModel.getIcsReceiptDetails();
        if(icsReceiptHeader==null ){
//            documentWarningService.ErpSendWarning("","采购到货单缺少主单据");
            return AjaxResult.error("缺少主单据");
        }
        if(icsReceiptDetails==null){
//            documentWarningService.ErpSendWarning(icsReceiptHeader.getCCode(),"采购到货单缺少子单据");
            return AjaxResult.error("缺少子单据");
        }
        icsReceiptHeader.setType(QuantityConstant.U8_RECEIPT_TYPE_PI);
        AjaxResult ajaxResult = icsReceiptAPIService.procureArrive(icsReceiptModel);
        return ajaxResult;
    }

    @Log(title = "销售退货入库单", action = BusinessType.INSERT)
    @PostMapping("/GetICSDispatchList_Return")
    @ApiOperation("ICS销售退货入库单下发接口")
    @ResponseBody
    @ApiLogger(apiName = "ICS销售退货入库单下发接口",from = "U8")
    public AjaxResult GetICSDispatchList_Return(@RequestBody ICSReceiptModel icsReceiptModel) {
        ICSReceiptHeader icsReceiptHeader=icsReceiptModel.getIcsReceiptHeader();
        List<ICSReceiptDetail> icsReceiptDetails = icsReceiptModel.getIcsReceiptDetails();
        if(icsReceiptHeader==null ){
//            documentWarningService.ErpSendWarning("","销售退货入库单缺少主单据");
            return AjaxResult.error("缺少主单据");
        }
        if(icsReceiptDetails==null){
//            documentWarningService.ErpSendWarning(icsReceiptHeader.getCCode(),"销售退货入库单缺少子单据");
            return AjaxResult.error("缺少子单据");
        }
        icsReceiptHeader.setType("SRI");
        AjaxResult ajaxResult = icsReceiptAPIService.procureArrive(icsReceiptModel);
        return ajaxResult;
    }

    @Log(title = "测试回传", action = BusinessType.INSERT)
    @PostMapping("/test")
    @ApiOperation("测试回传")
    @ResponseBody
    @ApiLogger(apiName = "测试回传",from = "WMS")
    public AjaxResult test(@RequestBody ICSReceiptModel icsReceiptModel) {
        return AjaxResult.success();
    }

}