From f26b99b11db7d779494a5f111b05dd8f5d55bf9c Mon Sep 17 00:00:00 2001 From: 啊鑫 <t2856754968@163.com> Date: 星期三, 20 十一月 2024 13:12:52 +0800 Subject: [PATCH] 消息中心推送消息的逻辑修改 --- service/base/GetErpParametersServer.cs | 149 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 146 insertions(+), 3 deletions(-) diff --git a/service/base/GetErpParametersServer.cs b/service/base/GetErpParametersServer.cs index 1960d02..dedcba0 100644 --- a/service/base/GetErpParametersServer.cs +++ b/service/base/GetErpParametersServer.cs @@ -1,20 +1,163 @@ 锘縰sing System.Text; +using System.Web; +using NewPdaSqlServer.Dto.service; using NewPdaSqlServer.entity; +using NewPdaSqlServer.service.Warehouse; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; namespace NewPdaSqlServer.service.@base; public class GetErpParametersServer { - // private readonly MesInvItemInCDetailsManager _invItemInCDetailsServer = - // new(); - // + private readonly MesInvItemInCDetailsManager _invItemInCDetailsServer = + new(); + // private readonly MesInvItemOutsManager _invItemOutsServer = // new(); private readonly MessageCenterManager _messageCenterServer = new(); + public string Resend(MessageCenter data) + { + //鑾峰彇鎵�鏈夌殑鍥炶皟 + var messageCenters = + _messageCenterServer.GetList(it => it.Pid == data.Guid); + messageCenters.Add(data); + var erpParameters = GetErpParameters(messageCenters); + + return sendHttp(erpParameters).Result; + } + + private List<MessageCenter> GetErpParameters(List<MessageCenter> data) + { + var centers = new List<MessageCenter>(); + + //鑾峰彇涓昏姹� + var center = data.Find(p => p.Seq == 1); + + //瑙f瀽URL + var queryString = + center.PageName.Substring(center.PageName.IndexOf('?') + 1); + //鎻愬彇鍙傛暟 + var queryParameters = HttpUtility.ParseQueryString(queryString); + + var strings = center.TableName.Split("_"); + + var centerUpdateBy = center.UpdateBy; + var centerUpdateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + MessageCenter mesToErp = null; + var query = new WarehouseQuery(); + switch (center.TableName) + { + //閲囪喘鍏ュ簱鍗曞鏍� + case "MES_INV_ITEM_INS_A": + //閲囪喘鍏ュ簱鍗曞弽瀹℃牳 + case "MES_INV_ITEM_INS_B": + + //鑾峰彇鍒扮被鍨嬶紙瀹℃牳杩樻槸鍙嶅鏍革級 + query.Type = strings[^1]; + //鑾峰彇url涓檮甯︾殑鍙傛暟 + query.id = queryParameters["id"]; + query.billNo = queryParameters["billNo"]; + query.userName = centerUpdateBy; + //閲嶆柊鑾峰彇璇锋眰鐨勬暟鎹� + mesToErp = _invItemInCDetailsServer.MesToErpParam(query); + //璧嬪�间富id + mesToErp.Guid = center.Guid; + mesToErp.UpdateBy = centerUpdateBy; + mesToErp.UpdateDate = centerUpdateDate; + centers.Add(mesToErp); + + //鏇存柊鍓╀笅鐨勮姹傜殑鍙傛暟 + var messageCenter = data[0]; + var json = new JObject + { + new JProperty("id", query.id), + new JProperty("billNo", query.billNo), + new JProperty("userName", query.userName) + }; + messageCenter.Data = json.ToString(); + messageCenter.UpdateBy = centerUpdateBy; + messageCenter.UpdateDate = centerUpdateDate; + centers.Add(messageCenter); + + break; + + //閲囪喘閫�鏂欏崟瀹℃牳 + case "MES_INV_ITEM_OUTS_A": + //閲囪喘閫�鏂欏崟鍙嶅鏍� + case "MES_INV_ITEM_OUTS_B": + + //鑾峰彇鍒扮被鍨嬶紙瀹℃牳杩樻槸鍙嶅鏍革級 + query.Type = strings[^1]; + query.id = queryParameters["id"]; + query.billNo = queryParameters["itemOutNo"]; + query.userName = centerUpdateBy; + + //閲嶆柊鑾峰彇璇锋眰鐨勬暟鎹� + // mesToErp = _invItemOutsServer.MesToErpParam(query); + //鏇存涓轰富id + mesToErp.Guid = center.Guid; + mesToErp.UpdateBy = centerUpdateBy; + mesToErp.UpdateDate = centerUpdateDate; + //娣诲姞鍒拌姹傞泦鍚堜腑 + centers.Add(mesToErp); + + //鑾峰彇鍓╀綑鐨勮姹� + PostRequest(data, query, centers, centerUpdateDate); + break; + //鐢熶骇棰嗘枡鍗� + case "INV_ITEM_OUTS_A": + //鑾峰彇鍒扮被鍨嬶紙瀹℃牳杩樻槸鍙嶅鏍革級 + query.Type = strings[^1]; + query.id = queryParameters["id"]; + query.billNo = queryParameters["itemOutNo"]; + query.userName = centerUpdateBy; + + //閲嶆柊鑾峰彇璇锋眰鐨勬暟鎹� + //mesToErp = _invItemOutsServer.ProductionMesToErpParam(query); + //鏇存涓轰富id + mesToErp.Guid = center.Guid; + mesToErp.UpdateBy = centerUpdateBy; + mesToErp.UpdateDate = centerUpdateDate; + //娣诲姞鍒拌姹傞泦鍚堜腑 + centers.Add(mesToErp); + + //鑾峰彇鍓╀綑鐨勮姹� + PostRequest(data, query, centers, centerUpdateDate); + break; + default: + throw new Exception("鏃犳硶璇嗗埆TableName绫诲瀷"); + } + + //鏍规嵁椤哄簭杩斿洖 + return centers.OrderBy(p => p.Seq).ToList(); + } + + + private void PostRequest(List<MessageCenter> data, WarehouseQuery query, + List<MessageCenter> centers, string centerUpdateDate) + { + var find = data.FindAll(s => s.Seq != 1); + + var result = new JObject + { + new JProperty("id", query.id), + new JProperty("billNo", query.billNo), + new JProperty("userName", query.userName) + }; + find.ForEach(s => + { + s.Data = result.ToString(); + s.UpdateBy = query.userName; + s.UpdateDate = centerUpdateDate; + centers.Add(s); + }); + } + private async Task<string> sendHttp(List<MessageCenter> requestList) { var sortedRequests = requestList.OrderBy(r => r.Seq).ToList(); -- Gitblit v1.9.3