From 16865166b741233bad83756ab30899440ecc0dd3 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期六, 19 四月 2025 08:15:30 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.Entity/DataEntity/DataStockDetail.cs | 6 Wms/Wms/Controllers/PdaCrController.cs | 45 + Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 4 Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs | 9 Pda/View/SoSetting/pinTuoOut.html | 6 HTML/views/StatisticalReport/BoxInfor.html | 17 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs | 147 ++-- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 94 -- Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs | 15 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 669 ++++++++++++------------ Wms/WMS.Entity/LogEntity/LogTask.cs | 2 Wms/Model/ModelVm/PdaVm/PdaCrVm.cs | 6 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 95 ++- HTML/views/HouseWithinSetting/CRLogTask.html | 3 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 179 +++++- HTML/views/ASNSetting/LabelPrint.html | 6 HTML/views/SOSetting/ExportNotice.html | 64 + Wms/WMS.Entity/DataEntity/DataBoxInfo.cs | 4 Pda/View/HouseDataSetting/ConfirmReceipt.html | 177 ++++++ Wms/Wms/Controllers/DownApiController.cs | 29 + 20 files changed, 1,003 insertions(+), 574 deletions(-) diff --git a/HTML/views/ASNSetting/LabelPrint.html b/HTML/views/ASNSetting/LabelPrint.html index b1a4656..7492276 100644 --- a/HTML/views/ASNSetting/LabelPrint.html +++ b/HTML/views/ASNSetting/LabelPrint.html @@ -70,9 +70,9 @@ </tr> <tr> <td>鐗╂枡浠g爜</td> - <td id="SkuNo"></td> - <td>鏁� 閲�</td> - <td id="qty"></td> + <td colspan="3" id="SkuNo"></td> + <!-- <td>鏁� 閲�</td> + <td id="qty"></td> --> </tr> <tr> <td>鏈夋晥鏈熻嚦</td> diff --git a/HTML/views/HouseWithinSetting/CRLogTask.html b/HTML/views/HouseWithinSetting/CRLogTask.html index 9fd6296..00fa7f6 100644 --- a/HTML/views/HouseWithinSetting/CRLogTask.html +++ b/HTML/views/HouseWithinSetting/CRLogTask.html @@ -50,6 +50,7 @@ <option value="2">鎵ц瀹屾垚</option> <option value="3">寮傚父缁撴潫</option> <option value="4">宸插彇娑�</option> + <option value="5">绛夊緟纭</option> </select> </div> </div> @@ -203,6 +204,8 @@ html = `<button class="layui-btn layui-btn-radius layui-btn-warm layui-btn-xs">寮傚父缁撴潫</button>`; } else if(d.Status=='4') { html = `<button class="layui-btn layui-btn-radius layui-btn-warm layui-btn-xs">宸插彇娑�</button>`; + } else if(d.Status=='5') { + html = `<button class="layui-btn layui-btn-radius layui-btn-warm layui-btn-xs">绛夊緟纭</button>`; } else { } diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html index 88b2f83..b301111 100644 --- a/HTML/views/SOSetting/ExportNotice.html +++ b/HTML/views/SOSetting/ExportNotice.html @@ -1272,8 +1272,12 @@ area: ['1200px', '90%'], }); } else if (obj.event === 'outKu') { - $("#PickingArea").val(''); - outFunction(data.SONo); + + //if(data.WareHouseName =="鎴愬搧搴�"){ + outFunction(data.SONo); + // }else{ + // outFunction2(data.SONo) + // } } else if (obj.event === 'beiLiaoOutKu') { if (orderType != "1") { @@ -1395,20 +1399,11 @@ area: ['350px', '285px'], btn: ['纭畾', '鍙栨秷'], yes: function (index, layero) { - var pa = $('#PickingArea').val(); - console.log(pa) + if (isChongFu == true) { isChongFu = false; - if (pa == null) { - layer.msg("璇峰嬁閲嶅鐐瑰嚮", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - console.log($("#PickingArea").val()) - if ($("#PickingArea").val() == '') { + if ($("#PickingArea").val() == '' || $('#PickingArea').val() == null) { layer.msg("璇烽�夋嫨鍑哄簱鍙�", { icon: 2, time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 @@ -1419,7 +1414,7 @@ var param = { soNo: soNo, //unstackingMode: $('#UnstackWay').val(), - outMode: pa, + outMode: $("#PickingArea").val(), //loadingAddre: $('#LoadingArea').val() }; console.log(param); @@ -1454,6 +1449,47 @@ } }); } + + //涓嶉�夋嫨鍑哄簱鍙g殑寮圭獥鏂规硶 + function outFunction2(soNo) { + layer.confirm('纭畾褰撳墠鍗曟嵁鍑哄簱鍚楋紵', function (index) { + + if (isChongFu == true) { + isChongFu = false; + + var param = { + soNo: soNo, + }; + console.log(param); + sendData(IP + "/DownApi/IssueOutHouse", param, 'get', function (res) { + console.log(res); + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 3000 //1绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + refreshTable(); + isChongFu = true; + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 3000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + refreshTable(); + isChongFu = true; + }); + } + layer.close(index); + }); + } else { + layer.msg("璇峰嬁閲嶅鐐瑰嚮", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + } + }); + } //閫夋嫨鍑哄簱鍙e脊绐楁柟娉� function beiLiaoOutFunction(soNo) { diff --git a/HTML/views/StatisticalReport/BoxInfor.html b/HTML/views/StatisticalReport/BoxInfor.html index 24a9b54..dcefb00 100644 --- a/HTML/views/StatisticalReport/BoxInfor.html +++ b/HTML/views/StatisticalReport/BoxInfor.html @@ -225,7 +225,21 @@ </div> </div> - + <script type="text/html" id="buttonTpl"> + {{# if(d.Status=='0'){ }} + <button class="layui-btn layui-btn-radius layui-btn-danger layui-btn-xs">寰呭垎閰�</button> + {{# } else if(d.Status == '1') { }} + <button class="layui-btn layui-btn-radius layui-btn-xs">閮ㄥ垎鍒嗛厤</button> + {{# } else if(d.Status == '2') { }} + <button class="layui-btn layui-btn-radius layui-btn-xs">宸插垎閰�</button> + {{# } else if(d.Status == '3') { }} + <button class="layui-btn layui-btn-radius layui-btn-xs">鐩樼偣閿佸畾</button> + {{# } else if(d.Status == '4') { }} + <button class="layui-btn layui-btn-radius layui-btn-xs">绉诲簱閿佸畾</button> + {{# } else if(d.Status == '5') { }} + <button class="layui-btn layui-btn-radius layui-btn-xs layui-btn-danger">寮傚父閿佸畾</button> + {{# } }} + </script> <script type="text/html" id="BoxStatus"> {{# if(d.Status=='0'){ }} <p>鏈粍鎵�</p> @@ -363,6 +377,7 @@ { field: 'LockQty', title: '閿佸畾鏁伴噺', align: 'center',width: 90, }, { field: 'FrozenQty', title: '鍐荤粨鏁伴噺', align: 'center',width: 90, }, + { field: 'Status', title: '搴撳瓨鐘舵��', align: 'center', templet: '#buttonTpl', width: 90, }, { field: 'InspectStatus', templet: '#InspectStatus1', title: '璐ㄦ鐘舵��', align: 'center' ,width: 100,}, { field: 'InspectMark', title: '鎶芥鏍囪', align: 'center', templet: '#InspectMarkStatus' ,width: 100,}, { field: 'BitPalletMark', title: '闆舵墭鏍囪', align: 'center', templet: '#BitPalletMarkStatus',width: 100,}, diff --git a/Pda/View/HouseDataSetting/ConfirmReceipt.html b/Pda/View/HouseDataSetting/ConfirmReceipt.html new file mode 100644 index 0000000..d62155e --- /dev/null +++ b/Pda/View/HouseDataSetting/ConfirmReceipt.html @@ -0,0 +1,177 @@ +<!DOCTYPE html> +<html> + <head> + <meta charset="UTF-8" /> + <meta name="viewport" content="user-scalable=0,width=device-width,initial-scale=1.0" /> + <!-- <meta name="viewport" content="width=device-width, initial-scale=0.665, minimum-scale=0.5, maximum-scale=2.0, user-scalable=no" /> --> + <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" /> + <link rel="stylesheet" href="/css/adapter.css" /> + <style type="text/css"> + .layout-bill-info { + height: 255px; + } + .layout-tbl-submit { + margin-top: 10px; + } + </style> + </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">杞﹂棿鏀惰揣</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">涓婚〉</a></li> + <!-- <li><a href="productEnterConfirm.html">鍏ュ簱淇℃伅纭</a></li> --> + <li><a href="../login.html">閲嶆柊鐧诲綍</a></li> + </ul> + </div> + + <div id="" class="layout-bill-info"> + <form class="layui-form" action=""> + <div id="layout-pallet" 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="required" lang langholder + placeholder="璇锋壂鎻忔墭鐩樻潯鐮�" autocomplete="off" class="layui-input"> + </div> + </div> + <div id="layout-soNo" class="layui-form-item layout-input"> + <label class="layui-form-label">鍑哄簱鍗曪細</label> + <div class="layui-input-block"> + <input id="SoNo" type="text" disabled lang langholder + placeholder="" autocomplete="off" class="layui-input"> + </div> + </div> + <table class="layout-tbl-submit" border="" cellspacing="" cellpadding=""> + <tr> + <td style="width: 23%;"></td> + <td> + <button class="layout-btn layout-btn-red" lang type="button" lay-submit + lay-filter="formUnbind">鏀惰揣</button> + </td> + <td style="width: 33%;"></td> + </tr> + </table> + </form> + </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/jquery.cookie.js"></script> + <script> + layui.use(['form', 'jquery'], function() { + var form = layui.form + + + //褰撴墭鐩樻潯鐮佽緭鍏ユ鏂囨湰鏀瑰彉鏃�,妫�鏌ヤ竴涓嬫墭鐩樼姸鎬� + $("#palletNo").on('input', function () { + + if ($("#palletNo").val() == "" || $("#palletNo").val().length < 8) { + return + } + if ($("#palletNo").val().length >= 8) { + $("#palletNo").val($("#palletNo").val().substr(-8)) + } + checkPalletState() + }) + //妫�鏌ユ墭鐩樼姸鎬� + function checkPalletState() { + $('#SoNo').val(''); + var param = { + "PalletNo": $("#palletNo").val() + } + synData(IP + "/PdaCr/GetReceiptSoNoByPallet", param, 'post', function (res) { + + if (res.code == 0) { //鎴愬姛 + $('#SoNo').val(res.data); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + } + + var isChongFu = true; + form.on('submit(formUnbind)', function(data) { + + if (!$("#palletNo").val()) { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if (isChongFu == true) { + isChongFu = false; + var param = { + "PalletNo":$("#palletNo").val(), + } + sendData(IP + "/PdaCr/ConfirmReceipt", param, 'post', function(res) { + if (res.code == 0) { //鎴愬姛 + layer.msg("鎴愬姛", { + icon: 1, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + isChongFu = true; + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() {isChongFu = true;}); + } + }); + return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� + }else{ + layer.msg("璇峰嬁閲嶅鐐瑰嚮", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + } + + }); + + // form.verify({ + // stock: [/^[\S]{6}$/, '鎵樼洏鏉$爜蹇呴』涓哄叚浣嶅瓧绗�'] + // }); + + $("#menuImg").click(function(e){ + //console.log("menuImg") + e.stopPropagation() + + if($("#menuList").is(":hidden")){ + $("#menuList").show() + }else{ + $("#menuList").hide() + } + }) + $('body').click(function(){ + // //console.log("body") + $("#menuList").hide() + }) + + }) + </script> + </body> +</html> diff --git a/Pda/View/SoSetting/pinTuoOut.html b/Pda/View/SoSetting/pinTuoOut.html index 2475d5f..d58ad03 100644 --- a/Pda/View/SoSetting/pinTuoOut.html +++ b/Pda/View/SoSetting/pinTuoOut.html @@ -1259,7 +1259,7 @@ console.log(2) updateSkuLotNoList2(); updateQtyList2(); - // getBar2(); + getBar2(); // GetDataInfo(); } @@ -1315,14 +1315,14 @@ for (var i = 0; i < res.data.length; i++) { if (i == 0) { $("#skuLotNo2").append('<option value =' + res.data[i].SoDetailId + ' selected>' + res.data[i].SkuName); - if (res.data[i].LotNo == null) { + if (res.data[i].LotNo != null) { $("#skuLotNo2").append(" - " + res.data[i].LotNo); } $("#skuLotNo2").append('</option>'); } else { $("#skuLotNo2").append('<option value =' + res.data[i].SoDetailId + '>' + res.data[i].SkuName); - if (res.data[i].LotNo == null) { + if (res.data[i].LotNo != null) { $("#skuLotNo2").append(" - " + res.data[i].LotNo); } $("#skuLotNo2").append('</option>'); diff --git a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs index fd24b15..ba58759 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs @@ -82,4 +82,10 @@ public decimal DevanQty { get; set; } public string BoxNo { get; set; } } + + public class PdaReceiptVm + { + public string PalletNo { get; set; } + } + } diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index 16cb84d..33bac31 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -149,6 +149,10 @@ } var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty)); + if (labelQty == null) + { + labelQty = 0; + } var qty = detail.Qty - labelQty; if (qty<0) { diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs index 22739af..eb93eca 100644 --- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs +++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs @@ -1686,90 +1686,99 @@ try { //褰撳墠浠诲姟淇℃伅 - var task = await Db.Queryable<LogTask>().FirstAsync(m => m.TaskNo == taskNo && m.IsDel == "0"); + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); if (task == null) { - throw Oops.Bah($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); } if (task.Status == "2") { - throw Oops.Bah("褰撳墠浠诲姟宸插畬鎴�"); + throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); } Db.BeginTran(); //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 - var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToListAsync(); - var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault(); - - //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅 - var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo); - - //鏇存敼浠诲姟 - task.Status = "2";//浠诲姟鐘舵�� - task.IsSend = 0; - task.IsCancel = 0; - task.IsFinish = 0; - task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 - Db.Updateable(task).ExecuteCommand(); - // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級 - locate.Status = "0"; - Db.Updateable(locate).ExecuteCommand(); - - //鐩爣鍌ㄤ綅淇℃伅 - var endLocate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == task.EndLocat); - if (endLocate != null) + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); + //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅 + //褰撳墠浠诲姟涓殑鍘熷偍浣� + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); + if (locate == null) { - if (endLocate.Status != "0") + throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); + if (locate2 == null) + { + throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + //骞冲簱涓偍浣嶉泦鍚� + var pingKuLocate = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0").ToList(); + //杞﹂棿鏆傚瓨鍖� + var pingKuLocate2 = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0" && (m.AreaNo == "B06" || m.AreaNo == "B07")).ToList(); + var pingKuList = pingKuLocate.Select(m => m.LocatNo).ToList(); + try + { + + task.Status = "2";//浠诲姟鐘舵�� + //鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱 + if (pingKuList.Contains(task.StartLocat) && pingKuList.Contains(task.EndLocat)) { - throw Oops.Bah("鐩爣鍌ㄤ綅鐘舵�侀潪绌哄偍浣�"); + task.Status = "5"; } - } - //鏇存敼搴撳瓨鏄庣粏 - foreach (var item in stockDetail) - { - item.Status = "0";//寰呭垎閰� - item.LockQty = 0;//閿佸畾鏁伴噺鏀逛负0 - if (endLocate != null)//鏈夌洰鏍囧偍浣嶈鏄庣Щ鍒板叾浠栧尯鍩熷偍浣� - { - item.LocatNo = endLocate.LocatNo;//鍌ㄤ綅鏇存敼 - item.WareHouseNo = endLocate.WareHouseNo;//鎵�灞炰粨搴撴洿鏀� - item.RoadwayNo = endLocate.RoadwayNo;//鎵�灞炲贩閬撴洿鏀� - item.AreaNo = endLocate.AreaNo;//鎵�灞炲尯鍩熸洿鏀� - } - else//娌℃湁鐩爣鍌ㄤ綅璇存槑绉诲埌鍏ュ簱鍙� - { - item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� - item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 - item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 - item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 - } - await Db.Updateable(item).ExecuteCommandAsync(); - //鏇存敼搴撳瓨鎬昏〃 - var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo); - stock.LockQty -= (decimal)item.Qty; - await Db.Updateable(stock).ExecuteCommandAsync(); - } - if (endLocate != null) - { - //鏇存敼鐩爣鍌ㄤ綅鐘舵�� - endLocate.Status = "1";//鏈夌墿鍝� - await Db.Updateable(endLocate).ExecuteCommandAsync(); - } + task.IsSend = 0; + task.IsCancel = 0; + task.IsFinish = 0; + task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + Db.Updateable(task).ExecuteCommand(); - if (_userManager.UserId != 0) - { - //娣诲姞鎿嶄綔鏃ュ織璁板綍 - //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId); - await _operation.AddLogOperationCr(new OperationInputVm() + #region 淇敼鍌ㄤ綅鐘舵�� + + if (!pingKuList.Contains(task.StartLocat)) { - ParentName = "搴撳唴浣滀笟", - MenuName = "搴撳唴鏃ュ織", - FkNo = taskNo, - TypeName = "瀹屾垚", - Msg = $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�" - }); + //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0 + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } + + + //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1 + locate2.Status = "1"; + Db.Updateable(locate2).ExecuteCommand(); + //鍒ゆ柇鐩爣浣嶇疆濡傛灉涓嶆槸鏄溅闂存殏瀛樺尯 骞朵笖鏄钩搴撳偍浣� 鏇存敼搴撳瓨浣嶇疆 + if (pingKuLocate2.Count(m=>m.LocatNo == task.EndLocat)<=0 && pingKuList.Contains(task.EndLocat)) + { + foreach (var item in stockDetail) + { + item.WareHouseNo = locate2.WareHouseNo; + item.AreaNo = locate2.AreaNo; + item.RoadwayNo = locate2.RoadwayNo; + item.LocatNo = locate2.LocatNo; + } + Db.Updateable(stockDetail).ExecuteCommand(); + } + + + #endregion + if (_userManager.UserId != 0) + { + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId); + await _operation.AddLogOperationCr(new OperationInputVm() + { + ParentName = "搴撳唴浣滀笟", + MenuName = "搴撳唴鏃ュ織", + FkNo = taskNo, + TypeName = "瀹屾垚", + Msg = $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�" + }); + } + Db.CommitTran(); } - Db.CommitTran(); + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } } catch (Exception ex) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 9de08a8..09749f0 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -128,39 +128,8 @@ var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 - if (pack == null) - { - throw new Exception("鑾峰彇鐗╂枡鍖呰淇℃伅澶辫触锛岃鏍稿疄!"); - } - if (pack.L5Num.HasValue) - { - pNum = (int)pack.L5Num; - bNum = (int)pack.L4Num; - } - else if (pack.L4Num.HasValue) - { - pNum = (int)pack.L4Num; - bNum = (int)pack.L3Num; - } - else if (pack.L3Num.HasValue) - { - pNum = (int)pack.L3Num; - bNum = (int)pack.L2Num; - } - else if (pack.L2Num.HasValue) - { - pNum = (int)pack.L2Num; - bNum = (int)pack.L1Num; - } - else if (pack.L1Num.HasValue) - { - pNum = (int)pack.L1Num; - bNum = (int)pack.L1Num; - } - if (pNum == 0 || bNum == 0) - { - throw new Exception($"缁戝畾澶辫触锛寋detail.SkuNo}鐗╁搧鍖呰鏈壘鍒帮紒"); - } + //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺 + new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum); #endregion @@ -1123,6 +1092,7 @@ { try { + Db.BeginTran(); #region 鍒ゆ柇 //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 8锛氱敓浜ч��鏂欏叆搴� @@ -1197,44 +1167,13 @@ #region 鍖呰 var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo); - var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo); // liudl 鐢盨ku鍖呰缂栧彿鍙樻洿涓哄叆搴撳崟鏄庣粏鍖呰缂栧彿 + //var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo); // liudl 鐢盨ku鍖呰缂栧彿鍙樻洿涓哄叆搴撳崟鏄庣粏鍖呰缂栧彿 var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 - - if (pack == null) - { - throw new Exception("鑾峰彇鐗╂枡鍖呰澶辫触锛岃鏍稿疄!"); - } - if (pack.L5Num.HasValue) - { - pNum = (int)pack.L5Num; - bNum = (int)pack.L4Num; - } - else if (pack.L4Num.HasValue) - { - pNum = (int)pack.L4Num; - bNum = (int)pack.L3Num; - } - else if (pack.L3Num.HasValue) - { - pNum = (int)pack.L3Num; - bNum = (int)pack.L2Num; - } - else if (pack.L2Num.HasValue) - { - pNum = (int)pack.L2Num; - bNum = (int)pack.L1Num; - } - else if (pack.L1Num.HasValue) - { - pNum = (int)pack.L1Num; - bNum = (int)pack.L1Num; - } - if (pNum == 0 || bNum == 0) - { - throw new Exception($"缁戝畾澶辫触锛寋detail.SkuNo}鐗╁搧鍖呰鏈壘鍒帮紒"); - } + //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺 + new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum); + #endregion @@ -1330,10 +1269,16 @@ { tags = "1"; } - + //楠岃瘉搴撳瓨鎵樼洏鏄惁鏈夎创鏍囩墿鏂� + var skuStr = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0" && m.IsPasteCode == "1").Select(m => m.SkuNo).ToList(); + var sdHave = Db.Queryable<DataStockDetail>().Count(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && skuStr.Contains(m.SkuNo)); + if (sdHave>0) + { + throw new Exception("褰撳墠鎵樼洏鍚湁璐存爣鐗╂枡淇℃伅锛屼笉鑳界粍鎵�"); + } // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� var sd1 = Db.Queryable<DataStockDetail>() - .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.LotNo == bind.LotNo); + .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.SkuNo == detail.SkuNo && m.LotNo == bind.LotNo); var sdId1 = 0; if (sd1 != null) { @@ -1426,8 +1371,6 @@ } #endregion - - #region 鏇存敼缁勬墭淇℃伅 var isSample = "0";//鏄惁鍙栨牱 @@ -1497,10 +1440,12 @@ Db.Updateable(notice).ExecuteCommand(); #endregion - #region 搴撳瓨鏄庣粏 + #region 鏇存敼搴撳瓨鏄庣粏鏁伴噺 + sd1.Qty = bind.Qty; //鏇存敼搴撳瓨鏄庣粏鏁伴噺 Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand(); + #endregion #region 搴撳瓨 @@ -1574,9 +1519,12 @@ sqlStr += $"insert into LogPalletTrack values('{model.PalletNo}','{model.AsnNo}','缁勭洏','0',getDate(),{userId},NULL,NULL);"; Db.Ado.ExecuteCommand(sqlStr); new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎵樼洏缁戝畾", model.AsnNo, "娣诲姞", $"娣诲姞浜嗘墭鐩樼爜涓猴細{model.PalletNo}鐨勭粍鐩樹俊鎭�", userId); + + Db.CommitTran(); } catch (Exception e) { + Db.RollbackTran(); throw new Exception(e.Message); } } diff --git a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index a0e216c..142058b 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Dm; using Model.InterFaceModel; +using Model.ModelDto; using Model.ModelDto.BllCheckDto; using Model.ModelDto.PdaDto; using Newtonsoft.Json; @@ -689,7 +690,7 @@ { throw Oops.Bah("鎵樼洏鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); } - if (models.WareHouseNo != "W02") + if (models.WareHouseNo != "W04") { throw Oops.Bah("璇ユ墭鐩樻湭鍦ㄥ钩搴撳唴,璇锋鏌�!"); } @@ -719,7 +720,7 @@ { throw Oops.Bah("鎵樼洏鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); } - if (models.WareHouseNo != "W02") + if (models.WareHouseNo != "W04") { throw Oops.Bah("璇ユ墭鐩樻湭鍦ㄥ钩搴撳唴,璇锋鏌�!"); } @@ -729,14 +730,9 @@ throw Oops.Bah("鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); } - if (storageLocat.AreaNo.Contains("B0")) - { - storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo.Contains("B0") && w.WareHouseNo == "W02").OrderBy(o => o.AreaNo).ToListAsync(); - } - else - { - storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo.Contains("B1") && w.WareHouseNo == "W02").OrderBy(o => o.AreaNo).ToListAsync(); - } + + storageArea = await Db.Queryable<SysStorageArea>().Where(w => w.IsDel == "0" && w.Status == "0" && w.AreaNo != storageLocat.AreaNo && w.WareHouseNo == "W04").OrderBy(o => o.AreaNo).ToListAsync(); + } return storageArea; } @@ -817,7 +813,7 @@ { throw Oops.Bah("鎵�閫夊尯鍩熶俊鎭笉瀛樺湪,璇锋鏌�!"); } - EndLocat = await GetLocat(areaNo, stockDetail.SkuNo, stockDetail.LotNo, palletNo); + EndLocat = await GetLocat(areaNo); } else { @@ -846,7 +842,7 @@ var storageLocatEnd = new SysStorageLocat(); if (!string.IsNullOrEmpty(areaNo)) { - storageLocatEnd = await Db.Queryable<SysStorageLocat>().FirstAsync(w => w.IsDel == "0" && w.LocatNo == EndLocat && w.Flag == "0" && w.Status == "0"); + storageLocatEnd = await Db.Queryable<SysStorageLocat>().FirstAsync(w => w.IsDel == "0" && w.LocatNo == EndLocat && w.Flag == "0"); if (storageLocatEnd == null) { throw Oops.Bah("鐩爣鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); @@ -1019,7 +1015,7 @@ throw Oops.Bah($"鎵樼洏鍙凤細{item.PalletNo}鎵�鍦ㄧ殑鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); } //鑾峰彇鐩爣鍌ㄤ綅 - EndLocat = await GetLocat(areaNo, item.SkuNo, item.LotNo, palletNo); + EndLocat = await GetLocat(areaNo); if (string.IsNullOrEmpty(EndLocat)) { throw Oops.Bah("鍒嗛厤鐩爣鍌ㄤ綅澶辫触,璇锋鏌�!"); @@ -1101,28 +1097,23 @@ /// <param name="skuNo"></param> /// <param name="lotNo"></param> /// <returns></returns> - private async Task<string> GetLocat(string areaNo, string skuNo, string lotNo, string palletNo, string hasLocatNoList = "") + private async Task<string> GetLocat(string areaNo) { string endLocat = string.Empty;//鐩爣鍌ㄤ綅 - //褰撶劧鍖哄煙鎵�鏈夊偍浣嶄俊鎭� - var storageLocatList = await Db.Queryable<SysStorageLocat>().Where(w => w.WareHouseNo == "W02" && w.AreaNo == areaNo).ToListAsync(); - //鍚屽尯鍩熷悓鎵规鐗╂枡鐨勫偍浣嶄俊鎭� - List<string> locatList = await Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.SkuNo == skuNo && w.LotNo == lotNo && w.WareHouseNo == "W02" && w.AreaNo == areaNo && w.PalletNo != palletNo) - .OrderByDescending(o => o.LocatNo).Select(s => s.LocatNo).Distinct().ToListAsync(); - foreach (var item in locatList) - { - var locatInfo = storageLocatList.Where(w => w.LocatNo == item).First(); + //褰撳墠鍖哄煙鎵�鏈夊偍浣嶄俊鎭� + var storageLocatList = await Db.Queryable<SysStorageLocat>().Where(w => w.WareHouseNo == "W04" && w.AreaNo == areaNo).ToListAsync(); + + var locatInfo2 = storageLocatList.Where(w => w.IsDel == "0" && w.Flag == "0" && w.Status == "0") + .OrderByDescending(m => m.Layer).OrderByDescending(m => m.Column).OrderByDescending(m => m.Row).First(); - var locatInfo2 = storageLocatList.Where(w => w.IsDel == "0" && w.Status == "0" && w.Flag == "0" && w.LocatNo != locatInfo.LocatNo && w.Row == locatInfo.Row && !hasLocatNoList.Contains(w.LocatNo)) - .OrderByDescending(o => o.Column).First(); - if (locatInfo2 != null) - { - endLocat = locatInfo2.LocatNo; - } + if (locatInfo2 != null) + { + endLocat = locatInfo2.LocatNo; } + if (string.IsNullOrEmpty(endLocat)) { - var locatInfo3 = storageLocatList.Where(w => w.IsDel == "0" && w.Flag == "0" && w.Status == "0" && !hasLocatNoList.Contains(w.LocatNo)) + var locatInfo3 = storageLocatList.Where(w => w.IsDel == "0" && w.Flag == "0") .OrderByDescending(m => m.Layer).OrderByDescending(m => m.Column).OrderByDescending(m => m.Row).First(); if (locatInfo3 != null) @@ -1216,7 +1207,7 @@ } #endregion - #region 绠辩爜鎷嗙璐存爣 + #region 绠辩爜鎷嗙璐存爣銆佷汉宸ョ‘璁ゆ敹璐� /// <summary> /// 鎷嗙娣诲姞鏍囩 /// </summary> @@ -1252,7 +1243,18 @@ Db.Updateable(boxInfo).ExecuteCommand(); var boxStr = boxInfo.BoxNo.Substring(0, boxInfo.BoxNo.Length - 6);//鑾峰彇绠辩爜鍓嶇紑-闄ゅ悗鍏綅娴佹按澶� - var maxBoxCode = Db.Queryable<BllBoxInfo>().Where(m => m.BoxNo.Contains(boxStr) && m.IsDel == "0" && m.Origin == "WMS鐢熸垚").Max(a => a.BoxNo); + var maxBoxCode1 = Db.Queryable<BllBoxInfo>().Where(m => m.BoxNo.Contains(boxStr) && m.IsDel == "0" && m.Origin == "WMS鐢熸垚").Max(a => a.BoxNo); + + var maxBoxCode2 = Db.Queryable<DataBoxInfo>().Where(m => m.BoxNo.Contains(boxStr) && m.IsDel == "0").Max(a => a.BoxNo); + //濡傛灉缁撴灉涓�0锛屽垯璇存槑涓や釜瀛楃涓茬浉绛夛紱 ABC BCE + //濡傛灉缁撴灉灏忎簬0锛屽垯璇存槑绗竴涓瓧绗︿覆灏忎簬绗簩涓瓧绗︿覆锛� + //濡傛灉缁撴灉澶т簬0锛屽垯璇存槑绗竴涓瓧绗︿覆澶т簬绗簩涓瓧绗︿覆銆� + var maxBoxCode = maxBoxCode1; + var bol = String.CompareOrdinal(maxBoxCode1, maxBoxCode2); + if (bol<0) + { + maxBoxCode = maxBoxCode2; + } var boxNoNew = maxBoxCode.Substring(0, maxBoxCode.Length - 6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0'); // 娣诲姞鏂扮鐮佷俊鎭� @@ -1296,6 +1298,121 @@ throw new Exception(e.Message); } } + + + public string GetReceiptSoNoByPallet(string palletNo) + { + try + { + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).GroupBy(m=>m.SONo).Select(m=>m.SONo).ToList(); + if (stockDetail.Count == 0) + { + throw new Exception("娌℃湁鏌ヨ鍒版墭鐩樺簱瀛樹俊鎭�"); + } + if (stockDetail.Count != 1) + { + throw new Exception("搴撳瓨鎵樼洏涓嶆槸鍞竴鍑哄簱鍗�"); + } + var detail = stockDetail.First(); + if (string.IsNullOrWhiteSpace(detail)) + { + throw new Exception("鎵樼洏娌℃湁鍑哄簱鍗曚俊鎭�"); + } + var task = Db.Queryable<LogTask>().First(m => m.PalletNo == palletNo && m.IsDel == "0" && m.Status == "5"); + if (task == null) + { + throw new Exception("娌℃湁鏌ヨ鍒版墭鐩樹换鍔′俊鎭�"); + } + if (task.Status != "5") + { + throw new Exception("浠诲姟鐘舵�佷笉鏄瓑寰呯‘璁�"); + } + return detail; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + + /// <summary> + /// 浜哄伐纭鏀惰揣 + /// </summary> + /// <param name="palletNo"></param> + /// <param name="userId"></param> + public void ConfirmReceipt(string palletNo, int userId) + { + try + { + Db.BeginTran(); + var task = Db.Queryable<LogTask>().First(m => m.PalletNo == palletNo && m.IsDel == "0" && m.Status == "5"); + if (task == null) + { + throw new Exception("娌℃湁鏌ヨ鍒版墭鐩樹换鍔′俊鎭�"); + } + if (task.Status != "5") + { + throw new Exception("浠诲姟鐘舵�佷笉鏄瓑寰呯‘璁�"); + } + //浠诲姟鐘舵�佸彉鏇翠负鎵ц瀹屾垚 + task.Status = "2"; + Db.Updateable(task).ExecuteCommand(); + var locatList = Db.Queryable<SysStorageLocat>().Where(m=>m.WareHouseNo == "W04" && (m.AreaNo == "B06" || m.AreaNo == "B07") && m.IsDel == "0").ToList(); + var locat = locatList.FirstOrDefault(m => m.LocatNo == task.EndLocat); + //鍒ゆ柇鎵樼洏鍌ㄤ綅鏄惁鍦ㄨ溅闂� + if (locat == null) + { + throw new Exception("鍌ㄤ綅淇℃伅娌℃湁鍦ㄨ溅闂村伐浣嶄笂"); + } + locat.Status = "0"; + Db.Updateable(locat).ExecuteCommand(); + //鍒ゆ柇鎵樼洏淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList(); + foreach (var item in stockDetail) + { + if (item.UDF5 != "1" || string.IsNullOrWhiteSpace(item.SONo)) + { + continue; + } + + //item.WareHouseNo = ""; + //item.RoadwayNo = ""; + //item.AreaNo = ""; + item.LocatNo = ""; + item.PalletNo = ""; + item.LockQty = 0; // 閿佸畾鏁伴噺鏇翠负0 + item.Status = "0"; // 鐘舵�佸彉涓哄緟鍒嗛厤 + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.StockDetailId == item.Id).ToList(); + foreach (var item2 in boxInfo) + { + item2.Status = "2"; //鐘舵�佸彉涓哄凡鍏ュ簱 + } + + Db.Updateable(boxInfo).ExecuteCommand(); + } + Db.Updateable(stockDetail).ExecuteCommand(); + //鎵樼洏鍙樻洿鐘舵�� + var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); + if (pallet == null) + { + throw new Exception("娌℃湁鏌ヨ鍒版墭鐩樹俊鎭�"); + } + pallet.Status = "0"; + Db.Updateable(pallet).ExecuteCommand(); + //娣诲姞鎿嶄綔鏃ュ織 + new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鎿嶄綔鏃ュ織", palletNo, "缂栬緫", $"杞﹂棿鏀惰揣锛歿palletNo}鎵樼洏鏀惰揣", userId); + Db.CommitTran(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + + #endregion } diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 5a9d722..512b2d9 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -118,20 +118,20 @@ #region 鎷兼墭淇℃伅 var sdId = 0; bool isNew = false; - var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew); + + var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo == stockDetail.SkuNo && m.LotNo == stockDetail.LotNo); + if (pinStockDetail != null) { if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐� { - if (pinStockDetail.SONo != notice.SONo) + var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id!= pinStockDetail.Id).ToList(); + if (pinStockDetails.Count(m=>m.SONo != notice.SONo) > 0) { throw Oops.Bah("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�"); } - if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) - { - isNew = true; - } } + sdId = pinStockDetail.Id; } else @@ -147,6 +147,7 @@ newPalletInfo.Status = "1"; await Db.Updateable(newPalletInfo).ExecuteCommandAsync(); } + var sd = new DataStockDetail(); if (isNew) { @@ -189,7 +190,7 @@ sd.IsDel = "0"; sd.CreateUser = userId; sd.CreateTime = nowDate; - + sd.UDF5 = "1"; //鏂板鎷兼墭搴撳瓨鏄庣粏淇℃伅 sdId = await Db.Insertable(sd).ExecuteReturnIdentityAsync(); } @@ -269,6 +270,7 @@ if (palletNo != palletNoNew) { + var locateStr = stockDetail.LocatNo; //鍒犻櫎鍘熸墭鐩樺簱瀛樻槑缁� await Db.Deleteable(stockDetail).ExecuteCommandAsync(); @@ -280,10 +282,19 @@ } pallet.Status = "0"; await Db.Updateable(pallet).ExecuteCommandAsync(); + + //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣� + var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } } else { stockDetail.SONo = soNo; + stockDetail.UDF5 = "1"; await Db.Updateable(stockDetail).ExecuteCommandAsync(); } @@ -301,14 +312,13 @@ } else { - var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐� List<DataBoxInfo> boxInfos; var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo); if (await boxInfo.CountAsync() == 0) { throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅"); } - + boxInfos = boxInfo.ToList(); var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync(); //鏁寸鎷h揣 @@ -322,7 +332,7 @@ { throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); } - boxInfos = await boxInfo.ToListAsync(); + foreach (var item in boxInfos) { if (comDetailList.Any(m => m.BoxNo == item.BoxNo)) @@ -360,9 +370,13 @@ comList.Add(completeDetail); //淇敼搴撳瓨绠辩爜鏄庣粏 - item.StockDetailId = sdId; - item.BindNo = null;//鎵樼洏缁戝畾鍙� - item.PalletNo = palletNoNew; + if (palletNo != palletNoNew) + { + item.StockDetailId = sdId; + item.BindNo = null;//鎵樼洏缁戝畾鍙� + item.PalletNo = palletNoNew; + } + item.Status = "5";//绠辨敮鐘舵�侊紝0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 await Db.Updateable(item).ExecuteCommandAsync(); @@ -382,6 +396,7 @@ stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇� stockDetail.Qty -= pickQty; stockDetail.LockQty -= pickQty; + stockDetail.UDF5 = "1"; if (stockDetail.Qty == stockDetail.LockQty) { stockDetail.Status = "2"; @@ -397,15 +412,9 @@ if (stockDetail.Qty <= 0) { + var locateStr = stockDetail.LocatNo; await Db.Deleteable(stockDetail).ExecuteCommandAsync(); - } - else - { - await Db.Updateable(stockDetail).ExecuteCommandAsync(); - } - var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo); - if (num2 <= 0) - { + //鏀瑰彉鎵樼洏鐘舵�� var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0"); if (pallet == null) @@ -414,7 +423,20 @@ } pallet.Status = "0"; await Db.Updateable(pallet).ExecuteCommandAsync(); + + //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣� + var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr); + if (locate != null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } } + else + { + await Db.Updateable(stockDetail).ExecuteCommandAsync(); + } + //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� noticeDetail.CompleteQty += pickQty; await Db.Updateable(noticeDetail).ExecuteCommandAsync(); @@ -542,18 +564,15 @@ #region 鎷兼墭淇℃伅 bool isNew = false; - var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew); + var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo== stockDetail.SkuNo && m.LotNo == stockDetail.LotNo); if (pinStockDetail != null) { if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐� { - if (pinStockDetail.SONo != notice.SONo) + var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id != pinStockDetail.Id).ToList(); + if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0) { throw Oops.Bah("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�"); - } - if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo) - { - isNew = true; } } } @@ -617,6 +636,7 @@ sd.IsDel = "0"; sd.CreateUser = userId; sd.CreateTime = nowDate; + sd.UDF5 = "1"; //鏂板鎷兼墭搴撳瓨鏄庣粏淇℃伅 await Db.Insertable(sd).ExecuteReturnIdentityAsync(); @@ -628,11 +648,13 @@ //淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏 pinStockDetail.Qty += int.Parse(PickQty); pinStockDetail.LockQty += int.Parse(PickQty); + pinStockDetail.UDF5 = "1"; await Db.Updateable(pinStockDetail).ExecuteCommandAsync(); } else { pinStockDetail.SONo = soNo; + pinStockDetail.UDF5 = "1"; await Db.Updateable(pinStockDetail).ExecuteCommandAsync(); } } @@ -697,7 +719,7 @@ await Db.Updateable(allot).ExecuteCommandAsync(); int isDel = 0; - + var locateStr = stockDetail.LocatNo; if (palletNo != palletNoNew) { //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁� @@ -742,6 +764,15 @@ pallet.Status = "0"; await Db.Updateable(pallet).ExecuteCommandAsync(); + + //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣� + var locate = Db.Queryable<SysStorageLocat>().First(m=>m.IsDel == "0" && m.LocatNo == locateStr); + if (locate!=null) + { + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } + } //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲� @@ -803,10 +834,10 @@ throw Oops.Bah("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜"); } var palletInfo = await Db.Queryable<DataStockDetail>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == palletNo); - if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") - { - throw Oops.Bah("璇ユ墭鐩樿繕鏈嚭搴�"); - } + //if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1") + //{ + // throw Oops.Bah("璇ユ墭鐩樿繕鏈嚭搴�"); + //} if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁 { var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync(); diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index e0f4851..398927b 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -29,6 +29,7 @@ using System.Diagnostics; using System.Drawing.Drawing2D; using Model.ModelDto.LogDto; +using AutoMapper.Internal; namespace WMS.BLL.BllSoServer { @@ -1016,7 +1017,7 @@ var stockRst = new StockServer(); var stockDetailRst = new StockDetailServer(); Expression<Func<DataStockDetail, bool>> item = Expressionable.Create<DataStockDetail>() - .And(it => it.WareHouseNo == house) + .And(it => it.WareHouseNo == house || string.IsNullOrWhiteSpace(it.LocatNo)) .AndIF(!string.IsNullOrWhiteSpace(inspectStatus), it => inspectStatus.Contains(it.InspectStatus)) .And(m => skuStrList.Contains(m.SkuNo)) .AndIF(type == "6", m => m.OwnerNo == ownerNo)//浠e偍鍑哄簱闇�瑕佸叧鑱旇揣涓� @@ -1249,7 +1250,7 @@ IsWave = "0", WaveNo = "", IsDespatch = "0", - + WareHouseNo = model.WareHouseNo, CreateUser = userId, }; @@ -3025,9 +3026,40 @@ try { List<LogTask> logTaskList = new List<LogTask>();//姝ゆ鍑哄簱浠诲姟闆嗗悎锛屼负搴斿鍚屾墭鐩樹笉鍚岀墿鏂欏嚭搴� + var i = 0; + var outLocatelist1 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B02" && m.Flag == "0").ToList(); + var outLocatelist2 = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.AreaNo == "B05" && m.Flag == "0").ToList(); //寰幆鍒嗛厤鐨勪俊鎭敓鎴愬嚭搴撲换鍔� foreach (var item in list) { + var outModeLocate = ""; + if (outMode == "1") + { + if (i < outLocatelist1.Count) + { + outModeLocate = outLocatelist1[i].LocatNo; + } + else + { + var j = i % outLocatelist1.Count; + + outModeLocate = outLocatelist1[j].LocatNo; + } + } + else if(outMode == "2") + { + if (i < outLocatelist1.Count) + { + outModeLocate = outLocatelist2[i].LocatNo; + } + else + { + var j = i % outLocatelist1.Count; + + outModeLocate = outLocatelist2[j].LocatNo; + } + } + var taskNoStr = ""; // 鍌ㄤ綅鍙� @@ -3050,7 +3082,7 @@ { //濡傛灉涓嶅湪浠撳簱鍐咃紝褰撳墠鍒嗛厤淇℃伅鐩存帴鏇存柊鍑哄簱瀹屾垚 item.Status = "2";//鐘舵�� - item.OutMode = outMode;//鍑哄簱鍙� + item.OutMode = outModeLocate;//鍑哄簱鍙� Db.Updateable(item).ExecuteCommand(); var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(m => m.IsDel == "0" && m.Id == item.SODetailNo); if (noticeDetail != null) //鏇存柊鍑哄簱鍗曟嵁鐨勪笅鍙戞暟閲� @@ -3072,6 +3104,7 @@ } flagList.Add(0); continue; + } var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo && m.IsDel == "0");//褰撳墠鍑哄簱鐨勫偍浣嶄俊鎭� @@ -3102,7 +3135,7 @@ IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 StartLocat = locate.LocatNo,//璧峰浣嶇疆 - EndLocat = outMode,//鐩爣浣嶇疆 + EndLocat = outModeLocate,//鐩爣浣嶇疆 PalletNo = item.PalletNo,//鎵樼洏鐮� IsSend = 1,//鏄惁鍙啀娆′笅鍙� IsCancel = 1,//鏄惁鍙彇娑� @@ -3110,7 +3143,7 @@ Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - Msg = "浠�" + locate.LocatNo + "鍒�" + outMode + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 + Msg = "浠�" + locate.LocatNo + "鍒�" + outModeLocate + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 }; Db.Insertable(exTask).ExecuteCommand(); logTaskList.Add(exTask); @@ -3120,10 +3153,10 @@ PalletNo = item.PalletNo,//鎵樼洏鍙� StartLocate = locate.LocatNo, // 璧峰浣嶇疆 StartRoadway = locate.RoadwayNo,//鍏跺疄宸烽亾 - EndLocate = outMode, // 鐩爣浣嶇疆 + EndLocate = outModeLocate, // 鐩爣浣嶇疆 TaskNo = exTask.TaskNo, // 浠诲姟鍙� TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� - OutMode = outMode, //鍑哄簱鍙� + OutMode = outModeLocate, //鍑哄簱鍙� Order = 1, //UnstackingMode = "unstackingMode2",//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑� @@ -3157,17 +3190,21 @@ } locate.Status = "3"; //瑕佸嚭搴撶殑鍌ㄤ綅鏀瑰彉鐘舵�� 姝e湪鍑哄簱 Db.Updateable(locate).ExecuteCommand(); + var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == outModeLocate && m.IsDel == "0");//褰撳墠鍑哄簱鐨勭洰鏍囧偍浣嶄俊鎭� + locate2.Status = "4"; + Db.Updateable(locate2).ExecuteCommand(); item.TaskNo = taskNoStr; // 鍑哄簱鍒嗛厤淇℃伅涓洿鏂颁换鍔″彿 item.Status = "1"; // 鍑哄簱鍒嗛厤淇℃伅鐘舵�佹敼涓烘鍦ㄦ墽琛� //item.UnstackingMode = unstackingMode2;//鎷嗗灈鏂瑰紡 - item.OutMode = outMode;//鍑哄簱鍙� + item.OutMode = outModeLocate;//鍑哄簱鍙� //item.LoadingAddre = unstackingMode2 == "0" ? loadingAddre : "";//瑁呰溅鍙� Db.Updateable(item).ExecuteCommand(); #endregion flagList.Add(0); + i++; } else if (locate.Status == "3") //鍑哄簱涓� { @@ -4100,7 +4137,6 @@ return bl; } - private class addreClass { public string slotCode { get; set; } @@ -4113,6 +4149,289 @@ public string AisleOne { get; set; } } + + /// <summary> + /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛� + /// </summary> + /// <param name="taskNo"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> + public void ExportSuccess(string taskNo, int userId) + { + try + { + //褰撳墠浠诲姟淇℃伅 + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + if (task == null) + { + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + } + if (task.Status == "2") + { + throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); + } + Db.BeginTran(); + //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); + var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault(); + //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅 + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo); + try + { + task.Status = "2";//浠诲姟鐘舵�� + task.IsSend = 0; + task.IsCancel = 0; + task.IsFinish = 0; + task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + Db.Updateable(task).ExecuteCommand(); + if (locate != null) + { + locate.Status = "0"; // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級 + Db.Updateable(locate).ExecuteCommand(); + } + foreach (var item in stockDetail) + { + if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴� + { + //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺 + var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099"); + + if (stock != null) + { + if (item.LockQty != null) + { + stock.Qty -= item.LockQty.Value; + stock.LockQty -= item.LockQty.Value; + Db.Updateable(stock).ExecuteCommand(); + } + + if (stock.Qty == 0) + { + Db.Deleteable(stock).ExecuteCommand(); + } + } + + //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤 + var sCode = Db.Queryable<SysPallets>().First(m => m.PalletNo == item.PalletNo); + if (sCode != null) + { + sCode.Status = "0"; + Db.Updateable(sCode).ExecuteCommand(); + } + Db.Deleteable(item).ExecuteCommand(); + + continue; + } + item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� + item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 + item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 + item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 + + } + //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級 + var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList(); + var PalletType = "0"; //0锛氱墿鏂欐墭 1锛氱┖鎵樼洏鎵� + + foreach (var item in allot) + { + if (item.SkuNo == "100099") + { + item.Status = "5"; + item.CompleteQty += stockDetail[0].Qty; + PalletType = "1"; + } + else + { + item.Status = "2"; + } + + } + + var endLocateList = Db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && (m.AreaNo == "B02" || m.AreaNo == "B05")).Select(m=>m.LocatNo).ToList(); + //鍒ゆ柇鏄惁鏄師杈呮枡鍑哄簱浠诲姟 璐ф灦鍌ㄤ綅=銆嬪钩搴撳偍浣� + if ( endLocateList.Contains(task.EndLocat) && PalletType == "0") + { + //淇敼鐩爣鍦板潃鐘舵�� + var endLocat = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == task.EndLocat); + endLocat.Status = "1"; + Db.Updateable(endLocat).ExecuteCommand(); + foreach (var item in stockDetail) + { + item.LocatNo = endLocat.LocatNo;//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� + item.WareHouseNo = endLocat.WareHouseNo;//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 + item.RoadwayNo = endLocat.RoadwayNo;//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 + item.AreaNo = endLocat.AreaNo;//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 + } + } + Db.Updateable(stockDetail).ExecuteCommand(); + Db.Updateable(allot).ExecuteCommand(); + + if (userId != 0) + { + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId); + } + + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + } + catch (Exception ex) + { + throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); + } + } + + /// <summary> + /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙绉诲簱鎴愬姛锛� + /// </summary> + /// <param name="taskNo">浠诲姟鍙�</param> + /// <param name="userId">鎿嶄綔浜�</param> + /// <exception cref="Exception"></exception> + public void RelocationSuccess(string taskNo, int userId) + { + try + { + //褰撳墠浠诲姟淇℃伅 + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + if (task == null) + { + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + } + if (task.Status == "2") + { + throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); + } + Db.BeginTran(); + //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); + //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅 + //褰撳墠浠诲姟涓殑鍘熷偍浣� + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); + if (locate == null) + { + throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); + if (locate2 == null) + { + throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); + } + //骞冲簱涓偍浣嶉泦鍚� + var pingKuLocate = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0").ToList(); + var pingKuList = pingKuLocate.Select(m => m.LocatNo).ToList(); + try + { + + task.Status = "5";//浠诲姟鐘舵�� + //鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱 + if (pingKuList.Contains(task.StartLocat) && pingKuList.Contains(task.EndLocat)) + { + task.Status = "2"; + } + + task.IsSend = 0; + task.IsCancel = 0; + task.IsFinish = 0; + task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 + Db.Updateable(task).ExecuteCommand(); + + #region 淇敼鍌ㄤ綅鐘舵�� + + if (!pingKuList.Contains(task.StartLocat)) + { + //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0 + locate.Status = "0"; + Db.Updateable(locate).ExecuteCommand(); + } + + + //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1 + locate2.Status = "1"; + Db.Updateable(locate2).ExecuteCommand(); + //鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱 + if ( pingKuList.Contains(task.EndLocat)) + { + foreach (var item in stockDetail) + { + item.WareHouseNo = locate2.WareHouseNo; + item.AreaNo = locate2.AreaNo; + item.RoadwayNo = locate2.RoadwayNo; + item.LocatNo = locate2.LocatNo; + } + Db.Updateable(stockDetail).ExecuteCommand(); + } + + + #endregion + + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + } + catch (Exception ex) + { + throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); + } + } + + /// <summary> + /// AGV浠诲姟鍙栬揣瀹屾垚鍙嶉 + /// </summary> + /// <param name="taskNo"></param> + public void AGVQuHuoSuccess(string taskNo) + { + try + { + Db.BeginTran(); + var task = Db.Queryable<LogTask>().First(m=>m.IsDel =="0" && m.TaskNo == taskNo); + if (task == null) + { + throw new Exception("娌℃湁鏌ヨ鍒颁换鍔′俊鎭�"); + } + if (task.Status!="1") + { + throw new Exception("浠诲姟鐘舵�佷笉鏄鍦ㄦ墽琛岋紝璇锋牳瀹�"); + } + var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat && m.IsDel == "0"); + if (locate == null) + { + throw new Exception("娌℃湁鏌ヨ鍒拌捣濮嬪偍浣嶄俊鎭�"); + } + if (locate.WareHouseNo!="W04") + { + throw new Exception("璧峰鍌ㄤ綅涓嶆槸骞冲簱鍌ㄤ綅锛岃鏍稿疄"); + } + locate.Status = "0"; //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣� + Db.Updateable(locate).ExecuteCommand(); + //鏌ヨ鍑烘墭鐩樹俊鎭� 鏇存敼搴撳瓨鍌ㄤ綅淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == task.PalletNo).ToList(); + foreach (var item in stockDetail) + { + item.WareHouseNo = ""; + item.AreaNo = ""; + item.RoadwayNo = ""; + item.LocatNo = ""; + } + Db.Updateable(stockDetail).ExecuteCommand(); + Db.CommitTran(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + #endregion #endregion @@ -5599,338 +5918,6 @@ } } - //wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙鍑哄簱鎴愬姛锛� - public void ExportSuccess(string taskNo, int userId) - { - try - { - //褰撳墠浠诲姟淇℃伅 - var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); - if (task == null) - { - throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); - } - if (task.Status == "2") - { - throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); - } - Db.BeginTran(); - //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 - var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); - var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault(); - //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅 - var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == locateNo); - try - { - task.Status = "2";//浠诲姟鐘舵�� - task.IsSend = 0; - task.IsCancel = 0; - task.IsFinish = 0; - task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 - Db.Updateable(task).ExecuteCommand(); - if (locate != null) - { - locate.Status = "0"; // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級 - Db.Updateable(locate).ExecuteCommand(); - } - foreach (var item in stockDetail) - { - if (item.SkuNo == "100099")//鍒ゆ柇鏄惁鏄┖鎵樺嚭搴� - { - //鍒ゆ柇鎬诲簱瀛樻槸鍚︿负0锛屽鏋滀负0鍒犻櫎 鍚﹀垯鍑忓幓鏁伴噺 - var stock = Db.Queryable<DataStock>().First(m => m.SkuNo == "100099"); - - if (stock != null) - { - if (item.LockQty != null) - { - stock.Qty -= item.LockQty.Value; - stock.LockQty -= item.LockQty.Value; - Db.Updateable(stock).ExecuteCommand(); - } - - if (stock.Qty == 0) - { - Db.Deleteable(stock).ExecuteCommand(); - } - } - - //鎵樼洏鐘舵�佹敼涓烘湭浣跨敤 - var sCode = Db.Queryable<SysPallets>().First(m => m.PalletNo == item.PalletNo); - if (sCode != null) - { - sCode.Status = "0"; - Db.Updateable(sCode).ExecuteCommand(); - } - Db.Deleteable(item).ExecuteCommand(); - - #region 鎷h揣淇℃伅 - - //var pickQty = 0;//鎷h揣鐨勬暟閲� - //var comList = new List<BllCompleteDetail>(); - // //娣诲姞鎷h揣鏄庣粏 - // var completeDetail = new BllCompleteDetail() - // { - // SONo = "", - // SODetailNo = 0, - // ExportAllotId = 0, - // StockId = exportAllot.StockId, - // BoxNo = item.BoxNo, - // BoxNo2 = item.BoxNo2, - // BoxNo3 = item.BoxNo3, - - // LotNo = exportAllot.LotNo, - // LotText = exportAllot.LotText, - // SupplierLot = exportAllot.SupplierLot, - // SkuNo = exportAllot.SkuNo, - // SkuName = exportAllot.SkuName, - // Standard = exportAllot.Standard, - // PalletNo = palletNo, - // CompleteQty = item.Qty, - - // CreateUser = userId - // }; - // comList.Add(completeDetail); - - // //鍒犻櫎搴撳瓨绠辩爜鏄庣粏 - // Db.Deleteable(item).ExecuteCommand(); - // pickQty += item.Qty; - - // exportAllot.Status = "5"; //寰呭洖搴� : 宸插畬鎴� - // exportAllot.CompleteQty += item.Qty; //鎷h揣鏁伴噺 - // exportAllot.UpdateUser = userId; //淇敼浜� - // exportAllot.UpdateTime = serverTime; //淇敼鏃堕棿 - - // Db.Updateable(exportAllot).ExecuteCommand(); - - // //楠岃瘉鎷h揣淇℃伅鏄惁涓哄凡瀹屾垚 - // if (exportAllot.Status == "5") - // { - // break; - // } - - - //Db.Insertable(comList).ExecuteCommand(); - - - #endregion - - continue; - } - item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛� - item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級 - item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級 - item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 - Db.Updateable(item).ExecuteCommand(); - } - //鍑哄簱娴佹按锛堟洿鏀圭姸鎬侊級 - var allot = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == "1" && m.PalletNo == task.PalletNo))).ToList(); - var PalletType = "0"; //0锛氱墿鏂欐墭 1锛氱┖鎵樼洏鎵� - var soNo = ""; - var sku = ""; - foreach (var item in allot) - { - if (item.SkuNo == "100099") - { - item.Status = "5"; - item.CompleteQty += stockDetail[0].Qty; - PalletType = "1"; - } - else - { - item.Status = "2"; - soNo = item.SONo; - sku = item.SkuNo; - } - - } - //涓嬪彂鍥涙ゼ璋冨害AGV鐨勪换鍔� - if ((task.EndLocat == "outMode" || task.EndLocat == "outMode") && PalletType == "0") - { - foreach (var item in allot) - { - var detail = Db.Queryable<DataStockDetail>().First(m => m.Id == item.StockId); - detail.SONo = item.SONo; - Db.Updateable(detail).ExecuteCommand(); - } - - var locatePing = new AllotLocation().GetPingLocate(soNo, sku); - if (locatePing == null) - { - throw new Exception("骞冲簱鏈煡璇㈠埌绌轰綅缃�"); - } - var exTask = new LogTask //鍑哄簱浠诲姟 - { - TaskNo = new Common().GetMaxNo("TK"), - Sender = "WMS", - Receiver = "AGV", - IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 - - StartLocat = task.EndLocat,//璧峰浣嶇疆 - EndLocat = locatePing.LocatNo,//outMode,//鐩爣浣嶇疆 - PalletNo = task.PalletNo,//鎵樼洏鐮� - IsSend = 1,//鏄惁鍙啀娆′笅鍙� - IsCancel = 1,//鏄惁鍙彇娑� - IsFinish = 1,//鏄惁鍙畬鎴� - Type = "1",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 - Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 - OrderType = "1",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - Msg = "浠�" + task.EndLocat + "鍒�" + locatePing.LocatNo + "鐨勫嚭搴撲换鍔�", //鍏抽敭淇℃伅 - }; - Db.Insertable(exTask).ExecuteCommand(); - - var outDto = new List<OutCommandDto> - { - new OutCommandDto() - { - PalletNo = task.PalletNo,//鎵樼洏鍙� - StartLocate = task.EndLocat, // 璧峰浣嶇疆 - StartRoadway = "",//鍏跺疄宸烽亾 - EndLocate = locatePing.LocatNo,//outMode, // 鐩爣浣嶇疆 - TaskNo = exTask.TaskNo, // 浠诲姟鍙� - TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱)0鍏� 1鍑� 2绉� - OutMode = "", //鍑哄簱鍙� - Order = 1, - - //UnstackingMode = unstackingMode2,//鎷h揣鏂瑰紡 0鏈哄櫒鎷嗘墭鍑� 1 浜哄伐鎷h揣鍑� - //CompleteQty = outCount2, //鎷嗙殑浠舵暟 - //BoxexQty = outCount, //鎬讳欢鏁� - } - }; - // 姝e紡杩愯绋嬪簭鏀惧紑 - var list2 = outDto.Select(m => m.TaskNo).ToList(); - var jsonData = JsonConvert.SerializeObject(outDto); - string response = ""; - - try - { - var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") - //response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); - 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); - } - } - - Db.Updateable(allot).ExecuteCommand(); - - if (userId != 0) - { - //娣诲姞鎿嶄綔鏃ュ織璁板綍 - var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId); - } - - - - Db.CommitTran(); - } - catch (Exception ex) - { - Db.RollbackTran(); - throw new Exception(ex.Message); - } - } - catch (Exception ex) - { - throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); - } - } - - /// <summary> - /// wcs杩斿洖鐨勬垚鍔熶俊鍙凤紙绉诲簱鎴愬姛锛� - /// </summary> - /// <param name="taskNo">浠诲姟鍙�</param> - /// <param name="userId">鎿嶄綔浜�</param> - /// <exception cref="Exception"></exception> - public void RelocationSuccess(string taskNo, int userId) - { - try - { - //褰撳墠浠诲姟淇℃伅 - var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); - if (task == null) - { - throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); - } - if (task.Status == "2") - { - throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); - } - Db.BeginTran(); - //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 - var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); - //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅 - //褰撳墠浠诲姟涓殑鍘熷偍浣� - var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat); - if (locate == null) - { - throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); - } - var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); - if (locate2 == null) - { - throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�"); - } - - try - { - task.Status = "2";//浠诲姟鐘舵�� - task.IsSend = 0; - task.IsCancel = 0; - task.IsFinish = 0; - task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿 - Db.Updateable(task).ExecuteCommand(); - - #region 淇敼鍌ㄤ綅鐘舵�� - - //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0 - locate.Status = "0"; - Db.Updateable(locate).ExecuteCommand(); - - //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1 - locate2.Status = "1"; - Db.Updateable(locate2).ExecuteCommand(); - foreach (var item in stockDetail) - { - item.WareHouseNo = locate2.WareHouseNo; - item.AreaNo = locate2.AreaNo; - item.RoadwayNo = locate2.RoadwayNo; - item.LocatNo = locate2.LocatNo; - } - Db.Updateable(stockDetail).ExecuteCommand(); - - #endregion - - Db.CommitTran(); - } - catch (Exception ex) - { - Db.RollbackTran(); - throw new Exception(ex.Message); - } - } - catch (Exception ex) - { - throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); - } - } - - //閲嶆柊涓嬪彂鍑哄簱浠诲姟 public OutCommandDto AgainSendSoTask(string taskNo, int userId, string url) { diff --git a/Wms/WMS.Entity/DataEntity/DataBoxInfo.cs b/Wms/WMS.Entity/DataEntity/DataBoxInfo.cs index da64106..0d2e776 100644 --- a/Wms/WMS.Entity/DataEntity/DataBoxInfo.cs +++ b/Wms/WMS.Entity/DataEntity/DataBoxInfo.cs @@ -79,10 +79,10 @@ /// Default: /// Nullable:True /// </summary> - public decimal? FullQty {get;set;} + public decimal? FullQty {get;set; } /// <summary> - /// Desc:鐘舵�� + /// Desc:鐘舵�� 0 鏈粍鎵� 1宸茬粍鎵� 2 宸插叆搴� 3 宸插嚭搴� 4 宸插垎閰� 5 宸叉嫞璐� /// Default: /// Nullable:True /// </summary> diff --git a/Wms/WMS.Entity/DataEntity/DataStockDetail.cs b/Wms/WMS.Entity/DataEntity/DataStockDetail.cs index 49e77d1..74efbbb 100644 --- a/Wms/WMS.Entity/DataEntity/DataStockDetail.cs +++ b/Wms/WMS.Entity/DataEntity/DataStockDetail.cs @@ -269,6 +269,12 @@ /// Nullable:True /// </summary> public string Demo { get; set; } + /// <summary> + /// Desc:鏄惁闇�瑕佹敹璐ф墭鐩� 1 杞﹂棿鏀惰揣 2 浠撳簱鏀惰揣 + /// Default: + /// Nullable:True + /// </summary> + public string UDF5 { get; set; } } } diff --git a/Wms/WMS.Entity/LogEntity/LogTask.cs b/Wms/WMS.Entity/LogEntity/LogTask.cs index 6856df2..35bcb33 100644 --- a/Wms/WMS.Entity/LogEntity/LogTask.cs +++ b/Wms/WMS.Entity/LogEntity/LogTask.cs @@ -136,7 +136,7 @@ /// <summary> /// Desc:鐘舵�� - /// Default:0 绛夊緟鎵ц 1 姝e湪鎵ц 2 鎵ц瀹屾垚 3 寮傚父缁撴潫 4 宸插彇娑� + /// Default:0 绛夊緟鎵ц 1 姝e湪鎵ц 2 鎵ц瀹屾垚 3 寮傚父缁撴潫 4 宸插彇娑� 5绛夊緟纭 /// Nullable:True /// </summary> public string Status {get;set;} diff --git a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs index fddfb06..80b504d 100644 --- a/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs +++ b/Wms/WMS.IBLL/IBllSoServer/IExportNoticeServer.cs @@ -195,8 +195,6 @@ /// <returns>涓嬪彂鐨勬寚浠ら泦鍚�</returns> List<OutCommandDto> IssueOutHouse(string soNo, string unstackingMode, string outMode, string loadingAddre, int userId,string url,out string str); - - /// <summary> /// wcs杩斿洖鐨勬垚鍔熶俊鍙锋垨鎵嬪姩瀹屾垚锛堝嚭搴撴垚鍔燂級 /// </summary> @@ -213,6 +211,13 @@ void RelocationSuccess(string taskNo, int userId); /// <summary> + /// AGV浠诲姟鍙栬揣瀹屾垚鍙嶉 + /// </summary> + /// <param name="taskNo"></param> + void AGVQuHuoSuccess(string taskNo); + + + /// <summary> /// 閲嶆柊涓嬪彂鍑哄簱浠诲姟 /// </summary> /// <param name="taskNo">浠诲姟鍙�</param> diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs index 9c0210f..aaa18a1 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs @@ -156,6 +156,21 @@ #region 绠辩爜鎷嗙璐存爣 //绠辩爜鎷嗙娣诲姞鏍囩淇℃伅 void AddLableByDevanning(string boxNo,decimal devanQty, int userId); + + + /// <summary> + /// 鏍规嵁鏀惰揣鎵樼洏鑾峰彇鍑哄簱鍗曚俊鎭� + /// </summary> + /// <param name="palletNo"></param> + string GetReceiptSoNoByPallet(string palletNo); + + /// <summary> + /// 杞﹂棿鏀惰揣 + /// </summary> + /// <param name="palletNo"></param> + /// <param name="userId"></param> + void ConfirmReceipt(string palletNo, int userId); + #endregion diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs index bf8ff98..210aeea 100644 --- a/Wms/Wms/Controllers/DownApiController.cs +++ b/Wms/Wms/Controllers/DownApiController.cs @@ -504,7 +504,7 @@ } break; case "2"://鐩樺簱瀹屾垚浠诲姟 - if (model.TaskType == "1")//0锛氬叆搴� 1锛氬嚭搴� 3锛氱Щ搴� + if (model.TaskType == "1")//0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� { _crCheckSvc.CheckSuccess(model.TaskNo, 0); return Ok(new WcsModel { StatusCode = 0, Msg = "鐩樼偣鍑哄簱瀹屾垚" }); @@ -516,7 +516,7 @@ } break; case "3"://绉诲簱瀹屾垚浠诲姟銆佷紭鍖栧偍浣� - if (model.TaskType == "3") //0锛氬叆搴� 1锛氬嚭搴� 3锛氱Щ搴� + if (model.TaskType == "3") //0锛氬叆搴� 1锛氬嚭搴� 2锛氱Щ搴� { //濉啓绉诲簱瀹屾垚浠g爜 } @@ -534,6 +534,31 @@ /// <summary> + /// WCS鍙嶉AGV浠诲姟鍙栬揣瀹屾垚 + /// </summary> + /// <returns></returns> + [HttpPost] + public IActionResult AGVQuHuoSuccess(ReceiveWcsSignal model) + { + var logStr = $@".\log\WCS\AGV鍙栬揣瀹屾垚鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + try + { + var jsonData = JsonConvert.SerializeObject(model); + LogFile.SaveLogToFile($"AGV鍙栬揣瀹屾垚鍙嶉锛�( {jsonData} ),", logStr); + + _exNoticeSvc.AGVQuHuoSuccess(model.TaskNo); + var data = new HttpReturnModel { Success = "0", Message = "鎴愬姛" }; + LogFile.SaveLogToFile($"AGV鍙栬揣瀹屾垚鍙嶉锛�({JsonConvert.SerializeObject(data)}),", logStr); + return Ok(data); + } + catch (Exception e) + { + LogFile.SaveLogToFile($"AGV鍙栬揣瀹屾垚鍙嶉锛�( {e.Message} ),", logStr); + return Ok(new HttpReturnModel { Success = "-1", Message = e.Message }); + } + } + + /// <summary> /// 绌哄彇寮傚父 /// </summary> /// <returns></returns> diff --git a/Wms/Wms/Controllers/PdaCrController.cs b/Wms/Wms/Controllers/PdaCrController.cs index 9dea8fb..9a2d0d9 100644 --- a/Wms/Wms/Controllers/PdaCrController.cs +++ b/Wms/Wms/Controllers/PdaCrController.cs @@ -323,5 +323,50 @@ } #endregion + #region 纭鏀惰揣 + + /// <summary> + /// 鏍规嵁鏀惰揣鎵樼洏鑾峰彇鍑哄簱鍗曚俊鎭� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public IActionResult GetReceiptSoNoByPallet(PdaReceiptVm model) + { + try + { + + var soNo = _pdaCrSvc.GetReceiptSoNoByPallet(model.PalletNo); + + return Ok(new { data = soNo, code = 0, msg = "鎴愬姛" }); + } + catch (Exception e) + { + return Ok(new { data = "", code = 1, msg = $"寮傚父锛歿e.Message}" }); + } + } + + /// <summary> + /// 纭鏀惰揣 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public IActionResult ConfirmReceipt(PdaReceiptVm model) + { + try + { + _pdaCrSvc.ConfirmReceipt(model.PalletNo, _userManager.UserId); + + return Ok(new { data = "", code = 0, msg = "鎴愬姛" }); + } + catch (Exception e) + { + return Ok(new { data = "", code = 1, msg = $"寮傚父锛歿e.Message}" }); + } + } + + #endregion + } } -- Gitblit v1.8.0