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"> |
| | | <link rel="stylesheet" href="../../layuiadmin/style/admin.css" media="all"> |
| | | <script> |
| | | // 这里是需要在页面渲染之前执行的代码 |
| | | document.addEventListener("DOMContentLoaded", function() { |
| | | |
| | | //获取table默认显示数 |
| | | pageCntFirst(); |
| | | }); |
| | | </script> |
| | | </head> |
| | | <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"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">类别名称</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" id="DictName" name="DictName" placeholder="请输入功能名称" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 70px;">父级字典号</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="ParentNo" id="ParentNo" lay-verify="" lay-search=""> |
| | | <option value=""></option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 45px;">区域</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="Level" id="Level" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">根目录</option> |
| | | <option value="1">下级目录</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">是否公开</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="IsPublic" id="IsPublic" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">公开</option> |
| | | <option value="1">不公开</option> |
| | | </select> |
| | | </div> |
| | | </div> --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">允许编辑</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="IsEdit" id="IsEdit" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">允许</option> |
| | | <option value="1">不允许</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">允许增加</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="IsAdd" id="IsAdd" lay-verify="" lay-search> |
| | | <option value=""></option> |
| | | <option value="0">允许</option> |
| | | <option value="1">不允许</option> |
| | | </select> |
| | | </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 class="layui-inline"> |
| | | <button class="layui-btn layui-btn-sm layuiadmin-btn-list approvalBtn" data-type="add" id="approvalBtn"> |
| | | <i class="layui-icon layuiadmin-button-btn"></i>添加 |
| | | </button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="layui-card-body"> |
| | | <table id="LAY-app-content-list" lay-filter="LAY-app-content-list"></table> |
| | | <!-- 是否公开 --> |
| | | <script type="text/html" id="buttonIsPublic"> |
| | | {{# if(d.IsPublic=='0'){ }} |
| | | <button class="layui-btn layui-btn-radius layui-btn-xs">公开</button> |
| | | {{# } else if(d.IsPublic=='1') { }} |
| | | <button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">不公开</button> |
| | | {{# } }} |
| | | </script> |
| | | |
| | | <!-- 层级 --> |
| | | <script type="text/html" id="buttonLevel"> |
| | | {{# if(d.Level=='0'){ }} |
| | | <button class="layui-btn layui-btn-radius layui-btn-xs">根目录</button> |
| | | {{# } else if(d.Level=='1') { }} |
| | | <button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">下级目录</button> |
| | | {{# } }} |
| | | </script> |
| | | |
| | | <!-- 允许编辑 --> |
| | | <script type="text/html" id="buttonIsEdit"> |
| | | {{# if(d.IsEdit=='0'){ }} |
| | | <p>允许</p> |
| | | {{# } else if(d.IsEdit=='1') { }} |
| | | <p>不允许</p> |
| | | {{# } }} |
| | | </script> |
| | | |
| | | <!-- 允许添加 --> |
| | | <script type="text/html" id="buttonIsAdd"> |
| | | {{# if(d.IsAdd=='0'){ }} |
| | | <p>允许</p> |
| | | {{# } else if(d.IsAdd=='1') { }} |
| | | <p>不允许</p> |
| | | {{# } }} |
| | | </script> |
| | | <!-- 操作 --> |
| | | <script type="text/html" id="table-content-list"> |
| | | {{# if(d.IsEdit=='0'){ }} |
| | | <a class="layui-btn layui-btn-normal layui-btn-xs approvalBtnupt" lay-event="edit"> |
| | | <i class="layui-icon layui-icon-edit"></i>编辑 |
| | | </a> |
| | | {{# } else if(d.IsEdit=='1') }} |
| | | |
| | | <a class="layui-btn layui-btn-danger layui-btn-xs approvalBtndel" lay-event="del"> |
| | | <i class="layui-icon layui-icon-delete"></i>删除 |
| | | </a> |
| | | </script> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script src="../../layuiadmin/layui/layui.js"></script> |
| | | <script src="../../js/public.js"></script> |
| | | <script src="../../js/jquery-3.5.1.min.js"></script> |
| | | <script src="../../js/jquery.cookie.js"></script> |
| | | <script> |
| | | layui.config({ |
| | | base: '../../layuiadmin/' //静态资源所在路径 |
| | | }).extend({ |
| | | index: 'lib/index' //主入口模块 |
| | | }).use(['index', 'table', 'laypage', 'layer'], function() { |
| | | var table = layui.table, |
| | | form = layui.form, |
| | | laypage = layui.laypage, |
| | | layer = layui.layer; |
| | | |
| | | var tableIns; |
| | | |
| | | //获取父级字典号 |
| | | sendData(IP + "/sys/GetDicParentListByLevel",{},'get',function(res){ |
| | | if (res.code == 0) //成功 |
| | | { |
| | | parentnohtml = '<option value =""></option>'; |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | //判断层级不是按钮 |
| | | if (res.data[i].Level == '0') |
| | | { |
| | | //根目录 |
| | | parentnohtml = parentnohtml + '<option value =' + res.data[i].DictNo + '>' + res.data[i].DictName + '</option>' |
| | | } |
| | | } |
| | | $("#ParentNo").append(parentnohtml); |
| | | form.render('select'); |
| | | } |
| | | }) |
| | | |
| | | function refreshTable(DictName,DictNo,Level,IsEdit,IsAdd) { |
| | | var param = { |
| | | DictName: DictName, |
| | | DictNo: DictNo, |
| | | Level: Level, |
| | | IsEdit: IsEdit, |
| | | IsAdd: IsAdd |
| | | }; |
| | | |
| | | sendData(IP + "/Sys/GetDicList?DictName="+DictName+"&&DictNo="+DictNo+"&&Level="+Level+"&&IsEdit="+IsEdit+"&&IsAdd="+IsAdd, {}, 'get', function(res) { |
| | | if (res.code == 0) { //成功 |
| | | var list = res.data; |
| | | $.extend(infoOptions, { |
| | | data: list |
| | | }); |
| | | infoOptions.page = { |
| | | curr: 1 |
| | | } |
| | | tableIns = table.render(infoOptions); |
| | | } |
| | | else //不成功 |
| | | { |
| | | layer.msg('获取字典列表信息失败!', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {}); |
| | | } |
| | | }); |
| | | } |
| | | sendData(IP + "/basis/GetRoleRightList", {}, 'get', function(res) { |
| | | $(function() { |
| | | $("#approvalBtn").hide(); |
| | | }); |
| | | $(function() { |
| | | $(".approvalBtnupt").hide(); |
| | | }); |
| | | $(function() { |
| | | $(".approvalBtndel").hide(); |
| | | }); |
| | | if (res.code == 0) { //成功 |
| | | for (var k = 0; k < res.data.length; k++) { |
| | | if (res.data[k].MenuName == "添加字典") { |
| | | $(function() { |
| | | $("#approvalBtn").show(); |
| | | }); |
| | | } |
| | | if (res.data[k].MenuName == "删除字典") { |
| | | $(function() { |
| | | $(".approvalBtndel").show(); |
| | | }); |
| | | } |
| | | if (res.data[k].MenuName == "编辑字典") { |
| | | $(function() { |
| | | $(".approvalBtnupt").show(); |
| | | }); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { //不成功 |
| | | layer.msg('获取信息失败', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | //回调 |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | var infoOptions = { |
| | | elem: "#LAY-app-content-list", |
| | | height: "full-95", |
| | | 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', width:65 |
| | | }, |
| | | { |
| | | field: 'DictNo', title: '字典编号', align: 'center', fixed: 'left' |
| | | }, |
| | | { |
| | | field: 'DictName', title: '字典名称', align: 'center' |
| | | }, |
| | | { |
| | | field: 'ParentNo', title: '父级字典号', align: 'center' |
| | | }, |
| | | { |
| | | field: 'Ord', title: '显示顺序', align: 'center' |
| | | }, |
| | | { |
| | | field: 'Level', title: '层级', align: 'center', templet: '#buttonLevel' |
| | | }, |
| | | { |
| | | field: 'IsPublic', templet: '#buttonIsPublic', title: '是否公开', align: 'center' |
| | | }, |
| | | { |
| | | field: 'IsEdit', title: '允许编辑', align: 'center', templet: '#buttonIsEdit' |
| | | }, |
| | | { |
| | | field: 'IsAdd', title: '允许增加', align: 'center', templet: '#buttonIsAdd' |
| | | }, |
| | | { |
| | | field: 'CreateName', title: '创建人', align: 'center' |
| | | }, |
| | | { |
| | | field: 'CreateTime', title: '创建日期', align: 'center', |
| | | templet: function (d) { |
| | | return formatDate(d.CreateTime); |
| | | } |
| | | }, |
| | | { |
| | | title: '操作', fixed: 'right', align: 'center', width: 200 , toolbar: '#table-content-list' |
| | | } |
| | | ]], |
| | | }; |
| | | |
| | | //监听搜索 |
| | | form.on('submit(LAY-app-contlist-search)', function(data) { |
| | | console.log(data) |
| | | var DictName = data.field.DictName; |
| | | var DictNo = data.field.ParentNo; |
| | | var Level = data.field.Level; |
| | | var IsEdit = data.field.IsEdit; |
| | | var IsAdd = data.field.IsAdd; |
| | | refreshTable(DictName,DictNo,Level,IsEdit,IsAdd); |
| | | }); |
| | | var doing = true; |
| | | var $ = layui.$, |
| | | active = { |
| | | //新增 |
| | | add: function() { |
| | | layer.open({ |
| | | type: 2, |
| | | title: '添加字典信息', |
| | | content: 'DictionaryForm.html', |
| | | maxmin: true, |
| | | area: ['530px', '530px'], |
| | | 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; //获取提交的字段 |
| | | //提交 Ajax 成功后,静态更新表格中的数据 |
| | | var param = { |
| | | DictNo: field.DictNo, //字典编号 |
| | | DictName: field.DictName, //字典名称 |
| | | ParentNo: field.ParentNo, //父级字典号 |
| | | Ord: field.Ord, //显示顺序 |
| | | Level: field.Level, //层级 |
| | | IsPublic: field.IsPublic, //是否公开 |
| | | IsEdit: field.IsEdit, //允许编辑 |
| | | IsAdd: field.IsAdd //允许添加 |
| | | }; |
| | | if(field.Level == '1') |
| | | { |
| | | if(field.ParentNo == '') |
| | | { |
| | | layer.msg("当层级为子级时,父级目录不可为空!", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {doing = true;}); |
| | | } |
| | | else |
| | | { |
| | | console.log(11) |
| | | if(doing){ |
| | | doing = false; |
| | | sendData(IP + "/sys/AddDic", param, 'post',function(res) { |
| | | console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | layer.close(index); //关闭弹层 |
| | | refreshTable($("#DictName").val(),$("#ParentNo").val(),$("#Level").val(), $("#IsEdit").val(), $("#IsAdd").val()); |
| | | doing = true; |
| | | }); |
| | | } |
| | | else |
| | | { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {doing = true;}); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | console.log(123); |
| | | } |
| | | } |
| | | } |
| | | |
| | | }); |
| | | submit.trigger('click'); |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | $('.layui-btn.layuiadmin-btn-list').on('click', function() { |
| | | var type = $(this).data('type'); |
| | | active[type] ? active[type].call(this) : ''; |
| | | }); |
| | | |
| | | var element = layui.element; |
| | | var houseId = 0; |
| | | var param = { |
| | | Id: $.cookie('userId') |
| | | } |
| | | var xml = ''; |
| | | function getchiled(data, mainId) { |
| | | if (data) |
| | | { |
| | | var list = data.filter(item => item.ParentId == mainId); |
| | | 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) |
| | | { |
| | | xml = xml + '<dd>' + '<a href="javascript:;">' + list[i].Name + '</a>' + '<dl class="layui-nav-child">'; |
| | | getchiled(data, id); |
| | | xml = xml + '</dl></dd>'; |
| | | |
| | | } |
| | | else |
| | | { |
| | | xml = xml + '<dd>' + '<a lay-href="' + list[i].Url + '">' + list[i].Name + '</a>' + '</dd>'; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | var uid = $.cookie('userId'); |
| | | refreshTable("","","","",""); |
| | | table.on('tool(LAY-app-content-list)', function(obj) { |
| | | var data = obj.data; |
| | | //删除 |
| | | if (obj.event === 'del') |
| | | { |
| | | layer.confirm('确定删除选中的字典?', function(index) { |
| | | // console.log(data); |
| | | cusid = data.Id; |
| | | var arr = []; |
| | | arr.push(cusid); //属性 |
| | | var param = { |
| | | Ids: arr |
| | | }; |
| | | if(doing) |
| | | { |
| | | doing = false; |
| | | sendData(IP + "/sys/DelDic?Id="+data.Id+"", {} , 'get', function(res) { |
| | | console.log(res); |
| | | if (res.code == 0) |
| | | { //成功 |
| | | layer.msg(res.msg, { |
| | | icon: 1, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | refreshTable($("#DictName").val(),$("#ParentNo").val(),$("#Level").val(), $("#IsEdit").val(), $("#IsAdd").val()); |
| | | //table.reload('LAY-app-content-list'); //数据刷新 |
| | | doing = true; |
| | | }); |
| | | } |
| | | else |
| | | { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {doing = true;}); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | console.log(123); |
| | | } |
| | | |
| | | }); |
| | | } |
| | | //编辑 |
| | | else if (obj.event === 'edit') |
| | | { |
| | | cusId = data.Id; |
| | | layer.open({ |
| | | type: 2, |
| | | title: '编辑字典信息', |
| | | content: 'DictionaryForm.html?id=' + cusId, |
| | | maxmin: true, |
| | | area: ['500px', '450px'], |
| | | btn: ['确定', '取消'], |
| | | yes: function(index, layero) { |
| | | var iframeWindow = window['layui-layer-iframe' + index], |
| | | submitID = 'layuiadmin-app-form-edit', |
| | | submit = layero.find('iframe').contents().find('#' + submitID); |
| | | //监听提交 |
| | | iframeWindow.layui.form.on('submit(' + submitID + ')', function(data) { |
| | | var field = data.field; //获取提交的字段 |
| | | //提交 Ajax 成功后,静态更新表格中的数据 |
| | | var param = { |
| | | Id: cusId, |
| | | DictNo: field.DictNo, |
| | | DictName: field.DictName, |
| | | ParentNo: field.ParentNo, |
| | | Ord: field.Ord, |
| | | Level: field.Level, |
| | | IsPublic: field.IsPublic, |
| | | IsEdit: field.IsEdit, |
| | | IsAdd: field.IsAdd |
| | | }; |
| | | if(doing) |
| | | { |
| | | doing = false; |
| | | sendData(IP + "/sys/ExitDic", param, 'post', |
| | | function(res) { |
| | | if (res.code == 0) |
| | | { //成功 |
| | | layer.msg("修改成功", { |
| | | icon: 1, |
| | | time: 1000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() { |
| | | layer.close(index); //关闭弹层 |
| | | refreshTable($("#DictName").val(),$("#ParentNo").val(),$("#Level").val(), $("#IsEdit").val(), $("#IsAdd").val()); |
| | | //table.reload('LAY-app-content-list'); //数据刷新 |
| | | doing = true; |
| | | }); |
| | | } |
| | | else |
| | | { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function() {doing = true;}); |
| | | } |
| | | }); |
| | | } |
| | | else |
| | | { |
| | | console.log(123); |
| | | } |
| | | }); |
| | | submit.trigger('click'); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | </script> |
| | | </body> |
| | | </html> |
| | |
| | | Opacity: .8; |
| | | } |
| | | |
| | | |
| | | .btnShow { |
| | | width: 20px; |
| | | height: 15px; |
| | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">排</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="Detph" id="Detph" lay-filter="SelectLayer"> |
| | | <option value="1">第一排</option> |
| | | <option value="2">第二排</option> |
| | | <select name="Row" id="Row" lay-filter="SelectLayer"> |
| | | <!-- <option value="1">第一排</option> |
| | | <option value="2">第二排</option> --> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- 定时自刷新库位图例 --> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">深度</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="Depth" id="Depth" lay-filter="SelectDepth"> |
| | | <option value="01" selected>深度1</option> |
| | | <option value="02" id="shendu2">深度2</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- //定时自刷新库位图例 --> |
| | | <div class="layui-inline" style="float: right;"> |
| | | <label class="layui-form-label" style="margin-top: 10px;">自动刷新</label> |
| | | <div class="layui-input-inline" style="width: auto;"> |
| | |
| | | |
| | | var cengShu = "1"; |
| | | var dom = $('#LAY_app_tabsheader', parent.document).children();//.find(s=>s.s.nodeType == 1 && className == "layui-this") |
| | | |
| | | //算出button百分比大小 |
| | | var xianga = ""; |
| | | var xiangb = ""; |
| | | |
| | | //获取仓库下拉框信息 |
| | | synData(IP + "/Sys/GetWarehouseDic", {}, 'get', function (res) { |
| | |
| | | } |
| | | }); |
| | | getRoadway(); |
| | | var svmwidth = 0; |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Detph").val()); |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Row").val(), $("#Depth").val()); |
| | | GetSlotChart($("#WareHouseNo").val()); |
| | | GetSlotChartz($("#WareHouseNo").val(), $("#RoadwayNo").val()) |
| | | |
| | | |
| | | // 查询事件 |
| | | form.on('select(getWareHouseNo)', function (data) { |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Detph").val()); |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Row").val(), $("#Depth").val()); |
| | | getRoadway() |
| | | GetSlotChart($("#WareHouseNo").val()) |
| | | }); |
| | | form.on('select(getRoadwayNo)', function (data) { |
| | | if (data.value == "R01") |
| | | { |
| | | xianga = "巷道1排"; |
| | | xiangb = "巷道2排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='1']").attr("selected", "selected") |
| | | $("#Row").append('<option value =1>第1排</option>'); |
| | | $("#Row").append('<option value =2>第2排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R02") |
| | | { |
| | | xianga = "巷道3排"; |
| | | xiangb = "巷道4排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='3']").attr("selected", "selected") |
| | | $("#Row").append('<option value =3>第3排</option>'); |
| | | $("#Row").append('<option value =4>第4排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R03") |
| | | { |
| | | |
| | | xianga = "巷道5排"; |
| | | xiangb = "巷道6排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='5']").attr("selected", "selected") |
| | | $("#Row").append('<option value =5>第5排</option>'); |
| | | $("#Row").append('<option value =6>第6排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R04") |
| | | { |
| | | |
| | | xianga = "巷道7排"; |
| | | xiangb = "巷道8排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='7']").attr("selected", "selected") |
| | | $("#Row").append('<option value =7>第7排</option>'); |
| | | $("#Row").append('<option value =8>第8排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R05") |
| | | { |
| | | |
| | | xianga = "巷道9排"; |
| | | xiangb = "巷道10排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='9']").attr("selected", "selected") |
| | | $("#Row").append('<option value =9>第9排</option>'); |
| | | $("#Row").append('<option value =10>第10排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R06") |
| | | { |
| | | |
| | | xianga = "巷道11排"; |
| | | xiangb = "巷道12排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='11']").attr("selected", "selected") |
| | | $("#Row").append('<option value =11>第11排</option>'); |
| | | $("#Row").append('<option value =12>第12排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R07") |
| | | { |
| | | |
| | | xianga = "巷道13排"; |
| | | xiangb = "巷道14排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='13']").attr("selected", "selected") |
| | | $("#Row").append('<option value =13>第13排</option>'); |
| | | $("#Row").append('<option value =14>第14排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R08") |
| | | { |
| | | |
| | | xianga = "巷道15排"; |
| | | xiangb = "巷道16排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='15']").attr("selected", "selected") |
| | | $("#Row").append('<option value =15>第15排</option>'); |
| | | $("#Row").append('<option value =16>第16排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R09") |
| | | { |
| | | |
| | | xianga = "巷道17排"; |
| | | xiangb = "巷道18排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='17']").attr("selected", "selected") |
| | | $("#Row").append('<option value =17>第17排</option>'); |
| | | $("#Row").append('<option value =18>第18排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R10") |
| | | { |
| | | |
| | | xianga = "巷道19排"; |
| | | xiangb = "巷道20排"; |
| | | $("#Row").empty();//清空上一个查询下拉值 |
| | | $("#Row option[value ='19']").attr("selected", "selected") |
| | | $("#Row").append('<option value =19>第19排</option>'); |
| | | $("#Row").append('<option value =>第20排</option>'); |
| | | form.render('select'); |
| | | } |
| | | GetSlotChartz($("#WareHouseNo").val(), $("#RoadwayNo").val()) |
| | | |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Detph").val()); |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Row").val(), $("#Depth").val()); |
| | | |
| | | }) |
| | | form.on('select(SelectLayer)', function (data) { |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Detph").val()); |
| | | if($("#Row").val() == "2" || $("#Row").val() == "5" || $("#Row").val() == "9" || $("#Row").val() == "13" || $("#Row").val() == "17") |
| | | { |
| | | $("#Depth").empty();//清空上一个查询下拉值 |
| | | $("#Depth option[value ='01']").attr("selected", "selected") |
| | | $("#Depth").append('<option value =01>深度1</option>'); |
| | | } |
| | | else |
| | | { |
| | | $("#Depth").empty();//清空上一个查询下拉值 |
| | | $("#Depth option[value ='01']").attr("selected", "selected") |
| | | $("#Depth").append('<option value =01>深度1</option>'); |
| | | $("#Depth").append('<option value =02>深度2</option>'); |
| | | } |
| | | form.render('select'); |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Row").val(), $("#Depth").val()); |
| | | }); |
| | | form.on('select(SelectDepth)', function (data) { |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Row").val(), $("#Depth").val()); |
| | | }); |
| | | |
| | | //获取仓库巷道 |
| | |
| | | res.data[i].RoadwayName + '</option>'); |
| | | } |
| | | $("#RoadwayNo option[value='" + res.data[0].RoadwayNo + "']").attr("selected", "selected") |
| | | $("#Depth option[value ='01']").attr("selected", "selected") |
| | | form.render('select'); |
| | | if ($("#RoadwayNo").val() == "R01") |
| | | { |
| | | xianga = "巷道1排"; |
| | | xiangb = "巷道2排"; |
| | | $("#Row option[value ='1']").attr("selected", "selected") |
| | | $("#Row").append('<option value =1>第1排</option>'); |
| | | $("#Row").append('<option value =2>第2排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R02") |
| | | { |
| | | xianga = "巷道3排"; |
| | | xiangb = "巷道4排"; |
| | | $("#Row option[value ='3']").attr("selected", "selected") |
| | | $("#Row").append('<option value =3>第3排</option>'); |
| | | $("#Row").append('<option value =4>第4排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R03") |
| | | { |
| | | |
| | | xianga = "巷道5排"; |
| | | xiangb = "巷道6排"; |
| | | $("#Row option[value ='5']").attr("selected", "selected") |
| | | $("#Row").append('<option value =5>第5排</option>'); |
| | | $("#Row").append('<option value =6>第6排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R04") |
| | | { |
| | | |
| | | xianga = "巷道7排"; |
| | | xiangb = "巷道8排"; |
| | | $("#Row option[value ='7']").attr("selected", "selected") |
| | | $("#Row").append('<option value =7>第7排</option>'); |
| | | $("#Row").append('<option value =8>第8排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R05") |
| | | { |
| | | |
| | | xianga = "巷道9排"; |
| | | xiangb = "巷道10排"; |
| | | $("#Row option[value ='9']").attr("selected", "selected") |
| | | $("#Row").append('<option value =9>第9排</option>'); |
| | | $("#Row").append('<option value =10>第10排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R06") |
| | | { |
| | | |
| | | xianga = "巷道11排"; |
| | | xiangb = "巷道12排"; |
| | | $("#Row option[value ='11']").attr("selected", "selected") |
| | | $("#Row").append('<option value =11>第11排</option>'); |
| | | $("#Row").append('<option value =12>第12排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R07") |
| | | { |
| | | |
| | | xianga = "巷道13排"; |
| | | xiangb = "巷道14排"; |
| | | $("#Row option[value ='13']").attr("selected", "selected") |
| | | $("#Row").append('<option value =13>第13排</option>'); |
| | | $("#Row").append('<option value =14>第14排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R08") |
| | | { |
| | | |
| | | xianga = "巷道15排"; |
| | | xiangb = "巷道16排"; |
| | | $("#Row option[value ='15']").attr("selected", "selected") |
| | | $("#Row").append('<option value =15>第15排</option>'); |
| | | $("#Row").append('<option value =16>第16排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R09") |
| | | { |
| | | |
| | | xianga = "巷道17排"; |
| | | xiangb = "巷道18排"; |
| | | $("#Row option[value ='17']").attr("selected", "selected") |
| | | $("#Row").append('<option value =17>第17排</option>'); |
| | | $("#Row").append('<option value =18>第18排</option>'); |
| | | form.render('select'); |
| | | } |
| | | else if ($("#RoadwayNo").val() == "R10") |
| | | { |
| | | |
| | | xianga = "巷道19排"; |
| | | xiangb = "巷道20排"; |
| | | $("#Row option[value ='19']").attr("selected", "selected") |
| | | $("#Row").append('<option value =19>第19排</option>'); |
| | | $("#Row").append('<option value =>第20排</option>'); |
| | | form.render('select'); |
| | | } |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | |
| | | } |
| | | |
| | | //获取数据渲染库位图 |
| | | function GetSlotVm(houseNo, roadway, row) { |
| | | function GetSlotVm(houseNo, roadway, row, depth) { |
| | | var param = { |
| | | WareHouseNo: houseNo, |
| | | roadway: roadway, |
| | | Row: row |
| | | Row: row, |
| | | Depth: depth |
| | | } |
| | | sendData(IP + "/Sys/GetStorageLocatLists", param, 'get', function (res) { |
| | | if (res.code == 0) { |
| | |
| | | var statu = list.find(r => r.Column == a && r.Layer == i); |
| | | |
| | | if (statu != undefined) { |
| | | //判断储位标识是否为0 |
| | | if(statu.Flag != '0') |
| | | { |
| | | html += '<td><button value=' + statu.LocatNo + ' class="btnShow filg" ></button></td>' |
| | |
| | | html += '<td><button value=' + statu.LocatNo + ' class="btnShow three" ></button></td>' |
| | | continue; |
| | | } |
| | | |
| | | //移入中 4 |
| | | // if (statu.Status == 4) { |
| | | // html += '<td style="height:auto;width:auto"><button value=' + statu.LocatNo + ' class="btnShow four" style="height:' + height3 + 'px;width:' + svmwidth + 'px"></button></td>' |
| | |
| | | let num = 1; |
| | | if (i == 1) { |
| | | html += '<tr style="height:10px;"><td></td>' |
| | | |
| | | for (let aa = 0; aa < list.length; aa++) { |
| | | //let num = Number(aa) + 1; |
| | | if (list[aa].Layer == i) { |
| | | |
| | | html += '<td><p> ' + num + '</p></td>' |
| | | num = Number(num) + 1; |
| | | |
| | | } |
| | | } |
| | | html += '</tr>' |
| | |
| | | }); |
| | | } |
| | | |
| | | |
| | | // 加载仓库图例 |
| | | //圆 |
| | | function GetSlotChart(warehouseNo) { |
| | | |
| | | sendData(IP + "/Sys/GetStorageProportion?WareHouseNo=" + warehouseNo, {}, 'get', function (res) { |
| | | // console.log("园数据",res) |
| | | if (res.code == 0) { |
| | | var LayerName = res.data[0].warehouseNo; |
| | | |
| | | var list = res.data; |
| | | //0:空储位 1:有物品 2:入库中 3:出库中 4:移入中 5:移出中 6: 损坏\屏蔽 |
| | | var key = ['空储位', '有物品', '入库中', '出库中', '损坏\屏蔽']; |
| | | // var value = []; |
| | | // var a = 0; |
| | | // for (var i = 0; i < key.length; i++) { |
| | | |
| | | // if (a < list.length) { |
| | | // if (i == list[a].Status) { |
| | | // value.push(list[a].StatusNum) |
| | | // a = a + 1; |
| | | // } |
| | | // } |
| | | // else { |
| | | // value.push(0) |
| | | // } |
| | | // } |
| | | var value = [0,0,0,0,0,0,0]; |
| | | list.forEach(item => { |
| | | value[item.Status] = item.StatusNum; |
| | |
| | | this.chartLine2 = echarts.init(document.getElementById("yuan")); |
| | | var option2 = { |
| | | color: [ |
| | | '#5470c6', //空储位 |
| | | '#91cc75', //有物品 |
| | | '#ffdc60', //入库中 |
| | | '#ee6666', //出库中 |
| | | // '#ffff7f', //移入中 |
| | | // '#ee23ee' //移出中 |
| | | '#808080', //损坏屏蔽 |
| | | '#5470c6', |
| | | '#91cc75', |
| | | '#ffdc60', |
| | | '#ee6666', |
| | | // '#ffff7f', |
| | | // '#ee23ee', |
| | | '#808080', |
| | | ], |
| | | title: { |
| | | text: LayerName, |
| | |
| | | radius: '85%', |
| | | data: |
| | | [ |
| | | { value: value[0], name: key[0] }, |
| | | { value: value[1], name: key[1] }, |
| | | { value: value[2], name: key[2] }, |
| | | { value: value[3], name: key[3] }, |
| | | { value: value[0], name: key[0] }, //空储位 |
| | | { value: value[1], name: key[1] }, //有物品 |
| | | { value: value[2], name: key[2] }, //入库中 |
| | | { value: value[3], name: key[3] }, //出库中 |
| | | // { value: value[4], name: key[4] }, |
| | | // { value: value[5], name: key[5] }, |
| | | { value: value[6], name: key[4] }, //损坏\屏蔽 |
| | |
| | | if (res.code == 0) { |
| | | |
| | | var list = res.data; |
| | | console.log(list) |
| | | //0:空储位 1:有物品 2:入库中 3:出库中 4:移入中 5:移出中 6:损坏\屏蔽 |
| | | var key = ['空储位', '有物品', '入库中', '出库中','损坏\屏蔽']; |
| | | this.chartLine2 = echarts.init(document.getElementById("zhu")); |
| | | //巷道 |
| | | var roarylist = ['巷道1排', '巷道2排']; |
| | | var roarylist = [xianga, xiangb]; |
| | | //各储位状态数量 |
| | | var status0 = []; |
| | | var status1 = []; |
| | |
| | | status6.push(list[i].StatusNum) |
| | | } |
| | | } |
| | | console.log(status3.length) |
| | | if (status0.length == 0) |
| | | { |
| | | status0.push(0) |
| | |
| | | }, |
| | | data: status3 |
| | | }, |
| | | // ,{ |
| | | // { |
| | | // name: '移入中', |
| | | // type: 'bar', |
| | | // color: '#ffff7f', |
| | |
| | | var className=$(that)[0].className; |
| | | if(className=='btnShow zero'){ |
| | | html = "<p style='word-wrap:break-word;width: 100%;height:100%;line-height:24px;font-size:18px'>储位编码:" + locatNo + "<br/>储位状态:空储位</p>"; |
| | | tipsVal=layer.tips(html,that,{tips:[1,"rgb(58, 61, 73)"],area: ['200px'],time: 0}); |
| | | tipsVal=layer.tips(html,that,{tips:[1,"rgb(58, 61, 73)"],area: ['220px'],time: 0}); |
| | | }else{ |
| | | var param={ |
| | | locatNo:locatNo |
| | | } |
| | | sendData(IP + "/Sys/GetLocateInfo", param, 'get', function (res) { |
| | | console.log(res) |
| | | if (res.code == 0) { |
| | | html = "<p style='word-wrap:break-word;width: 100%;height:100%;line-height:24px;font-size:18px;'>"; |
| | | html += "储位编码:" + locatNo; |
| | | html += "<br/>储位状态:"+res.data.Status; |
| | | if (res.data.GoodsInfoList != null) |
| | | { |
| | | for(var i=0;i<res.data.GoodsInfoList.length;i++){ |
| | | html += "<br/>托盘号: "+res.data.PalletNo; |
| | | for(var i=0;i<res.data.GoodsInfoList.length;i++){ |
| | | html += "<br/><br/>物料编码:"+res.data.GoodsInfoList[i].SkuNo; |
| | | html += "<br/>物料名称:"+res.data.GoodsInfoList[i].SkuName; |
| | | html += "<br/>批次号: "+res.data.GoodsInfoList[i].LotNo; |
| | | html += "<br/>数量: "+res.data.GoodsInfoList[i].Qty; |
| | | } |
| | | } |
| | | html += "</p>" |
| | | } |
| | | tipsVal=layer.tips(html,that,{tips:[1,"rgb(58, 61, 73)"],area: ['260px'],time: 0}); |
| | | } else { |
| | | layer.msg(res.msg, { |
| | |
| | | //定时器 |
| | | setInterval(function(){ |
| | | if(autoRefresh){ |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Detph").val()); |
| | | GetSlotVm($("#WareHouseNo").val(), $("#RoadwayNo").val(), $("#Row").val(), $("#Depth").val()); |
| | | //var currentDate = new Date(); |
| | | //console.log('自动刷新了,'+currentDate) |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace Model.ModelDto.SysDto |
| | | { |
| | | public class MaterialCategoryDto |
| | | { |
| | | /// <summary> |
| | | /// Id |
| | | /// </summary> |
| | | public int Id { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 类别号 |
| | | /// </summary> |
| | | public string CategoryNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 类别名称 |
| | | /// </summary> |
| | | public string CategoryName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 区域编码 |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 区域名称 |
| | | /// </summary> |
| | | public string AreaName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 所属仓库 |
| | | /// </summary> |
| | | public string WareHouseNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 仓库名称 |
| | | /// </summary> |
| | | public string WareHouseName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 备注 |
| | | /// </summary> |
| | | public string Demo { get; set; } |
| | | /// <summary> |
| | | /// 创建日期 |
| | | /// </summary> |
| | | public DateTime CreateTime { get; set; } = DateTime.Now; |
| | | |
| | | /// <summary> |
| | | /// 更新日期 |
| | | /// </summary> |
| | | public DateTime? UpdateTime { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 是否删除 |
| | | /// </summary> |
| | | public string IsDel { get; set; } = "0"; |
| | | |
| | | /// <summary> |
| | | /// 创建人 |
| | | /// </summary> |
| | | public int CreateUser { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 更新人 |
| | | /// </summary> |
| | | public int? UpdateUser { get; set; } |
| | | } |
| | | } |
New file |
| | |
| | | using Model.ModelDto; |
| | | using Model.ModelDto.SysDto; |
| | | using SqlSugar; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Text; |
| | | using WMS.DAL; |
| | | using WMS.Entity.BllSoEntity; |
| | | using WMS.Entity.Context; |
| | | using WMS.Entity.SysEntity; |
| | | using WMS.IBLL.ISysServer; |
| | | |
| | | namespace WMS.BLL.SysServer |
| | | { |
| | | /// <summary> |
| | | /// 物料类别管理方法 |
| | | /// </summary> |
| | | public class MaterialCategory : DbHelper<SysMaterialCategory>, IMaterialCategory |
| | | { |
| | | |
| | | private static readonly SqlSugarScope Db = DataContext.Db; |
| | | public MaterialCategory() : base(Db) |
| | | { |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取物料类别信息 |
| | | /// </summary> |
| | | /// <param name="categoryName">类别名称</param> |
| | | /// <param name="areaNo">区域编码</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public List<MaterialCategoryDto> GetMaterialCategories(string categoryName, string areaNo) |
| | | { |
| | | try |
| | | { |
| | | var list = Db.Queryable<MaterialCategoryDto>() |
| | | .WhereIF(!string.IsNullOrWhiteSpace(categoryName), a => a.CategoryName == categoryName) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(areaNo), a => a.AreaNo == areaNo) |
| | | .Where(a => a.IsDel == "0").ToList(); |
| | | |
| | | return list; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 新增类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public string InsertMaterialCategories(SysMaterialCategory category) |
| | | { |
| | | try |
| | | { |
| | | string msg = ""; |
| | | //获取类别信息 |
| | | var categoryInfo = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == category.CategoryNo); |
| | | //获取区域信息 |
| | | var area = Db.Queryable<SysStorageArea>().First(a => a.AreaNo == category.AreaNo && a.IsDel == "0"); |
| | | |
| | | if (categoryInfo != null) |
| | | { |
| | | msg = "当前类别信息已被创建,请重新填写信息!"; |
| | | return msg; |
| | | } |
| | | if (area == null) |
| | | { |
| | | msg = "当前选择区域信息异常,请重新选择或联系管理员!"; |
| | | return msg; |
| | | } |
| | | |
| | | Db.BeginTran(); |
| | | SysMaterialCategory list = new SysMaterialCategory() |
| | | { |
| | | CategoryNo = category.CategoryNo, //类别号 |
| | | CategoryName = category.CategoryName, //类别名称 |
| | | |
| | | AreaNo = category.AreaNo, //区域编码 |
| | | WareHouseNo = area.WareHouseNo, //所属仓库 |
| | | Demo = category.Demo, //备注 |
| | | |
| | | IsDel = "0", //是否删除 |
| | | CreateUser = category.CreateUser, //创建人 |
| | | CreateTime = Db.GetDate(), //创建时间 |
| | | }; |
| | | |
| | | Db.Insertable(list).ExecuteCommand(); |
| | | |
| | | |
| | | Db.CommitTran(); |
| | | |
| | | msg = "新增类别信息成功!"; |
| | | return msg; |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 编辑类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public string ExitMaterialCategories(SysMaterialCategory category) |
| | | { |
| | | try |
| | | { |
| | | string msg = ""; |
| | | //获取类别信息 |
| | | var categoryInfo = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == category.CategoryNo); |
| | | //获取区域信息 |
| | | var area = Db.Queryable<SysStorageArea>().First(a => a.AreaNo == category.AreaNo && a.IsDel == "0"); |
| | | |
| | | if (categoryInfo != null) |
| | | { |
| | | msg = "当前类别信息已被创建,请重新填写信息!"; |
| | | return msg; |
| | | } |
| | | |
| | | if (area == null) |
| | | { |
| | | msg = "当前选择区域信息异常,请重新选择或联系管理员!"; |
| | | return msg; |
| | | } |
| | | |
| | | Db.BeginTran(); |
| | | categoryInfo = new SysMaterialCategory() |
| | | { |
| | | CategoryNo = category.CategoryNo, //类别号 |
| | | CategoryName = category.CategoryName, //类别名称 |
| | | |
| | | AreaNo = category.AreaNo, //区域编码 |
| | | WareHouseNo = area.WareHouseNo, //所属仓库 |
| | | Demo = category.Demo, //备注 |
| | | |
| | | IsDel = "0", //是否删除 |
| | | UpdateUser = category.CreateUser, //更改人 |
| | | UpdateTime = Db.GetDate(), //更改时间 |
| | | }; |
| | | |
| | | Db.Updateable(categoryInfo).ExecuteCommand(); |
| | | |
| | | Db.CommitTran(); |
| | | |
| | | msg = "编辑类别信息成功!"; |
| | | return msg; |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public string DeleteMaterialCategories(SysMaterialCategory category) |
| | | { |
| | | try |
| | | { |
| | | string msg = ""; |
| | | //获取类别信息 |
| | | var categoryInfo = Db.Queryable<SysMaterialCategory>().First(a => a.IsDel == "0" && a.CategoryNo == category.CategoryNo); |
| | | //获取区域信息 |
| | | var area = Db.Queryable<SysStorageArea>().First(a => a.AreaNo == category.AreaNo && a.IsDel == "0"); |
| | | |
| | | |
| | | if (categoryInfo != null) |
| | | { |
| | | msg = "当前类别信息已被删除,请重新选择!"; |
| | | return msg; |
| | | } |
| | | if (area == null) |
| | | { |
| | | msg = "当前选择区域信息异常,请重新选择或联系管理员!"; |
| | | return msg; |
| | | } |
| | | |
| | | Db.BeginTran(); |
| | | |
| | | categoryInfo.IsDel = "1"; |
| | | |
| | | Db.Updateable(categoryInfo).ExecuteCommand(); |
| | | |
| | | Db.CommitTran(); |
| | | |
| | | msg = "删除类别信息成功!"; |
| | | return msg; |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <param name="wareHouseNo">仓库</param> |
| | | /// <param name="roadway">巷道号</param> |
| | | /// <param name="row">排 1 or 2</param> |
| | | /// <param name="depth">深度</param> |
| | | /// <returns></returns> |
| | | public List<SysStorageLocat> GetStorageLocatLists(string wareHouseNo, string roadway, string row) |
| | | public List<SysStorageLocat> GetStorageLocatLists(string wareHouseNo, string roadway, string row, string depth) |
| | | { |
| | | try |
| | | { |
| | | var road = roadway.Substring(1, roadway.Length - 1); |
| | | var num = int.Parse(road); |
| | | var rows = (num - 1) * 2 + int.Parse(row);//排 |
| | | |
| | | var list = Db.Queryable<SysStorageLocat>().Where(m => |
| | | m.IsDel == "0" && m.WareHouseNo == wareHouseNo && m.RoadwayNo == roadway && m.Row == rows).ToList(); |
| | | m.IsDel == "0" && m.WareHouseNo == wareHouseNo && m.RoadwayNo == roadway && m.Row == int.Parse(row) && m.Depth == depth).ToList(); |
| | | |
| | | return list; |
| | | } |
| | |
| | | var rows = (num - 1) * 2 + int.Parse(row);//排 |
| | | |
| | | var maxLayer = Db.Queryable<SysStorageLocat>().Where(m => |
| | | m.IsDel == "0" && m.WareHouseNo == wareHouseNo && m.RoadwayNo == roadway && m.Row == rows).Max(m=>m.Layer); |
| | | m.IsDel == "0" && m.WareHouseNo == wareHouseNo && m.RoadwayNo == roadway && m.Row == int.Parse(row)).Max(m=>m.Layer); |
| | | |
| | | return maxLayer; |
| | | } |
| | |
| | | var rows = (num - 1) * 2 + int.Parse(row);//排 |
| | | |
| | | var maxColumn = Db.Queryable<SysStorageLocat>().Where(m => |
| | | m.IsDel == "0" && m.WareHouseNo == wareHouseNo && m.RoadwayNo == roadway && m.Row == rows).Max(m => m.Column); |
| | | m.IsDel == "0" && m.WareHouseNo == wareHouseNo && m.RoadwayNo == roadway && m.Row == int.Parse(row)).Max(m => m.Column); |
| | | |
| | | return maxColumn; |
| | | } |
New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | |
| | | namespace WMS.Entity.SysEntity |
| | | { |
| | | /// <summary> |
| | | /// 物料类别表 |
| | | /// </summary> |
| | | public class SysMaterialCategory : BaseEntity |
| | | { |
| | | /// <summary> |
| | | /// 类别号 |
| | | /// </summary> |
| | | public string CategoryNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 类别名称 |
| | | /// </summary> |
| | | public string CategoryName { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 区域编码 |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 所属仓库 |
| | | /// </summary> |
| | | public string WareHouseNo { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 备注 |
| | | /// </summary> |
| | | public string Demo { get; set; } |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | using Model.ModelDto.SysDto; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.Text; |
| | | using WMS.Entity.SysEntity; |
| | | |
| | | namespace WMS.IBLL.ISysServer |
| | | { |
| | | /// <summary> |
| | | /// 物料类别管理方法 |
| | | /// </summary> |
| | | public interface IMaterialCategory |
| | | { |
| | | /// <summary> |
| | | /// 获取物料类别信息 |
| | | /// </summary> |
| | | /// <param name="categoryName">类别名称</param> |
| | | /// <param name="areaNo">区域编码</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | List<MaterialCategoryDto> GetMaterialCategories(string categoryName, string areaNo); |
| | | |
| | | /// <summary> |
| | | /// 新增类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | string InsertMaterialCategories(SysMaterialCategory category); |
| | | |
| | | /// <summary> |
| | | /// 编辑类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | string ExitMaterialCategories(SysMaterialCategory category); |
| | | |
| | | /// <summary> |
| | | /// 删除类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | string DeleteMaterialCategories(SysMaterialCategory category); |
| | | } |
| | | } |
| | |
| | | /// <param name="wareHouseNo">仓库</param> |
| | | /// <param name="roadway">巷道号</param> |
| | | /// <param name="row">排</param> |
| | | /// <param name="depth">深度</param> |
| | | /// <returns></returns> |
| | | List<SysStorageLocat> GetStorageLocatLists(string wareHouseNo, string roadway,string row); |
| | | |
| | | List<SysStorageLocat> GetStorageLocatLists(string wareHouseNo, string roadway,string row, string depth); |
| | | |
| | | /// <summary> |
| | | /// 获取最大层级 |
| | |
| | | private readonly IOperationSysServer _operation; //操作日志 |
| | | private readonly IExceptionServer _table; //异常处理 |
| | | private readonly IHeaderSettingsServer _headerSet;//表头设置 |
| | | |
| | | private readonly IMaterialCategory _category;//物料类别 |
| | | |
| | | /// <summary> |
| | | /// 构造函数 |
| | | /// </summary> |
| | |
| | | /// <param name="dic">数据字典</param> |
| | | /// <param name="operation">操作日志</param> |
| | | /// <param name="table">异常处理</param> |
| | | public SysController(IWareHouseServer wareHouseSvc, IStorageAreaServer areaSvc, IStorageRoadwayServer roadwaySvc, IStorageLocatServer locatSvc, IPalletsServer palletSvc, IPalletTrackServer palletTrackSvc, IMenuServer menuSvc, IDictionaryServer dic, IOperationSysServer operation, IExceptionServer table, IHeaderSettingsServer headerSet) |
| | | /// <param name="category">物料类别</param> |
| | | public SysController(IWareHouseServer wareHouseSvc, IStorageAreaServer areaSvc, IStorageRoadwayServer roadwaySvc, IStorageLocatServer locatSvc, IPalletsServer palletSvc, IPalletTrackServer palletTrackSvc, IMenuServer menuSvc, IDictionaryServer dic, IOperationSysServer operation, IExceptionServer table, IHeaderSettingsServer headerSet, IMaterialCategory category) |
| | | { |
| | | _wareHouseSvc = wareHouseSvc; //仓库 |
| | | _areaSvc = areaSvc; //区域 |
| | |
| | | _table = table; //异常处理 |
| | | |
| | | _headerSet = headerSet;//表头设置 |
| | | _category = category;//物料类别 |
| | | } |
| | | |
| | | #region 菜单管理 |
| | |
| | | /// <param name="wareHouseNo">仓库</param> |
| | | /// <param name="roadway">巷道号</param> |
| | | /// <param name="row">排</param> |
| | | /// <param name="depth">深度</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public IActionResult GetStorageLocatLists(string wareHouseNo, string roadway,string row) |
| | | public IActionResult GetStorageLocatLists(string wareHouseNo, string roadway, string row, string depth) |
| | | { |
| | | //获取储位信息 |
| | | List<SysStorageLocat> storagelist = _locatSvc.GetStorageLocatLists(wareHouseNo, roadway, row); |
| | | List<SysStorageLocat> storagelist = _locatSvc.GetStorageLocatLists(wareHouseNo, roadway, row, depth); |
| | | |
| | | //获取最大层级 |
| | | int maxLayer = _locatSvc.GetMaxLayer(wareHouseNo, roadway, row); |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 物料类别 |
| | | |
| | | /// <summary> |
| | | /// 获取物料类别信息 |
| | | /// </summary> |
| | | /// <param name="categoryName">类别名称</param> |
| | | /// <param name="areaNo">区域编码</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | [HttpGet] |
| | | public IActionResult GetMaterialCategories(string categoryName, string areaNo) |
| | | { |
| | | try |
| | | { |
| | | var list = _category.GetMaterialCategories(categoryName, areaNo); |
| | | return Ok(new |
| | | { |
| | | data = list, |
| | | code = 1, |
| | | msg = "获取物料类别信息成功" |
| | | }); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return Ok(new |
| | | { |
| | | data = "", |
| | | code = 0, |
| | | msg = "获取物料类别信息异常" |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 新增类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | [HttpPost] |
| | | public IActionResult InsertMaterialCategories(SysMaterialCategory category) |
| | | { |
| | | 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 = "为获取到当前操作人信息" }); |
| | | } |
| | | category.CreateUser = int.Parse(userId); |
| | | |
| | | var list = _category.InsertMaterialCategories(category); |
| | | |
| | | return Ok(new |
| | | { |
| | | data = list, |
| | | code = 1, |
| | | msg = "新增物料类别信息成功" |
| | | }); |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return Ok(new |
| | | { |
| | | data = "", |
| | | code = 0, |
| | | msg = "新增物料类别信息异常" |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 编辑类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | [HttpPost] |
| | | public IActionResult ExitMaterialCategories(SysMaterialCategory category) |
| | | { |
| | | 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 = "为获取到当前操作人信息" }); |
| | | } |
| | | category.UpdateUser = int.Parse(userId); |
| | | |
| | | var list = _category.ExitMaterialCategories(category); |
| | | |
| | | return Ok(new |
| | | { |
| | | data = list, |
| | | code = 1, |
| | | msg = "编辑物料类别信息成功" |
| | | }); |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return Ok(new |
| | | { |
| | | data = "", |
| | | code = 0, |
| | | msg = "编辑物料类别信息异常" |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除类别信息 |
| | | /// </summary> |
| | | /// <param name="category">物料类别实体</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | [HttpPost] |
| | | public IActionResult DeleteMaterialCategories(SysMaterialCategory category) |
| | | { |
| | | 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 = "为获取到当前操作人信息" }); |
| | | } |
| | | category.UpdateUser = int.Parse(userId); |
| | | |
| | | var list = _category.DeleteMaterialCategories(category); |
| | | |
| | | return Ok(new |
| | | { |
| | | data = list, |
| | | code = 1, |
| | | msg = "删除物料类别信息成功" |
| | | }); |
| | | |
| | | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return Ok(new |
| | | { |
| | | data = "", |
| | | code = 0, |
| | | msg = "删除物料类别信息异常" |
| | | }); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | |
| | | |
| | | #region 数据表格表头自定义(通用方法) |