| | |
| | | form.on("submit(LAY-app-contlist-search)", function (data) { |
| | | var RoleNo = data.field.RoleNo; |
| | | var RoleName = data.field.RoleName; |
| | | console.log("roleno:"+RoleNo+" rolename:"+RoleName); |
| | | refreshTable(RoleNo, RoleName); |
| | | }); |
| | | |
| | |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label">仓库类型</label> |
| | | <label class="layui-form-label">存储环境</label> |
| | | <div class="layui-input-block" > |
| | | <select name="Temp" id="Temp" lay-filter="Temp" lay-search> |
| | | <option value=""></option> |
| | |
| | | <img src="/assets/down_arraw.png"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-form-item layout-dropdownlist" style="margin-top: 10px;"> |
| | | <label class="layui-form-label">物料-批次:</label> |
| | | <div class="layui-input-block" id="goodDiv"> |
| | | <select id="goodSelect" lay-filter="goodSelect" lay-search> |
| | | <option value=""></option> |
| | | </select> |
| | | <img src="/assets/down_arraw.png"> |
| | | </div> |
| | | </div> |
| | | <!-- <div id="" class="layui-form-item layout-input"> |
| | | <label class="layui-form-label" lang>库位地址:</label> |
| | | <div class="layui-input-block"> |
| | |
| | | <table id="tableBoxList" class="tbl-box-list" border="" cellspacing="" cellpadding=""> |
| | | <tr> |
| | | <th lang>托盘码</th> |
| | | <th lang>物料号</th> |
| | | <!-- <th lang>物料号</th> |
| | | <th lang>物料名称</th> |
| | | <th lang>批次号</th> |
| | | <th lang>批次号</th> --> |
| | | <th lang>所属仓库</th> |
| | | <th lang>所属区域</th> |
| | | <th lang>库位地址</th> |
| | | |
| | | </tr> |
| | | <tr id="boxCell" style="display: none"> |
| | | <td name="PalletNo">托盘码</td> |
| | | <td name="SkuNo">物料号</td> |
| | | <td name="WareHouseName">所属仓库</td> |
| | | <td name="AreaName">所属区域</td> |
| | | <!-- <td name="SkuNo">物料号</td> |
| | | <td name="SkuName">物料名称</td> |
| | | <td name="LotNo">批次号</td> |
| | | <td name="LotNo">批次号</td> --> |
| | | <td name="LocatNo">库位地址</td> |
| | | <!-- <td name="del"> |
| | | <div id="" class="tbl-btn-del" lang> |
| | |
| | | } |
| | | |
| | | form.on('select(getbar)', function (data) { |
| | | console.log(); |
| | | //console.log(); |
| | | if (data.value == "") { |
| | | return; |
| | | } |
| | | GetBoxInfo(); |
| | | }); |
| | | |
| | | form.on('select(goodSelect)', function (data) { |
| | | console.log($("#goodSelect").val()); |
| | | if (data.value == "") { |
| | | return; |
| | | } |
| | | var skuno = $("#goodSelect").val().substring(0,6); |
| | | var lotNo = $("#goodSelect").val().substring(12); |
| | | console.log("skuno:"+skuno); |
| | | console.log("lotNo:" + lotNo); |
| | | loadlocatinfo(skuno, lotNo); |
| | | }); |
| | | |
| | | $("#selectDiv").click(function () { |
| | |
| | | var val = input.val() |
| | | $("#bar").empty() |
| | | $("#bar").append('<option value =>' + '</option>'); |
| | | form.render('select'); |
| | | var PalletNo = $("#PalletNo").val(); |
| | | if(PalletNo.length != 8){ //下拉框获取平库出库单 |
| | | var param = { |
| | | Type: "1", |
| | | }; |
| | | synData(IP + "/PdaSo/GetRunNoticeList", param,'post', function (res) { |
| | | console.log(res); |
| | | //console.log(res); |
| | | if (res.code == 0) { //成功 |
| | | for (var i = 0; i < res.data.length; i++) { |
| | | $("#bar").append('<option value =' + res.data[i] + '>' + res.data[i] |
| | |
| | | } |
| | | synData(IP + "/PdaSo/GetPingKuInfoByPallet", param2, 'get', function (res) { |
| | | if (res.code == 0) { |
| | | tableData = deepCopy(res.data) |
| | | |
| | | refreshTable(tableData) |
| | | updateGoodList(res.data);//物料批次信息 |
| | | var skuno = res.data[0].SkuNo; |
| | | var lotNo = res.data[0].LotNo; |
| | | loadlocatinfo(skuno, lotNo);//获取托盘位置信息 |
| | | } else { |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | |
| | | }, function () { }); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | //获取托盘位置信息并更新表单 |
| | | function loadlocatinfo(skuno, lotNo){ |
| | | let param3 = { |
| | | "SoNo": $("#bar").val(), |
| | | "SkuNo": skuno, |
| | | "LotNo": lotNo |
| | | } |
| | | synData(IP + "/PdaSo/GetPingKuLocationInfo", param3, 'get', function (res) {//获取托盘明细 |
| | | if (res.code == 0) { |
| | | tableData = deepCopy(res.data) |
| | | refreshTable(tableData) |
| | | } else { |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }, function () { }); |
| | | } |
| | | }) |
| | | } |
| | | |
| | | /* 物料及批次下拉框 */ |
| | | function updateGoodList(data) { |
| | | var input = $('select[id="goodSelect"]').next().find('.layui-select-title input') |
| | | var val = input.val() |
| | | $("#goodSelect").empty() |
| | | $("#goodSelect").append('<option value =>' + '</option>'); |
| | | |
| | | for (var i = 0; i < data.length; i++) { |
| | | |
| | | if (data[i].LotNo == '' || data[i].LotNo == null) { |
| | | $("#goodSelect").append('<option value =' + data[i].SkuNo + ' selected>' + data[i] |
| | | .SkuName + |
| | | '</option>'); |
| | | } else { |
| | | $("#goodSelect").append('<option value =' + data[i].SkuNo + data[i].SkuName + "-" + |
| | | data[i].LotNo + ' selected>' + data[i] |
| | | .SkuNo + data[i].SkuName + "-" + data[i].LotNo + |
| | | '</option>'); |
| | | } |
| | | } |
| | | form.render('select'); |
| | | |
| | | } |
| | | |
| | | function clearTable() { |
| | |
| | | var arrTrs = new Array() |
| | | let idx = 0 |
| | | for (var i in list) { |
| | | console.log("list[i].LocatN:"+list[i].LocatNo); |
| | | // list[i].BoxCode |
| | | var tr = $("#boxCell").eq(0).clone(); |
| | | tr.appendTo("#tableBoxList"); |
| | |
| | | idx++; |
| | | tr.attr('index', idx) |
| | | tr.find("td[name='PalletNo']").html(list[i].PalletNo); |
| | | tr.find("td[name='SkuNo']").html(list[i].SkuNo); |
| | | tr.find("td[name='SkuName']").html(list[i].SkuName); |
| | | tr.find("td[name='LotNo']").html(list[i].LotNo); |
| | | //tr.find("td[name='SkuNo']").html(list[i].SkuNo); |
| | | //tr.find("td[name='SkuName']").html(list[i].SkuName); |
| | | //tr.find("td[name='LotNo']").html(list[i].LotNo); |
| | | tr.find("td[name='WareHouseName']").html(list[i].WareHouseName); |
| | | tr.find("td[name='AreaName']").html(list[i].AreaName); |
| | | tr.find("td[name='LocatNo']").html(list[i].LocatNo); |
| | | // var code = list[i].BoxCode |
| | | // //console.log("code is "+code) |
| | |
| | | "PalletNo": $("#PalletNo").val() |
| | | } |
| | | synData(IP + "/PdaSo/IsEnableOkPalletNo", param, 'post', function (res) { |
| | | console.log(res); |
| | | |
| | | |
| | | if (res.code == 0) { //成功 |
| | | updateBillList(); |
| | |
| | | public string LotNo { get; set; } // 批次 |
| | | public string LocatNo { get; set; } |
| | | public decimal? PickedQty { get; set; } // 箱内已拣数量 |
| | | public string WareHouseName { get; set; } |
| | | public string AreaName { get; set; } |
| | | } |
| | | public class DetailIdSkuLotNo |
| | | { |
| | |
| | | var info = Db.Queryable<BllExportAllot>() |
| | | .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo) |
| | | .Where(a=>a.IsDel == "0" && (a.Status == "0"||a.Status =="1") && a.SONo == soNo) |
| | | .GroupBy((a,b) => new { a.SkuNo, a.SkuName, a.LotNo}).Select((a,b) => new BoxInfo() |
| | | { |
| | | SkuNo = a.SkuNo, |
| | | SkuName = a.SkuName, |
| | | LotNo = a.LotNo |
| | | }).ToListAsync(); |
| | | var data = await info; |
| | | |
| | | /*v var info = Db.Queryable<BllExportAllot>() |
| | | .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo) |
| | | .Where(a=>a.IsDel == "0" && (a.Status == "0"||a.Status =="1") && a.SONo == soNo) |
| | | .GroupBy((a,b) => new { a.SkuNo, a.SkuName, a.LotNo, a.PalletNo,b.LocatNo }).Select((a,b) => new BoxInfo() |
| | | { |
| | | PalletNo = a.PalletNo, |
| | |
| | | LotNo = a.LotNo, |
| | | LocatNo = b.LocatNo |
| | | }).ToListAsync(); |
| | | var data = await info;*/ |
| | | |
| | | return data; |
| | | } |
| | | |
| | | //获取平库单据中托盘位置信息 |
| | | public async Task<List<BoxInfo>> GetPingKuLocationInfo(string soNo,string skuno,string lotno) |
| | | { |
| | | |
| | | var info = Db.Queryable<BllExportAllot>() |
| | | .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo) |
| | | .LeftJoin<SysWareHouse>((a,b,c)=>b.WareHouseNo == c.WareHouseNo) |
| | | .LeftJoin<SysStorageArea>((a,b,c,d)=>b.AreaNo == d.AreaNo) |
| | | .Where(a => a.IsDel == "0" && (a.Status == "0" || a.Status == "1") && a.SONo == soNo && a.SkuNo == skuno && a.LotNo == lotno) |
| | | .GroupBy((a, b,c,d) => new { a.PalletNo, b.LocatNo,c.WareHouseName,d.AreaName }).Select((a, b,c,d) => new BoxInfo() |
| | | { |
| | | PalletNo = a.PalletNo, |
| | | LocatNo = b.LocatNo, |
| | | WareHouseName = c.WareHouseName, |
| | | AreaName = d.AreaName |
| | | }).ToListAsync(); |
| | | var data = await info; |
| | | |
| | | /*var a = info.First().LocatNo; |
| | | |
| | | if (await info.CountAsync() == 0) |
| | | { |
| | | throw Oops.Bah("未查询到托盘分配下发的信息"); |
| | | } |
| | | |
| | | var data = await info.GroupBy(a => new { a.SkuNo, a.SkuName, a.LotNo,a.PalletNo }).Select(a => new BoxInfo() |
| | | { |
| | | PalletNo = a.PalletNo, |
| | | SkuNo = a.SkuNo, |
| | | SkuName = a.SkuName, |
| | | LotNo = a.LotNo |
| | | }).ToListAsync();*/ |
| | | /*v var info = Db.Queryable<BllExportAllot>() |
| | | .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo) |
| | | .Where(a=>a.IsDel == "0" && (a.Status == "0"||a.Status =="1") && a.SONo == soNo) |
| | | .GroupBy((a,b) => new { a.SkuNo, a.SkuName, a.LotNo, a.PalletNo,b.LocatNo }).Select((a,b) => new BoxInfo() |
| | | { |
| | | PalletNo = a.PalletNo, |
| | | SkuNo = a.SkuNo, |
| | | SkuName = a.SkuName, |
| | | LotNo = a.LotNo, |
| | | LocatNo = b.LocatNo |
| | | }).ToListAsync(); |
| | | var data = await info;*/ |
| | | |
| | | return data; |
| | | } |
| | |
| | | using WMS.Entity.BllTaskEntity; |
| | | using WMS.DAL; |
| | | using Utility; |
| | | using System.Text.RegularExpressions; |
| | | |
| | | namespace WMS.BLL.SysServer |
| | | { |
| | |
| | | /// <returns></returns> |
| | | public async Task<List<UserInfoDto>> GetUserRoleList(string UserName, string DepartmentNo, string RoleNo, string Status) |
| | | { |
| | | var modUser = await Db.Queryable<SysUserInfor>().FirstAsync(s => s.Id == _userManager.UserId); |
| | | return await Db.Queryable<SysUserInfor>() |
| | | .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) |
| | | .LeftJoin<SysDepartment>((a, b, c) => a.DepartmentNo == c.DepartmentNo) |
| | |
| | | .WhereIF(!string.IsNullOrEmpty(DepartmentNo), a => a.DepartmentNo == DepartmentNo) |
| | | .WhereIF(!string.IsNullOrEmpty(RoleNo), a => a.RoleNo == RoleNo) |
| | | .WhereIF(!string.IsNullOrEmpty(Status), a => a.Status == Status) |
| | | .WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) |
| | | .Where(a => a.IsDel == "0") |
| | | .Select<UserInfoDto>((a, b, c, d) => new UserInfoDto() |
| | | { |
| | |
| | | /// <param name="userId">用户id</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception">捕获异常</exception> |
| | | public async Task<int> UptUserPassWord(string pwdNew, int userId) |
| | | public async Task<int> UptUserPassWord(string pwdNew,string pwdNewTwo, int userId) |
| | | { |
| | | var funSet = Db.Queryable<SysFunSetting>().Where(m => m.IsDel == "0" && m.FunSetName == "密码规则" && m.IsEnable == "NO").ToList().FirstOrDefault(); |
| | | if (funSet != null) |
| | | { |
| | | bool t = false; |
| | | switch (funSet.FunSetNo) |
| | | { |
| | | case "Fun052": //数字,字母,符号 |
| | | t = Regex.IsMatch(pwdNewTwo, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)(?=.*[^0-9A-Za-z].*)).{3,}"); |
| | | break; |
| | | case "Fun053": //字母,数字 |
| | | t = Regex.IsMatch(pwdNewTwo, @"^(?:(?=.*[0-9].*)(?=.*[A-Za-z].*)).{2,}"); |
| | | break; |
| | | case "Fun051": //数字,字母,符号,长度 |
| | | t = Regex.IsMatch(pwdNewTwo, @"^(?=.*[0-9])(?=.*[a-zA-Z])(?=([\x21-\x7e]+)[^a-zA-Z0-9]).{8,30}"); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | if (!t) |
| | | { |
| | | throw Oops.Bah("输入密码不符合密码规则"); |
| | | } |
| | | } |
| | | return await Db.Updateable<SysUserInfor>() |
| | | .Where(s => s.Id == userId) |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .SetColumns(s=>s.PassWord == pwdNew) |
| | | .SetColumns(s => s.SetPasswordTime == DateTime.Now) |
| | | .ExecuteCommandAsync(); |
| | | .Where(s => s.Id == userId) |
| | | .SetColumns(s => s.UpdateTime == DateTime.Now) |
| | | .SetColumns(s => s.UpdateUser == _userManager.UserId) |
| | | .SetColumns(s => s.PassWord == pwdNew) |
| | | .SetColumns(s => s.SetPasswordTime == DateTime.Now) |
| | | .ExecuteCommandAsync(); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// x天后提醒用户修改密码 |
| | |
| | | Task<List<BoxInfo>> GetPingKuInfoByPallet(string soNo, string palletNo); |
| | | |
| | | /// <summary> |
| | | /// 获取平库托盘位置信息 |
| | | /// </summary> |
| | | /// <param name="soNo">出库单号</param> |
| | | /// <param name="SkuNo">物料编码</param> |
| | | /// <param name="LotNo">批次</param> |
| | | /// <returns></returns> |
| | | Task<List<BoxInfo>> GetPingKuLocationInfo(string soNo,string SkuNo,string LotNo); |
| | | |
| | | /// <summary> |
| | | /// 平库出库完成 |
| | | /// </summary> |
| | | /// <param name="soNo">出库单号</param> |
| | |
| | | /// <param name="pwdNew">新密码</param> |
| | | /// <param name="userId">用户id</param> |
| | | /// <returns></returns> |
| | | Task<int> UptUserPassWord(string pwdNew, int userId); |
| | | Task<int> UptUserPassWord(string pwdNew,string pwdNewTwo, int userId); |
| | | |
| | | /// <summary> |
| | | /// x天后提醒用户修改密码 |
| | |
| | | { |
| | | pwdOld = Md5Tools.CalcMd5(pwdOld); |
| | | pwdNew = Md5Tools.CalcMd5(pwdNew); |
| | | pwdNewTwo = Md5Tools.CalcMd5(pwdNewTwo); |
| | | //pwdNewTwo = Md5Tools.CalcMd5(pwdNewTwo); |
| | | //获取当前操作用户id |
| | | SysUserInfor user = await _userInforServer.GetUserInfoById(_userManager.UserId); |
| | | if (user == null) |
| | |
| | | if (user.PassWord != pwdOld) |
| | | throw Oops.Bah("原密码不正确"); |
| | | //修改密码 |
| | | int i = await _userInforServer.UptUserPassWord(pwdNew, _userManager.UserId); |
| | | int i = await _userInforServer.UptUserPassWord(pwdNew, pwdNewTwo, _userManager.UserId); |
| | | if (i <= 0) |
| | | throw Oops.Bah("修改密码失败"); |
| | | } |
| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取平库托盘位置信息 |
| | | /// </summary> |
| | | /// <param name="soNo">出库单号</param> |
| | | /// <param name="SkuNo">物料编码</param> |
| | | /// <param name="LotNo">批次</param> |
| | | /// <returns></returns> |
| | | [HttpGet] |
| | | public async Task<List<BoxInfo>> GetPingKuLocationInfo(string soNo,string SkuNo,string LotNo) |
| | | { |
| | | return await _pdaSoSvc.GetPingKuLocationInfo(soNo, SkuNo, LotNo); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 平库出库 |
| | | /// </summary> |
| | | /// <param name="soNo">出库单号</param> |