api/WmsSpaHelper.cs
@@ -34,6 +34,7 @@
using System.Net;
using SqlSugar;
using static HH.WCS.Mobox3.pinggao.models.SapRoot.GYSDto;
using System.Web.Services.Protocols;
namespace HH.WCS.Mobox3.pinggao.api
{
@@ -821,17 +822,28 @@
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        internal static SimpleResult Mater_In(MaterDto.Root model)
        internal static WLReturnRoot.Root Mater_In(MaterDto.Root model)
        {
            var db = new SqlHelper<object>().GetInstance();
            var result = new SimpleResult();
            result.resultMsg = "成功";
            try
            var response = new WLReturnRoot.Root
            {
                db.BeginTran();
                List<TN_Material> list = new List<TN_Material>();
                foreach (var item in model.ROOT.ITEM)
                ROOT = new WLReturnRoot.ROOT
                {
                    ITEM = new List<WLReturnRoot.ITEM>
                    {
                    }
                }
            };
            db.BeginTran();
            List<WLReturnRoot.ITEM> list = new List<WLReturnRoot.ITEM>();
            foreach (var item in model.ROOT.ITEM)
            {
                try
                {
                    var result = new WLReturnRoot.ITEM();
                    var materlist = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == item.WLBM).First();
                    if (materlist == null)
                    {
@@ -849,20 +861,54 @@
                        tN_Material.S_CPZ = item.CPZ;
                        tN_Material.S_CPZMS = item.CPZMS;
                        tN_Material.S_ITEM_NAME = item.VTEXT;
                        list.Add(tN_Material);
                        db.Insertable<TN_Material>(tN_Material).ExecuteCommand();
                        result.MSGDESP = "成功";
                        result.MSGCODE = 0;
                        result.GCBM = item.GCBM;
                        result.WLBM = item.WLBM;
                        list.Add(result);
                    }
                    else
                    {
                        materlist.S_ITEM_CODE = item.WLBM;
                        materlist.S_GCBM = item.GCBM;
                        materlist.S_WLZBM = item.WLZBM;
                        materlist.S_WLZMS = item.WLZMS;
                        materlist.S_WLLX = item.WLLX;
                        materlist.S_WLMS = item.WLMS;
                        materlist.S_WLCMS = item.WLCMS;
                        materlist.S_DWBM = item.DWBM;
                        materlist.S_DWMS = item.DWMS;
                        materlist.S_JBM = item.JBM;
                        materlist.S_CPZ = item.CPZ;
                        materlist.S_CPZMS = item.CPZMS;
                        materlist.S_ITEM_NAME = item.VTEXT;
                        db.Updateable<TN_Material>(materlist).ExecuteCommand();
                        result.MSGDESP = "成功";
                        result.MSGCODE = 0;
                        result.GCBM = item.GCBM;
                        result.WLBM = item.WLBM;
                        list.Add(result);
                    }
                }
                db.Insertable<TN_Material>(list).ExecuteCommand();
                db.CommitTran();
                catch (Exception e)
                {
                    var result = new WLReturnRoot.ITEM();
                    result.MSGDESP = e.Message;
                    result.MSGCODE = 1;
                    result.GCBM = item.GCBM;
                    result.WLBM = item.WLBM;
                    list.Add(result);
                    db.RollbackTran();
                    throw;
                }
            }
            response.ROOT.ITEM = list;
            //db.Insertable<TN_Material>(list).ExecuteCommand();
            db.CommitTran();
            }
            catch (Exception e)
            {
                db.RollbackTran();
                throw;
            }
            return result;
            return response;
        }
@@ -1749,7 +1795,7 @@
                    S_START_AREA = locinfo.S_AREA_CODE,
                    S_START_WH = locinfo.S_WH_CODE,
                    S_END_LOC = model.start,
                    //S_BS_NO = model.arrival_no,
                    S_BS_NO = model.MaterList[0].arrival_no,
                    N_TYPE = 1,
                    S_TYPE = WMSTask.GetTypeStr(1),
                    S_OP_DEF_CODE = "",
@@ -1774,11 +1820,15 @@
        internal static async Task<SimpleResult> OutboundOrderSorting(FJSorting model)
        {
            var result = new SimpleResult();
            // var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
            {
                try
                {
                result.resultMsg = "成功";
                result.resultCode = 0;
                if (string.IsNullOrEmpty(model.arrival_no))
@@ -1802,34 +1852,125 @@
                //根据不同出库类型 回调sap
                if (po.S_OUT_TYPE == "冲销出库")
                {
                    result = await CXAddOutboundOrder(model.MaterList, model.arrival_no, model.cntr_code, model.start);
                    result = await CXAddOutboundOrder(db,model.MaterList, model.arrival_no, model.cntr_code, model.start);
                }
                else
                if (po.S_OUT_TYPE == "出库")//普通出库
                {
                    result = await AddOutboundOrder(model.MaterList, model.arrival_no, model.cntr_code, model.start);
                    result = await AddOutboundOrder(db,model.MaterList, model.arrival_no, model.cntr_code, model.start);
                }
                else if (po.S_OUT_TYPE == "计划外发料出库")
                {
                    result = await jhwtlAddOutboundOrder(model.MaterList, model.arrival_no, model.cntr_code, model.start);
                    result = await jhwtlAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start);
                }
                else if (po.S_OUT_TYPE == "成本中心出库")
                {
                    result = await CBAddOutboundOrder(model.MaterList, model.arrival_no, model.cntr_code, model.start);
                    result = await CBAddOutboundOrder(db, model.MaterList, model.arrival_no, model.cntr_code, model.start);
                }
                //通用接口 对容器货品的删减 和生成回库单 都要用的接口
                result = await TYAddOutboundOrder(model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, model.start, po.S_OUT_TYPE);
                return result;
                result = await TYAddOutboundOrder(db,model.MaterList, model.arrival_no, model.cntr_code, model.IsHK, model.start, po.S_OUT_TYPE);
                #region 升降量
                bool adds = true;
                //var itemlist = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == model.cntr_code).ToList();
                if (model.MaterList.Count > 0)
                {
                    var url = Settings.MoboxSeverUrl + "inventory/AddChange";
                    //仓库量表升量
                    var req = new AddChangeModel { op_type = 4 };
                    //库区量表升量
                    var req2 = new AddChangeModel { op_type = 7 };
                    model.MaterList.ForEach(a =>
                    {
                        LogHelper.Info($"填充数据");
                        LogHelper.Info($"减仓库量表数据 仓库{po.S_WH_CODE} 物料编码{a.item_code} 物料名称 数量{a.qty}");
                        req.item_info.Add(new AddChangeModel.itemModel
                        {
                            wh_code = po.S_WH_CODE,
                            item_code = a.item_code,
                            item_name = "",
                            qty = a.qty
                        });
                        LogHelper.Info($"减库区量表数据 库区{po.S_AREA_CODE} 物料编码{a.item_code} 物料名称 数量{a.qty}");
                        req2.item_info.Add(new AddChangeModel.itemModel
                        {
                            wh_code = po.S_WH_CODE,
                            area_code = po.S_AREA_CODE,
                            item_code = a.item_code,
                            item_name = "",
                            qty = a.qty
                        });
                    });
                    var reqData = JsonConvert.SerializeObject(req);
                    var AppKey = Settings.AppKey;
                    var AppSecret = Settings.AppSecret;
                    var ReqTime = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
                    //var ReqTime = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2);
                    LogHelper.Info($"加密前 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime}");
                    var ReqVerify = GetMd5FromString(AppKey + AppSecret + ReqTime);
                    LogHelper.Info($"加密后 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime} ReqVerify={ReqVerify} url={url} req={reqData}");
                    var res = new HttpHelper().WebPost(url, reqData, "application/json", AppKey, ReqTime, ReqVerify);
                    if (!string.IsNullOrEmpty(res))
                    {
                        LogHelper.Info($"mobox 仓库降量接口返回 {res}");
                        var moboxres = JsonConvert.DeserializeObject<moboxres>(res);
                        if (moboxres.err_code != 0)
                        {
                            adds = false;
                        }
                    }
                    else
                    {
                        LogHelper.Info($"mobox 仓库降量接口返回为空");
                    }
                    var reqData2 = JsonConvert.SerializeObject(req2);
                    var ReqTime2 = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
                    //var ReqTime2 = GetTimeStamp(DateTime.Now.AddHours(-8), 1, 2);
                    LogHelper.Info($"加密前 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2}");
                    var ReqVerify2 = GetMd5FromString(AppKey + AppSecret + ReqTime2);
                    LogHelper.Info($"加密后 AppKey={AppKey} AppSecret={AppSecret} ReqTime={ReqTime2} ReqVerify={ReqVerify2} url={url} req={reqData2}");
                    var res2 = new HttpHelper().WebPost(url, reqData2, "application/json", AppKey, ReqTime2, ReqVerify2);
                    if (!string.IsNullOrEmpty(res2))
                    {
                        LogHelper.Info($"mobox 库区降量接口返回 {res2}");
                        var moboxres = JsonConvert.DeserializeObject<moboxres>(res);
                        if (moboxres.err_code != 0)
                        {
                            adds = false;
                        }
                    }
                    else
                    {
                        LogHelper.Info($"mobox 库区降量接口返回为空");
                    }
                    if (adds) addOnShelves(po, model.cntr_code, 2);
                }
                else LogHelper.Info($"托盘{model.cntr_code}无需要升降量的物料");
                    db.CommitTran();
                    #endregion
                    return result;
                }
                catch (Exception e)
                {result.resultMsg=e.Message;
                    db.RollbackTran();
                    return result;
                    throw;
                }
            }
        }
        public static async Task<SimpleResult> TYAddOutboundOrder(List<Mater> MaterList, string arrival_no, string cntr_code, bool isHK, string start, string S_OUT_TYPE)
        public static async Task<SimpleResult> TYAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, bool isHK, string start, string S_OUT_TYPE)
        {
            // var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
            {
            //using (var db = new SqlHelper<object>().GetInstance())
            //{
                var result = new SimpleResult();
                try
@@ -1838,7 +1979,8 @@
                    var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First();
                    //出库单详情
                    var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First();
                    //分拣单
                    //var popp = db.Queryable<TN_Distribution_CNTR>().Where(a => a.S_BS_NO == arrival_no&&a.S_SORT_TYPE=="未分类" && a.N_B_STATE == 2).First();
                    //回参物料信息
                    List<OutboundRecord> records = new List<OutboundRecord>();
@@ -1923,11 +2065,11 @@
                    }
                    db.Insertable<OutboundRecord>(records).ExecuteCommand();
                    db.CommitTran();
                    //db.CommitTran();
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    //db.RollbackTran();
                    LogHelper.Info("物料信息绑定到满容器上" + ex.Message);
                    Console.WriteLine(ex.Message);
@@ -1936,7 +2078,7 @@
                return result;
            }
        }
        //}
@@ -1948,10 +2090,10 @@
        /// <param name="cntr_code"></param>
        /// <param name="start"></param>
        /// <returns></returns>
        public static async Task<SimpleResult> CBAddOutboundOrder(List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        public static async Task<SimpleResult> CBAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        {
            using (var db = new SqlHelper<object>().GetInstance())
            {
            //using (var db = new SqlHelper<object>().GetInstance())
            //{
                //   var db = new SqlHelper<object>().GetInstance();
                var result = new SimpleResult();
@@ -2051,6 +2193,8 @@
                    #region sap回调
                    // 创建Web Service代理类实例
                    ZSCM2_CBZX service = new ZSCM2_CBZX();
                    service.PreAuthenticate = true;
                    service.Url = service.Url + "?sap-language=ZH";
                    //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                    // 准备请求参数
                    ZfmScm2CbzxMm001 request = new ZfmScm2CbzxMm001();
@@ -2075,21 +2219,37 @@
                    result.resultCode = data.ROOT.ITEM.MSGCODE;
                    if (data.ROOT.ITEM.MSGCODE == 0)
                    {
                        MaterialVoucher materialVoucher = new MaterialVoucher();
                        materialVoucher.S_NO = po.S_NO;
                        materialVoucher.S_TYPE = po.S_OUT_TYPE;
                        materialVoucher.S_WLPZBH = data.ROOT.ITEM.WLPZBH;
                        materialVoucher.S_WLPZND = data.ROOT.ITEM.WLPZND;
                        foreach (var item in MaterList)
                        {
                            MaterialVoucher materialVoucher = new MaterialVoucher();
                            materialVoucher.S_NO = po.S_NO;
                            materialVoucher.S_TYPE = po.S_OUT_TYPE;
                            materialVoucher.S_WLBM = item.item_code;
                            materialVoucher.S_WLH = item.N_ROW_NO;
                            materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                            materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                        materialVoucher.S_WH_CODE = po.S_WH_CODE;
                        materialVoucher.S_AREA_CODE = po.S_AREA_CODE;
                        materialVoucher.F_QTY = item.qty;
                        materialVoucher.STATUS = 0;
                        db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                            db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                        }
                        //MaterialVoucher materialVoucher = new MaterialVoucher();
                        //materialVoucher.S_NO = po.S_NO;
                        //materialVoucher.S_TYPE = po.S_OUT_TYPE;
                        //materialVoucher.S_WLPZBH = data.ROOT.ITEM.WLPZBH;
                        //materialVoucher.S_WLPZND = data.ROOT.ITEM.WLPZND;
                        //materialVoucher.STATUS = 0;
                        //db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    }
                    #endregion
                    db.CommitTran();
                    //db.CommitTran();
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    //db.RollbackTran();
                    LogHelper.Info("成本中心回调报错" + ex.Message);
                    Console.WriteLine(ex.Message);
@@ -2098,7 +2258,7 @@
                return result;
            }
        }
        //}
        /// <summary>
        /// 计划外退料回调
        /// </summary>
@@ -2107,10 +2267,10 @@
        /// <param name="cntr_code"></param>
        /// <param name="start"></param>
        /// <returns></returns>
        public static async Task<SimpleResult> jhwtlAddOutboundOrder(List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        public static async Task<SimpleResult> jhwtlAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        {
            using (var db = new SqlHelper<object>().GetInstance())
            {
            //using (var db = new SqlHelper<object>().GetInstance())
            //{
                //  var db = new SqlHelper<object>().GetInstance();
                var result = new SimpleResult();
                try
@@ -2160,7 +2320,6 @@
                    };
                    //回参物料信息
                    List<JHWBackDto.ITEM> iTEMs = new List<JHWBackDto.ITEM>();
                    List<OutboundRecord> records = new List<OutboundRecord>();
                    foreach (var item in MaterList)
                    {
                        var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.item_code).FirstOrDefault();
@@ -2212,6 +2371,7 @@
                    //db.Insertable<OutboundRecord>(records).ExecuteCommand();
                    #region wms-sap回调
                    //类转json
                    var json = JsonConvert.SerializeObject(myRoot.ROOT);
                    //json转xml
                    string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
@@ -2231,6 +2391,8 @@
                    #region sap回调
                    // 创建Web Service代理类实例
                    ZSCM2_SCFLJHW service = new ZSCM2_SCFLJHW();
                    service.PreAuthenticate = true;
                    service.Url = service.Url + "?sap-language=ZH";
                    //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                    // 准备请求参数
                    ZscmScflJhw request = new ZscmScflJhw();
@@ -2249,24 +2411,35 @@
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(responses.Output.ToString());
                    JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
                    var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(jsonObject.ToString());
                    var data = JsonConvert.DeserializeObject<ReturnJHWBcak.Root>(jsonObject.ToString());
                    //添加凭证记录表
                    result.resultMsg = data.ROOT.ITEM.MSGDESP;
                    result.resultCode = data.ROOT.ITEM.MSGCODE;
                    MaterialVoucher materialVoucher = new MaterialVoucher();
                    materialVoucher.S_NO = po.S_NO;
                    materialVoucher.S_TYPE = po.S_OUT_TYPE;
                    materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                    materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                    materialVoucher.STATUS = 0;
                    db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    if (data.ROOT.ITEM.MSGCODE == 0)
                    {
                        foreach (var item in MaterList)
                        {
                            MaterialVoucher materialVoucher = new MaterialVoucher();
                            materialVoucher.S_NO = po.S_NO;
                            materialVoucher.S_TYPE = po.S_OUT_TYPE;
                            materialVoucher.S_WLBM = item.item_code;
                            materialVoucher.S_WLH = item.N_ROW_NO;
                            materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZ;
                            materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                        materialVoucher.S_WH_CODE = po.S_WH_CODE;
                        materialVoucher.S_AREA_CODE = po.S_AREA_CODE;
                        materialVoucher.F_QTY = item.qty;
                        materialVoucher.STATUS = 0;
                            db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                        }
                    }
                    #endregion
                    db.CommitTran();
                    //db.CommitTran();
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    //db.RollbackTran();
                    LogHelper.Info("计划外退料回调报错" + ex.Message);
                    Console.WriteLine(ex.Message);
@@ -2275,7 +2448,7 @@
                return result;
            }
        }
        //}
        /// <summary>
        /// 通用冲销回调
        /// </summary>
@@ -2284,11 +2457,10 @@
        /// <param name="cntr_code"></param>
        /// <param name="start"></param>
        /// <returns></returns>
        public static async Task<SimpleResult> CXAddOutboundOrder(List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        public static async Task<SimpleResult> CXAddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        {
            // var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
            {
                var result = new SimpleResult();
@@ -2298,6 +2470,13 @@
                    var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First();
                    //出库单详情
                    var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First();
                    string GZRQ = "";
                    if (po.BUDAT != null)
                    {
                        GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd");
                    }
                    //来源冲销凭证对应的物料凭证信息
                    //var poIn = db.Queryable<TN_Inbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == po.S_BS_NO).First();
                    //根据入库查看凭证编号信息
@@ -2307,78 +2486,128 @@
                    {
                        ROOT = new CXCkBackDto.ROOT
                        {
                            HEAD = new CXCkBackDto.HEAD
                            HEAD = new List<CXCkBackDto.HEAD>
                            {
                                WLPZ = po.S_WLPZ,
                                WLPZNF = po.S_WLPZNF,
                                WLPZXM = MaterList[0].N_ROW_NO,
                                GZRQ = "2025-03-20",
                                SRRQ = "2025-03-19",
                                GZRY = "过账人员姓名"
                                //GZRQ = GZRQ,
                                //SRRQ = PZZDRQ,
                                //WLPZ = po.S_WLPZ,
                                //WLPZNF = po.S_WLPZNF,
                                //WLPZXM = MaterList[0].N_ROW_NO,
                                //GZRY = po.UNAME
                            }
                        }
                    };
                    //回参物料信息
                    //List<OutboundRecord> records = new List<OutboundRecord>();
                    //foreach (var item in MaterList)
                    //{
                    List<CXCkBackDto.HEAD> listhead = new List<CXCkBackDto.HEAD>();
                    //出库单详情
                    var porecord = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == po.S_BS_NO).ToList();
                    foreach (var item in MaterList)
                    {
                        CXCkBackDto.HEAD hEAD = new CXCkBackDto.HEAD();
                        hEAD.GZRQ = GZRQ;
                        hEAD.SRSJ = DateTime.Now.ToString("yyyyMMdd");
                    //    db.BeginTran();
                    //    //出库记录
                    //    var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First();
                    //    OutboundRecord outboundRecord = new OutboundRecord();
                    //    outboundRecord.S_WLPZBH = pz.S_WLPZBH;
                    //    outboundRecord.S_WLPZND = pz.S_WLPZND;
                    //hEAD.WLPZ = porecord.Where(s => s.S_WLBM == item.item_code && s.S_WLH == item.N_ROW_NO).First()?.S_WLPZBH;
                    //hEAD.WLPZNF = porecord.Where(s=>s.S_WLBM==item.item_code&&s.S_WLH==item.N_ROW_NO).First()?.S_WLPZND;
                    //    outboundRecord.S_NO = arrival_no;
                    //    outboundRecord.S_WLBM = item.item_code;
                    //    outboundRecord.S_SL = item.qty;
                    //    outboundRecord.S_CNTR_CODE = cntr_code;
                    //    records.Add(outboundRecord);
                    //hEAD.WLPZ = porecord.First()?.S_WLPZBH;
                    //hEAD.WLPZNF = porecord.First()?.S_WLPZND;
                    //}
                    //db.Insertable<OutboundRecord>(records).ExecuteCommand();
                    hEAD.WLPZ = po.S_WLPZ;
                    hEAD.WLPZNF = po.S_WLPZND;
                    hEAD.WLPZXM = item.N_ROW_NO;
                        hEAD.GZRY = po.UNAME;
                        listhead.Add(hEAD);
                    }
                    myRoot.ROOT.HEAD = listhead;
                    #region wms-sap回调
                    //类转json
                    var json = JsonConvert.SerializeObject(myRoot.ROOT);
                    //json转xml
                    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();
                    }
                    ZSCM2_CXPZ service = new ZSCM2_CXPZ();
                    service.PreAuthenticate = true;
                    service.Url = service.Url + "?sap-language=ZH";
                    //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                    // 准备请求参数
                    ZfmScm2CxpzMm001 request = new ZfmScm2CxpzMm001();
                    request.Input = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + xml;
                    LogHelper.Info($"通用冲销SAP回调");
                    // 调用Web Service
                    ZfmScm2CxpzMm001Response responses = service.ZfmScm2CxpzMm001(request);
                    // 处理响应
                    LogHelper.Info("通用冲销SAP返回结果: " + responses.Output);
                    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());
                    var data = JsonConvert.DeserializeObject<ReturnTYBcak.Root>(jsonObject.ToString());
                    var resmeg = "";
                    int rescode = 0;
                    //添加凭证记录表
                    result.resultMsg = data.ROOT.ITEM.MSGDESP;
                    result.resultCode = data.ROOT.ITEM.MSGCODE;
                    MaterialVoucher materialVoucher = new MaterialVoucher();
                    materialVoucher.S_NO = po.S_NO;
                    materialVoucher.S_TYPE = po.S_OUT_TYPE;
                    materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                    materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                    materialVoucher.STATUS = 0;
                    db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    if (data!=null)
                    {
                        List<MaterialVoucher> materiallist = new List<MaterialVoucher>();
                        foreach (var item in data.ROOT.ITEM)
                        {
                            if (item.MSGCODE == 0)
                        {
                            var onr = MaterList.Where(s => s.N_ROW_NO == item.WLPZHXM).First();
                                MaterialVoucher materialVoucher = new MaterialVoucher();
                                materialVoucher.S_NO = po.S_NO;
                                materialVoucher.S_TYPE = po.S_OUT_TYPE;
                                materialVoucher.S_WLPZBH = item?.WLPZBH;
                                materialVoucher.S_WLPZND = item?.WLPZND;
                                materialVoucher.S_WLPZHXM = item?.WLPZHXM;
                                materialVoucher.S_YWLPZBH = item?.YWLPZBH;
                                materialVoucher.S_YWLPZND = item?.YWLPZND;
                                materialVoucher.S_YWLPZHXM = item?.YWLPZHXM;
                                materialVoucher.S_WH_CODE = po.S_WH_CODE;
                                materialVoucher.S_AREA_CODE = po.S_AREA_CODE;
                            materialVoucher.F_QTY = onr.qty;
                                //materialVoucher.STATUS = 0;
                                resmeg += item?.MSGDESP;
                                materiallist.Add(materialVoucher);
                            }
                            else {
                                rescode = 1;
                            }
                        }
                        if (materiallist.Count()>0)
                        {
                            db.Insertable<MaterialVoucher>(materiallist).ExecuteCommand();
                        }
                    }
                    result.resultMsg = resmeg;
                    result.resultCode = rescode;
                    #endregion
                    db.CommitTran();
                    //db.CommitTran();
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    //db.RollbackTran();
                    LogHelper.Info("通用冲销回调报错" + ex.Message);
                    Console.WriteLine(ex.Message);
@@ -2387,7 +2616,7 @@
                return result;
            }
        }
        /// <summary>
        /// 普通回调接口
@@ -2397,86 +2626,56 @@
        /// <param name="cntr_code"></param>
        /// <param name="start"></param>
        /// <returns></returns>
        public static async Task<SimpleResult> AddOutboundOrder(List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        public static async Task<SimpleResult> AddOutboundOrder(SqlSugarClient db, List<Mater> MaterList, string arrival_no, string cntr_code, string start)
        {
            using (var db = new SqlHelper<object>().GetInstance())
            {
            //using (var db = new SqlHelper<object>().GetInstance())
            //{
                // var db = new SqlHelper<object>().GetInstance();
                var result = new SimpleResult();
                CkBcakDto.Root myRoot = new CkBcakDto.Root
                {
                    ROOT = new CkBcakDto.ROOT
                    {
                        WLPZ = new CkBcakDto.WLPZ
                        {
                            ZLSH = "流水号值",
                            YWLX = "业务类型值",
                            GZRQ = DateTime.Now.ToString("yyyy-MM-dd"), // 假设日期格式为"年-月-日"
                            GZRY = "过账人员值",
                            ITEM = new List<CkBcakDto.ITEM>
                            {
                            }
                        }
                    }
                };
                try
                {
                    //库位信息
                    var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First();
                    //出库单详情
                    var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First();
                string GZRQ = "";
                string PZZDRQ = "";
                if (po.BUDAT != null)
                {
                    GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd");
                }
                if (po.BLDAT != null)
                {
                    PZZDRQ = DateTime.Parse(po.BLDAT.ToString()).ToString("yyyyMMdd");
                    //出库回调入参
                }
                CkBcakDto.Root myRoot = new CkBcakDto.Root
                {
                    ROOT = new CkBcakDto.ROOT
                    {
                        WLPZ = new CkBcakDto.WLPZ
                        {
                            KEY = po.S_NO,
                            ZYWLX = "业务类型值",
                            PZRQ = PZZDRQ,
                            GZRQ = GZRQ, // 假设日期格式为"年-月-日"
                            GZRY = po.UNAME,
                            ITEM = new List<CkBcakDto.ITEM>
                            {
                            }
                        }
                    }
                };
                //出库回调入参
                    //回参物料信息
                    List<CkBcakDto.ITEM> iTEMs = new List<CkBcakDto.ITEM>();
                    List<OutboundRecord> records = new List<OutboundRecord>();
                //回参物料信息
                List<CkBcakDto.ITEM> iTEMs = new List<CkBcakDto.ITEM>();
                    foreach (var item in MaterList)
                    {
                        // 插入到托盘明细表
                        //var cntr = ContainerHelper.GetCntrItemRel(cntr_code);
                        //var cntr = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr_code).ToList();
                        //if (cntr.Count() > 0)
                        //{
                        db.BeginTran();
                        //1.查看是否有相同物料批次的信息,如果有要累减少,不同批次的可以分开
                        //var cir = db.Queryable<CntrItemRel>().Where(a => a.S_CNTR_CODE == cntr_code && a.S_ITEM_CODE == item.item_code && a.S_BATCH_NO == item.S_BATCH_NO && a.N_ROW_NO == item.N_ROW_NO).First();
                        //if (cir != null)
                        //{
                        //cir.F_QTY -= item.qty;
                        //cir.F_ALLOC_QTY -= item.qty;
                        //cir.T_MODIFY = DateTime.Now;
                        //if (cir.F_QTY == 0)
                        //{
                        //    db.Deleteable(cir).ExecuteCommand();
                        //}
                        //else
                        //{
                        //    db.Updateable(cir).UpdateColumns(it => new { it.F_QTY, it.F_ALLOC_QTY, it.T_MODIFY }).ExecuteCommand();
                        //    //添加回库作业
                        //var  wmsTask = new WMSTask
                        //    {
                        //        S_CNTR_CODE = cntr_code,
                        //        S_CODE = WMSHelper.GenerateTaskNo(),
                        //        S_START_LOC = start,
                        //        S_START_AREA = startinfo.S_AREA_CODE,
                        //        S_START_WH = startinfo.S_WH_CODE,
                        //        S_END_LOC = startinfo.S_CODE,
                        //        N_TYPE = 1,
                        //        S_TYPE = WMSTask.GetTypeStr(1),
                        //        S_OP_DEF_CODE = "",
                        //        S_OP_DEF_NAME = "pda入库"
                        //    };
                        //    if (WMSHelper.CreateWmsTask(wmsTask))
                        //    {
                        //        LocationHelper.LockLoc(start, 1);
                        //        result.resultMsg = $"创建作业成功,作业号{wmsTask.S_CODE}";
                        //    }
                        //}
                        var podetail = po.Details.Where(s => s.S_ITEM_CODE == item.item_code).FirstOrDefault();
                        CkBcakDto.ITEM ckbitem = new CkBcakDto.ITEM();
@@ -2503,77 +2702,83 @@
                        //}
                        ckbitem.ITEM1 = listitem1;
                        iTEMs.Add(ckbitem);
                        //}
                        //else
                        //{
                        //    db.RollbackTran();
                        //    result.resultCode = 1;
                        //    result.resultMsg = $"物料不存在{item.item_code}";
                        //    LogHelper.Info($"物料不存在{item.item_code}");
                        //    return result;
                        //}
                        //var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First();
                        //OutboundRecord outboundRecord = new OutboundRecord();
                        //outboundRecord.S_WLPZBH = pz.S_WLPZBH;
                        //outboundRecord.S_WLPZND = pz.S_WLPZND;
                        //outboundRecord.S_NO = arrival_no;
                        //outboundRecord.S_WLBM = item.item_code;
                        //outboundRecord.S_SL = item.qty;
                        //outboundRecord.S_CNTR_CODE = cntr_code;
                        //records.Add(outboundRecord);
                        //}
                        //else
                        //{
                        //    result.resultCode = 1;
                        //    result.resultMsg = $"获取托盘信息失败{cntr_code}";
                        //    LogHelper.Info($"获取托盘信息失败{cntr_code}");
                        //    return result;
                        //}
                    }
                    //db.Insertable<OutboundRecord>(records).ExecuteCommand();
                    #region wms-sap回调
                    //类转json
                    var json = JsonConvert.SerializeObject(myRoot.ROOT);
                myRoot.ROOT.WLPZ.ITEM = iTEMs;
                //db.Insertable<OutboundRecord>(records).ExecuteCommand();
                #region wms-sap回调
                //类转json
                var json = JsonConvert.SerializeObject(myRoot.ROOT);
                    //json转xml
                    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();
                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();
                    }
                //}
                ZSCM2_SCFL service = new ZSCM2_SCFL();
                service.PreAuthenticate = true;
                service.Url = service.Url + "?sap-language=ZH";
                //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                // 准备请求参数
                ZscmScfl request = new ZscmScfl();
                request.Input = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + xml;
                LogHelper.Info($"出库SAP回调");
                // 调用Web Service
                ZscmScflResponse responses = service.ZscmScfl(request);
                // 处理响应
                LogHelper.Info("出库SAP返回结果: " + responses.Output);
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(responseXml.ToString());
                XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.LoadXml(responses.Output.ToString());
                    JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
                    var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(jsonObject.ToString());
                    var data = JsonConvert.DeserializeObject<ReturnJHWBcak.Root>(jsonObject.ToString());
                    //添加凭证记录表
                    result.resultMsg = data.ROOT.ITEM.MSGDESP;
                    result.resultCode = data.ROOT.ITEM.MSGCODE;
                    MaterialVoucher materialVoucher = new MaterialVoucher();
                    materialVoucher.S_NO = po.S_NO;
                    materialVoucher.S_TYPE = po.S_OUT_TYPE;
                    materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                    materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                    materialVoucher.STATUS = 0;
                    db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    if (data.ROOT.ITEM.MSGCODE == 0)
                    {
                        foreach (var item in MaterList)
                        {
                            MaterialVoucher materialVoucher = new MaterialVoucher();
                            materialVoucher.S_NO = po.S_NO;
                            materialVoucher.S_TYPE = po.S_OUT_TYPE;
                            materialVoucher.S_WLBM = item.item_code;
                            materialVoucher.S_WLH = item.N_ROW_NO;
                            materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZ;
                            materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                            materialVoucher.S_WH_CODE = po.S_WH_CODE;
                            materialVoucher.S_AREA_CODE = po.S_AREA_CODE;
                            materialVoucher.F_QTY = item.qty;
                            materialVoucher.STATUS = 0;
                            db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                        }
                    }
                    ////添加凭证记录表
                    //result.resultMsg = data.ROOT.ITEM.MSGDESP;
                    //result.resultCode = data.ROOT.ITEM.MSGCODE;
                    //MaterialVoucher materialVoucher = new MaterialVoucher();
                    //materialVoucher.S_NO = po.S_NO;
                    //materialVoucher.S_TYPE = po.S_OUT_TYPE;
                    //materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH;
                    //materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                    //materialVoucher.STATUS = 0;
                    //db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    #endregion
                    db.CommitTran();
                    //db.CommitTran();
                }
                catch (Exception ex)
                {
                    db.RollbackTran();
                    //db.RollbackTran();
                    LogHelper.Info("普通出库回调" +
                        "" + ex.Message);
                    Console.WriteLine(ex.Message);
@@ -2583,7 +2788,7 @@
                return result;
            }
        }
        //}
@@ -2605,7 +2810,10 @@
                try
                {
                    if (MaterList.Count()<1)
                    {
                        throw new Exception("累计码盘数量物料数据为空");
                    }
                    foreach (var item in MaterList)
                    {
                        var allInfolist = db.Queryable<TN_Inbound_Detail>()
@@ -3363,14 +3571,14 @@
            //var db = new SqlHelper<object>().GetInstance();
            using (var db = new SqlHelper<object>().GetInstance())
            {
                LogHelper.Info($"进来了");
                bool resu = false;
                try
                {
                    db.BeginTran();
                    var po = db.Queryable<TN_Inbound_Order>().Includes(p => p.Details).Where(a => a.S_NO == model.S_NO).First();
                    LogHelper.Info($"进来了2");
                    #region MyRegion
                    if (po.Details.Count > 0)
                    {
@@ -3550,6 +3758,9 @@
                        #region sap回调
                        // 创建Web Service代理类实例
                        ZSCM_NC service = new ZSCM_NC();
                        // 添加语言设置(中文)
                        service.PreAuthenticate = true;
                        service.Url = service.Url + "?sap-language=ZH";
                        //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                        // 准备请求参数
                        ZscmNc request = new ZscmNc();
@@ -3576,7 +3787,7 @@
                        if (data.ROOT.ITEM.MSGCODE == 0)
                        {
                            materialVoucher.S_NO = model.S_NO;
                            materialVoucher.S_TYPE = po.S_BS_TYPE;
                            materialVoucher.S_TYPE = po.S_IN_TYPE;
                            materialVoucher.S_WLPZBH = data.ROOT.ITEM.WLPZBH;
                            materialVoucher.S_WLPZND = data.ROOT.ITEM.WLPZND;
                            materialVoucher.STATUS = 0;
@@ -3685,6 +3896,9 @@
                        #region sap回调
                        // 创建Web Service代理类实例
                        ZSCM2_SCFLJHW service = new ZSCM2_SCFLJHW();
                        // 添加语言设置(中文)
                        service.PreAuthenticate = true;
                        service.Url = service.Url + "?sap-language=ZH";
                        //  service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                        // 准备请求参数
                        ZscmScflJhw request = new ZscmScflJhw();
@@ -3810,6 +4024,9 @@
                        #region sap回调
                        // 创建Web Service代理类实例
                        ZSCM_WC service = new ZSCM_WC();
                        service.PreAuthenticate = true;
                        service.Url = service.Url + "?sap-language=ZH";
                        service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234");
                        // 准备请求参数
                        ZscmWc request = new ZscmWc();
@@ -3860,24 +4077,52 @@
                    else if (po.S_IN_TYPE == "冲销入库")
                    {
                        var materpz = db.Queryable<TN_Inbound_Order>().Where(s => s.S_NO == po.S_NO).First();
                        //var materpz = db.Queryable<TN_Inbound_Order>().Where(s => s.S_NO == po.S_NO).First();
                        string GZRQ = "";
                        LogHelper.Info($"冲销入库入库{po.BUDAT}");
                        if (po.BUDAT != null)
                        {
                            GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd");
                        }
                        //出库回调入参
                        CXCkBackDto.Root roots = new CXCkBackDto.Root
                        {
                            ROOT = new CXCkBackDto.ROOT
                            {
                                HEAD = new CXCkBackDto.HEAD
                                HEAD = new List<CXCkBackDto.HEAD>
                                {
                                    WLPZ = materpz.S_WLPZ,
                                    WLPZNF = materpz.S_WLPZNF,
                                    WLPZXM = null,
                                    GZRQ = "2025-03-20",
                                    SRRQ = DateTime.Now.ToString(),
                                    GZRY = "过账人员姓名"
                                }
                            }
                        };
                        List<CXCkBackDto.HEAD> listhead = new List<CXCkBackDto.HEAD>();
                        //出库单详情
                        LogHelper.Info($"冲销入库入库{GZRQ}");
                        var porecord = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == po.S_BS_NO&&a.STATUS==0).ToList();
                        //var podet = db.Queryable<tn_i>().Where(a => a.S_NO == po.S_BS_NO&&a.STATUS==0).ToList();
                        LogHelper.Info($"数量{porecord.Count()}");
                        LogHelper.Info($"数量{po.Details.Count()}");
                        //if (porecord.Count() <1 )
                        //{
                        //    LogHelper.Info($"凭证号不存在");
                        //}
                        foreach (var item in po.Details)
                        {
                            CXCkBackDto.HEAD hEAD = new CXCkBackDto.HEAD();
                            hEAD.GZRQ = GZRQ;
                            hEAD.SRSJ = DateTime.Now.ToString("yyyyMMdd");
                            //hEAD.WLPZ = porecord.First()?.S_WLPZBH;
                            hEAD.WLPZ = po.S_WLPZ;
                            hEAD.WLPZNF = po.S_WLPZND;
                            //hEAD.WLPZ = porecord.Where(s => s.S_WLBM == item.S_ITEM_CODE && s.S_WLH == item.N_ROW_NO).First()?.S_WLPZBH;
                            //hEAD.WLPZNF = porecord.Where(s=>s.S_WLBM==item.S_ITEM_CODE&&s.S_WLH==item.N_ROW_NO).First()?.S_WLPZND;
                            //hEAD.WLPZNF = porecord.First()?.S_WLPZND;
                            hEAD.WLPZXM = item.N_ROW_NO;
                            hEAD.GZRY = po.UNAME;
                            listhead.Add(hEAD);
                        }
                        roots.ROOT.HEAD = listhead;
                        var json = JsonConvert.SerializeObject(roots.ROOT);
                        string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml;
                        XElement responseXElement = XElement.Parse(xml);
@@ -3889,41 +4134,111 @@
                        // 确保HTTP成功状态值
                        response.EnsureSuccessStatusCode();
                        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();
                        }
                        ZSCM2_CXPZ service = new ZSCM2_CXPZ();
                        service.PreAuthenticate = true;
                        service.Url = service.Url + "?sap-language=ZH";
                        // 准备请求参数
                        ZfmScm2CxpzMm001 request = new ZfmScm2CxpzMm001();
                        request.Input = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + xml;
                        LogHelper.Info($"通用冲销SAP回调");
                        // 调用Web Service
                        ZfmScm2CxpzMm001Response responses = service.ZfmScm2CxpzMm001(request);
                        // 处理响应
                        LogHelper.Info("通用冲销SAP返回结果: " + responses.Output);
                        // 将 XmlDocument 转换为 JSON 字符串
                        //JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc));
                        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());
                        //var data = JsonConvert.DeserializeObject<ReturnJHWBcak.Root>(jsonObject.ToString());
                        var data = JsonConvert.DeserializeObject<ReturnTYBcak.Root>(jsonObject.ToString());
                        var resmeg = "";
                        int rescode = 0;
                        //添加凭证记录表
                        result.resultMsg = data.ROOT.ITEM.MSGDESP;
                        result.resultCode = data.ROOT.ITEM.MSGCODE;
                        MaterialVoucher materialVoucher = new MaterialVoucher();
                        materialVoucher.S_NO = model.S_NO;
                        materialVoucher.S_TYPE = po.S_IN_TYPE;
                        materialVoucher.S_WLPZBH = data.ROOT.ITEM.WLPZBH;
                        materialVoucher.S_WLPZND = data.ROOT.ITEM.WLPZND;
                        materialVoucher.STATUS = 0;
                        db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                        if (data != null)
                        {
                            List<MaterialVoucher> materiallist = new List<MaterialVoucher>();
                            foreach (var item in data.ROOT.ITEM)
                            {
                                if (item.MSGCODE == 0)
                                {
                                    var onr = po.Details.Where(s => s.N_ROW_NO == item.WLPZHXM).First();
                                    MaterialVoucher materialVoucher = new MaterialVoucher();
                                    materialVoucher.S_NO = po.S_NO;
                                    materialVoucher.S_TYPE = po.S_IN_TYPE;
                                    materialVoucher.S_WLPZBH = item?.WLPZBH;
                                    materialVoucher.S_WLPZND = item?.WLPZND;
                                    materialVoucher.S_WLPZHXM = item?.WLPZHXM;
                                    materialVoucher.S_YWLPZBH = item?.YWLPZBH;
                                    materialVoucher.S_YWLPZND = item?.YWLPZND;
                                    materialVoucher.S_YWLPZHXM = item?.YWLPZHXM;
                                    materialVoucher.S_WH_CODE = po.S_WH_CODE;
                                    materialVoucher.S_AREA_CODE = po.S_AREA_CODE;
                                    materialVoucher.F_QTY = onr.F_QTY;
                                    //materialVoucher.STATUS = 0;
                                    resmeg += item?.MSGDESP;
                                    materiallist.Add(materialVoucher);
                                }
                                else
                                {
                                    rescode = 1;
                                }
                            }
                            if (materiallist.Count() > 0)
                            {
                                db.Insertable<MaterialVoucher>(materiallist).ExecuteCommand();
                            }
                        }
                        result.resultMsg = resmeg;
                        result.resultCode = rescode;
                        //添加凭证记录表
                        //result.resultMsg = data.ROOT.ITEM.MSGDESP;
                        //result.resultCode = data.ROOT.ITEM.MSGCODE;
                        //List<MaterialVoucher> materiallist = new List<MaterialVoucher>();
                        //if (data.ROOT.ITEM.MSGCODE == 0)
                        //{
                        //    foreach (var item in po.Details)
                        //    {
                        //        MaterialVoucher materialVoucher = new MaterialVoucher();
                        //        materialVoucher.S_NO = po.S_NO;
                        //        materialVoucher.S_TYPE = po.S_IN_TYPE;
                        //        materialVoucher.S_WLBM = item.S_ITEM_CODE;
                        //        materialVoucher.S_WLH = item.N_ROW_NO;
                        //        materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZ;
                        //        materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND;
                        //        materialVoucher.S_WH_CODE = po.S_WH_CODE;
                        //        materialVoucher.S_AREA_CODE = po.S_AREA_CODE;
                        //        materialVoucher.F_QTY = item.F_QTY;
                        //        materialVoucher.STATUS = 0;
                        //        db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                        //    }
                        //}
                        //db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand();
                    }
                    db.CommitTran();
                }
                catch (Exception ex)
                {
                    LogHelper.Info($"入库回调报错{ex.Message}");
                    LogHelper.Info($"回调报错{ex.Message}");
                    db.RollbackTran();
                    throw;
                }