| | |
| | | using 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); |
| | | |
| | | //解析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(); |