You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

544 lines
19 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 主数据
/// <summary>
/// 从SAP传递物料基本信息到WMS
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("MaterialMasterMethod")]
[AllowAnonymousAttribute]
public IActionResult MaterialMasterMethod(WmsInterfaceRequest<SapPtInterface> 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<SapPtInterface> sapPtInterfaces = responseData.objModel;
result = service.MaterialMasterMethod(sid, sapPtInterfaces);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// 从SAP传递供应商基本信息到WMS
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("SupplierMasterMethod")]
[AllowAnonymousAttribute]
public IActionResult SupplierMasterMethod(WmsInterfaceRequest<SapSuInterface> 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<SapSuInterface> objModel = responseData.objModel;
result = service.SupplierMasterMethod(sid, objModel);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// 从SAP传递客户基本信息到WMS
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("CustomerMasterMethod")]
[AllowAnonymousAttribute]
public IActionResult CustomerMasterMethod(WmsInterfaceRequest<SapCuInterface> 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<SapCuInterface> objModel = responseData.objModel;
result = service.CustomerMasterMethod(sid, objModel);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// 从SAP传递物料号与客户物料号对照信息到WMS
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("CustomerItemMasterMethod")]
[AllowAnonymousAttribute]
public IActionResult CustomerItemMasterMethod(WmsInterfaceRequest<SapPtcptInterface> 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<SapPtcptInterface> objModel = responseData.objModel;
result = service.CustomerItemMasterMethod(sid, objModel);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// MBOM同步到WMS系统
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("BomMasterMethod")]
[AllowAnonymousAttribute]
public IActionResult BomMasterMethod(WmsInterfaceRequest<SapBomInterface> 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<SapBomInterface> 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
/// <summary>
/// SAP系统把ASN传递到WMS用于采购收货
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("ASNDataMethod")]
[AllowAnonymousAttribute]
public IActionResult ASNDataMethod(WmsInterfaceRequest<SapAsnInterface> 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<SapAsnInterface> objModel = responseData.objModel;
result = service.ASNDataMethod(sid, objModel);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// WMS中对 SA/PO 进行条码展开并打印的业务数据表
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("PODataMethod")]
[AllowAnonymousAttribute]
public IActionResult PODataMethod(WmsInterfaceRequest<SapDspoInterface> 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<SapDspoInterface> 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
/// <summary>
/// SAP系统将一定期间内待发运交货单信息发布到WMS用于后续捡配发货
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("SalesAndDeliveryPlanMethod")]
[AllowAnonymousAttribute]
public IActionResult SalesAndDeliveryPlanMethod(WmsInterfaceRequest<SapDnInterface> 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<SapDnInterface> objModel = responseData.objModel;
result = service.SalesAndDeliveryPlanMethod(sid, objModel);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// SAP把物料的零星出(入指令传到WMS
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("SporadicEntryAndExitMethod")]
[AllowAnonymousAttribute]
public IActionResult SporadicEntryAndExitMethod(WmsInterfaceRequest<SapMiscoInterface> 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<SapMiscoInterface> objModel = responseData.objModel;
result = service.SporadicEntryAndExitMethod(sid, objModel);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// 盘点开始时SAP冻结库存并把盘点表传到WMS
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("InventoryListMethod")]
[AllowAnonymousAttribute]
public IActionResult InventoryListMethod(WmsInterfaceRequest<SapCycoInterface> 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<SapCycoInterface> objModel = responseData.objModel;
result = service.InventoryListMethod(sid, objModel);
}
}
catch (Exception ex)
{
result.success = false;
result.message = ex.Message;
return Json(result);
}
return Json(result);
}
/// <summary>
/// SAP把盘点差异转移到差异库的结果传到WMS使得WMS可以根据盘点结果调整库存
/// </summary>
/// <param name="jobj"></param>
/// <returns></returns>
[HttpPost("InventoryDifferenceAdjustmentMethod")]
[AllowAnonymousAttribute]
public IActionResult InventoryDifferenceAdjustmentMethod(WmsInterfaceRequest<SapDifoInterface> 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<SapDifoInterface> 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
}
}