test
昨天 c586d7e6347609a545bd588d7297bf272b32e465
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -342,7 +342,8 @@
                        throw new Exception("客户信息不存在!");
                    }
                    CustomerName = customer.CustomerName;
                }
                }
                //承运商信息
                //var logistics = Db.Queryable<SysLogisticsInfo>().First(m => m.IsDel == "0" && m.CarrierName == model.LogisticsNo);
                //int? logisticsId = null;
@@ -366,9 +367,21 @@
                try
                {
                    var list = new List<BllExportNoticeDetail>();
                    var houseNo = string.Empty;
                    //添加出库单
                    foreach (var d in model.orderDetailList)
                    {
                        if (!string.IsNullOrEmpty(houseNo))
                        {
                            if (houseNo != d.wareHouseNo)
                            {
                                throw new Exception("同个出库单下明细列表发出仓库不一致!");
                            }
                        }
                        else
                        {
                            houseNo = d.wareHouseNo;
                        }
                        if (d.skuQty < 1)
                        {
                            throw new Exception("出库数量必须大于0");
@@ -589,16 +602,35 @@
                        OrderCode=model.orderNo,
                        Type = model.orderType,
                        Status = "0",
                        Origin = "WMS",
                        Origin = "SAP",
                        CustomerNo = model.customerNo,
                        CustomerName = CustomerName,
                        LogisticsId = null,//logisticsId,
                        IsWave = "0",
                        WaveNo = "",
                        IsDespatch = "0",
                        CreateUser = 0,
                    };
                    if (houseNo == "1000" || houseNo == "1001" || houseNo == "2000" || houseNo == "2002" || houseNo == "2003" || houseNo == "2004")
                    {
                        notice.WareHouseNo = "W02";
                    }
                    else if (houseNo == "4000")
                    {
                        notice.WareHouseNo = "W01";
                    }
                    else
                    {
                        // houseNo抛异常,避免出现非W01,W02的值
                        throw new Exception($"不支持的发出仓库编号:{houseNo},仅支持生成W01和W02仓库的单据");
                    }
                    //额外校验(可选,双重保障)
                    if (notice.WareHouseNo != "W01" && notice.WareHouseNo != "W02")
                    {
                        throw new Exception($"仓库编号异常:{notice.WareHouseNo},仅允许W01和W02");
                    }
                    var n = Db.Insertable<BllExportNotice>(notice).ExecuteCommand();
                    var m = Db.Insertable<BllExportNoticeDetail>(list).ExecuteCommand();
@@ -630,7 +662,7 @@
        }
        //回传出库单
        public bool FinishSo(int id, string url, int userId)
        public bool FinishSo(int id, string url, string url2, int userId)
        {
            try
            {
@@ -652,34 +684,83 @@
                {
                    throw new Exception("复核失败,复核人员和关闭订单人员不能相同!");
                }
                var list = new List<SoDetail>();
                foreach (var d in detail)
                if (notice.Type == "2")//抽检出库
                {
                    var item = new SoDetail()
                    var list = new List<SendSampleSku>();
                    foreach (var d in detail)
                    {
                        SkuNo = d.SkuNo,
                        LotNo = d.LotNo,
                        Qty = (decimal)d.CompleteQty
                    };
                    list.Add(item);
                }
                var soInfo = new SoInfo()
                {
                    OrderCode = notice.OrderCode,
                    SoDetails = list
                };
                #region 通过接口发送至erp
                //系统对接后放开
                /*var jsonData = JsonConvert.SerializeObject(soInfo);
                        var item = new SendSampleSku()
                        {
                            skuNo = d.SkuNo,
                            skuName = d.SkuName,
                            lotNo = d.LotNo,
                            skuQty = Convert.ToDecimal(d.CompleteQty)
                        };
                        list.Add(item);
                    }
                    SendSampleVm sendSampleVm = new SendSampleVm();
                    sendSampleVm.pallDataList = list;
                var response = HttpHelper.DoPost(url, jsonData, "出库单完成上传", "ERP");
                var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据
                if (obj.Success != 0)
                    SapSampleVm sapSampleVm = new SapSampleVm();
                    sapSampleVm.data = sendSampleVm;
                    #region 通过接口发送至erp
                    //系统对接后放开
                    /*var jsonData = JsonConvert.SerializeObject(sapSampleVm);
                    var response = HttpHelper.DoPost(url2, jsonData, "抽检出库完成上传", "ERP");
                    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据
                    if (obj.Success != 0)
                    {
                        throw new Exception("上传失败" + obj.Message);
                    }*/
                    #endregion
                }
                else
                {
                    throw new Exception("上传失败" + obj.Message);
                }*/
                #endregion
                    var list = new List<BackSoDetail>();
                    foreach (var d in detail)
                    {
                        var mater = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == d.SkuNo);
                        if (mater == null)
                        {
                            throw new Exception($"复核失败,物料编码:{d.SkuNo}的物料信息不存在");
                        }
                        var item = new BackSoDetail()
                        {
                            POSNR = d.OrderDetailCode,
                            MATNR = d.SkuNo,
                            CHARG = d.LotNo,
                            LFIMG = d.CompleteQty.ToString(),
                            MEINS = mater.UnitNo,
                            HSDAT = "",
                            VFDAT = ""
                        };
                        list.Add(item);
                    }
                    var soInfo = new BackSoVm()
                    {
                        ZUUID = Guid.NewGuid().ToString(),
                        VBELN = notice.OrderCode,
                        WERKS = notice.CustomerNo,
                        LFART = notice.Type,
                        WADAT_IST = Convert.ToDateTime(notice.CompleteTime).ToString("yyyy-MM-dd"),
                        ITEM = list
                    };
                    #region 通过接口发送至erp
                    //系统对接后放开
                    /*var jsonData = JsonConvert.SerializeObject(soInfo);
                    var response = HttpHelper.DoPost(url, jsonData, "出库单完成上传", "ERP");
                    var obj = JsonConvert.DeserializeObject<ErpModel>(response);//解析返回数据
                    if (obj.Success != 0)
                    {
                        throw new Exception("上传失败" + obj.Message);
                    }*/
                    #endregion
                }
                notice.Status = "6";
                notice.CheckTime = DateTime.Now;