| | |
| | | using WMS.DAL; |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Utility; |
| | | using System.Collections.Generic; |
| | | using System.Reflection.Emit; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using Newtonsoft.Json.Linq; |
| | | using System.Runtime.CompilerServices; |
| | | using System.Threading.Tasks; |
| | | using WMS.BLL.BllPdaServer; |
| | | using WMS.IBLL.IPdaServer; |
| | | |
| | | namespace Wms.Controllers |
| | | { |
| | |
| | | private readonly IArrivalNoticeServer _arrivalNoticeSvc; |
| | | private readonly IStockCheckServer _stockCheckSvc;//盘点单Svc |
| | | private readonly IProcurePlanServer _procurePlanSvc;//采购单Svs |
| | | public UpApiController(IOptions<ApiUrlConfig> setting,IExportNoticeServer exNoticeSvc,IArrivalNoticeServer arrivalNoticeServer,IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc) |
| | | private readonly IPdaAsnServer _pdaAsnServer;// PDA |
| | | public UpApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IArrivalNoticeServer arrivalNoticeServer, IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc, IPdaAsnServer pdaAsnServer) |
| | | { |
| | | _config = setting.Value; |
| | | _exNoticeSvc = exNoticeSvc; |
| | | _arrivalNoticeSvc = arrivalNoticeServer; |
| | | _stockCheckSvc = stockCheckSvc; |
| | | _procurePlanSvc = procurePlanSvc; |
| | | _pdaAsnServer = pdaAsnServer; |
| | | } |
| | | #endregion |
| | | |
| | |
| | | /// <param name="model">入库单号</param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult FinishAsn(IdVm model) |
| | | public IActionResult FinishAsn(IdVm model) |
| | | { |
| | | try |
| | | { |
| | |
| | | return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); |
| | | } |
| | | |
| | | _arrivalNoticeSvc.ByPdaFinish(model.Code, model.Code.Substring(0,2) == "AS" ? _config.ErpHost + _config.AsnFinishUrl : _config.ErpHost + _config.SoFinishUrl, int.Parse(userId)); |
| | | _arrivalNoticeSvc.ByPdaFinish(model.Code, model.Code.Substring(0, 2) == "AS" ? _config.ErpHost + _config.AsnFinishUrl : _config.ErpHost + _config.SoFinishUrl, int.Parse(userId)); |
| | | |
| | | return Ok(new { code = 0, count = 0, msg = "单据复核并上传成功" }); |
| | | } |
| | |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult FinishCr(AdjustStockCheckVm model) |
| | | public async Task<IActionResult> FinishCr(AdjustStockCheckVm model) |
| | | { |
| | | try |
| | | { |
| | |
| | | { |
| | | return Ok(new { code = 1, msg = "未获取到当前操作人信息" }); |
| | | } |
| | | bool bolls = false; |
| | | //bool bolls = false; |
| | | if (model.Origin == "0") |
| | | { |
| | | bolls = _stockCheckSvc.StockAdjust(model.Id, int.Parse(userId)); |
| | | await _stockCheckSvc.StockAdjust(model.Id); |
| | | } |
| | | else |
| | | { |
| | | bolls = _stockCheckSvc.StockAdjustAuto(model.Id, int.Parse(userId)); |
| | | await _stockCheckSvc.StockAdjustAuto(model.Id); |
| | | } |
| | | 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 = "出库单关单成功但上传失败" }); |
| | | } |
| | | //系统对接后放开 |
| | | //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 = "盘点单调整失败" }); |
| | | //return Ok(new { code = 1, msg = "盘点单调整失败" }); |
| | | |
| | | } |
| | | catch (Exception e) |
| | |
| | | } |
| | | } |
| | | |
| | | //箱码信息 手持组托用 (扫箱码向追溯要信息) |
| | | // |
| | | /// <summary> |
| | | /// 箱码信息 手持组托用 (扫箱码向追溯要信息) |
| | | /// </summary> |
| | | /// <param name="model">BoxNo:箱号</param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult GetFMBindBoxInfos(string BoxNo) |
| | | { |
| | | try |
| | | { |
| | | if (string.IsNullOrWhiteSpace(BoxNo)) |
| | | { |
| | | return Ok(new { code = 1, msg = "未获取到当前请求箱码信息" }); |
| | | } |
| | | var models = _pdaAsnServer.GetFMBindBoxInfos(BoxNo); |
| | | |
| | | return Ok(new { code = 0, msg = "标签箱码信息", data = models }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | |
| | | { |
| | | SoResInfo result = _exNoticeSvc.ErpAddExportNotice(model); |
| | | return Ok(result); |
| | | |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | |
| | | /// 测试验签加密 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | [Verification] |
| | | [HttpPost] |
| | | public IActionResult Demo2(IdVm model) |
| | |
| | | } |
| | | } |
| | | |
| | | [HttpGet] |
| | | public IActionResult Demo3() |
| | | [HttpPost] |
| | | [ServiceFilter(typeof(ApiResponseActionFilter))] |
| | | [UnitOfWork] |
| | | public string Demo3(IdVm model) |
| | | { |
| | | var result = new ErpModel { Success = -1, Message = "" }; |
| | | try |
| | | { |
| | | var time = DateTimeOffset.Now.ToUnixTimeSeconds(); |
| | | result = new ErpModel { Success = 0, Message = time.ToString() }; |
| | | string jsonParams = JsonConvert.SerializeObject(model); |
| | | |
| | | return Ok(result); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | result.Message = e.Message; |
| | | return Ok(result); |
| | | } |
| | | // 生成时间戳(Unix 时间戳) |
| | | var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(); |
| | | |
| | | // 生成签名 |
| | | var signature = GenerateSignature(jsonParams); |
| | | |
| | | // 输出签名 |
| | | Console.WriteLine("Generated Signature: " + signature); |
| | | return signature; |
| | | } |
| | | |
| | | private static string GenerateSignature(string jsonParams) |
| | | { |
| | | var appKey = "90170307d4184844ac2a26b431f79981"; |
| | | // 将 JSON 字符串转换为 JObject |
| | | JObject jObject = JObject.Parse(jsonParams); |
| | | |
| | | // 过滤掉数组类型的属性 |
| | | var filteredProperties = jObject.Properties() |
| | | .Where(p => p.Value.Type != JTokenType.Array) |
| | | .ToDictionary(p => p.Name, p => p.Value.ToString()); |
| | | |
| | | // 添加时间戳(Unix 时间戳) |
| | | var timestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString(); |
| | | filteredProperties.Add("timestamp", timestamp); |
| | | filteredProperties.Add("appKey", appKey); |
| | | |
| | | // 构建待签名字符串 |
| | | var signatureBaseString = string.Join("&", filteredProperties.OrderBy(p => p.Key).Select(p => p.Key + "=" + p.Value)); |
| | | |
| | | // 计算 MD5 值 |
| | | var computedSignature = Md5Tools.CalcMd5(signatureBaseString); |
| | | return computedSignature; |
| | | } |
| | | #endregion |
| | | } |
| | | } |