admin
1 天以前 9684140a5802b35c1b8f38a3c936748c5e6abd7c
格式化代码
1个文件已修改
120 ■■■■ 已修改文件
Wms/WMS.BLL/HttpServer.cs 120 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/HttpServer.cs
@@ -22,7 +22,7 @@
namespace WMS.BLL
{
    public class HttpServer:IHttpServer
    public class HttpServer : IHttpServer
    {
        private static readonly SqlSugarScope Db = DataContext.Db;
        public HttpServer() { }
@@ -321,7 +321,7 @@
                #endregion
                Db.CommitTran();
                #endregion
@@ -343,7 +343,7 @@
        /// <param name="ceng"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public OutCommandDto RequestLocation(string palletNo, string houseNo,string ceng)
        public OutCommandDto RequestLocation(string palletNo, string houseNo, string ceng)
        {
            try
            {
@@ -374,8 +374,8 @@
                    throw new Exception("托盘条码不受WMS管理,不可入库!");
                #region 
                var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                //物料类别信息
                var skuCategoryList = Db.Queryable<SysMaterialCategory>().Where(m => m.IsDel == "0").ToList();
@@ -413,7 +413,7 @@
                            StartLocate = beingTask.StartLocat, // 起始位置
                            EndLocate = beingTask.EndLocat, // 目标位置
                            EndRoadway = beingTask.EndRoadway,                           //  目标巷道
                            Order = 999,
                            Type = PLCTypeEnum.AGV
                        };
@@ -432,7 +432,7 @@
                                Db.Updateable(upShelfOld).ExecuteCommand();
                            }
                        }
                        return comDto;
                    }
                    else
@@ -486,7 +486,7 @@
                            if (beingTask.IsSuccess == 0)
                            {
                                beingTask.IsSuccess = 1;
                            }
                            beingTask.Status = "1";
                            Db.Updateable(beingTask).ExecuteCommand();
@@ -528,7 +528,7 @@
                #region 申请储位
                SysStorageLocat locate;
                                var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
                var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
                if (sku == null)
                {
                    throw new Exception("物料信息中未查询到入库单明细包含的物料信息,不可入库");
@@ -552,16 +552,14 @@
                    areaList.Add(item);
                }
                locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "",ceng);
                locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", ceng);
                #endregion
                Db.BeginTran();
                try
                {
                    //添加巷道使用记录
                    var log = new SysRoadwayUseLog
                    {
@@ -593,7 +591,6 @@
                        Status = "1",//任务状态0:等待执行1正在执行2执行完成
                        OrderType = "0",//0 入库单 1 出库单  2 盘点单  3 移库单
                        Msg = "入库口到=>>" + locate.LocatNo + "的入库任务", //关键信息
                    };
                    Db.Insertable(inTask).ExecuteCommand();
                    var asnNo = "";
@@ -601,7 +598,7 @@
                    foreach (DataStockDetail stockModel in stockDetail)
                    {
                        var bindModel = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.Status == "2"
                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m=>m.CreateTime).First();
                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m => m.CreateTime).First();
                        if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.TaskNo))
                        {
                            bindModel.TaskNo = taskNo;
@@ -634,11 +631,11 @@
                        };
                        Db.Insertable(upShelf).ExecuteCommand();
                    }
                    locate.Status = "2";
                    Db.Updateable(locate).ExecuteCommand();
                    Db.CommitTran();
                    comDto = new OutCommandDto()
                    {
@@ -650,7 +647,7 @@
                        StartLocate = inTask.StartLocat, // 起始位置
                        EndLocate = inTask.EndLocat, // 目标位置 
                        EndRoadway = inTask.EndRoadway,   // 目标巷道
                        Order = 999,
                        Type = PLCTypeEnum.AGV
                    };
@@ -662,7 +659,6 @@
                    throw new Exception(ex.Message);
                }
                #endregion
                return comDto;
            }
@@ -711,14 +707,14 @@
                #endregion
                OutCommandDto comDto;//返回wcs的入库命令
                #region 代码块
                //查询托盘绑定信息(状态为等待入库/正在执行的)
                var skuNo = ""; //入库物料
                var lotNo = ""; //入库批次
                //物料信息
                var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                //物料类别信息
@@ -796,11 +792,11 @@
                    #region 判断该托盘,是否符合回库功能设定的回库规则
                    //获取对应回库规则
                    var function = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0"&& a.FunSetNo == "Fun041" && a.IsEnable == "NO");
                    var function = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "Fun041" && a.IsEnable == "NO");
                    if (function != null)
                    {
                        //拣货完成后允许托盘回库
                        var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0"&& a.LotNo == stockDetail[0].LotNo && a.PalletNo == palletNo && a.SkuNo == stockDetail[0].SkuNo);
                        var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.LotNo == stockDetail[0].LotNo && a.PalletNo == palletNo && a.SkuNo == stockDetail[0].SkuNo);
                        //验证拣货明细是否存在
                        if (allot != null)
@@ -816,7 +812,7 @@
                }
                var allotLocate = new AllotLocation();
                #region 根据sku确认区域划分
                //物料信息
@@ -843,7 +839,7 @@
                {
                    areaList.Add(item);
                }
                var roadStr = Db.Queryable<SysStorageRoadway>().Where(m => m.IsDel == "0" && m.Status == "0").Select(m=>m.RoadwayNo).ToList();
                var roadStr = Db.Queryable<SysStorageRoadway>().Where(m => m.IsDel == "0" && m.Status == "0").Select(m => m.RoadwayNo).ToList();
                //巷道组信息
                var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo) && !string.IsNullOrWhiteSpace(m.RoadwayNo) && roadStr.Contains(m.RoadwayNo))
                    .GroupBy(m => m.RoadwayNo)
@@ -908,11 +904,11 @@
                    var asnNo = "";
                    // 添加托盘绑定表托盘入库任务号  liudl
                    foreach (DataStockDetail stockModel in stockDetail)
                    {
                        var bindModel = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.Status == "2"
                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m=>m.CreateTime).First();
                        && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo).OrderByDescending(m => m.CreateTime).First();
                        if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.TaskNo))
                        {
                            bindModel.TaskNo = taskNo;
@@ -923,7 +919,7 @@
                        }
                    }
                    foreach (DataStockDetail stockModel in stockDetail)
                    {
                        //添加托盘上架记录
@@ -959,7 +955,7 @@
                        StartLocate = inTask.StartLocat, // 起始位置
                        EndLocate = inTask.EndLocat, // 目标位置 
                        EndRoadway = inTask.EndRoadway,   // 目标巷道
                        Order = 999,
                        Type = PLCTypeEnum.ConveyorLine
                    };
@@ -1030,12 +1026,12 @@
                #region 
                //查询托盘绑定信息(状态为等待入库的)
                var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList();
                //物料类别信息
                var skuCategoryList = Db.Queryable<SysMaterialCategory>().Where(m => m.IsDel == "0").ToList();
                var skuNo = "";//入库物料
                var isAddTask = true; //是否添加新任务
                var oldTaskNo = "";  //旧任务号
@@ -1053,12 +1049,12 @@
                //        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) //有上架入库信息
                {
                    var beingTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == upShelfOld.TaskNo);
                    if (beingTask == null)
                    {
@@ -1076,7 +1072,7 @@
                            StartLocate = beingTask.StartRoadway, // 起始位置
                            EndLocate = beingTask.EndLocat, // 目标位置
                            EndRoadway = beingTask.EndRoadway, // 目标巷道
                            Order = 999,
                            Type = PLCTypeEnum.ShuttleCar,
                        };
@@ -1098,7 +1094,7 @@
                        oldTaskNo = beingTask.TaskNo;
                        skuNo = upShelfOld.SkuNo;//入库物料
                    }
                }
                else //申请入库
                {
@@ -1142,7 +1138,7 @@
                #region 申请储位
                SysStorageLocat locate;
                var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
                if (sku == null)
                {
@@ -1289,7 +1285,7 @@
                    locate.Status = "2";
                    Db.Updateable(locate).ExecuteCommand();
                    Db.CommitTran();
                    comDto = new OutCommandDto()
                    {
@@ -1347,7 +1343,7 @@
                    //添加操作日志记录
                    var k = new OperationASNServer().AddLogOperationAsn("入库作业", "入库日志", taskNo, "完成", $"点击完成按钮、完成任务号为:{taskNo}的任务", userId);
                }
                var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat);
                if (locate == null)
                {
@@ -1482,7 +1478,7 @@
                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
                //判断是否是回流入库完成
                if (!stockDetail.Any() && task.EndLocat!= "B100101")//B100101是空托盘收集器,不用校验库存
                if (!stockDetail.Any() && task.EndLocat != "B100101")//B100101是空托盘收集器,不用校验库存
                {
                    throw new Exception("没有查询到库存信息");
                }
@@ -1498,7 +1494,7 @@
                {
                    throw new Exception($"未查询到任务中的目标储位信息");
                }
                task.Status = "2";//任务状态
                task.IsSend = 0;
                task.IsCancel = 0;
@@ -1539,7 +1535,7 @@
                    locate.Status = "0";
                    Db.Updateable(locate).ExecuteCommand();
                }
                if (locate2.LocatNo == "B040101")
                {
                    locate2.Status = "0";
@@ -1550,7 +1546,7 @@
                    locate2.Status = "1";
                    Db.Updateable(locate2).ExecuteCommand();
                }
                Db.Updateable(stockDetail).ExecuteCommand();
                Db.CommitTran();
@@ -1629,7 +1625,7 @@
                    //目标储位改为有货物 1
                    locate2.Status = "1";
                    Db.Updateable(locate2).ExecuteCommand();
                    foreach (var item in stockDetail)
                    {
                        item.WareHouseNo = locate2.WareHouseNo;
@@ -1638,7 +1634,7 @@
                        item.LocatNo = locate2.LocatNo;
                    }
                    Db.Updateable(stockDetail).ExecuteCommand();
                    #endregion
@@ -1671,13 +1667,13 @@
        /// <param name="str"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId,string outMode, string palletNo, int userId, string url, out string str)
        public List<OutCommandDto> IssueOutHouseLk(string soNo, string detailId, string outMode, string palletNo, int userId, string url, out string str)
        {
            try
            {
                var outDto1 = new List<OutCommandDto>(); //出库数据的集合(深度为1的储位)
                //记录错误信息的集合 //1:当前要出库的储位正在移出、2 出库的托盘储位信息错误(在储位表中未查询到)、3储位损坏不能出库、4 要出库的托盘正在入库
                                                         //记录错误信息的集合 //1:当前要出库的储位正在移出、2 出库的托盘储位信息错误(在储位表中未查询到)、3储位损坏不能出库、4 要出库的托盘正在入库
                var com = new Common();
                var notice = Db.Queryable<BllExportNotice>().First(m => m.SONo == soNo && m.IsDel == "0");
@@ -1690,12 +1686,12 @@
                    throw new Exception("仓库号错误");
                }
                var intDetailId = int.Parse(detailId);
                if (intDetailId <=0)
                if (intDetailId <= 0)
                {
                    throw new Exception("选择的出库单明细参数错误");
                }
                //所有要出库的出库分配信息(未下发的信息和待拣货的信息)
                var item = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == soNo && a.SODetailNo == intDetailId && a.PalletNo == palletNo && a.Status == "0" );
                var item = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == soNo && a.SODetailNo == intDetailId && a.PalletNo == palletNo && a.Status == "0");
                if (item == null) //判断是否有需要下发的出库流水
                {
                    throw new Exception("当前出库单据无需要下发的托盘");
@@ -1718,9 +1714,9 @@
                    var outLocatelist1 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B02" && m.Flag == "0").ToList();
                    var outLocatelist2 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B05" && m.Flag == "0").ToList();
                    //循环分配的信息生成出库任务
                    var outModeLocate = outMode;
                    var taskNoStr = "";
                    // 储位号
@@ -1930,19 +1926,19 @@
                            item.OutMode = item.OutMode;//出库口
                            //item.UnstackingMode = unstackingMode2;//拆垛模式
                            Db.Updateable(item).ExecuteCommand();
                        }
                        }
                        #endregion
                    }
                    else if (locate.Status == "5") //移出中
                    {
                        throw new Exception("当前要出库的储位正在移出");
                    }
                    //添加操作日志记录
                    var k = new OperationSOServer().AddLogOperationSo("PDA模块", "下发出库", soNo, "出库", $"点击出库按钮出库单号为:{soNo}的出库单", userId);
                    Db.CommitTran();
                    if (outDto1.Count > 0)
                    {
                        // 正式运行程序放开
@@ -2010,7 +2006,7 @@
                {
                    throw new Exception($"未找到{soNo}出库单信息");
                }
                var detail=Db.Queryable<DataStockDetail>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
                var detail = Db.Queryable<DataStockDetail>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
                if (detail.WareHouseNo != "W04")
                {
                    throw new Exception("仓库号错误");
@@ -2102,11 +2098,11 @@
                var sendModel = new SendSapQcDetailVm()
                {
                    QcNo = data.QcNo,
                    skuNo=data.SkuNo,
                    skuName = data.SkuNo,
                    skuNo = data.SkuNo,
                    skuName = data.SkuNo,
                    lotNo = data.LotNo,
                    Qty = Convert.ToDecimal(data.Qty),
                    SupplierLot = data.SupplierLot
                    SupplierLot = data.SupplierLot
                };
                var jsonData = JsonConvert.SerializeObject(sendModel);
                string response = "";
@@ -2121,7 +2117,7 @@
                    //var limesModel = JsonConvert.DeserializeObject<LimesModel>(response);
                    //if (limesModel.Success == 0)
                    //{
                    // 更新请验单信息
                    data.Status = "1";
@@ -2135,7 +2131,7 @@
                    //}
                    //if (limesModel.Success == -1)
                    //{
                    //    throw new Exception(limesModel.Message);
                    //}
                }