From e6d5b88ce459fe8414aa7a96678820cc0246326c Mon Sep 17 00:00:00 2001 From: Administrator <Administrator@DESKTOP-5BIMHQ3> Date: 星期五, 01 三月 2024 16:19:30 +0800 Subject: [PATCH] Merge branch 'wxw' --- Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs | 10 + HTML/views/SOSetting/ExportNoticeAddFrom.html | 13 + Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 72 +++++++++++ Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs | 2 Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs | 6 + Wms/Wms/Controllers/BllSoController.cs | 45 +++++-- HTML/views/SOSetting/ExportNotice.html | 152 +++++++++++++++++++++---- Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs | 1 8 files changed, 256 insertions(+), 45 deletions(-) diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html index 8d5e6d6..c463ff8 100644 --- a/HTML/views/SOSetting/ExportNotice.html +++ b/HTML/views/SOSetting/ExportNotice.html @@ -57,11 +57,20 @@ <div class="layui-input-inline"> <select name="Type" id="Type" lay-filter="Type" lay-search> <option value=""></option> + <!-- 24 --> + <option value="0">鎴愬搧鍑哄簱</option> + <option value="1">棰嗘枡鍑哄簱</option> + <option value="2">鎶芥鍑哄簱</option> + <option value="3">鐗╂枡鍙栨牱鍑哄簱</option> + <option value="4">涓嶅悎鏍煎搧鍑哄簱</option> + <option value="5">涓棿鍝佸嚭搴�</option> + <option value="6">浠e偍鍑哄簱</option> + <option value="7">鍏朵粬鍑哄簱</option> <!-- 09 --> - <option value="0">鏍囧噯閿�鍞嚭搴�</option> + <!-- <option value="0">鏍囧噯閿�鍞嚭搴�</option> <option value="1">闈炴爣閿�鍞嚭搴�</option> <option value="2">鏍囧噯璋冩嫧鍑哄簱</option> - <option value="3">闈炴爣璋冩嫧鍑哄簱</option> + <option value="3">闈炴爣璋冩嫧鍑哄簱</option> --> <!-- 08 --> <!-- <option value="0">鎴愬搧鍑哄簱</option> <option value="1">鍘熻緟鏂欏嚭搴�</option> @@ -81,6 +90,7 @@ <option value="3">姝e湪鎵ц</option> <option value="4">鎵ц瀹屾瘯</option> <option value="5">璁㈠崟鍏抽棴</option> + <option value="6">宸插鏍�</option> </select> </div> </div> @@ -118,26 +128,49 @@ <option value="1">鏄�</option> </select> </div> - </div> - <div class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;"> - <label class="layui-form-label">鍑哄簱鍙�</label> - <div class="layui-input-inline"> - <select name="PickingArea" id="PickingArea" lay-search> - <option value=""></option> - <option value="1">1</option> - <option value="2">2</option> - <option value="3">3</option> - <option value="4">4</option> - </select> - </div> - </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> - + <!-- 纭鍑哄簱鍙e脊绐� --> + <div class="layui-inline" id="divPickingArea" style="display: none; padding-top: 10px;"> + <div class="layui-inline"> + <label class="layui-form-label">鎷嗗灈鏂瑰紡</label> + <div class="layui-input-inline" style="width: 220px;"> + <select name="UnstackWay" id="UnstackWay" lay-filter="UnstackWay" lay-search> + <option value="0" selected>鏈哄櫒浜烘媶鍨�</option> + <option value="1">浜哄伐鎷嗗灈</option> + </select> + </div> + </div> + <div class="layui-inline DivLoadingArea" style="margin-top: 10px;"> + <label class="layui-form-label">瑁呰溅鍙�</label> + <div class="layui-input-inline" style="width: 220px;"> + <select name="LoadingArea" id="LoadingArea" lay-search> + <option value=""></option> + <option value="1">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + </select> + </div> + </div> + <div class="layui-inline DivPickingArea2" style="margin-top: 10px;"> + <label class="layui-form-label">鍑哄簱鍙�</label> + <div class="layui-input-inline" style="width: 220px;"> + <select name="PickingArea" id="PickingArea" lay-search> + <option value=""></option> + <option value="1">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + </select> + </div> + </div> + </div> <!-- 缁存姢澶囨敞寮规 --> <div class="layui-inline" id="divEditDemo" style="display: none; padding-top: 10px;"> <label class="layui-form-label">澶囨敞</label> @@ -164,13 +197,21 @@ {{# function GetBtn3(d){ switch (d.Type) { case "0": - return "鏍囧噯閿�鍞嚭搴�"; + return "鎴愬搧鍑哄簱"; case "1": - return "闈炴爣鍑嗛攢鍞嚭搴�"; + return "棰嗘枡鍑哄簱"; case "2": - return "鏍囧噯璋冩嫧鍑哄簱"; + return "鎶芥鍑哄簱"; case "3": - return "闈炴爣鍑嗚皟鎷ㄥ嚭搴�"; + return "鐗╂枡鍙栨牱鍑哄簱"; + case "4": + return "涓嶅悎鏍煎搧鍑哄簱"; + case "5": + return "涓棿鍝佸嚭搴�"; + case "6": + return "浠e偍鍑哄簱"; + case "7": + return "鍏朵粬鍑哄簱"; default: return ""; } @@ -193,6 +234,8 @@ case "4": return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">鎵ц瀹屾瘯</button>`; case "5": + return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">璁㈠崟鍏抽棴</button>`; + case "6": return `<button class="layui-btn layui-btn-radius layui-btn-normal layui-btn-xs">涓婁紶瀹屾瘯</button>`; default: return ""; @@ -231,6 +274,14 @@ } }} {{ GetBtn7(d) }} + </script> + + <script type="text/html" id="templetCheckTime"> + {{# function GetBtn8(d){ + return formatDate(d.CheckTime); + } + }} + {{ GetBtn8(d) }} </script> <!-- #endregion --> </div> @@ -309,10 +360,13 @@ html += `<a class="layui-btn layui-btn-normal layui-btn-xs guanClass" lay-event="finish"> <i class="layui-icon layui-icon-ok"></i>鍏冲崟 </a>`; + } + if( d.Status == '5'){ + html += `<a class="layui-btn layui-btn-normal layui-btn-xs shangClass" lay-event="xml"> + <i class="layui-icon layui-icon-ok"></i>澶嶆牳 + </a>`; } - html += `<a class="layui-btn layui-btn-normal layui-btn-xs shangClass" lay-event="xml"> - <i class="layui-icon layui-icon-ok"></i>XML - </a>`; + html += `<a class="layui-btn layui-btn-normal layui-btn-xs editDemoClass" lay-event="editDemo"> <i class="layui-icon layui-icon-edit"></i>澶囨敞</a>`; return html; @@ -428,6 +482,8 @@ {field: 'CreateTime',title: '鍒涘缓鏃堕棿',align: 'center',templet: '#templetCreateTime'}, {field: 'UpdateUserName',title: '淇敼浜�',align: 'center'}, {field: 'UpdateTime',title: '淇敼鏃堕棿',align: 'center',templet: '#templetUpdateTime'}, + {field: 'CheckUserName',title: '澶嶆牳浜�',align: 'center',width: 110}, + {field: 'CheckTime',title: '澶嶆牳鏃堕棿',align: 'center',templet: '#templetCheckTime'}, {field: 'caozuo',title: '鎿嶄綔',fixed: 'right',align: 'center',width: 200,toolbar: '#table-content-list', "disabled": true} ]]; var TotalColsSysArr=encodeURIComponent(encodeURIComponent(JSON.stringify(TotalColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜 @@ -950,6 +1006,7 @@ $(".qufenClass").hide(); //鍙栨秷鍒嗛厤 $(".outClass").hide(); //鍑哄簱 $(".editDemoClass").hide();//澶囨敞 + $(".checkClass").hide(); //澶嶆牳 }); sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function(res) { if (res.code == 0) { //鎴愬姛 @@ -1006,6 +1063,11 @@ $(".editDemoClass").show(); }); } + if (res.data[k].MenuName == "澶嶆牳鍑哄簱鍗�") { + $(function() { + $(".checkClass").show(); + }); + } } } } else { //涓嶆垚鍔� @@ -1039,6 +1101,7 @@ }); } }); + var isNeedUnpack='0'//鏄惁闇�瑕佹媶绠憋紝0锛氬惁 1锛氭槸 //鐩戝惉鏁版嵁鎿嶄綔 table.on('tool(LAY-app-content-list)', function(obj) { var data = obj.data; @@ -1156,13 +1219,37 @@ maxmin: true, area: ['1200px', '90%'], }); - }else if(obj.event === 'outKu'){ + }else if(obj.event === 'outKu'){ + var param = { + soNo: SoNo + }; + sendData(IP + "/BllSo/IsNeedUnpack", param, 'get', function(res) { + if (res.code == 0) { //鎴愬姛 + if(res.data=="1"){ + isNeedUnpack='1' + $('.DivPickingArea2').attr("style", "display:block") + }else{ + isNeedUnpack='0' + $('.DivPickingArea2').attr("style", "display:none") + } + if($('#UnstackWay').val()=='1'){ + $('.DivPickingArea2').attr("style", "display:block") + } + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() { + return; + }); + } + }); layer.open({ type: 1, title: '纭鍑哄簱鍙�', content: $('#divPickingArea'), maxmin: true, - area: ['300px','265px'], + area: ['350px','285px'], btn: ['纭畾', '鍙栨秷'], yes: function(index, layero) { var pa = $('#PickingArea').val(); @@ -1376,6 +1463,21 @@ downloadA.click(); document.body.removeChild(downloadA); } + //鎷嗗灈鏂瑰紡鍒囨崲 + form.on('select(UnstackWay)',function(data){ + var value = data.value; + if(value==0){ + $('.DivLoadingArea').attr("style", "display:block") + if(isNeedUnpack=='0'){ + $('.DivPickingArea2').attr("style", "display:none") + }else{ + $('.DivPickingArea2').attr("style", "display:block") + } + }else{ + $('.DivLoadingArea').attr("style", "display:none") + $('.DivPickingArea2').attr("style", "display:block") + } + }); //#region 鑷畾涔夎〃澶� //鑷畾涔夎〃澶� diff --git a/HTML/views/SOSetting/ExportNoticeAddFrom.html b/HTML/views/SOSetting/ExportNoticeAddFrom.html index d056de4..0cd8b39 100644 --- a/HTML/views/SOSetting/ExportNoticeAddFrom.html +++ b/HTML/views/SOSetting/ExportNoticeAddFrom.html @@ -33,11 +33,20 @@ <div class="layui-input-inline"> <select name="Type" id="Type" lay-filter="Type" lay-verify="required" lay-search> <option value=""></option> + <!-- 24 --> + <option value="0">鎴愬搧鍑哄簱</option> + <option value="1">棰嗘枡鍑哄簱</option> + <option value="2">鎶芥鍑哄簱</option> + <option value="3">鐗╂枡鍙栨牱鍑哄簱</option> + <option value="4">涓嶅悎鏍煎搧鍑哄簱</option> + <option value="5">涓棿鍝佸嚭搴�</option> + <option value="6">浠e偍鍑哄簱</option> + <option value="7">鍏朵粬鍑哄簱</option> <!-- 09 --> - <option value="0">鏍囧噯閿�鍞嚭搴�</option> + <!-- <option value="0">鏍囧噯閿�鍞嚭搴�</option> <option value="1">闈炴爣閿�鍞嚭搴�</option> <option value="2">鏍囧噯璋冩嫧鍑哄簱</option> - <option value="3">闈炴爣璋冩嫧鍑哄簱</option> + <option value="3">闈炴爣璋冩嫧鍑哄簱</option> --> <!-- 08 --> <!-- <option value="0">鎴愬搧鍑哄簱</option> <option value="1">鍘熻緟鏂欏嚭搴�</option> diff --git a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs index d694a54..59b18cf 100644 --- a/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs +++ b/Wms/Model/ModelDto/BllSoDto/ExportNoticeDto.cs @@ -103,6 +103,16 @@ /// 鏇存柊浜� /// </summary> public string UpdateUserName { get; set; } + + /// <summary> + /// 澶嶆牳浜� + /// </summary> + public string CheckUserName { get; set; } + + /// <summary> + /// 澶嶆牳鏃堕棿 + /// </summary> + public DateTime? CheckTime { get; set; } } public class ExStockInfoDto diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index e863a79..4e36e9f 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -278,7 +278,8 @@ .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id) .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id) .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id) - .Select((a, b, c, d) => new ExportNoticeDto() + .LeftJoin<SysUserInfor>((a, b, c, d,e) => a.CheckUser == e.Id) + .Select((a, b, c, d,e) => new ExportNoticeDto() { Id = a.Id, SONo = a.SONo, @@ -300,7 +301,10 @@ CreateUserName = c.RealName, UpdateUserName = c.RealName, CreateTime = a.CreateTime, - UpdateTime = a.UpdateTime + UpdateTime = a.UpdateTime, + + CheckUserName=e.RealName, + CheckTime=a.CheckTime }) .OrderByDescending(a => a.CreateTime) .ToOffsetPage(page, limit, ref total); @@ -1043,6 +1047,10 @@ { throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚鎴栬鍗曞叧闂�/宸蹭笂浼�"); } + if (userId == notice.UpdateUser) + { + throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�"); + } //鍑哄簱鍗曟槑缁� var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).Select(m => m.BoxNo3).ToList(); Db.BeginTran();//寮�鍚簨鍔� @@ -1057,8 +1065,13 @@ //} var dom = HttpHelper.EncodeParsToFuMa(comDetail, "ceshi", "ExInfoXml"); + + notice.Status = "6";//鐘舵�侊細宸蹭笂浼� + notice.CheckTime = DateTime.Now;//澶嶆牳鏃堕棿 + notice.CheckUser = userId;//澶嶆牳浜� + Db.Updateable(notice).ExecuteCommand(); ////娣诲姞鎿嶄綔鏃ュ織璁板綍 - //var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "鍏冲崟", $"鍏抽棴浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId); + var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId); Db.CommitTran(); return dom; @@ -2711,5 +2724,58 @@ #endregion + /// <summary> + /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠� + /// </summary> + /// <param name="soNo"></param> + /// <returns></returns> + public string IsNeedUnpack(string soNo) + { + string result = "0";//鏄惁闇�瑕佹媶绠憋紝0锛氬惁 1锛氭槸 + if (string.IsNullOrEmpty(soNo)) + { + throw new Exception("鏈壘鍒板搴斿嚭搴撳崟锛�"); + } + try + { + var notice = Db.Queryable<BllExportNotice>().First(w => w.IsDel == "0" && w.SONo == soNo); + if (notice == null) + { + throw new Exception("鏈壘鍒板搴斿嚭搴撳崟锛�"); + } + //鐗╂枡缂栫爜琛� + var skuList = Db.Queryable<SysMaterials>().Where(w => w.IsDel == "0"); + //鍖呰琛� + var packagList= Db.Queryable<SysPackag>().Where(w => w.IsDel == "0"); + //鍑哄簱鍒嗛厤淇℃伅 + var allotList = Db.Queryable<BllExportAllot>().Where(w => w.IsDel == "0" && w.SONo == soNo).ToList(); + foreach (var item in allotList) + { + var skuInfo = skuList.First(w => w.SkuNo == item.SkuNo); + if (skuInfo == null) + { + throw new Exception("鐗╂枡淇℃伅涓嶅瓨鍦紒"); + } + var packagInfo = packagList.First(w => w.PackagNo == skuInfo.PackagNo); + if (packagInfo == null) + { + throw new Exception("鍖呰淇℃伅涓嶅瓨鍦紒"); + } + if (packagInfo.L2Name == "绠�") + { + if (item.Qty % (decimal)packagInfo.L2Num != 0)//鑳芥暣闄よ鏄庝笉鐢ㄦ媶绠憋紝涓嶈兘鏁撮櫎璇存槑闇�瑕佹媶绠� + { + result = "1";//闇�瑕佹媶绠� + break; + } + } + } + return result; + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } } } diff --git a/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs b/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs index 28c8c7f..0fe0ca2 100644 --- a/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs +++ b/Wms/WMS.Entity/BllSoEntity/BLLExportNotice.cs @@ -130,6 +130,5 @@ /// 澶嶆牳鏃堕棿 /// </summary> public DateTime? CheckTime { get; set; } - } } diff --git a/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs b/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs index 6b48766..848b4da 100644 --- a/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs +++ b/Wms/WMS.Entity/BllSoEntity/BllExportAllot.cs @@ -153,8 +153,6 @@ /// </summary> public string OutMode { get; set; } - - [Navigate(NavigateType.OneToOne, nameof(LogisticsId))] public SysLogisticsInfo LogisticsInfoInfo { get; set; } diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs index 548d553..d72b933 100644 --- a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs +++ b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs @@ -202,5 +202,11 @@ /// <param name="userId"></param> void AddHandOutAllot(AddHandOutVm model, int userId); + /// <summary> + /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠� + /// </summary> + /// <param name="soNo"></param> + /// <returns></returns> + string IsNeedUnpack(string soNo); } } diff --git a/Wms/Wms/Controllers/BllSoController.cs b/Wms/Wms/Controllers/BllSoController.cs index 56f7128..cfe804a 100644 --- a/Wms/Wms/Controllers/BllSoController.cs +++ b/Wms/Wms/Controllers/BllSoController.cs @@ -213,18 +213,18 @@ { try { - ////鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D - //var claimsIdentity = this.User.Identity as ClaimsIdentity; - //if (claimsIdentity == null) - //{ - // return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); - //} - //var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; - //if (string.IsNullOrWhiteSpace(userId)) - //{ - // return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); - //} - var bolls = _exNoticeSvc.AddExXmlStr(model.Id, 1);//int.Parse(userId) + //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D + var claimsIdentity = this.User.Identity as ClaimsIdentity; + if (claimsIdentity == null) + { + return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); + } + var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; + if (string.IsNullOrWhiteSpace(userId)) + { + return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); + } + var bolls = _exNoticeSvc.AddExXmlStr(model.Id, int.Parse(userId)); return Ok(new { code = 0, count = 0, msg = "鐢熸垚鍑哄簱鍗昘ml", data= bolls.InnerXml.ToString() }); @@ -767,5 +767,26 @@ } #endregion + + /// <summary> + /// 鍒ゆ柇鍑哄簱鏄惁闇�瑕佹媶绠� + /// </summary> + /// <param name="soNo"></param> + /// <returns></returns> + [HttpGet] + public IActionResult IsNeedUnpack(string soNo) + { + try + { + string result = _exNoticeSvc.IsNeedUnpack(soNo); + + return Ok(new { code = 0, data = result, msg = "鎴愬姛" }); + + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } } } -- Gitblit v1.8.0