Pda/View/AsnSetting/WorkshopIn.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Pda/View/AsnSetting/printLabels.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Pda/View/SoSetting/WorkshopOut.html | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/Wms/Controllers/PdaAsnController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
Wms/Wms/Controllers/UpApiController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Pda/View/AsnSetting/WorkshopIn.html
@@ -109,7 +109,7 @@ <div id="content1"> <div id="zongDiv" class="layout-bill-info" style="height: 285px;"> <form class="layui-form" action=""> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>托盘条码:</label> <div class="layui-input-block"> @@ -125,10 +125,10 @@ </div> </div> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>数量:</label> <label class="layui-form-label" lang>数量:</label> <div class="layui-input-block"> <input id="BoxNum" type="number" lay-verify="required" lang langholder placeholder="请输入数量" autocomplete="off" class="layui-input" placeholder="请输入数量" autocomplete="off" class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> </div> </div> @@ -163,7 +163,7 @@ </div> </div> </td> </tr> </table> @@ -186,17 +186,18 @@ <div id="content2"> <div id="zongDiv2" class="layout-bill-info" style="height: 255px;"> <form class="layui-form" id="form2" action=""> <div id="" class="layui-form-item layout-input"> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>物料编码:</label> <div class="layui-input-block"> <input id="SkuNo" type="text" lay-verify="stock" lang langholder placeholder="请输入物料编码" autocomplete="off" class="layui-input"> <input id="SkuNo" type="text" lay-verify="stock" lang langholder placeholder="请输入物料编码" autocomplete="off" class="layui-input"> </div> </div><div id="" class="layui-form-item layout-input"> </div> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>批次号:</label> <div class="layui-input-block"> <input id="LotNo2" type="text" lay-verify="stock" lang langholder placeholder="请输入批次" autocomplete="off" class="layui-input"> <input id="LotNo2" type="text" lay-verify="stock" lang langholder placeholder="请输入批次" autocomplete="off" class="layui-input"> </div> </div> <div id="" class="layui-form-item layout-input"> @@ -337,7 +338,7 @@ initLanguage() setLanguage() //是否连续组托 isContinue = "0"; @@ -405,48 +406,60 @@ //箱码回车事件 $("#BoxCode").keydown(function (e) { if (e.keyCode === 13) { if ($("#BoxCode").val() == "") { layer.msg('请先扫描箱码', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return } checkBoxInfo() // $("#BoxCode").keydown(function (e) { // if (e.keyCode === 13) { // if ($("#BoxCode").val() == "") { // layer.msg('请先扫描箱码', { // icon: 2, // time: 2000 //2秒关闭(如果不配置,默认是3秒) // }); // return // } // checkBoxInfo() // } // }); // 箱码失去焦点时出发 $("#BoxCode").blur(function () { if ($("#BoxCode").val() == "") { layer.msg('请先扫描箱码', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return } }); checkBoxInfo() }) //箱回车事件 function checkBoxInfo() { var param = { "boxNo": $("#BoxCode").val(), } synData(IP + "/PdaAsn/GetWmsBoxInfos", param, 'get', function (res) { if (res.code == 0) { //成功 $("#BoxNum").val(res.data[0].Qty); $("#SkuName").val(res.data[0].SkuName); $("#LotNo").val(res.data[0].LotNo); } else { //不成功 layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } }); } } //绑定到托盘事件 form.on('submit(formBind)', function (data) { if (xianshiyemian == 0) { if ($("#PalletNo").val() == "") { layer.msg('请扫描托盘条码', { icon: 2, @@ -465,7 +478,7 @@ PalletNo: $("#PalletNo").val(), BoxNo: $("#BoxCode").val(), SkuQty: parseFloat($("#BoxNum").val()), //物料数量 AreaNo:$("#area").val(), AreaNo: $("#area").val(), TableType: xianshiyemian, } console.log(param) @@ -480,7 +493,7 @@ $("#BoxNum").val(""); $("#SkuName").val(""); $("#LotNo").val(""); }); } else { //不成功 layer.msg(res.msg, { @@ -514,12 +527,12 @@ }); return; } var param = { var param = { PalletNo: $("#PalletNo2").val(), SkuNo: $("#SkuNo").val(), LotNo: $("#LotNo2").val(), SkuQty: parseFloat($("#SkuQty2").val()), //物料数量 AreaNo:$("#area").val(), AreaNo: $("#area").val(), TableType: xianshiyemian, } console.log(param) @@ -534,7 +547,7 @@ $("#SkuNo").val(""); $("#SkuQty2").val(""); $("#LotNo2").val(""); }); } else { //不成功 layer.msg(res.msg, { @@ -550,7 +563,7 @@ return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); /*——————————————————————————————————————————————————————————*/ Pda/View/AsnSetting/printLabels.html
@@ -1,276 +1,267 @@ <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" /> <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=2.0, user-scalable=no" /> --> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Boxline PDA</title> <link rel="stylesheet" href="/layui/css/layui.css" /> <link rel="stylesheet" href="/css/style.css" /> <script src="/js/adaptive.js"></script> <link rel="stylesheet" href="/css/my.css" /> <link rel="stylesheet" href="/css/adapter.css" /> <style type="text/css"> .layout-bill-info { height: 255px; } .layout-tbl-submit { margin-top: 10px; } </style> </head> <body> <div id="" class="main-content"> <div id="" class="layout-title"> <table border="" cellspacing="" cellpadding=""> <tr> <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg" ></a></td> <td class="title-text">线边标签</td> <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg" ></td> </tr> </table> <head> <meta charset="UTF-8" /> <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" /> <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=2.0, user-scalable=no" /> --> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Boxline PDA</title> <link rel="stylesheet" href="/layui/css/layui.css" /> <link rel="stylesheet" href="/css/style.css" /> <script src="/js/adaptive.js"></script> <link rel="stylesheet" href="/css/my.css" /> <link rel="stylesheet" href="/css/adapter.css" /> <style type="text/css"> .layout-bill-info { height: 255px; } .layout-tbl-submit { margin-top: 10px; } </style> </head> <body> <div id="" class="main-content"> <div id="" class="layout-title"> <table border="" cellspacing="" cellpadding=""> <tr> <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg"></a></td> <td class="title-text">线边标签</td> <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td> </tr> </table> </div> <div id="" class="layout-sub-content"> <div id="menuList" class="menu"> <ul class="" style="text-align: center;"> <li><a href="../index.html">主页</a></li> <li><a href="../login.html">重新登录</a></li> </ul> </div> <div id="" class="layout-sub-content"> <div id="menuList" class="menu"> <ul class="" style="text-align: center;"> <li><a href="../index.html">主页</a></li> <li><a href="../login.html">重新登录</a></li> </ul> </div> <div> <button id="click" class="layout-btn" type="button" style="background-color: #999; width: 100%;text-align: center; margin-top: 2px;">连接蓝牙</button> </div> <div id="zongDiv2" class="layout-bill-info" style="height: 255px;"> <form class="layui-form" id="form2" action=""> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>物料编码:</label> <div class="layui-input-block"> <input id="skuNo" type="text" placeholder="" autocomplete="off" class="layui-input" > </div> </div> <div> <button id="click" class="layout-btn" type="button" style="background-color: #999; width: 100%;text-align: center; margin-top: 2px;">连接蓝牙</button> </div> <div id="zongDiv2" class="layout-bill-info" style="height: 255px;"> <form class="layui-form" id="form2" action=""> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>物料编码:</label> <div class="layui-input-block"> <input id="skuNo" type="text" placeholder="" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">物料名称:</label> <div class="layui-input-block"> <input id="skuName" type="text" placeholder="" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">批次号:</label> <div class="layui-input-block"> <input id="lotNo" type="text" placeholder="" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">生产日期:</label> <div class="layui-input-block"> <input id="timeFrom" type="date" placeholder="请选择日期" autocomplete="off" class="measureDate" style="padding-left: 0px;"> </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">有效期:</label> <div class="layui-input-block"> <input id="timeEnd" type="date" placeholder="请选择日期" autocomplete="off" class="measureDate" style="padding-left: 0px;"> </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">箱内数量:</label> <div class="layui-input-block"> <input id="skuNum" type="text" placeholder="" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">物料名称:</label> <div class="layui-input-block"> <input id="skuName" type="text" placeholder="" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">批次号:</label> <div class="layui-input-block"> <input id="lotNo" type="text" placeholder="" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">生产日期:</label> <div class="layui-input-block"> <input id="timeFrom" type="date" placeholder="请选择日期" autocomplete="off" class="measureDate" style="padding-left: 0px;"> </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">有效期:</label> <div class="layui-input-block"> <input id="timeEnd" type="date" placeholder="请选择日期" autocomplete="off" class="measureDate" style="padding-left: 0px;"> </div> </div> <div class="layui-form-item layout-input" style="margin-top: 10px;"> <label class="layui-form-label">箱内数量:</label> <div class="layui-input-block"> <input id="skuNum" type="text" placeholder="" autocomplete="off" class="layui-input"> </div> </div> <table class="layout-tbl-submit" border="" cellspacing="" cellpadding=""> <tr> <td style="width: 23%;"></td> <td> <button id="click2" class="layout-btn layout-btn-red" lang type="button" lay-submit lay-filter="formBind">打印标签</button> </td> <td style="width: 33%;"></td> <table class="layout-tbl-submit" border="" cellspacing="" cellpadding=""> <tr> <td style="width: 23%;"></td> <td> <button id="click2" class="layout-btn layout-btn-red" lang type="button" lay-submit lay-filter="formBind">打印标签</button> </td> <td style="width: 33%;"></td> </tr> </table> </form> </div> <div id="" class="layout-bill-info"> </div> </tr> </table> </form> </div> <div id="" class="layout-bill-info"> </div> </div> <script src="/js/jquery-3.5.1.min.js"></script> <script src="/layui/layui.js"></script> <script src="/js/public.js"></script> <script src="/js/jquery.cookie.js"></script> <script src="/js/uni.webview.1.5.2.js"></script> <!-- <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script> --> </div> <script type="text/javascript"> let date = new Date(); let yyyy = date.getFullYear(); let MM = (date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : (date.getMonth() + 1); let dd = date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate(); // let HH = date.getHours() < 10 ? ("0" + date.getHours()) : date.getHours(); // let mm = date.getMinutes() < 10 ? ("0" + date.getMinutes()) : date.getMinutes(); let curDay = yyyy + '-' + MM + '-' + dd ;//+ 'T' + HH + ':' + mm; $('.measureDate').val(curDay); console.log(curDay); </script> <script src="/js/jquery-3.5.1.min.js"></script> <script src="/layui/layui.js"></script> <script src="/js/public.js"></script> <script src="/js/jquery.cookie.js"></script> <script> var dataLists; layui.use(['form', 'jquery'], function() { var form = layui.form // 链接蓝牙 $("#menuImg").click(function(e){ e.stopPropagation() if($("#menuList").is(":hidden")){ $("#menuList").show() }else{ $("#menuList").hide() } }) $('body').click(function(){ <script src="/js/uni.webview.1.5.2.js"></script> <!-- <script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script> --> <script type="text/javascript"> let date = new Date(); let yyyy = date.getFullYear(); let MM = (date.getMonth() + 1) < 10 ? ("0" + (date.getMonth() + 1)) : (date.getMonth() + 1); let dd = date.getDate() < 10 ? ("0" + date.getDate()) : date.getDate(); // let HH = date.getHours() < 10 ? ("0" + date.getHours()) : date.getHours(); // let mm = date.getMinutes() < 10 ? ("0" + date.getMinutes()) : date.getMinutes(); let curDay = yyyy + '-' + MM + '-' + dd;//+ 'T' + HH + ':' + mm; $('.measureDate').val(curDay); console.log(curDay); </script> <script> var dataLists; layui.use(['form', 'jquery'], function () { var form = layui.form // 链接蓝牙 $("#menuImg").click(function (e) { e.stopPropagation() if ($("#menuList").is(":hidden")) { $("#menuList").show() } else { $("#menuList").hide() }) //物料编码失去焦点事件 $("#skuNo").on('blur',function (e) { if ($("#skuNo").val() == "") { layer.msg('请输入物料编码', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return } getSkuInfo(); }); //物料名称失去焦点事件 $("#skuName").on('blur',function (e) { if ($("#skuName").val() == "") { layer.msg('请输入物料编码名称', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return } getSkuInfo(); }); // 验证获取物料信息 function getSkuInfo(){ var param = { SkuNo:$("#skuNo").val(), SkuName:$("#skuName").val() } synData(IP + "/PdaAsn/getSkuInfo", param, 'post', function (res) { console.log(JSON.stringify(res)) if (res.code == 0 && res.data != null) { //成功 console.log(res.data); $("#skuNo").val(res.data.SkuNo); $("#skuName").val(res.data.SkuName); }else{ layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } }); } }) $('body').click(function () { $("#menuList").hide() }) document.addEventListener("UniAppJSBridgeReady", function () { document.getElementById("click").addEventListener("click", function () { let data = { type: "search" }; console.log("给 uni-app 发送数据", data); uni.postMessage({ data: data, }); //物料编码失去焦点事件 $("#skuNo").on('blur', function (e) { if ($("#skuNo").val() == "") { layer.msg('请输入物料编码', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); document.getElementById("click2").addEventListener("click", function () { // 验证必填项 if ($("#skuNo").val() == "") { layer.msg('物料编码不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } return } if ($("#skuName").val() == "") { layer.msg('物料名称不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } getSkuInfo(); }); if ($("#lotNo").val() == "") { layer.msg('批次号不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } if ($("#skuNum").val() == "") { layer.msg('箱内数量不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } //物料名称失去焦点事件 $("#skuName").on('blur', function (e) { if ($("#skuName").val() == "") { layer.msg('请输入物料编码名称', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return } // 参数 var param = { SkuNo:$("#skuNo").val(), SkuName:$("#skuName").val(), LotNo:$("#lotNo").val(), TimeFrom:$("#timeFrom").val(), TimeEnd:$("#timeEnd").val(), SkuNum:$("#skuNum").val() } getSkuInfo(); }); // 存储新标签 synData(IP + "/PdaAsn/AddLabels", param, 'post', function (res) { console.log(JSON.stringify(res)) if (res.code == 0 && res.data != null) { //成功 console.log(res.data); dataLists = res.data; }else{ layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } // 验证获取物料信息 function getSkuInfo() { var param = { SkuNo: $("#skuNo").val(), SkuName: $("#skuName").val() } synData(IP + "/PdaAsn/getSkuInfo", param, 'post', function (res) { console.log(JSON.stringify(res)) if (res.code == 0 && res.data != null) { //成功 console.log(res.data); $("#skuNo").val(res.data.SkuNo); $("#skuName").val(res.data.SkuName); } else { layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } }); } }) document.addEventListener("UniAppJSBridgeReady", function () { document.getElementById("click").addEventListener("click", function () { let data = { type: "search" }; console.log("给 uni-app 发送数据", data); uni.postMessage({ data: data, }); }); document.getElementById("click2").addEventListener("click", function () { // 验证必填项 if ($("#skuNo").val() == "") { layer.msg('物料编码不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } if ($("#skuName").val() == "") { layer.msg('物料名称不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } if ($("#lotNo").val() == "") { layer.msg('批次号不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } if ($("#skuNum").val() == "") { layer.msg('箱内数量不可为null', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } // 参数 var param = { SkuNo: $("#skuNo").val(), SkuName: $("#skuName").val(), LotNo: $("#lotNo").val(), TimeFrom: $("#timeFrom").val(), TimeEnd: $("#timeEnd").val(), SkuNum: $("#skuNum").val() } // 存储新标签 synData(IP + "/PdaAsn/AddLabels", param, 'post', function (res) { console.log(JSON.stringify(res)) if (res.code == 0 && res.data != null) { //成功 console.log(res.data); dataLists = res.data; let data = { type: "print", listData:dataLists listData: dataLists // { // SkuNo:'541100554848', // SkuName:'葡萄糖葡萄糖葡萄糖葡萄糖葡萄糖', @@ -290,24 +281,34 @@ uni.postMessage({ data: data, }); }); } else { layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return; } }); </script> <script type="text/javascript"> // window.jsfunction = function (data) { // let canshutype = typeof data; // let mes = typeof data == "object" ? JSON.stringify(data) : data; // alert("收到参数" + canshutype); // document.getElementById("messageText").innerHTML = // "恭喜你,接收到你的参数\n,参数是" + canshutype + "参数如下:\n" + mes; // console.log("data", data); // }; </script> </body> </html> }); }); </script> <script type="text/javascript"> // window.jsfunction = function (data) { // let canshutype = typeof data; // let mes = typeof data == "object" ? JSON.stringify(data) : data; // alert("收到参数" + canshutype); // document.getElementById("messageText").innerHTML = // "恭喜你,接收到你的参数\n,参数是" + canshutype + "参数如下:\n" + mes; // console.log("data", data); // }; </script> </body> </html> Pda/View/SoSetting/WorkshopOut.html
@@ -109,7 +109,7 @@ <div id="content1"> <div id="zongDiv" class="layout-bill-info" style="height: 285px;"> <form class="layui-form" action=""> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>托盘条码:</label> <div class="layui-input-block"> @@ -124,24 +124,24 @@ placeholder="请扫描外箱条码" autocomplete="off" class="layui-input"> </div> </div> <table class="layout-tbl-input" border="" cellspacing="" cellpadding=""> <tr> <td> <div id="" class="layui-form-item layout-boxinfo"> <label class="layui-form-label" style=" width: 21%;" lang>批次:</label> <div class="layui-input-block" style=" width: 79%;margin-left: 21%;" > <div class="layui-input-block" style=" width: 79%;margin-left: 21%;"> <input id="LotNo" type="text" disabled placeholder="" autocomplete="off" class="layui-input"> </div> </div> </td> </tr> <tr> <td> <tr> <td> <div id="" class="layui-form-item layout-boxinfo"> <label class="layui-form-label" style=" width: 21%;" lang>物料名称:</label> <div class="layui-input-block" style=" width: 79%;margin-left: 21%;" > <div class="layui-input-block" style=" width: 79%;margin-left: 21%;"> <input id="SkuName" type="text" disabled placeholder="" autocomplete="off" class="layui-input"> </div> @@ -169,17 +169,18 @@ <div id="content2"> <div id="zongDiv2" class="layout-bill-info" style="height: 255px;"> <form class="layui-form" id="form2" action=""> <div id="" class="layui-form-item layout-input"> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>物料编码:</label> <div class="layui-input-block"> <input id="SkuNo" type="text" lay-verify="stock" lang langholder placeholder="请输入物料编码" autocomplete="off" class="layui-input"> <input id="SkuNo" type="text" lay-verify="stock" lang langholder placeholder="请输入物料编码" autocomplete="off" class="layui-input"> </div> </div><div id="" class="layui-form-item layout-input"> </div> <div id="" class="layui-form-item layout-input"> <label class="layui-form-label" lang>批次号:</label> <div class="layui-input-block"> <input id="LotNo2" type="text" lay-verify="stock" lang langholder placeholder="请输入批次" autocomplete="off" class="layui-input"> <input id="LotNo2" type="text" lay-verify="stock" lang langholder placeholder="请输入批次" autocomplete="off" class="layui-input"> </div> </div> <div id="" class="layui-form-item layout-input"> @@ -320,7 +321,7 @@ initLanguage() setLanguage() //是否连续组托 isContinue = "0"; @@ -388,18 +389,32 @@ //箱码回车事件 $("#BoxCode").keydown(function (e) { if (e.keyCode === 13) { if ($("#BoxCode").val() == "") { layer.msg('请先扫描箱码', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return } checkBoxInfo() // $("#BoxCode").keydown(function (e) { // if (e.keyCode === 13) { // if ($("#BoxCode").val() == "") { // layer.msg('请先扫描箱码', { // icon: 2, // time: 2000 //2秒关闭(如果不配置,默认是3秒) // }); // return // } // checkBoxInfo() // } // }); // 箱码失去焦点时出发 $("#BoxCode").blur(function () { if ($("#BoxCode").val() == "") { layer.msg('请先扫描箱码', { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); return } }); checkBoxInfo() }) //箱回车事件 function checkBoxInfo() { @@ -407,26 +422,26 @@ "BoxNo": $("#BoxCode").val(), } sendData(IP + "/PdaSo/GetWmsBoxInfos", param, 'get', function (res) { if (res.code == 0) { //成功 $("#SkuName").val(res.data[0].SkuName); $("#LotNo").val(res.data[0].LotNo); } else { //不成功 layer.msg(res.msg, { icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); icon: 2, time: 2000 //2秒关闭(如果不配置,默认是3秒) }); } }); } } //绑定到托盘事件 form.on('submit(formBind)', function (data) { if (xianshiyemian == 0) { if ($("#PalletNo").val() == "") { layer.msg('请扫描托盘条码', { icon: 2, @@ -456,7 +471,7 @@ $("#BoxCode").val(""); $("#SkuName").val(""); $("#LotNo").val(""); }); } else { //不成功 layer.msg(res.msg, { @@ -490,12 +505,12 @@ }); return; } var param = { var param = { PalletNo: $("#PalletNo2").val(), SkuNo: $("#SkuNo").val(), LotNo: $("#LotNo2").val(), SkuQty: parseFloat($("#SkuQty2").val()), //物料数量 AreaNo:$("#area").val(), AreaNo: $("#area").val(), TableType: xianshiyemian, } console.log(param) @@ -510,7 +525,7 @@ $("#SkuNo").val(""); $("#SkuQty2").val(""); $("#LotNo2").val(""); }); } else { //不成功 layer.msg(res.msg, { @@ -526,7 +541,7 @@ return false; //阻止表单跳转。如果需要表单跳转,去掉这段即可。 }); /*——————————————————————————————————————————————————————————*/ Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs
@@ -370,7 +370,9 @@ if (string.IsNullOrWhiteSpace(detailModel.LotNo)) { string toDayTime = DateTime.Now.ToString("yyyyMM"); var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr); var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>() .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM")).Max(m => m.BoxCodeStr); if(string.IsNullOrWhiteSpace(maxBoxCodeStr)) { maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001"; @@ -634,7 +636,9 @@ // } //} //detailModel.LotNo = maxLotNo; var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>().Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMMdd") == DateTime.Now.ToString("yyyyMMdd")).Max(m => m.BoxCodeStr); var maxBoxCodeStr = Db.Queryable<BllArrivalNoticeDetail>() .Where(m => m.IsDel == "0" && m.BoxCodeStr.Contains("BK") && m.CreateTime.ToString("yyyyMM") == DateTime.Now.ToString("yyyyMM")).Max(m => m.BoxCodeStr); if (string.IsNullOrWhiteSpace(maxBoxCodeStr)) { maxBoxCodeStr = "BK" + toDayTime.Substring(2, 4) + "0001"; Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -2452,7 +2452,7 @@ } } // 车间绑定托盘-贴标 public void ChejianIn(string palletNo,string boxNo,decimal qty,string areaNo,int userId) { try @@ -2685,7 +2685,7 @@ var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{palletNo}';"; ////添加托盘记录表数据 //sqlStr += $"insert into LogPalletTrack values('{palletNo}','{boxNo}','组盘','0',getDate(),{userId},NULL,NULL);"; //Db.Ado.ExecuteCommand(sqlStr); Db.Ado.ExecuteCommand(sqlStr); new OperationASNServer().AddLogOperationAsn("PDA模块", "车间入库", boxNo, "添加", $"添加了托盘码为:{palletNo}、{msgStr}的入库信息", userId); //提交事务 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs
@@ -1303,9 +1303,8 @@ SkuName = boxInfo.SkuName, LotNo = boxInfo.LotNo, BoxNoList = new List<string>() { boxNoNew } , Date1 = boxInfo.ProductionTime.ToString(), Date2 = boxInfo.ExpirationTime.ToString(), Date1 = boxInfo.ProductionTime == null ? "" : Convert.ToDateTime(boxInfo.ProductionTime).ToString("yyyy-MM-dd"), Date2 = boxInfo.ExpirationTime == null ? "" : Convert.ToDateTime(boxInfo.ExpirationTime).ToString("yyyy-MM-dd"), }; #endregion Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1475,7 +1475,7 @@ } } //车间pda拣货 //车间pda拣货 - 标签 public async Task ChejianPick(string palletNo, string boxNo, int userId) { Db.BeginTran(); @@ -1489,7 +1489,7 @@ } if (string.IsNullOrEmpty(boxNo)) { throw Oops.Bah("追溯条码和拣货数量不能同时输入"); throw Oops.Bah("箱码不可为空"); } //箱码明细 @@ -1502,26 +1502,34 @@ boxInfos = await boxInfo.ToListAsync(); //库存明细 var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == boxInfos.First().SkuNo && m.LotNo == boxInfos.First().LotNo); var stockDetail = await Db.Queryable<DataStockDetail>() .FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == boxInfos.First().SkuNo && m.LotNo == boxInfos.First().LotNo); if (stockDetail == null) { throw Oops.Bah("未查询到该托盘分配的库存明细信息!"); } // 验证是否车间线边仓库 var areaList = new List<string>() { "B06", "B07", "B09" }; if (!areaList.Contains(stockDetail.AreaNo)) { throw Oops.Bah("托盘不是车间托盘!"); } //库存总表 var stock = await Db.Queryable<DataStock>().FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); var stock = await Db.Queryable<DataStock>() .FirstAsync(a => a.IsDel == "0" && a.SkuNo == stockDetail.SkuNo && a.LotNo == stockDetail.LotNo); if (stock == null) { throw Oops.Bah("未查询到该托盘分配的库存信息!"); } #endregion var pickQty = boxInfos.Sum(m => m.Qty); // 删除箱任务 await Db.Deleteable(boxInfos).ExecuteCommandAsync(); //删除或修改库存明细 @@ -1558,6 +1566,7 @@ { await Db.Updateable(stock).ExecuteCommandAsync(); } var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); if (num2 <= 0) { @@ -1572,7 +1581,8 @@ } //添加操作日志记录 var k = new OperationSOServer().AddLogOperationSo("PDA模块", "车间出库", boxNo, "拣货", $"在PDA上对箱号为:{boxNo}的托盘码为:{palletNo}的拣货操作", userId); var k = new OperationSOServer().AddLogOperationSo("PDA模块", "车间出库", boxNo, "拣货", $"在PDA上对箱号为:{boxNo}的托盘码为:{palletNo}的拣货操作", userId); Db.CommitTran(); } catch (AppFriendlyException e) Wms/Wms/Controllers/PdaAsnController.cs
@@ -3,6 +3,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Options; using Model.InterFaceModel; using Model.ModelDto; using Model.ModelDto.BllAsnDto; using Model.ModelDto.DataDto; using Model.ModelVm; @@ -11,6 +12,8 @@ using Model.ModelVm.SysVm; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using Utility; using Utility.Tools; @@ -37,7 +40,6 @@ _PdaAsnSvc = pdaAsnSvc; _userManager = userManager; } #region JC34 @@ -919,7 +921,16 @@ model.userId = int.Parse(UserId); var models = _PdaAsnSvc.AddLabels(model); return Ok(new { code = 0, msg = "箱码生成成功!", data = models }); var data = new BoxListInfoDto(); data.SkuNo = model.SkuNo; data.SkuName = model.SkuName; data.LotNo = model.LotNo; data.Date1 = model.TimeFrom == null ? "" : Convert.ToDateTime(model.TimeFrom).ToString("yyyy-MM-dd"); data.Date2 = model.TimeEnd == null ? "" : Convert.ToDateTime(model.TimeEnd).ToString("yyyy-MM-dd"); data.BoxNoList = models.Select(m => m.BoxNo).ToList(); return Ok(new { code = 0, msg = "箱码生成成功!", data = data }); } catch (Exception e) { Wms/Wms/Controllers/UpApiController.cs
@@ -47,6 +47,8 @@ private readonly IPdaAsnServer _pdaAsnServer;// PDA private readonly IHttpServer _http; private string logStr = $@".\log\SAP赋码\Sap下发报文" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; public UpApiController(IOptions<ApiUrlConfig> setting, IExportNoticeServer exNoticeSvc, IArrivalNoticeServer arrivalNoticeServer, IStockCheckServer stockCheckSvc, IProcurePlanServer procurePlanSvc, IPdaAsnServer pdaAsnServer, IHttpServer http) { _config = setting.Value; @@ -60,8 +62,6 @@ #endregion #region JC34 /// <summary> /// 物料下发 /// </summary> @@ -71,10 +71,9 @@ [HttpPost] public IActionResult CreateSku(object model) { try { LogFile.SaveLogToFile($"Sap物料主数据:( {model} ),", logStr); return Ok(new { result = true, code = "1" ,message = "success" }); } catch (Exception e) @@ -95,7 +94,8 @@ { try { { LogFile.SaveLogToFile($"Sap客户信息主数据:( {model} ),", logStr); return Ok(new { result = true, code = "1", message = "success" }); } catch (Exception e) @@ -117,6 +117,7 @@ try { LogFile.SaveLogToFile($"Sap入库单下发:( {model} ),", logStr); return Ok(new { result = true, code = "1", message = "success" }); } catch (Exception e) @@ -137,6 +138,7 @@ try { LogFile.SaveLogToFile($"Sap出库单下发:( {model} ),", logStr); return Ok(new { result = true, code = "1", message = "success" }); } catch (Exception e) @@ -158,9 +160,9 @@ try { // var sd = JsonConvert.SerializeObject(model); // var sd2 = JsonConvert.DeserializeObject<BoxPalletBindVm>(sd); // var sd = JsonConvert.SerializeObject(model); // var sd2 = JsonConvert.DeserializeObject<BoxPalletBindVm>(sd); LogFile.SaveLogToFile($"Sap质量状态变更:( {model} ),", logStr); return Ok(new { result = true, code = "1", message = "success" }); } catch (Exception e)