yyk
2024-08-22 1310b47a24f0cc70f0128c820bd490dca6a1a921
Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -1226,7 +1226,7 @@
            return outDtoList;
            #endregion
        }
        /// <summary>
        /// 视觉盘点
        /// </summary>
@@ -1423,9 +1423,8 @@
                #endregion
                if (locate.Status == "1") //有物品
                {
                    #region 添加出库任务
                    #region 添加视觉盘点任务
                    var taskNo = new Common().GetMaxNo("TK");
                    //添加出库任务
                    var exTask = new LogTask
                    {
                        TaskNo = taskNo,
@@ -1440,8 +1439,8 @@
                        IsFinish = 1,//是否可完成
                        Type = "1",//任务类型 0 入库任务 1 出库任务  2 移库任务
                        Status = "0",//任务状态0:等待执行1正在执行2执行完成
                        OrderType = "4",//0 入库单 1 出库单  2 盘点单  3 移库单 4视觉盘点
                        OrderType = "6",////0 入库单 1 出库单  2 盘点单  3 移库单 4 取样出库单 6视觉盘点
                        Msg = $"{locateNo}的视觉盘点任务",
                        CreateTime = time
                    };
                    await Db.Insertable(exTask).ExecuteCommandAsync();
@@ -1471,7 +1470,7 @@
                            await Db.Updateable(notice).ExecuteCommandAsync();
                        }
                    }
                    locate.Status = "3"; //要出库的储位改变状态 正在出库
                    //locate.Status = "3"; //要出库的储位改变状态 正在出库
                    await Db.Updateable(locate).ExecuteCommandAsync();
                    item.TaskNo = exTask.TaskNo; // 出库分配信息中更新任务号
@@ -1572,6 +1571,42 @@
            return outDtoList;
            #endregion
        }
        /// <summary>
        /// 视觉盘点传结果
        /// </summary>
        /// <param name="crNo"></param>
        /// <param name="url"></param>
        /// <param name="str"></param>
        /// <returns></returns>
        public async Task CheckVision(CheckVm model)
        {
            if (string.IsNullOrWhiteSpace(model.CrNo))
            {
                throw Oops.Bah("盘点单据不能为空");
            }
            if (string.IsNullOrWhiteSpace(model.SkuNo))
            {
                throw Oops.Bah("物料不能为空");
            }
            if (string.IsNullOrWhiteSpace(model.LotNo))
            {
                throw Oops.Bah("物料批次不能为空");
            }
            if (string.IsNullOrWhiteSpace(model.PalletNo))
            {
                throw Oops.Bah("托盘码不能为空");
            }
            //盘点明细
            var checkDetail = await Db.Queryable<BllStockCheckDetail>().FirstAsync(m =>
                m.IsDel == "0" && m.CRNo == model.CrNo && m.PalletNo == model.PalletNo && m.SkuNo == model.SkuNo && m.LotNo == model.LotNo);
            if (checkDetail == null)
            {
                throw Oops.Bah("未查询到未盘点的盘点明细信息");
            }
            var modSku = await Db.Queryable<SysMaterials>().Where(s => s.SkuNo == model.SkuNo).FirstAsync();
        }
        //盘点出库完成
        public async Task CheckSuccess(string taskNo, int userId)
        {
@@ -1600,15 +1635,18 @@
                task.IsFinish = 0;
                task.FinishDate = DateTime.Now;//完成时间
                await Db.Updateable(task).ExecuteCommandAsync();
                locate.Status = "0"; // 更改当前任务中的储位状态(改为0空储位)
                await Db.Updateable(locate).ExecuteCommandAsync();
                foreach (var item in stockDetail)
                if(task.OrderType != "6")//视觉盘点不更改状态
                {
                    item.LocatNo = "";//储位更改(改为空)
                    item.WareHouseNo = "";//所属仓库更改(改为空)
                    item.RoadwayNo = "";//所属巷道更改(改为空)
                    item.AreaNo = "";//所属区域更改(改为空)
                    await Db.Updateable(item).ExecuteCommandAsync();
                    locate.Status = "0"; // 更改当前任务中的储位状态(改为0空储位)
                    await Db.Updateable(locate).ExecuteCommandAsync();
                    foreach (var item in stockDetail)
                    {
                        item.LocatNo = "";//储位更改(改为空)
                        item.WareHouseNo = "";//所属仓库更改(改为空)
                        item.RoadwayNo = "";//所属巷道更改(改为空)
                        item.AreaNo = "";//所属区域更改(改为空)
                        await Db.Updateable(item).ExecuteCommandAsync();
                    }
                }
                //盘点明细(更改状态)
                var checkDetails = await Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == 1 && m.PalletNo == task.PalletNo))).ToListAsync();