U8ApiService.java 6.86 KB
package com.huaheng.api.U8.service;

import com.huaheng.api.U8.domain.U8StockTransfer;
import com.huaheng.api.U8.domain.Ufinterface;
import com.huaheng.api.general.domain.ShipmentDomain;
import com.huaheng.framework.web.domain.AjaxResult;
import com.huaheng.pc.receipt.receiptDetail.domain.ReceiptDetail;
import com.huaheng.pc.receipt.receiptHeader.domain.ReceiptHeader;
import com.huaheng.pc.shipment.shipmentDetail.domain.ShipmentDetail;
import com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * U8处理接口
 * @author 肖超群
 */
public interface U8ApiService {
    /**
     * 获取发送eal接口对象
     * @param storeout
     * @return
     */
    Ufinterface getUfinterface(Ufinterface.Storeout storeout);


    /**
     * 发送材料出库单
     * @param header u8仓库
     * @param map 待进行回传的数据
     * @return
     */
    AjaxResult sendMaterialShipment(ShipmentHeader header,Map<String, List<ShipmentDetail>> map);

    /**
     * 创建Ufinterface数据
     * @param shipmentHeader 表头
     * @param u8Warehouse u8仓库
     * @param shipmentDetailList   表体
     * @return
     */
    AjaxResult createUfinterfaceData(ShipmentHeader shipmentHeader, String u8Warehouse, List<ShipmentDetail> shipmentDetailList);

    /**
     * 创建Ufinterface数据
     * @param receiptHeader 表头
     * @param u8Warehouse u8仓库
     * @param receiptDetailList   表体
     * @param negativeNumber 是否为负数
     * @return
     */
    AjaxResult createUfinterfaceData(ReceiptHeader receiptHeader, String u8Warehouse, List<ReceiptDetail> receiptDetailList, Boolean negativeNumber);



    /**
     * 发送材料入库单
     * @param receiptHeader 头部数据
     * @param map 入库数量
     * @return
     */
    AjaxResult sendMaterialReceipt(ReceiptHeader receiptHeader,Map<String, List<ReceiptDetail>> map);




    /**
     * 其他入库单
     * @param receiptHeader
     * @return
     */
    AjaxResult sendOtherReceipt(ReceiptHeader receiptHeader);

    /**
     * 其他出库单
     * @param shipmentHeader
     * @return
     */
    AjaxResult sendOtherShipment(ShipmentHeader shipmentHeader);

    /**
     * 发送调拨单
     * @param u8StockTransfer 成品入库单据
     * @return
     */
    AjaxResult sendTransferringOrder(U8StockTransfer u8StockTransfer);

    /**
     * 发送xml数据
     * @param ufinterface
     * @return
     */
    AjaxResult sendXmlData(Ufinterface ufinterface);

    Ufinterface.Storeout.Body getShipmentBody(List<ShipmentDetail> shipmentDetailList, boolean negativeNumber);

    /**
     * 获取erp表体
     * @param receiptDetailList
     * @param  negativeNumber  是否为负数
     * @return
     */
    Ufinterface.Storeout.Body getReceiptBody(List<ReceiptDetail> receiptDetailList, Boolean negativeNumber);

    /**
     * 查询出库单详情
     * @param header
     * @return
     */
    List<ShipmentDetail> queryShipmentDetail(ShipmentHeader header);

    /**
     * 查询入库单详情
     * @param header
     * @return
     */
    List<ReceiptDetail> queryReceiptDetail(ReceiptHeader header);

    /**
     * 推送红字半成品入库单
     * @param shipmentDomain
     * @param negativeNumber 数量是否为负数
     * @param u8Warehouse u8仓库
     * @return
     */
    AjaxResult sendSemiFinishedGoodsReceiptDocument(ShipmentDomain shipmentDomain, boolean negativeNumber, String u8Warehouse);

    /**
     * 统计原材料出库情况
     */
    void makeStatisticsMaterialOutgoing();

    /**
     * 原材料入库统计
     */
    void rawMaterialWarehousingStatistics();

    /***
     * 半成品入库统计
     */
    void semiFinishedProductsReceiptStatistics();

    /**
     * 半成品出库统计
     */
    void semiFinishedProductsShipmentStatistics();

    /**
     * 成品入库统计
     */
    void finishedGoodsWarehousingStatistics(String type);

    /**
     * 保存入库回传消息
     * @param result
     * @param header
     * @param list
     */
    void saveReceiptAjaxResult(AjaxResult result, ReceiptHeader header, List<ReceiptDetail> list);

    /**
     * 不良品入库统计
     */
    void statisticsDefectiveProductWarehousing(String type);

    /**
     * 不良品出库统计
     * @param type
     */
    void deliveryStatisticsDefectiveProducts(String type);

    /**
     * 库存形态转换统计
     */
    void inventoryMorphologicalTransformationStatistics();

    /**
     * 推送半成品入库单
     * @param header 表头
     * @param list   表体
     * @param u8Warehouse u8仓库
     * @param negativeNumber 数量是否为负数
     * @return
     */
    AjaxResult sendSemiFinishedProductsReceipt(ReceiptHeader header, List<ReceiptDetail> list, String u8Warehouse, boolean negativeNumber);


    /**
     * 推送半成品出库单
     * @param header 表头
     * @param list   表体
     * @param u8Warehouse u8仓库
     * @param negativeNumber 数量是否为负数
     * @return
     */
    AjaxResult sendSemiFinishedProductsShipment(ShipmentHeader header, List<ShipmentDetail> list, String u8Warehouse, boolean negativeNumber);




    /**
     * 获取erp表体
     * @param map
     * @return
     */
    Ufinterface.Storeout.Body getReceiptBody(Map<String,BigDecimal> map);


    /**
     * 获取出库编号
     * @param type
     * @return
     */
    String getShipmentCode(String type);

    /**
     * 获取入库编号
     * @param type
     * @return
     */
    String getReceiptCode(String type);


    /**
     * 发送采购入库单
     * @param receiptHeader
     * @return
     */
    AjaxResult sendPurchaseWarehousingList(ReceiptHeader receiptHeader);

    /**
     * 发送采购出库单
     * @param shipmentHeader
     * @return
     */
    AjaxResult sendPurchaseShipmentWarehousingList(ShipmentHeader shipmentHeader);


    /**
     * 修改出库单头表状态
     * @param shipmentDetailList
     */
    void updateShipmentHeadState(List<ShipmentDetail> shipmentDetailList);

    /**
     * 修改入库单头表状态
     * @param receiptDetailList
     */
    void updateReceiptHeadState(List<ReceiptDetail> receiptDetailList);

    /**
     * 车间编码转换
     * @param code
     * @return
     */
    String workshopCodeConversion(String code);


    /**
     * 获取出库头表
     * @param type 出库单类型
     * @return
     */
    List<ShipmentHeader> getShipmentHeader(String type);


    /**
     * 获取入库单头表
     * @param type 入库单类型
     * @return
     */
    List<ReceiptHeader> getReceiptHeader(String type);


    /**
     * 创建u8调拨单
     * @param list
     * @param code 入库单号
     * @param VT_ID 调拨模板id
     * @param warehouse 仓库编码
     * @return
     */
    U8StockTransfer createU8StockTransfer(List<ReceiptDetail> list, String code, String VT_ID, String warehouse);
}