From 157abc191c34e57c1b958ae74fc3de6518ca8a30 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期五, 28 二月 2025 11:06:36 +0800 Subject: [PATCH] 修改客户需求 --- Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 1 Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs | 10 Wms/Wms/Controllers/PdaAsnController.cs | 27 Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs | 5 Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs | 55 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 38 + Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs | 8 HTML/views/ASNSetting/ArrivalLogTask.html | 2 HTML/views/ASNSetting/LabelPrintSelect.html | 14 HTML/views/ASNSetting/RequestLocation.html | 8 Wms/Model/ModelDto/SysDto/MaterialsDto.cs | 4 Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs | 3 Wms/Utility/XML/ExInfoXml.xml | 32 Wms/Model/ModelVm/PdaVm/PdaCrVm.cs | 17 Wms/Model/ModelVm/PdaVm/PdaSoVm.cs | 12 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs | 148 +++++ HTML/views/ASNSetting/ArrivalNotice.html | 4 HTML/views/BaseSetting/MaterialsForm.html | 16 HTML/views/ASNSetting/LabelPrint.html | 10 HTML/views/SOSetting/ExportNotice.html | 2 HTML/views/ASNSetting/LabelBoxBuDa.html | 7 Wms/Wms/Controllers/PdaCrController.cs | 33 + Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 76 +- Wms/WMS.BLL/LogServer/TaskServer.cs | 5 HTML/views/WareHouseSetting/LocateEditArea.html | 24 Wms/WMS.IBLL/ILogServer/ITaskServer.cs | 2 Pda/View/SoSetting/palletOut.html | 155 ++++ Wms/WMS.BLL/DataServer/StockServer.cs | 428 +++++++++++++- Pda/View/AsnSetting/palletEnter.html | 117 +++ HTML/views/WareHouseSetting/Roadway.html | 14 Wms/Utility/Tools/HttpHelper.cs | 2 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs | 11 HTML/views/BaseSetting/Materials.html | 6 HTML/views/index.html | 2 HTML/views/QualityControl/QualityInformation.html | 2 Wms/WMS.BLL/SysServer/PackagServer.cs | 5 Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs | 309 ++++++++-- Wms/WMS.BLL/SysServer/MaterialsServer.cs | 12 Wms/Model/InterFaceModel/HttpModel.cs | 6 Wms/WMS.IBLL/IDataServer/IStockServer.cs | 12 Wms/Wms/Controllers/DownApiController.cs | 44 + 41 files changed, 1,407 insertions(+), 281 deletions(-) diff --git a/HTML/views/ASNSetting/ArrivalLogTask.html b/HTML/views/ASNSetting/ArrivalLogTask.html index 5cbcd1b..da83d21 100644 --- a/HTML/views/ASNSetting/ArrivalLogTask.html +++ b/HTML/views/ASNSetting/ArrivalLogTask.html @@ -540,7 +540,7 @@ title: '鐢宠鍌ㄤ綅', content: 'RequestLocation.html', maxmin: true, - area: ['25%', '40%'], + area: ['25%', '60%'], btn: ["纭畾", "鍙栨秷"], yes: function (index, layero) { diff --git a/HTML/views/ASNSetting/ArrivalNotice.html b/HTML/views/ASNSetting/ArrivalNotice.html index 31f6d04..461c73a 100644 --- a/HTML/views/ASNSetting/ArrivalNotice.html +++ b/HTML/views/ASNSetting/ArrivalNotice.html @@ -156,7 +156,7 @@ <div class="layui-inline DivLoadingArea" style="margin-top: 10px;"> <label class="layui-form-label">瀵嗙爜</label> <div class="layui-input-inline" style="width: 220px;"> - <input type="text" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off" + <input type="password" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off" class="layui-input"> </div> </div> @@ -909,6 +909,7 @@ //鏄庣粏琛ㄦ搷浣滄爮浜嬩欢 table.on('tool(LAY-app-content-list2)', function (obj) { var data = obj.data; + console.log("data.supplierlot:"+data.SupplierLot); var lotno = data.LotNo; @@ -940,6 +941,7 @@ } }); }); + break; case "Addlabel" : diff --git a/HTML/views/ASNSetting/LabelBoxBuDa.html b/HTML/views/ASNSetting/LabelBoxBuDa.html index 1a17122..2e1990e 100644 --- a/HTML/views/ASNSetting/LabelBoxBuDa.html +++ b/HTML/views/ASNSetting/LabelBoxBuDa.html @@ -46,6 +46,9 @@ .font-size10{ font-size: 10px; } + /* .layui-table-cell { + word-break: break-all; + } */ </style> </head> @@ -75,13 +78,13 @@ </tr> --> <tr> <td class="font-size12">杩涘巶缂栧彿</td> - <td id="LotNo" class="font-size10"></td> + <td id="LotNo" style="overflow-wrap: break-word;" class="font-size10"></td> <td class="font-size12">鐗╂枡浠g爜</td> <td id="SkuNo" class="font-size10"></td> </tr> <tr> <td class="font-size12">鍘熷巶鎵瑰彿</td> - <td id="SupplierLot" class="font-size10"></td> + <td id="SupplierLot" style="overflow-wrap: break-word;" class="font-size10"></td> <td class="font-size12">鏁� 閲�</td> <td id="Qty" class="font-size10"></td> </tr> diff --git a/HTML/views/ASNSetting/LabelPrint.html b/HTML/views/ASNSetting/LabelPrint.html index aaa3fa2..ddce481 100644 --- a/HTML/views/ASNSetting/LabelPrint.html +++ b/HTML/views/ASNSetting/LabelPrint.html @@ -119,9 +119,11 @@ var expirationTime = getQueryString('ExpirationTime'); var storeTime = getQueryString('StoreTime'); + + var supplierLot=getQueryString('SupplierLot'); //鍘熷巶鎵瑰彿 - $("#SupplierLot").html(supplierLot); - console.log(supplierLot); + //$("#SupplierLot").html(supplierLot); + //console.log(supplierLot); var Lotno=getQueryString('Lotno'); //鍘熷巶鎵瑰彿 $("#Lotno").html(Lotno); @@ -191,7 +193,9 @@ $("#SkuNo").html(res.data.SkuNo); $("#ExpirationTime").html(expirationTime); - $("#StoreTime").html( storeTime); + $("#StoreTime").html(storeTime); + $("#SupplierLot").html(res.data.SupplierLot); + // $("#imgBar").attr("src", res.data[0].imageStr); } else { //涓嶆垚鍔� diff --git a/HTML/views/ASNSetting/LabelPrintSelect.html b/HTML/views/ASNSetting/LabelPrintSelect.html index 6bf016f..d7a2ea3 100644 --- a/HTML/views/ASNSetting/LabelPrintSelect.html +++ b/HTML/views/ASNSetting/LabelPrintSelect.html @@ -122,9 +122,9 @@ }); var id = getQueryString('Id'); - var SupplierLot=getQueryString('SupplierLot');//渚涜揣鎵规 - $('#SupplierLot').val(SupplierLot); - console.log(SupplierLot); + //var SupplierLot=getQueryString('SupplierLot');//渚涜揣鎵规 + //$('#SupplierLot').val(SupplierLot); + //console.log(SupplierLot); var asnType = getQueryString('Type'); console.log(asnType); console.log(asnType == 4); @@ -145,6 +145,7 @@ $("#productionTime").val(res.data.ProductionTime); $("#expirationTime").val(res.data.ExpirationTime); $("#storeTime").val(res.data.StoreTime); + $("#SupplierLot").val(res.data.SupplierLot); console.log(res.data); } else { //涓嶆垚鍔� layer.msg(res.msg, { @@ -215,6 +216,13 @@ if (r != null) return unescape(r[2]); return null; } + // 鑾峰彇浼犻�掑弬鏁� + function getQueryString2(name) { + var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); + var r = window.location.search.substr(1).match(reg); + if (r != null) return unescape(r[2]); + return null; + } }) </script> diff --git a/HTML/views/ASNSetting/RequestLocation.html b/HTML/views/ASNSetting/RequestLocation.html index 5533e0a..3cc2f24 100644 --- a/HTML/views/ASNSetting/RequestLocation.html +++ b/HTML/views/ASNSetting/RequestLocation.html @@ -33,6 +33,14 @@ <option value=""></option> <option value="R01">1宸烽亾</option> <option value="R02">2宸烽亾</option> + <option value="R03">3宸烽亾</option> + <option value="R04">4宸烽亾</option> + <option value="R05">5宸烽亾</option> + <option value="R06">6宸烽亾</option> + <option value="R07">7宸烽亾</option> + <option value="R08">8宸烽亾</option> + <option value="R09">9宸烽亾</option> + <option value="R10">10宸烽亾</option> </select> </div> </div> diff --git a/HTML/views/BaseSetting/Materials.html b/HTML/views/BaseSetting/Materials.html index 53cc29e..5ac5cf5 100644 --- a/HTML/views/BaseSetting/Materials.html +++ b/HTML/views/BaseSetting/Materials.html @@ -98,7 +98,7 @@ <select name="Environment" id="Environment" lay-verify="" lay-verify="" lay-search> <option value=""></option> <option value="0">甯告俯</option> - <option value="1">浣庢俯</option> + <option value="1">闃村噳</option> <!-- <option value="3">骞茬嚗閫氶</option> --> </select> </div> @@ -451,6 +451,7 @@ Environment: field.Environment, Weight: Number(field.Weight), Warranty: Number(field.Warranty), + Warrantydate:field.Warrantydate, Price: Number(field.Price), AdventTime: Number(field.AdventTime), //涓存湡 LowInventory: Number(field.LowInventory), //浣庡簱瀛� @@ -458,9 +459,10 @@ }; if (doing) { doing = false; + sendData(IP + "/Basis/AddMate", param, 'post', function (res) { console.log(res); - if (res.code == 0) { //鎴愬姛 + if (res.code == 1) { //鎴愬姛 layer.msg(res.msg, { icon: 1, time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 diff --git a/HTML/views/BaseSetting/MaterialsForm.html b/HTML/views/BaseSetting/MaterialsForm.html index e01ecc5..53e89f6 100644 --- a/HTML/views/BaseSetting/MaterialsForm.html +++ b/HTML/views/BaseSetting/MaterialsForm.html @@ -144,10 +144,18 @@ </div> <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label" style="width: 70px;">淇濊川鏈�(澶�)</label> - <div class="layui-input-block" style="width: 182px;"> + <label class="layui-form-label" style="width: 90px;">淇濊川鏈�(澶�)</label> + + <div class="layui-input-inline" style="width: 120px;"> <input type="text" onkeyup="value=value.replace(/[^\d]/g,'')" name="Warranty" placeholder="璇疯緭鍏ヤ繚璐ㄦ湡" lay-verify="" autocomplete="off" class="layui-input"> + </div> + <div class="layui-input-inline" style="width: 60px;"> + <select name="Warrantydate" id="Warrantydate" lay-verify="" lay-verify="" lay-search> + <option value="0">澶�</option> + <option value="1">鏈�</option> + <option value="2">骞�</option> + </select> </div> </div> <div class="layui-inline"> @@ -313,6 +321,7 @@ if (res.data.SkuNo != "") { $("input[name='SkuNo']").attr("disabled", "disabled") } + //椤甸潰璧嬪�� $("input[name='SkuNo']").val(res.data.SkuNo); // 鐗╂枡鍙� $("input[name='SkuName']").val(res.data.SkuName); // 鐗╂枡鍚嶇О @@ -326,7 +335,8 @@ $("#UnitNo option[value='" + res.data.UnitNo + "']").attr("selected", "selected");// 鍗曚綅 $("#PackagNo option[value='" + res.data.PackagNo + "']").attr("selected", "selected"); // 鍖呰 $("#PackagNo").attr("disabled", "disabled") - $("#Environment option[value='" + res.data.Environment + "']").attr("selected", "selected"); // 瀛樺偍鐜 + $("#Environment option[value='" + res.data.Environment + "']").attr("selected", "selected"); // + $("#Warrantydate option[value='" + res.data.Warrantydate + "']").attr("selected", "selected"); // 淇濇寔鏈熷崟浣� $("input[name='Weight']").val(res.data.Weight); // 鐞嗚閲嶉噺 $("input[name='Warranty']").val(res.data.Warranty); // 淇濊川鏈� $("input[name='Price']").val(res.data.Price); // 鐞嗚鍗曚环 diff --git a/HTML/views/QualityControl/QualityInformation.html b/HTML/views/QualityControl/QualityInformation.html index dbb65f2..d405737 100644 --- a/HTML/views/QualityControl/QualityInformation.html +++ b/HTML/views/QualityControl/QualityInformation.html @@ -84,7 +84,7 @@ <div class="layui-inline DivLoadingArea" style="margin-top: 10px;"> <label class="layui-form-label">瀵嗙爜</label> <div class="layui-input-inline" style="width: 220px;"> - <input type="text" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off" + <input type="password" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off" class="layui-input"> </div> </div> diff --git a/HTML/views/SOSetting/ExportNotice.html b/HTML/views/SOSetting/ExportNotice.html index e4a727b..8bf72a2 100644 --- a/HTML/views/SOSetting/ExportNotice.html +++ b/HTML/views/SOSetting/ExportNotice.html @@ -185,7 +185,7 @@ <div class="layui-inline DivLoadingArea" style="margin-top: 10px;"> <label class="layui-form-label">瀵嗙爜</label> <div class="layui-input-inline" style="width: 220px;"> - <input type="text" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off" + <input type="password" id="password" name="password" placeholder="瀵嗙爜" autocomplete="off" class="layui-input"> </div> </div> diff --git a/HTML/views/WareHouseSetting/LocateEditArea.html b/HTML/views/WareHouseSetting/LocateEditArea.html index a343fae..85290e3 100644 --- a/HTML/views/WareHouseSetting/LocateEditArea.html +++ b/HTML/views/WareHouseSetting/LocateEditArea.html @@ -32,19 +32,19 @@ <div class="layui-form-item"> <label class="layui-form-label">  鍌ㄦ帓</label> <div class="layui-input-inline"> - <input type="number" lay-verify="required|PRules" id="Row" name="Row" placeholder="鎺捖仿仿�" autocomplete="off" + <input type="number" lay-verify="PRules" id="Row" name="Row" placeholder="鎺捖仿仿�" autocomplete="off" class="layui-input" > </div> <label class="layui-form-label">  鍌ㄥ垪</label> <div class="layui-input-inline"> - <input type="number" lay-verify="required|LRules" id="Column" name="Column" placeholder="鍒椔仿仿�" autocomplete="off" + <input type="number" lay-verify="LRules" id="Column" name="Column" placeholder="鍒椔仿仿�" autocomplete="off" class="layui-input" > </div> </div> <div class="layui-form-item"> <label class="layui-form-label">  鍌ㄥ眰</label> <div class="layui-input-inline"> - <input type="number" lay-verify="required|CRules" id="Layer" name="Layer" placeholder="灞偮仿仿�" autocomplete="off" + <input type="number" lay-verify="CRules" id="Layer" name="Layer" placeholder="灞偮仿仿�" autocomplete="off" class="layui-input" > </div> <label class="layui-form-label">鍌ㄤ綅娣卞害</label> @@ -114,20 +114,24 @@ //鑷畾涔夐獙璇佽鍒� form.verify({ PRules: function(value, item){ + if($("#Row").val() != ""){ var pattern = /^[a-zA-Z0-9_]+$/; // 杩欓噷鍐欎綘鐨勬鍒欒〃杈惧紡 if(!pattern.test(value)){ - return '鐢ㄦ埛鍚嶅彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�'; - } - },LRules: function(value, item){ + return '鎺掑彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�'; + }} + } + ,LRules: function(value, item){ + if($("#Column").val() != ""){ var pattern = /^[a-zA-Z0-9_]+$/; // 杩欓噷鍐欎綘鐨勬鍒欒〃杈惧紡 if(!pattern.test(value)){ - return '鐢ㄦ埛鍚嶅彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�'; - } + return '鍒楀彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�'; + }} },CRules: function(value, item){ + if($("#Layer").val() != ""){ var pattern = /^[a-zA-Z0-9_]+$/; // 杩欓噷鍐欎綘鐨勬鍒欒〃杈惧紡 if(!pattern.test(value)){ - return '鐢ㄦ埛鍚嶅彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�'; - } + return '灞傚彧鑳藉寘鍚瓧姣嶃�佹暟瀛楀拰涓嬪垝绾�'; + }} } }); diff --git a/HTML/views/WareHouseSetting/Roadway.html b/HTML/views/WareHouseSetting/Roadway.html index 3a5c98a..544cd45 100644 --- a/HTML/views/WareHouseSetting/Roadway.html +++ b/HTML/views/WareHouseSetting/Roadway.html @@ -224,13 +224,15 @@ width: 100, align: 'center' - }, { - field: 'TypeName', - title: '鍖哄煙绫诲埆', - width: 150, - align: 'center' + }, + // { + // field: 'TypeName', + // title: '鍖哄煙绫诲埆', + // width: 150, + // align: 'center' - }, { + // }, + { field: 'TemperatureName', title: '瀛樺偍鐜', align: 'center', diff --git a/HTML/views/index.html b/HTML/views/index.html index 13eab3b..2e9a9a5 100644 --- a/HTML/views/index.html +++ b/HTML/views/index.html @@ -53,7 +53,7 @@ </cite> </a> <dl class="layui-nav-child"> - <!-- <dd><a lay-href="set/user/info.html">鍩烘湰璧勬枡</a></dd> --> + <!-- <dd><a lay-href="set/user/info.html">鍩烘湰璧勬枡</a></dd>--> <dd><a lay-href="set/user/password.html" id="changePassword">淇敼瀵嗙爜</a></dd> <hr> <dd><a href="Login.html">閫�鍑�</a></dd> diff --git a/Pda/View/AsnSetting/palletEnter.html b/Pda/View/AsnSetting/palletEnter.html index 5f4f167..30215ff 100644 --- a/Pda/View/AsnSetting/palletEnter.html +++ b/Pda/View/AsnSetting/palletEnter.html @@ -57,11 +57,39 @@ autocomplete="off" class="layui-input"> </div> </div> - <div id="" style="margin-left: 21%; width: 38%;float: left;"> + <div id="layout-boxcode" class="layui-form-item layout-input"> + <label class="layui-form-label">鍦扮爜锛�</label> + <div class="layui-input-block"> + <input id="LocatNo" type="text" placeholder="璇锋壂鎻忓湴鐮�" + autocomplete="off" class="layui-input"> + </div> + </div> + <div id="" class="layui-form-item layout-dropdownlist"> + <label class="layui-form-label" lang>鍏ュ簱鍙o細</label> + <div class="layui-input-block" id="selectRuku"> + <select id="Ruku" lay-filter="getRuku" lay-search> + <option value=""></option> + <option value="033">033</option> + <option value="039">039</option> + <option value="044">044</option> + <option value="051">051</option> + <option value="443">443</option> + <option value="440">440</option> + <option value="001">001</option> + <option value="002">002</option> + </select> + <img src="/assets/down_arraw.png"> + </div> + </div> + + <div id="" style="margin-left: 21%; width: 25%;float: left;"> <button id="btnScanBox" class="layout-btn layout-btn-blue" lay-submit lay-filter="formBind" type="button">缁戝畾</button> </div> - <div id="" style="width: 38%;float: left;"> + <div id="" style="width: 25%;float: left;"> <button id="btnScanBox" class="layout-btn layout-btn-red" lay-submit lay-filter="formUnbind" type="button">瑙g粦</button> + </div> + <div id="" style="width: 25%;float: left;"> + <button id="btnAGVTrans" class="layout-btn layout-btn-red" lay-submit lay-filter="formAGVIN" type="button">AGV鍏ュ簱</button> </div> </form> @@ -74,6 +102,7 @@ <script src="/layui/layui.js"></script> <script src="/js/public.js"></script> <script src="/js/jquery.cookie.js"></script> + <script src="/js/language.js"></script> <script> layui.use(['form', 'jquery'], function() { var form = layui.form @@ -126,6 +155,7 @@ $("#PalletNo").on('input',function(){ if($("#PalletNo").val() == "" || $("#PalletNo").val().length<10){ + return } if ($("#PalletNo").val().length>=10) { @@ -134,7 +164,39 @@ } checkPalletStat() }) - + + //妫�鏌ュ湴鐮佺姸鎬� + function checkLocatStatus(){ + var param = { + "LocatNo": $("#LocatNo").val() + } + sendData(IP + "/PdaAsn/IsEnableLocatNo", param, 'post', function (res) { + if (res.code == 0) { + $("#palletNum").focus(); + } else { + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, + function () { }); + $("#LocatNo").val('') + } + }); + } + //褰撳湴鐮佽緭鍏ユ澶卞幓鐒︾偣鏃�,妫�鏌ヤ竴涓嬪湴鐮佺姸鎬� + $("#LocatNo").on('input',function(){ + + if($("#LocatNo").val() == "" || $("#LocatNo").val().length!=9){ + layer.msg('璇锋鏌ュ湴鐮佹槸鍚︽纭�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + checkLocatStatus() + + }) + // $("#bar").focus(); $("#PalletNo").keydown(function(e) { //console.log("e.keyCode is "+e.keyCode) @@ -289,6 +351,55 @@ return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� }); + + form.on('submit(formAGVIN)', function(data) { + + if (!$("#LocatNo").val()) { + layer.msg('璇锋壂鎻忓湴鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if (!$("#Ruku").val()) { + layer.msg('璇烽�夋嫨鍏ュ簱鍙�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + //鍏堢粦瀹氱┖鎵樼洏鍨� + //bind(); + //缁戝畾鎴愬姛鍚庤皟搴GV杩愰�佺┖鎵樼洏鍨� + var param = { + 'PalletNo':$("#PalletNo").val(), + "LocatNo": $("#LocatNo").val(), + "Ruku": $("#Ruku").val(), + } + sendData(IP + "/PdaCr/AgvTransport3", param, 'post', function(res) { + //console.log("鎵樼洏鐘舵�侊細"+res.msg) + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() { + }); + $("#PalletNo").val(''), + $("#palletNum").val(''), + $("#LocatNo").val(''), + $("#Ruku").val('') + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() { + //鍥炶皟 + }); + } + }); + return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� + }); + function unbind(){ layer.msg('璇ユ搷浣滀細瑙g粦杩欎釜鎵樼洏涓婄殑鎵�鏈夋墭鐩橈紝纭畾瑕佽В缁戝悧锛�', { time: 0 //涓嶈嚜鍔ㄥ叧闂� diff --git a/Pda/View/SoSetting/palletOut.html b/Pda/View/SoSetting/palletOut.html index 0e7ac26..ef77d81 100644 --- a/Pda/View/SoSetting/palletOut.html +++ b/Pda/View/SoSetting/palletOut.html @@ -55,36 +55,65 @@ <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" style="margin-top: 10px;"> - <label class="layui-form-label">鎵樼洏鍨涙暟锛�</label> - <div class="layui-input-block"> - <input id="STOCKCODE" type="number" lay-verify="stock" placeholder="鎵樼洏鍨涙暟" - autocomplete="off" class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> + + <button id="option1" class="layout-btn" type="button"> 鏁存墭</button> + <button id="option2" class="layout-btn" type="button">鍗曟墭</button> + + <div id="content1"> + <div id="" class="layout-bill-info"> + <form class="layui-form" action=""> + <div id="layout-pallet" class="layui-form-item layout-input" style="margin-top: 10px;"> + <label class="layui-form-label">鎵樼洏鍨涙暟锛�</label> + <div class="layui-input-block"> + <input id="STOCKCODE" type="number" lay-verify="stock" placeholder="鎵樼洏鍨涙暟" + autocomplete="off" class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> + </div> </div> - </div> - <div id="layout-bill" class="layui-form-item layout-dropdownlist" > - <label class="layui-form-label">鍑哄簱鍙o細</label> - <div class="layui-input-block" id="selectDiv"> - <select id="bar" lay-filter="getbar" lay-verify="required" lay-search> - <option value=""></option> - <option value="033">033</option> - <option value="039">039</option> - <option value="044">044</option> - <option value="051">051</option> - <option value="059">059</option> - <option value="440">440</option> - <option value="443">443</option> - </select> - <!-- <img src="/assets/down_arraw.png" > --> + <div id="layout-bill" class="layui-form-item layout-dropdownlist" > + <label class="layui-form-label">鍑哄簱鍙o細</label> + <div class="layui-input-block" id="selectDiv"> + <select id="bar" lay-filter="getbar" lay-verify="required" lay-search> + <option value=""></option> + <option value="033">033</option> + <option value="039">039</option> + <option value="044">044</option> + <option value="051">051</option> + <option value="059">059</option> + <option value="440">440</option> + <option value="443">443</option> + </select> + <!-- <img src="/assets/down_arraw.png" > --> + </div> </div> - </div> - <div id="" class="btn-out"> - <button id="btnOut" class="layout-btn layout-btn-blue" type="button">鍑哄簱</button> - </div> - </form> + <div id="" class="btn-out"> + <button id="btnOut" class="layout-btn layout-btn-blue" type="button">鍑哄簱</button> + </div> + </form> + </div> </div> + + <div id="content2"> + <div id="" class="layout-bill-info"> + <form class="layui-form" action=""> + <div id="layout-bill" class="layui-form-item layout-dropdownlist" > + <label class="layui-form-label">鎷h揣鍙o細</label> + <div class="layui-input-block" id="selectDiv"> + <select id="bar2" lay-filter="getbar" lay-verify="required" lay-search> + <option value=""></option> + <option value="001">001</option> + <option value="002">002</option> + </select> + <!-- <img src="/assets/down_arraw.png" > --> + </div> + </div> + <div id="" class="btn-out"> + <button id="btnOut2" class="layout-btn layout-btn-blue" type="button">鍙┖鎵�</button> + </div> + </form> + </div> + </div> + + </div> </div> @@ -96,6 +125,37 @@ layui.use(['form', 'jquery'], function() { var form = layui.form var isChongFu = true; + + /* 鏍囩鍒囨崲浠g爜 */ + + var xianshiyemian = 0; + + $('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹� + $('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊 + $('#content2').hide(); + $(document).ready(function () { + $('#option1').click(function () { + // qingkong(); + xianshiyemian = 0; + $('#content1').show(); + $('#option1').attr("style", "background-color: red;width: 50%;float: left;text-align: center;"); //閫変腑鍚庨鑹� + + $('#content2').hide(); + $('#option2').attr("style", "background-color: #999;width: 50%;float: right;text-align: center;"); //榛樿棰滆壊 + $("#palletNo").focus();//鍏夋爣榛樿閫変腑 + }); + + $('#option2').click(function () { + // qingkong(); + xianshiyemian = 1; + $('#content1').hide(); + $('#option1').attr("style", "background-color: #999;width: 50%;float: left;text-align: center;"); //榛樿棰滆壊 + + $('#content2').show(); + $('#option2').attr("style", "background-color: red;width: 50%;float: right;text-align: center;"); //閫変腑鍚庨鑹� + $("#palletNo2").focus();//鍏夋爣榛樿閫変腑 + }); + }); //鎵�閫夊叆搴撳崟鐨勮缁嗕俊鎭� //console.log($.cookie('userId')); // if (!$.cookie('userId')) { @@ -111,6 +171,7 @@ function clear(){ $("#STOCKCODE").val(""); $("#bar option[value='']").attr("selected", "selected"); + $("#bar2 option[value='']").attr("selected", "selected"); form.render('select'); } @@ -182,6 +243,46 @@ } }) + //鍙崟绌烘墭 + $('#btnOut2').click(function(){ + + if($('#bar2').val() == ''){ + layer.msg("璇烽�夋嫨鎷h揣鍙�", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() {}); + return + } + if (isChongFu == true) { + isChongFu = false; + var param2 = { + OutMode:$('#bar2').val() + }; + + // Int(param.Num) + console.log(param2) + sendData(IP + "/DownApi/IssuePlnCheckHouseWcs", param2, 'post', function(res) { + console.log("鍑哄簱锛�"+JSON.stringify(res)) + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() {isChongFu = true;clear();}); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function() {isChongFu = true;clear();}); + } + }); + }else{ + layer.msg("璇峰嬁閲嶅鐐瑰嚮", { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + } + + }) //鑾峰彇鍑哄簱鍙� // $("#selectDiv").click(function(){ diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs index 206f8e1..7327c9e 100644 --- a/Wms/Model/InterFaceModel/HttpModel.cs +++ b/Wms/Model/InterFaceModel/HttpModel.cs @@ -111,6 +111,12 @@ public string Msg { get; set; } } + public class WcsAgvModel + { + public int Success { get; set; } + public string Message { get; set; } + } + /// <summary> /// 鎺ユ敹wcs鍙斁淇″彿model /// </summary> diff --git a/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs b/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs index e2fc37a..5a82dce 100644 --- a/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs +++ b/Wms/Model/ModelDto/BllAsnDto/ArrivalNoticeDto.cs @@ -118,6 +118,11 @@ /// 鍌ㄥ瓨鏈熻嚦 /// </summary> public string StoreTime { get; set; } + + /// <summary> + /// 渚涜揣鎵规 + /// </summary> + public string SupplierLot { get; set; } } } diff --git a/Wms/Model/ModelDto/SysDto/MaterialsDto.cs b/Wms/Model/ModelDto/SysDto/MaterialsDto.cs index f12fc69..aaaf68e 100644 --- a/Wms/Model/ModelDto/SysDto/MaterialsDto.cs +++ b/Wms/Model/ModelDto/SysDto/MaterialsDto.cs @@ -88,6 +88,10 @@ /// 淇濊川鏈� /// </summary> public int? Warranty { get; set; } + /// <summary> + /// 淇濊川鏈熷崟浣� + /// </summary> + public string Warrantydate { get; set; } /// <summary> /// 鐞嗚鍗曚环 diff --git a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs index f3ead93..50338c5 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaCrVm.cs @@ -86,4 +86,21 @@ public string EndLocatNo { get; set; } } + + public class PdaAgvTransNullPalnoModel + { + + /// <summary> + /// 鎵樼洏鏉$爜 + /// </summary> + public string PalletNo { get; set; } + /// <summary> + /// 鐩爣鍖哄煙 + /// </summary> + public string LocatNo { get; set; } + /// <summary> + /// 鍏ュ簱鍙� + /// </summary> + public string Ruku { get; set; } + } } diff --git a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs index 47db435..8803a87 100644 --- a/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs +++ b/Wms/Model/ModelVm/PdaVm/PdaSoVm.cs @@ -86,4 +86,16 @@ public string OutMode { get; set; } } + /// <summary> + /// 鎷h揣鍙┖鎵樼洏 + /// </summary> + public class CheckModePalletVm + { + + /// <summary> + /// 鎷h揣鍙� + /// </summary> + public string OutMode { get; set; } + } + } diff --git a/Wms/Utility/Tools/HttpHelper.cs b/Wms/Utility/Tools/HttpHelper.cs index 2f7b637..4b90152 100644 --- a/Wms/Utility/Tools/HttpHelper.cs +++ b/Wms/Utility/Tools/HttpHelper.cs @@ -218,7 +218,7 @@ //淇敼鍙傛暟鐨勫�� foreach (var de in Pars) { - string subNode = "DataList/Product/Batch";// + de.Key.ToString(); + string subNode = "DataList/Events/Event/DataField";// + de.Key.ToString(); XmlNode node = xml.SelectSingleNode(subNode, nsmgr); if (de != null) diff --git a/Wms/Utility/XML/ExInfoXml.xml b/Wms/Utility/XML/ExInfoXml.xml index 2898d93..1e76c09 100644 --- a/Wms/Utility/XML/ExInfoXml.xml +++ b/Wms/Utility/XML/ExInfoXml.xml @@ -1,10 +1,26 @@ 锘� -<DataList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" corpName="澶╂触甯備腑鍗囨寫鎴樼敓鐗╃鎶�鏈夐檺鍏徃" - toUnitType="2" manCode="19053107" dataType="wareHouseOut" version="1.1" - xsi:noNamespaceSchemaLocation="鍏借嵂浜у搧鍑哄簱鏁版嵁1.1.xsd"> - <Product> - <Batch operator="鐢虫姤璁惧鍚嶇О" oprDate="2022/06/25" toProvince="榛戦緳姹熺渷" toCity="鍝堝皵婊ㄥ競" toCounty="鍙屽煄鍖�" toUnit="鍝堝皵婊ㄦ簮绛栧晢璐告湁闄愬叕鍙�" toUnitcode=""> - <!--<Data code="202203240009000479940290"/>--> - </Batch> - </Product> +<DataList version="1.0" encoding="utf-8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="缁堢鎺ュ彛XML Schema-3.0.xsd" SN="BZ010" Version="3.0" License="1001122"> + <Events> + <Event Name="SalesWareHouseOut" MainAction="WareHouseOut"> + <ActionMaping> + <Action Name="WareHouseOut"> + <ActionData>CorpOrderID</ActionData> + <ActionData>Actor</ActionData> + <ActionData>ToCorpID</ActionData> + <ActionData>ActDate</ActionData> + <ActionData>Code</ActionData> + </Action> + </ActionMaping> + <DataMaping> + <MetaData Name="CorpOrderID" Type="String"/> + <MetaData Name="Actor" Type="String"/> + <MetaData Name="ActDate" Type="Date"/> + <MetaData Name="ToCorpID" Type="String"/> + <MetaData Name="Code" Type="String"/> + </DataMaping> + <DataField> + + </DataField> + </Event> + </Events> </DataList> \ No newline at end of file diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index d163829..8597905 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -156,6 +156,7 @@ data.ProductionTime = boxInfo.ProductionTime!= null ? ((DateTime)boxInfo.ProductionTime).ToString("yyyy-MM-dd"):""; data.ExpirationTime = boxInfo.ExpirationTime != null ? ((DateTime)boxInfo.ExpirationTime).ToString("yyyy-MM-dd") : ""; data.StoreTime = boxInfo.StoreTime != null ? ((DateTime)boxInfo.StoreTime).ToString("yyyy-MM-dd") : ""; + } } } @@ -163,6 +164,7 @@ var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty); var qty = detail.Qty - labelQty; data.Qty = qty.ToString(); + data.SupplierLot = detail.SupplierLot; return data; } catch (Exception e) @@ -213,7 +215,7 @@ break; case "6"://浠e偍鍏ュ簱 skuType = "(0,1,2,3,4)"; - IsPack = 2; //涓嶈创 + //IsPack = 2; //涓嶈创 break; case "7"://瀵勫瓨鍏ュ簱 //skuType = "(3)"; @@ -1269,45 +1271,45 @@ }; #region 閫氳繃鎺ュ彛鍙戦�佽嚦erp 鎴� mes - //绯荤粺瀵规帴鍚庢斁寮� - var jsonData = JsonConvert.SerializeObject(asnInfo); - var mesList = new List<string>() { "0", "4" }; //0 鎴愬搧鍏ュ簱 4浣欐枡閫�鍥炲叆搴� - var erpList = new List<string>() { "1", "2", "3" }; //1 閲囪喘鍏ュ簱 2涓棿鍝佸叆搴� 3 閫�璐у叆搴� + ////绯荤粺瀵规帴鍚庢斁寮� + //var jsonData = JsonConvert.SerializeObject(asnInfo); + //var mesList = new List<string>() { "0", "4" }; //0 鎴愬搧鍏ュ簱 4浣欐枡閫�鍥炲叆搴� + //var erpList = new List<string>() { "1", "2", "3" }; //1 閲囪喘鍏ュ簱 2涓棿鍝佸叆搴� 3 閫�璐у叆搴� - if (mesList.Contains(notice.Type)) // mes - { - //鑾峰彇浠ょ墝 - //var token = new Token().GetMesToken(mesTokenUrl); //娴嬭瘯涓嶄娇鐢═OKEN锛屾寮忚繍琛屾椂鏀惧紑 - var token = ""; - Dictionary<string, string> mesDic = new Dictionary<string, string>() - { - {"Authorization",token } - }; - var mesData = new FinishAsnModel() - { - no = asnInfo.OrderCode, - qty = asnInfo.AsnDetails.Sum(m=>m.Qty) - }; - jsonData = JsonConvert.SerializeObject(mesData); - //璋冪敤鎺ュ彛 - var response = HttpHelper.DoPost(mesUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "MES", mesDic); + //if (mesList.Contains(notice.Type)) // mes + //{ + // //鑾峰彇浠ょ墝 + // //var token = new Token().GetMesToken(mesTokenUrl); //娴嬭瘯涓嶄娇鐢═OKEN锛屾寮忚繍琛屾椂鏀惧紑 + // var token = ""; + // Dictionary<string, string> mesDic = new Dictionary<string, string>() + // { + // {"Authorization",token } + // }; + // var mesData = new FinishAsnModel() + // { + // no = asnInfo.OrderCode, + // qty = asnInfo.AsnDetails.Sum(m=>m.Qty) + // }; + // jsonData = JsonConvert.SerializeObject(mesData); + // //璋冪敤鎺ュ彛 + // var response = HttpHelper.DoPost(mesUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "MES", mesDic); - var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 - if (obj.status != "success") - { - throw new Exception("涓婁紶澶辫触" + obj.message); - } - } - else if (erpList.Contains(notice.Type)) //erp - { - var response = HttpHelper.DoPost(erpUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP"); + // var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 + // if (obj.status != "success") + // { + // throw new Exception("涓婁紶澶辫触" + obj.message); + // } + //} + //else if (erpList.Contains(notice.Type)) //erp + //{ + // var response = HttpHelper.DoPost(erpUrl, jsonData, "鍏ュ簱鍗曞畬鎴愪笂浼�", "ERP"); - var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 - if (obj.Success != 0) - { - throw new Exception("涓婁紶澶辫触" + obj.Message); - } - } + // var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 + // if (obj.Success != 0) + // { + // throw new Exception("涓婁紶澶辫触" + obj.Message); + // } + //} #endregion diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index 5f6f123..650d65e 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -529,6 +529,7 @@ data.Standard = asnDetail.Standard; data.SupplierLot = asnDetail.SupplierLot; data.PackageStandard = str; + data.SupplierLot = asnDetail.SupplierLot; return data; } catch (Exception e) diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs index acf4038..2e8dd5f 100644 --- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs +++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs @@ -995,7 +995,7 @@ } } - //鐢熸垚鐩樼偣璁板綍 + //鐢熸垚鐩樼偣璁板綍 Db.Insertable(logList).ExecuteCommand(); } // 鍌ㄤ綅鍙� @@ -1397,8 +1397,8 @@ materiel_name = item.SkuName, qty = item.Qty, batch = item.LotNo, - producttime = item.ProductionTime.ToString().Substring(1, 8), - expiry = item.ExpirationTime.ToString().Substring(1, 8) + producttime = item2.ProductionTime.ToString().Substring(1, 8), + expiry = item2.ExpirationTime.ToString().Substring(1, 8) }); } @@ -1427,32 +1427,33 @@ Db.Updateable(endLocate).ExecuteCommand(); } - if (endLocate!= null && endLocate.AreaNo == "B12") - { - //鑾峰彇浠ょ墝 - var token = new Token().GetMesToken(mesTokenUrl); - Dictionary<string, string> mesDic = new Dictionary<string, string>() - { - {"Authorization",token } - }; - var mesData = new RequertBeiliaoModel() - { - morder_no = stockDetail.First().SONo, - pallet = stockDetail.First().PalletNo, - layer_no = endLocate.LocatNo, - items = data - }; - var jsonData = JsonConvert.SerializeObject(mesData); - //璋冪敤鎺ュ彛 - var response = HttpHelper.DoPost(mesUrl, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic); + //姝e紡杩愯绋嬪簭鏀惧紑 + //if (endLocate!= null && endLocate.AreaNo == "B12") + //{ + // //鑾峰彇浠ょ墝 + // var token = new Token().GetMesToken(mesTokenUrl); + // Dictionary<string, string> mesDic = new Dictionary<string, string>() + // { + // {"Authorization",token } + // }; + // var mesData = new RequertBeiliaoModel() + // { + // morder_no = stockDetail.First().SONo, + // pallet = stockDetail.First().PalletNo, + // layer_no = endLocate.LocatNo, + // items = data + // }; + // var jsonData = JsonConvert.SerializeObject(mesData); + // //璋冪敤鎺ュ彛 + // var response = HttpHelper.DoPost(mesUrl, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic); - var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 - if (obj.status != "0") - { - throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message); - } + // var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 + // if (obj.status != "0") + // { + // throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message); + // } - } + //} if (userId != 0) { //娣诲姞鎿嶄綔鏃ュ織璁板綍 diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index b38fcf2..461c9fc 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -44,7 +44,7 @@ try { //model.Type锛氬崟鎹被鍨� 鍦ㄨ繖閲屼唬琛ㄥ墠绔〉绛剧被鍨嬶細鍗虫爣绛鹃〉绛撅細璐存爣鐗╂枡锛� 鏁伴噺椤电锛氫笉璐磋〃鐗╂枡锛屽師鍥狅細鎳掑緱鍔犲弬鏁� - var data = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.Status != "3" && m.Status != "4").Select(m => m.ASNNo).ToList(); + var data = Db.Queryable<BllArrivalNotice>().Where(m => m.IsDel == "0" && m.Status !="2" && m.Status != "3" && m.Status != "4").Select(m => m.ASNNo).ToList(); var list = new List<ArrivalNoticeDetailDto>(); if (model.Type.Contains("0"))//0璐存爣 { @@ -267,6 +267,42 @@ } } + + + /// <summary> + /// 楠岃瘉鍦扮爜鏄惁瀛樺湪 + /// </summary> + /// <param name="locatNo">鍦扮爜</param> + /// <returns>"":鍙娇鐢� -1:涓嶅彲浣跨敤锛堝師鍥�)</returns> + public string IsEnableLocatNo(string locatNo) + { + string sqlMsg = ""; + string sqlString = string.Empty; + try + { + sqlString = $"select * from SysStorageLocat where LocatNo = '{locatNo}' and WareHouseNo = 'W02' and isdel = '0';"; + var models = Db.Ado.SqlQuery<PalletBindVm>(sqlString); + + if (models.Count > 0) + { + if (models[0].Status != "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/BllPdaServer/PdaCrServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs index f4b7e60..73bf387 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaCrServer.cs @@ -970,26 +970,30 @@ Db.BeginTran(); //璇锋眰WCS鍏ュ簱鍙f斁璐х‘璁� - try + if (!string.IsNullOrEmpty(ruku)) { - var port = new + try { - Port = EndLocat - }; - var json = JsonConvert.SerializeObject(port); - var res = HttpHelper.DoPost(wcsurl, json, "璇锋眰WCS鍏ュ簱鍙f槸鍚﹀彲鏀捐揣", "WCS"); + var port = new + { + Port = EndLocat + }; + var json = JsonConvert.SerializeObject(port); + var res = HttpHelper.DoPost(wcsurl, json, "璇锋眰WCS鍏ュ簱鍙f槸鍚﹀彲鏀捐揣", "WCS"); - //////瑙f瀽杩斿洖鏁版嵁 - var ret = JsonConvert.DeserializeObject<WcsModel>(res); - if (ret.StatusCode == -1) + //////瑙f瀽杩斿洖鏁版嵁 + var ret = JsonConvert.DeserializeObject<WcsModel>(res); + if (ret.StatusCode == -1) + { + throw new Exception(EndLocat + "鍙峰叆搴撳彛宸叉湁鍏朵粬浠诲姟鍗犵敤,璇烽�夋嫨鍏朵粬鍏ュ簱鍙�"); + } + } + catch (Exception ex) { - throw new Exception(EndLocat + "鍙峰叆搴撳彛宸叉湁鍏朵粬浠诲姟鍗犵敤,璇烽�夋嫨鍏朵粬鍏ュ簱鍙�"); + throw new Exception(ex.Message); } } - catch (Exception ex) - { - throw new Exception(ex.Message); - } + //娣诲姞鍑哄簱浠诲姟 @@ -1040,38 +1044,19 @@ #region 鍛煎彨灏忚溅浠g爜 var endlono = EndLocat; - - //鏍规嵁鐩殑鍦板潃搴撳尯鑾峰彇灏忚溅浠诲姟绫诲瀷 - switch (storageLocatEnd.AreaNo) - { - case "B13" : - tasktype = "D02"; // 鍙犳墭浠诲姟锛堢洰鐨勫湴鍧�涓虹┖鎵樼洏鏀堕泦鍖猴級 - break; - case "B15": - tasktype = "D01"; // 鎷嗘墭浠诲姟锛堢洰鐨勫湴鍧�涓烘嫞璐у尯锛� - break; - } if (OrderTy == "0") { tasktype = "RK0"; //鍏ュ簱浠诲姟 } - //缂撳瓨搴撲綅杞崲 3妤煎師杈呮枡Y003_001锛孻003_002锛孻003_003 1妤糦138_001鍒癥138_021澶栧寘缂撳瓨鍖� 1妤糦128_001鍒癥128_015鍐呭寘缂撳瓨鍖� + //缂撳瓨搴撲綅杞崲 3妤兼帴椹充綅Y003_001锛孻003_002锛孻003_003 if (storageLocatEnd.AreaNo == "B12") { switch (EndLocat.ToString().Substring(4, 1)) { case "1": - endlono = "Y003_00" + EndLocat.ToString().Substring(6, 1); + endlono = "Y003_0" + EndLocat.ToString().Substring(5, 2); tasktype = "D00"; //鐐瑰埌鐐逛换鍔� - break; - case "2": - endlono = "Y138_0" + EndLocat.ToString().Substring(5, 2); - tasktype = "F20"; //鐢垫浠诲姟 - break; - case "3": - endlono = "Y128_0" + EndLocat.ToString().Substring(5, 2); - tasktype = "F20"; //鐢垫浠诲姟 break; default: break; @@ -1297,21 +1282,13 @@ break; } - //缂撳瓨搴撲綅杞崲 3妤煎師杈呮枡Y003_001鍒癥003_009 1妤糦138_001鍒癥138_021澶栧寘缂撳瓨鍖� 1妤糦128_001鍒癥128_015鍐呭寘缂撳瓨鍖� + //缂撳瓨搴撲綅杞崲 3妤煎師杈呮枡Y003_001鍒癥003_011 if (storageLocatEnd.AreaNo == "B12") { switch (EndLocat.ToString().Substring(4, 1)) { case "1": - endlono = "Y003_00" + EndLocat.ToString().Substring(6, 1); - break; - case "2": - endlono = "Y138_0" + EndLocat.ToString().Substring(5, 2); - tasktype = "F20"; //鐢垫浠诲姟 - break; - case "3": - endlono = "Y128_0" + EndLocat.ToString().Substring(5, 2); - tasktype = "F20"; //鐢垫浠诲姟 + endlono = "Y003_0" + EndLocat.ToString().Substring(5, 2); break; default: break; @@ -1427,8 +1404,203 @@ } } + /// <summary> + /// 绌烘墭鐩樺叆搴撳懠鍙皬杞� + /// </summary> + /// <param name="palletNo"></param> + /// <param name="areaNo"></param> + /// <param name="ruku"></param> + public void AgvTransport3(string palletNo, string LocatNo, string ruku, int userId, string url, string wcsurl) + { + if (string.IsNullOrEmpty(palletNo)) + { + throw new Exception("璇锋壂鎻忔墭鐩樻潯鐮侊紒"); + } + if (string.IsNullOrEmpty(ruku)) + { + throw new Exception("璇烽�夋嫨鍏ュ簱鍙o紒"); + } + try + { + if (ruku == "001") + { + var xlocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")); + if (xlocate == null) + { + throw new Exception("绌烘墭鐩樻敹闆嗗櫒宸叉弧"); + } + ruku = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")).LocatNo; + } + if (ruku == "002") + { + var dlocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13040101" || w.LocatNo == "B13050101" || w.LocatNo == "B13060101")); + if (dlocate == null) + { + throw new Exception("绌烘墭鐩樻敹闆嗗櫒宸叉弧"); + } + ruku = Db.Queryable<SysStorageLocat>().First(w => w.Status == "0" && (w.LocatNo == "B13040101" || w.LocatNo == "B13050101" || w.LocatNo == "B13060101")).LocatNo; + } + if (ruku == null) + { + throw new Exception("褰撳墠鎵樼洏鏀堕泦鍣ㄥ伐浣嶆棤绌轰綑锛岃灏嗙┖鎵樼洏鍨涘叆绔嬩綋搴�"); + } + string EndLocat = ruku;//鐩爣浣嶇疆 + string OrderTy = ruku.Length ==3 ? "0":"2"; + var tasktype = "RK0"; //鍏ュ簱浠诲姟 + int palnoqty = 1; + var log = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.PalletNo == palletNo && (w.Status == "0" || w.Status == "1")); + if (log != null) + { + throw new Exception("璇ユ墭鐩樺凡鏈夊皬杞︾瓑寰呮墽琛屾垨姝e湪鎵ц鐨勪换鍔�!"); + } + //璧峰鍌ㄤ綅淇℃伅 + var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == LocatNo); + if (storageLocat == null) + { + throw new Exception("鍌ㄤ綅淇℃伅涓嶅瓨鍦�,璇锋鏌�!"); + } + + //寮�鍚簨鍔� + Db.BeginTran(); + if (EndLocat.Length == 3) + { + //璇锋眰WCS鍏ュ簱鍙f斁璐х‘璁� + try + { + var port = new + { + Port = EndLocat + }; + var json = JsonConvert.SerializeObject(port); + var res = HttpHelper.DoPost(wcsurl, json, "璇锋眰WCS鍏ュ簱鍙f槸鍚﹀彲鏀捐揣", "WCS"); + + //////瑙f瀽杩斿洖鏁版嵁 + var ret = JsonConvert.DeserializeObject<WcsModel>(res); + if (ret.StatusCode == -1) + { + throw new Exception(EndLocat + "鍙峰叆搴撳彛宸叉湁鍏朵粬浠诲姟鍗犵敤,璇烽�夋嫨鍏朵粬鍏ュ簱鍙�"); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + } + else + { + tasktype = "D02"; + palnoqty = (int)Db.Queryable<BllPalletBind>().First(w => w.PalletNo == palletNo && w.Status == "1" && w.IsDel == "0").Qty; + + } + + //娣诲姞鍏ュ簱浠诲姟 + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "AGV", + IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = LocatNo,//璧峰浣嶇疆 + EndLocat = EndLocat,//鐩爣浣嶇疆 + PalletNo = palletNo,//鎵樼洏鐮� + Msg = string.Format("杞繍浠诲姟锛歿0}=>>{1}", LocatNo, EndLocat), + IsSend = 0,//鏄惁鍙啀娆′笅鍙� + IsCancel = 0,//鏄惁鍙彇娑� + IsFinish = 0,//鏄惁鍙畬鎴� + Type = OrderTy,//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = OrderTy,//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + + CreateTime = DateTime.Now + }; + Db.Insertable(exTask).ExecuteCommand(); + + //淇敼璧峰鍌ㄤ綅鍦板潃鐘舵�� + storageLocat.Status = "5";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(storageLocat).ExecuteCommand(); + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "绌烘墭鍏ュ簱", palletNo, OrderTy == "0" ? "鍏ュ簱" : "绉诲簱", $"PDA鍛煎彨灏忚溅瀵规墭鐩樺彿锛歿palletNo}鍙戣捣杞繍", userId); + + #region 鍛煎彨灏忚溅浠g爜 + + //鐐瑰埌鐐规寚浠ら泦鍚� + object[] position = new object[2]; + position[0] = new + { + positionCode = LocatNo, + type = "00" + }; + position[1] = new + { + positionCode = EndLocat, + type = "00" + }; + + List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>(); + + + AgvSchedulingTask agvTask = new AgvSchedulingTask(); + Random r = new Random(); + long ran = DateTime.Now.Ticks; + agvTask.ReqCode = ran.ToString(); + agvTask.TaskCode = taskNo; + agvTask.TaskTyp = tasktype; + agvTask.PositionCodePath = position; + agvTask.CtnrTyp = palnoqty.ToString(); + + agvTaskList.Add(agvTask); + + + // 姝e紡杩愯绋嬪簭鏀惧紑 + string str = ""; + var list2 = agvTaskList.Select(m => m.TaskCode).ToList(); + var jsonData = JsonConvert.SerializeObject(agvTaskList); + jsonData = jsonData.Substring(1, jsonData.Length - 1); + jsonData = jsonData.Substring(0, jsonData.Length - 1); + 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 agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response); + if (agvModel.Code == "0") + { + //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// + new TaskServer().EditTaskIssueOk(list2, time1, time2); + str += "涓嬪彂鎴愬姛"; + } + if (agvModel.Code == "1") + { + new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message); + throw new Exception(agvModel.Message); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + + #endregion + + //鎻愪氦浜嬪姟 + Db.CommitTran(); + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + } + #region - + /// <summary> /// agv璋冨害浠诲姟涓嬪彂 /// </summary> @@ -1458,21 +1630,13 @@ break; } - // MES鐢宠澶囨枡锛屽鏂欏尯搴撲綅闇�瑕佽浆鎹� 杞﹂棿澶囨枡缂撳瓨浣嶅悕绉帮細3妤煎師杈呮枡Y003_001-->Y003_003 1妤煎鍖呯紦瀛樺尯Y138_001-->Y138_021 1妤煎唴鍖呯紦瀛樺尯Y128_001-->Y128_015 + // MES鐢宠澶囨枡锛屽鏂欏尯搴撲綅闇�瑕佽浆鎹� 杞﹂棿澶囨枡缂撳瓨浣嶅悕绉帮細Y003_001-->Y003_011 if (storageLocatEnd.AreaNo == "B12") { switch (endlono.ToString().Substring(4, 1)) { case "1": - endlono = "Y003_00" + endlono.Substring(6, 1); - break; - case "2": - endlono = "Y138_0" + endlono.Substring(5, 2); - tasktype = "F20"; //鐢垫浠诲姟 - break; - case "3": - endlono = "Y128_0" + endlono.Substring(5, 2); - tasktype = "F20"; //鐢垫浠诲姟 + endlono = "Y003_0" + endlono.Substring(5, 2); break; default: break; @@ -1618,6 +1782,7 @@ endLocat = locatInfo3.LocatNo; } } + return endLocat; } catch (Exception ex) @@ -1634,7 +1799,15 @@ /// <returns></returns> public void AgvContinue(string taskno,string url) { - var data = new { reqCode =taskno }; + + Random r = new Random(); + long ran = DateTime.Now.Ticks; + var ReqCode = ran.ToString(); + var data = new + { + reqCode = ReqCode, + taskCode = taskno + }; var jsonData = JsonConvert.SerializeObject(data); try { @@ -1745,15 +1918,19 @@ //var boxno = boxInfo.GroupBy(w => w.BoxNo).ToList(); var boxno = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).GroupBy(m => new { - m.BoxNo + m.BoxNo, + m.ProductionTime, + m.ExpirationTime, }).Select(it => new DataBoxInfo() { - BoxNo = it.BoxNo + BoxNo = it.BoxNo, + ProductionTime = it.ProductionTime, + ExpirationTime = it.ExpirationTime, }).ToList(); //璁板綍鎵樼洏涓婁俊鎭粰MES foreach (var item2 in boxno) { - var a = item.ProductionTime.ToString(); + //var a = item.ProductionTime.ToString(); data.Add(new RequertBeiliaoInfoModel() { no = item2.BoxNo, @@ -1761,8 +1938,8 @@ materiel_name = item.SkuName, qty = item.Qty, batch = item.LotNo, - producttime = item.ProductionTime.ToString().Substring(0,10), - expiry = item.ExpirationTime.ToString().Substring(0, 10) + producttime = item2.ProductionTime.ToString().Substring(0,10), + expiry = item2.ExpirationTime.ToString().Substring(0, 10) }); } @@ -1800,13 +1977,7 @@ switch (EndLocat.LocatNo.ToString().Substring(4, 1)) { case "1": - endlono = "Y003_00" + EndLocat.LocatNo.ToString().Substring(6, 1); - break; - case "2": - endlono = "Y138_0" + EndLocat.LocatNo.ToString().Substring(5, 2); - break; - case"3": - endlono = "Y128_0" + EndLocat.LocatNo.ToString().Substring(5, 2); + endlono = "Y003_0" + EndLocat.LocatNo.ToString().Substring(5, 2); break; default: break; diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs index 52a0b07..12de074 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs @@ -20,6 +20,7 @@ using WMS.Entity.LogEntity; using Model.ModelDto.SysDto; using Model.ModelDto.BllSoDto; +using System.Security.Policy; namespace WMS.BLL.BllPdaServer { @@ -2411,6 +2412,153 @@ } + /// <summary> + /// WMS鐢宠鎷h揣绌烘墭 + /// </summary> + /// <param name="model"> </param> + /// <param name="userId"> </param> + /// <param name="url"> </param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public string IssuePlnCehckHouseWcs(CheckModePalletVm model, int userId, string url) + { + try + { + string StartLocate = "" ,EndLocate = ""; + + Db.BeginTran(); + if (model.OutMode == "001") //瑗夸晶鎷h揣浣嶅彨绌烘墭鐩� + { + var xLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")); + if (xLocate == null) + { + throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏"); + } + StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13010101" || w.LocatNo == "B13020101" || w.LocatNo == "B13030101")).LocatNo; + EndLocate = "B15010101"; + } + else//涓滀晶鎷h揣浣嶅彨绌烘墭鐩� + { + var dLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")); + if (dLocate == null) + { + throw new Exception("娌℃湁鍙敤鐨勭┖鎵樼洏"); + } + StartLocate = Db.Queryable<SysStorageLocat>().First(w => w.Status == "1" && (w.LocatNo == "B13030101" || w.LocatNo == "B13040101" || w.LocatNo == "B13050101")).LocatNo; + EndLocate = "B15020101"; + } + + //娣诲姞鍑哄簱浠诲姟 + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "AGV", + IsSuccess = 0, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + + StartLocat = StartLocate,//璧峰浣嶇疆 + EndLocat = EndLocate,//鐩爣浣嶇疆 + PalletNo = "",//鎵樼洏鐮� + Msg = string.Format("杞繍浠诲姟锛歿0}=>>{1}", StartLocate, EndLocate), + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "2",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "3",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + + CreateTime = DateTime.Now + }; + Db.Insertable(exTask).ExecuteCommand(); + + var storageLocatEnd = Db.Queryable<SysStorageLocat>().First(w => w.LocatNo == EndLocate); + //淇敼鐩爣鍌ㄤ綅鍦板潃鐘舵�� + if (storageLocatEnd != null) + { + storageLocatEnd.Status = "4";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(storageLocatEnd).ExecuteCommand(); + } + + #region 鍛煎彨灏忚溅浠g爜 + + var endlono = EndLocate; + string tasktype = "D01"; + + //鐐瑰埌鐐规寚浠ら泦鍚� + object[] position = new object[2]; + position[0] = new + { + positionCode = StartLocate, + type = "00" + }; + position[1] = new + { + positionCode = endlono, + type = "00" + }; + + List<AgvSchedulingTask> agvTaskList = new List<AgvSchedulingTask>(); + AgvSchedulingTask agvTask = new AgvSchedulingTask(); + Random r = new Random(); + long ran = DateTime.Now.Ticks; + agvTask.ReqCode = ran.ToString(); + agvTask.TaskCode = taskNo; + agvTask.TaskTyp = tasktype; + agvTask.PositionCodePath = position; + agvTask.CtnrTyp = "1"; + + agvTaskList.Add(agvTask); + + string str = ""; + var list2 = agvTaskList.Select(m => m.TaskCode).ToList(); + var jsonData = JsonConvert.SerializeObject(agvTaskList); + jsonData = jsonData.Substring(1, jsonData.Length - 1); + jsonData = jsonData.Substring(0, jsonData.Length - 1); + 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 agvModel = JsonConvert.DeserializeObject<OutCommanAgvDto>(response); + if (agvModel.Code == "0") + { + //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// + new TaskServer().EditTaskIssueOk(list2, time1, time2); + str += "涓嬪彂鎴愬姛"; + } + if (agvModel.Code == "1") + { + new TaskServer().EditTaskIssueNo(list2, time1, time2, agvModel.Message); + throw new Exception(agvModel.Message); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + + #endregion + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationCrServer().AddLogOperationCr("PDA妯″潡", "AGV杞繍", "", "绉诲簱", $"PDA鍛煎彨灏忚溅鎷嗙┖鎵樼洏鎷h揣", userId); + Db.CommitTran(); + + return ""; + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + + public string MoveAddress(string oldAddress, string roadWay, string skuNo,string areaNo="")//01020201 鎺�-鍒�-灞�-娣卞害 { string nowAddress = ""; diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs index 07842f2..68367c9 100644 --- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs +++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs @@ -2249,7 +2249,7 @@ //鍑哄簱浠诲姟鍙锋洿鏀癸紝濡傛灉鐢盤LC鍑哄簱锛屽垯PLC鍥炰紶浠诲姟鍙蜂负锛氫换鍔″彿+瀹為檯鍑哄簱鍙� var TtaskNo = taskNo; var outLine = ""; - if (userId == 0) + if (taskNo.Length == 18) { TtaskNo = taskNo.Substring(0, taskNo.Length - 3); outLine = taskNo.Substring(taskNo.Length - 3, 3); @@ -2481,7 +2481,8 @@ agvTask.CtnrTyp = "1"; //瀹瑰櫒绫诲瀷锛屽�间负1 if (type == "D02") { - agvTask.CtnrNum = "10"; //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺 + var palnoNum = Db.Queryable<BllPalletBind>().OrderByDescending(w=>w.Id).First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo); + agvTask.CtnrNum = palnoNum.Qty.ToString(); //鍙犳墭浠诲姟闇�瑕佷笅鍙戠┖鎵樼洏鏁伴噺 } agvTaskList.Add(agvTask); @@ -3931,7 +3932,7 @@ throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺"); } decimal pickQty = 0;//鎷h揣鐨勬暟閲� - + Db.BeginTran(); var comList = new List<BllCompleteDetail>(); foreach (var item in boxInfos) { @@ -4038,12 +4039,12 @@ } //淇敼鍑哄簱鍗曚俊鎭� Db.Updateable(notice).ExecuteCommand(); - + Db.CommitTran(); return allot.LoadingAddre; } catch (Exception e) { - + Db.RollbackTran(); throw new Exception(e.Message); } } diff --git a/Wms/WMS.BLL/DataServer/StockServer.cs b/Wms/WMS.BLL/DataServer/StockServer.cs index 89c8c23..8ab0b61 100644 --- a/Wms/WMS.BLL/DataServer/StockServer.cs +++ b/Wms/WMS.BLL/DataServer/StockServer.cs @@ -16,6 +16,7 @@ using Utility.Tools; using WMS.BLL.LogServer; using WMS.DAL; +using WMS.Entity.BllAsnEntity; using WMS.Entity.BllSoEntity; using WMS.Entity.Context; using WMS.Entity.DataEntity; @@ -1060,13 +1061,18 @@ palletNo.Status = "2"; //宸插畬鎴� Db.Updateable(palletNo).ExecuteCommand(); - //淇敼搴撳瓨鏄庣粏 - stockDetail.Status = "0";//寰呭垎閰� - stockDetail.LocatNo = ""; - stockDetail.AreaNo = ""; - stockDetail.RoadwayNo = ""; - stockDetail.WareHouseNo = ""; - Db.Updateable(stockDetail).ExecuteCommand(); + + if (stockDetail !=null) + { + //淇敼搴撳瓨鏄庣粏 + stockDetail.Status = "0";//寰呭垎閰� + stockDetail.LocatNo = ""; + stockDetail.AreaNo = ""; + stockDetail.RoadwayNo = ""; + stockDetail.WareHouseNo = ""; + Db.Updateable(stockDetail).ExecuteCommand(); + } + #region 涓嬪彂WCS鏀捐揣瀹屾垚 var data = new @@ -1088,6 +1094,7 @@ throw new Exception("鏀捐揣澶辫触锛學CS杩斿洖淇℃伅閿欒"); } } + catch (Exception ex) { throw new Exception(ex.Message); @@ -1101,7 +1108,7 @@ } catch (Exception ex) { - + Db.RollbackTran(); throw new Exception("AGV杩斿洖鍏ュ簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex); } } @@ -1110,8 +1117,9 @@ /// AGV鍑哄簱瀹屾垚 /// </summary> /// <param name="TaskCode">浠诲姟鍙�</param> + /// <param name="url">鍙嶉MES澶囨枡瀹屾垚鍦板潃</param> /// <returns></returns> - public void SoFinish(string TaskCode) + public void SoFinish(string TaskCode,string url) { try { @@ -1153,12 +1161,162 @@ } } + + //瀹屾垚鎺ュ彛淇敼锛堟湭瀹屾垚锛� + //try + //{ + // var palletNo = Db.Queryable<LogTask>().First(m => m.TaskNo == TaskCode && m.Status == "1");//鑾峰彇姝e湪鎵ц鐨勪换鍔′俊鎭� + // if (palletNo == null) + // { + // throw new Exception("姝や换鍔″凡瀹屾垚"); + // } + // var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅 + // var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅 + // var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo).ToList(); + // if (stockDetail.Count == 0) + // { + // throw new Exception("鎵樼洏涓婄墿鏂欏簱瀛樻槑缁嗕俊鎭笉瀛樺湪,璇锋鏌�!"); + // } + // //寮�鍚簨鍔� + // Db.BeginTran(); + // if (storageLocat != null) + // { + // if (storageLocat.AreaNo == "B12")//杞﹂棿缂撳瓨浣嶉渶瑕侀�氱煡MES + // { + // var data = new List<RequertBeiliaoInfoModel>(); + // //鏇存敼搴撳瓨鏄庣粏 + // foreach (var item in stockDetail) + // { + // item.LocatNo = item.LocatNo;//鍌ㄤ綅鏇存敼 + // item.WareHouseNo = item.WareHouseNo;//鎵�灞炰粨搴撴洿鏀� + // item.RoadwayNo = item.RoadwayNo;//鎵�灞炲贩閬撴洿鏀� + // item.AreaNo = item.AreaNo;//鎵�灞炲尯鍩熸洿鏀� + + // Db.Updateable(item).ExecuteCommand(); + + + // if (string.IsNullOrWhiteSpace(item.SONo)) + // { + // throw new Exception("褰撳墠鎵樼洏涓嶆槸鎷兼墭鍑哄簱鎵樼洏"); + // } + // var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).ToList(); + // if (boxInfo.Count == 0) + // { + // throw new Exception("鎵樼洏涓婄墿鏂欑鐮佷俊鎭笉瀛樺湪,璇锋鏌�!"); + // } + // //var boxno = boxInfo.GroupBy(w => w.BoxNo).ToList(); + // var boxno = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).GroupBy(m => new + // { + // m.BoxNo + // }).Select(it => new DataBoxInfo() + // { + // BoxNo = it.BoxNo + // }).ToList(); + + // //璁板綍鎵樼洏涓婁俊鎭粰MES + // foreach (var item2 in boxno) + // { + // var a = item.ProductionTime.ToString(); + // data.Add(new RequertBeiliaoInfoModel() + // { + // no = item2.BoxNo, + // materiel_no = item.SkuNo, + // materiel_name = item.SkuName, + // qty = item.Qty, + // batch = item.LotNo, + // producttime = item.ProductionTime.ToString().Substring(0, 10), + // expiry = item.ExpirationTime.ToString().Substring(0, 10) + + // }); + // } + // //搴撳瓨绠辩爜鏄庣粏鍒犻櫎 + // Db.Deleteable(boxInfo).ExecuteCommand(); + // //鍒犻櫎搴撳瓨鎵樼洏淇℃伅 + // Db.Deleteable(item).ExecuteCommand(); + // //鏇存敼搴撳瓨鎬昏〃 + // var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo); + // stock.LockQty -= (decimal)item.Qty; + // stock.Qty -= (decimal)item.Qty; + // Db.Updateable(stock).ExecuteCommand(); + // //鏇存敼鎵樼洏鐘舵�� + // var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo); + // if (pallet != null) + // { + // pallet.Status = "0"; + // Db.Updateable(pallet).ExecuteCommand(); + // } + + // } + + // //鑾峰彇浠ょ墝 + // //var token = new Token().GetMesToken(mesTokenUrl); + // var token = ""; + // Dictionary<string, string> mesDic = new Dictionary<string, string>() + // { + // {"Authorization",token } + // }; + // var endlono = palletNo.EndLocat; + // //缂撳瓨搴撲綅杞崲 + // switch (palletNo.EndLocat.ToString().Substring(4, 1)) + // { + // case "1": + // endlono = "Y003_00" + palletNo.EndLocat.ToString().Substring(6, 1); + // break; + // case "2": + // endlono = "Y138_0" + palletNo.EndLocat.ToString().Substring(5, 2); + // break; + // case "3": + // endlono = "Y128_0" + palletNo.EndLocat.ToString().Substring(5, 2); + // break; + // default: + // break; + // } + // var mescode = Db.Queryable<BllExportNotice>().Where(w => w.SONo == stockDetail.First().SONo).First(); + // var mesData = new RequertBeiliaoModel() + // { + // morder_no = mescode.OrderCode, + // pallet = stockDetail.First().PalletNo, + // layer_no = endlono, + // items = data + // }; + // var jsonData = JsonConvert.SerializeObject(mesData); + // //璋冪敤鎺ュ彛 + // var response = HttpHelper.DoPost(url, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic); + + // var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 + // if (obj.status != "success") + // { + // throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message); + // } + + + // } + // //淇敼鐩殑搴撲綅鐘舵�� + // storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + // Db.Updateable(storageLocat).ExecuteCommand(); + + // //淇敼浠诲姟鐘舵�� + // palletNo.Status = "2"; //宸插畬鎴� + // Db.Updateable(palletNo).ExecuteCommand(); + + // //淇敼搴撳瓨鏄庣粏 + // item.Status = "2";// 0:寰呭垎閰� 1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾 + // stockDetail.LocatNo = storageLocat.LocatNo; + // stockDetail.AreaNo = storageLocat.AreaNo; + // stockDetail.RoadwayNo = storageLocat.RoadwayNo; + // stockDetail.WareHouseNo = storageLocat.WareHouseNo; + // Db.Updateable(stockDetail).ExecuteCommand(); + // } + // Db.CommitTran(); + + //} /// <summary> /// AGV绉诲簱瀹屾垚 /// </summary> /// <param name="TaskCode">浠诲姟鍙�</param> + /// <param name="url">鍙嶉MES澶囨枡瀹屾垚鍦板潃</param> /// <returns></returns> - public void MoveFinish(string TaskCode) + public void MoveFinish(string TaskCode,string url) { try { @@ -1167,40 +1325,211 @@ { throw new Exception("姝や换鍔″凡瀹屾垚"); } - var storageLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇搴撲綅淇℃伅 - var storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇搴撲綅淇℃伅 - var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo); //鑾峰彇搴撳瓨淇℃伅 + var startLocat = new SysStorageLocat(); + + var endLocat = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat); //鑾峰彇鐩殑搴撲綅淇℃伅 + if (endLocat == null) + { + throw new Exception("鏈壘鍒扮浉搴旂殑鐩殑搴撲綅"); + } + var storageStart = new SysStorageLocat(); + + int isstock = 1; + var bindDetail = new BllPalletBind(); + var sysPanlno = new SysPallets(); + + var stockDetail = Db.Queryable<DataStockDetail>().Where(w => w.IsDel == "0" && w.PalletNo == palletNo.PalletNo).ToList(); //鑾峰彇搴撳瓨淇℃伅 + if (stockDetail.Count == 0) + { + //鏈壘鍒板簱瀛樺悗闇�瑕佸垽鏂槸鍚︽槸绌烘墭鐩樼Щ搴� + isstock = 0; + bindDetail = Db.Queryable<BllPalletBind>().OrderByDescending(w=>w.Id).First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat);//鑾峰彇缁勬墭鐩樹俊鎭� + if (bindDetail == null) + { + bindDetail = Db.Queryable<BllPalletBind>().OrderByDescending(w => w.Id).First(w => w.IsDel == "0" && w.LocatNo == palletNo.EndLocat);//鑾峰彇缁勬墭鐩樹俊鎭� + if (bindDetail == null) + { + throw new Exception("鏈壘鍒扮┖鎵樼洏缁勬墭淇℃伅"); + } + } + } + else + { + storageStart = Db.Queryable<SysStorageLocat>().First(w => w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); //鑾峰彇璧峰搴撲綅淇℃伅 + if (storageStart == null) + { + throw new Exception("鏈壘鍒扮浉搴旂殑璧峰搴撲綅"); + } + } //var soAllot = Db.Queryable<BllExportAllot>().First(m => m.IsDel == "0" && m.PalletNo == palletNo.PalletNo);//鑾峰彇鍒嗛厤淇℃伅 //寮�鍚簨鍔� Db.BeginTran(); - //淇敼璧峰搴撲綅鐘舵�� - storageLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 - Db.Updateable(storageLocat).ExecuteCommand(); //淇敼鐩殑搴撲綅鐘舵�� - storageLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 - Db.Updateable(storageLocat).ExecuteCommand(); + endLocat.Status = "1";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(endLocat).ExecuteCommand(); //淇敼浠诲姟鐘舵�� palletNo.Status = "2"; //宸插畬鎴� Db.Updateable(palletNo).ExecuteCommand(); - //淇敼搴撳瓨鏄庣粏 - stockDetail.Status = "2";// 0:寰呭垎閰� 1:閮ㄥ垎鍒嗛厤 2锛氬凡鍒嗛厤 3锛氱洏鐐归攣瀹氾細 4绉诲簱閿佸畾 - stockDetail.LocatNo = storageLocat.LocatNo; - stockDetail.AreaNo = storageLocat.AreaNo; - stockDetail.RoadwayNo = storageLocat.RoadwayNo; - stockDetail.WareHouseNo = storageLocat.WareHouseNo; - Db.Updateable(stockDetail).ExecuteCommand(); + if (isstock == 1) + { + startLocat = Db.Queryable<SysStorageLocat>().First(w=> w.IsDel == "0" && w.LocatNo == palletNo.StartLocat); + //淇敼璧峰搴撲綅鐘舵�� + startLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(startLocat).ExecuteCommand(); + + //璋冪敤MES澶囨枡鍙嶉瀹屾垚鎺ュ彛 + #region MES澶囨枡瀹屾垚鍙嶉 + var data = new List<RequertBeiliaoInfoModel>(); + + //鏇存敼搴撳瓨鏄庣粏 + foreach (var item in stockDetail) + { + item.LocatNo = endLocat.LocatNo;//鍌ㄤ綅鏇存敼 + item.WareHouseNo = endLocat.WareHouseNo;//鎵�灞炰粨搴撴洿鏀� + item.RoadwayNo = endLocat.RoadwayNo;//鎵�灞炲贩閬撴洿鏀� + item.AreaNo = endLocat.AreaNo;//鎵�灞炲尯鍩熸洿鏀� + + Db.Updateable(item).ExecuteCommand(); + + if (endLocat != null && endLocat.AreaNo == "B12") //鏄惁鏄�3妤肩紦瀛樺尯 鏄細鍒犻櫎搴撳瓨 + { + if (string.IsNullOrWhiteSpace(item.SONo)) + { + throw new Exception("褰撳墠鎵樼洏涓嶆槸鎷兼墭鍑哄簱鎵樼洏"); + } + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).ToList(); + if (boxInfo.Count == 0) + { + throw new Exception("鎵樼洏涓婄墿鏂欑鐮佷俊鎭笉瀛樺湪,璇锋鏌�!"); + } + //var boxno = boxInfo.GroupBy(w => w.BoxNo).ToList(); + var boxno = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).GroupBy(m => new + { + m.BoxNo, + m.ProductionTime, + m.ExpirationTime, + }).Select(it => new DataBoxInfo() + { + BoxNo = it.BoxNo, + ProductionTime = it.ProductionTime, + ExpirationTime = it.ExpirationTime, + }).ToList(); + + //璁板綍鎵樼洏涓婁俊鎭粰MES + foreach (var item2 in boxno) + { + //var a = item.ProductionTime.ToString(); + data.Add(new RequertBeiliaoInfoModel() + { + no = item2.BoxNo, + materiel_no = item.SkuNo, + materiel_name = item.SkuName, + qty = item.Qty, + batch = item.LotNo, + producttime = item2.ProductionTime.ToString().Substring(0, 10), + expiry = item2.ExpirationTime.ToString().Substring(0, 10) + + }); + } + //搴撳瓨绠辩爜鏄庣粏鍒犻櫎 + Db.Deleteable(boxInfo).ExecuteCommand(); + //鍒犻櫎搴撳瓨鎵樼洏淇℃伅 + Db.Deleteable(item).ExecuteCommand(); + //鏇存敼搴撳瓨鎬昏〃 + var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo); + stock.LockQty -= (decimal)item.Qty; + stock.Qty -= (decimal)item.Qty; + Db.Updateable(stock).ExecuteCommand(); + //鏇存敼鎵樼洏鐘舵�� + var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == palletNo.PalletNo); + if (pallet != null) + { + pallet.Status = "0"; + Db.Updateable(pallet).ExecuteCommand(); + } + } + } + if (endLocat != null && endLocat.AreaNo == "B12") + { + //鑾峰彇浠ょ墝 + //var token = new Token().GetMesToken(mesTokenUrl); + var token = ""; + Dictionary<string, string> mesDic = new Dictionary<string, string>() + { + {"Authorization",token } + }; + var endlono = endLocat.LocatNo; + //缂撳瓨搴撲綅杞崲 + switch (endLocat.LocatNo.ToString().Substring(4, 1)) + { + case "1": + endlono = "Y003_0" + endLocat.LocatNo.ToString().Substring(5, 2); + break; + + } + var mescode = Db.Queryable<BllExportNotice>().Where(w => w.SONo == stockDetail.First().SONo).First(); + var mesData = new RequertBeiliaoModel() + { + morder_no = mescode.OrderCode, + pallet = stockDetail.First().PalletNo, + layer_no = endlono, + items = data + }; + var jsonData = JsonConvert.SerializeObject(mesData); + //璋冪敤鎺ュ彛 + var response = HttpHelper.DoPost(url, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic); + + var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.status != "success") + { + throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message); + } + + } + #endregion + } + else //绌烘墭鐩樺鐞� + { + //淇敼缁勬墭淇℃伅 + if (bindDetail.WareHouseNo == "W01") //1銆佺┖鎵樼洏鍨涘埌绌烘墭鐩樻敹闆嗗櫒锛� + { + bindDetail.WareHouseNo = "W02"; + bindDetail.LocatNo = endLocat.LocatNo; + bindDetail.RoadwayNo = ""; + //淇敼璧峰搴撲綅鐘舵�� + startLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(startLocat).ExecuteCommand(); + } + else//2銆佹嫞璐у彨绌烘墭鐩橈紝灏忚溅瀹屾垚涓�娆★紝鎵e噺涓�涓┖鎵樼洏鍨涗笂鏁伴噺 + { + bindDetail.Qty = bindDetail.Qty - 1; + if (bindDetail.Qty == 0)//鏁伴噺涓�0鍚庢洿鏀圭粍鎵樼姸鎬佸拰鎵樼洏浣跨敤鐘舵�� + { + bindDetail.Status = "2"; + bindDetail.IsDel = "1"; + //淇敼璧峰搴撲綅鐘舵�� + startLocat.Status = "0";//0锛氱┖鍌ㄤ綅 1锛氭湁鐗╁搧 2锛氬叆搴撲腑 3锛氬嚭搴撲腑 4锛氱Щ鍏ヤ腑 5锛氱Щ鍑轰腑 + Db.Updateable(startLocat).ExecuteCommand(); + } + else + { + bindDetail.LocatNo = startLocat.LocatNo;//?????鎷h揣浣嶆墭鐩樺浣曞鐞嗭紝鎷h揣浣嶆槸鍚﹂渶瑕佹洿鏀圭姸鎬侊紝鏄惁闇�瑕佸鍔犲簱瀛橈紱 + } + } + Db.Updateable(bindDetail).ExecuteCommand(); + } Db.CommitTran(); } catch (Exception ex) { - + Db.RollbackTran(); throw new Exception("AGV杩斿洖绉诲簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細"+ex); } } @@ -1217,32 +1546,41 @@ { try { - List<ReLocateDataModel> list = new List<ReLocateDataModel>(); //搴撳瓨淇℃伅 - var stockDetailsList = Db.Queryable<StockDetailDto>().ToList(); - - if (stockDetailsList.Count == 0) - { - return list; - } - for (int i = 0; i < stockDetailsList.Count; i++) - { - list[i].LocatNo = stockDetailsList[i].LocatNo; //搴撲綅 - list[i].PalletNo = stockDetailsList[i].PalletNo; //鎵樼洏鍙� - list[i].SkuName = stockDetailsList[i].SkuName; //鐗╂枡鍚嶇О - list[i].Stadard = stockDetailsList[i].Standard; //瑙勬牸 - list[i].LotNo = stockDetailsList[i].LotNo; //鎵规 - list[i].InspectStatus = stockDetailsList[i].InspectStatus; //璐ㄩ噺鐘舵�� - list[i].Qty = stockDetailsList[i].Qty.ToString(); //搴撳瓨鏁伴噺 - list[i].Warranty = stockDetailsList[i].ExpirationTime.ToString(); //鏈夋晥鏈� ??杩囨湡鏃堕棿锛屾槸鍚﹁鏇存敼 - } + var stockDetailsList = Db.Queryable<DataStockDetail>().ToList(); + var sql = "select LocatNo,PalletNo,SkuName,Standard,LotNo,InspectStatus,Qty,ExpirationTime as Warranty from DataStockDetail "; + + List<ReLocateDataModel> list = Db.Ado.SqlQuery<ReLocateDataModel>(sql); + + //if (stockDetailsList.Count == 0) + //{ + // return list; + //} + //foreach (var item in stockDetailsList) + //{ + // list.Add(item); + + //} + //for (int i = 0; i < stockDetailsList.Count; i++) + //{ + + // list.Add(stockDetailsList); + // list[i].LocatNo = stockDetailsList[i].LocatNo; //搴撲綅 + // list[i].PalletNo = stockDetailsList[i].PalletNo; //鎵樼洏鍙� + // list[i].SkuName = stockDetailsList[i].SkuName; //鐗╂枡鍚嶇О + // list[i].Stadard = stockDetailsList[i].Standard; //瑙勬牸 + // list[i].LotNo = stockDetailsList[i].LotNo; //鎵规 + // list[i].InspectStatus = stockDetailsList[i].InspectStatus; //璐ㄩ噺鐘舵�� + // list[i].Qty = stockDetailsList[i].Qty.ToString(); //搴撳瓨鏁伴噺 + // list[i].Warranty = stockDetailsList[i].ExpirationTime.ToString(); //鏈夋晥鏈� ??杩囨湡鏃堕棿锛屾槸鍚﹁鏇存敼 + //} return list; } catch (Exception ex) { - throw new Exception("AGV杩斿洖鍏ュ簱瀹屾垚淇″彿澶勭悊閿欒锛岄敊璇俊鎭細" + ex); + throw new Exception("杩斿洖搴撳瓨淇℃伅鏈夎锛岄敊璇俊鎭細" + ex); } } #endregion diff --git a/Wms/WMS.BLL/LogServer/TaskServer.cs b/Wms/WMS.BLL/LogServer/TaskServer.cs index ca411ac..3177aa7 100644 --- a/Wms/WMS.BLL/LogServer/TaskServer.cs +++ b/Wms/WMS.BLL/LogServer/TaskServer.cs @@ -130,7 +130,7 @@ { taskNo = taskNo.Substring(0, taskNo.Length - 3); } - var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo); + var task = Db.Queryable<LogTask>().OrderByDescending(m=>m.Id).First(m => m.TaskNo == taskNo); if (task == null) { throw new Exception($"鏈煡璇㈠埌{taskNo}浠诲姟鍙风殑浠诲姟淇℃伅"); @@ -168,10 +168,11 @@ /// <param name="port"></param> 鍏ュ簱鍙� /// <param name="url"></param> 璇锋眰鍦板潃 /// <returns></returns> - public string GetWcsPuttype(string taskno,string port,string url) + public string GetWcsPuttype(string taskno,string url) { try { + var port = Db.Queryable<LogTask>().First(m => m.TaskNo == taskno).EndLocat; var data = new { Port = port, diff --git a/Wms/WMS.BLL/SysServer/MaterialsServer.cs b/Wms/WMS.BLL/SysServer/MaterialsServer.cs index 6492fb9..f83c050 100644 --- a/Wms/WMS.BLL/SysServer/MaterialsServer.cs +++ b/Wms/WMS.BLL/SysServer/MaterialsServer.cs @@ -153,7 +153,17 @@ return 2; } - + switch (matedto.Warrantydate) + { + case "1": //淇濆瓨浠ユ湀涓哄崟浣� + matedto.Warranty = matedto.Warranty * 30; + break; + case "2": //淇濆瓨浠ュ勾涓哄崟浣� + matedto.Warranty = matedto.Warranty * 365; + break; + default: + break; + } //鏄犲皠妯″瀷 SysMaterials mate = _mapper.Map<SysMaterials>(matedto); mate.AuditStatusNo = "9"; //瀹℃牳鐘舵�� diff --git a/Wms/WMS.BLL/SysServer/PackagServer.cs b/Wms/WMS.BLL/SysServer/PackagServer.cs index 394029a..1305c52 100644 --- a/Wms/WMS.BLL/SysServer/PackagServer.cs +++ b/Wms/WMS.BLL/SysServer/PackagServer.cs @@ -56,6 +56,7 @@ L3 = m.L3Num == null ? "" : m.L3Num.ToString() + "/" + m.L3Name, L4 = m.L4Num == null ? "" : m.L4Num.ToString() + "/" + m.L4Name, L5 = m.L5Num == null ? "" : m.L5Num.ToString() + "/" + m.L5Name, + //L1Num = int.Parse(m.L1Num.ToString()), //L1Name = m.L1Name, //L2Num = int.Parse(m.L2Num.ToString()), @@ -282,8 +283,8 @@ } else { - packagItems.L3Num = null; - packagItems.L3Name = null; + packagItems.L2Num = null; + packagItems.L2Name = null; } //鍒ゆ柇涓�绾у寘瑁呮槸鍚︿负绌� if (!string.IsNullOrEmpty(model.L1Num) && !string.IsNullOrEmpty(model.L1Name)) diff --git a/Wms/WMS.IBLL/IDataServer/IStockServer.cs b/Wms/WMS.IBLL/IDataServer/IStockServer.cs index 3062e6f..0e57fa5 100644 --- a/Wms/WMS.IBLL/IDataServer/IStockServer.cs +++ b/Wms/WMS.IBLL/IDataServer/IStockServer.cs @@ -132,17 +132,17 @@ /// <summary> /// 鍑哄簱浠诲姟瀹屾垚 /// </summary> - /// <param name="skuNo">鐗╂枡缂栫爜</param> - /// <param name="skuName">鐗╂枡鍚嶇О</param> + /// <param name="TaskCode">浠诲姟鍙�</param> + /// <param name="url">鍙嶉MES澶囨枡瀹屾垚</param> /// <returns></returns> - public void SoFinish(string TaskCode); + public void SoFinish(string TaskCode,string url); /// <summary> /// 绉诲簱浠诲姟瀹屾垚 /// </summary> - /// <param name="skuNo">鐗╂枡缂栫爜</param> - /// <param name="skuName">鐗╂枡鍚嶇О</param> + /// <param name="TaskCode">浠诲姟鍙�</param> + /// <param name="url">鍙嶉MES澶囨枡瀹屾垚</param> /// <returns></returns> - public void MoveFinish(string TaskCode); + public void MoveFinish(string TaskCode,string url); #endregion /// <summary> diff --git a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs index 24fc617..756f264 100644 --- a/Wms/WMS.IBLL/ILogServer/ITaskServer.cs +++ b/Wms/WMS.IBLL/ILogServer/ITaskServer.cs @@ -53,6 +53,6 @@ /// <returns>0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2绉诲簱浠诲姟</returns> public string GetTaskType(string taskNo); - public string GetWcsPuttype(string taskno,string port,string url); + public string GetWcsPuttype(string taskno,string url); } } diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs index e10b9cd..603bc51 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs @@ -29,6 +29,9 @@ // 鍒ゆ柇鎵樼洏鍙锋槸鍚﹀彲鐢� string IsEnablePalletNo(string palletNo); + // 鍒ゆ柇鍦扮爜鏄惁鍙敤 + string IsEnableLocatNo(string locatNo); + // 鏍规嵁绠辩爜鎴栨墭鐩樺彿鑾峰彇绠辨敮淇℃伅 List<BoxInfoDto> GetBoxInfos(BoxInfoVm model); diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs index fd4a5f4..afbac9c 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaCrServer.cs @@ -141,6 +141,14 @@ List<string> AgvTransport2(string soNo, string palletNo, string areaNo,string ruku, int userId, string url); /// <summary> + /// 绌烘墭鐩樺叆搴撳懠鍙皬杞� + /// </summary> + /// <param name="palletNo"></param> + /// <param name="areaNo"></param> + /// <param name="ruku"></param> + void AgvTransport3(string palletNo, string locatNo, string ruku, int userId, string url, string wcsurl); + + /// <summary> /// agv浠诲姟涓嬪彂 /// </summary> /// <param name="model"></param> diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs index 0e8e0a5..2c01216 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaSoServer.cs @@ -101,11 +101,19 @@ /// </summary> /// <param name="model"> </param> /// <param name="userId"> </param> - /// <param name="url"> </param> /// <returns></returns> /// <exception cref="Exception"></exception> List<OutCommandDto> IssuePlnOutHouseWcs(OutModePalletVm model, int userId); + /// <summary> + /// WMS鎷h揣鐢宠绌烘墭鍑哄簱 + /// </summary> + /// <param name="model"> </param> + /// <param name="userId"> </param> + /// <param name="url"> </param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + string IssuePlnCehckHouseWcs(CheckModePalletVm model, int userId,string url); /// <summary> /// 鑾峰彇骞冲簱鎵樼洏淇℃伅 diff --git a/Wms/Wms/Controllers/DownApiController.cs b/Wms/Wms/Controllers/DownApiController.cs index 0b06f04..e558169 100644 --- a/Wms/Wms/Controllers/DownApiController.cs +++ b/Wms/Wms/Controllers/DownApiController.cs @@ -554,12 +554,12 @@ [HttpPost] public IActionResult BindPlnInHouseWcs(PalletsBind model) { - var logStr = $@".\log\WCS\WCS鐢宠绌烘墭璺虹粦瀹�" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + var logStr = $@".\log\WCS\WCS鍙堝彔鎵樻満鐢宠绌烘墭鍏ュ簱" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; try { var strMsg = _paAsnSvc.BindNullPallets(model); - return Ok(new { Success = 0, Message = "绌烘墭璺虹粦瀹氭垚鍔�", TaskList = strMsg }); + return Ok(new { Success = 0, Message = "绌烘墭璺虹粦瀹氭垚鍔�"}); } catch (Exception e) { @@ -588,6 +588,30 @@ catch (Exception e) { LogFile.SaveLogToFile($"WCS鐢宠绌烘墭鍑哄簱寮傚父杩斿洖锛�( {e.Message} ),", logStr); + + return Ok(new ErpModel { Success = -1, Message = e.Message }); + } + } + + /// <summary> + /// WMS鎷h揣鐢宠绌烘墭鍑哄簱 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [AllowAnonymous] + [HttpPost] + public IActionResult IssuePlnCheckHouseWcs(CheckModePalletVm model) + { + var logStr = $@".\log\WCS\WMS鎷h揣鐢宠绌烘墭鍑哄簱" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; + try + { + string list = _pdaSoSvc.IssuePlnCehckHouseWcs(model, 0,_config.AgvHost+_config.GenAgvSchedulingTask); + + return Ok(new { Success = 0, Message = "鎷h揣鍙┖鎵樼洏鎴愬姛"}); + } + catch (Exception e) + { + LogFile.SaveLogToFile($"WMS鎷h揣鐢宠绌烘墭鍑哄簱寮傚父杩斿洖锛�( {e.Message} ),", logStr); return Ok(new ErpModel { Success = -1, Message = e.Message }); } @@ -741,13 +765,13 @@ { //杩斿洖鍑哄簱鍒嗘嫞瑁呰溅鍙� var list = _exNoticeSvc.BoxInfoExportWcs(model.BoxNo); - return Ok(new { Success = 1, Message = "鎴愬搧绠辩爜鎷嗗灈鎷h揣鎴愬姛", loadubgAddre = list }); + return Ok(new { Success = "1", Message = "鎴愬搧绠辩爜鎷嗗灈鎷h揣鎴愬姛", loadubgAddre = list }); } catch (Exception e) { LogFile.SaveLogToFile($"WCS鐢宠鎴愬搧绠辩爜鎷嗗灈鎷h揣寮傚父杩斿洖锛�( {e.Message} ),", logStr); - return Ok(new ErpModel { Success = -1, Message = e.Message }); + return Ok(new { Success = "-1", Message = e.Message, loadubgAddre ="" }); } } @@ -785,10 +809,10 @@ switch (orderType) { case "0"://鍏ュ簱浠诲姟鎵ц - if (model.TaskTyp == "mid") //AGV鍒拌揪鍏ュ簱鍙o紝璇锋眰鏀捐揣 + if (model.Method == "mid") //AGV鍒拌揪鍏ュ簱鍙o紝璇锋眰鏀捐揣 { //涓嬪彂WCS鏀捐揣璇锋眰 - var ret = _taskSvc.GetWcsPuttype(model.TaskCode,model.CurrentCallCode,_config.WcsHost + _config.HttpInRequest); + var ret = _taskSvc.GetWcsPuttype(model.TaskCode,_config.WcsHost + _config.HttpInRequest); if (ret.Contains("-1")) { logStr = $@".\log\WCS\浠诲姟鍙嶉" + DateTime.Now.ToString("yyyyMMdd") + ".txt"; @@ -796,23 +820,21 @@ return Ok(new OutCommanAgvDto { Code = "1", Message = "澶辫触", ReqCode = model.ReqCode }); } } - else if (model.TaskTyp == "end")//AGV鏀捐揣鍒板叆搴撳彛瀹屾垚 + else if (model.Method == "end")//AGV鏀捐揣鍒板叆搴撳彛瀹屾垚 { _stockSvc.ArriveFinish(model.TaskCode,_config.WcsHost + _config.HttpInFinish); - - } break; case "1"://鍑哄簱浠诲姟鎵ц - _stockSvc.SoFinish(model.TaskCode); + _stockSvc.SoFinish(model.TaskCode,_config.MesHost + _config.MesBeiLiaoUrl); break; case "2"://鐩樺簱浠诲姟鎵ц case "3"://绉诲簱浠诲姟鎵ц - _stockSvc.MoveFinish(model.TaskCode); + _stockSvc.MoveFinish(model.TaskCode, _config.MesHost + _config.MesBeiLiaoUrl); break; // return Ok(new OutCommanAgvDto { Code = "0", Message = "鎴愬姛", ReqCode = model.ReqCode }); diff --git a/Wms/Wms/Controllers/PdaAsnController.cs b/Wms/Wms/Controllers/PdaAsnController.cs index 1a909b5..8e48743 100644 --- a/Wms/Wms/Controllers/PdaAsnController.cs +++ b/Wms/Wms/Controllers/PdaAsnController.cs @@ -128,6 +128,33 @@ } /// <summary> + /// 鍒ゆ柇鎵樼洏鏄惁鍙敤 + /// </summary> + /// <param name="model">PalletNo锛氭墭鐩樻潯鐮�</param> + /// <returns></returns> + [HttpPost] + public IActionResult IsEnableLocatNo(PalletBindVm model) + { + try + { + var strMsg = _PdaAsnSvc.IsEnableLocatNo(model.LocatNo); + + 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 }); + } + } + + /// <summary> /// 鑾峰彇鍗曟嵁鏄庣粏鍒楄〃 /// </summary> /// <param name="model">AsnNo:鍗曟嵁鍙�</param> diff --git a/Wms/Wms/Controllers/PdaCrController.cs b/Wms/Wms/Controllers/PdaCrController.cs index b2f5c9f..a71da39 100644 --- a/Wms/Wms/Controllers/PdaCrController.cs +++ b/Wms/Wms/Controllers/PdaCrController.cs @@ -414,6 +414,39 @@ return Ok(new { data = "", code = 1, msg = $"寮傚父锛歿e.Message}" }); } } + + /// <summary> + /// 绌烘墭鐩樺叆搴撳懠鍙皬杞� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + [HttpPost] + public IActionResult AgvTransport3(PdaAgvTransNullPalnoModel model) + { + try + { + //鑾峰彇褰撳墠鐧诲綍鐨勭敤鎴稩D + var claimsIdentity = this.User.Identity as ClaimsIdentity; + if (claimsIdentity == null) + { + return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); + } + var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; + if (string.IsNullOrWhiteSpace(userId)) + { + return Ok(new { code = 1, msg = "鏈幏鍙栧埌褰撳墠鎿嶄綔浜轰俊鎭�" }); + } + + var uId = int.Parse(userId); + _pdaCrSvc.AgvTransport3(model.PalletNo, model.LocatNo, model.Ruku, uId, _config.AgvHost + _config.GenAgvSchedulingTask, _config.WcsHost + _config.HttpInConfirm); + + return Ok(new { data = "", code = 0, msg = "鎴愬姛" }); + } + catch (Exception e) + { + return Ok(new { data = "", code = 1, msg = $"寮傚父锛歿e.Message}" }); + } + } #endregion #region 浜哄伐杞繍 -- Gitblit v1.8.0