From 5f3129c47cc8d3aa9ddffb2c468d908f2416e544 Mon Sep 17 00:00:00 2001 From: chengsc <Demo@DESKTOP-CPA90BF> Date: 星期二, 27 八月 2024 11:02:12 +0800 Subject: [PATCH] 修改MES接口问题 --- Wms/WMS.Entity/SysEntity/SysToken.cs | 34 +++ Wms/Wms/Controllers/UpApiController.cs | 125 +++++++++++-- Wms/WMS.Entity/Context/DataContext.cs | 17 + Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs | 10 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 55 +++++- Wms/Wms/Tools/ApiUrlConfig.cs | 2 Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs | 2 Wms/WMS.IBLL/ISysServer/IToken.cs | 16 + Wms/Wms/Startup.cs | 3 Wms/WMS.IBLL/ISysServer/IStorageLocatServer.cs | 3 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 49 ++-- Wms/Wms/appsettings.json | 10 Wms/Wms/Controllers/SysController.cs | 11 Wms/WMS.BLL/SysServer/StorageLocatServer.cs | 20 ++ Wms/Model/InterFaceModel/AsnModels.cs | 13 + Wms/Model/InterFaceModel/HttpModel.cs | 60 ++++++ Wms/WMS.BLL/SysServer/Token.cs | 109 ++++++++++++ 17 files changed, 471 insertions(+), 68 deletions(-) diff --git a/Wms/Model/InterFaceModel/AsnModels.cs b/Wms/Model/InterFaceModel/AsnModels.cs index a2b2e43..8d13886 100644 --- a/Wms/Model/InterFaceModel/AsnModels.cs +++ b/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> diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs index 1445bc4..9040f1a 100644 --- a/Wms/Model/InterFaceModel/HttpModel.cs +++ b/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> - /// 鍙戦�佹帴鏀秏es鎺ュ彛鍙傛暟鐨刴odel + /// 鎺ユ敹mes鎺ュ彛鍙傛暟鐨刴odel /// </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> + /// 閲婃斁澶囨枡鍖哄偍浣嶇姸鎬丮odel + /// </summary> + public class UpLocateModel + { + public string WareHouseNo { get; set; } + public string LocatNo { get; set; } + public string Origin { get; set; } } #endregion diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index fa13375..5020166 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/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);//瑙f瀽杩斿洖鏁版嵁 - 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 } diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index f671968..61a35d6 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/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; diff --git a/Wms/WMS.BLL/SysServer/StorageLocatServer.cs b/Wms/WMS.BLL/SysServer/StorageLocatServer.cs index 75671e8..e87f209 100644 --- a/Wms/WMS.BLL/SysServer/StorageLocatServer.cs +++ b/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) { diff --git a/Wms/WMS.BLL/SysServer/Token.cs b/Wms/WMS.BLL/SysServer/Token.cs new file mode 100644 index 0000000..b73c03f --- /dev/null +++ b/Wms/WMS.BLL/SysServer/Token.cs @@ -0,0 +1,109 @@ +锘縰sing 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);//瑙f瀽杩斿洖鏁版嵁 + + 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 ""; + } + } + } +} diff --git a/Wms/WMS.Entity/Context/DataContext.cs b/Wms/WMS.Entity/Context/DataContext.cs index c8181fb..9271ea3 100644 --- a/Wms/WMS.Entity/Context/DataContext.cs +++ b/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; } + + } + + } diff --git a/Wms/WMS.Entity/SysEntity/SysToken.cs b/Wms/WMS.Entity/SysEntity/SysToken.cs new file mode 100644 index 0000000..f0525d7 --- /dev/null +++ b/Wms/WMS.Entity/SysEntity/SysToken.cs @@ -0,0 +1,34 @@ +锘縰sing 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; } + + } +} diff --git a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs index 366dfba..1d48688 100644 --- a/Wms/WMS.IBLL/IBllAsnServer/IArrivalNoticeServer.cs +++ b/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">鍏ュ簱鍗旾D</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 } diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs index 462db76..165a748 100644 --- a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs +++ b/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> diff --git a/Wms/WMS.IBLL/ISysServer/IStorageLocatServer.cs b/Wms/WMS.IBLL/ISysServer/IStorageLocatServer.cs index 86169c8..fe4f801 100644 --- a/Wms/WMS.IBLL/ISysServer/IStorageLocatServer.cs +++ b/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> diff --git a/Wms/WMS.IBLL/ISysServer/IToken.cs b/Wms/WMS.IBLL/ISysServer/IToken.cs new file mode 100644 index 0000000..040d73a --- /dev/null +++ b/Wms/WMS.IBLL/ISysServer/IToken.cs @@ -0,0 +1,16 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.IBLL.ISysServer +{ + public interface IToken + { + /// <summary> + /// 鑾峰彇MES鐨則oken浠ょ墝 + /// </summary> + /// <param name="url">mes鑾峰彇浠ょ墝璺緞</param> + /// <returns>token鍊�</returns> + string GetMesToken(string url); + } +} diff --git a/Wms/Wms/Controllers/SysController.cs b/Wms/Wms/Controllers/SysController.cs index 1ec3250..24560ea 100644 --- a/Wms/Wms/Controllers/SysController.cs +++ b/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 { diff --git a/Wms/Wms/Controllers/UpApiController.cs b/Wms/Wms/Controllers/UpApiController.cs index 589782f..0c805e3 100644 --- a/Wms/Wms/Controllers/UpApiController.cs +++ b/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> + /// 閲婃斁澶囨枡鍖哄偍浣嶇姸鎬丣C24 + /// </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); + } + } + //璐ㄦ缁撴灉涓嬪彂鎺ュ彛 diff --git a/Wms/Wms/Startup.cs b/Wms/Wms/Startup.cs index 378cf57..3d69d79 100644 --- a/Wms/Wms/Startup.cs +++ b/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注入 diff --git a/Wms/Wms/Tools/ApiUrlConfig.cs b/Wms/Wms/Tools/ApiUrlConfig.cs index b80fa6a..7c8a345 100644 --- a/Wms/Wms/Tools/ApiUrlConfig.cs +++ b/Wms/Wms/Tools/ApiUrlConfig.cs @@ -57,6 +57,8 @@ /// </summary> public string MesAsnFinishUrl { get; set; } + public string MesGetTokenUrl { get; set; } + #endregion #region 涓嬫父绯荤粺 diff --git a/Wms/Wms/appsettings.json b/Wms/Wms/appsettings.json index 287a51a..f7539d7 100644 --- a/Wms/Wms/appsettings.json +++ b/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" } + + } -- Gitblit v1.8.0