10个文件已修改
233 ■■■■ 已修改文件
HTML/views/SystemSettings/Role.html 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/WareHouseSetting/WareHouseFrom.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/pingKuOut.html 100 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Model/ModelDto/PdaDto/PdaSoDto.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/SysServer/UserInforServer.cs 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/ISysServer/IUserInforServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/BasisController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/PdaSoController.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/SystemSettings/Role.html
@@ -312,6 +312,7 @@
                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);
                });
HTML/views/WareHouseSetting/WareHouseFrom.html
@@ -31,7 +31,7 @@
                </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>
Pda/View/SoSetting/pingKuOut.html
@@ -84,6 +84,15 @@
                            <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">
@@ -115,17 +124,21 @@
                <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>
@@ -173,11 +186,23 @@
            }
            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 () {
@@ -195,14 +220,13 @@
                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]
@@ -264,9 +288,10 @@
                }
                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,
@@ -274,6 +299,50 @@
                        }, 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() {
@@ -299,7 +368,6 @@
                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");
@@ -307,9 +375,11 @@
                    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)
@@ -331,7 +401,7 @@
                    "PalletNo": $("#PalletNo").val()
                }
                synData(IP + "/PdaSo/IsEnableOkPalletNo", param, 'post', function (res) {
                    console.log(res);
                    if (res.code == 0) { //成功 
                        updateBillList();
Wms/Model/ModelDto/PdaDto/PdaSoDto.cs
@@ -24,6 +24,8 @@
        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
    {
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -1198,6 +1198,17 @@
            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,
@@ -1206,22 +1217,41 @@
                    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;
        }
Wms/WMS.BLL/SysServer/UserInforServer.cs
@@ -16,6 +16,7 @@
using WMS.Entity.BllTaskEntity;
using WMS.DAL;
using Utility;
using System.Text.RegularExpressions;
namespace WMS.BLL.SysServer
{
@@ -61,6 +62,7 @@
        /// <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)
@@ -70,6 +72,7 @@
                                        .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()
                                        {
@@ -192,15 +195,39 @@
        /// <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天后提醒用户修改密码
Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs
@@ -114,6 +114,15 @@
        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>
Wms/WMS.IBLL/ISysServer/IUserInforServer.cs
@@ -64,7 +64,7 @@
        /// <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天后提醒用户修改密码
Wms/Wms/Controllers/BasisController.cs
@@ -201,7 +201,7 @@
        {
            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)
@@ -209,7 +209,7 @@
            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("修改密码失败");
        }
Wms/Wms/Controllers/PdaSoController.cs
@@ -175,6 +175,20 @@
        }
        /// <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>