chengsc
2024-08-27 5f3129c47cc8d3aa9ddffb2c468d908f2416e544
修改MES接口问题
14个文件已修改
3个文件已添加
539 ■■■■ 已修改文件
Wms/Model/InterFaceModel/AsnModels.cs 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/InterFaceModel/HttpModel.cs 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/SysServer/StorageLocatServer.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/SysServer/Token.cs 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.Entity/Context/DataContext.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.Entity/SysEntity/SysToken.cs 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/ISysServer/IStorageLocatServer.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/ISysServer/IToken.cs 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/SysController.cs 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/UpApiController.cs 125 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Startup.cs 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Tools/ApiUrlConfig.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/appsettings.json 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/InterFaceModel/AsnModels.cs
@@ -5,6 +5,19 @@
namespace Model.InterFaceModel
{
    public class FinishAsnModel
    {
        /// <summary>
        /// 生产工单
        /// </summary>
        public string no { get; set; }
        /// <summary>
        /// 数量
        /// </summary>
        public decimal? qty { get; set; }
    }
    /// <summary>
    /// 入库单信息
    /// </summary>
Wms/Model/InterFaceModel/HttpModel.cs
@@ -5,6 +5,15 @@
namespace Model.InterFaceModel
{
    /// <summary>
    /// 外部系统返回参数
    /// </summary>
    public class HttpReturnModel
    {
        public string Success { get; set; }
        public string Message { get; set; }
    }
    #region Erp-Model
    /// <summary>
@@ -27,18 +36,63 @@
    #region MES-Model
    /// <summary>
    /// 发送接收mes接口参数的model
    /// 接收mes接口参数的model
    /// </summary>
    public class MesModel
    {
        /// <summary>
        /// 状态码 0 成功 -1失败
        /// </summary>
        public int Success { get; set; }
        public string status { get; set; }
        /// <summary>
        /// 信息详情
        /// </summary>
        public string Message { get; set; }
        public string message { get; set; }
    }
    /// <summary>
    /// Mes令牌Model
    /// </summary>
    public class MesTokenModel
    {
        /// <summary>
        /// 状态码 0 成功 -1失败
        /// </summary>
        public string status { get; set; }
        /// <summary>
        /// 信息详情
        /// </summary>
        public string message { get; set; }
        /// <summary>
        /// 信息详情
        /// </summary>
        public GetTokenModel Data { get; set; }
        /// <summary>
        /// 信息详情
        /// </summary>
        public string type { get; set; }
        /// <summary>
        /// 异常摘要信息【字符型】
        /// </summary>
        public string summary { get; set; }
    }
    public class GetTokenModel
    {
        public string token { get; set; }
        public string expire_time { get; set; }
    }
    /// <summary>
    /// 释放备料区储位状态Model
    /// </summary>
    public class UpLocateModel
    {
        public string WareHouseNo { get; set; }
        public string LocatNo { get; set; }
        public string Origin { get; set; }
    }
    #endregion
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -17,6 +17,7 @@
using WMS.Entity.Context;
using WMS.Entity.SysEntity;
using WMS.IBLL.IBllAsnServer;
using WMS.BLL.SysServer;
namespace WMS.BLL.BllAsnServer
{
@@ -869,11 +870,11 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public ErpModel CreateAsn(AsnInfo model)
        public HttpReturnModel HttpCreateAsn(AsnInfo model)
        {
            try
            {
                var resultModel = new ErpModel() { Success = -1, Message = "" };
                var resultModel = new HttpReturnModel() { Success = "-1", Message = "" };
                if (string.IsNullOrEmpty(model.AsnType))
                {
                    resultModel.Message = "单据类型不可为空!";
@@ -972,7 +973,7 @@
                Db.Insertable(detailModels).ExecuteCommand();
                Db.CommitTran();
                resultModel.Success = 0;
                resultModel.Success = "0";
                resultModel.Message = "成功";
                return resultModel;
            }
@@ -984,7 +985,7 @@
        }
        //订单回传上游系统
        public bool FinishAsn(int id, string erpUrl, string mesUrl, int userId)
        public bool FinishAsn(int id, string erpUrl, string mesUrl,string mesTokenUrl, int userId)
        {
            try
            {
@@ -1019,7 +1020,7 @@
                    };
                    list.Add(item);
                }
                var soInfo = new AsnInfo()
                var asnInfo = new AsnInfo()
                {
                    OrderCode = notice.OrderCode,
                    AsnDetails = list
@@ -1027,18 +1028,31 @@
                #region 通过接口发送至erp 或 mes
                //系统对接后放开
                var jsonData = JsonConvert.SerializeObject(soInfo);
                var jsonData = JsonConvert.SerializeObject(asnInfo);
                var mesList = new List<string>() { "0", "4" };  //0 成品入库 4余料退回入库
                var erpList = new List<string>() { "1", "2", "3" }; //1 采购入库  2中间品入库  3 退货入库
                if (mesList.Contains(notice.Type)) // mes 
                {
                    var response = HttpHelper.DoPost(mesUrl, jsonData, "入库单完成上传", "MES");
                    //获取令牌
                    var token = new Token().GetMesToken(mesTokenUrl);
                    Dictionary<string, string> mesDic = new Dictionary<string, string>()
                    {
                        {"Authorization",token }
                    };
                    var mesData = new FinishAsnModel()
                    {
                        no = asnInfo.OrderCode,
                        qty = asnInfo.AsnDetails.Sum(m=>m.Qty)
                    };
                    jsonData = JsonConvert.SerializeObject(mesData);
                    //调用接口
                    var response = HttpHelper.DoPost(mesUrl, jsonData, "入库单完成上传", "MES", mesDic);
                    var obj = JsonConvert.DeserializeObject<MesModel>(response);//解析返回数据
                    if (obj.Success != 0)
                    if (obj.status != "0")
                    {
                        throw new Exception("上传失败" + obj.Message);
                        throw new Exception("上传失败" + obj.message);
                    }
                }
                else if (erpList.Contains(notice.Type)) //erp  
@@ -1069,6 +1083,29 @@
            }
        }
        public void UpLocate(string wareNo,string locatNo)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(wareNo) || string.IsNullOrWhiteSpace(locatNo))
                {
                    throw new Exception("仓库或储位不能为空");
                }
                var locate = Db.Queryable<SysStorageLocat>().First(m=>m.IsDel == "0" && m.LocatNo == locatNo && m.WareHouseNo == wareNo);
                if (locate == null)
                {
                    throw new Exception("未查询到储位信息");
                }
                locate.Status = "0";//储位状态变更空储位
                Db.Updateable(locate).ExecuteCommand();
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        #endregion
    }
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -41,7 +41,7 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public bool ErpAddExportNotice(SoInfo model)
        public void HttpAddExportNotice(SoInfo model)
        {
            try
            {
@@ -226,7 +226,7 @@
                        SONo = billNo,
                        Type = model.SoType,
                        Status = "0",
                        Origin = "WMS",
                        Origin = model.Origin,
                        CustomerNo = model.Customer,
                        CustomerName = customer.CustomerName,
                        LogisticsId = logisticsId,
@@ -242,12 +242,10 @@
                    if (n <= 0 || m <= 0)
                    {
                        Db.RollbackTran();
                        return false;
                        throw new Exception("入库单或明细添加保存失败");
                    }
                    Db.CommitTran();
                    return true;
                }
                catch (Exception ex)
                {
@@ -259,7 +257,6 @@
            }
            catch (Exception ex)
            {
                Db.RollbackTran();
                throw new Exception(ex.Message);
            }
        }
@@ -363,31 +360,31 @@
                    .LeftJoin<SysUserInfor>((a, b, c, d, e) => a.CheckUser == e.Id)
                    .Select((a, b, c, d, e) => new ExportNoticeDto()
                    {
                        Id = a.Id,
                        SONo = a.SONo,
                        Type = a.Type,
                        Status = a.Status,
                        Origin = a.Origin,
                        CustomerNo = a.CustomerNo,
                        CustomerName = a.CustomerName,
                        LotNo = a.LotNo,
                        LotText = a.LotText,
                        SupplierLot = a.SupplierLot,
                        LogisticsId = a.LogisticsId,
                        //Id = a.Id,
                        //SONo = a.SONo,
                        //Type = a.Type,
                        //Status = a.Status,
                        //Origin = a.Origin,
                        //CustomerNo = a.CustomerNo,
                        //CustomerName = a.CustomerName,
                        //LotNo = a.LotNo,
                        //LotText = a.LotText,
                        //SupplierLot = a.SupplierLot,
                        //LogisticsId = a.LogisticsId,
                        LogisticsName = b.CarrierName,
                        IsWave = a.IsWave,
                        WaveNo = a.WaveNo,
                        IsDespatch = a.IsDespatch,
                        Demo = a.Demo,
                        //IsWave = a.IsWave,
                        //WaveNo = a.WaveNo,
                        //IsDespatch = a.IsDespatch,
                        //Demo = a.Demo,
                        CreateUserName = c.RealName,
                        UpdateUserName = c.RealName,
                        CreateTime = a.CreateTime,
                        UpdateTime = a.UpdateTime,
                        //CreateTime = a.CreateTime,
                        //UpdateTime = a.UpdateTime,
                        CheckUserName = e.RealName,
                        CheckTime = a.CheckTime
                    })
                        //CheckTime = a.CheckTime
                    },true)
                    .OrderByDescending(a => a.CreateTime)
                    .ToOffsetPage(page, limit, ref total);
                count = total;
Wms/WMS.BLL/SysServer/StorageLocatServer.cs
@@ -110,6 +110,7 @@
            try
            {
                var data = LocatRst.GetOneById(id);
                //var data = Db.Queryable<SysStorageLocat>().First(m=>m.Id == id);
                return data;
            }
            catch (Exception e)
@@ -118,7 +119,24 @@
                throw;
            }
        }
        public List<SysStorageLocat> GetStorageLocat(List<int> id)
        {
            try
            {
                var SysStorageLocats = new List<SysStorageLocat>();
                foreach (var item in id)
                {
                    var storage = LocatRst.GetOneById(item);
                    SysStorageLocats.Add(storage);
                }
                return SysStorageLocats;
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
        public bool EditStorageLocat(EditLocateVm model, int userId)
        {
Wms/WMS.BLL/SysServer/Token.cs
New file
@@ -0,0 +1,109 @@
using Microsoft.IdentityModel.Protocols;
using Model.InterFaceModel;
using Newtonsoft.Json;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Policy;
using System.Text;
using Utility.Tools;
using WMS.DAL;
using WMS.Entity.Context;
using WMS.Entity.SysEntity;
using WMS.IBLL.ISysServer;
namespace WMS.BLL.SysServer
{
    public class Token : DbHelper<SysToken>,IToken
    {
        private static readonly SqlSugarScope Db = DataContext.Db;
        public Token() : base(Db)
        {
        }
        public string GetMesToken(string url)
        {
            try
            {
                var str = "";
                //首先判断系统内是否有token值,效期是否失效
                var sysToken = Db.Queryable<SysToken>().First(m => m.IsDel == "0" && m.SystemName == "MES");
                if (sysToken != null && !string.IsNullOrWhiteSpace(sysToken.Token) && sysToken.ExpireTime > DateTime.Now)
                {
                    str = sysToken.Token;
                    return str;  //返回token值
                }
                #region 获取新的令牌
                var user = MesConfig.MesUser;
                var pass = MesConfig.MesPassWord;
                var secretKey = Md5Tools.CalcMd5(pass);
                var nonce = Guid.NewGuid().ToString("N");
                var timestamp = DateTimeOffset.Now.ToUnixTimeSeconds().ToString();
                var info = new string[] { user, secretKey, nonce, timestamp };
                Array.Sort(info,string.CompareOrdinal); //ASCII排序
                var miyao = string.Join("", info); //数组转换成字符串
                var sign = Md5Tools.CalcMd5(miyao);  //签名
                var data = new
                {
                    user = user,
                    nonce = nonce,
                    timestamp = timestamp,
                    sign = sign,
                    jwt = true,      //是否返回JWT令牌
                };
                #endregion
                #region 通过接口发送至erp 或 mes
                //系统对接后放开
                var jsonData = JsonConvert.SerializeObject(data);
                var response = HttpHelper.DoPost(url, jsonData, "MES申请获取令牌", "MES");
                var obj = JsonConvert.DeserializeObject<MesTokenModel>(response);//解析返回数据
                if (obj.status != "success")
                {
                    throw new Exception("上传失败" + obj.message);
                }
                else
                {
                    var token = obj.Data.token;
                    var expireTime = obj.Data.expire_time;
                    var time = DateTime.Now.AddMilliseconds(double.Parse(expireTime));
                    if (sysToken == null)//添加
                    {
                        var addToken = new SysToken()
                        {
                            SystemName = "MES",
                            Token = token,
                            ExpireTime = time,
                            CreateUser = 0
                        };
                        Db.Insertable(addToken).ExecuteCommand();
                        return token;
                    }
                    else //修改
                    {
                        sysToken.Token = token;
                        sysToken.ExpireTime = time;
                        sysToken.UpdateTime = DateTime.Now;
                        Db.Updateable(sysToken).ExecuteCommand();
                        return token;
                    }
                }
                #endregion
            }
            catch (Exception)
            {
                return "";
            }
        }
    }
}
Wms/WMS.Entity/Context/DataContext.cs
@@ -98,4 +98,21 @@
        public static string ConnectionString { get; set; }
    }
    /// <summary>
    /// MES获取令牌账号密码
    /// </summary>
    public class MesConfig
    {
        /// <summary>
        /// 账号
        /// </summary>
        public static string MesUser { get; set; }
        /// <summary>
        /// 密码
        /// </summary>
        public static string MesPassWord { get; set; }
    }
}
Wms/WMS.Entity/SysEntity/SysToken.cs
New file
@@ -0,0 +1,34 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.Entity.SysEntity
{
    /// <summary>
    /// 外部系统token令牌效期表
    /// </summary>
    [SugarTable("SysToken")]
    public class SysToken : BaseEntity
    {
        /// <summary>
        /// 外部系统名称
        /// Nullable:False
        /// </summary>
        public string SystemName { get; set; }
        /// <summary>
        /// token值
        /// Nullable:True
        /// </summary>
        public string Token { get; set; }
        /// <summary>
        /// 有效期
        /// Nullable:true
        /// </summary>
        public DateTime? ExpireTime { get; set; }
    }
}
Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs
@@ -93,15 +93,19 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        ErpModel CreateAsn(AsnInfo model);
        HttpReturnModel HttpCreateAsn(AsnInfo model);
        /// <summary>
        /// 订单回传上游系统
        /// </summary>
        /// <param name="id">入库单ID</param>
        /// <param name="url">上传路径</param>
        /// <param name="erpurl">上传路径</param>
        /// <param name="mesUrl">上传路径</param>
        /// <param name="mesTokenUrl">mes获取令牌路径</param>
        /// <param name="userId">操作人</param>
        /// <returns></returns>
        bool FinishAsn(int id, string erpurl, string mesUrl, int userId);
        bool FinishAsn(int id, string erpurl, string mesUrl,string mesTokenUrl, int userId);
        void UpLocate(string wareNo, string locatNo);
        #endregion
    }
Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs
@@ -15,7 +15,7 @@
        /// </summary>
        /// <param name="model">模型</param>
        /// <returns></returns>
        bool ErpAddExportNotice(SoInfo model);
        void HttpAddExportNotice(SoInfo model);
        /// <summary>
        /// 获取执行完成的单据发送至erp
        /// </summary>
Wms/WMS.IBLL/ISysServer/IStorageLocatServer.cs
@@ -34,6 +34,9 @@
        /// <param name="id"></param>
        /// <returns></returns>
        SysStorageLocat GetStorageLocat(int id);
        List<SysStorageLocat> GetStorageLocat(List<int> id);
        /// <summary>
        /// 编辑储位信息
        /// </summary>
Wms/WMS.IBLL/ISysServer/IToken.cs
New file
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace WMS.IBLL.ISysServer
{
    public interface IToken
    {
        /// <summary>
        /// 获取MES的token令牌
        /// </summary>
        /// <param name="url">mes获取令牌路径</param>
        /// <returns>token值</returns>
        string GetMesToken(string url);
    }
}
Wms/Wms/Controllers/SysController.cs
@@ -1226,11 +1226,16 @@
                        string msg = "储位状态 储位号:" + storage.RoadwayNo;
                        if (model.Id.Count > 1)
                        {
                            foreach (var item in model.Id)
                            var sstorage = _locatSvc.GetStorageLocat(model.Id);
                            foreach (var item in sstorage)
                            {
                                storage = _locatSvc.GetStorageLocat(item);
                                _operation.InsertOperation("仓库设置", "储位管理", storage.LocatNo, "批量编辑", "批量修改储位信息 储位号:" + storage.LocatNo, Convert.ToInt32(userId));
                                _operation.InsertOperation("仓库设置", "储位管理", item.LocatNo, "批量编辑", "批量修改储位信息 储位号:" + item.LocatNo, Convert.ToInt32(userId));
                            }
                            //foreach (var item in model.Id)
                            //{
                            //    storage = _locatSvc.GetStorageLocat(item);
                            //    _operation.InsertOperation("仓库设置", "储位管理", storage.LocatNo, "批量编辑", "批量修改储位信息 储位号:" + storage.LocatNo, Convert.ToInt32(userId));
                            //}
                        }
                        else
                        {
Wms/Wms/Controllers/UpApiController.cs
@@ -12,6 +12,7 @@
using WMS.IBLL.IBllAsnServer;
using WMS.IBLL.IBllCheckServer;
using Model.ModelVm.BllCheckVm;
using Microsoft.Extensions.Logging;
namespace Wms.Controllers
{
@@ -88,7 +89,7 @@
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _arrivalNoticeSvc.FinishAsn(model.Id, _config.ErpHost + _config.AsnFinishUrl, _config.MesHost + _config.MesAsnFinishUrl, int.Parse(userId));
                _arrivalNoticeSvc.FinishAsn(model.Id, _config.ErpHost + _config.AsnFinishUrl, _config.MesHost + _config.MesAsnFinishUrl, _config.MesHost + _config.MesGetTokenUrl, int.Parse(userId));
                return Ok(new { code = 0, count = 0, msg = "入库单复核并上传成功" });
            }
@@ -223,27 +224,42 @@
        [HttpPost]
        public IActionResult CreateAsn(AsnInfo model)
        {
            var result = new ErpModel { Success = -1, Message = "" };
            var result = new HttpReturnModel { Success = "-1", Message = "" };
            var logStr = "";
            if (model.Origin == "MES")
            {
                logStr = $@".\log\MES\入库单下发" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            }
            else if (model.Origin == "ERP")
            {
                logStr = $@".\log\ERP\入库单下发" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            }
            try
            {
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                //log日志记录
                if (logStr != "")
                {
                    throw new Exception("未获取到用户信息");
                }
                string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(UserId))
                {
                    throw new Exception("未获取到用户信息");
                    var jsonData = JsonConvert.SerializeObject(model);
                    LogFile.SaveLogToFile($"入库单下发:( {jsonData} ),", logStr);
                }
                result = _arrivalNoticeSvc.CreateAsn(model);
                result = _arrivalNoticeSvc.HttpCreateAsn(model);
                if (logStr != "")
                {
                    var jsonData = JsonConvert.SerializeObject(result);
                    LogFile.SaveLogToFile($"入库单下发返回参数:( {jsonData} ),", logStr);
                }
                return Ok(result);
            }
            catch (Exception e)
            {
                result.Message = e.Message;
                if (logStr != "")
                {
                    var jsonData = JsonConvert.SerializeObject(result);
                    LogFile.SaveLogToFile($"入库单下发返回参数:( {jsonData} ),", logStr);
                }
                return Ok(result);
            }
        }
@@ -256,26 +272,95 @@
        [HttpPost]
        public IActionResult CreateSo(SoInfo model)
        {
            var logStr = "";
            if (model.Origin == "MES")
            {
                logStr = $@".\log\MES\出库单下发" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            }
            else if(model.Origin == "ERP")
            {
                logStr = $@".\log\ERP\出库单下发" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            }
            try
            {
                var bl = _exNoticeSvc.ErpAddExportNotice(model);
                if (bl)
            {
                //log日志记录
                if (logStr!="")
                {
                    return Ok(new ErpModel { Success = 0, Message = "成功"});
                    var jsonData = JsonConvert.SerializeObject(model);
                    LogFile.SaveLogToFile($"出库单下发:( {jsonData} ),", logStr);
                }
                else
                _exNoticeSvc.HttpAddExportNotice(model);
                var data = new HttpReturnModel { Success = "0", Message = "成功" };
                if (logStr != "")
                {
                    return Ok(new ErpModel { Success = -1, Message = "失败" });
                    var jsonData = JsonConvert.SerializeObject(data);
                    LogFile.SaveLogToFile($"出库单下发返回参数:( {jsonData} ),", logStr);
                }
                return Ok(data);
                
            }
            catch (Exception e)
            {
                return Ok(new ErpModel { Success = -1, Message = e.Message });
                var data = new HttpReturnModel { Success = "-1", Message = "失败"+e.Message };
                if (logStr != "")
                {
                    var jsonData = JsonConvert.SerializeObject(data);
                    LogFile.SaveLogToFile($"出库单下发返回参数:( {jsonData} ),", logStr);
                }
                return Ok(data);
            }
        }
        //箱码信息 手持组托用 (赋码或追溯下发到wms)
        /// <summary>
        /// 释放备料区储位状态JC24
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public IActionResult UpLocate(UpLocateModel model)
        {
            //记录log
            var logStr = "";
            if (model.Origin == "MES")
            {
                logStr = $@".\log\MES\释放备料区储位状态" + DateTime.Now.ToString("yyyyMMdd") + ".txt";
            }
            try
            {
                if (logStr != "")
                {
                    var jsonData = JsonConvert.SerializeObject(model);
                    LogFile.SaveLogToFile($"释放备料区储位状态:( {jsonData} ),", logStr);
                }
                _arrivalNoticeSvc.UpLocate(model.WareHouseNo,model.LocatNo);
                var data = new HttpReturnModel { Success = "0", Message = "成功" };
                if (logStr != "")
                {
                    var jsonData = JsonConvert.SerializeObject(data);
                    LogFile.SaveLogToFile($"释放备料区储位状态返回参数:( {jsonData} ),", logStr);
                }
                return Ok(data);
            }
            catch (Exception e)
            {
                var data = new HttpReturnModel { Success = "0", Message = "失败:" + e.Message };
                if (logStr != "")
                {
                    var jsonData = JsonConvert.SerializeObject(data);
                    LogFile.SaveLogToFile($"释放备料区储位状态返回参数:( {jsonData} ),", logStr);
                }
                return Ok(data);
            }
        }
        //质检结果下发接口 
Wms/Wms/Startup.cs
@@ -97,6 +97,9 @@
            services.Configure<ApiUrlConfig>(Configuration.GetSection("ApiUrlConfig"));
            //数据库配置
            BaseDbConfig.ConnectionString = Configuration.GetSection("AppSettings:ConnectionString").Value;
            //MES账号密码
            MesConfig.MesUser = Configuration.GetSection("MesConfig:MesUser").Value;
            MesConfig.MesPassWord = Configuration.GetSection("MesConfig:MesPassWord").Value;
            #region AutoMapper注入
Wms/Wms/Tools/ApiUrlConfig.cs
@@ -57,6 +57,8 @@
        /// </summary>
        public string MesAsnFinishUrl { get; set; }
        public string MesGetTokenUrl { get; set; }
        #endregion
        #region 下游系统
Wms/Wms/appsettings.json
@@ -39,8 +39,8 @@
    "GetBoxUrl": "/api/wmsInterface/OutStockTask", //获取箱码信息
    //MES
    "MesAsnFinishUrl": "/api/wmsInterface/OutStockTask",//入库单关单
    "MesAsnFinishUrl": "/port/mes/service/mes/save_worder_feedback", //入库单关单
    "MesGetTokenUrl": "/port/mes/service/system/sign_login", //获取令牌
    // 赋码
@@ -48,5 +48,11 @@
    "GenAgvSchedulingTask": "http://IP:PORT/rcms/services/rest/hikRpcService/genAgvSchedulingTask", //生成任务单接口
    "ContinueTask": "http://IP:PORT/rcms/services/rest/hikRpcService/continueTask", //继续执行任务接口
    "GenPreScheduleTask": "http://IP:PORT/rcms/services/rest/hikRpcService/genPreScheduleTask" // 预调度对外接口
  },
  "MesConfig": {
    "MesUser": "wms",
    "MesPassWord": "wmS@2024"
  }
}