using System;
|
using System.Security.Claims;
|
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.Extensions.Options;
|
using Model.InterFaceModel;
|
using Model.ModelVm;
|
using WMS.IBLL.IBllAsnServer;
|
using WMS.IBLL.IBllCheckServer;
|
using WMS.IBLL.IBllSoServer;
|
using WmsApi.Tools;
|
|
namespace WmsApi.Controllers
|
{
|
/// <summary>
|
/// 上游系统交互
|
/// </summary>
|
[Route("api/[controller]/[action]")]
|
[ApiController]
|
public class UpApiController : ControllerBase
|
{
|
#region 依赖注入
|
private readonly ApiUrlConfig _config; //接口交互路径
|
private readonly IExportNoticeServer _exNoticeSvc;//出库单Svc
|
private readonly IArrivalNoticeServer _arrivalNoticeSvc;
|
private readonly IStockCheckServer _stockCheckSvc;//盘点单Svc
|
public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc)
|
{
|
_config = setting.Value;
|
_exNoticeSvc = exNoticeSvc;
|
_arrivalNoticeSvc = arrivalNoticeServer;
|
_stockCheckSvc = stockCheckSvc;
|
}
|
#endregion
|
|
#region 调用上游系统接口
|
|
/// <summary>
|
/// 入库单完成回传
|
/// </summary>
|
/// <param name="model">入库单号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult FinishAsn(IdVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var bolls = _arrivalNoticeSvc.CloseArrivalNotice(model.Id, int.Parse(userId));
|
|
if (bolls == "")
|
{
|
//系统对接后放开
|
//var bl =_ArrivalNoticeSvc.FinishAsn(model.Id,_config.ErpHost+_config.AsnFinishUrl,int.Parse(userId));
|
//if (bl)
|
//{
|
return Ok(new { code = 0, count = 0, msg = "入库单关单成功" });
|
//}
|
//return Ok(new { code = 1, count = 0, msg = "出库单关单成功但上传失败" });
|
}
|
return Ok(new { code = 1, msg = "入库单关单失败" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 入库单完成回传(批量)
|
/// </summary>
|
/// <param name="model">入库单号</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult FinishAsns(IdVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var bolls = _arrivalNoticeSvc.CloseArrivalNotices(model.Ids, int.Parse(userId));
|
|
if (bolls == "")
|
{
|
//系统对接后放开
|
//var bl =_ArrivalNoticeSvc.FinishAsn(model.Id,_config.ErpHost+_config.AsnFinishUrl,int.Parse(userId));
|
//if (bl)
|
//{
|
return Ok(new { code = 0, count = 0, msg = "入库单关单成功" });
|
//}
|
//return Ok(new { code = 1, count = 0, msg = "出库单关单成功但上传失败" });
|
}
|
return Ok(new { code = 1, msg = "入库单关单失败" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 完成出库单据 //出库单关闭反馈
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult FinishExportNotice(IdVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var bolls = _exNoticeSvc.CloseExportNotice(model.Id, int.Parse(userId));
|
if (bolls)
|
{
|
//系统对接后放开
|
//var bl =_exNoticeSvc.FinishSo(model.Id,_config.ErpHost + _config.SoFinishUrl, int.Parse(userId));
|
//if (bl)
|
//{
|
return Ok(new { code = 0, count = 0, msg = "出库单关单成功" });
|
//}
|
//return Ok(new { code = 1, count = 0, msg = "出库单关单成功但上传失败" });
|
}
|
|
return Ok(new { code = 1, msg = "出库单关单失败" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 完成出库单据 //出库单关闭反馈 批量订单关闭
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult FinishExportNotices(IdVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var bolls = _exNoticeSvc.CloseExportNotices(model.Ids, int.Parse(userId));
|
if (bolls)
|
{
|
//系统对接后放开
|
//var bl =_exNoticeSvc.FinishSo(model.Id,_config.ErpHost + _config.SoFinishUrl, int.Parse(userId));
|
//if (bl)
|
//{
|
return Ok(new { code = 0, count = 0, msg = "出库单关单成功" });
|
//}
|
//return Ok(new { code = 1, count = 0, msg = "出库单关单成功但上传失败" });
|
}
|
|
return Ok(new { code = 1, msg = "出库单关单失败" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
/// <summary>
|
/// 完成盘库单据 //盘库单调整库存反馈
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult FinishCr(IdVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var bolls = _stockCheckSvc.StockAdjust(model.Id, int.Parse(userId));
|
if (bolls)
|
{
|
////系统对接后放开
|
//var bl =_stockCheckSvc.FinishCr(model.Id, _config.ErpHost + _config.DataChangeUrl, int.Parse(userId));
|
//if (bl)
|
//{
|
return Ok(new { code = 0, count = 0, msg = "调整库存成功" });
|
//}
|
//return Ok(new { code = 1, count = 0, msg = "出库单关单成功但上传失败" });
|
}
|
|
return Ok(new { code = 1, msg = "调整库存失败" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
|
/// <summary>
|
/// 作废盘点单
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult ZuofeiCr(IdVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var bolls = _stockCheckSvc.ZuofeiCr(model.Id, int.Parse(userId));
|
if (bolls)
|
{
|
////系统对接后放开
|
//var bl =_stockCheckSvc.FinishCr(model.Id, _config.ErpHost + _config.DataChangeUrl, int.Parse(userId));
|
//if (bl)
|
//{
|
return Ok(new { code = 0, count = 0, msg = "作废成功" });
|
//}
|
//return Ok(new { code = 1, count = 0, msg = "出库单关单成功但上传失败" });
|
}
|
|
return Ok(new { code = 1, msg = "作废失败" });
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
|
//箱码信息 手持组托用 (扫箱码向追溯要信息)
|
|
|
#endregion
|
|
#region 被调上游调用接口
|
|
/// <summary>
|
/// 入库单据下发
|
/// </summary>
|
/// <param name="model">入库单信息</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult CreateAsn(AsnInfo model)
|
{
|
var result = new ErpModel { Success = -1, Message = "" };
|
try
|
{
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
throw new Exception("未获取到用户信息");
|
}
|
string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(UserId))
|
{
|
throw new Exception("未获取到用户信息");
|
}
|
|
result = _arrivalNoticeSvc.CreateAsn(model);
|
|
return Ok(result);
|
}
|
catch (Exception e)
|
{
|
result.Message = e.Message;
|
return Ok(result);
|
}
|
}
|
|
/// <summary>
|
/// 出库单下发接口
|
/// </summary>
|
/// <param name="model">入库单信息</param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult CreateSo(SoInfo model)
|
{
|
try
|
{
|
var bl = _exNoticeSvc.ErpAddExportNotice(model);
|
if (bl)
|
{
|
return Ok(new ErpModel { Success = 0, Message = "成功"});
|
}
|
else
|
{
|
return Ok(new ErpModel { Success = -1, Message = "失败" });
|
}
|
|
}
|
catch (Exception e)
|
{
|
return Ok(new ErpModel { Success = -1, Message = e.Message });
|
}
|
}
|
|
//箱码信息 手持组托用 (赋码或追溯下发到wms)
|
|
//质检结果下发接口
|
|
//物料信息接口
|
|
//客户信息接口
|
|
//单位信息接口
|
|
//包装信息接口
|
|
|
#endregion
|
|
}
|
}
|