Demo
2024-03-19 5078a70f3972915dc887916e5c828b268671d004
修改BUG问题
5个文件已修改
232 ■■■■ 已修改文件
Pda/View/SoSetting/SampleOut.html 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 56 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/PdaSoController.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/SampleOut.html
@@ -1314,25 +1314,29 @@
                                if (res.data == "0") {//库内取样
                                    $('#kuneilabel2').show();
                                    $('#kuqianlabel2').hide();
                                    updateBillList2();
                                    // console.log($('#bar2').val())
                                    if ($('#bar2').val() == "") {
                                        console.log(1)
                                        clear21();
                                        return;
                                    } else {
                                        console.log(2)
                                        updateSkuLotNoList2();
                                        updateQtyList2();
                                        getBar2();
                                        GetDataInfo();
                                    }
                                    sampleType = "0";
                                }
                                if (res.data == "1") {//库前取样
                                    $('#kuqianlabel2').show();
                                    $('#kuneilabel2').hide();
                                    updateAsnBillList2();
                                    GetBoxInfo();
                                    sampleType = "1";
                                }
                                // updateBillList2();
                                // console.log($('#bar2').val())
                                // if ($('#bar2').val() == "") {
                                //     console.log(1)
                                //     clear21();
                                //     return;
                                // } else {
                                //     console.log(2)
                                //     updateSkuLotNoList2();
                                //     updateQtyList2();
                                //     getBar2();
                                //     GetDataInfo();
                                // }
                            }else { //不成功
                                layer.msg(res.msg, {
                                    icon: 2,
@@ -1532,33 +1536,60 @@
            //单拣货(确认按钮)
            form.on('submit(formPickScatter2)', function (data) {
                if ($('#bar2').val() == "") {
                    layer.msg("请选择出库单", {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    }); return;
                if (sampleType == "0") {
                    if ($('#bar2').val() == "") {
                        layer.msg("请选择出库单", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }); return;
                    }
                    if ($('#skuLotNo2').val() == "") {
                        layer.msg("请选择物料-批次", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }); return;
                    }
                    if ($('#palletNo2').val() == "") {
                        layer.msg("请输入托盘码", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }); return;
                    }
                    let pickedQty = parseInt($('#pickedQty2').val()) //已拣数量
                    let pickQty = parseInt($('#pickQty2').val())  //拣货数量
                    if (pickQty <= 0) {
                        layer.msg("拣货数量需大于0", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    }
                }
                if ($('#skuLotNo2').val() == "") {
                    layer.msg("请选择物料-批次", {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    }); return;
                }
                if ($('#palletNo2').val() == "") {
                    layer.msg("请输入托盘码", {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    }); return;
                }
                let pickedQty = parseInt($('#pickedQty2').val()) //已拣数量
                let pickQty = parseInt($('#pickQty2').val())  //拣货数量
                if (pickQty <= 0) {
                    layer.msg("拣货数量需大于0", {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    });
                    return;
                }
                else if (sampleType == "1") {
                    if ($('#AsnBar').val() == "") {
                        layer.msg("请选择入库单", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }); return;
                    }
                    let pickedQty = parseInt($('#pickedQty2').val()) //已拣数量
                    let pickQty = parseInt($('#pickQty2').val())  //拣货数量
                    if (pickQty <= 0) {
                        layer.msg("拣货数量需大于0", {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                        return;
                    }
                }
                else {
                    layer.msg("类型错误,请刷新页面重试", {
                        icon: 2,
                        time: 2000 //2秒关闭(如果不配置,默认是3秒)
                    });
                    return;
                }
                if (canPickBox == false) {
@@ -1576,24 +1607,35 @@
            //确认拣货 
            function reqPickScatter2() {
                canPickBox = false//回调
                var param = {
                    "SoNo": $("#bar2").val(),
                    "SoDetailId": $("#skuLotNo2").val(),
                    "PalletNo": $('#palletNo2').val(),
                    "PickQty": $('#pickQty2').val(),
                    "AsnNo":$('#AsnBar').val(),
                    "Type":sampleType
                }
                sendData(IP + "/PdaSo/SoSetQtyPick", param, 'post', function (res) {
                sendData(IP + "/PdaSo/SampleSoSetQtyPick", param, 'post', function (res) {
                    //console.log(res);
                    
                    if (res.code == 0) { //成功
                        layer.msg(res.msg, {
                            icon: 1,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        }, function () {
                            canPickBox = true//回调
                            updateQtyList2();
                            getBar2();
                            GetDataInfo();
                            if (sampleType == "0") {
                                canPickBox = true//回调
                                updateQtyList2();
                                getBar2();
                                GetDataInfo();
                            }
                            if (sampleType == "1") {
                                canPickBox = true//回调
                                GetDataInfo();
                            }
                        });
                    } else { //不成功
                        layer.msg(res.msg, {
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -309,7 +309,7 @@
                    throw new Exception($"未查询到对应出库单总单信息,请核实!");
                }
                //分配信息
                var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && a.Status == "2" || a.Status == "3");
                var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && (a.Status == "2" || a.Status == "3"));
                if (allot == null)
                {
                    throw new Exception($"未查询到对应分配信息,请核实!");
@@ -1541,7 +1541,7 @@
                        throw new Exception("未查询到该箱码及追溯码的信息");
                    }
                    boxInfos = boxInfo.ToList();
                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot2.Id && m.PalletNo == palletNo).ToList();
                    if (!string.IsNullOrWhiteSpace(boxNo3)) //散支拣货
                    {
                        boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList();
@@ -1559,7 +1559,13 @@
                        {
                            throw new Exception("该托盘与箱码没有绑定关系");
                        }
                        foreach (var item in boxInfos)
                        {
                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                            {
                                throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                            }
                        }
                        biaoShi = "1";
                    }
                    else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//数量拣货
@@ -1586,17 +1592,23 @@
                        {
                            throw new Exception("该托盘与箱码没有绑定关系");
                        }
                        foreach (var item in boxInfos)
                        {
                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo == item.BoxNo))
                            {
                                throw new Exception($"当前{item.BoxNo}已拣货完成,请勿重复拣货");
                            }
                        }
                    }
                    var pickQty = 0;//拣货的数量
                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot2.Id && m.PalletNo == palletNo).ToList();
                    var comList = new List<BllCompleteDetail>();
                    foreach (var item in boxInfos)
                    {
                        if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                        {
                            throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                        }
                        //if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                        //{
                        //    throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                        //}
                        //添加拣货明细
                        var completeDetail = new BllCompleteDetail()
                        {
@@ -1778,6 +1790,7 @@
                        throw new Exception("未查询到该箱码及追溯码的信息");
                    }
                    boxInfos = boxInfo.ToList();
                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
                    if (!string.IsNullOrWhiteSpace(boxNo3)) //散支拣货
                    {
                        boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList();
@@ -1800,7 +1813,13 @@
                        {
                            throw new Exception("拣货数量不能大于剩余待拣数量");
                        }
                        foreach (var item in boxInfos)
                        {
                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                            {
                                throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                            }
                        }
                        biaoShi = "1";
                    }
                    else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//数量拣货
@@ -1836,16 +1855,23 @@
                        {
                            throw new Exception("拣货数量不能大于箱内剩余待拣数量");
                        }
                        foreach (var item in boxInfos)
                        {
                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo == item.BoxNo))
                            {
                                throw new Exception($"当前{item.BoxNo}已拣货完成,请勿重复拣货");
                            }
                        }
                    }
                    var pickQty = 0;//拣货的数量
                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
                    var comList = new List<BllCompleteDetail>();
                    foreach (var item in boxInfos)
                    {
                        if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                        {
                            throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                        }
                        //if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
                        //{
                        //    throw new Exception($"当前{item.BoxNo}中{item.BoxNo3}已拣货完成,请勿重复拣货");
                        //}
                        //添加拣货明细
                        var completeDetail = new BllCompleteDetail()
                        {
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -2838,7 +2838,7 @@
                        }
                        else
                        {
                            stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0").ToList(); //&& string.IsNullOrWhiteSpace(m.LotNo)
                            stockDetail = stockDetail.Where(m => m.SkuNo == detail.SkuNo && m.IsDel == "0" && string.IsNullOrWhiteSpace(m.LotNo)).ToList(); //
                        }
                        if (stockDetail.Count < 1)
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
@@ -144,5 +144,19 @@
        void SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo,
            string boxNo3, string pickQty1, string asnNo, int userId);
        /// <summary>
        ///  取样出库拣货(无标签)
        /// </summary>
        /// <param name="soType">拣货类型 0库内取样,有出库单及分配信息; 1库前取样,反向添加出库单及分配信息</param>
        /// <param name="soNo">出库单</param>
        /// <param name="soDetailId">出库单明细</param>
        /// <param name="palletNo">托盘号</param>
        /// <param name="PickQty">拣货数量</param>
        /// <param name="asnNo">入库单</param>
        /// <param name="userId">操作人ID</param>
        void SampleSoSetQtyPick(string soType, string soNo, string soDetailId, string palletNo, string PickQty,
            string asnNo, int userId);
    }
}
Wms/Wms/Controllers/PdaSoController.cs
@@ -425,7 +425,37 @@
            }
        }
        /// <summary>
        /// 取样出库拣货(无标签)
        /// </summary>
        /// <param name="model">SoDetailId:出库单明细ID、PalletNo:托盘码</param>
        /// <returns></returns>
        [HttpPost]
        public IActionResult SampleSoSetQtyPick(PdaSoVm model)
        {
            try
            {
                //获取当前登录的用户ID
                var claimsIdentity = this.User.Identity as ClaimsIdentity;
                if (claimsIdentity == null)
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
                if (string.IsNullOrWhiteSpace(userId))
                {
                    return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
                }
                _pdaSoSvc.SampleSoSetQtyPick(model.Type,model.SoNo, model.SoDetailId, model.PalletNo, model.PickQty, model.AsnNo, int.Parse(userId));
                return Ok(new { code = 0, msg = "拣货完成", data = "" });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, msg = e.Message });
            }
        }
    }
}