using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using SqlSugar; using WIDESEA_Common.CommonEnum; using WIDESEA_Common.MaterielEnum; using WIDESEA_Common.OrderEnum; using WIDESEA_Core; using WIDESEA_Core.Attributes; using WIDESEA_Core.Helper; using WIDESEA_DTO; using WIDESEA_DTO.Basic; using WIDESEA_DTO.ERP; using WIDESEA_External.ERPService; using WIDESEA_External.Model; using WIDESEA_IBasicRepository; using WIDESEA_IBasicService; using WIDESEA_IInboundRepository; using WIDESEA_IInboundService; using WIDESEA_InboundService; using WIDESEA_IOutboundService; using WIDESEA_Model.Models; using static WIDESEA_DTO.ErpResponseContent; namespace WIDESEA_WMSServer.Controllers.ERP { /// /// ERP接口 /// [Route("api/Erp")] [ApiController] public class ErpController : ControllerBase { private readonly IBasicService _basicService; private readonly IOutboundService _outboundService; private readonly IInboundService _inboundService; private readonly IInvokeERPService _invokeERPService; private readonly IReturnOrderService _returnOrderService; public ErpController(IBasicService basicService, IOutboundService outboundService, IInboundService inboundService, IInvokeERPService invokeERPService, IReturnOrderService returnOrderService) { _basicService = basicService; _outboundService = outboundService; _inboundService = inboundService; _invokeERPService = invokeERPService; _returnOrderService = returnOrderService; } /// /// 接收ERP采购单信息 /// /// /// [HttpPost, Route("ReceivePurchaseOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReceivePurchaseOrder([FromBody] Root model) { WebResponseContent content = _inboundService.PurchaseOrderService.ReceivePurchaseOrder(model.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 接收ERP仓库员工和质检员工数据 /// /// /// [HttpPost, Route("ReceiveUser"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReceiveUser([FromBody] Root model) { WebResponseContent content = _basicService.UserInfoService.ReceiveUser(model.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 接收ERP供应商信息 /// /// /// [HttpPost, Route("ReceiveSupplier"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReceiveSupplier([FromBody] Root model) { WebResponseContent content = _basicService.SupplierInfoService.ReceiveSupplier(model.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 接收ERP物料信息 /// /// /// [HttpPost, Route("ReceiveMaterial"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReceiveMaterial([FromBody] Root model) { WebResponseContent content = _basicService.MaterielInfoService.ReceiveMaterial(model.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 接收ERP客户信息 /// /// /// [HttpPost, Route("ReceiveCustomer"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReceiveCustomer([FromBody] Root model) { WebResponseContent content = _basicService.CustomerInfoService.ReceiveCustomer(model.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 接收ERP出库单信息 /// /// /// [HttpPost, Route("ReceiveOutOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReceiveOutOrder([FromBody] Root erpOutOrder) { WebResponseContent content = _outboundService.OutboundOrderService.ReceiveOutOrder(erpOutOrder.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 接收ERP成品出库单信息(订单出库/寄售出库) /// /// [HttpPost, Route("ProductDeliveryOrder"), AllowAnonymous, MethodParamsValidate] public async Task ProductDeliveryOrder([FromBody] Root erpProOutOrder) { var content = await _outboundService.ProOutOrderService.ProductDeliveryOrder(erpProOutOrder.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 成品寄售转入/调拨入库 /// /// /// [HttpPost, Route("ProductWarehousingOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ProductWarehousingOrder([FromBody] Root root) { WebResponseContent content = _inboundService.ErpProInOrderService.ProductWarehousingOrder(root.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 成品调拨出(研发) /// /// /// [HttpPost, Route("ProductTransferOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ProductTransferOrder([FromBody] Root root) { WebResponseContent content = _outboundService.ErpProTransferOrderService.ProductTransferOrder(root.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 成品报废出库单接收 /// /// /// [HttpPost, Route("ProductScrappedOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ProductScrappedOrder([FromBody] Root root) { return Instance.OK(); } /// /// 成品领料出库单接收 /// /// /// [HttpPost, Route("ProductOutOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ProductOutOrder([FromBody] Root root) { return Instance.OK(); } /// /// 销售指派单接收 /// [HttpPost, Route("ProductSpecifyVer"), AllowAnonymous, MethodParamsValidate] public async Task ProductSpecifyVerAsync([FromBody] Root root) { var content = await _outboundService.ProOutOrderService.ProductSpecifyVer(root.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 接收ERP退料单信息 /// [HttpPost, Route("ReturnOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReturnOrder([FromBody] Root model) { WebResponseContent content = _returnOrderService.ReturnOrder(model.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 其他入库单接收(调拔入仓,客供回收,物料销售退货) /// /// [HttpPost, Route("ReceiveWarehousingOrder"), AllowAnonymous, MethodParamsValidate] public ErpResponseContent ReceiveWarehousingOrder([FromBody] Root model) { WebResponseContent content = _inboundService.InbounOrderService.ReceiveWarehousingOrder(model.Content); if (content.Status) return Instance.OK(); else return Instance.Error(content.Message); } /// /// 推送ERP出库 /// /// [HttpPost, Route("InvokeOutStandardsApi"), AllowAnonymous] public string InvokeOutStandardsApi([FromBody] ERPIssueModel issueModel) { return _invokeERPService.InvokeOutStandardsApi(issueModel); } /// /// 推送ERP收货 /// /// [HttpPost, Route("InvokeMatReceiveApi"), AllowAnonymous] public string InvokeMatReceiveApi([FromBody]ERPReceiveModel receiveModel) { return _invokeERPService.InvokeMatReceiveApi(receiveModel); } /// /// 推送ERP来料IQC质检 /// /// [HttpPost, Route("InvokeCheckOrderApi"), AllowAnonymous] public string InvokeCheckOrderApi([FromBody] ERPCheckModel checkModel) { return _invokeERPService.InvokeCheckOrderApi(checkModel); } /// /// 推送ERP物料送检 /// /// [HttpPost, Route("InvokeInspectApi"), AllowAnonymous] public string InvokeInspectApi([FromBody] ERPInspectModel eRPInspectModel) { return _invokeERPService.InvokeInspectApi(eRPInspectModel); } /// /// 推送ERP入库 /// /// [HttpPost, Route("InvokeInboundOrderApi"), AllowAnonymous] public string InvokeInboundOrderApi([FromBody]ERPInboundModel inboundModel) { return _invokeERPService.InvokeInboundOrderApi(inboundModel); } /// /// 推送ERP退料上报 /// [HttpPost, Route("InvokeReturnApi"), AllowAnonymous] public string InvokeReturnApi([FromBody] ERPReturnModel returnModel) { return _invokeERPService.InvokeReturnApi(returnModel); } /// /// ERP盘赢/亏上报接口调用 /// [HttpPost, Route("InvokeTakeStockApi"), AllowAnonymous] public string InvokeTakeStockApi([FromBody] ERPTakeStockModel takeModel) { return _invokeERPService.InvokeTakeStockApi(takeModel); } /// /// ERP成品入库上报接口调用 /// /// [HttpPost, Route("InvokeProInApi"), AllowAnonymous] public string InvokeProInApi([FromBody] ERPProInboundModel inboundModel) { return _invokeERPService.InvokeProInApi(inboundModel); } /// /// ERP成品出库上报接口调用 /// [HttpPost, Route("InvokeProOutApi"), AllowAnonymous] public string InvokeProOutApi([FromBody] ERPProOutOrderModel outOrderModel) { return _invokeERPService.InvokeProOutApi(outOrderModel); } /// /// 成品仓检报废出库推送ERP /// /// /// [HttpPost, Route("InvokeProCheckApi"), AllowAnonymous] public string InvokeProCheckApi([FromBody] ERPProductCheckModel checkModel) { return _invokeERPService.InvokeProCheckApi(checkModel); } /// /// 成品超周期报废推送ERp /// /// /// [HttpPost, Route("InvokeProScrapSheetApi"), AllowAnonymous] public string InvokeProScrapSheetApi([FromBody] ERPScrapSheetModel sheetModel) { return _invokeERPService.InvokeProScrapSheetApi(sheetModel); } /// /// 成品盘点盘赢/盘亏 /// /// /// [HttpPost, Route("InvokeProStockCheckApi"), AllowAnonymous] public string InvokeProStockCheckApi([FromBody] ERPProStockCheckModel stockCheckModel) { return _invokeERPService.InvokeProStockCheckApi(stockCheckModel); } /// /// 查询销售ERP客户 /// /// [HttpPost, Route("InvokeProSaleCustomer"), AllowAnonymous] public string InvokeProSaleCustomer(string saleOrder) { return _invokeERPService.InvokeProSaleCustomer(saleOrder); } /// /// 查询销售ERP客户 /// /// [HttpPost, Route("InvokeOutProErpSync"), AllowAnonymous] public string InvokeOutProErpSync(string outProOrderNo) { return _invokeERPService.InvokeOutProErpSync(outProOrderNo); } /// /// ERP成品入库产品型号面积查询 /// /// [HttpPost, Route("InvokeProInErpStatic"), AllowAnonymous] public string InvokeProInErpStatic(string partNum, string partNumWithRev) { return _invokeERPService.InvokeProInErpStatic(partNum, partNumWithRev); } } }