Administrator
2024-07-07 22f39e0c57932ad67b506f649a5a1643f1aba708
修改问题
1个文件已修改
111 ■■■■ 已修改文件
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -4078,38 +4078,30 @@
                    {
                        throw new Exception("未查询到任务信息");
                    }
                    //获取对应库位信息
                    var startlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat);
                    if (startlocat == null)
                    if (task.OrderType == "0" || task.OrderType == "3")//入库或移库
                    {
                        throw new Exception("未查询到储位信息");
                    }
                    startlocat.Status = "0";//修改分配信息状态
                    //获取储位信息
                    var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat);
                    //获取移库任d务对应目标储位信息
                    SysStorageLocat endlocat = new SysStorageLocat();
                    if (task.Type == "2")
                    {
                        endlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.EndLocat);
                        //获取目标库位信息
                        var endlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.LocatNo == task.EndLocat);
                        if (endlocat == null)
                        {
                            throw new Exception("未查询到目标储位信息");
                        }
                    }
                    if (locat == null)
                    {
                        Db.RollbackTran();
                        throw new Exception("未查询到储位信息,请核实!");
                    }
                    locat.Status = "1"; //有物品
                    Db.Updateable(locat).ExecuteCommand();
                    if (endlocat != null)
                    {
                        endlocat.Status = "0"; //空储位 0
                        endlocat.Status = "0";//空储位
                        //修改目标储位状态
                        Db.Updateable(endlocat).ExecuteCommand();
                    }
                    if (task.OrderType == "1" || task.OrderType == "3")//出库或移库
                    {
                        //获取起始库位信息
                        var startlocat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.LocatNo == task.StartLocat);
                        if (startlocat == null)
                        {
                            throw new Exception("未查询到起始储位信息");
                        }
                        startlocat.Status = "1";//有物品
                        //修改起始储位状态
                        Db.Updateable(startlocat).ExecuteCommand();
                    }
                    //修改任务 
                    task.IsSuccess = 1;
                    task.IsSend = 0;
@@ -4118,75 +4110,6 @@
                    task.Status = "4";
                    task.CancelDate = DateTime.Now;
                    Db.Updateable(task).ExecuteCommand();
                    //出库分配信息
                    var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.TaskNo == taskNo).ToList();
                    foreach (var item in allot)
                    {
                        item.Status = "0";//修改分配信息状态
                        item.TaskNo = "";
                        var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.SODetailNo);
                        if (noticeDetail == null)
                        {
                            throw new Exception("未查询到出库单明细信息");
                        }
                        noticeDetail.FactQty -= item.Qty; //修改出库单明细的下架数量
                        Db.Updateable(noticeDetail).ExecuteCommand();
                        if (noticeDetail.FactQty == 0)
                        {
                            var noticeDetail2 = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == item.SONo && m.Id != noticeDetail.Id).ToList();
                            var num = noticeDetail2.Count(m => m.FactQty > 0);
                            //判断出库单的所有明细是否都为0;如果为0变更出库单状态为已分配
                            if (num == 0)
                            {
                                var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == item.SONo);
                                notice.Status = "2";
                                Db.Updateable(notice).ExecuteCommand();
                            }
                        }
                    }
                    //判断是否存在分配信息
                    if (allot == null)
                    {
                        //获取库存明细
                        var stockDetail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.PalletNo == task.PalletNo);
                        //获取库存
                        var datastock = Db.Queryable<DataStock>().First(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo);
                        //获取储位信息
                        var locate = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == stockDetail.LocatNo);
                        //判断是否为空托盘
                        if (stockDetail.SkuNo == "100099")
                        {
                            //修改库存明细
                            stockDetail.LockQty -= stockDetail.Qty; //锁定数量
                            stockDetail.Status = "0"; //库存状态 0:待分配
                            //修改库存总表
                            datastock.LockQty -= (int)stockDetail.Qty; //锁定数量
                            //修改储位状态
                            locate.Status = "1"; //储位状态 1:有物品
                            Db.Updateable(stockDetail).ExecuteCommand();
                            Db.Updateable(datastock).ExecuteCommand();
                            Db.Updateable(locate).ExecuteCommand();
                        }
                        else
                        {
                            //修改储位状态
                            locate.Status = "1"; //储位状态 1:有物品
                            Db.Updateable(locate).ExecuteCommand();
                        }
                    }
                    else
                    {
                        Db.Updateable(allot).ExecuteCommand();
                    }
                    //添加操作日志记录
                    var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库日志", taskNo, "取消", $"点击取消按钮、取消了任务号为:{taskNo}的任务", (int)userId);