wxw
2 天以前 950fac9fd7b9477fc2bbe3253d217f62ac7608e5
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -630,7 +630,7 @@
        }
        //回传出库单
        public bool FinishSo(int id, string url, int userId)
        public bool FinishSo(int id, string url, string url2, int userId)
        {
            try
            {
@@ -652,34 +652,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;
@@ -1998,7 +2047,7 @@
                   .AndIF(!string.IsNullOrWhiteSpace(model.BitPalletMark), m => m.BitPalletMark == model.BitPalletMark)
                   .And(m => !string.IsNullOrWhiteSpace(m.WareHouseNo))
                   .And(a => a.Status == "0")
                   .And(a => a.WareHouseNo == "W01")
                   .And(a => a.WareHouseNo == "W02")
                   .ToExpression();
            var data = await Db.Queryable<DataStockDetail>().Where(item).OrderBy(m => m.LocatNo).ToPageListAsync(model.Page, model.Limit, count);
            //data.Select(m => m.Status == "0" && m.IsDel == "0");
@@ -2038,6 +2087,12 @@
                if (detailGroup.Count > 1)
                {
                    throw new Exception($"未在库内查询到该托盘信息");
                }
                var locatStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == outMode && w.Status == "0");
                if (locatStart == null)
                {
                    throw new Exception($"目标储位不存在或非空闲,请检查");
                }
@@ -2151,14 +2206,16 @@
                    outDtoList.Add(new OutCommandDto()
                    {
                        TaskNo = exTask.TaskNo, // 任务号
                        TaskType = "1",// 任务类型 (出库)
                        PalletNo = palletNo,//托盘号
                        StartLocate = locate.LocatNo, // 起始位置
                        StartRoadway = locate.RoadwayNo,
                        EndLocate = outMode, // 目标位置 
                        TaskNo = exTask.TaskNo, // 任务号
                        TaskType = "1",// 任务类型 (出库)
                        OutMode = outMode,  //目标地址
                        Order = 1
                        Order = 999,
                        Type = PLCTypeEnum.AGV
                    });
                    #endregion
@@ -2179,6 +2236,8 @@
                    Db.Updateable(locate).ExecuteCommand();
                    locatStart.Status = "2";//要入库的储位改变状态 正在入库
                    Db.Updateable(locate).ExecuteCommand();
                    #endregion
                    //添加操作日志记录