添加删除标签菜单信息、用户权限及功能方法,编写PDA取样出库页面功能,添加获取入库单信息方法
8个文件已修改
411 ■■■■■ 已修改文件
HTML/views/ASNSetting/LabelBox.html 108 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/SampleOut.html 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs 134 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllAsnServer/IBllBoxInfoServer.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/BllAsnController.cs 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/PdaSoController.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/ASNSetting/LabelBox.html
@@ -121,9 +121,31 @@
                            lay-filter="LAY-app-contlist-search">
                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索
                        </button>
                        <button class="layui-btn layui-btn-sm layuiadmin-btn-list buDaLabelClass" style="margin-left: 5px;" lay-event="BuDaLabel" id="BuDaLabel">
                        <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-normal buDaLabelClass" style="margin-left: 5px;" lay-event="BuDaLabel" id="BuDaLabel">
                            <i class="layui-icon layui-icon-print layuiadmin-button-btn"></i>补打标签
                        </button>
                        <button class="layui-btn layui-btn-sm layuiadmin-btn-list layui-btn-danger delLabelClass" style="margin-left: 5px;" lay-event="delLabel" id="delLabel">
                            <i class="layui-icon layui-icon-delete layuiadmin-button-btn"></i>删除标签
                        </button>
                    </div>
                    <!-- 确认出库口弹窗 -->
                    <div class="layui-inline" id="divDelLotNo" style="display: none; padding-top: 10px;">
                        <div class="layui-inline">
                            <label class="layui-form-label">入库单据</label>
                            <div class="layui-input-inline" style="width: 220px;">
                                <input type="text" id="AsnNoSelect" name="AsnNoSelect" placeholder="入库单据" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                        <div class="layui-inline DivLoadingArea" style="margin-top: 10px;">
                            <label class="layui-form-label">批次号</label>
                            <div class="layui-input-inline" style="width: 220px;">
                                <select name="LotNoSelect" id="LotNoSelect" lay-search>
                                    <option value=""></option>
                                </select>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
@@ -289,7 +311,85 @@
                    // btn: ['取消']
                });
            });
            $("#AsnNoSelect").on('input', function () {
             
                if ($("#AsnNoSelect").val() == "" || $("#AsnNoSelect").val().length < 16) {
                    return
                }
                if ($("#AsnNoSelect").val().length >= 16) {
                    $("#AsnNoSelect").val($("#AsnNoSelect").val().substr(-16))
                }
                GetLotNoByAsnNo()
            })
            function GetLotNoByAsnNo() {
                $("#LotNoSelect").empty()
                $("#LotNoSelect").append('<option value =>' + '</option>');
                form.render('select');
                var param = {
                    asnNo: $("#AsnNoSelect").val(),
                };
                sendData(IP + "/BllAsn/GetLotNoListByAsn", param, 'get', function(res) {
                    if (res.code == 0) { //成功
                        for (var i = 0; i < res.data.length; i++) {
                            $("#LotNoSelect").append('<option value =' + res.data[i] + '>' + res.data[i] + '</option>');
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 3000 //2秒关闭(如果不配置,默认是3秒)
                        }, function() {
                        });
                    }
                });
            }
            //删除标签
            $('#delLabel').on('click', function () {
                layer.open({
                    type: 1,
                    title: '删除标签',
                    content: $('#divDelLotNo'),
                    maxmin: false,
                    area: ['350px','340px'],
                    btn: ['确定', '取消'],
                    yes: function(index, layero) {
                        var param = {
                            AsnNo: $('#AsnNoSelect').val(),
                            LotNo: $('#LotNoSelect').val(),
                        };
                        sendData(IP + "/BllAsn/DelLabelByAsnNo", param, 'post', function(res) {
                            if (res.code == 0) { //成功
                                bindTable();
                                layer.msg(res.msg, {
                                    icon: 1,
                                    time: 1500 //1秒关闭(如果不配置,默认是3秒)
                                }, function() {
                                    $('#AsnNoSelect').val("");
                                    $("#LotNoSelect").empty()
                                    $("#LotNoSelect").append('<option value =>' + '</option>');
                                    form.render('select');
                                });
                            } else { //不成功
                                layer.msg(res.msg, {
                                    icon: 2,
                                    time: 3000 //2秒关闭(如果不配置,默认是3秒)
                                }, function() {
                                    bindTable();
                                    $('#AsnNoSelect').val("");
                                    $("#LotNoSelect").empty()
                                    $("#LotNoSelect").append('<option value =>' + '</option>');
                                    form.render('select');
                                });
                            }
                            layer.close(index);
                        });
                    }
                });
            });
            // // 删除箱支信息
@@ -421,6 +521,7 @@
            function setRight() {
                $(function () {
                    $(".buDaLabelClass").hide(); 
                    $(".delLabelClass").hide();
                });
                sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function (res) {
                    if (res.code == 0) { //成功 
@@ -430,6 +531,11 @@
                                    $(".buDaLabelClass").show();
                                });
                            } 
                            if (res.data[k].MenuName == "删除标签") {
                                $(function () {
                                    $(".delLabelClass").show();
                                });
                            }
                        }
                    } else { //不成功
                        layer.msg('获取权限信息失败', {
Pda/View/SoSetting/SampleOut.html
@@ -613,18 +613,6 @@
                checkPalletState()
            })
            form.on('switch(IsZhengTuo)', function (obj) {
                if (obj.elem.checked) {
                    $('#BoxDIv').attr("style", "display:none")
                    isContinue="1";
                } else {
                    $('#BoxDIv').attr("style", "display:block")
                    isContinue="0";
                }
                $('#boxNo').val("");
                $('#boxNo3').val("");
            });
            //箱码文本框回车事件
            $("#boxNo").blur(function () {
                GetBoxInfo();
@@ -645,7 +633,7 @@
                synData(IP + "/PdaSo/IsEnableOkPalletNo", param, 'post', function (res) {
                    
                    if (res.code == 0) { //成功 
                        synData(IP + "/PdaSo/IsEnableOkPalletNo", param, 'post', function (res) {
                        synData(IP + "/PdaSo/GetSampleType", param, 'get', function (res) {
                            if (res.code == 0){
                                if (res.data == "0") {//库内取样
                                    $('#kuneilabel').show();
@@ -680,6 +668,38 @@
                    }
                });
            }
            //初始化渲染 入库单
            function updateAsnBillList() {
                $("#bar").empty()
                $("#bar").append('<option value =>' + '</option>');
                form.render('select');
                var param = {
                    PalletNo: $("#palletNo").val(),
                };
                synData(IP + "/PdaSo/GetRunSoNoticeList", param, 'post', function (res) {
                    if (res.code == 0) { //成功
                        console.log(res.data);
                        for (var i = 0; i < res.data.length; i++) {
                            if (i == 0) {
                                $("#bar").append('<option value =' + res.data[i] + ' selected>' + res.data[i] + '</option>');
                            } else {
                                $("#bar").append('<option value =' + res.data[i] + '>' + res.data[i] + '</option>');
                            }
                        }
                        form.render('select');
                    } else { //不成功
                        layer.msg(res.msg, {
                            icon: 2,
                            time: 2000 //2秒关闭(如果不配置,默认是3秒)
                        });
                    }
                });
            }
            //下拉单据选中后事件
            form.on('select(getbar)', function (data) {
                if ($('#palletNo').val() == "") {
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -1590,5 +1590,139 @@
                throw new Exception(e.Message);
            }
        }
        //根据入库单号过去单据下所有批次号
        public List<string> GetLotNoListByAsn(string asnNo)
        {
            try
            {
                var data = new List<string>();
                var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
                if (asnList.Count == 0)
                {
                    throw new Exception("未查询到该单据号的信息");
                }
                foreach (var item in asnList)
                {
                    if (string.IsNullOrWhiteSpace(item.LotNo))
                    {
                        continue;
                    }
                    var strList = item.LotNo.Split(";");
                    foreach (var str in strList)
                    {
                        if (string.IsNullOrWhiteSpace(str))
                        {
                            continue;
                        }
                        data.Add(str);
                    }
                }
                return data;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        //删除单据下单个或多个批次的标签
        public void DelLabelByAsnNo(string asnNo,string lotNo, int userId)
        {
            try
            {
                var asnList = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
                if (asnList.Count == 0)
                {
                    throw new Exception("未查询到该单据号的信息");
                }
                Db.BeginTran();
                //批次为空:当前单据下所有批次的标签全部删除; 有批次:伤处当前单据下当前批次的标签
                if (string.IsNullOrWhiteSpace(lotNo)) //删除全部标签
                {
                    var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo).ToList();
                    if (labelList.Count(m => m.Status != "0") >= 1)
                    {
                        throw new Exception("当前单据批次的标签已有已使用,不能删除");
                    }
                    foreach (var item in asnList)
                    {
                        if (string.IsNullOrWhiteSpace(item.LotNo))
                        {
                            continue;
                        }
                        item.LotNo = "";
                        Db.Updateable(item).ExecuteCommand();
                    }
                    Db.Deleteable(labelList).ExecuteCommand();
                }
                else  //删除固定批次标签
                {
                    var labelList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNNo == asnNo && m.LotNo == lotNo).ToList();
                    if (labelList.Count(m=>m.Status != "0") >= 1 )
                    {
                        throw new Exception("当前单据批次的标签已有已使用,不能删除");
                    }
                    foreach (var item in asnList)
                    {
                        if (string.IsNullOrWhiteSpace(item.LotNo) || item.LotNo!=lotNo)
                        {
                            continue;
                        }
                        var strList = item.LotNo.Split(";");
                        var updateLotNo = "";
                        foreach (var str in strList)
                        {
                            if (string.IsNullOrWhiteSpace(str) || str == lotNo)
                            {
                                continue;
                            }
                            if (string.IsNullOrWhiteSpace(updateLotNo))
                            {
                                updateLotNo = str;
                            }
                            else
                            {
                                updateLotNo += ";" + str;
                            }
                        }
                        item.LotNo = updateLotNo;
                        Db.Updateable(item).ExecuteCommand();
                    }
                    Db.Deleteable(labelList).ExecuteCommand();
                }
                Db.CommitTran();
                var msg = $"删除了单据号:{asnNo}";
                if (!string.IsNullOrWhiteSpace(lotNo))
                {
                    msg += $"、批次号:{lotNo}";
                }
                msg += "的标签信息";
                new OperationASNServer().AddLogOperationAsn("入库作业", "物料标签", asnNo, "删除", msg, userId);
            }
            catch (Exception e)
            {
                Db.RollbackTran();
                throw new Exception(e.Message);
            }
        }
    }
}
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1300,6 +1300,16 @@
                    m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "5" && m.Status != "6");
                if (allot!=null)
                {
                    var soNo = Db.Queryable<BllExportNotice>()
                        .First(m => m.IsDel == "0" && m.SONo == allot.SONo);
                    if (soNo == null)
                    {
                        throw new Exception("未找到托盘上出库单据信息");
                    }
                    if (soNo.Type != "3")
                    {
                        throw new Exception("该托盘不是取样托盘");
                    }
                    type = "0";//库内取样
                }
                else
@@ -1313,5 +1323,33 @@
                throw new Exception(e.Message);
            }
        }
        //根据托盘号获取入库单据
        public List<string> GetAsnNoByPallet(string palletNo)
        {
            try
            {
                var type = "";
                var detail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNo);
                if (detail == null)
                {
                    throw new Exception("当前托盘未在库存中");
                }
                var list = new List<string>();
                if (string.IsNullOrWhiteSpace(detail.ASNNo))
                {
                    throw new Exception("未查询到该托盘的入库单信息");
                }
                list.Add(detail.ASNNo);
                return list;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
    }
}
Wms/WMS.IBLL/IBllAsnServer/IBllBoxInfoServer.cs
@@ -70,5 +70,20 @@
        List<BoxInfoDto> GetBuDaLabelList(string boxNo, string endBoxNo, string boxNo2, string endBoxNo2, string type,
            int userId);
        /// <summary>
        /// 根据入库单号过去单据下所有批次号
        /// </summary>
        /// <param name="asnNo">入库单号</param>
        /// <returns>批次号集合</returns>
        List<string> GetLotNoListByAsn(string asnNo);
        /// <summary>
        /// 删除单据下单个或多个批次的标签
        /// </summary>
        /// <param name="asnNo">入库单号</param>
        /// <param name="lotNo">批次号</param>
        /// <param name="userId">操作人ID</param>
        void DelLabelByAsnNo(string asnNo, string lotNo,int userId);
    }
}
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
@@ -122,5 +122,12 @@
        /// <returns>0:库内取样、1:库前取样</returns>
        string GetSampleType(string palletNo);
        /// <summary>
        /// 根据托盘号获取入库单据(库前取样出库业务)
        /// </summary>
        /// <param name="palletNo">托盘号</param>
        /// <returns>单据集合</returns>
        List<string> GetAsnNoByPallet(string palletNo);
    }
}
Wms/Wms/Controllers/BllAsnController.cs
@@ -946,6 +946,46 @@
            }
        }
        //根据入库单号过去单据下所有批次号
        [HttpGet]
        public IActionResult GetLotNoListByAsn(string asnNo)
        {
            try
            {
                var list = _BoxInfoSvc.GetLotNoListByAsn(asnNo);
                return Ok(new { code = 0, msg = "成功获取单据下所有批次号信息", data = list });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, count = 0, msg = e.Message });
            }
        }
        //删除单据下单个或多个批次的标签
        [HttpPost]
        public IActionResult DelLabelByAsnNo(LabelBoxInfoVm 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 = "未获取到当前操作人信息" });
                }
                _BoxInfoSvc.DelLabelByAsnNo(model.AsnNo,model.LotNo,int.Parse(userId));
                return Ok(new { code = 0, msg = "成功获取单据下所有批次号信息", data = "" });
            }
            catch (Exception e)
            {
                return Ok(new { code = 1, count = 0, msg = e.Message });
            }
        }
        #endregion
Wms/Wms/Controllers/PdaSoController.cs
@@ -373,5 +373,28 @@
        }
        /// <summary>
        /// 根据托盘号获取入库单据
        /// </summary>
        /// <param name="palletNo">托盘号</param>
        /// <returns></returns>
        [HttpGet]
        public IActionResult GetAsnNoByPallet(string palletNo)
        {
            try
            {
                var type = _pdaSoSvc.GetAsnNoByPallet(palletNo);
                return Ok(new { data = type, code = 0, msg = "获取入库单据" });
            }
            catch (Exception e)
            {
                return Ok(new { data = "", code = 1, msg = "获取入库单据错误:" + e.Message });
            }
        }
    }
}