添加删除标签菜单信息、用户权限及功能方法,编写PDA取样出库页面功能,添加获取入库单信息方法
| | |
| | | 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> |
| | |
| | | // 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); |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | |
| | | |
| | | // // 删除箱支信息 |
| | |
| | | function setRight() { |
| | | $(function () { |
| | | $(".buDaLabelClass").hide(); |
| | | $(".delLabelClass").hide(); |
| | | }); |
| | | sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function (res) { |
| | | if (res.code == 0) { //成功 |
| | |
| | | $(".buDaLabelClass").show(); |
| | | }); |
| | | } |
| | | if (res.data[k].MenuName == "删除标签") { |
| | | $(function () { |
| | | $(".delLabelClass").show(); |
| | | }); |
| | | } |
| | | } |
| | | } else { //不成功 |
| | | layer.msg('获取权限信息失败', { |
| | |
| | | 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(); |
| | |
| | | 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(); |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //初始化渲染 入库单 |
| | | 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() == "") { |
| | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | 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 |
| | |
| | | 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); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
| | |
| | | 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); |
| | | |
| | | } |
| | | } |
| | |
| | | /// <returns>0:库内取样、1:库前取样</returns> |
| | | string GetSampleType(string palletNo); |
| | | |
| | | /// <summary> |
| | | /// 根据托盘号获取入库单据(库前取样出库业务) |
| | | /// </summary> |
| | | /// <param name="palletNo">托盘号</param> |
| | | /// <returns>单据集合</returns> |
| | | List<string> GetAsnNoByPallet(string palletNo); |
| | | |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | //根据入库单号过去单据下所有批次号 |
| | | [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 |
| | |
| | | |
| | | } |
| | | |
| | | /// <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 }); |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | } |