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 } }