From 983cb777c4bfea428b9802b21b2eb9787f988946 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期三, 05 三月 2025 10:05:54 +0800 Subject: [PATCH] 修改入库流程 --- Pda/View/AsnSetting/requestRuku.html | 344 +++++++++++++++++ Pda/View/AsnSetting/productEnterQuantity.html | 2 Wms/WMS.Entity/SysEntity/SysMaterials.cs | 2 Wms/Wms/Controllers/PdaAsnController.cs | 65 +- Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs | 14 Wms/Model/InterFaceModel/HttpModel.cs | 18 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 117 ++--- Wms/WMS.BLL/Logic/AllotLocation.cs | 38 - Wms/Wms/Controllers/DownApiController.cs | 41 ++ Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 520 +++++++++++++++++++++++++ 10 files changed, 1,022 insertions(+), 139 deletions(-) diff --git a/Pda/View/AsnSetting/productEnterQuantity.html b/Pda/View/AsnSetting/productEnterQuantity.html index b470796..80d2135 100644 --- a/Pda/View/AsnSetting/productEnterQuantity.html +++ b/Pda/View/AsnSetting/productEnterQuantity.html @@ -265,7 +265,7 @@ </div> <!-- 鏃犵爜 --> <div id="content2"> - <div id="zongDiv" class="layout-bill-info" style="height: 255px;"> + <div id="zongDiv2" class="layout-bill-info" style="height: 255px;"> <form class="layui-form" id="form2" action=""> <div id="" class="layui-form-item layout-dropdownlist"> <label class="layui-form-label" lang>鍏ュ簱鍗曪細</label> diff --git a/Pda/View/AsnSetting/requestRuku.html b/Pda/View/AsnSetting/requestRuku.html new file mode 100644 index 0000000..56c5a85 --- /dev/null +++ b/Pda/View/AsnSetting/requestRuku.html @@ -0,0 +1,344 @@ +<!DOCTYPE html> +<html> + +<head> + <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" /> + <meta charset="UTF-8" /> + <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=1, user-scalable=no" /> --> + <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665" /> --> + <meta http-equiv="X-UA-Compatible" content="ie=edge" /> + <title>Boxline PDA</title> + + <link rel="stylesheet" href="/layui/css/layui.css" /> + <link rel="stylesheet" href="/css/style.css" /> + <script src="/js/adaptive.js"></script> + <link rel="stylesheet" href="/css/my.css" /> + <style type="text/css"> + .layout-bill-info { + height: auto; + /* background-color: #009E94; */ + } + + .btn-ok-blue { + border: none; + color: #FFFFFF; + background-color: #0a93e3; + width: 48%; + height: 36px; + border-radius: 5px; + } + + .btn-ok-red { + border: none; + color: #FFFFFF; + background-color: #9f1707; + width: 48%; + height: 36px; + border-radius: 5px; + } + + .btn-ok-blue:active { + opacity: 0.8; + } + + .btn-ok-red:active { + opacity: 0.8; + } + + .foot-container { + text-align: center; + /* background-color: #007DDB; */ + } + .layout-tbl-input .layui-form-label { + width: 21%; + } + .layout-tbl-input .layui-input-block { + width: 79%; + margin-left: 21%; + } + </style> + <link rel="stylesheet" href="/css/adapter.css" /> +</head> + +<body> + <div id="" class="main-content"> + <div id="" class="layout-title"> + <table border="" cellspacing="" cellpadding=""> + <tr> + <td class="img-back"><a href="../index.html"><img src="/assets/back.jpg"></a></td> + <td class="title-text" lang>鐢宠鍏ュ簱</td> + <td class="title-menu-icon"><img id="menuImg" src="/assets/menu.jpg"></td> + </tr> + </table> + </div> + <div id="" class="layout-sub-content"> + <div id="menuList" class="menu"> + <ul class="" style="text-align: center;"> + <li><a href="../index.html" lang>涓婚〉</a></li> + <li><a href="../login.html" lang>閲嶆柊鐧诲綍</a></li> + </ul> + </div> + + <div id="" class="layout-bill-info"> + <form class="layui-form" action="" style="height: auto;"> + <div id="" class="layui-form-item layout-input"> + <label class="layui-form-label" lang>鎵樼洏鏉$爜锛�</label> + <div class="layui-input-block"> + <input id="PalletNo" type="text" lay-verify="stock" lang langholder placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" + autocomplete="off" class="layui-input"> + </div> + </div> + + <!-- <table class="layout-tbl-input" border="" cellspacing="" cellpadding=""> + <tr> + <td colspan="2"> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang>鐘舵�侊細</label> + <div class="layui-input-block"> + <input id="Status" type="text" disabled placeholder="" autocomplete="off" + class="layui-input"> + </div> + </div> + </td> + </tr> + <tr> + <td colspan="2"> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang>鐗╂枡锛�</label> + <div class="layui-input-block"> + <input id="SkuNo" type="text" disabled placeholder="" + autocomplete="off" class="layui-input"> + </div> + </div> + </td> + </tr> + <tr> + <td colspan="2"> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang>鎵规鍙凤細</label> + <div class="layui-input-block"> + <input id="LotNo" type="text" disabled placeholder="" autocomplete="off" + class="layui-input"> + </div> + </div> + </td> + </tr> + <tr> + <td> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang style="width: 48%;">鎵�灞炲贩閬擄細</label> + <div class="layui-input-block" style="width: 52%; margin-left: 48%;"> + <input id="RoadwayNo" type="text" disabled placeholder="" + autocomplete="off" class="layui-input"> + </div> + </div> + </td> + <td> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang style="width: 48%;">鍌ㄤ綅鍦板潃锛�</label> + <div class="layui-input-block" style="width: 52%; margin-left: 48%;"> + <input id="LocatNo" type="text" disabled placeholder="" autocomplete="off" + class="layui-input"> + </div> + </div> + </td> + </tr> + <tr> + <td colspan="2"> + <div id="" class="layui-form-item layout-boxinfo"> + <label class="layui-form-label" lang>灏忚溅褰撳墠浣嶇疆锛�</label> + <div class="layui-input-block"> + <input id="AgvInfo" type="text" disabled placeholder="" + autocomplete="off" class="layui-input"> + </div> + </div> + </td> + </tr> + </table> --> + </form> + <div id="" style="text-align: center;"> + <!-- <button class="btn-ok-blue" type="button" lay-submit lay-filter="requestRoadway">鐢宠宸烽亾</button> --> + <button class="btn-ok-red" type="button" lay-submit lay-filter="requestLocat">鐢宠鍌ㄤ綅</button> + </div> + </div> + </div> + </div> + <script src="/js/jquery-3.5.1.min.js"></script> + <script src="/layui/layui.js"></script> + <script src="/js/public.js"></script> + <script src="/js/language.js"></script> + <script src="/js/jquery.cookie.js"></script> + <script> + layui.use(['form', 'jquery'], function () { + var form = layui.form + + initLanguage() + setLanguage() + + //褰撴墭鐩樻潯鐮佽緭鍏ユ澶卞幓鐒︾偣鏃�,妫�鏌ヤ竴涓嬫墭鐩樼姸鎬� + $("#PalletNo").blur(function () { + checkPalletStat() + }) + $("#PalletNo").keydown(function (e) { + if (e.keyCode === 13) { + //妫�鏌ユ墭鐩樼姸鎬� + checkPalletStat(); + } + }); + //妫�鏌ユ墭鐩樼姸鎬� + function checkPalletStat() { + if ($("#PalletNo").val() == "") { + return + } + var param1 = { + "PalletNo": $("#PalletNo").val() + } + //鑾峰彇鎵樼洏涓婃灦淇℃伅 + sendData(IP + "/PdaAsn/IsEnablePalletNo", param1, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + + }); + return + } + }); + } + + //鐢宠宸烽亾 + form.on('submit(requestRoadway)', function (data) { + if (!$("#PalletNo").val()) { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + PalletNo: $("#PalletNo").val(), + HouseNo:"W01" + } + sendData(IP + "/PdaAsn/RequestRoadWay", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 2500 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + var statusVal=''; + if(res.data.Status=="0"){ + statusVal='绛夊緟涓婃灦'; + }else if(res.data.Status=="1"){ + statusVal='姝e湪涓婃灦'; + }else if(res.data.Status=="2"){ + statusVal='涓婃灦瀹屾垚'; + }else if(res.data.Status=="3"){ + statusVal='宸插彇娑�'; + }else{ + statusVal='鏈笂鏋�'; + } + $("#Status").val(statusVal); + $("#SkuNo").val(res.data.SkuNo+"-"+res.data.SkuName); + $("#LotNo").val(res.data.LotNo); + $("#RoadwayNo").val(res.data.RoadwayNo); + $("#LocatNo").val(res.data.LocatNo); + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + clearTable(); + }); + } + }); + return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� + }); + + //鐢宠鍌ㄤ綅 + form.on('submit(requestLocat)', function (data) { + if (!$("#PalletNo").val()) { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + PalletNo: $("#PalletNo").val(), + HouseNo:"W01" + } + sendData(IP + "/DownApi/RequestLocation", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 2500 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + var statusVal=''; + if(res.data.Status=="0"){ + statusVal='绛夊緟涓婃灦'; + }else if(res.data.Status=="1"){ + statusVal='姝e湪涓婃灦'; + }else if(res.data.Status=="2"){ + statusVal='涓婃灦瀹屾垚'; + }else if(res.data.Status=="3"){ + statusVal='宸插彇娑�'; + }else{ + statusVal='鏈笂鏋�'; + } + $("#Status").val(statusVal); + $("#SkuNo").val(res.data.SkuNo+"-"+res.data.SkuName); + $("#LotNo").val(res.data.LotNo); + $("#RoadwayNo").val(res.data.RoadwayNo); + $("#LocatNo").val(res.data.LocatNo); + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + clearTable(); + }); + } + }); + return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� + }); + + function clearTable() { + $("#Status").val(''); + $("#SkuNo").val(''); + $("#LotNo").val(''); + $("#RoadwayNo").val(''); + $("#LocatNo").val(''); + } + + form.verify({ + stock: [/^[\S]{8}$/, '鎵樼洏鏉$爜蹇呴』涓哄叚浣嶅瓧绗�'] + }); + + $("#menuImg").click(function (e) { + e.stopPropagation() + + if ($("#menuList").is(":hidden")) { + $("#menuList").show() + } else { + $("#menuList").hide() + } + }) + $('body').click(function () { + // //console.log("body") + $("#menuList").hide() + }) + + + + }) + </script> +</body> + +</html> \ No newline at end of file diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs index 35d91c0..ae83817 100644 --- a/Wms/Model/InterFaceModel/HttpModel.cs +++ b/Wms/Model/InterFaceModel/HttpModel.cs @@ -4,6 +4,24 @@ namespace Model.InterFaceModel { + /// <summary> + /// 澶栭儴鎺ュ彛/鍓嶇杩斿洖鍙傛暟 + /// </summary> + public class HttpReturnModel + { + /// <summary> + /// 鐘舵�佺爜 0 鎴愬姛 -1澶辫触 + /// </summary> + public string Success { get; set; } + + /// <summary> + /// 娑堟伅鎻愮ず + /// </summary> + public string Message { get; set; } + + public object Data { get; set; } + } + #region ERP鎺ュ彛瀹炰綋绫� /// <summary> /// 鍙戦�佹帴鏀秂rp鎺ュ彛鍙傛暟鐨刴odel diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs index f278409..176002a 100644 --- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs @@ -597,7 +597,15 @@ #endregion - #region 缁勬墭鏀惰揣 + #region 缁勬墭鏀惰揣 JC34 + + /// <summary> + /// 缁勬墭鏀惰揣鍒楄〃 + /// </summary> + /// <param name="model"></param> + /// <param name="count"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> public List<PalletBindDto> GetPalletBindList(PalletBindVm model, out int count) { try @@ -688,7 +696,12 @@ } } - + /// <summary> + /// 鏄庣粏鍒楄〃 + /// </summary> + /// <param name="model"></param> + /// <param name="count"></param> + /// <returns></returns> public List<BoxInfoDto> GetBoxInfoList(BoxInfoVm model, out int count) { try @@ -807,7 +820,12 @@ return data; } - //鍒犻櫎鎵樼洏缁戝畾淇℃伅 + /// <summary> + /// 鍒犻櫎鎵樼洏缁戝畾淇℃伅 + /// </summary> + /// <param name="id"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> public void DelPalletBind(int id, int userId) { try @@ -1113,7 +1131,13 @@ throw new Exception(e.Message); } } - //鍒犻櫎缁戝畾鐨勭鐮佷俊鎭� + + /// <summary> + /// 鍒犻櫎缁戝畾鐨勭鐮佷俊鎭� + /// </summary> + /// <param name="boxNo"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> public void DelBindBoxInfo(string boxNo, int userId) { try @@ -1260,7 +1284,13 @@ } } - //鎵樼洏缁戝畾鎾ら攢鐢宠 + /// <summary> + /// 鎵樼洏缁戝畾鎾ら攢鐢宠 + /// </summary> + /// <param name="id"></param> + /// <param name="reason"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> public void CancelPalletBind(int id, string reason, int userId) { try @@ -1349,6 +1379,473 @@ catch (Exception e) { throw new Exception(e.Message); + } + } + + /// <summary> + /// 鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛� + /// </summary> + /// <param name="palletNo"></param> + /// <param name="houseNo"></param> + /// <param name="roadwayNo"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public OutCommandDto RequestLocation(string palletNo, string houseNo) + { + try + { + //楠岃瘉鎵樼洏鏉$爜鏄惁涓虹┖ + if (string.IsNullOrEmpty(palletNo)) + { + throw new Exception("璇疯緭鍏ヨ鐢宠鐨勬墭鐩樻潯鐮�"); + } + //楠岃瘉鎵�灞炰粨搴撴槸鍚︿负绌� + if (string.IsNullOrEmpty(houseNo)) + { + throw new Exception("璇烽�夋嫨鎵�灞炰粨搴�"); + } + //楠岃瘉鏄惁涓哄钩搴撳叆搴� + var houseType = Db.Queryable<SysWareHouse>().First(a => a.WareHouseNo == houseNo);//鑾峰彇浠撳簱绫诲瀷 + //楠岃瘉鏄惁涓虹珛浣撳簱鍏ュ簱 + if (houseType.Type != "1") + { + throw new Exception("浠撳簱绫诲瀷閿欒锛岃閫夋嫨绔嬩綋搴撲粨搴�"); + } + + OutCommandDto comDto;//杩斿洖wcs鐨勫叆搴撳懡浠� + var isHaveLocateNo = false; //鎵樼洏缁戝畾淇℃伅涓槸鍚﹀凡鏈夋寚瀹氬偍浣� + + var stock = Db.Queryable<SysPallets>().First(a => a.PalletNo == palletNo);//鎵樼洏淇℃伅 + + //鍒ゆ柇鎵樼洏鏉$爜鏄惁鏈夋晥 + if (stock == null) + throw new Exception("鎵樼洏鏉$爜涓嶅彈WMS绠$悊锛屼笉鍙叆搴擄紒"); + + #region + + //鏌ヨ鎵樼洏缁戝畾淇℃伅(鐘舵�佷负绛夊緟鍏ュ簱鐨�) + var palletBindList = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1")).ToList(); + var haveLocate = palletBindList.FirstOrDefault(m => !string.IsNullOrWhiteSpace(m.LocatNo)); + + var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList(); + //鐗╂枡绫诲埆淇℃伅 + var skuCategoryList = Db.Queryable<SysMaterialCategory>().Where(m => m.IsDel == "0").ToList(); + + var skuNo = ""; //鍏ュ簱鐗╂枡 + var isAddTask = true; //鏄惁娣诲姞鏂颁换鍔� + var oldTaskNo = ""; //鏃т换鍔″彿 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList(); + //楠岃瘉鐗╂枡鏄惁鏈夋垚鍝� + foreach (var item in stockDetail) + { + var skuItem = skuList.First(m => m.SkuNo == item.SkuNo); + if (skuItem.Type == "2") + { + throw new Exception("鎴愬搧鐗╂枡璇峰叆鎴愬搧搴�"); + } + } + if (palletBindList.Count >= 1) //姝e父鍏ュ簱 + { + var palletBind = palletBindList.FirstOrDefault(m => m.Status == "1"); + if (palletBind != null) + { + var beingTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == palletBind.TaskNo); + if (beingTask == null) + { + throw new Exception("璇ユ墭鐩樻鍦ㄥ叆搴擄紝浣嗘湭鏌ヨ鍒颁换鍔′俊鎭�"); + } + if (!string.IsNullOrWhiteSpace(beingTask.EndLocat)) + { + comDto = new OutCommandDto() + { + PalletNo = palletNo,//鎵樼洏鍙� + StartRoadway = beingTask.StartRoadway, // 璧峰宸烽亾 + StartLocate = "", // 璧峰浣嶇疆 + EndLocate = beingTask.EndLocat, // 鐩爣浣嶇疆 + EndRoadway = beingTask.EndRoadway, // 鐩爣宸烽亾 + TaskNo = beingTask.TaskNo, // 浠诲姟鍙� + TaskType = "0",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = "", //鐩爣鍦板潃 + Order = 1 + }; + if (beingTask.IsSuccess == 0) + { + beingTask.IsSuccess = 1; + Db.Updateable(beingTask).ExecuteCommand(); + } + return comDto; + } + else + { + //if (string.IsNullOrWhiteSpace(roadwayNo)) + //{ + // roadwayNo = beingTask.EndRoadway; + //} + isAddTask = false; + oldTaskNo = beingTask.TaskNo; + } + } + if (haveLocate != null) + { + isHaveLocateNo = true; //宸叉湁鎸囧畾鍌ㄤ綅 + } + + if (palletBindList.First().Type == "0") //鐗╂枡鎵樺叆搴� + { + //鍒ゆ柇鏄惁缁戝畾鍗曟嵁鍙婂崟鎹姸鎬佹槸鍚︽甯� + foreach (var item in palletBindList) + { + var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == item.ASNNo); + if (notice == null) + { + throw new Exception("鎵樼洏瀛樺湪鐗╂枡鏈粦瀹氬叆搴撳崟锛屼笉鍙叆搴擄紒"); + } + if (notice.Status == "3") + { + throw new Exception($"鍏ュ簱鍗晎item.ASNNo}宸插叧闂紝涓嶅彲鍏ュ簱锛�"); + } + } + + //鑾峰彇鐗╂枡瀛樻斁鍖哄煙 + var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => + m.IsDel == "0" && m.Id == palletBindList.First().ASNDetailNo); + if (noticeDetail == null) + { + throw new Exception("鎵樼洏瀛樺湪鐗╂枡鏈粦瀹氬叆搴撳崟鏄庣粏锛屼笉鍙叆搴�"); + } + + skuNo = noticeDetail.SkuNo; + + } + else if (palletBindList.First().Type == "1")//绌烘墭鐩� + { + skuNo = "100099"; + } + } + else //鍥炴祦鍏ュ簱 + { + if (stockDetail.Count == 0) + { + throw new Exception($"{palletNo}鎵樼洏鏉$爜涓嶅叿鏈夌鐮佷俊鎭紝涓嶅彲鍏ュ簱锛�"); + } + if (stockDetail.Count(m => !string.IsNullOrWhiteSpace(m.LocatNo)) > 0) + { + throw new Exception("褰撳墠鎵樼洏宸插湪搴撳唴锛岃鏍稿疄"); + } + skuNo = stockDetail.First().SkuNo; + + var beingTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" + && (m.Status == "0" || m.Status == "1") && m.PalletNo == palletNo && m.Type == "0"); + if (beingTask != null) + { + if (!string.IsNullOrWhiteSpace(beingTask.EndLocat)) + { + comDto = new OutCommandDto() + { + PalletNo = palletNo,//鎵樼洏鍙� + StartRoadway = beingTask.StartRoadway, // 璧峰宸烽亾 + StartLocate = "", // 璧峰浣嶇疆 + EndLocate = beingTask.EndLocat, // 鐩爣浣嶇疆 + EndRoadway = beingTask.EndRoadway, // 鐩爣宸烽亾 + TaskNo = beingTask.TaskNo, // 浠诲姟鍙� + TaskType = "0",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = "", //鐩爣鍦板潃 + Order = 1 + }; + if (beingTask.IsSuccess == 0) + { + beingTask.IsSuccess = 1; + beingTask.Status = "1"; + Db.Updateable(beingTask).ExecuteCommand(); + } + return comDto; + } + else + { + //if (string.IsNullOrWhiteSpace(roadwayNo)) + //{ + // roadwayNo = beingTask.EndRoadway; + //} + isAddTask = false; + oldTaskNo = beingTask.TaskNo; + } + } + + //鑾峰彇瀵瑰簲鍥炲簱瑙勫垯 + var function = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetName == "鎵樼洏鍥炲簱楠岃瘉" && a.IsEnable == "NO"); + #region 鎵樼洏鍥炲簱瑙勫垯 + + if (function != null) + { + //鎷h揣瀹屾垚鍚庡厑璁告墭鐩樺洖搴� + if (function.SetValue == "CompletePick") + { + var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.LotNo == stockDetail[0].LotNo && a.PalletNo == palletNo && a.SkuNo == stockDetail[0].SkuNo); + + //楠岃瘉鎷h揣鏄庣粏鏄惁瀛樺湪 + if (allot != null) + { + //楠岃瘉褰撳墠鎵樼洏鎷h揣淇℃伅鏄惁宸插畬鎴� + if (allot.Status != "5") + { + throw new Exception("褰撳墠鎵樼洏鎷h揣淇℃伅鏈畬鎴愶紝璇峰畬鎴愬悗鍥炲簱锛�"); + } + } + } + } + #endregion + } + + var allotLocate = new AllotLocation(); + + #region 鐢宠鍌ㄤ綅 + + SysStorageLocat locate; + if (isHaveLocateNo) //鎸囧畾鍌ㄤ綅 + { + locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == haveLocate.LocatNo); + } + else + { + var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo); + if (sku == null) + { + throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒板叆搴撳崟鏄庣粏鍖呭惈鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱"); + } + //鍒ゆ柇鐗╂枡鏄惁鍚湁绫诲埆淇℃伅 + if (string.IsNullOrWhiteSpace(sku.CategoryNo)) + { + throw new Exception($"鐗╂枡锛歿sku.SkuNo}鏈煡璇㈠埌绫诲埆淇℃伅"); + } + + var skuCategory = skuCategoryList.FirstOrDefault(m => m.CategoryNo == sku.CategoryNo); + if (skuCategory == null) + { + throw new Exception($"鏈湪绫诲埆淇℃伅涓煡璇㈠埌鐗╂枡锛歿sku.SkuNo}鍖呭惈鐨勭被鍒�"); + } + + var areaStr = skuCategory.AreaNo.Split(","); + var areaList = new List<string>(); + foreach (var item in areaStr) + { + areaList.Add(item); + } + + locate = allotLocate.GetSuiTableLocate(houseNo, areaList, ""); + } + + #endregion + + Db.BeginTran(); + try + { + + if (isAddTask) // 姝e父鍏ュ簱 + { + //娣诲姞宸烽亾浣跨敤璁板綍 + var log = new SysRoadwayUseLog + { + RoadwayNo = locate.RoadwayNo, + WareHouseNo = houseNo, + Row = 0, + Column = 0, + Layer = 0, + }; + Db.Insertable(log).ExecuteCommand(); + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍏ュ簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "WCS", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + SendDate = DateTime.Now, //鍙戦�佹椂闂� + BackDate = DateTime.Now, //杩斿洖鏃堕棿 + StartRoadway = "", // 璧峰宸烽亾 + StartLocat = "",//璧峰浣嶇疆 + EndLocat = locate.LocatNo,//鐩爣浣嶇疆 + EndRoadway = locate.RoadwayNo, // 鐩爣宸烽亾 + PalletNo = palletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + Msg = "鍏ュ簱鍙e埌=>>" + locate.LocatNo + "鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅 + + }; + Db.Insertable(exTask).ExecuteCommand(); + var asnNo = ""; + // 娣诲姞鎵樼洏缁戝畾琛ㄦ墭鐩樺叆搴撲换鍔″彿 liudl + foreach (DataStockDetail stockModel in stockDetail) + { + var bindModel = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.Status == "2" + && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo); + if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.TaskNo)) + { + bindModel.TaskNo = taskNo; + bindModel.WareHouseNo = locate.WareHouseNo; + bindModel.RoadwayNo = locate.RoadwayNo; + bindModel.LocatNo = locate.LocatNo; + Db.Updateable(bindModel).ExecuteCommand(); + asnNo = stockModel.ASNNo; + } + } + foreach (DataStockDetail stockModel in stockDetail) + { + //娣诲姞鎵樼洏涓婃灦璁板綍 + var upShelf = new BllPalletUpShelf() + { + TaskNo = exTask.TaskNo, + TraceNo = asnNo, + PalletNo = palletNo, + SkuNo = stockModel.SkuNo, + SkuName = stockModel.SkuName, + LotNo = stockModel.LotNo, + Status = "1", + + WareHouseNo = houseNo, + RoadwayNo = locate.RoadwayNo, + AreaNo = locate.AreaNo, + LocatNo = locate.LocatNo, + + CreateUser = 0, + }; + Db.Insertable(upShelf).ExecuteCommand(); + } + + oldTaskNo = taskNo; + } + else + { + var oldTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == oldTaskNo); + oldTask.EndLocat = locate.LocatNo; + oldTask.EndRoadway = locate.RoadwayNo; + if (oldTask.IsSuccess == 0) + { + oldTask.IsSuccess = 1; + oldTask.Status = "1"; + } + Db.Updateable(oldTask).ExecuteCommand(); + + + var bindModelList = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.Status == "2" + && m.PalletNo == oldTask.PalletNo && m.TaskNo == oldTaskNo).ToList(); + foreach (var bindModel in bindModelList) + { + if (string.IsNullOrWhiteSpace(bindModel.LocatNo)) + { + bindModel.TaskNo = oldTask.TaskNo; + bindModel.WareHouseNo = locate.WareHouseNo; + bindModel.RoadwayNo = locate.RoadwayNo; + bindModel.LocatNo = locate.LocatNo; + Db.Updateable(bindModel).ExecuteCommand(); + + } + } + //鏇存敼涓婃灦淇℃伅 + var upShelfList = Db.Queryable<BllPalletUpShelf>().Where(m => m.IsDel == "0" && m.TaskNo == oldTask.TaskNo && m.PalletNo == palletNo).ToList(); + foreach (var upShelf in upShelfList) + { + upShelf.WareHouseNo = locate.WareHouseNo; + upShelf.RoadwayNo = locate.RoadwayNo; + upShelf.LocatNo = locate.LocatNo; + upShelf.Status = "1"; + Db.Updateable(upShelf).ExecuteCommand(); + + } + + + } + + locate.Status = "2"; + Db.Updateable(locate).ExecuteCommand(); + if (palletBindList.Count >= 1) + { + foreach (var item in palletBindList) + { + item.Status = "1"; + item.WareHouseNo = locate.WareHouseNo; + item.RoadwayNo = locate.RoadwayNo; + item.LocatNo = locate.LocatNo; + item.TaskNo = oldTaskNo; + } + Db.Updateable(palletBindList).ExecuteCommand(); + } + Db.CommitTran(); + comDto = new OutCommandDto() + { + PalletNo = palletNo,//鎵樼洏鍙� + StartRoadway = "", + StartLocate = "", // 璧峰浣嶇疆 + EndLocate = locate.LocatNo, // 鐩爣浣嶇疆 + EndRoadway = locate.RoadwayNo, // 鐩爣宸烽亾 + TaskNo = oldTaskNo, // 浠诲姟鍙� + TaskType = "0",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = "", //鐩爣鍦板潃 + Order = 1 + }; + + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + #endregion + + + return comDto; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + /// <summary> + /// 涓嬪彂鍏ュ簱鐢宠鍌ㄤ綅浠诲姟锛堜笅鍙�==銆婣GV灏忚溅锛� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public void IssueAsnTask(OutCommandDto model,string url) + { + try + { + + // 灏嗕换鍔″彂閫佽嚦AGV 姝e紡杩愯绋嬪簭鏀惧紑 + var jsonData = JsonConvert.SerializeObject(model); + string response = ""; + + try + { + var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") + //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橝GV鍙枡鍑哄簱鍛戒护", "AGV"); + var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss") + + ////瑙f瀽杩斿洖鏁版嵁 + //var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); + //if (wcsModel.StatusCode == 0) + //{ + // //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// + //new TaskServer().EditTaskIssueOk(list2, time1, time2); + + //} + //if (wcsModel.StatusCode == -1) + //{ + // new TaskServer().EditTaskIssueNo(list2, time1, time2, wcsModel.Msg); + // throw new Exception(wcsModel.Msg); + //} + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } + catch (Exception) + { + throw; } } @@ -1902,7 +2399,7 @@ } /// <summary> - /// 鐢宠宸烽亾 + /// 鐢宠宸烽亾 锛堢珛浣撳簱锛� /// </summary> /// <param name="palletNo"></param> /// <param name="houseNo"></param> @@ -1925,10 +2422,10 @@ } //楠岃瘉鏄惁涓哄钩搴撳叆搴� var houseType = Db.Queryable<SysWareHouse>().First(a => a.WareHouseNo == houseNo);//鑾峰彇浠撳簱绫诲瀷 - //楠岃瘉鏄惁涓哄钩搴撳叆搴� - if (houseType.Type == "2") + //楠岃瘉鏄惁涓虹珛浣撳簱鍏ュ簱 + if (houseType.Type != "1") { - throw new Exception("骞冲簱璇蜂娇鐢≒DA鎵嬫寔杩涜骞冲簱鍏ュ簱"); + throw new Exception("浠撳簱绫诲瀷閿欒锛岃閫夋嫨绔嬩綋搴撲粨搴�"); } var stock = Db.Queryable<SysPallets>().First(a => a.PalletNo == palletNo);//鎵樼洏淇℃伅 @@ -1940,8 +2437,7 @@ #endregion - OutCommandDto comDto;//杩斿洖wcs鐨勫叆搴撳懡浠� - var isHaveLocateNo = false; // 鏄惁宸叉湁鎸囧畾鍌ㄤ綅 + OutCommandDto comDto;//杩斿洖wcs鐨勫叆搴撳懡浠� #region //鏌ヨ鎵樼洏缁戝畾淇℃伅(鐘舵�佷负绛夊緟鍏ュ簱鐨�) @@ -1956,7 +2452,7 @@ var skuNo = ""; //鍏ュ簱鐗╂枡 var isAddTask = true; //鏄惁娣诲姞鏂颁换鍔� var oldTaskNo = ""; //鏃т换鍔″彿 - + var isHaveLocateNo = false; var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList(); if (palletBindList.Count >= 1) //姝e父鍏ュ簱 { diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 5270e8a..9de08a8 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -1187,10 +1187,10 @@ { throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝璇锋牳瀹烇紒"); } - if (stockDetail != null && (stockDetail.SkuNo != detail.SkuNo || stockDetail.LotNo != model.LotNo)) - { - throw new Exception("璇ユ墭鐩樺湪搴撳瓨宸叉湁鍏跺畠鐗╂枡鎵规淇℃伅锛岃鏍稿疄锛�"); - } + //if (stockDetail != null && (stockDetail.SkuNo != detail.SkuNo || stockDetail.LotNo != model.LotNo)) + //{ + // throw new Exception("璇ユ墭鐩樺湪搴撳瓨宸叉湁鍏跺畠鐗╂枡鎵规淇℃伅锛岃鏍稿疄锛�"); + //} #endregion @@ -1589,13 +1589,11 @@ { try { - var item = Expressionable.Create<BllArrivalNoticeDetail>() - .AndIF(true, it => it.IsDel == "0") - .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� - - var modelList = Db.Queryable<BllArrivalNoticeDetail>().Where(item) - .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo && tb2.IsDel == "0" && (tb1.Status == "0" || tb1.Status == "1")) - .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo && tb3.IsDel == "0" && tb3.IsPasteCode == "1") + + var modelList = Db.Queryable<BllArrivalNoticeDetail>() + .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo ) + .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo ) + .Where((tb1, tb2, tb3) => tb1.IsDel == "0" && tb2.IsDel == "0" && (tb2.Status == "0" || tb2.Status == "1") && tb3.IsDel == "0" && tb3.IsPasteCode == "1") .Select((tb1, tb2, tb3) => tb1.ASNNo).Distinct().ToList(); return modelList; @@ -1613,13 +1611,11 @@ { try { - var item = Expressionable.Create<BllArrivalNoticeDetail>() - .AndIF(true, it => it.IsDel == "0") - .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� - var modelList = Db.Queryable<BllArrivalNoticeDetail>().Where(item) - .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo && tb2.IsDel == "0" && (tb2.Status == "0" || tb2.Status == "1")) - .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo && tb3.IsDel == "0" && tb3.IsPasteCode == "0") + var modelList = Db.Queryable<BllArrivalNoticeDetail>() + .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo ) + .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo ) + .Where((tb1, tb2, tb3) => tb1.IsDel == "0" && tb2.IsDel == "0" && (tb2.Status == "0" || tb2.Status == "1") && tb3.IsDel == "0" && tb3.IsPasteCode == "0") .Select((tb1, tb2, tb3) => tb1.ASNNo).Distinct().ToList(); return modelList; @@ -1859,6 +1855,49 @@ } } + /// <summary> + /// 楠岃瘉鎵樼洏鏄惁瀛樺湪 + /// </summary> + /// <param name="palletNo">鎵樼洏鍙�</param> + /// <returns>"":鍙娇鐢� -1:涓嶅彲浣跨敤锛堝師鍥�)</returns> + public string IsEnablePalletNo(string palletNo) + { + string sqlMsg = ""; + string sqlString = string.Empty; + try + { + sqlString = $"select * from SysPallets where PalletNo = '{palletNo}' and isdel = '0';"; + var models = Db.Ado.SqlQuery<PalletBindVm>(sqlString); + + if (models.Count > 1) + { + sqlMsg = "-1:瀛樺湪閲嶅鎵樼洏鍙�,璇锋鏌�!"; + return sqlMsg; + } + if (models.Count > 0) + { + if (models[0].Status == "1") + { + sqlString = $"select count(id) from DataStockDetail where PalletNo = '{palletNo}' and isnull(LocatNo,'') != '' and isdel = '0';"; + int rowNum = Db.Ado.GetInt(sqlString); + if (rowNum > 0) + { + sqlMsg = "-1:鎵樼洏浣跨敤涓紝姝ゆ墭鐩樺簲鍦ㄥ簱鍐呰鏍稿疄!"; + } + } + } + else + { + sqlMsg = "-1:鎵樼洏鍙蜂笉瀛樺湪!"; + } + + return sqlMsg; + } + catch (Exception ex) + { + throw ex; + } + } #endregion @@ -1906,49 +1945,7 @@ - /// <summary> - /// 楠岃瘉鎵樼洏鏄惁瀛樺湪 - /// </summary> - /// <param name="palletNo">鎵樼洏鍙�</param> - /// <returns>"":鍙娇鐢� -1:涓嶅彲浣跨敤锛堝師鍥�)</returns> - public string IsEnablePalletNo(string palletNo) - { - string sqlMsg = ""; - string sqlString = string.Empty; - try - { - sqlString = $"select * from SysPallets where PalletNo = '{palletNo}' and isdel = '0';"; - var models = Db.Ado.SqlQuery<PalletBindVm>(sqlString); - - if (models.Count > 1) - { - sqlMsg = "-1:瀛樺湪閲嶅鎵樼洏鍙�,璇锋鏌�!"; - return sqlMsg; - } - if (models.Count > 0) - { - if (models[0].Status == "1") - { - sqlString = $"select count(id) from DataStockDetail where PalletNo = '{palletNo}' and isnull(LocatNo,'') != '' and isdel = '0';"; - int rowNum = Db.Ado.GetInt(sqlString); - if (rowNum > 0) - { - sqlMsg = "-1:鎵樼洏浣跨敤涓紝姝ゆ墭鐩樺簲鍦ㄥ簱鍐呰鏍稿疄!"; - } - } - } - else - { - sqlMsg = "-1:鎵樼洏鍙蜂笉瀛樺湪!"; - } - - return sqlMsg; - } - catch (Exception ex) - { - throw ex; - } - } + // 鏍规嵁绠辩爜鎴栨墭鐩樺彿鑾峰彇绠辨敮淇℃伅 liudl public List<BoxInfoDto> GetBoxInfos(BoxInfoVm model) diff --git a/Wms/WMS.BLL/Logic/AllotLocation.cs b/Wms/WMS.BLL/Logic/AllotLocation.cs index e21b168..98fb833 100644 --- a/Wms/WMS.BLL/Logic/AllotLocation.cs +++ b/Wms/WMS.BLL/Logic/AllotLocation.cs @@ -239,7 +239,7 @@ //鏌ヨ璇ュ贩閬撳苟涓旀爣蹇椾负姝e父鐨勭殑鍌ㄤ綅 roadwayList.Add(roadway); - var locate = GetLocateByRoadways(roadwayList,areaList,true); + var locate = GetLocateByRoadways(roadwayList,areaList,true,houseNo); if (locate == null) { throw new Exception($"{roadwayNo}宸烽亾娌℃湁鍚堥�傜殑绌哄偍浣�"); @@ -251,38 +251,10 @@ { var roadwayList = db.Queryable<SysStorageRoadway>().Where(m => m.WareHouseNo == houseNo && m.Status == "0" && roadList.Contains(m.RoadwayNo)).OrderBy(m => new { m.Priority, m.RoadwayNo }).ToList(); - var locate = GetLocateByRoadways(roadwayList,areaList); + var locate = GetLocateByRoadways(roadwayList,areaList,false, houseNo); if (locate == null) { throw new Exception($"{houseNo}浠撳簱宸插惎鐢ㄧ殑宸烽亾涓病鏈夊悎閫傜殑绌哄偍浣�"); - } - return locate; - } - //鎸囧畾宸烽亾 - case "瀵嗛泦搴�" when !string.IsNullOrWhiteSpace(roadwayNo): - { - var roadwayList = new List<SysStorageRoadway>(); - var roadway = db.Queryable<SysStorageRoadway>().First(m => m.RoadwayNo == roadwayNo); - if (roadway == null) - { - throw new Exception($"鏈煡璇㈠埌{roadwayNo}宸烽亾淇℃伅"); - } - - if (!roadList.Contains(roadwayNo)) - { - throw new Exception("褰撳墠鐗╂枡瀛樻斁鍖哄煙鏈湪鎸囧畾宸烽亾涓�"); - } - if (roadway.Status == "1") - { - throw new Exception($"{roadwayNo}宸烽亾宸插仠鐢�"); - } - - //鏌ヨ璇ュ贩閬撳苟涓旀爣蹇椾负姝e父鐨勭殑鍌ㄤ綅 - roadwayList.Add(roadway); - var locate = GetLocateByRoadways(roadwayList, areaList, true); - if (locate == null) - { - throw new Exception($"{roadwayNo}宸烽亾娌℃湁鍚堥�傜殑绌哄偍浣�"); } return locate; } @@ -313,7 +285,7 @@ /// <param name="areaList">鍖哄煙闆嗗悎</param> /// <param name="isRoadway">鏄惁鎸囧畾宸烽亾</param> /// <returns></returns> - private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false) + private SysStorageLocat GetLocateByRoadways(List<SysStorageRoadway> roadways,List<string> areaList,bool isRoadway = false ,string houseNo = "W01") { try { @@ -378,14 +350,14 @@ SysStorageLocat locate = null; // 鍌ㄤ綅淇℃伅 //SysStorageLocat log = db.Ado.SqlQuerySingle<SysStorageLocat>("select * from SysStorageLocat where LocatNo = (select Top(1) LocatNo from BllPalletBind order by CreateTime desc)"); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰� - SysRoadwayUseLog log= db.Ado.SqlQuerySingle<SysRoadwayUseLog>("select Top(1) * from SysRoadwayUseLog where IsDel=0 order by CreateTime desc"); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰� + SysRoadwayUseLog log= db.Ado.SqlQuerySingle<SysRoadwayUseLog>($"select Top(1) * from SysRoadwayUseLog where IsDel=0 and WareHouseNo ='{houseNo}' order by CreateTime desc"); //宸烽亾鏈�鍚庝竴娆′娇鐢ㄨ褰� if (laneAllot == 0)//璺冲贩閬撳钩鍧囧垎閰� { //濡傛灉鍚岀骇宸烽亾鏈夊鏉″垯鏌ヤ笂娆′綅缃棩蹇� if (roadways.Count > 1) { - log = db.Queryable<SysRoadwayUseLog>().OrderByDescending(l => l.Id).First(); + log = db.Queryable<SysRoadwayUseLog>().Where(m=>m.WareHouseNo == houseNo).OrderByDescending(l => l.Id).First(); } //鍙栧悇宸烽亾鎵�鏈夋帓绗竴涓悎閫備綅 foreach (var l in roadways) diff --git a/Wms/WMS.Entity/SysEntity/SysMaterials.cs b/Wms/WMS.Entity/SysEntity/SysMaterials.cs index 8223d0d..93671d1 100644 --- a/Wms/WMS.Entity/SysEntity/SysMaterials.cs +++ b/Wms/WMS.Entity/SysEntity/SysMaterials.cs @@ -31,7 +31,7 @@ public string AuditStatusNo { get; set; } /// <summary> - /// 绫诲瀷 + /// 绫诲瀷 0鍘熸枡 1鍖呮潗 2鎴愬搧 3鑰楁潗 4涓棿鍝� /// </summary> public string Type { get; set; } diff --git a/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs index 3109802..5a21c4d 100644 --- a/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs +++ b/Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs @@ -81,6 +81,20 @@ #endregion /// <summary> + /// 鐢宠鍌ㄤ綅 + /// </summary> + /// <param name="palletNo"></param> + /// <param name="houseNo"></param> + /// <returns></returns> + OutCommandDto RequestLocation(string palletNo, string houseNo); + /// <summary> + /// 涓嬪彂鍏ュ簱鐢宠鍌ㄤ綅浠诲姟锛堜笅鍙�==銆婣GV灏忚溅锛� + /// </summary> + /// <param name="model"></param> + /// <param name="url"></param> + void IssueAsnTask(OutCommandDto model, string url); + + /// <summary> /// 鐢宠宸烽亾 /// </summary> /// <param name="palletNo">鎵樼洏鍙�</param> diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs index 2c35f9c..0c77d05 100644 --- a/Wms/Wms/Controllers/DownApiController.cs +++ b/Wms/Wms/Controllers/DownApiController.cs @@ -290,6 +290,45 @@ } } + /// <summary> + /// PDA 浜哄伐鐢宠鍌ㄤ綅 锛堢珛浣撳簱锛� + /// </summary> + /// <param name="model">鍏ュ簱鍗曚俊鎭�</param> + /// <returns></returns> + [AllowAnonymous] + [HttpPost] + public IActionResult RequestLocation(RequestLocate model) + { + + //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩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 = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); + } + + + try + { + var list = _asnPalletBindSvc.RequestLocation(model.PalletNo, model.HouseNo); + _asnPalletBindSvc.IssueAsnTask(list, _config.ErpHost+ _config.AsnFinishUrl);//agv璺緞 + + new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo, "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勬垚鍔熶俊鎭�", int.Parse(userId)); + + return Ok(new HttpReturnModel { Success = "0", Message = "鐢宠鍌ㄤ綅鎴愬姛", Data = list }); + } + catch (Exception e) + { + new OperationASNServer().AddLogOperationAsn("鍏ュ簱浣滀笟", "鍏ュ簱鏃ュ織", model.PalletNo, "鐢宠鍌ㄤ綅", $"鐢宠鍌ㄤ綅鎵樼洏鍙凤細{model.PalletNo}鐨勫け璐ヤ俊鎭�", int.Parse(userId)); + + return Ok(new ErpModel { Success = -1, Message = e.Message }); + } + } /// <summary> /// 鐢宠宸烽亾 @@ -335,7 +374,7 @@ /// <returns></returns> [AllowAnonymous] [HttpPost] - public IActionResult RequestLocation(RequestLocate model) + public IActionResult RequestMiJiLocation(RequestLocate model) { //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D diff --git a/Wms/Wms/Controllers/PdaAsnController.cs b/Wms/Wms/Controllers/PdaAsnController.cs index e9c7604..889437b 100644 --- a/Wms/Wms/Controllers/PdaAsnController.cs +++ b/Wms/Wms/Controllers/PdaAsnController.cs @@ -1,13 +1,19 @@ 锘縰sing Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using Model.InterFaceModel; +using Model.ModelDto.BllAsnDto; using Model.ModelDto.DataDto; using Model.ModelVm; using Model.ModelVm.BllAsnVm; using Model.ModelVm.PdaVm; +using Newtonsoft.Json; using System; using System.Security.Claims; using Utility; +using Utility.Tools; +using WMS.BLL.LogServer; using WMS.Entity.BllAsnEntity; +using WMS.Entity.DataEntity; using WMS.IBLL.IPdaServer; namespace Wms.Controllers @@ -33,8 +39,6 @@ /// 缁戝畾鎵樼洏 /// </summary> /// <param name="model"></param> - /// <returns></returns> - /// <returns></returns> /// <returns></returns> [HttpPost] [UnitOfWork] @@ -94,33 +98,6 @@ var models = _PdaAsnSvc.GetNoPasteAsnNoStrList(); return Ok(new { code = 0, msg = "鍏ュ簱鍗曚俊鎭�", data = models }); - } - catch (Exception e) - { - return Ok(new { code = 1, msg = e.Message }); - } - } - - /// <summary> - /// 鍒ゆ柇鎵樼洏鏄惁鍙敤 - /// </summary> - /// <param name="model">PalletNo锛氭墭鐩樻潯鐮�</param> - /// <returns></returns> - [HttpPost] - public IActionResult IsEnablePalletNo(PalletBindVm model) - { - try - { - var strMsg = _PdaAsnSvc.IsEnablePalletNo(model.PalletNo); - - if (strMsg == "") - { - return Ok(new { code = 0, msg = "鎵樼洏鍙敤!" }); - } - else - { - return Ok(new { code = 1, msg = strMsg }); - } } catch (Exception e) { @@ -208,10 +185,36 @@ } } - + /// <summary> + /// 鍒ゆ柇鎵樼洏鏄惁鍙敤 鍏敤鏂规硶 + /// </summary> + /// <param name="model">PalletNo锛氭墭鐩樻潯鐮�</param> + /// <returns></returns> + [HttpPost] + public IActionResult IsEnablePalletNo(PalletBindVm model) + { + try + { + var strMsg = _PdaAsnSvc.IsEnablePalletNo(model.PalletNo); - //---------------------------------------------缁勬墭鏀惰揣椤甸潰---------------------------------------------------------------------- + if (strMsg == "") + { + return Ok(new { code = 0, msg = "鎵樼洏鍙敤!" }); + } + else + { + return Ok(new { code = 1, msg = strMsg }); + } + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + //---------------------------------------------鐢宠鍏ュ簱椤甸潰---------------------------------------------------------------------- + + #endregion -- Gitblit v1.8.0