HTML/views/ASNSetting/LabelBox.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HTML/views/ASNSetting/LabelBoxBuDa.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
HTML/views/ASNSetting/LabelPrint.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.IBLL/IBllAsnServer/IBllBoxInfoServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/Wms/Controllers/BllAsnController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
HTML/views/ASNSetting/LabelBox.html
@@ -120,13 +120,13 @@ 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"> <i class="layui-icon layui-icon-print layuiadmin-button-btn"></i>补打标签 </button> </div> </div> </div> <div class="layui-card-body"> <!-- <button type="button" class="layui-btn layui-btn-sm" id="daoru1"> 导入 </button> --> <div class="layui-card-body"> <div class="position-relative"> <table id="Box-list" lay-filter="Box-list"></table> @@ -277,68 +277,54 @@ // 页面加载绑定Table bindTable(); // 添加导入按钮单机事件 table.on('toolbar(Box-list)', function (obj) { switch (obj.event) { case 'add': // 添加箱支关系 // layer.open({ // type: 2, // title: '自定义列', // content: '../SystemSettings/HeaderSetting.html', // maxmin: false, // resize: false, // area: ['970px', '650px'] // }); layer.open({ type: 2, title: '打印', content: 'LabelPrint.html?', maxmin: true, area: ['600px', '670px'], btn: ['取消'] }); break; default: break; } }); //生成 $('#BuDaLabel').on('click', function () { layer.open({ type: 2, title: '打印', content: 'LabelBoxBuDa.html', maxmin: true, area: ['430px', '390px'], // btn: ['取消'] }); }); // 删除箱支信息 table.on('tool(Box-list)', function (obj) { var data = obj.data; switch (obj.event) { case "del": layer.confirm('确定删除箱支明细吗?', function (index) { // 代码区域 var param = { Id: data.Id, Status: "0", }; console.log(param); sendData(IP + "/BllAsn/DelBllBoxInfo", param, 'post', function (res) { if (res.code == 0) { //成功 layer.msg(res.msg, { icon: 1, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { bindTable(); doing = true }); } else { //不成功 layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { doing = true }); } }); }); // // 删除箱支信息 // table.on('tool(Box-list)', function (obj) { // var data = obj.data; // switch (obj.event) { // case "del": // layer.confirm('确定删除箱支明细吗?', function (index) { // // 代码区域 // var param = { // Id: data.Id, // Status: "0", // }; // console.log(param); // sendData(IP + "/BllAsn/DelBllBoxInfo", param, 'post', function (res) { // if (res.code == 0) { //成功 // layer.msg(res.msg, { // icon: 1, // time: 2000 //2秒关闭(如果不配置,默认是3秒) // }, function () { // bindTable(); // doing = true // }); // } else { //不成功 // layer.msg(res.msg, { // icon: 2, // time: 2000 //2秒关闭(如果不配置,默认是3秒) // }, function () { doing = true }); // } // }); // }); break; default: break; } }); // break; // default: break; // } // }); //#region 事件方法 // 查询录入的箱支关系 @@ -426,39 +412,6 @@ }, cols: colsJson }); //绑定导入 upload.render({ elem: '#daoru' //绑定元素 , url: '' //上传接口 , auto: false //是否选完文件后自动上传。如果设定 false,那么需要设置 bindAction 参数来指向一个其它按钮提交上传 , exts: 'slx|excel|xlsx' //允许上传的文件后缀 , accept: 'file' //指定允许上传时校验的文件类型 //, bindAction: '#daoru' //指向一个按钮触发上传 , choose: function (obj) {// 选择文件回调 console.log(obj); var files = obj.pushFile(); //将每次选择的文件追加到文件队列 var fileArr = Object.values(files);// 注意这里的数据需要是数组,所以需要转换一下 console.log(fileArr) // 用完就清理掉,避免多次选中相同文件时出现问题 for (var index in files) { console.log(index); if (files.hasOwnProperty(index)) { delete files[index]; } } console.log("abs"); uploadExcel(fileArr); // 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()]) } , done: function (res) { console.log(res); //上传完毕回调 } , error: function (res) { console.log(res); //请求异常回调 } }); }); //#endregion } @@ -466,28 +419,16 @@ // 权限设置 function setRight() { $(function () { $(".addClass").hide(); $(".DaoRuClass").hide(); $(".delClass").hide(); $(".buDaLabelClass").hide(); }); sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function (res) { if (res.code == 0) { //成功 for (var k = 0; k < res.data.length; k++) { if (res.data[k].MenuName == "添加箱支录入") { if (res.data[k].MenuName == "补打标签") { $(function () { $(".addClass").show(); $(".buDaLabelClass").show(); }); } if (res.data[k].MenuName == "导入箱支录入") { $(function () { $(".DaoRuClass").show(); }); } if (res.data[k].MenuName == "删除箱支录入") { $(function () { $(".delClass").show(); }); } } } } else { //不成功 layer.msg('获取权限信息失败', { @@ -498,155 +439,7 @@ }); } // 获取箱支信息 function getBoxInforVlues() { var msg = ""; if ($("#BoxNo").val() == "") { layer.msg("请输入箱码!", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return msg; } if ($("#BoxNo3").val() == "") { layer.msg("请输入支码!", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return msg; } if ($("#SkuNo").val() == "") { layer.msg("请输入物料编码!", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return msg; } if ($("#LotNo").val() == "") { layer.msg("请输入批次号!", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return msg; } if ($("#Qty").val() == "") { layer.msg("请输入实际数量!", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return msg; } var param = { BoxNo: $("#BoxNo").val(), BoxNo3: $("#BoxNo3").val(), SkuNo: $("#SkuNo").val(), LotNo: $("#LotNo").val(), LotText: $("#LotText").val(), Qty: parseInt($("#Qty").val()), ProductionTime: $("#ProductionTime").val(), InspectMark: $("#InspectMark").val(), BitBoxMark: $("#BitBoxMark").val(), Origin: "录入", }; return param; } // 导入箱支关系 function uploadExcel(files) { console.log("123"); var list = []; try { var excel = layui.excel; excel.importExcel(files, { // 读取数据的同时梳理数据 fields: { 'BoxNo': 'A', //箱号 'BoxNo2': 'B', //盒号 'BoxNo3': 'C', //支号 'Qty': 'D', //数量 'SkuNo': 'E', //物料号 'LotNo': 'F', //批次 'LotText': 'G', //批次描述 'ProductionTime': 'H', //生产日期 'InspectMark': 'I', //检验标记 'BitBoxMark': 'J', //零箱标记 } }, function (data) { console.log(data); // var arr = new Array(); //excel第一行不读取、设置为标题 for (i = 1; i < data[0].Sheet1.length; i++) { var Qty = 0; if (isIntNum(data[0].Sheet1[i].Qty)) { Qty = parseInt(data[0].Sheet1[i].Qty); } var InspectMark = "0"; var BitBoxMark = "0"; if (data[0].Sheet1[i].InspectMark == "是") { InspectMark = "1"; } if (data[0].Sheet1[i].BitBoxMark == "是") { BitBoxMark = "1"; } var tt = { BoxNo: data[0].Sheet1[i].BoxNo, BoxNo2: data[0].Sheet1[i].BoxNo2, BoxNo3: data[0].Sheet1[i].BoxNo3, Qty: Qty, SkuNo: data[0].Sheet1[i].SkuNo, LotNo: data[0].Sheet1[i].LotNo, LotText: data[0].Sheet1[i].LotText, ProductionTime: data[0].Sheet1[i].ProductionTime, InspectMark: InspectMark, BitBoxMark: BitBoxMark, }; list.push(tt); console.log(data[0].Sheet1[i].ProductionTime); } console.log(list); var param = { "OperType": "Add", "ListBoxInfo": list, } console.log(param) layer.load();//打开loading sendData(IP + "/BllAsn/ImportBllBoxInfo", param, 'post', function (res) { layer.closeAll(); //关闭loading if (res.code == 0) { //成功 layer.msg(res.msg, { icon: 1, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { bindTable(); doing = true }); } else { //不成功 if (res.msg == undefined) { layer.msg("后台正在导入中,请稍后查看结果", { icon: 2, time: 3000 //2秒关闭(如果不配置,默认是3秒) }, function () { bindTable(); doing = true }); } else { layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { bindTable(); doing = true }); } } }); }); } catch (e) { layer.alert(e.message); } } //#endregion //#region 自定义表头 //自定义表头 active = { HTML/views/ASNSetting/LabelBoxBuDa.html
New file @@ -0,0 +1,338 @@ <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>标签打印</title> <meta name="renderer" content="webkit"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0"> <link rel="stylesheet" href="../../layuiadmin/layui/css/layui.css" media="all"> <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> <style media="print"> @page { size: auto; margin: 0 0 0 20px; } .layui-input { padding-left: 0px; } .layui-form-item { margin-bottom: 2px; } </style> <style> .layui-form-item .layui-input-inline { display: block; float: none; left: -3px; width: auto; margin: 0 0 10px 90px; } .hideCls { display: none; } .showCls { display: block; } </style> </head> <body> <div style="width:100%;"> <div class="layui-form hideCls" lay-filter="layuiadmin-app-form-list" id="print" style="width: 100%;height:100%; text-align: right;padding-top: 5px;margin-left: 0%;"> <div> <table border="1" id="table" style="width: 90%; height:480px; margin: 0 auto; text-align: center;border-collapse: collapse;table-layout: fixed;"> <tr> <td colspan="2"> <img src="../../img/LiNuo.jpg" style="width: 90%; height: 30px;" /> </td> <td colspan="2" style="padding: 1px 0px;">SMP-ST002-R08-01</td> </tr> <tr> <td colspan="4">物料标签</td> </tr> <tr> <td>品名</td> <td colspan="3" id="SkuName"></td> </tr> <tr> <td>规格/型号</td> <td id="Standard"></td> <td>包装规格</td> <td id="PackageStandard"></td> </tr> <tr> <td>进厂编号</td> <td id="LotNo"></td> <td>物料代码</td> <td id="SkuNo"></td> </tr> <tr> <td>原厂批号</td> <td id="SupplierLot"></td> <td>数 量</td> <td id="Qty"></td> </tr> <tr> <td>有效期至</td> <td id="ExpirationTime"></td> <td>储存期至</td> <td id="StoreTime"></td> </tr> <tr> <td colspan="4"> <img id="imgBar" style="width: auto; height: auto;" /> </td> </tr> </table> </div> <div style="page-break-after: always;"></div> </div> <div class="layui-form hideCls" lay-filter="layuiadmin-app-form-list" id="print2" style="width: 100%;height:100%; text-align: right;padding-top: 5px;margin-left: 0%;"></div> <div class="layui-form" style="padding: 30px 15px 0px; " id="button"> <div class="layui-form-item" style="margin-bottom:0px;"> <label class="layui-form-label" style="width: 60px;">起始箱码</label> <div class="layui-input-inline"> <input type="text" id="LabelStream" name="LabelStream" placeholder="起始箱码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item" style="margin-bottom:0px;"> <label class="layui-form-label" style="width: 60px;">结尾箱码</label> <div class="layui-input-inline"> <input type="text" id="EndBoxCode" name="EndBoxCode" placeholder="结尾箱码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item" style="margin-bottom:0px;"> <label class="layui-form-label" style="width: 60px;">起始支码</label> <div class="layui-input-inline"> <input type="text" id="LabelStream2" name="LabelStream2" placeholder="起始支码" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item" style="margin-bottom:0px;"> <label class="layui-form-label" style="width: 60px;">结尾支码</label> <div class="layui-input-inline"> <input type="text" id="EndBoxCode2" name="EndBoxCode2" placeholder="结尾支码" autocomplete="off" class="layui-input" readonly> </div> </div> <div class="layui-form-item" style="margin-bottom:0px;"> <label class="layui-form-label" style="width: 60px;">补打类型</label> <div class="layui-input-inline"> <select name="Type" id="Type" lay-search lay-filter="Type"> <option value="1">箱</option> <option value="2">支</option> <option value="3">同箱内箱支</option> </select> </div> </div> <div class="layui-form-item" style="margin-bottom:0px; text-align: center;"> <button id="btnPrint" class="layui-btn layui-btn-sm" lay-event="Add"><i class="layui-icon"></i>打印</button> </div> </div> </div> <script src="../../layuiadmin/layui/layui.js"></script> <script src="../../js/public.js"></script> <script src="../../js/jquery-3.5.1.min.js"></script> <script src="../../js/jquery.cookie.js"></script> <script src="../../js/jquery.print.js"></script> <script> var boxcode = ""; layui.config({ base: '../../layuiadmin/' //静态资源所在路径 }).extend({ index: 'lib/index' //主入口模块 }).use(['index', 'form', 'layer', 'laydate'], function () { var $ = layui.$, form = layui.form, layer = layui.layer; var laydate = layui.laydate; var indes = layer.index; laydate.render({ elem: '#ProductionDate' , format: 'yyyy-MM-dd' //可任意组合 }); laydate.render({ elem: '#InspectTime' , format: 'yyyy-MM-dd' //可任意组合 }); laydate.render({ elem: '#ExpirationTime' , format: 'yyyy-MM-dd' //可任意组合 }); var xun = 0; $('#btnPrint').on('click', function () { GetImportId(); }); form.on('select(Type)', function (data) { console.log(data.value); //得到被选中的值 if (data.value == "1") { $("#LabelStream").removeAttr("readonly") $("#EndBoxCode").removeAttr("readonly") $("#LabelStream2").attr("readonly", "readonly") $("#EndBoxCode2").attr("readonly", "readonly") } else if (data.value == "2") { $("#LabelStream").attr("readonly", "readonly") $("#EndBoxCode").attr("readonly", "readonly") $("#LabelStream2").removeAttr("readonly") $("#EndBoxCode2").removeAttr("readonly") } else if (data.value == "3") { $("#LabelStream").removeAttr("readonly") $("#EndBoxCode").attr("readonly", "readonly") $("#LabelStream2").removeAttr("readonly") $("#EndBoxCode2").removeAttr("readonly") } }); // 标签变量赋值 function GetImportId() { var param1 = { BoxNo: $("#LabelStream").val(), EndBoxNo: $("#EndBoxCode").val(), BoxNo2: $("#LabelStream2").val(), EndBoxNo2: $("#EndBoxCode2").val(), Type: $("#Type").val(), }; synData(IP + "/BllAsn/GetBuDaLabelList", param1, 'post', function (res) { if (res.code == 0) { //成功 var labels = ""; console.log(res.data); for (var z = 0; z < res.data.length; z++) { var idd = ""; if (z - 1 >= 0) { idd = (z - 1).toString(); } console.log(res.data[z]); console.log(z); $("#SkuNo").attr("id", "SkuNo" + z.toString()); $("#SkuNo" + z.toString()).html(res.data[z].SkuNo); $("#SkuName").attr("id", "SkuName" + z.toString()); $("#SkuName" + z.toString()).html( res.data[z].SkuName); $("#PackageStandard").attr("id", "PackageStandard" + z.toString()); $("#PackageStandard" + z.toString()).html(res.data[z].PackageStandard); $("#Standard").attr("id", "Standard" + z.toString()); $("#Standard" + z.toString()).html(res.data[z].Standard); $("#Qty").attr("id", "Qty" + z.toString()); $("#Qty" + z.toString()).html( res.data[z].Qty); $("#SupplierLot").attr("id", "SupplierLot" + z.toString()); $("#SupplierLot" + z.toString()).html( res.data[z].SupplierLot); $("#LotNo").attr("id", "LotNo" + z.toString()); $("#LotNo" + z.toString()).html( res.data[z].LotNo); $("#SupplierLot").attr("id", "SupplierLot" + z.toString()); $("#SupplierLot" + z.toString()).html( res.data[z].SupplierLot); $("#ExpirationTime").attr("id", "ExpirationTime" + z.toString()); $("#ExpirationTime" + z.toString()).html( res.data[z].ExpirationTime); $("#StoreTime").attr("id", "StoreTime" + z.toString()); $("#StoreTime" + z.toString()).html( res.data[z].StoreTime); $("#imgBar").attr("id", "imgBar" + z.toString()); $("#imgBar" + z.toString()).attr("src", res.data[z].ImgStr); // console.log("#SkuNo"+z.toString()); labels += $("#print").html(); //console.log(labels); $("#SkuNo" + z.toString()).attr("id", "SkuNo"); $("#SkuNo").html(""); $("#SkuName" + z.toString()).attr("id", "SkuName"); $("#SkuName").html(""); $("#PackageStandard" + z.toString()).attr("id", "PackageStandard"); $("#PackageStandard").html(""); $("#Qty" + z.toString()).attr("id", "Qty"); $("#Qty").html(""); $("#Standard" + z.toString()).attr("id", "Standard"); $("#Standard").html(""); $("#LotNo" + z.toString()).attr("id", "LotNo"); $("#LotNo").html(""); $("#SupplierLot" + z.toString()).attr("id", "SupplierLot"); $("#SupplierLot").html(""); $("#StoreTime" + z.toString()).attr("id", "StoreTime"); $("#StoreTime").html(""); $("#ExpirationTime" + z.toString()).attr("id", "ExpirationTime"); $("#ExpirationTime").html(""); $("#imgBar" + z.toString()).attr("id", "imgBar"); $("#imgBar").attr("src", ""); } console.log(labels); document.getElementById('print2').innerHTML = ""; document.getElementById('print2').innerHTML = labels; $("#print2").removeClass("hideCls"); $("#button").hide(); $("#print2").print(); $("#button").show(); $("#print2").addClass("hideCls"); $("#LabelStream").val(""); $("#EndBoxCode").val(""); $("#LabelStream2").val(""); $("#EndBoxCode2").val(""); } else { //不成功 layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { }); } }); }; // 获取传递参数 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } }) </script> </body> </html> HTML/views/ASNSetting/LabelPrint.html
@@ -157,44 +157,7 @@ var param = { ImportId: id, }; if ($("#ProductionDate").val() == "" || $("#ProductionDate").val() == undefined || $("#ProductionDate").val() == null) { layer.msg("生产日期不能为空", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { return; }); } if ($("#SupplierName").val() == "" || $("#SupplierName").val() == undefined || $("#SupplierName").val() == null) { layer.msg("生产厂家不能为空", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { return; }); } if ($("#SupplierLot").val() == "" || $("#SupplierLot").val() == undefined || $("#SupplierLot").val() == null) { console.log($("#SupplierLot").val()) layer.msg("厂家批号不能为空", { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { return; }); } if ($('#number').val() > 0) { if ($('#bQNum').val() > 0) { div($('#number').val(), $('input[name="isprint"]:checked').val(), $('#bQNum').val()); } else { div($('#number').val(), $('input[name="isprint"]:checked').val(), 0); } } else { if ($('#bQNum').val() >= 0) { div(0, $('input[name="isprint"]:checked').val(), $('#bQNum').val()); } else { div(0, $('input[name="isprint"]:checked').val(), 0); } } }); if (!id) { @@ -222,20 +185,13 @@ }, function () { }); } }); // div(-1, 1, 0); } // 循环加载标签 function div(number, isprint, bqNum) { GetImportId(number, isprint, bqNum); } // 标签变量赋值 function GetImportId(i, isprint, bqNum) { function div(i, isprint, bqNum) { var param1 = { isprint: isprint, ImportId: id, @@ -350,9 +306,8 @@ time: 2000 //2秒关闭(如果不配置,默认是3秒) }, function () { }); } }); }; }); } // 获取传递参数 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); Wms/Model/ModelVm/BllAsnVm/BoxInfoVm.cs
@@ -208,4 +208,17 @@ } /// <summary> /// 补打物料标签Vm /// </summary> public class BuDaLabelBoxVm { public string BoxNo { get; set; } public string EndBoxNo { get; set; } public string BoxNo2 { get; set; } public string EndBoxNo2 { get; set; } public string Type { get; set; } } } Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -966,6 +966,571 @@ } } // 补打标签 public List<BoxInfoDto> GetBuDaLabelList(string boxNo, string endBoxNo, string boxNo2, string endBoxNo2, string type, int userId) { try { //打印数据集合 var printList = new List<BoxInfoDto>(); List<BoxInfoDto> printModelList = new List<BoxInfoDto>(); //List<WmsLabelPrintLog> printlog = new List<WmsLabelPrintLog>(); //标签表数据信息 var list = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS生成").ToList(); #region MyRegion switch (type) { case "1": if (string.IsNullOrWhiteSpace(endBoxNo)) { #region 单个箱码标签 if (string.IsNullOrWhiteSpace(boxNo)) { throw new Exception($"起始箱码不能为空"); } var dataList = list.Where(m => m.BoxNo == boxNo); var data = list.FirstOrDefault(m => m.BoxNo == boxNo); if (data == null) { throw new Exception($"未查询到{boxNo}信息"); } // 物料条码信息赋值 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; model.SkuName = data.SkuName; model.LotNo = data.LotNo; //批次 model.SupplierLot = data.SupplierLot; // 原厂批号 model.Standard = data.Standard; // 规格/型号 model.PackageStandard = data.PackageStandard; // 包装规格 model.ExpirationTime = data.ExpirationTime; // 有效期至 model.StoreTime = data.StoreTime; // 储存期至 model.Qty = dataList.Sum(m=>m.Qty);// 数量 model.BoxNo = data.BoxNo; // 箱号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,100, 25); // 添加到list集合 printModelList.Add(model); //添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = data.LabelStream; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); #endregion } else { #region 多个箱码标签 开始-结束 if (string.IsNullOrWhiteSpace(boxNo)) { throw new Exception("起始箱码不能为空"); } var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'"; var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList(); if (data3.Count == 0) { throw new Exception($"未查询到{boxNo}-{endBoxNo}中信息"); } var i = 0; foreach (var item in data3) { var data1 = data2.Where(m => m.BoxNo == item); var data = data2.FirstOrDefault(m => m.BoxNo == item); if (data == null) { throw new Exception($"未查询到{item}信息"); } // 物料条码信息赋值 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; model.SkuName = data.SkuName; model.LotNo = data.LotNo; //批次 model.SupplierLot = data.SupplierLot; // 原厂批号 model.Standard = data.Standard; // 规格/型号 model.PackageStandard = data.PackageStandard; // 包装规格 model.ExpirationTime = data.ExpirationTime; // 有效期至 model.StoreTime = data.StoreTime; // 储存期至 model.Qty = data1.Sum(m => m.Qty);// 数量 model.BoxNo = data.BoxNo; // 箱号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); i++; ////添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = data.LabelStream; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); if (i >= 100) { break; } } #endregion } break; case "2": if (string.IsNullOrWhiteSpace(endBoxNo2)) { #region 单个支码标签 if (string.IsNullOrWhiteSpace(boxNo2)) { throw new Exception($"起始支码不能为空"); } var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2); if (data == null) { throw new Exception($"未查询到{boxNo2}信息"); } // 物料条码信息赋值 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; model.SkuName = data.SkuName; model.LotNo = data.LotNo; //批次 model.SupplierLot = data.SupplierLot; // 原厂批号 model.Standard = data.Standard; // 规格/型号 model.PackageStandard = data.PackageStandard; // 包装规格 model.ExpirationTime = data.ExpirationTime; // 有效期至 model.StoreTime = data.StoreTime; // 储存期至 model.Qty = data.Qty;// 数量 model.BoxNo = data.BoxNo3; // 支号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); ////添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = data.BoxCode1; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); #endregion } else { #region 多个支码标签 开始-结束 if (string.IsNullOrWhiteSpace(boxNo2)) { throw new Exception("起始支码不能为空"); } var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'"; var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); if (data2.Count == 0) { throw new Exception($"未查询到{boxNo2}-{endBoxNo2}中信息"); } var i = 0; foreach (var data in data2) { // 物料条码信息赋值 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; model.SkuName = data.SkuName; model.LotNo = data.LotNo; //批次 model.SupplierLot = data.SupplierLot; // 原厂批号 model.Standard = data.Standard; // 规格/型号 model.PackageStandard = data.PackageStandard; // 包装规格 model.ExpirationTime = data.ExpirationTime; // 有效期至 model.StoreTime = data.StoreTime; // 储存期至 model.Qty = data.Qty;// 数量 model.BoxNo = data.BoxNo3; // 箱号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); i++; ////添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = data.BoxCode1; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); if (i >= 100) { break; } } #endregion } break; case "3": if (string.IsNullOrWhiteSpace(endBoxNo)) { if (string.IsNullOrWhiteSpace(boxNo)) { throw new Exception("起始箱码不能为空"); } #region 箱码和箱码内的支码 if (!string.IsNullOrWhiteSpace(boxNo2)) { if (string.IsNullOrWhiteSpace(endBoxNo2)) //单个支码和箱码 { #region 单个支码和箱码 var dataList = list.Where(m => m.BoxNo == boxNo); var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2); if (data == null) { throw new Exception($"未查询到{boxNo2}信息"); } if (data.BoxNo != boxNo)//判断箱码是否相同 { throw new Exception($"当前支码不是箱码内"); } // 物料条码信息赋值 箱码 BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = data.SkuNo; model1.SkuName = data.SkuName; model1.LotNo = data.LotNo; //批次 model1.SupplierLot = data.SupplierLot; // 原厂批号 model1.Standard = data.Standard; // 规格/型号 model1.PackageStandard = data.PackageStandard; // 包装规格 model1.ExpirationTime = data.ExpirationTime; // 有效期至 model1.StoreTime = data.StoreTime; // 储存期至 model1.Qty = dataList.Sum(m=>m.Qty);// 数量 model1.BoxNo = data.BoxNo; // 箱号 model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model1); // 物料条码信息赋值 支码 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = data.SkuNo; model.SkuName = data.SkuName; model.LotNo = data.LotNo; //批次 model.SupplierLot = data.SupplierLot; // 原厂批号 model.Standard = data.Standard; // 规格/型号 model.PackageStandard = data.PackageStandard; // 包装规格 model.ExpirationTime = data.ExpirationTime; // 有效期至 model.StoreTime = data.StoreTime; // 储存期至 model.Qty = data.Qty;// 数量 model.BoxNo = data.BoxNo3; // 支号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); ////添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = data.BoxCode1; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); #endregion } else//一箱内某几个支码 { #region 单个箱码和多个支码 var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'"; var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); if (data2.Count == 0) { throw new Exception($"未查询到{boxNo2}-{endBoxNo2}中信息"); } if (data2.Count(m => m.BoxNo != boxNo) > 0) { throw new Exception($"{boxNo2}-{endBoxNo2}中信息有不属于{boxNo}箱码内的"); } var data = list.Where(m => m.BoxNo == boxNo); var boxData = data2.FirstOrDefault(); // 物料条码信息赋值 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = boxData.SkuNo; model.SkuName = boxData.SkuName; model.LotNo = boxData.LotNo; //批次 model.SupplierLot = boxData.SupplierLot; // 原厂批号 model.Standard = boxData.Standard; // 规格/型号 model.PackageStandard = boxData.PackageStandard; // 包装规格 model.ExpirationTime = boxData.ExpirationTime; // 有效期至 model.StoreTime = boxData.StoreTime; // 储存期至 model.Qty = data.Sum(m => m.Qty); // 数量 model.BoxNo = boxData.BoxNo; // 支号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); var i = 0; foreach (var item in data2) { // 物料条码信息赋值 BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = item.SkuNo; model1.SkuName = item.SkuName; model1.LotNo = item.LotNo; //批次 model1.SupplierLot = item.SupplierLot; // 原厂批号 model1.Standard = item.Standard; // 规格/型号 model1.PackageStandard = item.PackageStandard; // 包装规格 model1.ExpirationTime = item.ExpirationTime; // 有效期至 model1.StoreTime = item.StoreTime; // 储存期至 model1.Qty = item.Qty;// 数量 model1.BoxNo = item.BoxNo3; // 支号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); i++; ////添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = item.BoxCode1; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); if (i >= 100) { break; } } #endregion } } else //整箱支码和一个箱码 { #region 整箱支码和一个箱码 var data = list.Where(m => m.BoxNo == boxNo).ToList(); var boxData = data.FirstOrDefault(); if (boxData == null) { throw new Exception($"未查询到{boxNo}箱码信息"); } // 物料条码信息赋值 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = boxData.SkuNo; model.SkuName = boxData.SkuName; model.LotNo = boxData.LotNo; //批次 model.SupplierLot = boxData.SupplierLot; // 原厂批号 model.Standard = boxData.Standard; // 规格/型号 model.PackageStandard = boxData.PackageStandard; // 包装规格 model.ExpirationTime = boxData.ExpirationTime; // 有效期至 model.StoreTime = boxData.StoreTime; // 储存期至 model.Qty = data.Sum(m => m.Qty); // 数量 model.BoxNo = boxData.BoxNo; // 支号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //判断是否有支码 { var i = 0; foreach (var item in data) { // 物料条码信息赋值 BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = item.SkuNo; model1.SkuName = item.SkuName; model1.LotNo = item.LotNo; //批次 model1.SupplierLot = item.SupplierLot; // 原厂批号 model1.Standard = item.Standard; // 规格/型号 model1.PackageStandard = item.PackageStandard; // 包装规格 model1.ExpirationTime = item.ExpirationTime; // 有效期至 model1.StoreTime = item.StoreTime; // 储存期至 model1.Qty = item.Qty; // 数量 model1.BoxNo = item.BoxNo3; // 支号 model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model1); i++; ////添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = item.BoxCode1; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); if (i >= 100) { break; } } } else { throw new Exception("当前箱内没有支码"); } #endregion } #endregion } else { if (string.IsNullOrWhiteSpace(boxNo)) { throw new Exception("起始箱码不能为空"); } #region 多个箱码和内支码 var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'"; var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql); var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList(); if (data3.Count == 0) { throw new Exception($"未查询到{boxNo}-{endBoxNo}中信息"); } var i = 0; var j = 0; foreach (var demo in data3) { var data = list.Where(m => m.BoxNo == demo).ToList(); var boxData = data.FirstOrDefault(); if (boxData == null) { throw new Exception($"未查询到{demo}箱码信息"); } // 物料条码信息赋值 BoxInfoDto model = new BoxInfoDto(); model.SkuNo = boxData.SkuNo; model.SkuName = boxData.SkuName; model.LotNo = boxData.LotNo; //批次 model.SupplierLot = boxData.SupplierLot; // 原厂批号 model.Standard = boxData.Standard; // 规格/型号 model.PackageStandard = boxData.PackageStandard; // 包装规格 model.ExpirationTime = boxData.ExpirationTime; // 有效期至 model.StoreTime = boxData.StoreTime; // 储存期至 model.Qty = data.Sum(m => m.Qty); // 数量 model.BoxNo = boxData.BoxNo; // 支号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model); j++; if (j >= 100) { break; } if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //判断是否有支码 { foreach (var item in data.OrderBy(m => m.BoxNo3).ToList()) { // 物料条码信息赋值 BoxInfoDto model1 = new BoxInfoDto(); model1.SkuNo = item.SkuNo; model1.SkuName = item.SkuName; model1.LotNo = item.LotNo; //批次 model1.SupplierLot = item.SupplierLot; // 原厂批号 model1.Standard = item.Standard; // 规格/型号 model1.PackageStandard = item.PackageStandard; // 包装规格 model1.ExpirationTime = item.ExpirationTime; // 有效期至 model1.StoreTime = item.StoreTime; // 储存期至 model1.Qty = item.Qty;// 数量 model1.BoxNo = item.BoxNo3; // 支号 model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 100, 25); // 添加到list集合 printModelList.Add(model1); i++; ////添加打印记录 //WmsLabelPrintLog log = new WmsLabelPrintLog(); //log.BoxCode = item.BoxCode1; //log.CreateTime = DateTime.Now; //log.Demo = Demo; //log.Isdel = 0; //log.CreateUser = userId; //printlog.Add(log); if (i >= 100) { break; } } } } #endregion } break; default: throw new Exception("请选择补打类型"); } #endregion //dataContext.WmsLabelPrintLog.InsertAllOnSubmit(printlog); // dataContext.SubmitChanges(); // return printModel; return printModelList; } catch (Exception e) { throw new Exception(e.Message); } } } } Wms/WMS.IBLL/IBllAsnServer/IBllBoxInfoServer.cs
@@ -57,5 +57,18 @@ /// <returns></returns> List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, string productionTime, string expirationTime, string storeTime, int userId); /// <summary> /// 补打标签 /// </summary> /// <param name="boxNo">开始箱码</param> /// <param name="endBoxNo">结束箱码</param> /// <param name="boxNo2">开始支码</param> /// <param name="endBoxNo2">结束支码</param> /// <param name="type">1箱码 2支码 3箱码和支码</param> /// <param name="userId">操作人ID</param> /// <returns></returns> List<BoxInfoDto> GetBuDaLabelList(string boxNo, string endBoxNo, string boxNo2, string endBoxNo2, string type, int userId); } } Wms/Wms/Controllers/BllAsnController.cs
@@ -901,6 +901,34 @@ } } [HttpPost] public IActionResult GetBuDaLabelList(BuDaLabelBoxVm 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 = "未获取到当前操作人信息" }); } var list = _BoxInfoSvc.GetBuDaLabelList(model.BoxNo, model.EndBoxNo, model.BoxNo2, model.EndBoxNo2,model.Type,int.Parse(userId)); return Ok(new { code = 0, msg = "获取补打箱码标签信息", data = list }); } catch (Exception e) { return Ok(new { code = 1, count = 0, msg = e.Message }); } } #endregion }