using Estsh.Core.Wms.IServices; using Estsh.Core.Model.Result; using Microsoft.AspNetCore.Mvc; using Estsh.Core.Models; using Estsh.Core.Controllers; using Microsoft.AspNetCore.Authorization; using Newtonsoft.Json.Linq; namespace Estsh.Core.Web.Areas.Wms.Controllers.ERPInterface { [Route("wms/[controller]")] [ApiController] public class ERPInterfaceController : WmsBaseController { private IERPInterfaceService service; // GET: LoginController public ERPInterfaceController(IERPInterfaceService _service) { service = _service; } #region 主数据 /// /// 从SAP传递物料基本信息到WMS /// /// /// [HttpPost("MaterialMasterMethod")] [AllowAnonymousAttribute] public IActionResult MaterialMasterMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (string.IsNullOrEmpty(sid)) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count==0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List sapPtInterfaces = responseData.objModel; result = service.MaterialMasterMethod(sid, sapPtInterfaces); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// 从SAP传递供应商基本信息到WMS /// /// /// [HttpPost("SupplierMasterMethod")] [AllowAnonymousAttribute] public IActionResult SupplierMasterMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.SupplierMasterMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// 从SAP传递客户基本信息到WMS /// /// /// [HttpPost("CustomerMasterMethod")] [AllowAnonymousAttribute] public IActionResult CustomerMasterMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.CustomerMasterMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// 从SAP传递物料号与客户物料号对照信息到WMS /// /// /// [HttpPost("CustomerItemMasterMethod")] [AllowAnonymousAttribute] public IActionResult CustomerItemMasterMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.CustomerItemMasterMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// MBOM同步到WMS系统 /// /// /// [HttpPost("BomMasterMethod")] [AllowAnonymousAttribute] public IActionResult BomMasterMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.BomMasterMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } #endregion #region ASN PO /// /// SAP系统把ASN传递到WMS用于采购收货 /// /// /// [HttpPost("ASNDataMethod")] [AllowAnonymousAttribute] public IActionResult ASNDataMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.ASNDataMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// WMS中对 SA/PO 进行条码展开并打印的业务数据表 /// /// /// [HttpPost("PODataMethod")] [AllowAnonymousAttribute] public IActionResult PODataMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.PODataMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } #endregion #region /// /// SAP系统将一定期间内待发运交货单信息发布到WMS用于后续捡配发货 /// /// /// [HttpPost("SalesAndDeliveryPlanMethod")] [AllowAnonymousAttribute] public IActionResult SalesAndDeliveryPlanMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.SalesAndDeliveryPlanMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// SAP把物料的零星出(入)指令传到WMS /// /// /// [HttpPost("SporadicEntryAndExitMethod")] [AllowAnonymousAttribute] public IActionResult SporadicEntryAndExitMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.SporadicEntryAndExitMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// 盘点开始时,SAP冻结库存,并把盘点表传到WMS /// /// /// [HttpPost("InventoryListMethod")] [AllowAnonymousAttribute] public IActionResult InventoryListMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.InventoryListMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } /// /// SAP把盘点差异转移到差异库的结果传到WMS,使得WMS可以根据盘点结果调整库存 /// /// /// [HttpPost("InventoryDifferenceAdjustmentMethod")] [AllowAnonymousAttribute] public IActionResult InventoryDifferenceAdjustmentMethod(WmsInterfaceRequest responseData) { WmsInterfaceResult result = new WmsInterfaceResult(); try { if (responseData == null) { result.success = false; result.message = "对象不能为空"; return Json(result); } else { string sid = responseData.sid; if (sid.Equals("")) { result.success = false; result.message = "sid不能为空"; return Json(result); } if (responseData.objModel.Count == 0) { result.success = false; result.message = "数据不能为空"; return Json(result); } List objModel = responseData.objModel; result = service.InventoryDifferenceAdjustmentMethod(sid, objModel); } } catch (Exception ex) { result.success = false; result.message = ex.Message; return Json(result); } return Json(result); } #endregion } }