hudong
2025-05-09 da4b61f0701712e4a381974cf18b30ce56a288c4
api/WmsSpaHelper.cs
@@ -33,6 +33,7 @@
using WHTest;
using System.Net;
using SqlSugar;
using static HH.WCS.Mobox3.pinggao.models.SapRoot.GYSDto;
namespace HH.WCS.Mobox3.pinggao.api
{
@@ -653,6 +654,7 @@
            }
            return simpleResults;
        }
        /// <summary>
        /// sap-wms生产订单信息添加SimpleResult
        /// </summary>
@@ -706,7 +708,7 @@
                        iTEM.SCDDH = item.SCDDH;
                        iTEM.GC = item.GC;
                        iTEM.MSGCODE = "1";
                        iTEM.MSGDESP = $"{item.SCDDH}不存在";
                        iTEM.MSGDESP = $"{item.SCDDH}已存在";
                        tEMs.Add(iTEM);
                    }
                    iTEM.SCDDH = item.SCDDH;
@@ -1743,7 +1745,7 @@
                    return result;
                }
                po.S_OUT_TYPE = "成本中心出库";
                //根据不同出库类型 回调sap
                if (po.S_OUT_TYPE == "冲销出库")
                {
@@ -1938,18 +1940,20 @@
                        ckbitem.PC = podetail?.S_BATCH_NO;
                        List<CBcenterBackDto.ITEM> listitem1 = new List<CBcenterBackDto.ITEM>();
                        CBcenterBackDto.ITEM listitem1 = new CBcenterBackDto.ITEM();
                      //  List<CBcenterBackDto.ITEM> listitem1 = new List<CBcenterBackDto.ITEM>();
                        //string[] xlhValues = item.S_SERIAL_NO.Split(',');
                        //var serialNos = string.Join(",", CntrItemRels
                        //                .Where(s => s.S_ITEM_CODE == item.item_code)
                        //                .Select(s => s.S_SERIAL_NO));
                        //string[] xlhValues = serialNos.Split(',');
                        string[] xlhValues = item.S_SERIAL_NO.Split(',');
                        foreach (var xlhValue in xlhValues)
                        {
                            CBcenterBackDto.ITEM newItem = new CBcenterBackDto.ITEM { XLH = xlhValue };
                            listitem1.Add(newItem);
                        }
                        listitem1.XLH= podetail?.S_SERIAL_NO.Split(',').ToList();
                        //foreach (var xlhValue in xlhValues)
                        //{
                        //    CBcenterBackDto.ITEM newItem = new CBcenterBackDto.ITEM { XLH = xlhValue };
                        //    listitem1.Add(newItem);
                        //}
                        ckbitem.ITEM = listitem1;
                        iTEMs.Add(ckbitem);
@@ -1964,21 +1968,37 @@
                    string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
                    LogHelper.Info($"成本中心出库xml数据{xml}");
                    // 创建 StringContent 并指定媒体类型为 "text/xml"
                    HttpContent content = new StringContent(xml, Encoding.UTF8, "application/xml");
                    string url = Settings.WCSSeverUrl + "/api/WmsSap/cesReceiveXmlData";
                    string responseXml = "";
                    using (HttpClient client = new HttpClient())
                    {
                        // 发送 POST 请求并接收响应
                        HttpResponseMessage responsess = await client.PostAsync(url, content);
                        responseXml = await responsess.Content.ReadAsStringAsync();
                    //// 创建 StringContent 并指定媒体类型为 "text/xml"
                    //HttpContent content = new StringContent(xml, Encoding.UTF8, "application/xml");
                    //string url = Settings.WCSSeverUrl + "/api/WmsSap/cesReceiveXmlData";
                    //string responseXml = "";
                    //using (HttpClient client = new HttpClient())
                    //{
                    //    // 发送 POST 请求并接收响应
                    //    HttpResponseMessage responsess = await client.PostAsync(url, content);
                    //    responseXml = await responsess.Content.ReadAsStringAsync();
                    }
                    //}
                    #region sap回调
                    // 创建Web Service代理类实例
                    ZSCM2_CBZX service = new ZSCM2_CBZX();
                    //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                    // 准备请求参数
                    ZfmScm2CbzxMm001 request = new ZfmScm2CbzxMm001();
                    request.Input = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + xml;
                    LogHelper.Info($"成本中心出库SAP回调");
                    // 调用Web Service
                    ZfmScm2CbzxMm001Response responses = service.ZfmScm2CbzxMm001(request);
                    // 处理响应
                    LogHelper.Info("SAP返回结果: " + responses.Output);
                    // 解析Output中的凭证号等信息
                    #endregion
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(responseXml.ToString());
                    xmlDoc.LoadXml(responses.Output.ToString());
                    JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
                    var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(jsonObject.ToString());
                    //添加凭证记录表
@@ -2050,14 +2070,7 @@
                        {
                            HEAD = new JHWBackDto.HEAD
                            {
                                //KEY = "KeyExample",
                                //GZRQ = "2023-04-01",
                                //PZZDRQ = "2023-04-02",
                                //YHM = "Username",
                                //PZTTWB = "HeaderText",
                                //YDLX = "MovementType",
                                //TSKCBS = "SpecialStock"
                                KEY = po.S_NO,
                                GZRQ = GZRQ,
                                PZZDRQ = PZZDRQ,
@@ -2082,9 +2095,7 @@
                        JHWBackDto.ITEM ckbitem = new JHWBackDto.ITEM();
                        ckbitem.WLBH = item.item_code;
                        ckbitem.GC = po.S_FACTORY;
                        //ckbitem.PH = podetail?.S_PH;
                        //ckbitem.TSKCBS = podetail?.S_TSKCBS;
                        ckbitem.XSDD = podetail?.S_XSDD;
                        ckbitem.XSDDHXM = podetail?.S_XSDDXMBH;
@@ -2095,7 +2106,6 @@
                        ckbitem.WBS = podetail?.S_WBS;
                        ckbitem.KCDD = podetail?.S_KCDD;
                        ckbitem.PC = podetail?.S_BATCH_NO;
                        JHWBackDto.ITEM1 listitem1 = new JHWBackDto.ITEM1();
                        //string[] xlhValues = item.S_SERIAL_NO.Split(',');
                        //var serialNos = string.Join(",", CntrItemRels
@@ -2136,20 +2146,36 @@
                    LogHelper.Info($"出计划外发料出库xml数据{xml}");
                    // 创建 StringContent 并指定媒体类型为 "text/xml"
                    HttpContent content = new StringContent(xml, Encoding.UTF8, "application/xml");
                    string url = Settings.WCSSeverUrl + "/api/WmsSap/cesReceiveXmlData";
                    string responseXml = "";
                    using (HttpClient client = new HttpClient())
                    {
                        // 发送 POST 请求并接收响应
                        HttpResponseMessage responsess = await client.PostAsync(url, content);
                        responseXml = await responsess.Content.ReadAsStringAsync();
                    //HttpContent content = new StringContent(xml, Encoding.UTF8, "application/xml");
                    //string url = Settings.WCSSeverUrl + "/api/WmsSap/cesReceiveXmlData";
                    //string responseXml = "";
                    //using (HttpClient client = new HttpClient())
                    //{
                    //    // 发送 POST 请求并接收响应
                    //    HttpResponseMessage responsess = await client.PostAsync(url, content);
                    //    responseXml = await responsess.Content.ReadAsStringAsync();
                    }
                    //}
                    #region sap回调
                    // 创建Web Service代理类实例
                    ZSCM2_SCFLJHW service = new ZSCM2_SCFLJHW();
                    //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                    // 准备请求参数
                    ZscmScflJhw request = new ZscmScflJhw();
                    request.Input = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + xml;
                    LogHelper.Info($"计划外SAP回调");
                    // 调用Web Service
                    ZscmScflJhwResponse responses = service.ZscmScflJhw(request);
                    // 处理响应
                    LogHelper.Info("SAP返回结果: " + responses.Output);
                    // 解析Output中的凭证号等信息
                    #endregion
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(responseXml.ToString());
                    xmlDoc.LoadXml(responses.Output.ToString());
                    JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
                    var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(jsonObject.ToString());
                    //添加凭证记录表
@@ -2391,18 +2417,18 @@
                        ckbitem.GC = po.S_FACTORY;
                        ckbitem.KCDD = podetail?.S_KCDD;
                        List<CkBcakDto.ITEM1> listitem1 = new List<CkBcakDto.ITEM1>();
                        CkBcakDto.ITEM1 listitem1 = new CkBcakDto.ITEM1();
                        //var CntrItemRels = db.Queryable<CntrItemRel>().Where(a => a.S_ITEM_CODE == item.item_code&&a.N_ROW_NO==item.N_ROW_NO).ToList();
                        ////string[] xlhValues = item.S_SERIAL_NO.Split(',');
                        //var serialNos = string.Join(",", CntrItemRels
                        //                    .Where(s => s.S_ITEM_CODE == item.item_code)
                        //                    .Select(s => s.S_SERIAL_NO));
                        string[] xlhValues = item.S_SERIAL_NO.Split(',');
                        foreach (var xlhValue in xlhValues)
                        {
                            CkBcakDto.ITEM1 newItem = new CkBcakDto.ITEM1 { XLH = xlhValue };
                            listitem1.Add(newItem);
                        }
                        listitem1.XLH = podetail?.S_SERIAL_NO.Split(',').ToList();
                        //foreach (var xlhValue in xlhValues)
                        //{
                        //    CkBcakDto.ITEM1 newItem = new CkBcakDto.ITEM1 { XLH = xlhValue };
                        //    listitem1.Add(newItem);
                        //}
                        ckbitem.ITEM1 = listitem1;
                        iTEMs.Add(ckbitem);
@@ -3531,15 +3557,13 @@
                            JHWBackDto.ITEM ckbitem = new JHWBackDto.ITEM();
                            ckbitem.WLBH = item.S_ITEM_CODE;
                            ckbitem.GC = po.S_FACTORY;
                           //ckbitem.PH = podetail?.S_PH;
                           // ckbitem.TSKCBS = podetail?.S_TSKCBS;
                            ckbitem.XSDD = podetail?.S_XSDD;
                            ckbitem.XSDDHXM = podetail?.S_XSDDXMBH;
                            ckbitem.SL = item.F_QTY;
                            ckbitem.DW = podetail?.S_UOM;
                            ckbitem.DDH = podetail?.S_DDH;
                            //ckbitem.PH = podetail?.S_PH;
                            // ckbitem.TSKCBS = podetail?.S_TSKCBS;
                            //ckbitem.DDHXM = (podetail?.N_ROW_NO);
                            ckbitem.WBS = podetail?.S_WBS;
                            ckbitem.KCDD = podetail?.S_KCDD;