| | |
| | | { field: 'LotNo', title: '批次号', align: 'center', width: 120 }, |
| | | { field: 'Qty', title: '数量', align: 'center', width: 90 }, |
| | | { field: 'FullQty', title: '整托数量', align: 'center', width: 90 }, |
| | | { field: 'SamplingQty', title: '取样数量', align: 'center', width: 90 }, |
| | | //{ field: 'SamplingQty', title: '取样数量', align: 'center', width: 90 }, // 取样数量放到请验处显示 |
| | | { field: 'InspectMark', title: '抽检标记', align: 'center', width: 90, templet: '#templetInspectMark' }, |
| | | //{ field: 'Status', title: '执行状态', align: 'center', width: 90, templet: '#templetStatus' }, // 都是入库完成 |
| | | { field: 'BitPalletMark', title: '零托标记', align: 'center', width: 90, templet: '#templetBitPalletMark' }, |
| | |
| | | { field: 'LotNo', title: '批次号', align: 'center', width: 150, }, |
| | | { field: 'Qty', title: '数量', align: 'center', width: 105, }, |
| | | { field: 'FullQty', title: '整箱数量', align: 'center', width: 105, }, |
| | | { field: 'SamplingQty', title: '取样数量', align: 'center', width: 105, }, |
| | | //{ field: 'SamplingQty', title: '取样数量', align: 'center', width: 105, }, // 取样数量放到请验页面显示。 |
| | | { field: 'ProductionTime', title: '生产日期', align: 'center', width: 160, templet: '#templetProductionTime' }, |
| | | { field: 'ExpirationTime', title: '过期日期', align: 'center', width: 180, templet: '#templetExpirationTime' }, |
| | | { field: 'LotText', title: '批次描述', align: 'center', width: 150, }, |
| | |
| | | <!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"> |
| | | <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"> |
| | | <link rel="stylesheet" href="../../css/public.css" media="all"> |
| | |
| | | }); |
| | | </script> |
| | | </head> |
| | | |
| | | <body id="body"> |
| | | <div class="layui-fluid" style="padding-bottom: 0;"> |
| | | <div class="layui-card"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" id="top"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" |
| | | id="top"> |
| | | <div class="layui-form-item"> |
| | | <!-- 单据 |
| | | <div class="layui-inline"> |
| | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">批次号</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="请输入物料名称" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="请输入物料名称" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- 物料号 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">物料编码</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="请输入物料编码" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="请输入物料编码" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- 物料名称 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">物料名称</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="请输入物料名称" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="请输入物料名称" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="LAY-app-contlist-search"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit |
| | | lay-filter="LAY-app-contlist-search"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索 |
| | | </button> |
| | | </div> |
| | |
| | | field: 'LotNo',title: '批次号',align: 'center' |
| | | }, |
| | | { |
| | | field: 'FailQty',title: '数量',align: 'center' |
| | | field: 'PassQty', title: '合格数量', align: 'center' |
| | | }, |
| | | { |
| | | field: 'FailQty', title: '不合格数量', align: 'center' |
| | | }, |
| | | { |
| | | field: 'Demo',title: '变更信息',align: 'center',width: 360 |
| | |
| | | cols: colsJson |
| | | }); |
| | | }); |
| | | |
| | | |
| | | |
| | | // var url = "/BllQuality/GetBllQualityList"; |
| | | // sendData(IP + url, param, 'post', function(res) { |
| | | // if (res.code == 0) //成功 |
| | | // { |
| | | // var list = res.data; |
| | | // $.extend(infoOptions, { |
| | | // data: list |
| | | // }); |
| | | // infoOptions.page = { |
| | | // curr: 1 |
| | | // } |
| | | // console.log(res) |
| | | // tableIns = table.render(infoOptions); |
| | | // } |
| | | // else //不成功 |
| | | // { |
| | | // layer.msg('获取质检列表信息失败!', { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }, function() {}); |
| | | // } |
| | | // }); |
| | | } |
| | | |
| | | // function tableclass(LotNo,SkuNo,SkuName) |
| | | // { |
| | | // var param = { |
| | | // // ASNNo: ASNNo, |
| | | // LotNo: LotNo, |
| | | // SkuNo: SkuNo, |
| | | // SkuName: SkuName |
| | | // }; |
| | | // // console.log(param) |
| | | // var url = "/BllQuality/GetBllQualityList"; |
| | | // table.render({ |
| | | // elem: '#LAY-app-content-list', |
| | | // url: IP + url, |
| | | // method: 'post', |
| | | // height: 'full-136', |
| | | // id: 'LAY-app-content-list', |
| | | // where: param, |
| | | // // contentType: 'application/json', |
| | | // // toolbar: '#toolbarDemo', |
| | | // // defaultToolbar: [], //'filter','print', 'exports' |
| | | // // headers: { ToKen: $.cookie('token') }, |
| | | // page: true, |
| | | // even: true, |
| | | // limit: pageCnt, |
| | | // limits: pageLimits, |
| | | // cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | // done: function (res) { |
| | | // setRight(); |
| | | // }, |
| | | // cols: colsJson |
| | | // }); |
| | | // } |
| | | |
| | | // 权限设置 |
| | | function setRight() { |
| | |
| | | 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() { |
| | | $("#approvalBtn").show(); |
| | | }); |
| | |
| | | } |
| | | var xml = ''; |
| | | function getchiled(data, mainId) { |
| | | if (data) |
| | | { |
| | | if (data) { |
| | | var list = data.filter(item => item.ParentId == mainId); |
| | | if (list) |
| | | { |
| | | for (var i = 0; i < list.length; i++) |
| | | { |
| | | if (list) { |
| | | for (var i = 0; i < list.length; i++) { |
| | | var id = list[i].Id; |
| | | //查询有无子菜单 |
| | | var count = data.filter(item => item.ParentId == id).length; |
| | | if (count > 0) |
| | | { |
| | | if (count > 0) { |
| | | xml = xml + '<dd>' + '<a href="javascript:;">' + list[i].Name + '</a>' + '<dl class="layui-nav-child">'; |
| | | getchiled(data, id); |
| | | xml = xml + '</dl></dd>'; |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | xml = xml + '<dd>' + '<a lay-href="' + list[i].Url + '">' + list[i].Name + '</a>' + '</dd>'; |
| | | } |
| | | } |
| | |
| | | }); |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | <!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"> |
| | | <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"> |
| | | <link rel="stylesheet" href="../../css/public.css" media="all"> |
| | |
| | | }); |
| | | </script> |
| | | </head> |
| | | |
| | | <body id="body"> |
| | | <div class="layui-fluid" style="padding-bottom: 0;"> |
| | | <div class="layui-card"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" id="top"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" style="border-bottom:1px solid #CCC" |
| | | id="top"> |
| | | <div class="layui-form-item"> |
| | | <!-- 单据 |
| | | <div class="layui-inline"> |
| | | <!-- 单据 --> |
| | | <!-- <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">入库单据</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="ASNNo" name="ASNNo" placeholder="请输入入库单据" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="ASNNo" name="ASNNo" placeholder="请输入入库单据" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> --> |
| | | <!-- 批次 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">批次号</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="请输入物料名称" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="请输入物料名称" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- 物料号 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">物料编码</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="请输入物料编码" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="请输入物料编码" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- 物料名称 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">物料名称</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="请输入物料名称" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="请输入物料名称" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="LAY-app-contlist-search"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit |
| | | 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 approvalBtn" lay-submit lay-filter="LAY-app-contlist-tianjia" id="add"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list approvalBtn" lay-submit |
| | | lay-filter="LAY-app-contlist-tianjia" id="add"> |
| | | <i class="layui-icon layui-icon-add layuiadmin-button-btn"></i>添加 |
| | | </button> |
| | | </div> |
| | |
| | | cols: colsJson |
| | | }); |
| | | }); |
| | | |
| | | |
| | | |
| | | // var url = "/BllQuality/GetBllQualityList"; |
| | | // sendData(IP + url, param, 'post', function(res) { |
| | | // if (res.code == 0) //成功 |
| | | // { |
| | | // var list = res.data; |
| | | // $.extend(infoOptions, { |
| | | // data: list |
| | | // }); |
| | | // infoOptions.page = { |
| | | // curr: 1 |
| | | // } |
| | | // console.log(res) |
| | | // tableIns = table.render(infoOptions); |
| | | // } |
| | | // else //不成功 |
| | | // { |
| | | // layer.msg('获取质检列表信息失败!', { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }, function() {}); |
| | | // } |
| | | // }); |
| | | } |
| | | |
| | | // function tableclass(LotNo,SkuNo,SkuName,IsQualified) |
| | | // { |
| | | // var param = { |
| | | // // ASNNo: ASNNo, |
| | | // LotNo: LotNo, |
| | | // SkuNo: SkuNo, |
| | | // SkuName: SkuName, |
| | | // IsQualified: IsQualified |
| | | // }; |
| | | // // console.log(param) |
| | | // var url = "/BllQuality/GetBllQualityList"; |
| | | // table.render({ |
| | | // elem: '#LAY-app-content-list', |
| | | // url: IP + url, |
| | | // method: 'post', |
| | | // height: 'full-136', |
| | | // id: 'LAY-app-content-list', |
| | | // where: param, |
| | | // // contentType: 'application/json', |
| | | // // toolbar: '#toolbarDemo', |
| | | // // defaultToolbar: [], //'filter','print', 'exports' |
| | | // // headers: { ToKen: $.cookie('token') }, |
| | | // page: true, |
| | | // even: true, |
| | | // limit: pageCnt, |
| | | // limits: pageLimits, |
| | | // cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | // done: function (res) { |
| | | // setRight(); |
| | | // }, |
| | | // cols: colsJson |
| | | // }); |
| | | // } |
| | | |
| | | // 权限设置 |
| | | function setRight() { |
| | |
| | | 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() { |
| | | $(".approvalBtn").show(); |
| | | }); |
| | |
| | | //提交 Ajax 成功后,静态更新表格中的数据 |
| | | var param = { |
| | | InspectNo: field.InspectNo, |
| | | //ASNNo: field.ASNNo, |
| | | ASNNo: field.ASNNo, |
| | | LotNo: field.LotNo, |
| | | SkuNo: field.SkuNo, |
| | | IsQualified: field.IsQualified, |
| | | }; |
| | | if(doing) |
| | | { |
| | | if (doing) { |
| | | doing = false; |
| | | sendData(IP + "/BllQuality/InsertQuality", param, 'post',function(res) { |
| | | console.log(res); |
| | |
| | | layer.close(index); //关闭弹层 |
| | | refreshTable |
| | | ( |
| | | // $("#ASNNo").val(), |
| | | $("#ASNNo").val(), |
| | | $("#LotNo").val(), |
| | | $("#SkuNo").val(), |
| | | $("#SkuName").val(), |
| | |
| | | } |
| | | var xml = ''; |
| | | function getchiled(data, mainId) { |
| | | if (data) |
| | | { |
| | | if (data) { |
| | | var list = data.filter(item => item.ParentId == mainId); |
| | | if (list) |
| | | { |
| | | for (var i = 0; i < list.length; i++) |
| | | { |
| | | if (list) { |
| | | for (var i = 0; i < list.length; i++) { |
| | | var id = list[i].Id; |
| | | //查询有无子菜单 |
| | | var count = data.filter(item => item.ParentId == id).length; |
| | | if (count > 0) |
| | | { |
| | | if (count > 0) { |
| | | xml = xml + '<dd>' + '<a href="javascript:;">' + list[i].Name + '</a>' + '<dl class="layui-nav-child">'; |
| | | getchiled(data, id); |
| | | xml = xml + '</dl></dd>'; |
| | | } |
| | | else |
| | | { |
| | | else { |
| | | xml = xml + '<dd>' + '<a lay-href="' + list[i].Url + '">' + list[i].Name + '</a>' + '</dd>'; |
| | | } |
| | | } |
| | |
| | | }); |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | <!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"> |
| | | <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"> |
| | | </head> |
| | | |
| | | <body> |
| | | <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="padding: 20px 0px 0 0;"> |
| | | <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" |
| | | style="padding: 20px 0px 0 0;"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">检验号</label> |
| | | <div class="layui-input-block" style="width: 70%;"> |
| | | <input type="text" name="InspectNo" placeholder="请输入检验号" lay-verify="required" autocomplete="off" class="layui-input"> |
| | | <input type="text" name="InspectNo" placeholder="请输入检验号" lay-verify="required" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-form-item"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">入库单号</label> |
| | | <div class="layui-input-block" style="width: 70%;"> |
| | | <input type="text" name="ASNNo" placeholder="请输入入库单号" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> --> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">批次号</label> |
| | | <div class="layui-input-block" style="width: 70%;"> |
| | | <input type="text" name="LotNo" placeholder="请输入批次号" lay-verify="required" autocomplete="off" class="layui-input"> |
| | | <input type="text" name="LotNo" placeholder="请输入批次号" lay-verify="required" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">物料号</label> |
| | | <div class="layui-input-block" style="width: 70%;"> |
| | | <input type="text" name="SkuNo" placeholder="请输入物料号" lay-verify="required" autocomplete="off" class="layui-input"> |
| | | <input type="text" name="SkuNo" placeholder="请输入物料号" lay-verify="required" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item layui-hide"> |
| | | <input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit" value="确认添加"> |
| | | <input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit" |
| | | value="确认添加"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | } |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | <!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"> |
| | | <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"> |
| | | <link rel="stylesheet" href="../../css/public.css" media="all"> |
| | |
| | | margin-bottom: 1px; |
| | | margin-right: 1px; |
| | | } |
| | | |
| | | </style> |
| | | <script> |
| | | // 这里是需要在页面渲染之前执行的代码 |
| | |
| | | </script> |
| | | |
| | | </head> |
| | | |
| | | <body id="body"> |
| | | <div class="layui-fluid" style="padding-bottom: 0;"> |
| | | <div class="layui-card"> |
| | |
| | | <div class="layui-inline zongdan" > |
| | | <label class="layui-form-label" style="width: 60px;">物料编码</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="物料编码" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuNo" name="SkuNo" placeholder="物料编码" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline zongdan" > |
| | | <label class="layui-form-label" style="width: 60px;">物料名称</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="物料名称" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="SkuName" name="SkuName" placeholder="物料名称" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline zongdan" > |
| | | <label class="layui-form-label" style="width: 60px;">托盘号</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" id="PalletNo" name="PalletNo" placeholder="托盘号" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="PalletNo" name="PalletNo" placeholder="托盘号" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline mingxi"> |
| | |
| | | <div class="layui-inline mingxi"> |
| | | <label class="layui-form-label" style="width: 60px;">批次号</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="批次号" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="LotNo" name="LotNo" placeholder="批次号" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | <div class="layui-inline zongdan" > |
| | | <label class="layui-form-label" style="width: 60px;">箱码</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" id="BoxNo" name="BoxNo" placeholder="箱码" autocomplete="off" class="layui-input"> |
| | | <input type="text" id="BoxNo" name="BoxNo" placeholder="箱码" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline zhijian"> |
| | |
| | | <div class="layui-inline zhijian"> |
| | | <label class="layui-form-label" style="width: 60px;">抽检标记</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <select name="InspectMark" id="InspectMark" lay-filter="InspectMark" |
| | | lay-search> |
| | | <select name="InspectMark" id="InspectMark" lay-filter="InspectMark" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">否</option> |
| | | <option value="1">是</option> |
| | |
| | | <div class="layui-inline zhijian"> |
| | | <label class="layui-form-label" style="width: 60px;">零托标记</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <select name="BitPalletMark" id="BitPalletMark" lay-filter="BitPalletMark" |
| | | lay-search> |
| | | <select name="BitPalletMark" id="BitPalletMark" lay-filter="BitPalletMark" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">否</option> |
| | | <option value="1">是</option> |
| | |
| | | <div class="layui-inline zhijian"> |
| | | <label class="layui-form-label" style="width: 60px;">零箱标记</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <select name="BitBoxMark" id="BitBoxMark" lay-filter="BitBoxMark" |
| | | lay-search> |
| | | <select name="BitBoxMark" id="BitBoxMark" lay-filter="BitBoxMark" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">否</option> |
| | | <option value="1">是</option> |
| | |
| | | <div class="layui-inline zhijian"> |
| | | <label class="layui-form-label" style="width: 60px;">质检状态</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <select name="InspectStatus" id="InspectStatus" lay-filter="InspectStatus" |
| | | lay-search> |
| | | <select name="InspectStatus" id="InspectStatus" lay-filter="InspectStatus" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">待质检</option><!-- 待检验 --> |
| | | <option value="1">检验合格</option><!-- 合格品 --> |
| | |
| | | <div class="layui-inline zhijian"> |
| | | <label class="layui-form-label" style="width: 60px;">开始时间</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" autocomplete="off" id="StartTime" class="layui-input" |
| | | placeholder="开始时间"> |
| | | <input type="text" autocomplete="off" id="StartTime" class="layui-input" placeholder="开始时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline zhijian"> |
| | | <label class="layui-form-label" style="width: 60px;">结束时间</label> |
| | | <div class="layui-input-inline" style="width: 170px; margin-right: 0px;"> |
| | | <input type="text" autocomplete="off" id="EndTime" class="layui-input" |
| | | placeholder="结束时间"> |
| | | <input type="text" autocomplete="off" id="EndTime" class="layui-input" placeholder="结束时间"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-inline sousuo"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="LAY-app-contlist-search"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit |
| | | 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" lay-submit |
| | | lay-filter="daochu"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list" lay-submit lay-filter="daochu"> |
| | | <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>导出 |
| | | </button> |
| | | </div> |
| | |
| | | <table id="LAY-app-content-list2" lay-filter="LAY-app-content-list2"></table> |
| | | <!-- #region 自定义表头 --> |
| | | <div class="headerSetIcon"> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols2"> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" |
| | | data-type="customCols2"> |
| | | <i class="layui-icon"></i> |
| | | </button> |
| | | </div> |
| | |
| | | |
| | | // 表单需要的变量 |
| | | var infoOptions; |
| | | //#region 原始非自定义列 |
| | | // infoOptions = { |
| | | // elem: '#LAY-app-content-list', |
| | | // height: 'full-206', |
| | | // id: 'LAY-app-content-list', |
| | | // page: true, |
| | | // limit: pageCnt, |
| | | // limits: pageLimits, |
| | | // even: true, |
| | | // cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | // cols: |
| | | // [[ |
| | | // { |
| | | // title: '序号', type: 'numbers', fixed: 'left' |
| | | // }, |
| | | // { |
| | | // field: 'AreaNo', title: '所属区域', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'LocatNo', title: '储位地址', align: 'center' |
| | | // }, |
| | | // { |
| | | // field: 'PalletNo', title: '托盘号', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'SkuNo', title: '物料编码', align: 'center' |
| | | // }, |
| | | // { |
| | | // field: 'SkuName', title: '物料名称', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'LotNo', title: '批次号', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'LotText', title: '批次描述', align: 'center' |
| | | // }, |
| | | // { |
| | | // field: 'SupplierLot', title: '供货批次', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'Qty', title: '数量', align: 'center' |
| | | // }, |
| | | // { |
| | | // field: 'LockQty', title: '锁定数量', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'FrozenQty', title: '冻结数量', align: 'center' |
| | | // }, |
| | | // { |
| | | // field: 'InspectMark', title: '抽检标记', align: 'center', templet: '#InspectMarkStatus' |
| | | // }, |
| | | // { |
| | | // field: 'BitPalletMark', title: '零托标记', align: 'center', templet: '#BitPalletMarkStatus' |
| | | // }, |
| | | // //{ |
| | | // // field: 'Status', title: '托盘状态', align: 'center', templet: '#PalletStatus', |
| | | // //}, |
| | | // ]] |
| | | // }; |
| | | //#endregion |
| | | |
| | | //#region 自定义表头 |
| | | var TotalColsArr = [[ |
| | | {field: '',title: '序号',type:'numbers',align: 'center',fixed: 'left', "disabled": true}, |
| | |
| | | {field: 'LockQty', title: '锁定数量', align: 'center',}, |
| | | {field: 'FrozenQty', title: '冻结数量', align: 'center'}, |
| | | {field: 'InspectMark', title: '抽检标记', align: 'center', templet: '#InspectMarkStatus'}, |
| | | { field: 'ProductionTime', title: '生产日期', align: 'center', templet: '#templetProductionTime' }, |
| | | { field: 'InspectStatus', templet: '#InspectStatus1', title: '质检状态', align: 'center' }, |
| | | {field: 'BitPalletMark', title: '零托标记', align: 'center', templet: '#BitPalletMarkStatus'}, |
| | | ]]; |
| | | var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码 |
| | | //#endregion |
| | | //获取托盘明细 |
| | | function refreshTable(SkuNo,SkuName,PalletNo,LotNo,BoxNo,Status,InspectMark,BitPalletMark,BitBoxMark,InspectStatus,OwnerNo,OwnerName,StartTime,EndTime) { |
| | | function refreshTable(SkuNo, SkuName, PalletNo, LotNo, BoxNo, Status, InspectMark, BitPalletMark, |
| | | BitBoxMark, InspectStatus, OwnerNo, OwnerName, StartTime, EndTime) { |
| | | //#region 自定义表头 |
| | | var colsJson |
| | | var param1={ |
| | |
| | | |
| | | // 表单需要的变量 |
| | | var infoOptions2; |
| | | //#region 原始非自定义列 |
| | | // infoOptions2 = { |
| | | // elem: '#LAY-app-content-list2', |
| | | // height: 'full-206', |
| | | // id: 'LAY-app-content-list2', |
| | | // page: true, |
| | | // limit: pageCnt, |
| | | // limits: pageLimits, |
| | | // even: true, |
| | | // cellMinWidth: 80, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | // cols: |
| | | // [[ |
| | | // { |
| | | // title: '序号', type: 'numbers', fixed: 'left' |
| | | // }, |
| | | // { |
| | | // field: 'SkuNo', title: '物料编码', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'SkuName', title: '物料名称', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'PalletNo', title: '托盘号', align: 'center', width: 110, |
| | | // }, |
| | | // { |
| | | // field: 'BoxNo', title: '箱码', align: 'center', width: 100, |
| | | // }, |
| | | // { |
| | | // field: 'Status', title: '箱支状态', align: 'center', templet: '#BoxStatus', |
| | | // }, |
| | | // { |
| | | // field: 'LotNo', title: '批次号', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'LotText', title: '批次描述', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'Qty', title: '数量', width: 90, align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'FullQty', title: '整箱数量', width: 100, align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'ProductionTime', title: '生产日期', align: 'center', |
| | | // templet: function(d) { |
| | | // return formatDate(d.ProductionTime); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // field: 'InspectMark', title: '抽检标记', align: 'center', templet: '#InspectMarkStatus', |
| | | // }, |
| | | // { |
| | | // field: 'BitBoxMark', templet: '#BitPalletMarkStatus1', title: '零箱标记', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'InspectStatus', templet: '#InspectStatus1', title: '质检状态', align: 'center', |
| | | // }, |
| | | // { |
| | | // field: 'InspectTime', title: '复检时间', align: 'center', |
| | | // templet: function(d) { |
| | | // return formatDate(d.InspectTime); |
| | | // }, |
| | | // }, |
| | | // { |
| | | // title: '操作', fixed: 'right', align: 'center', toolbar: '#table-content-list' |
| | | // } |
| | | // ]] |
| | | // }; |
| | | //#endregion |
| | | |
| | | //获取明细信息 |
| | | //#region 自定义表头 |
| | |
| | | var iframeWindow = window['layui-layer-iframe' + index], |
| | | submitID = 'layuiadmin-app-form-edit', |
| | | submit = layero.find('iframe').contents().find('#' + submitID); |
| | | if(doing) |
| | | { |
| | | if (doing) { |
| | | doing = false; |
| | | |
| | | layer.close(index); //关闭弹层 |
| | |
| | | }); |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | <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-text">取样拣货</td> |
| | | <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td> |
| | | </tr> |
| | | </table> |
| | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label" style="width: 20%;">物料:</label> |
| | | <div class="layui-input-block" style="width: 80%;margin-left:20%;"> |
| | | <input id="sku" type="text" lay-verify="" disabled |
| | | placeholder="" class="layui-input"> |
| | | <input id="sku" type="text" lay-verify="" disabled placeholder="" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label" style="width: 20%;">批次号</label> |
| | | <div class="layui-input-block" style="width: 80%;margin-left:20%;"> |
| | | <input id="lotNo" type="text" lay-verify="" disabled |
| | | placeholder="" class="layui-input"> |
| | | <input id="lotNo" type="text" lay-verify="" disabled placeholder="" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label" style="width: 20%;">物料:</label> |
| | | <div class="layui-input-block" style="width: 80%;margin-left:20%;"> |
| | | <input id="sku2" type="text" lay-verify="" disabled |
| | | placeholder="" class="layui-input"> |
| | | <input id="sku2" type="text" lay-verify="" disabled placeholder="" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label" style="width: 20%;">批次号</label> |
| | | <div class="layui-input-block" style="width: 80%;margin-left:20%;"> |
| | | <input id="lotNo2" type="text" lay-verify="" disabled |
| | | placeholder="" class="layui-input"> |
| | | <input id="lotNo2" type="text" lay-verify="" disabled placeholder="" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | #endregion |
| | | |
| | | #region 地码信息(储位信息) |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0" && w.WareHouseNo == "W02"); |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0"); |
| | | if (storageLocat == null) |
| | | { |
| | | strMsg = "-1:储位信息不存在或非空闲状态,请核查!"; |
| | |
| | | var bindId = 0; |
| | | if (bind == null) |
| | | { |
| | | DateTime? pTime = null; |
| | | DateTime? eTime = null; |
| | | if (!string.IsNullOrWhiteSpace(detail.Lot1)) |
| | | { |
| | | pTime = DateTime.Parse(detail.Lot1); |
| | | } |
| | | if (!string.IsNullOrWhiteSpace(detail.Lot2)) |
| | | { |
| | | eTime = DateTime.Parse(detail.Lot2); |
| | | } |
| | | |
| | | |
| | | bind = new BllPalletBind |
| | | { |
| | | ASNNo = model.AsnNo, |
| | |
| | | SupplierLot = detail.SupplierLot, |
| | | //InspectMark = model.IsSample, //是否取样托盘 后期业务开发时 接口传值需添加对应字段判断 |
| | | //SamplingQty = 0, //取样数量 后期业务开发时 接口传值需添加对应字段判断 |
| | | ProductionTime = pTime, |
| | | ExpirationTime = eTime, |
| | | BitPalletMark = "1", |
| | | IsBale = "0", |
| | | IsBelt = "0", |
| | |
| | | } |
| | | else |
| | | { |
| | | string inspectStatusStr = "0"; |
| | | if (sku.IsInspect == "1") |
| | | { |
| | | inspectStatusStr = "1"; |
| | | } |
| | | |
| | | // 库存不存在 插入数据 |
| | | sd1 = new DataStockDetail() |
| | | { |
| | |
| | | ExpirationTime = bind.ExpirationTime, |
| | | Status = "0", |
| | | InspectMark = bind.InspectMark, |
| | | InspectStatus = sku.IsInspect, |
| | | InspectStatus = inspectStatusStr, |
| | | BitPalletMark = bind.BitPalletMark, |
| | | PackagNo = detail.PackagNo, //liudl 由sku的包装编号变为入库单明细的包装编码 |
| | | IsBale = bind.IsBale, |
| | |
| | | sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{model.AsnNo}','组盘','0',getDate(),{userId},NULL,NULL);"; |
| | | Db.Ado.ExecuteCommand(sqlStr); |
| | | new OperationASNServer().AddLogOperationAsn("PDA模块", "托盘绑定", model.AsnNo, "添加", $"添加了托盘码为:{model.PalletNo}的组盘信息", userId); |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | #endregion |
| | |
| | | #endregion |
| | | |
| | | #region 地码信息(储位信息) |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0" && w.WareHouseNo == "W02"); |
| | | var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == model.LocatNo && w.Status == "0"); |
| | | if (storageLocat == null) |
| | | { |
| | | throw new Exception("储位信息不存在或非空闲状态,请核查!"); |
| | |
| | | foreach (var item in stockDetail) |
| | | { |
| | | item.Status = "0"; //状态更改为待分配 |
| | | item.WareHouseNo = "W02"; //所属仓库 |
| | | item.WareHouseNo = storageLocat.WareHouseNo; // 所属仓库 |
| | | item.RoadwayNo = storageLocat.RoadwayNo; // 所属巷道 |
| | | item.AreaNo = storageLocat.AreaNo; // 所属区域 |
| | | item.LocatNo = model.LocatNo;//储位地址 |
| | | item.UpdateTime = serverTime; //修改时间 |
| | | item.UpdateUser = model.CreateUser; //修改人 |
| | |
| | | }; |
| | | Db.Insertable(exTask).ExecuteCommand(); |
| | | //托盘绑定信息 |
| | | var bindInfo = Db.Queryable<BllPalletBind>().First(w => w.IsDel == "0" && w.PalletNo == model.PalletNo && w.Status == "2" && string.IsNullOrEmpty(w.LocatNo)); |
| | | var bindInfo = Db.Queryable<BllPalletBind>().First(w => w.IsDel == "0" && w.PalletNo == model.PalletNo |
| | | && w.Status == "2" && string.IsNullOrEmpty(w.LocatNo)); |
| | | if (bindInfo != null) |
| | | { |
| | | bindInfo.WareHouseNo = "W02";//所属仓库 |
| | | bindInfo.WareHouseNo = storageLocat.WareHouseNo; // 所属仓库 |
| | | bindInfo.RoadwayNo = storageLocat.RoadwayNo; // 所属巷道 |
| | | bindInfo.LocatNo = model.LocatNo;//储位地址 |
| | | bindInfo.UpdateTime = serverTime; |
| | | bindInfo.UpdateUser = model.CreateUser; |
| | |
| | | //修改储位信息 |
| | | Db.Updateable(storageLocat).ExecuteCommand(); |
| | | |
| | | new OperationASNServer().AddLogOperationAsn("PDA模块", "平库入库", model.PalletNo, "完成", $"在PDA上完成单据号为:{model.ASNNo}的托盘码为:{model.PalletNo}的平库入库操作", (int)model.CreateUser); |
| | | new OperationASNServer().AddLogOperationAsn("PDA模块", "平库入库", model.PalletNo, "完成", |
| | | $"在PDA上完成单据号为:{model.ASNNo}的托盘码为:{model.PalletNo}的平库入库操作", (int)model.CreateUser); |
| | | Db.CommitTran(); |
| | | } |
| | | catch (Exception ex) |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | //取样出库拣货(标签) |
| | | public async Task SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId) |
| | | public async Task SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, |
| | | string pickQty1, string asnNo, int userId) |
| | | { |
| | | Db.BeginTran(); |
| | | try |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | /// <summary> |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | #endregion |
| | |
| | | var samplingQty = await Db.Queryable<BllSamplingDetails>().Where(m => m.IsDel == "0" && m.QcNo == qcNo).SumAsync(m => m.CompleteQty); |
| | | |
| | | data.QcNo = qcNo; |
| | | data.Sku = inspectionRequest.SkuNo; |
| | | data.Sku = inspectionRequest.SkuNo + "-" + inspectionRequest.SkuName; |
| | | data.LotNo = inspectionRequest.LotNo; |
| | | data.Qty = inspectionRequest.SamplingQty.ToString(); |
| | | data.SamplingQty = samplingQty == null ? "0" : samplingQty.ToString(); |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | |
| | | throw Oops.Bah("请验单状态错误,请核实"); |
| | | } |
| | | //库存明细信息 |
| | | var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo); |
| | | var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo |
| | | && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo); |
| | | if (stockDetail == null) |
| | | { |
| | | throw Oops.Bah("未在库存中查询出当前托盘信息"); |
| | | } |
| | | // 判断托盘是否在库内 |
| | | if (!string.IsNullOrWhiteSpace(stockDetail.LocatNo)) |
| | | { |
| | | var wareHouseData = await Db.Queryable<SysWareHouse>().FirstAsync(m => m.IsDel == "0" && m.WareHouseNo == stockDetail.WareHouseNo); |
| | | if (wareHouseData.Type != "2") |
| | | { |
| | | throw Oops.Bah("当前托盘不是库外托盘,请核实"); |
| | | } |
| | | } |
| | | //库存总表 |
| | | var stock = await Db.Queryable<DataStock>().FirstAsync(m => m.IsDel == "0" && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo); |
| | |
| | | await Db.Updateable(inspecd).ExecuteCommandAsync(); |
| | | #endregion |
| | | |
| | | |
| | | |
| | | //添加操作日志记录 |
| | | var k = new OperationSOServer().AddLogOperationSo("PDA模块", "取样拣货", qcNo, "拣货", $"在PDA上对请验单号为:{qcNo}的托盘码为:{palletNo}的拣货操作", userId); |
| | | Db.CommitTran(); |
| | |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw e; |
| | | } |
| | | } |
| | | |
| | |
| | | /// <returns></returns> |
| | | public List<BllQualityInspectDto> GetBllQualityList(BllQualityInspect model) |
| | | { |
| | | string str = "select q.Id Id,q.InspectNo InspectNo,q.ASNNo ASNNo,q.LotNo LotNo,q.SupplierLot SupplierLot,q.SkuNo SkuNo,q.SkuName SkuName,q.Standard Standard,q.PassQty PassQty,q.FailQty FailQty,q.Origin Origin,q.InspectTime InspectTime,q.IsOut IsOut,q.Demo Demo,q.IsQualified IsQualified,q.IsDel IsDel,q.CreateTime CreateTime,u.RealName CreateUserName,q.UpdateTime UpdateTime,q.UpdateUser UpdateUserName from BllQualityInspect q left join SysUserInfor u on q.CreateUser = u.id where q.IsDel = @isdel"; |
| | | string str = "select q.Id Id,q.InspectNo InspectNo,q.ASNNo ASNNo,q.LotNo LotNo,q.SupplierLot SupplierLot," + |
| | | "q.SkuNo SkuNo,q.SkuName SkuName,q.Standard Standard,q.PassQty PassQty,q.FailQty FailQty,q.Origin Origin," + |
| | | "q.InspectTime InspectTime,q.IsOut IsOut,q.Demo Demo,q.IsQualified IsQualified,q.IsDel IsDel,q.CreateTime " + |
| | | "CreateTime,u.RealName CreateUserName,q.UpdateTime UpdateTime,q.UpdateUser UpdateUserName " + |
| | | "from BllQualityInspect q " + |
| | | "left join SysUserInfor u on q.CreateUser = u.id where q.IsDel = @isdel"; |
| | | |
| | | ////判断入库单号是否为空 |
| | | //if (!string.IsNullOrEmpty(model.ASNNo)) |
| | |
| | | { |
| | | throw new Exception("批次号不可为空,请核查!"); |
| | | } |
| | | //int isTui = 0; |
| | | //验证入库单号是否为空 |
| | | if (!string.IsNullOrEmpty(model.ASNNo)) |
| | | if (string.IsNullOrEmpty(model.ASNNo)) |
| | | { |
| | | //查询是否为退货入库单据 |
| | | var Arrival = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && a.Type == "3"); |
| | | if (Arrival == null) |
| | | { |
| | | throw new Exception("只有入库单据为退货入库单可输入 入库单号,请核查!"); |
| | | } |
| | | throw new Exception("入库单号不可为空!"); |
| | | |
| | | //获取入库单明细 |
| | | var ArrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && a.LotNo.Contains(model.LotNo) && a.SkuNo == model.SkuNo); |
| | | if (ArrivalDetail == null) |
| | | { |
| | | throw new Exception("输入的批次或物料信息与入库单据不符,请核查!"); |
| | | } |
| | | |
| | | //查询是否为退货入库单据 |
| | | //var Arrival = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && a.Type == "3"); |
| | | //if (Arrival == null) |
| | | //{ |
| | | // throw new Exception("只有入库单据为退货入库单可输入 入库单号,请核查!"); |
| | | //} |
| | | |
| | | ////获取入库单明细 |
| | | //var ArrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && a.LotNo.Contains(model.LotNo) && a.SkuNo == model.SkuNo); |
| | | //if (ArrivalDetail == null) |
| | | //{ |
| | | // throw new Exception("输入的批次或物料信息与入库单据不符,请核查!"); |
| | | //} |
| | | //isTui = 1; |
| | | } |
| | | |
| | |
| | | //} |
| | | |
| | | ////查找同批次 同单据 入库单信息、 |
| | | //BllArrivalNoticeDetail arrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.ASNNo == model.ASNNo && m.LotNo == model.LotNo); |
| | | BllArrivalNoticeDetail arrivalDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" |
| | | && m.ASNNo == model.ASNNo && m.LotNo == model.LotNo && m.SkuNo == model.SkuNo); |
| | | if (arrivalDetail == null) |
| | | { |
| | | throw new Exception("未找到入库单信息!"); |
| | | } |
| | | arrivalDetail.InspectStatus = model.IsQualified; |
| | | |
| | | model.Origin = "WMS"; //来源 |
| | | model.CreateTime = Db.GetDate(); //创建日期 |
| | |
| | | model.PassQty += item.Qty; |
| | | //修改库存明细合格状态 |
| | | item.InspectStatus = "1"; //1合格 |
| | | //foreach (var b1 in box) |
| | | //{ |
| | | // b1.InspectMark = "1"; //1合格 |
| | | //} |
| | | } |
| | | else //不合格 |
| | | { |
| | | //不合格 相同批次、入库单库存信息全部改为不合格物料 且不合格数量增加为同批次同单号该物料全部数量之和 |
| | | model.FailQty += item.Qty; |
| | | item.InspectStatus = "2"; //2不合格 |
| | | //foreach (var b1 in box) |
| | | //{ |
| | | // b1.InspectMark = "2"; //2不合格 |
| | | //} |
| | | } |
| | | |
| | | Db.Updateable(box).ExecuteCommand(); |
| | | Db.Updateable(item).ExecuteCommand(); |
| | | } |
| | | |
| | | Db.Updateable(arrivalDetail).ExecuteCommand(); |
| | | var isquality = Db.Insertable(model).ExecuteCommand(); |
| | | |
| | | return isquality; |
| | |
| | | /// <param name="bitBoxMark">零箱标记</param> |
| | | /// <param name="inspectStatus">质量状态</param> |
| | | /// <returns></returns> |
| | | public List<DataBoxInfo> GetDataBoxInfo(string id, string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus) |
| | | public List<DataBoxInfo> GetDataBoxInfo(string id, string skuNo, string skuName, string palletNo, string lotNo, |
| | | string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus) |
| | | { |
| | | string str = "select PalletNo,PalletNo2,PalletNo3,BoxNo,BoxNo2,BoxNo3,Status,LotNo,Qty,FullQty,SkuNo,SkuName,LotText,ProductionTime,InspectMark,BitBoxMark,InspectStatus,InspectTime from DataBoxInfo Where IsDel = @isdel"; |
| | | string str = "select PalletNo,PalletNo2,PalletNo3,BoxNo,BoxNo2,BoxNo3,Status,LotNo,Qty,FullQty,SkuNo,SkuName," + |
| | | "LotText,ProductionTime,InspectMark,BitBoxMark,InspectStatus,InspectTime from DataBoxInfo Where IsDel = @isdel"; |
| | | //判断id是否为空 |
| | | if (!string.IsNullOrEmpty(id)) |
| | | { |
| | |
| | | /// <param name="bitBoxMark">零箱标记</param> |
| | | /// <param name="inspectStatus">质量状态</param> |
| | | /// <returns></returns> |
| | | public List<StockDetailDto> GetBindList(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTime) |
| | | public List<StockDetailDto> GetBindList(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, |
| | | string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTime) |
| | | { |
| | | string str = "select detail.*,house.WareHouseNo + '-' + house.WareHouseName as WareHouseName,roadway.RoadwayNo + '-' + roadway.RoadwayName as RoadwayName,area.AreaNo + '-' + area.AreaName as AreaName from DataStockDetail detail left join SysStorageRoadway roadway on detail.RoadwayNo = roadway.RoadwayNo left join SysWareHouse house on detail.WareHouseNo = house.WareHouseNo left join SysStorageArea area on detail.AreaNo = area.AreaNo where detail.IsDel = @isdel"; |
| | | string str = "select detail.*,house.WareHouseNo + '-' + house.WareHouseName as WareHouseName,roadway.RoadwayNo + '-' + roadway.RoadwayName as RoadwayName," + |
| | | "area.AreaNo + '-' + area.AreaName as AreaName " + |
| | | "from DataStockDetail detail " + |
| | | "left join SysStorageRoadway roadway on detail.RoadwayNo = roadway.RoadwayNo " + |
| | | "left join SysWareHouse house on detail.WareHouseNo = house.WareHouseNo " + |
| | | "left join SysStorageArea area on detail.AreaNo = area.AreaNo " + |
| | | "where detail.IsDel = @isdel"; |
| | | //判断物料号是否为空 |
| | | if (!string.IsNullOrEmpty(skuNo)) |
| | | { |
| | |
| | | /// <param name="bitBoxMark">零箱标记</param> |
| | | /// <param name="inspectStatus">质量状态</param> |
| | | /// <returns></returns> |
| | | public List<DataStockDetail> GetBindListDaoChu(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus) |
| | | public List<DataStockDetail> GetBindListDaoChu(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, |
| | | string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus) |
| | | { |
| | | string str = "select Id,LotNo,LotText,SupplierLot,SkuNo,SkuName,Qty,LockQty,FrozenQty,AreaNo,LocatNo,PalletNo,PalletNo2,PalletNo3,InspectMark,BitPalletMark from DataStockDetail where IsDel = @isdel"; |
| | | string str = "select Id,LotNo,LotText,SupplierLot,SkuNo,SkuName,Qty,LockQty,FrozenQty,AreaNo,LocatNo,PalletNo,PalletNo2," + |
| | | "PalletNo3,InspectMark,BitPalletMark from DataStockDetail where IsDel = @isdel"; |
| | | //判断物料号是否为空 |
| | | if (!string.IsNullOrEmpty(skuNo)) |
| | | { |
| | |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region 导出库存 |
| | |
| | | /// <param name="startTime">开始时间</param> |
| | | /// <param name="endTime">结束时间</param> |
| | | /// <returns></returns> |
| | | public List<StockDetailDto> GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, string palletNo, string status, string inspectStatus, string startTime, string endTime) |
| | | public List<StockDetailDto> GetInventoryList1DaoChu(string skuNo, string skuName, string lotNo, string locatNo, |
| | | string palletNo, string status, string inspectStatus, string startTime, string endTime) |
| | | { |
| | | string str = "select detail.*,house.WareHouseName as WareHouseName,roadway.RoadwayName as RoadwayName from DataStockDetail detail left join SysStorageRoadway roadway on detail.RoadwayNo = roadway.RoadwayNo left join SysWareHouse house on detail.WareHouseNo = house.WareHouseNo Where detail.IsDel = @isdel"; |
| | | //判断物料编码是否为空 |
| | |
| | | /// <param name="inspectStatus">质量状态</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetBindList(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTIme) |
| | | public IActionResult GetBindList(string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, |
| | | string inspectMark, string bitPalletMark, string bitBoxMark, string inspectStatus, string ownerNo, string ownerName, string startTime, string endTIme) |
| | | { |
| | | try |
| | | { |
| | | List<StockDetailDto> boxInfoList = _stockDetail.GetBindList(skuNo, skuName, palletNo, lotNo, boxNo, status, inspectMark, bitPalletMark, bitBoxMark, inspectStatus, ownerNo, ownerName, startTime, endTIme); |
| | | List<StockDetailDto> boxInfoList = _stockDetail.GetBindList(skuNo, skuName, palletNo, lotNo, boxNo, status, inspectMark, |
| | | bitPalletMark, bitBoxMark, inspectStatus, ownerNo, ownerName, startTime, endTIme); |
| | | return Ok(new { data = boxInfoList, code = 0, msg = "获取托盘明细成功" }); |
| | | } |
| | | catch (Exception e) |
| | |
| | | /// <param name="inspectStatus">质量状态</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetBoxInfo(string id, string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus) |
| | | public IActionResult GetBoxInfo(string id, string skuNo, string skuName, string palletNo, string lotNo, |
| | | string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus) |
| | | { |
| | | try |
| | | { |