chengsc
2025-06-11 74ce2ccbae367b804028fbac431f22865f84427a
Wms/WMS.BLL/HttpServer.cs
@@ -26,6 +26,298 @@
        private static readonly SqlSugarScope Db = DataContext.Db;
        public HttpServer() { }
        public OutCommandDto RequestPalletIn(string palletNo, string houseNo, int palletNum, string Strlocate)
        {
            return null;
            //try
            //{
            //    #region 判断
            //    if (string.IsNullOrEmpty(palletNo))
            //    {
            //        throw new Exception("托盘号不能为空");
            //    }
            //    if (string.IsNullOrEmpty(houseNo))
            //    {
            //        throw new Exception("仓库号不能为空");
            //    }
            //    if (palletNum <= 0)
            //    {
            //        throw new Exception("托盘数量不能小等0");
            //    }
            //    if (string.IsNullOrEmpty(Strlocate))
            //    {
            //        throw new Exception("起始位置不能为空");
            //    }
            //    //获取储位信息
            //    var locateInfo = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.WareHouseNo == houseNo && m.LocatNo == Strlocate);
            //    if (locateInfo == null)
            //    {
            //        throw new Exception("未查询到空储位");
            //    }
            //    if (locateInfo.Flag != "0")
            //    {
            //        throw new Exception("当前位置标识状态是非正常的");
            //    }
            //    #endregion
            //    #region MyRegion
            //    var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList();
            //    if (stockDetail.Count > 0)
            //    {
            //        throw new Exception("当前托盘在库内已有库存信息,请核实");
            //    }
            //    //获取托盘信息
            //    var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
            //    if (pallet == null)
            //    {
            //        throw new Exception("未查询到托盘信息");
            //    }
            //    if (pallet.Status != "0")
            //    {
            //        throw new Exception("托盘状态不能未使用状态");
            //    }
            //    //获取托盘信息
            //    var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == "100099");
            //    var pNum = 0;
            //    var bNum = 0;
            //    new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
            //    var datetime = Db.GetDate();
            //    Db.BeginTran();
            //    // 插入托盘绑定表
            //    var modelpb = new BllPalletBind
            //    {
            //        ASNNo = "",
            //        ASNDetailNo = 0,
            //        TaskNo = "", //任务号
            //        PalletNo = palletNo,
            //        Qty = palletNum,
            //        FullQty = pNum,
            //        Status = "3", //上架完成
            //        Type = "1", //0 物料托 1 空托
            //        LotNo = "",
            //        LotText = "",
            //        SupplierLot = "",
            //        InspectMark = "0", //0 否 1 是
            //        BitPalletMark = pNum == palletNum ? "0" : "1",
            //        IsBale = "0",
            //        IsBelt = "0",
            //        CreateUser = 0,
            //        CreateTime = Db.GetDate()
            //    };
            //    var id = Db.Insertable(modelpb).ExecuteReturnIdentity();
            //    #region 库存明细
            //    var sd1 = new DataStockDetail()
            //    {
            //        LotNo = modelpb.LotNo,
            //        LotText = modelpb.LotText,
            //        SupplierLot = modelpb.SupplierLot,
            //        SkuNo = sku.SkuNo,
            //        SkuName = sku.SkuName,
            //        Standard = sku.Standard,
            //        Qty = modelpb.Qty,
            //        LockQty = 0,
            //        FrozenQty = 0,
            //        InspectQty = 0,
            //        ASNNo = modelpb.ASNNo,
            //        ASNDetailNo = modelpb.ASNDetailNo,
            //        WareHouseNo = "",
            //        RoadwayNo = "",
            //        AreaNo = "",
            //        LocatNo = "",
            //        PalletNo = modelpb.PalletNo,
            //        PalletNo2 = modelpb.PalletNo2,
            //        PalletNo3 = modelpb.PalletNo3,
            //        PalletTags = "0",
            //        CompleteTime = datetime,
            //        ProductionTime = modelpb.ProductionTime,
            //        ExpirationTime = modelpb.ExpirationTime,
            //        Status = "0",
            //        InspectMark = modelpb.InspectMark,
            //        InspectStatus = sku.IsInspect,
            //        BitPalletMark = modelpb.BitPalletMark,
            //        PackagNo = sku.PackagNo,
            //        IsBale = modelpb.IsBale,
            //        IsBelt = modelpb.IsBelt,
            //        IsDel = "0",
            //        CreateUser = 0,
            //        CreateTime = datetime
            //    };
            //    var sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity();
            //    #endregion
            //    #region 库存
            //    var dataStock1 = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo);
            //    if (dataStock1 != null)
            //    {
            //        dataStock1.Qty += modelpb.Qty;
            //        if (modelpb.InspectMark == "1")
            //        {
            //            dataStock1.IsSampling = "0";
            //        }
            //        Db.Updateable(dataStock1).ExecuteCommand();
            //    }
            //    else
            //    {
            //        var stock = new DataStock()
            //        {
            //            SkuNo = sku.SkuNo,
            //            SkuName = sku.SkuName,
            //            Standard = sku.Standard,
            //            LotNo = "",
            //            LotText = "",
            //            Qty = modelpb.Qty,
            //            LockQty = 0,
            //            FrozenQty = 0,
            //            IsSampling = "0",
            //            IsDel = "0",
            //            CreateUser = 0,
            //            CreateTime = datetime
            //        };
            //        Db.Insertable(stock).ExecuteCommand();
            //    }
            //    #endregion
            //    #region 申请储位
            //    SysStorageLocat locate;
            //    var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo);
            //    if (sku == null)
            //    {
            //        throw new Exception("物料信息中未查询到入库单明细包含的物料信息,不可入库");
            //    }
            //    //判断物料是否含有类别信息
            //    if (string.IsNullOrWhiteSpace(sku.CategoryNo))
            //    {
            //        throw new Exception($"物料:{sku.SkuNo}未查询到类别信息");
            //    }
            //    var skuCategory = skuCategoryList.FirstOrDefault(m => m.CategoryNo == sku.CategoryNo);
            //    if (skuCategory == null)
            //    {
            //        throw new Exception($"未在类别信息中查询到物料:{sku.SkuNo}包含的类别");
            //    }
            //    var areaStr = skuCategory.AreaNo.Split(",");
            //    var areaList = new List<string>();
            //    foreach (var item in areaStr)
            //    {
            //        areaList.Add(item);
            //    }
            //    locate = allotLocate.GetSuiTableLocate(houseNo, areaList, "", ceng);
            //    #endregion
            //    #region 添加任务
            //    //添加巷道使用记录
            //    var log = new SysRoadwayUseLog
            //    {
            //        RoadwayNo = locateInfo.RoadwayNo,
            //        WareHouseNo = houseNo,
            //        Row = 0,
            //        Column = 0,
            //        Layer = 0,
            //    };
            //    Db.Insertable(log).ExecuteCommand();
            //    var taskNo = new Common().GetMaxNo("TK");
            //    var inTask = new LogTask    //入库任务
            //    {
            //        TaskNo = taskNo,
            //        Sender = "WMS",
            //        Receiver = "WCS",
            //        IsSuccess = 1, //是否下发成功 0失败 1成功
            //        SendDate = DateTime.Now,  //发送时间
            //        BackDate = DateTime.Now,  //返回时间
            //        StartRoadway = "",            // 起始巷道
            //        StartLocat = locate,//起始位置
            //        EndLocat = locateInfo.LocatNo,//目标位置
            //        EndRoadway = locateInfo.RoadwayNo,  // 目标巷道
            //        PalletNo = palletNo,//托盘码
            //        IsSend = 1,//是否可再次下发
            //        IsCancel = 1,//是否可取消
            //        IsFinish = 1,//是否可完成
            //        Type = "0",//任务类型 0 入库任务 1 出库任务  2 移库任务
            //        Status = "1",//任务状态0:等待执行1正在执行2执行完成
            //        OrderType = "0",//0 入库单 1 出库单  2 盘点单  3 移库单
            //        Msg = $"{locateInfo.LocatNo}到=>>" +  + "的入库任务", //关键信息
            //    };
            //    Db.Insertable(inTask).ExecuteCommand();
            //    var asnNo = "";
            //    //添加托盘上架记录
            //    var upShelf = new BllPalletUpShelf()
            //    {
            //        TaskNo = inTask.TaskNo,
            //        TraceNo = asnNo,
            //        PalletNo = palletNo,
            //        SkuNo = stockModel.SkuNo,
            //        SkuName = stockModel.SkuName,
            //        LotNo = stockModel.LotNo,
            //        Status = "1",
            //        WareHouseNo = houseNo,
            //        RoadwayNo = locate.RoadwayNo,
            //        AreaNo = locate.AreaNo,
            //        LocatNo = locate.LocatNo,
            //        CreateUser = 0,
            //    };
            //    Db.Insertable(upShelf).ExecuteCommand();
            //    locate.Status = "2";
            //    Db.Updateable(locate).ExecuteCommand();
            //    Db.CommitTran();
            //    comDto = new OutCommandDto()
            //    {
            //        TaskNo = taskNo, // 任务号
            //        TaskType = "0",// 任务类型
            //        PalletNo = palletNo,//托盘号
            //        StartRoadway = inTask.StartRoadway,
            //        StartLocate = inTask.StartLocat, // 起始位置
            //        EndLocate = inTask.EndLocat, // 目标位置
            //        EndRoadway = inTask.EndRoadway,   // 目标巷道
            //        Order = 999,
            //        Type = PLCTypeEnum.AGV
            //    };
            //    #endregion
            //    // 更改托盘使用状态
            //    string sqlStr = string.Empty;
            //    sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';";
            //    Db.Ado.ExecuteCommand(sqlStr);
            //    Db.CommitTran();
            //    #endregion
            //    return null;
            //}
            //catch (Exception e )
            //{
            //    throw new Exception(e.Message);
            //}
        }
        /// <summary>
        /// 申请储位  (立体库)
        /// </summary>