Administrator
2024-03-23 667736c9393c0f12814150c0c1cef77c078576e1
问题修改
7个文件已修改
321 ■■■■■ 已修改文件
HTML/views/SOSetting/ExportAllot.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/StatisticalReport/BoxInfor.html 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/AsnSetting/pingKuEnter.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/DataServer/StockServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/SOSetting/ExportAllot.html
@@ -284,7 +284,7 @@
                <script type="text/html" id="table-content-list2">
                    {{# function GetBtn2(d){
                            var html = '';
                            if(d.SkuNo != "100099"){
                            if(d.SkuNo != "100099" && d.BoxNo != ''){
                                html =`<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="sel"> 
                                    <i class="layui-icon layui-icon-edit"></i>详情</a>`;
                            } 
@@ -615,7 +615,7 @@
                { field: 'LotText', title: '批次描述', align: 'center', width: 150, },
                { field: 'SupplierLot', title: '供货批次', align: 'center', width: 110, },
                { field: 'Standard', title: '物料规格', align: 'center', width: 120, },
                {field: 'CreateTime',align: 'center',title: '拣货',width: 165,templet: '#templetCreateTime2'},
                //{field: 'CreateTime',align: 'center',title: '拣货时间',width: 165,templet: '#templetCreateTime2'},
                { field: 'caozuo', title: '操作', fixed: 'right', width: 100, align: 'left', toolbar: '#table-content-list2', "disabled": true }
            ]];
            var DetailColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//将表头数据进行url编码
HTML/views/StatisticalReport/BoxInfor.html
@@ -218,7 +218,12 @@
                            <p>已入库</p>
                        {{#  } else if(d.Status == '3') { }}
                            <p>已出库</p>
                        {{#  } }}
                        {{#  } else if(d.Status == '4') { }}
                            <p>已分配</p>
                        {{#  } else if(d.Status == '5') { }}
                            <p>已拣货</p>
                        {{#  } }}
                    </script>
                    <script type="text/html" id="InspectMarkStatus">
                        {{#  if(d.InspectMark=='0'){ }}
Pda/View/AsnSetting/pingKuEnter.html
@@ -462,6 +462,7 @@
                        }, function () {
                            clearTable()
                            $("#PalletNo").val('')
                            $("#LocatNo").val('')
                        });
                    } else { //不成功
                        layer.msg(res.msg, {
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -2196,10 +2196,10 @@
            try
            {
                #region 验证信息
                if (string.IsNullOrEmpty(model.ASNNo))
                {
                    throw new Exception("入库单不能为空!");
                }
                //if (string.IsNullOrEmpty(model.ASNNo))
                //{
                //    throw new Exception("入库单不能为空!");
                //}
                if (string.IsNullOrEmpty(model.PalletNo))
                {
                    throw new Exception("托盘条码不能为空!");
@@ -2591,7 +2591,7 @@
                        IsFinish = 0,//是否可完成
                        Type = "0",//任务类型 0 入库任务 1 出库任务  2 移库任务
                        Status = "2",//任务状态0:等待执行1正在执行2执行完成
                        OrderType = "0",//0 入库单 1 出库单  2 盘点单  3 移库单
                        OrderType = "3",//0 入库单 1 出库单  2 盘点单  3 移库单
                        Msg = "力诺平库的回库任务",
                    };
                    Db.Insertable(exTask).ExecuteCommand();
@@ -2603,8 +2603,14 @@
                //修改储位信息                                        
                Db.Updateable(storageLocat).ExecuteCommand();
                new OperationASNServer().AddLogOperationAsn("PDA模块", "平库入库", model.PalletNo, "完成", $"在PDA上完成单据号为:{model.ASNNo}的托盘码为:{model.PalletNo}的平库入库操作", (int)model.CreateUser);
                if (iscount == 1)
                {
                    new OperationASNServer().AddLogOperationAsn("PDA模块", "平库入库", model.PalletNo, "完成", $"在PDA上完成托盘码为:{model.PalletNo}的平库回流入库操作", (int)model.CreateUser);
                }
                else
                {
                    new OperationASNServer().AddLogOperationAsn("PDA模块", "平库入库", model.PalletNo, "完成", $"在PDA上完成单据号为:{model.ASNNo}的托盘码为:{model.PalletNo}的平库入库操作", (int)model.CreateUser);
                }
                Db.CommitTran();
            }
            catch (Exception ex)
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -837,6 +837,7 @@
                var comList = new List<BllCompleteDetail>();
                //判断是否存在拣货明细
                isComplete = 0;// 所有无箱码或一级箱码拣货时,拣货明细应重新插入数据(体现多次拣货流程记录)
                if (isComplete == 0)
                {
                    //添加拣货明细
@@ -875,8 +876,6 @@
                    Db.Updateable(complete).ExecuteCommand();
                }
                //修改出库分配信息
                allot.CompleteQty += int.Parse(PickQty);
@@ -2544,6 +2543,13 @@
                {
                    throw new Exception("新托盘码不能为空");
                }
                if (palletNo == palletNoNew)//原托盘与新托盘一致
                {
                    if (!string.IsNullOrEmpty(boxNo))
                    {
                        throw new Exception("原托盘与新托盘一致,请选择整托出库");
                    }
                }
                //出库单
                var notice = Db.Queryable<BllExportNotice>().First(m => m.IsDel == "0" && m.SONo == soNo);
@@ -2594,13 +2600,16 @@
                var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew);
                if (pinStockDetail != null)
                {
                    if (pinStockDetail.SONo != notice.SONo)
                    if (palletNo != palletNoNew)//非整托拣货
                    {
                        throw new Exception("拼托托盘上只能放同一个出库单下的物料!");
                    }
                    if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
                    {
                        isNew = true;
                        if (pinStockDetail.SONo != notice.SONo)
                        {
                            throw new Exception("拼托托盘上只能放同一个出库单下的物料!");
                        }
                        if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
                        {
                            isNew = true;
                        }
                    }
                    sdId = pinStockDetail.Id;
                }
@@ -2716,11 +2725,15 @@
                            CreateUser = userId
                        };
                        comList.Add(completeDetail);
                        if (palletNo != palletNoNew)
                        {
                            item.StockDetailId = sdId;
                            item.BindNo = null;//托盘绑定号
                            item.PalletNo = palletNoNew;
                        }
                        item.Status = "5";//箱支状态,0:未组托  1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货
                        //修改库存箱码明细
                        item.StockDetailId = sdId;
                        item.BindNo = null;//托盘绑定号
                        item.PalletNo = palletNoNew;
                        Db.Updateable(item).ExecuteCommand();
                        pickQty += item.Qty;
@@ -2732,17 +2745,27 @@
                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
                    allot.UpdateTime = DateTime.Now;
                    Db.Updateable(allot).ExecuteCommand();
                    //删除原托盘库存明细
                    Db.Deleteable(stockDetail).ExecuteCommand();
                    //改变托盘状态为:未使用
                    var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
                    if (pallet == null)
                    if (palletNo != palletNoNew)
                    {
                        throw new Exception("未在托盘表中查询到托盘信息");
                        //删除原托盘库存明细
                        Db.Deleteable(stockDetail).ExecuteCommand();
                        //改变原托盘状态为:未使用
                        var pallet = Db.Queryable<SysPallets>().First(m => m.PalletNo == palletNo && m.IsDel == "0");
                        if (pallet == null)
                        {
                            throw new Exception("未在托盘表中查询到托盘信息");
                        }
                        pallet.Status = "0";
                        Db.Updateable(pallet).ExecuteCommand();
                    }
                    pallet.Status = "0";
                    Db.Updateable(pallet).ExecuteCommand();
                    else
                    {
                        stockDetail.SONo = soNo;
                        Db.Updateable(stockDetail).ExecuteCommand();
                    }
                    //修改出库单明细拣货数量
                    noticeDetail.CompleteQty += pickQty;
                    Db.Updateable(noticeDetail).ExecuteCommand();
@@ -2877,6 +2900,7 @@
                            item.StockDetailId = sdId;
                            item.BindNo = null;//托盘绑定号
                            item.PalletNo = palletNoNew;
                            item.Status = "5";//箱支状态,0:未组托  1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货
                            Db.Updateable(item).ExecuteCommand();
                            pickQty += item.Qty;
@@ -2888,7 +2912,8 @@
                            item.BindNo = null;//托盘绑定号
                            item.PalletNo = palletNoNew;
                            item.BoxNo = item.BoxNo3;//将支码赋给箱码
                            item.BitBoxMark = "1";
                            item.BitBoxMark = "1";//零箱标记
                            item.Status = "5";//箱支状态,0:未组托  1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货
                            Db.Updateable(item).ExecuteCommand();
                            pickQty += item.Qty;
@@ -2901,6 +2926,7 @@
                                item.StockDetailId = sdId;
                                item.BindNo = null;//托盘绑定号
                                item.PalletNo = palletNoNew;
                                item.Status = "5";//箱支状态,0:未组托  1:已组托 2:已入库 3:已出库 4:已分配 5:已拣货
                                Db.Updateable(item).ExecuteCommand();
                            }
                            else
@@ -2993,10 +3019,13 @@
                }
                else
                {
                    //修改拼托托盘库存明细
                    pinStockDetail.Qty += pickQty;
                    pinStockDetail.LockQty += pickQty;
                    Db.Updateable(pinStockDetail).ExecuteCommand();
                    if (palletNo != palletNoNew)
                    {
                        //修改拼托托盘库存明细
                        pinStockDetail.Qty += pickQty;
                        pinStockDetail.LockQty += pickQty;
                        Db.Updateable(pinStockDetail).ExecuteCommand();
                    }
                }
                
                //添加操作日志记录
@@ -3087,6 +3116,13 @@
                {
                    throw new Exception("未查询到该托盘分配的库存信息!");
                }
                if (palletNo == palletNoNew)//原托盘与新托盘一致
                {
                    if (int.Parse(PickQty) != stockDetail.Qty)
                    {
                        throw new Exception("原托盘与新托盘一致,需要把托盘上所有数量拣货");
                    }
                }
                #endregion
                #region 拼托信息
@@ -3094,13 +3130,16 @@
                var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew);
                if (pinStockDetail != null)
                {
                    if (pinStockDetail.SONo != notice.SONo)
                    if (palletNo != palletNoNew)//非整托拣货
                    {
                        throw new Exception("拼托托盘上只能放同一个出库单下的物料!");
                    }
                    if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
                    {
                        isNew = true;
                        if (pinStockDetail.SONo != notice.SONo)
                        {
                            throw new Exception("拼托托盘上只能放同一个出库单下的物料!");
                        }
                        if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
                        {
                            isNew = true;
                        }
                    }
                }
                else
@@ -3169,10 +3208,18 @@
                }
                else
                {
                    //修改拼托托盘库存明细
                    pinStockDetail.Qty += int.Parse(PickQty);
                    pinStockDetail.LockQty += int.Parse(PickQty);
                    Db.Updateable(pinStockDetail).ExecuteCommand();
                    if (palletNo != palletNoNew)
                    {
                        //修改拼托托盘库存明细
                        pinStockDetail.Qty += int.Parse(PickQty);
                        pinStockDetail.LockQty += int.Parse(PickQty);
                        Db.Updateable(pinStockDetail).ExecuteCommand();
                    }
                    else
                    {
                        pinStockDetail.SONo = soNo;
                        Db.Updateable(pinStockDetail).ExecuteCommand();
                    }
                }
                #endregion
@@ -3188,6 +3235,7 @@
                var comList = new List<BllCompleteDetail>();
                //判断是否存在拣货明细
                isComplete = 0;//所有无箱码或一级箱码拣货时,拣货明细应重新插入数据(体现多次拣货流程记录)
                if (isComplete == 0)
                {
                    //添加拣货明细
@@ -3235,32 +3283,38 @@
                int isDel = 0;
                //删除或修改库存明细
                stockDetail.BitPalletMark = "1";//修改为零托标识
                stockDetail.Qty -= int.Parse(PickQty);
                stockDetail.LockQty -= int.Parse(PickQty);
                if (stockDetail.Qty == stockDetail.LockQty)
                if (palletNo != palletNoNew)
                {
                    stockDetail.Status = "2";
                }
                else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0)
                {
                    stockDetail.Status = "1";
                }
                else
                {
                    stockDetail.Status = "0";
                }
                if (stockDetail.Qty <= 0)
                {
                    Db.Deleteable(stockDetail).ExecuteCommand();
                    //删除或修改库存明细
                    stockDetail.BitPalletMark = "1";//修改为零托标识
                    stockDetail.Qty -= int.Parse(PickQty);
                    stockDetail.LockQty -= int.Parse(PickQty);
                    if (stockDetail.Qty == stockDetail.LockQty)
                    {
                        stockDetail.Status = "2";
                    }
                    else if (stockDetail.Qty > stockDetail.LockQty && stockDetail.LockQty > 0)
                    {
                        stockDetail.Status = "1";
                    }
                    else
                    {
                        stockDetail.Status = "0";
                    }
                    if (stockDetail.Qty <= 0)
                    {
                        Db.Deleteable(stockDetail).ExecuteCommand();
                    }
                    else
                    {
                        isDel = 1;
                        Db.Updateable(stockDetail).ExecuteCommand();
                    }
                }
                else
                {
                    isDel = 1;
                    Db.Updateable(stockDetail).ExecuteCommand();
                }
                //判断托盘上物料是否拣货完毕
                if (isDel == 0)
                {
Wms/WMS.BLL/BllSoServer/CompleteDetailServer.cs
@@ -26,49 +26,100 @@
            try
            {
                var total = 0;
                Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
                var detailInfo = Db.Queryable<BllCompleteDetail>().First(w => string.IsNullOrEmpty(w.BoxNo) || string.IsNullOrEmpty(w.BoxNo3));
                if (detailInfo == null)
                {
                    Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
                    .And(it => it.ExportAllotId == id)
                    .And(it => it.IsDel == "0")
                    .ToExpression();//注意 这一句 不能少
                var data = GetAllWhereAsync(item)
                    .GroupBy(m=>new
                    {
                        m.SONo,
                        m.SODetailNo,
                        m.StockId,
                        m.ExportAllotId,
                    var data = GetAllWhereAsync(item)
                        .GroupBy(m => new
                        {
                            m.SONo,
                            m.SODetailNo,
                            m.StockId,
                            m.ExportAllotId,
                        m.BoxNo,
                        m.LotNo,
                        m.LotText,
                        m.SupplierLot,
                        m.SkuNo,
                        m.SkuName,
                        m.Standard,
                        m.PalletNo,
                        m.NowPalletNo,
                    })
                    .Select(a => new CompleteDetailDto()
                    {
                        SONo = a.SONo,
                        SODetailNo = a.SODetailNo,
                        StockId = a.StockId,
                        ExportAllotId = a.ExportAllotId,
                            m.BoxNo,
                            m.LotNo,
                            m.LotText,
                            m.SupplierLot,
                            m.SkuNo,
                            m.SkuName,
                            m.Standard,
                            m.PalletNo,
                            m.NowPalletNo,
                        })
                        .Select(a => new CompleteDetailDto()
                        {
                            SONo = a.SONo,
                            SODetailNo = a.SODetailNo,
                            StockId = a.StockId,
                            ExportAllotId = a.ExportAllotId,
                        BoxNo = a.BoxNo,
                        LotNo = a.LotNo,
                        LotText = a.LotText,
                        SupplierLot = a.SupplierLot,
                        SkuNo = a.SkuNo,
                        SkuName = a.SkuName,
                        Standard = a.Standard,
                        PalletNo = a.PalletNo,
                        CompleteQty = SqlFunc.AggregateSum(a.CompleteQty),
                        NowPalletNo = a.NowPalletNo,
                            BoxNo = a.BoxNo,
                            LotNo = a.LotNo,
                            LotText = a.LotText,
                            SupplierLot = a.SupplierLot,
                            SkuNo = a.SkuNo,
                            SkuName = a.SkuName,
                            Standard = a.Standard,
                            PalletNo = a.PalletNo,
                            CompleteQty = SqlFunc.AggregateSum(a.CompleteQty),
                            NowPalletNo = a.NowPalletNo,
                            //CreateTime = a.CreateTime
                        }).ToOffsetPage(page, limit, ref total);
                    count = total;
                    return data;
                }
                else //箱码或支码为空说明是按数量拣货,增加 CreateTime 分组条件
                {
                    Expression<Func<BllCompleteDetail, bool>> item = Expressionable.Create<BllCompleteDetail>()
                    .And(it => it.ExportAllotId == id)
                    .And(it => it.IsDel == "0")
                    .ToExpression();//注意 这一句 不能少
                    var data = GetAllWhereAsync(item)
                        .GroupBy(m => new
                        {
                            m.SONo,
                            m.SODetailNo,
                            m.StockId,
                            m.ExportAllotId,
                            m.BoxNo,
                            m.LotNo,
                            m.LotText,
                            m.SupplierLot,
                            m.SkuNo,
                            m.SkuName,
                            m.Standard,
                            m.PalletNo,
                            m.NowPalletNo,
                            m.CreateTime
                        })
                        .Select(a => new CompleteDetailDto()
                        {
                            SONo = a.SONo,
                            SODetailNo = a.SODetailNo,
                            StockId = a.StockId,
                            ExportAllotId = a.ExportAllotId,
                            BoxNo = a.BoxNo,
                            LotNo = a.LotNo,
                            LotText = a.LotText,
                            SupplierLot = a.SupplierLot,
                            SkuNo = a.SkuNo,
                            SkuName = a.SkuName,
                            Standard = a.Standard,
                            PalletNo = a.PalletNo,
                            CompleteQty = SqlFunc.AggregateSum(a.CompleteQty),
                            NowPalletNo = a.NowPalletNo,
                        //CreateTime = a.CreateTime
                    }).ToOffsetPage(page, limit, ref total);
                count = total;
                return data;
                    count = total;
                    return data;
                }
            }
            catch (Exception e)
            {
Wms/WMS.BLL/DataServer/StockServer.cs
@@ -380,7 +380,7 @@
                "where bind.IsDel = '0' and notice.IsDel = '0' and bind.LotNo in (select LotNo from DataStock where IsDel = '0')   ";
            //出库
            string cstr = "select notice.SONo,allot.LotNo,allot.TaskNo CTaskNo,allot.SkuNo,allot.SkuName,allot.PalletNo," +
                "allot.CreateTime CCreateTime,allot.Qty CQty,allot.Qty CAllotQty,Allot.Qty CFactQty,Allot.CompleteQty CompleteQty," +
                "allot.UpdateTime CCreateTime,allot.Qty CQty,allot.Qty CAllotQty,Allot.Qty CFactQty,Allot.CompleteQty CompleteQty," +
                "allot.LotText,allot.SupplierLot " +
                "from BllExportAllot allot left join BllExportNoticeDetail notice on allot.SODetailNo = notice.Id " +
                "where allot.IsDel = '0' and notice.IsDel = '0' " +