wxw
17 小时以前 8717d1ab7f3387c052fa07436e996fe8ba2e19ca
Wms/WMS.BLL/HttpServer.cs
@@ -35,7 +35,7 @@
                #region 判断
                if (string.IsNullOrEmpty(palletNo))
                {
                    throw new Exception("托盘号不能为空");
                    throw new Exception("托盘号不能为空!");
                }
                if (string.IsNullOrEmpty(houseNo))
                {
@@ -50,7 +50,7 @@
                    throw new Exception("起始位置不能为空");
                }
                //获取储位信息
                var locateInfo = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.WareHouseNo == houseNo && m.LocatNo == Strlocate);
                var locateInfo = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.LocatNo == Strlocate);
                if (locateInfo == null)
                {
                    throw new Exception("未查询到空储位");
@@ -103,7 +103,7 @@
                    PalletNo = palletNo,
                    Qty = palletNum,
                    FullQty = pNum,
                    Status = "3", //上架完成
                    Status = "2", //上架完成
                    Type = "1", //0 物料托 1 空托
                    LotNo = "",
                    LotText = "",
@@ -170,10 +170,10 @@
                    InspectQty = 0,
                    ASNNo = modelpb.ASNNo,
                    ASNDetailNo = modelpb.ASNDetailNo,
                    WareHouseNo = locate.WareHouseNo,
                    RoadwayNo = locate.RoadwayNo,
                    AreaNo = locate.AreaNo,
                    LocatNo = locate.LocatNo,
                    //WareHouseNo = locate.WareHouseNo,
                    //RoadwayNo = locate.RoadwayNo,
                    //AreaNo = locate.AreaNo,
                    //LocatNo = locate.LocatNo,
                    PalletNo = modelpb.PalletNo,
                    PalletNo2 = modelpb.PalletNo2,
                    PalletNo3 = modelpb.PalletNo3,
@@ -257,8 +257,8 @@
                    BackDate = DateTime.Now,  //返回时间
                    StartRoadway = "",            // 起始巷道
                    StartLocat = Strlocate,//起始位置
                    EndLocat = locateInfo.LocatNo,//目标位置
                    EndRoadway = locateInfo.RoadwayNo,  // 目标巷道
                    EndLocat = locate.LocatNo,//目标位置
                    EndRoadway = locate.RoadwayNo,  // 目标巷道
                    PalletNo = palletNo,//托盘码
                    IsSend = 1,//是否可再次下发
                    IsCancel = 1,//是否可取消
@@ -320,7 +320,7 @@
                #endregion
                return null;
                return comDto;
            }
            catch (Exception e)
            {
@@ -720,18 +720,18 @@
                //托盘库存信息
                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList();
                //验证物料是否有成品
                foreach (var item in stockDetail)
                {
                    var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
                    if (skuItem.SkuNo == "100099")
                    {
                        continue;
                    }
                    if (skuItem.Type != "2")
                    {
                        throw new Exception("托盘上有不是成品的物料");
                    }
                }
                //foreach (var item in stockDetail)
                //{
                //    var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
                //    if (skuItem.SkuNo == "100099")
                //    {
                //        continue;
                //    }
                //    if (skuItem.Type != "2")
                //    {
                //        throw new Exception("托盘上有不是成品的物料");
                //    }
                //}
                var upShelfOld = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1"));
                if (upShelfOld != null) //正常入库
@@ -1027,18 +1027,18 @@
                var oldTaskNo = "";  //旧任务号
                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList();
                //验证物料是否有成品
                foreach (var item in stockDetail)
                {
                    var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
                    if (skuItem.SkuNo == "100099")
                    {
                        continue;
                    }
                    if (skuItem.Type != "2")
                    {
                        throw new Exception("托盘上有不是成品的物料");
                    }
                }
                //foreach (var item in stockDetail)
                //{
                //    var skuItem = skuList.First(m => m.SkuNo == item.SkuNo);
                //    if (skuItem.SkuNo == "100099")
                //    {
                //        continue;
                //    }
                //    if (skuItem.Type != "2")
                //    {
                //        throw new Exception("托盘上有不是成品的物料");
                //    }
                //}
                
                var upShelfOld = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1"));
@@ -1468,7 +1468,7 @@
                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
                //判断是否是回流入库完成
                if (!stockDetail.Any())
                if (!stockDetail.Any() && task.EndLocat!= "B100101")//B100101是空托盘收集器,不用校验库存
                {
                    throw new Exception("没有查询到库存信息");
                }
@@ -1763,9 +1763,9 @@
                    {
                        throw new Exception("储位损坏不能出库");
                    }
                    if (locate.WareHouseNo != "W02")
                    if (locate.WareHouseNo != "W02" && locate.WareHouseNo != "W04")
                    {
                        throw new Exception("托盘不在货架库上");
                        throw new Exception("托盘不在货架库上也不在平库");
                    }
                    var locateEnd = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//当前出库的目标储位信息
                    if (locateEnd == null)
@@ -1774,11 +1774,20 @@
                    }
                    else if (locateEnd.Status != "0")
                    {
                        throw new Exception("目标储位状态不是空储位");
                        var logEnd = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.Status == "1" && w.EndLocat == locateEnd.LocatNo);
                        if (logEnd != null && logEnd.PalletNo != palletNo)
                        {
                            throw new Exception("目标储位状态不是空储位");
                        }
                        var detailEnd = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == locateEnd.LocatNo);
                        if (detailEnd != null && detailEnd.PalletNo != palletNo)
                        {
                            throw new Exception("目标储位状态不是空储位");
                        }
                    }
                    #endregion
                    if (locate.Status == "1") //有物品
                    if (locate.WareHouseNo == "W02" && locate.Status == "1") //有物品
                    {
                        #region 添加出库任务
@@ -1857,9 +1866,9 @@
                        Db.Updateable(item).ExecuteCommand();
                        #endregion
                    }
                    else if (locate.Status == "3") //出库中
                    else if (locate.Status == "3" || locate.WareHouseNo == "W04") //出库中或已在平库
                    {
                        #region 改变数据
                        //判断是否是已经出过库又回库(状态为待拣货的 1)
@@ -1883,21 +1892,31 @@
                                }
                            }
                        }
                        var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
                        if (taskNo == null)
                        if (locate.WareHouseNo == "W04")
                        {
                            taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//当前有同托盘不同物料出库
                            item.TaskNo = "";
                            item.Status = "2"; // 出库分配信息状态改为正在执行
                            item.OutMode = item.OutMode;//出库口
                            //item.UnstackingMode = unstackingMode2;//拆垛模式
                            Db.Updateable(item).ExecuteCommand();
                        }
                        if (taskNo == null)
                        else
                        {
                            throw new Exception($"托盘号:{item.PalletNo},出库异常");
                        }
                        item.TaskNo = taskNo.TaskNo;
                        item.Status = "1"; // 出库分配信息状态改为正在执行
                        item.OutMode = item.OutMode;//出库口
                        //item.UnstackingMode = unstackingMode2;//拆垛模式
                        Db.Updateable(item).ExecuteCommand();
                            var taskNo = Db.Queryable<LogTask>().First(m => m.OrderType == "1" && m.TaskNo != item.TaskNo && m.Status == "1" && m.PalletNo == item.PalletNo);
                            if (taskNo == null)
                            {
                                taskNo = logTaskList.FirstOrDefault(m => m.PalletNo == item.PalletNo);//当前有同托盘不同物料出库
                            }
                            if (taskNo == null)
                            {
                                throw new Exception($"托盘号:{item.PalletNo},出库异常");
                            }
                            item.TaskNo = taskNo.TaskNo;
                            item.Status = "1"; // 出库分配信息状态改为正在执行
                            item.OutMode = item.OutMode;//出库口
                            //item.UnstackingMode = unstackingMode2;//拆垛模式
                            Db.Updateable(item).ExecuteCommand();
                        }
                        #endregion
                    }
                    else if (locate.Status == "5") //移出中
@@ -2008,15 +2027,15 @@
                //Db.Insertable(exTask).ExecuteCommand();
                // 调用Limes接口发起请验
                var sendModel = new SendLimesModel()
                // 调用Sqp接口发起请验
                var sendModel = new SendSapQcDetailVm()
                {
                    QcNo = data.QcNo,
                    SkuNo = data.SkuNo,
                    Qty = data.Qty.ToString(),
                    LotNo = data.LotNo,
                    SupplierLot = data.SupplierLot,
                    RequestUser = userName,                       // 请验人
                    skuNo=data.SkuNo,
                    skuName = data.SkuNo,
                    lotNo = data.LotNo,
                    Qty = Convert.ToDecimal(data.Qty),
                    SupplierLot = data.SupplierLot
                };
                var jsonData = JsonConvert.SerializeObject(sendModel);
                string response = "";
@@ -2024,7 +2043,7 @@
                try
                {
                    var time1 = DateTime.Now;//发送时间 .ToString("yyyy-MM-dd HH:mm:ss")
                    //response = HttpHelper.DoPost(url, jsonData, "上传Limes系统发起请验", "Limes");
                    //response = HttpHelper.DoPost(url, jsonData, "上传Sap系统发起请验", "Sap");
                    var time2 = DateTime.Now;//返回时间 .ToString("yyyy-MM-dd HH:mm:ss")
                    ////解析返回数据