| | |
| | | <!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"> |
| | | <link rel="stylesheet" href="../../css/public.css" media="all"> |
| | | |
| | | <script> |
| | | // 这里是需要在页面渲染之前执行的代码 |
| | | document.addEventListener("DOMContentLoaded", function () { |
| | | //获取table默认显示数 |
| | | pageCntFirst(); |
| | | //判断是否开启table列表列宽调整功能。 |
| | | GetIsSetColW(); |
| | | }); |
| | | </script> |
| | | |
| | | </head> |
| | | |
| | | <body id="body"> |
| | | <div class="layui-card" style="padding-bottom: 0"> |
| | | <div class="layui-form layui-card-header layuiadmin-card-header-auto" id="top"> |
| | | <div class="layui-form-item"> |
| | | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">菜单名称</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="MenuName" name="MenuName" placeholder="请输入菜单名称" autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 45px;">类型</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="Type" id="Type" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">操作内容</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="Msg" name="Msg" 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" autocomplete="off" name="StartTime" id="StartTime" class="layui-input" |
| | | placeholder="开始时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">结束时间</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" autocomplete="off" name="EndTime" id="EndTime" class="layui-input" |
| | | placeholder="结束时间"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <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> |
| | | </div> |
| | | </div> |
| | | <div id="center"></div> |
| | | <div class="layui-card-body"> |
| | | <div class="position-relative"><!-- class="position-relative" --><!-- 自定义表头加上 --> |
| | | <table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table> |
| | | <!-- #region 自定义表头 --> |
| | | <div class="headerSetIcon"> |
| | | <button class="layui-btn layui-btn-primary layui-btn-sm" data-type="customCols"> |
| | | <i class="layui-icon"></i> |
| | | </button> |
| | | </div> |
| | | <!-- #endregion --> |
| | | |
| | | <!-- #region 自定义表头 --> |
| | | <script type="text/html" id="templetCreateTime"> |
| | | {{# function GetBtn(d){ |
| | | return formatDate(d.CreateTime); |
| | | } |
| | | }} |
| | | {{ GetBtn(d) }} |
| | | </script> |
| | | <!-- #endregion --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="../../layuiadmin/layui/layui.js"></script> |
| | | <script src="../../js/jquery-3.5.1.min.js"></script> |
| | | <script src="../../js/jquery.cookie.js"></script> |
| | | <script src="../../js/public.js"></script> |
| | | |
| | | <script> |
| | | layui.config({ |
| | | base: '../../layuiadmin/' //静态资源所在路径 |
| | | }).extend({ |
| | | index: 'lib/index' //主入口模块 |
| | | }).use(['index', 'table', 'laypage', 'layer', 'laydate'], function () { |
| | | var table = layui.table, |
| | | form = layui.form, |
| | | laypage = layui.laypage, |
| | | layer = layui.layer; |
| | | laydate = layui.laydate; |
| | | laydate.render({ |
| | | elem: '#StartTime' |
| | | , format: 'yyyy-MM-dd' //可任意组合 |
| | | }); |
| | | laydate.render({ |
| | | elem: '#EndTime' |
| | | , format: 'yyyy-MM-dd' //可任意组合 |
| | | }); |
| | | |
| | | var h1 = GetTableHeight(); |
| | | |
| | | refreshTable(); |
| | | //获取类型菜单下拉 |
| | | |
| | | sendData(IP + "/Sys/GetDictionaryByParentNo", { parentNo: "LogType" }, 'get', function (res) { |
| | | var html = ''; |
| | | console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | var list = res.data; |
| | | for (var i = 0; i < list.length; i++) { |
| | | html += '<option value = "' + list[i].Id + '">' + list[i].DictName + '</option>'; |
| | | } |
| | | $("#Type").append(html); |
| | | form.render('select'); |
| | | } else { //不成功 |
| | | layer.msg('获取操作类型信息失败!', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | //渲染表格 |
| | | //#region 自定义表头 |
| | | var TotalColsArr = [[ |
| | | { field: '', title: '序号', type: 'numbers', width: 65, align: 'center', fixed: 'left', "disabled": true }, |
| | | { field: 'ParentNo', title: '模块号', align: 'center', fixed: 'left', width: 80, "disabled": true }, |
| | | { field: 'MenuNo', title: '菜单号', align: 'center', fixed: 'left', width: 80, "disabled": true }, |
| | | { field: 'MenuName', title: '菜单名称', align: 'center', width: 190 }, |
| | | { field: 'FkNo', title: '数据编号', align: 'center', width: 180 }, |
| | | { field: 'Type', title: '类型', align: 'center', width: 100 }, |
| | | { field: 'Msg', title: '操作内容', align: 'center' }, |
| | | { field: 'CreateUserName', title: '创建人', align: 'center', width: 120 }, |
| | | { field: 'CreateTime', title: '创建时间', align: 'center', width: 160, templet: '#templetCreateTime' } |
| | | ]]; |
| | | var TotalColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//将表头数据进行url编码 |
| | | |
| | | function refreshTable() { |
| | | |
| | | //#region 自定义表头 |
| | | var colsJson |
| | | var param1 = { |
| | | Href: 'Sys/GetLogOperationList' |
| | | }; |
| | | sendData(IP + "/Sys/GetTableColsByUserId", param1, 'post', function (res) { |
| | | if (res.code == 0) { |
| | | if (res.data == '' || res.data == undefined || res.data == null) { |
| | | colsJson = TotalColsArr |
| | | } else { |
| | | colsJson = eval(res.data); |
| | | } |
| | | } else { |
| | | colsJson = TotalColsArr |
| | | } |
| | | var param = { |
| | | MenuName: $("#MenuName").val(), |
| | | Type: $("#Type").val(), |
| | | Msg: $("#Msg").val(), |
| | | StartTime: $("#StartTime").val(), |
| | | EndTime: $("#EndTime").val(), |
| | | }; |
| | | table.render({ |
| | | elem: '#LAY-app-content-list', |
| | | url: IP + "/Sys/GetLogOperationList", |
| | | method: 'POST', |
| | | height: h1, |
| | | id: 'LAY-app-content-list', |
| | | where: param, |
| | | contentType: 'application/json', |
| | | headers: { ToKen: $.cookie('token') }, |
| | | page: true, |
| | | limit: pageCnt, |
| | | limits: pageLimits, |
| | | cellMinWidth: 60, //全局定义常规单元格的最小宽度,layui 2.2.1 新增 |
| | | cols: colsJson, |
| | | done: function (res) { |
| | | //自定义列宽 |
| | | SetTableColW('LAY-app-content-list', 'Sys/GetLogOperationList', TotalColsSysArr); |
| | | }, |
| | | }); |
| | | }); |
| | | //#endregion |
| | | |
| | | } |
| | | //监听搜索 |
| | | form.on('submit(LAY-app-contlist-search)', function (data) { |
| | | |
| | | refreshTable(); |
| | | }); |
| | | |
| | | //#region 自定义表头 |
| | | //自定义表头 |
| | | active = { |
| | | customCols: function () { |
| | | layer.open({ |
| | | type: 2, |
| | | title: '自定义列', |
| | | content: '../SystemSettings/HeaderSetting.html?Href=Sys/GetLogOperationList&ColsSysArr=' + TotalColsSysArr, |
| | | maxmin: false, |
| | | resize: false, |
| | | area: ['970px', '650px'] |
| | | }); |
| | | } |
| | | }; |
| | | $('.layui-btn').on('click', function () { |
| | | var type = $(this).data('type'); |
| | | active[type] ? active[type].call(this) : ''; |
| | | }); |
| | | //#endregion |
| | | }); |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <!-- <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>用户信息列表</title> |
| | |
| | | }); |
| | | </script> |
| | | </body> |
| | | </html> |
| | | </html> --> |
| | |
| | | // 表单需要的变量 |
| | | var doing = true; |
| | | active = { |
| | | |
| | | |
| | | editList: function () { |
| | | var checkStatus = table.checkStatus('LAY-app-content-list'), |
| | | checkData = checkStatus.data; //得到选中的数据 |
| | | if (checkData.length === 0) { |
| | | return layer.msg('请选择数据'); |
| | | } |
| | | else if(checkData.length > 1) |
| | | { |
| | | var li = 0; |
| | | var ping = 0; |
| | | var WareNo = "W01"; |
| | | checkData.forEach(item => { |
| | | if (item.WareHouseName == "力诺立体库") |
| | | { |
| | | li += 1; |
| | | WareNo = "W01"; |
| | | if (ping > 0) |
| | | { |
| | | return; |
| | | } |
| | | } |
| | | if (item.WareHouseName == "力诺平库") |
| | | { |
| | | ping += 1; |
| | | WareNo = "W02"; |
| | | if (li > 0) |
| | | { |
| | | return; |
| | | } |
| | | } |
| | | }); |
| | | if (li != 0 && ping != 0) |
| | | { |
| | | return layer.msg('请勿选择多种仓库!'); |
| | | } |
| | | } |
| | | |
| | | layer.open({ |
| | | type: 2, |
| | | title: '编辑储位状态集合', |
| | | content: 'LocateFrom.html?WareHouseNo='+WareNo, |
| | | content: 'LocateEditArea.html', |
| | | maxmin: true, |
| | | area: ['560px', '510px'], |
| | | btn: ['确定', '取消'], |
| | |
| | | iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { |
| | | var field = data.field; //获取提交的字段 |
| | | console.log(field); |
| | | var msg = []; |
| | | for (var i = 0; i < checkData.length; i++) { |
| | | // msg.push(checkData[i].Id); |
| | | msg.push(checkData[i].Id) |
| | | } |
| | | console.log(msg); |
| | | |
| | | |
| | | //提交 Ajax 成功后,静态更新表格中的数据 |
| | | var param = { |
| | | Id: msg, |
| | | RoadWayNo: field.RoadwayNo, |
| | | AreaNo:field.AreaNo, |
| | | Row:parseInt(field.Row), |
| | | Column:parseInt(field.Column), |
| | | Layer: parseInt(field.Layer), |
| | | Dept:parseInt(field.Depth), |
| | | Status:field.Status, |
| | | Flag:field.Flag, |
| | | Temperature:field.Temp |
| | | |
| | | }; |
| | | console.log(param); |
| | | if (doing) { |
| | | doing = false; |
| | | sendData(IP + "/Sys/EditStorageLocatList", param, 'post', function (res) { |
| | | sendData(IP + "/Sys/EditStorageLocatListNew", param, 'post', function (res) { |
| | | console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //$.ajax({}); |
| | | }); |
| | | submit.trigger('click'); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | // editList: function () { |
| | | // var checkStatus = table.checkStatus('LAY-app-content-list'), |
| | | // checkData = checkStatus.data; //得到选中的数据 |
| | | // if (checkData.length === 0) { |
| | | // return layer.msg('请选择数据'); |
| | | // } |
| | | // else if(checkData.length > 1) |
| | | // { |
| | | // var li = 0; |
| | | // var ping = 0; |
| | | // var WareNo = "W01"; |
| | | // checkData.forEach(item => { |
| | | // if (item.WareHouseName == "力诺立体库") |
| | | // { |
| | | // li += 1; |
| | | // WareNo = "W01"; |
| | | // if (ping > 0) |
| | | // { |
| | | // return; |
| | | // } |
| | | // } |
| | | // if (item.WareHouseName == "力诺平库") |
| | | // { |
| | | // ping += 1; |
| | | // WareNo = "W02"; |
| | | // if (li > 0) |
| | | // { |
| | | // return; |
| | | // } |
| | | // } |
| | | // }); |
| | | // if (li != 0 && ping != 0) |
| | | // { |
| | | // return layer.msg('请勿选择多种仓库!'); |
| | | // } |
| | | // } |
| | | |
| | | // layer.open({ |
| | | // type: 2, |
| | | // title: '编辑储位状态集合', |
| | | // content: 'LocateFrom.html?WareHouseNo='+WareNo, |
| | | // maxmin: true, |
| | | // area: ['560px', '510px'], |
| | | // btn: ['确定', '取消'], |
| | | // yes: function (index, layero) { |
| | | // var iframeWindow = window['layui-layer-iframe' + index], |
| | | // submitID = 'layuiadmin-app-form-submit', |
| | | // submit = layero.find('iframe').contents().find('#' + submitID); |
| | | // //监听提交 |
| | | // iframeWindow.layui.form.on('submit(' + submitID + ')', function (data) { |
| | | // var field = data.field; //获取提交的字段 |
| | | // console.log(field); |
| | | // var msg = []; |
| | | // for (var i = 0; i < checkData.length; i++) { |
| | | // // msg.push(checkData[i].Id); |
| | | // msg.push(checkData[i].Id) |
| | | // } |
| | | // console.log(msg); |
| | | |
| | | // //提交 Ajax 成功后,静态更新表格中的数据 |
| | | // var param = { |
| | | // Id: msg, |
| | | // Status:field.Status, |
| | | // Flag:field.Flag, |
| | | // Temperature:field.Temp |
| | | // }; |
| | | // if (doing) { |
| | | // doing = false; |
| | | // sendData(IP + "/Sys/EditStorageLocatList", param, 'post', function (res) { |
| | | // console.log(res); |
| | | // if (res.code == 0) { //成功 |
| | | // layer.msg(res.msg, { |
| | | // icon: 1, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }, function () { |
| | | // tableIns.reload({ |
| | | // page: { |
| | | // curr: 1 |
| | | // } |
| | | // }); |
| | | // layer.close(index); //关闭弹层 |
| | | // doing = true; |
| | | // }); |
| | | // } else if(res.code == 1){ |
| | | // layer.msg(res.msg, { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }, function() {doing = true;}); |
| | | // } else { //不成功 |
| | | // layer.msg(res.statusText, { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }, function() {doing = true;}); |
| | | // } |
| | | // }); |
| | | // } |
| | | |
| | | // //$.ajax({}); |
| | | // }); |
| | | // submit.trigger('click'); |
| | | // } |
| | | // }); |
| | | // } |
| | | }; |
| | | $('.layui-btn.layuiadmin-btn-list').on('click', function () { |
| | | var type = $(this).data('type'); |
New file |
| | |
| | | <!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"> |
| | | </head> |
| | | <body> |
| | | <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" |
| | | style="padding: 20px 30px 0 0;"> |
| | | |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">所属巷道</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="RoadwayNo" id="RoadwayNo" lay-filter="getRoadwayNo" lay-search > |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | <label class="layui-form-label">所属区域</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="AreaNo" id="AreaNo" lay-filter="getAreaNo" lay-search> |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">  储排</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="number" id="Row" name="Row" placeholder="排···" autocomplete="off" |
| | | class="layui-input" > |
| | | </div> |
| | | <label class="layui-form-label">  储列</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="number" id="Column" name="Column" placeholder="列···" autocomplete="off" |
| | | class="layui-input" > |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">  储层</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="number" id="Layer" name="Layer" placeholder="层···" autocomplete="off" |
| | | class="layui-input" > |
| | | </div> |
| | | <label class="layui-form-label">储位深度</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="number" id="Depth" name="Depth" placeholder="储位深度···" autocomplete="off" |
| | | class="layui-input" oninput="value=value.replace(/^[0-9]+$/,'')" |
| | | onafterpaste="this.value=this.value.replace(/^[0-9]+$/,'')"> |
| | | </div> |
| | | |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">储位状态</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="Status" id="Status" lay-filter="getStatus" lay-search > |
| | | <option value=""></option> |
| | | <option value="0">空储位</option> |
| | | <option value="1">有物品</option> |
| | | <option value="2">正在入库</option> |
| | | <option value="3">正在出库</option> |
| | | <option value="4">正在移入</option> |
| | | <option value="5">正在移出</option> |
| | | </select> |
| | | </div> |
| | | <label class="layui-form-label">储位标志</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="Flag" id="Flag" lay-filter="getFlag" lay-search > |
| | | <option value=""></option> |
| | | <option value="0">正常</option> |
| | | <option value="1">屏蔽</option> |
| | | <option value="2">损坏</option> |
| | | </select> |
| | | </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-edit" id="layuiadmin-app-form-edit" |
| | | value="确认编辑"> |
| | | </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> |
| | | var uid = $.cookie('userId'); |
| | | if(uid==null){ |
| | | alert('请登录后操作'); |
| | | window.parent.location.href='../Login.html' |
| | | } |
| | | layui.config({ |
| | | base: '../../layuiadmin/' //静态资源所在路径 |
| | | }).extend({ |
| | | index: 'lib/index' //主入口模块 |
| | | }).use(['index', 'form', 'layer'], function() { |
| | | var $ = layui.$, |
| | | form = layui.form, |
| | | layer = layui.layer; |
| | | |
| | | //var no = getQueryString('WareHouseNo'); |
| | | GetRoadway(""); |
| | | |
| | | GetArea(''); |
| | | |
| | | //获取区域 |
| | | function GetArea(val){ |
| | | |
| | | var param = { |
| | | wareHouseNo: "W01" //立库W01 |
| | | } |
| | | sendData(IP + "/Sys/GetStorageAreaByHouseNo", param, 'get', function(res) { |
| | | console.log(res) |
| | | if (res.code == 0) { //成功 |
| | | $("#AreaNo").empty(); |
| | | $("#AreaNo").append('<option value =""></option>'); |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#AreaNo").append('<option value =' + res.data[i].AreaNo + '>' + res.data[i].AreaNo + '-' + |
| | | res.data[i].AreaName + '</option>'); |
| | | } |
| | | $("select[name='AreaNo']").val(val); |
| | | form.render('select'); |
| | | } else { //不成功 |
| | | layer.msg('获取区域信息失败', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | //回调 |
| | | form.render('select'); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | //获取巷道 |
| | | function GetRoadway(val){ |
| | | sendData(IP + "/Sys/GetStorageRoadwayByHouseNo", {}, 'get', function(res) { |
| | | |
| | | if (res.code == 0) { //成功 |
| | | $("#RoadwayNo").empty(); |
| | | $("#RoadwayNo").append('<option value =""></option>'); |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#RoadwayNo").append('<option value =' + res.data[i].RoadwayNo + '>' + res.data[i].RoadwayNo + '-' + |
| | | res.data[i].RoadwayName + '</option>'); |
| | | } |
| | | $("select[name='RoadwayNo']").val(val); |
| | | form.render('select'); |
| | | } else { //不成功 |
| | | layer.msg('获取巷道信息失败', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | //回调 |
| | | form.render('select'); |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //获取浏览器参数 |
| | | 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> |
| | |
| | | [MaxLength(3)] |
| | | [Required] |
| | | public string Flag { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 存储环境 |
| | | /// </summary> |
| | | [MaxLength(3)] |
| | | public string Temperature { get; set; } |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 修改储位集合model |
| | | /// </summary> |
| | | public class EditLocateListNewVm |
| | | { |
| | | /// <summary> |
| | | /// 状态 |
| | | /// </summary> |
| | | public string Status { get; set; } |
| | | /// <summary> |
| | | /// 储位标志 |
| | | /// </summary> |
| | | public string Flag { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 巷道 |
| | | /// </summary> |
| | | public string RoadWayNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 区域 |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | /// <summary> |
| | | /// 排 |
| | | /// </summary> |
| | | public int? Row { get; set; } |
| | | /// <summary> |
| | | /// 列 |
| | | /// </summary> |
| | | public int? Column { get; set; } |
| | | /// <summary> |
| | | /// 层 |
| | | /// </summary> |
| | | public int? Layer { get; set; } |
| | | /// <summary> |
| | | /// 深度 |
| | | /// </summary> |
| | | public int? Dept { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 修改储位model |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | |
| | | ///// <summary> |
| | | ///// 查询操作日志 |
| | | ///// </summary> |
| | | ///// <param name="menuName">菜单名称</param> |
| | | ///// <param name="type">类型</param> |
| | | ///// <param name="msg">内容</param> |
| | | ///// <param name="startTime">开始日期</param> |
| | | ///// <param name="endTime">结束日期</param> |
| | | ///// <param name="page"></param> |
| | | ///// <param name="limit"></param> |
| | | ///// <param name="count"></param> |
| | | ///// <returns></returns> |
| | | //public List<OperationDto> GetOperationSysList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, out int count) |
| | | //{ |
| | | // try |
| | | // { |
| | | // Expression<Func<LogOperationSys, bool>> item = Expressionable.Create<LogOperationSys>() |
| | | // .AndIF(!string.IsNullOrWhiteSpace(menuName), it => it.MenuName.Contains(menuName.Trim())) |
| | | // .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type) |
| | | // .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim())) |
| | | // .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime)) |
| | | // .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(startTime).AddDays(1)) |
| | | // .ToExpression();//注意 这一句 不能少 |
| | | /// <summary> |
| | | /// 查询操作日志 |
| | | /// </summary> |
| | | /// <param name="menuName">菜单名称</param> |
| | | /// <param name="type">类型</param> |
| | | /// <param name="msg">内容</param> |
| | | /// <param name="startTime">开始日期</param> |
| | | /// <param name="endTime">结束日期</param> |
| | | /// <param name="page"></param> |
| | | /// <param name="limit"></param> |
| | | /// <param name="count"></param> |
| | | /// <returns></returns> |
| | | public List<OperationDto> GetOperationList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, out int count) |
| | | { |
| | | try |
| | | { |
| | | var total = 0; |
| | | #region asn |
| | | |
| | | // var data = GetAllWhereAsync(item) |
| | | // .Includes(x => x.TypeInfo) |
| | | // .Includes(x => x.CreateUserInfo) |
| | | // .Includes(x => x.UpdateUserInfo).ToList(); |
| | | // count = data.Count; |
| | | // return data.Select(m => new OperationDto() |
| | | // { |
| | | // Id = m.Id, |
| | | // ParentNo = m.ParentNo, |
| | | // MenuNo = m.MenuNo, |
| | | // MenuName = m.MenuName, |
| | | // FkNo = m.FkNo, |
| | | // Type = m.TypeInfo == null ? "" : m.TypeInfo.DictName, |
| | | // Msg = m.Msg, |
| | | // CreateTime = m.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | // CreateUserName = m.CreateUserInfo == null ? "" : m.CreateUserInfo.UserName, |
| | | // UpdateTime = m.UpdateTime == null ? "" : ((DateTime)m.UpdateTime).ToString("yyyy-MM-dd HH:mm:ss"), |
| | | // UpdateUserName = m.UpdateUserInfo == null ? "" : m.UpdateUserInfo.UserName |
| | | // }).ToList(); |
| | | // } |
| | | // catch (Exception e) |
| | | // { |
| | | // throw new Exception(e.Message); |
| | | // } |
| | | //} |
| | | var item = Expressionable.Create<LogOperationASN>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(menuName), it => it.MenuName.Contains(menuName.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type) |
| | | .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime)) |
| | | .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(endTime).AddDays(1)) |
| | | .And(it=>it.IsDel == "0") |
| | | .ToExpression();//注意 这一句 不能少 |
| | | |
| | | var list = Db.Queryable<LogOperationASN>().Where(item) |
| | | .LeftJoin<SysDictionary>((it, dic) => it.Type == dic.Id.ToString()) |
| | | .LeftJoin<SysUserInfor>((it, dic, users) => it.CreateUser == users.Id) |
| | | .Select((it, dic, users) => new OperationDto() |
| | | { |
| | | Id = it.Id, |
| | | ParentNo = it.ParentNo, |
| | | MenuNo = it.MenuNo, |
| | | MenuName = it.MenuName, |
| | | FkNo = it.FkNo, |
| | | Type = dic.DictName, |
| | | Msg = it.Msg, |
| | | CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | CreateUserName = users.RealName, |
| | | }); |
| | | |
| | | #endregion |
| | | |
| | | #region so |
| | | |
| | | var item2 = Expressionable.Create<LogOperationSO>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(menuName), it => it.MenuName.Contains(menuName.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type) |
| | | .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime)) |
| | | .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(endTime).AddDays(1)) |
| | | .And(it => it.IsDel == "0") |
| | | .ToExpression();//注意 这一句 不能少 |
| | | |
| | | var list2 = Db.Queryable<LogOperationSO>().Where(item2) |
| | | .LeftJoin<SysDictionary>((it, dic) => it.Type == dic.Id.ToString()) |
| | | .LeftJoin<SysUserInfor>((it, dic, users) => it.CreateUser == users.Id) |
| | | .Select((it, dic, users) => new OperationDto() |
| | | { |
| | | Id = it.Id, |
| | | ParentNo = it.ParentNo, |
| | | MenuNo = it.MenuNo, |
| | | MenuName = it.MenuName, |
| | | FkNo = it.FkNo, |
| | | Type = dic.DictName, |
| | | Msg = it.Msg, |
| | | CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | CreateUserName = users.RealName, |
| | | }); |
| | | |
| | | #endregion |
| | | |
| | | #region cr |
| | | |
| | | var item3 = Expressionable.Create<LogOperationCR>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(menuName), it => it.MenuName.Contains(menuName.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type) |
| | | .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime)) |
| | | .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(endTime).AddDays(1)) |
| | | .And(it => it.IsDel == "0") |
| | | .ToExpression();//注意 这一句 不能少 |
| | | |
| | | var list3 = Db.Queryable<LogOperationCR>().Where(item3) |
| | | .LeftJoin<SysDictionary>((it, dic) => it.Type == dic.Id.ToString()) |
| | | .LeftJoin<SysUserInfor>((it, dic, users) => it.CreateUser == users.Id) |
| | | .Select((it, dic, users) => new OperationDto() |
| | | { |
| | | Id = it.Id, |
| | | ParentNo = it.ParentNo, |
| | | MenuNo = it.MenuNo, |
| | | MenuName = it.MenuName, |
| | | FkNo = it.FkNo, |
| | | Type = dic.DictName, |
| | | Msg = it.Msg, |
| | | CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | CreateUserName = users.RealName, |
| | | }); |
| | | |
| | | #endregion |
| | | |
| | | #region sys |
| | | |
| | | var item4 = Expressionable.Create<LogOperationSys>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(menuName), it => it.MenuName.Contains(menuName.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(type), it => it.Type == type) |
| | | .AndIF(!string.IsNullOrWhiteSpace(msg), it => it.Msg.Contains(msg.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(startTime), it => it.CreateTime >= Convert.ToDateTime(startTime)) |
| | | .AndIF(!string.IsNullOrWhiteSpace(endTime), it => it.CreateTime <= Convert.ToDateTime(startTime).AddDays(1)) |
| | | .ToExpression();//注意 这一句 不能少 |
| | | |
| | | var list4 = Db.Queryable<LogOperationSys>().Where(item4) |
| | | .LeftJoin<SysDictionary>((it, dic) => it.Type == dic.Id.ToString()) |
| | | .LeftJoin<SysUserInfor>((it, dic, users) => it.CreateUser == users.Id) |
| | | .Select((it, dic, users) => new OperationDto() |
| | | { |
| | | Id = it.Id, |
| | | ParentNo = it.ParentNo, |
| | | MenuNo = it.MenuNo, |
| | | MenuName = it.MenuName, |
| | | FkNo = it.FkNo, |
| | | Type = dic.DictName, |
| | | Msg = it.Msg, |
| | | CreateTime = it.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"), |
| | | CreateUserName = users.RealName, |
| | | }); |
| | | |
| | | #endregion |
| | | |
| | | var data = Db.UnionAll(list, list2, list3, list4).OrderByDescending(it => it.CreateTime) |
| | | .ToOffsetPage(page, limit, ref total); |
| | | count = total; |
| | | return data.OrderByDescending(m => m.CreateTime).ToList(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 添加操作日志 |
| | |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Runtime.Intrinsics.X86; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Model.ModelDto.SysDto; |
| | | using Model.ModelVm.SysVm; |
| | | using SqlSugar; |
| | | using WMS.BLL.LogServer; |
| | | using WMS.DAL; |
| | | using WMS.Entity.BllAsnEntity; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.DataEntity; |
| | | using WMS.Entity.SysEntity; |
| | | using WMS.IBLL.ILogServer; |
| | | using WMS.IBLL.ISysServer; |
| | | using WMS.IDAL.ISysInterface; |
| | | |
| | |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | public bool EditStorageLocatListNew(EditLocateListNewVm model, int userId) |
| | | { |
| | | try |
| | | { |
| | | if (string.IsNullOrWhiteSpace(model.RoadWayNo)) |
| | | { |
| | | throw new Exception("巷道不能为空"); |
| | | } |
| | | bool isRow = false; |
| | | if (model.Row != null) |
| | | { |
| | | if (model.Row <= 0) |
| | | { |
| | | throw new Exception("排需要大于0"); |
| | | } |
| | | isRow = true; |
| | | } |
| | | bool isColumn = false; |
| | | if (model.Column != null) |
| | | { |
| | | if (model.Column <= 0) |
| | | { |
| | | throw new Exception("列需要大于0"); |
| | | } |
| | | isColumn = true; |
| | | } |
| | | bool isLayer = false; |
| | | if (model.Layer != null ) |
| | | { |
| | | if (model.Column <= 0) |
| | | { |
| | | throw new Exception("层需要大于0"); |
| | | } |
| | | isLayer = true; |
| | | } |
| | | bool isDepth = false; |
| | | if (model.Dept != null) |
| | | { |
| | | if (model.Dept != 1 && model.Dept != 2) |
| | | { |
| | | throw new Exception("深度只能为1或2"); |
| | | } |
| | | isDepth = true; |
| | | } |
| | | Expression<Func<SysStorageLocat, bool>> item = Expressionable.Create<SysStorageLocat>() //创建表达式 |
| | | .AndIF(isRow, it => it.Row == model.Row) |
| | | .AndIF(isColumn, it => it.Column == model.Column) |
| | | .AndIF(isLayer, it => it.Layer == model.Layer) |
| | | .AndIF(isDepth, it => it.Depth == "0"+model.Dept) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.RoadWayNo), it => it.RoadwayNo == model.RoadWayNo) |
| | | .ToExpression();//注意 这一句 不能少 |
| | | var locateList = Db.Queryable<SysStorageLocat>().Where(item).ToList(); |
| | | if (locateList.Count == 0) |
| | | { |
| | | throw new Exception($"未查询到相对应的储位信息"); |
| | | } |
| | | |
| | | var com = new Common(); |
| | | var i = 0; |
| | | Db.BeginTran(); |
| | | foreach (var locate in locateList) |
| | | { |
| | | if (model.Flag == "2" && locate.Depth == "01")//标识是损坏且深度是01时 需把深度为2的储位给屏蔽 |
| | | { |
| | | var locate2 = com.GetLocateNoDepth2(locate.WareHouseNo, locate.LocatNo); |
| | | if (locate2.Flag == "0" && !locateList.Contains(locate2)) |
| | | { |
| | | locate2.Flag = "1"; |
| | | locate2.UpdateUser = userId; |
| | | locate2.UpdateTime = DateTime.Now; |
| | | var m = Db.Updateable(locate2).ExecuteCommand(); |
| | | } |
| | | |
| | | } |
| | | if (model.Flag == "0" && locate.Depth == "02")//标识是正常且深度是02时 需判断深度为1的储位状态是否正常 |
| | | { |
| | | var locate1 = com.GetLocateNoDepth1(locate.WareHouseNo, locate.LocatNo); |
| | | |
| | | if (locate1.Flag == "2") |
| | | { |
| | | throw new Exception($"需先修改{locate1.LocatNo}的储位标识为不是损坏"); |
| | | } |
| | | } |
| | | |
| | | if (!string.IsNullOrEmpty(model.Status)) |
| | | { |
| | | locate.Status = model.Status; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.Flag)) |
| | | { |
| | | locate.Flag = model.Flag; |
| | | } |
| | | if (!string.IsNullOrEmpty(model.AreaNo)) |
| | | { |
| | | locate.AreaNo = model.AreaNo; |
| | | } |
| | | locate.UpdateUser = userId; |
| | | locate.UpdateTime = DateTime.Now; |
| | | i = Db.Updateable(locate).ExecuteCommand(); |
| | | } |
| | | Db.CommitTran(); |
| | | return i > 0; |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询储位状态 |
| | |
| | | { |
| | | public interface IOperationSysServer |
| | | { |
| | | ///// <summary> |
| | | ///// 查询操作日志 |
| | | ///// </summary> |
| | | ///// <param name="menuName">菜单名称</param> |
| | | ///// <param name="type">类型</param> |
| | | ///// <param name="msg">内容</param> |
| | | ///// <param name="startTime">开始日期</param> |
| | | ///// <param name="endTime">结束日期</param> |
| | | ///// <param name="page"></param> |
| | | ///// <param name="limit"></param> |
| | | ///// <param name="count"></param> |
| | | ///// <returns></returns> |
| | | //List<OperationDto> GetOperationSysList(string menuName,string type,string msg,string startTime,string endTime,int page,int limit,out int count); |
| | | /// <summary> |
| | | /// 查询操作日志 |
| | | /// </summary> |
| | | /// <param name="menuName">菜单名称</param> |
| | | /// <param name="type">类型</param> |
| | | /// <param name="msg">内容</param> |
| | | /// <param name="startTime">开始日期</param> |
| | | /// <param name="endTime">结束日期</param> |
| | | /// <param name="page"></param> |
| | | /// <param name="limit"></param> |
| | | /// <param name="count"></param> |
| | | /// <returns></returns> |
| | | List<OperationDto> GetOperationList(string menuName, string type, string msg, string startTime, string endTime, int page, int limit, out int count); |
| | | |
| | | /// <summary> |
| | | /// 添加操作日志 |
| | |
| | | /// <param name="userId">操作人</param> |
| | | /// <returns></returns> |
| | | bool EditStorageLocatList(EditLocateListVm model, int userId); |
| | | /// <summary> |
| | | /// 批量修改储位信息 状态、标识、区域 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <param name="userId"></param> |
| | | /// <returns></returns> |
| | | bool EditStorageLocatListNew(EditLocateListNewVm model, int userId); |
| | | |
| | | /// <summary> |
| | | /// 获取储位信息 |
| | |
| | | using Model.ModelDto; |
| | | using Model.ModelDto.LogDto; |
| | | using Newtonsoft.Json.Linq; |
| | | using Model.ModelVm.LogVm; |
| | | |
| | | namespace Wms.Controllers |
| | | { |
| | |
| | | return Ok(new { code = 1, msg = "数据格式错误" }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 修改储位状态标识信息集合 |
| | | /// </summary> |
| | | /// <param name="model">模型</param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult EditStorageLocatListNew (EditLocateListNewVm 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 bolls = _locatSvc.EditStorageLocatListNew(model, int.Parse(userId)); |
| | | if (bolls) |
| | | { |
| | | _operation.InsertOperation("仓库设置", "储位管理", "", "修改", $"修改巷道:{model.RoadWayNo}、排:{model.Row}、列:{model.Column}、层:{model.Layer}、深度:{model.Dept}的区域:{model.AreaNo}、状态:{model.Status}、标识:{model.Flag}的储位信息 ", Convert.ToInt32(userId)); |
| | | |
| | | return Ok(new { code = 0, msg = "编辑成功", data = "" }); |
| | | } |
| | | else |
| | | { |
| | | return Ok(new { code = 1, msg = "编辑失败", data = "" }); |
| | | } |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 托盘条码管理 |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 操作日志 |
| | | |
| | | /// <summary> |
| | | /// 获取操作日志信息 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | [AllowAnonymous] |
| | | [HttpPost] |
| | | public IActionResult GetLogOperationList(GetOperationVm model) |
| | | { |
| | | try |
| | | { |
| | | var bolls = _operation.GetOperationList(model.MenuName, model.Type, model.Msg, model.StartTime, model.EndTime, model.Page, model.Limit, out int count); |
| | | |
| | | return Ok(new { code = 0, count, msg = "操作日志信息", data = bolls }); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 数据表格表头自定义(通用方法) |
| | | /// <summary> |