| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>储位列表信息</title> |
| | |
| | | }); |
| | | </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"> |
| | | <label class="layui-form-label" style="width: 60px;">所属仓库</label> |
| | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label" style="width: 60px;">储排</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="number" id="Row" onkeyup="this.value=this.value.replace(/[, ]/g,'')" name="Row" placeholder="排···" autocomplete="off" |
| | | class="layui-input"> |
| | | <input type="number" id="Row" onkeyup="this.value=this.value.replace(/[, ]/g,'')" name="Row" |
| | | 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="number" id="Column" onkeyup="this.value=this.value.replace(/[, ]/g,'')" name="Column" placeholder="列···" |
| | | autocomplete="off" class="layui-input"> |
| | | <input type="number" id="Column" onkeyup="this.value=this.value.replace(/[, ]/g,'')" |
| | | name="Column" 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="number" id="Layer" onkeyup="this.value=this.value.replace(/[, ]/g,'')" name="Layer" placeholder="层···" |
| | | autocomplete="off" class="layui-input"> |
| | | <input type="number" id="Layer" onkeyup="this.value=this.value.replace(/[, ]/g,'')" |
| | | name="Layer" placeholder="层···" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | </button> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button style="margin-right: 10px;" class="layui-btn layui-btn-normal layui-btn-sm layuiadmin-btn-list editClass" |
| | | <button style="margin-right: 10px;" |
| | | class="layui-btn layui-btn-normal layui-btn-sm layuiadmin-btn-list editClass" |
| | | data-type="editList" id="approvalBtn"> |
| | | <i class="layui-icon layui-icon-edit layuiadmin-button-btn"> </i>批量编辑 |
| | | </button> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <button style="margin-right: 5px;" class="layui-btn layui-btn-sm layuiadmin-btn-list addClass" data-type="addList" lay-event="add" > |
| | | <button style="margin-right: 5px;" class="layui-btn layui-btn-sm layuiadmin-btn-list addClass" |
| | | data-type="addList" lay-event="add"> |
| | | <i class="layui-icon"></i>添加 |
| | | </button> |
| | | </div> |
| | |
| | | if (checkData.length === 0) { |
| | | return layer.msg('请选择数据'); |
| | | } |
| | | else if(checkData.length > 1) |
| | | { |
| | | else if (checkData.length > 1) { |
| | | var li = 0; |
| | | var ping = 0; |
| | | var WareNo = "W01"; |
| | | checkData.forEach(item => { |
| | | if (item.WareHouseName == "力诺立体库") |
| | | { |
| | | if (item.WareHouseName == "力诺立体库") { |
| | | li += 1; |
| | | WareNo = "W01"; |
| | | if (ping > 0) |
| | | { |
| | | if (ping > 0) { |
| | | return; |
| | | } |
| | | } |
| | | if (item.WareHouseName == "力诺平库") |
| | | { |
| | | if (item.WareHouseName == "力诺平库") { |
| | | ping += 1; |
| | | WareNo = "W02"; |
| | | if (li > 0) |
| | | { |
| | | if (li > 0) { |
| | | return; |
| | | } |
| | | } |
| | | }); |
| | | if (li != 0 && ping != 0) |
| | | { |
| | | if (li != 0 && ping != 0) { |
| | | return layer.msg('请勿选择多种仓库!'); |
| | | } |
| | | } |
| | |
| | | Id: msg, |
| | | Status:field.Status, |
| | | Flag:field.Flag, |
| | | Temperature:field.Temp |
| | | Temperature: field.Temp, |
| | | AreaNo: field.AreaNo |
| | | }; |
| | | if (doing) { |
| | | doing = false; |
| | |
| | | Id: id, |
| | | Status:field.Status, |
| | | Flag:field.Flag, |
| | | Temperature:field.Temp |
| | | Temperature: field.Temp, |
| | | AreaNo: field.AreaNo |
| | | }; |
| | | sendData(IP + "/Sys/EditStorageLocat", param, 'post', function(res) { |
| | | console.log(res); |
| | |
| | | |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>储位初始化</title> |
| | |
| | | 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"> |
| | | <input type="number" id="Row" name="Row" placeholder="排···" autocomplete="off" |
| | | class="layui-input" > |
| | | <input type="number" id="Row" name="Row" 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="Col" name="Col" placeholder="列···" autocomplete="off" |
| | | class="layui-input" > |
| | | <input type="number" id="Col" name="Col" 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" > |
| | | <input type="number" id="Layer" name="Layer" 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="Depth" name="Depth" placeholder="深度···" autocomplete="off" |
| | | class="layui-input" > |
| | | <input type="number" id="Depth" name="Depth" placeholder="深度···" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | |
| | |
| | | form = layui.form, |
| | | layer = layui.layer; |
| | | |
| | | // if(getQueryString('id') != null) |
| | | // { |
| | | // sendData(IP + "/Sys/GetStorageLocat", param, 'post', function(res) { |
| | | // if (res.code == 0) { |
| | | // // $("input[name=Id]").val(res.data.Id); |
| | | // GetHouse(res.data.HouseNo) |
| | | // GetArea(res.data.AreaNo,res.data.HouseNo) |
| | | // GetRoadway(res.data.RoadwayNo) |
| | | // GetTemp(res.data.Temperature); |
| | | // $("input[name=Row]").val(res.data.Row); |
| | | // $("input[name=Col]").val(res.data.Col); |
| | | // $("input[name=Layer]").val(res.data.Layer); |
| | | // $("input[name=Depth]").val(res.data.Depth); |
| | | |
| | | // $("input[name=LocatNo]").val(res.data.LocatNo); |
| | | // $("input[name=Height]").val(res.data.Height); |
| | | // $("input[name=Weight]").val(res.data.Weight); |
| | | // $("select[name='Status']").val(res.data.Status); |
| | | // $("select[name='Flag']").val(res.data.Flag); |
| | | // form.render(); |
| | | // } else { |
| | | // Layer.msg(res.msg, { |
| | | // icon: 2, |
| | | // time: 2000 |
| | | // }, function() {}); |
| | | // } |
| | | // }); |
| | | // }else{ |
| | | // } |
| | | // GetHouse() |
| | | // GetArea() |
| | | // GetRoadway() |
| | | // GetTemp(); |
| | | |
| | | //获取仓库 |
| | | // function GetHouse(){ |
| | | // sendData(IP + "/Sys/GetWarehouseDic", {}, 'get', function(res) { |
| | | // if (res.code == 0) { //成功 |
| | | // $("#RoadwayNo").empty(); |
| | | // for (var i = 0; i < res.data.length; i++) { |
| | | // $("#HouseNo").append('<option value =' + res.data[i].HouseNo + '>' + res.data[i].HouseNo + '-' + |
| | | // res.data[i].WareHouseName + '</option>'); |
| | | // } |
| | | // // $("select[name='HouseNo']").val(val); |
| | | // form.render('select'); |
| | | // } else { //不成功 |
| | | // Layer.msg(res.msg, { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }, function() {}); |
| | | // } |
| | | // }); |
| | | //获取仓库下拉框信息 |
| | | sendData(IP + "/Sys/GetWarehouseDic", {}, 'get', function(res) { |
| | | console.log(2) |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | //获取浏览器参数 |
| | | function getQueryString(name) { |
| | | var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); |
| | |
| | | }) |
| | | </script> |
| | | </body> |
| | | |
| | | </html> |
| | |
| | | /// </summary> |
| | | [MaxLength(3)] |
| | | public string Temperature { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 区域编号 |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | } |
| | | /// <summary> |
| | | /// 修改储位model |
| | |
| | | [MaxLength(3)] |
| | | public string Temperature { get; set; } |
| | | |
| | | /// <summary> |
| | | /// 区域编号 |
| | | /// </summary> |
| | | public string AreaNo { get; set; } |
| | | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 查询储位model |
| | |
| | | var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo); |
| | | if (sku == null) |
| | | { |
| | | throw new Exception("物料信息中未查询到入库单明细包含的物料信息,不可入库"); |
| | | throw new Exception("物料编码不存在,不可入库"); |
| | | } |
| | | //判断物料是否含有类别信息 |
| | | if (string.IsNullOrWhiteSpace(sku.CategoryNo)) |
| | | { |
| | | throw new Exception($"物料:{sku.SkuNo}未查询到类别信息"); |
| | | throw new Exception($"物料:{sku.SkuNo}未设置类别,不可入库"); |
| | | } |
| | | |
| | | var skuCategory = skuCategoryList.FirstOrDefault(m => m.CategoryNo == sku.CategoryNo); |
| | | if (skuCategory == null) |
| | | { |
| | | throw new Exception($"未在类别信息中查询到物料:{sku.SkuNo}包含的类别"); |
| | | throw new Exception($"{sku.SkuNo}物料类别不存在,不可入库"); |
| | | } |
| | | |
| | | var areaStr = skuCategory.AreaNo.Split(","); |
| | |
| | | try |
| | | { |
| | | string str = ""; |
| | | //判断所属仓库是否为立体库 |
| | | if (model.WareHouseNo != "W01") |
| | | //判断所属仓库是否为null |
| | | if (string.IsNullOrWhiteSpace(model.WareHouseNo)) |
| | | { |
| | | str = "-1:所属仓库不为立体库,请重新选择!"; |
| | | str = "-1:所属仓库不可为空!"; |
| | | return str; |
| | | } |
| | | //获取立体库最大编码 |
| | | //var area = Db.Queryable<SysStorageArea>().Max(a => a.Id)(a => a.IsDel == "0" && a.WareHouseNo == "W01"); |
| | | var area = Db.Queryable<SysStorageArea>().Where(a => a.IsDel == "0" && a.WareHouseNo == "W01").OrderByDescending(a=>a.CreateTime).First(); |
| | | //验证是否存在立体库第一条区域信息 |
| | | var area = Db.Queryable<SysStorageArea>().Where(a => a.IsDel == "0").OrderByDescending(a=>a.CreateTime).First(); |
| | | //验证是否存在区域信息 |
| | | if (area == null) |
| | | { |
| | | model.AreaNo = "A01"; |
| | |
| | | } |
| | | } |
| | | |
| | | public List<SysStorageLocat> GetStorageLocat() |
| | | { |
| | | try |
| | | { |
| | | var data = LocatRst.GetAll().ToList(); |
| | | return data; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Console.WriteLine(e); |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | public bool EditStorageLocat(EditLocateVm model, string url, int userId) |
| | | { |
| | | try |
| | | { |
| | | var bl = LocatRst.EditStorageLocat(model.Id, model.Status, model.Flag, model.Temperature, url, userId); |
| | | var bl = LocatRst.EditStorageLocat(model.Id,model.AreaNo, model.Status, model.Flag, model.Temperature, url, userId); |
| | | |
| | | return bl; |
| | | } |
| | |
| | | { |
| | | try |
| | | { |
| | | var bl = LocatRst.EditStorageLocatList(model.Id, model.Status, model.Flag, model.Temperature, url, userId); |
| | | var bl = LocatRst.EditStorageLocatList(model.Id, model.AreaNo, model.Status, model.Flag, model.Temperature, url, userId); |
| | | |
| | | return bl; |
| | | } |
| | |
| | | /// 编辑储位信息 |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="areaNo">所属区域</param> |
| | | /// <param name="status">状态</param> |
| | | /// <param name="flag">标识</param> |
| | | /// <param name="temperature">存储环境</param> |
| | | /// <param name="userId">操作人</param> |
| | | /// <returns></returns> |
| | | public bool EditStorageLocat(int id, string status, string flag, string temperature,string url, int userId) |
| | | public bool EditStorageLocat(int id, string areaNo,string status, string flag, string temperature,string url, int userId) |
| | | { |
| | | try |
| | | { |
| | |
| | | locate2.Flag = "1"; |
| | | locate2.UpdateUser = userId; |
| | | locate2.UpdateTime = DateTime.Now; |
| | | locate2.AreaNo = areaNo; |
| | | var m = Edit(locate2); |
| | | |
| | | WcsLocat locatEntry = new WcsLocat(); |
| | |
| | | locate.Status = status; |
| | | locate.Flag = flag; |
| | | locate.Temperature = temperature; |
| | | locate.AreaNo = areaNo; |
| | | locate.UpdateUser = userId; |
| | | locate.UpdateTime = DateTime.Now; |
| | | var i = Edit(locate); |
| | |
| | | /// 编辑储位信息 |
| | | /// </summary> |
| | | /// <param name="id"></param> |
| | | /// <param name="areaNo">所属区域</param> |
| | | /// <param name="status">状态</param> |
| | | /// <param name="flag">标识</param> |
| | | /// <param name="userId">操作人</param> |
| | | /// <returns></returns> |
| | | public bool EditStorageLocatList(List<int> id, string status, string flag,string temperature,string url ,int userId) |
| | | public bool EditStorageLocatList(List<int> id,string areaNo, string status, string flag,string temperature,string url ,int userId) |
| | | { |
| | | try |
| | | { |
| | |
| | | locate2.Flag = "1"; |
| | | locate2.UpdateUser = userId; |
| | | locate2.UpdateTime = DateTime.Now; |
| | | locate2.AreaNo = areaNo; |
| | | var m = Edit(locate2); |
| | | |
| | | WcsLocat locatEntry = new WcsLocat(); |
| | |
| | | } |
| | | locate.UpdateUser = userId; |
| | | locate.UpdateTime = DateTime.Now; |
| | | locate.AreaNo = areaNo; |
| | | i = Edit(locate); |
| | | |
| | | WcsLocat locatEntry2 = new WcsLocat(); |
| | |
| | | /// <param name="id"></param> |
| | | /// <returns></returns> |
| | | SysStorageLocat GetStorageLocat(int id); |
| | | |
| | | |
| | | /// <summary> |
| | | /// 查询多条储位信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | List<SysStorageLocat> GetStorageLocat(); |
| | | |
| | | /// <summary> |
| | | /// 编辑储位信息 |
| | | /// </summary> |
| | |
| | | /// <param name="temperature">存储环境</param> |
| | | /// <param name="userId">操作人</param> |
| | | /// <returns></returns> |
| | | bool EditStorageLocat(int id, string status, string flag, string temperature,string url, int userId); |
| | | bool EditStorageLocat(int id,string areaNo, string status, string flag, string temperature,string url, int userId); |
| | | /// <summary> |
| | | /// 编辑储位信息集合 |
| | | /// </summary> |
| | |
| | | /// <param name="flag">标识</param> |
| | | /// <param name="userId">操作人</param> |
| | | /// <returns></returns> |
| | | bool EditStorageLocatList(List<int> id, string status, string flag, string temperature, string url,int userId); |
| | | bool EditStorageLocatList(List<int> id, string areaNo, string status, string flag, string temperature, string url,int userId); |
| | | |
| | | |
| | | |
| | |
| | | var bolls = _locatSvc.EditStorageLocatList(model, _config.WcsHost + _config.EditLocateUrl, 1);//int.Parse(userId) |
| | | if (bolls) |
| | | { |
| | | SysStorageLocat storage = _locatSvc.GetStorageLocat(model.Id[0]); |
| | | string msg = "储位状态 储位号:" + storage.RoadwayNo; |
| | | SysStorageLocat storage; |
| | | //string msg = "储位状态 储位号:" + storage.RoadwayNo; |
| | | if (model.Id.Count > 1) |
| | | { |
| | | var list = _locatSvc.GetStorageLocat(); |
| | | foreach (var item in model.Id) |
| | | { |
| | | storage = _locatSvc.GetStorageLocat(item); |
| | | storage = list.FirstOrDefault(m=>m.Id == item); |
| | | if (storage != null) |
| | | { |
| | | _operation.InsertOperation("仓库设置", "储位管理", storage.LocatNo, "批量编辑", "批量修改储位信息 储位号:" + storage.LocatNo, Convert.ToInt32(userId)); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | storage = _locatSvc.GetStorageLocat(model.Id[0]); |
| | | _operation.InsertOperation("仓库设置", "储位管理", storage.LocatNo, "修改", "修改储位信息 储位号:" + storage.LocatNo, Convert.ToInt32(userId)); |
| | | } |
| | | |