From f9a9a948cd138ad0877c54319857c327c0c0c402 Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期五, 28 二月 2025 16:50:50 +0800 Subject: [PATCH] 修改问题 --- HTML/views/WareHouseSetting/StorageLegend.html | 2 Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs | 30 Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs | 41 Wms/Wms/Controllers/BllAsnController.cs | 2 Wms/WMS.BLL/SysServer/RolesServer.cs | 2 Wms/Wms/Controllers/PdaAsnController.cs | 334 +- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 3517 ++++++++++++++++++----------------- HTML/views/ASNSetting/LabelPrintSelect.html | 12 Wms/WMS.Entity/SysEntity/SysWareHouse.cs | 2 HTML/views/ASNSetting/ArrivalNoticeDetail.html | 47 Wms/WMS.BLL/SysServer/UserInforServer.cs | 2 Pda/View/AsnSetting/productEnterQuantity.html | 1022 ++++----- Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs | 11 HTML/views/ASNSetting/ArrivalNotice.html | 32 HTML/views/ASNSetting/LabelPrint.html | 16 Wms/Model/InterFaceModel/HttpModel.cs | 2 Wms/WMS.Entity/BllAsnEntity/BllArrivalNotice.cs | 4 Wms/WMS.BLL/Logic/AllotLocation.cs | 209 ++ Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs | 676 +++-- 19 files changed, 3,127 insertions(+), 2,836 deletions(-) diff --git a/HTML/views/ASNSetting/ArrivalNotice.html b/HTML/views/ASNSetting/ArrivalNotice.html index 67fc0aa..19b0bf3 100644 --- a/HTML/views/ASNSetting/ArrivalNotice.html +++ b/HTML/views/ASNSetting/ArrivalNotice.html @@ -95,12 +95,12 @@ <div class="layui-input-inline"> <select name="Type" id="Type" lay-filter="Type" lay-search> <option value=""></option> - <!--JC26--> + <!--JC34--> <option value="0">鎴愬搧鍏ュ簱</option> - <option value="1">閲囪喘鍏ュ簱</option> - <option value="2">涓棿鍝佸叆搴�</option> + <option value="1">閲囪喘鍏ュ簱</option> <option value="3">閫�璐у叆搴�</option> <option value="4">浣欐枡閫�鍥炲叆搴�</option> + <option value="8">鐢熶骇閫�鏂欏叆搴�</option> </select> </div> </div> @@ -234,6 +234,7 @@ case "2" : html = `涓棿鍝佸叆搴揱; break; case "3" : html = `閫�璐у叆搴揱; break; case "4" : html = `浣欐枡閫�鍥炲叆搴揱; break; + case "8" : html = `鐢熶骇閫�鏂欏叆搴揱; break; default : break; } @@ -291,10 +292,7 @@ <i class="layui-icon"></i>娣诲姞 </button> </script> - <!-- if((d.AsnType =="1" || d.AsnType == "4" || d.AsnType == "5" || d.AsnType == "6") && d.IsPasteCode == "1" && (d.Status == "0" || d.Status == "1")){ - html += `<a class="layui-btn layui-btn-normal layui-btn-xs addLabelClass" lay-event="Addlabel"> - <i class="layui-icon layui-icon-edit"></i>鐢熸垚鏍囩</a>`; - } --> + <script type="text/html" id="toolbarDemoList"> {{# function GetBtn2(d){ console.log(d); @@ -302,8 +300,12 @@ if(d.Status == "0"){ html = `<a class="layui-btn layui-btn-danger layui-btn-xs delClass" lay-event="del"> <i class="layui-icon layui-icon-delete"></i>鍒犻櫎</a>`; + } - + if((d.AsnType =="1" || d.AsnType == "4" || d.AsnType == "8") && d.IsPasteCode == "1" && (d.Status == "0" || d.Status == "1")){ + html += `<a class="layui-btn layui-btn-normal layui-btn-xs addLabelClass" lay-event="Addlabel"> + <i class="layui-icon layui-icon-edit"></i>鐢熸垚鏍囩</a>`; + } return html; } @@ -543,7 +545,7 @@ { field: 'CreateTime', title: '鍒涘缓鏃堕棿', align: 'center', width: 160, templet: '#templetCreateTime2' }, { field: 'UpdateUserName', title: '淇敼浜�', align: 'center', width: 150, }, { field: 'UpdateTime', title: '淇敼鏃堕棿', align: 'center', width: 150, templet: '#templetUpdateTime3' }, - { field: 'caozuo', title: '鎿嶄綔', fixed: 'right', width: 150, align: 'left', toolbar: '#toolbarDemoList', "disabled": true } + { field: 'caozuo', title: '鎿嶄綔', fixed: 'right', width: 170, align: 'left', toolbar: '#toolbarDemoList', "disabled": true } ]]; var DetailColsSysArr = encodeURIComponent(encodeURIComponent(JSON.stringify(DetailColsArr)))//灏嗚〃澶存暟鎹繘琛寀rl缂栫爜 //#endregion @@ -602,7 +604,7 @@ $(".clossClass").hide(); $(".editDemoClass").hide();//澶囨敞 $(".checkClass").hide(); //澶嶆牳 - //$(".addLabelClass").hide(); //鐢熸垚鏍囩 + $(".addLabelClass").hide(); //鐢熸垚鏍囩 }); sendData(IP + "/Basis/GetRoleRightList", {}, 'get', function (res) { @@ -643,11 +645,11 @@ $(".checkClass").show(); }); } - // if (res.data[k].MenuName == "鐢熸垚鏍囩") { - // $(function () { - // $(".addLabelClass").show(); - // }); - // } + if (res.data[k].MenuName == "鐢熸垚鏍囩") { + $(function () { + $(".addLabelClass").show(); + }); + } } } else { //涓嶆垚鍔� layer.msg('鑾峰彇鏉冮檺淇℃伅澶辫触', { diff --git a/HTML/views/ASNSetting/ArrivalNoticeDetail.html b/HTML/views/ASNSetting/ArrivalNoticeDetail.html index d0e3685..c978bfa 100644 --- a/HTML/views/ASNSetting/ArrivalNoticeDetail.html +++ b/HTML/views/ASNSetting/ArrivalNoticeDetail.html @@ -69,9 +69,9 @@ <select name="Type" id="Type" lay-filter="Type" lay-search> <option value="0">鎴愬搧鍏ュ簱</option> <option value="1">閲囪喘鍏ュ簱</option> - <option value="2">涓棿鍝佸叆搴�</option> <option value="3">閫�璐у叆搴�</option> <option value="4">浣欐枡閫�鍥炲叆搴�</option> + <option value="8">鐢熶骇閫�鏂欏叆搴�</option> </select> </div> @@ -122,28 +122,7 @@ {{ GetBtn(d) }} </script> - <script type="text/html" id="templetLotNo"> - {{# function GetBtn1(d){ - var html = ''; - var TypeValue = $("#Type").val(); - if(TypeValue=='1' || TypeValue=='5' || TypeValue=='6' || TypeValue=='7'){ - if(d.LotNo==null || d.LotNo==undefined || d.LotNo==''){ - html+= '<input type="text" class="input-dis" value="" disabled>'; - }else{ - html+= '<input type="text" class="input-dis" value="'+d.LotNo+'" disabled>'; - } - return html; - }else{ - if(d.LotNo!=null && d.LotNo!=undefined && d.LotNo!=''){ - return d.LotNo; - }else{ - return ''; - } - } - } - }} - {{ GetBtn1(d) }} - </script> + <!-- #endregion --> </div> @@ -202,8 +181,8 @@ { field: 'Id', title: '鍏ュ簱鍗曟槑缁咺D', width: 120, align: 'center', fixed: 'left', hide: true, "disabled": true }, { field: 'SkuNo', title: '鐗╂枡缂栫爜', minWidth: 100, align: 'center', fixed: 'left', "disabled": true }, { field: 'SkuName', title: '鐗╂枡鍚嶇О', minWidth: 180, align: 'center', fixed: 'left', "disabled": true }, - { field: 'LotNo', title: '鎵规鍙�', align: 'center', edit: 'text', minWidth: 130, fixed: 'left', templet: '#templetLotNo', "disabled": true }, - { field: 'SupplierLot', title: '渚涜揣鎵规', width: 130, edit: 'text', event: 'setSign', fixed: 'left', "disabled": true }, + { field: 'LotNo', title: '鎵规鍙�', align: 'center', edit: 'text',event: 'setlot', width: 130, fixed: 'left', "disabled": true }, + { field: 'SupplierLot', title: '渚涜揣鎵规', align: 'center', width: 130, edit: 'text', event: 'setSign', fixed: 'left', "disabled": true }, { field: 'Qty', title: '鏁伴噺', align: 'center', width: 80, edit: 'number', event: 'dataNumber', fixed: 'left', "disabled": true }, { field: 'UnitName', title: '璁¢噺鍗曚綅', align: 'center', width: 70 }, { field: 'Standard', title: '瑙勬牸', width: 160, align: 'center' }, @@ -240,6 +219,8 @@ } else { colsJson = TotalColsArr } + console.log(colsJson); + infoOptions = { elem: '#LAY-app-content-list', height: 'full-110', @@ -323,8 +304,8 @@ } else { // 娣诲姞鐨勬椂鍊欑Щ闄も�橀噰璐叆搴撯�欓」 - $('select[lay-filter="Type"]').find('option[value="1"]').remove(); - form.render('select'); // 鏇存柊layui鐨剆elect娓叉煋 + // $('select[lay-filter="Type"]').find('option[value="1"]').remove(); + // form.render('select'); // 鏇存柊layui鐨剆elect娓叉煋 } @@ -487,8 +468,8 @@ 閲囪喘鍏ュ簱銆佸叾瀹冨叆搴� 1銆�5 2锛氳揣涓� - 鎴愬搧鍏ュ簱銆佷腑闂村搧鍏ュ簱銆佽溅闂翠綑鏂欏叆搴撱�佷唬鍌ㄥ叆搴� - 0銆�2銆�4銆�6 + 鎴愬搧鍏ュ簱銆佷腑闂村搧鍏ュ簱銆佽溅闂翠綑鏂欏叆搴撱�佷唬鍌ㄥ叆搴� 鐢熶骇閫�鏂欏叆搴� + 0銆�2銆�4銆�6 8 */ sendData(IP + "/Basis/GetCustomerSelect", {}, 'get', function (res) { if (res.code == 0) { //鎴愬姛 @@ -514,6 +495,8 @@ case "7": //瀵勫瓨鍏ュ簱 TypeNum = 2; console.log(TypeNum) + case "8": //鐢熶骇閫�鏂欏叆搴� + TypeNum = 2; break; } @@ -559,10 +542,10 @@ for (var i in data) { var isHave = false; for (var j in arr) { - if (arr[j].SkuNo == data[i].SkuNo + if (arr[j].SkuNo == data[i].SkuNo) // 娉ㄩ噴 liudl 鑻ュ瓨鍦ㄥ悓涓�鐗╂枡涓嶅悓鎵规鐗╂枡 鏀惧紑姝ゆ敞閲婏紝鍚庣宸查獙璇佹槸鍚﹂噸澶� //&& arr[j].LotNo == data[i].LotNo - ) { + { isHave = true; break; } @@ -664,7 +647,7 @@ switch ($("#Type").val()) { //1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� - case "1": + case "2": case "5": case "6": diff --git a/HTML/views/ASNSetting/LabelPrint.html b/HTML/views/ASNSetting/LabelPrint.html index 700a9de..b1a4656 100644 --- a/HTML/views/ASNSetting/LabelPrint.html +++ b/HTML/views/ASNSetting/LabelPrint.html @@ -43,12 +43,12 @@ <table border="1" id="table" style="width: 90%; height:480px; margin: 0 auto; text-align: center;border-collapse: collapse;table-layout: fixed;"> - <tr> + <!-- <tr> <td colspan="2" id="Logo"> <img src="../../img/LiNuo.jpg" style="width: 90%; height: 30px;" /> </td> <td colspan="2" style="padding: 1px 0px;">SMP-ST002-R08-01</td> - </tr> + </tr> --> <tr> <td colspan="4" id="department">鐗╂枡鏍囩</td> </tr> @@ -56,21 +56,21 @@ <td>鍝佸悕</td> <td colspan="3" id="SkuName"></td> </tr> - <tr> + <!-- <tr> <td>瑙勬牸/鍨嬪彿</td> <td id="Standard"></td> <td>鍖呰瑙勬牸</td> <td id="PackageStandard"></td> - </tr> + </tr> --> <tr> <td>杩涘巶缂栧彿</td> <td id="LotNo" style="padding: 1px 0px;"></td> - <td>鐗╂枡浠g爜</td> - <td id="SkuNo"> </td> - </tr> - <tr> <td>鍘熷巶鎵瑰彿</td> <td id="SupplierLot"></td> + </tr> + <tr> + <td>鐗╂枡浠g爜</td> + <td id="SkuNo"></td> <td>鏁� 閲�</td> <td id="qty"></td> </tr> diff --git a/HTML/views/ASNSetting/LabelPrintSelect.html b/HTML/views/ASNSetting/LabelPrintSelect.html index b0bfd43..be21290 100644 --- a/HTML/views/ASNSetting/LabelPrintSelect.html +++ b/HTML/views/ASNSetting/LabelPrintSelect.html @@ -129,13 +129,13 @@ } var asnType = getQueryString('Type'); console.log(asnType); - console.log(asnType == 4); - if(asnType == 4){ + // console.log(asnType == 4); + // if(asnType == 4){ - $("#reset option[value='0']").attr("selected","selected"); //鎬у埆 - $("#reset").attr("disabled","disabled"); - form.render('select'); - } + // $("#reset option[value='0']").attr("selected","selected"); //鎬у埆 + // $("#reset").attr("disabled","disabled"); + // form.render('select'); + // } var param = { id: parseInt(id), diff --git a/HTML/views/WareHouseSetting/StorageLegend.html b/HTML/views/WareHouseSetting/StorageLegend.html index 25fad75..9ee1c7b 100644 --- a/HTML/views/WareHouseSetting/StorageLegend.html +++ b/HTML/views/WareHouseSetting/StorageLegend.html @@ -132,7 +132,7 @@ <div class="layui-input-inline"> <select name="Depth" id="Depth" lay-filter="SelectDepth"> <option value="01" selected>娣卞害1</option> - <option value="02">娣卞害2</option> + <!-- <option value="02">娣卞害2</option> --> </select> </div> </div> diff --git a/Pda/View/AsnSetting/productEnterQuantity.html b/Pda/View/AsnSetting/productEnterQuantity.html index f72aa08..b470796 100644 --- a/Pda/View/AsnSetting/productEnterQuantity.html +++ b/Pda/View/AsnSetting/productEnterQuantity.html @@ -358,7 +358,7 @@ <label class="layui-form-label" lang>瀵勫瓨澶囨敞锛�</label> <div class="layui-input-block"> <textarea placeholder="璇疯緭鍏ュ唴瀹�" id="Demo" name="Demo" class="layui-textarea" ></textarea> - + </div> </div> --> <!-- 缁存姢澶囨敞寮规 --> @@ -418,7 +418,7 @@ </td> </tr> </table> - + <table id="tableBoxPages1" class="tbl-box-pages" border="" cellspacing="" cellpadding=""> <tr> <td class="page-prev">涓婁竴椤�</td> @@ -477,38 +477,12 @@ }); }); - //娓呮鏂囨湰妗嗕腑鏁版嵁 - // function clear() { - // if (xianshiyemian == "0") - // { - // $("#BOXCODE").val(""); - // $("#BOXCODE2").val(""); - - // $("#ImportQuantity").val(""); - // $("#Standard").val(""); - // $("#ImportFactQuantity").val(""); - // $("#BoxQty").val(""); - // } - // else if (xianshiyemian == "1") - // { - // $("#BOXCODE").val(""); - // $("#BOXCODE2").val(""); - - // $("#ImportQuantity").val(""); - // $("#Standard").val(""); - // $("#ImportFactQuantity").val(""); - // $("#BoxQty").val(""); - // } - - // } - /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ initLanguage() setLanguage() - //褰撳墠鍒嗛〉 - var curPageIndex = 1; + //鏄惁杩炵画缁勬墭 isContinue = "0"; @@ -536,6 +510,50 @@ checkPalletStat() }) + // 鍒ゆ柇鎵樼洏鐮佹槸鍚﹀彲鐢� + function checkPalletStat() { + if (xianshiyemian == 0) { + var param = { + "PalletNo": $("#STOCKCODE").val() + } + sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { + if (res.code == 0) { + + $.cookie('stockCode', $("#STOCKCODE").val()); + //refreshTable() + $("#BOXCODE").focus(); + + } else { + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + } + else if (xianshiyemian == 1) { + var param = { + "PalletNo": $("#STOCKCODE1").val() + } + sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { + if (res.code == 0) { + + $.cookie('stockCode1', $("#STOCKCODE1").val()); + //refreshTable() + $("#SkuQty").focus(); + + } else { + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + } + + } + + //绠辩爜鍥炶溅浜嬩欢 $("#BOXCODE").keydown(function (e) { if (e.keyCode === 13) { @@ -547,20 +565,11 @@ return } - // if ($("#STOCKCODE").val() == "") { - // layer.msg('璇峰厛鎵弿鎵樼洏鐮�', { - // icon: 2, - // time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - // }); - // $("#BOXCODE").val(""); - // $("#STOCKCODE").focus(); - // return; - // } checkBoxInfo() } }); - /* 鍏ュ簱鍗曟嵁涓嬫媺妗� */ + //鐐瑰嚮鍏ュ簱鍗曟嵁涓嬫媺妗嗕簨浠� $("#selectDiv").click(function () { if (xianshiyemian == 0) { @@ -586,11 +595,7 @@ } }) - /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ - - - /* 缁戝畾鍏ュ簱鍗曚俊鎭� */ - + /* 鑾峰彇鍏ュ簱鍗曚俊鎭� */ function updateBillList(callback) { if (xianshiyemian == 0) { var input = $('select[id="bar"]').next().find('.layui-select-title input') @@ -600,14 +605,12 @@ form.render('select'); var param = { - Type: "0,3" + //Type: "0,3" }; - sendData(IP + "/PdaAsn/GetArrivalNotices", param, 'post', function (res) { + sendData(IP + "/PdaAsn/GetPasteAsnNoStrList", param, 'post', function (res) { if (res.code == 0) { //鎴愬姛 for (var i = 0; i < res.data.length; i++) { - $("#bar").append('<option value =' + res.data[i].ASNNo + '>' + res.data[i] - .ASNNo + - '</option>'); + $("#bar").append('<option value =' + res.data[i] + '>' + res.data[i] +'</option>'); } form.render('select'); @@ -635,14 +638,12 @@ form.render('select'); var param = { - Type: "1,2,4" + //Type: "1,2,4" }; - sendData(IP + "/PdaAsn/GetArrivalNotices", param, 'post', function (res) { + sendData(IP + "/PdaAsn/GetNoPasteAsnNoStrList", param, 'post', function (res) { if (res.code == 0) { //鎴愬姛 for (var i = 0; i < res.data.length; i++) { - $("#bar1").append('<option value =' + res.data[i].ASNNo + '>' + res.data[i] - .ASNNo + - '</option>'); + $("#bar1").append('<option value =' + res.data[i] + '>' + res.data[i] + '</option>'); } form.render('select'); @@ -665,8 +666,6 @@ } - /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ - //鐐瑰嚮鐗╂枡涓嬫媺妗嗕簨浠� $("#goodDiv").click(function () { if ($("#bar").val() == null || $("#bar").val() == "" || $("#bar").val() == undefined) { @@ -685,6 +684,7 @@ }, function () { }); } }) + //閫変腑鍏ュ簱鍗曚簨浠� form.on('select(getbar)', function (data) { updateGoodList() @@ -692,7 +692,7 @@ }); //閫変腑鍏ュ簱鍗曚簨浠�-鏁伴噺 form.on('select(getbar1)', function (data) { - updateDemoDiv(); + //updateDemoDiv(); updateGoodList() setOrderGoods(); }); @@ -705,212 +705,7 @@ form.on('select(goodSelect1)', function (data) { setOrderGoods(); }); - - //缁戝畾鍒版墭鐩樹簨浠� - form.on('submit(formBind)', function (data) { - if (xianshiyemian == 0) { - console.log($("#goodSelect").val()); - if ($("#bar").val() == "") { - layer.msg('璇烽�夋嫨鍏ュ簱鍗�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - if ($("#goodSelect").val() == "") { - layer.msg('璇烽�夋嫨鐗╂枡鍙婃槑缁�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - if ($("#STOCKCODE").val() == "") { - layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - if ($("#BOXCODE").val() == "") { - layer.msg('璇锋壂鎻忓绠辨潯鐮�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - var param = { - AsnNo: $("#bar").val(), - PalletNo: $("#STOCKCODE").val(), - AsnDetailId: parseInt($("#goodSelect").val()), - LotNo: $("#goodSelect").find("option:selected").text(), - BoxNo: $("#BOXCODE").val(), - IsContinue: isContinue, - TailBoxNo: $("#BOXCODE2").val(), - Origin: "PDA", - TableType: xianshiyemian, - } - console.log(param) - //缁勭洏 - sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { - if (res.code == 0) { //鎴愬姛 - layer.msg(res.msg, { - icon: 1, - time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { - setOrderGoods(); - refreshTable(); - $("#BOXCODE").val(""); - $("#BOXCODE2").val(""); - $("#QTY").val(""); - }); - } else { //涓嶆垚鍔� - layer.msg(res.msg, { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { - //鍥炶皟 - }); - } - }); - } - else if (xianshiyemian == 1) { - if ($("#bar1").val() == "") { - layer.msg('璇烽�夋嫨鍏ュ簱鍗�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - if ($("#goodSelect1").val() == "") { - layer.msg('璇烽�夋嫨鐗╂枡鍙婃槑缁�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - if ($("#STOCKCODE1").val() == "") { - layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - return; - } - var param = { - AsnNo: $("#bar1").val(), //鍑哄簱鍗曟嵁 - PalletNo: $("#STOCKCODE1").val(), //鎵樼洏鏉$爜 - AsnDetailId: parseInt($("#goodSelect1").val()), //鍏ュ簱鍗曟槑缁咺D - LotNo: $("#goodSelect1").find("option:selected").text(), //鐗╂枡鎵规 - SkuQty: parseInt($("#SkuQty").val()), //鐗╂枡鏁伴噺 - Demo: $("#NoticeDemo").val(), //鐗╂枡鏁伴噺 - Origin: "PDA", - TableType: xianshiyemian, - } - - console.log(param) - //缁勭洏 - sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { - if (res.code == 0) { //鎴愬姛 - layer.msg(res.msg, { - icon: 1, - time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { - setOrderGoods(); - refreshTable(); - $("#STOCKCODE").val(""); - $("#SkuQty").val(""); - }); - } else { //涓嶆垚鍔� - layer.msg(res.msg, { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { - //鍥炶皟 - }); - } - }); - } - - return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� - }); - - - // 鏍规嵁鍏ュ簱鍗曞彿 鑾峰彇澶囨敞鏄惁鏄剧ず鍙婂娉ㄤ俊鎭� - function updateDemoDiv() { - var param = { - AsnNo: $("#bar1").val(), - }; - synData(IP + "/PdaAsn/GetArrivalNotice", param, 'post', function (res) { - console.log(res) - if (res.code == 0 && res.data != null) { //鎴愬姛 - - //鍒ゆ柇榛樿閫変腑鏄惁涓哄瘎瀛樼墿鏂� - if (res.data[0].Type == "7") { - $("textarea[name='NoticeDemo']").val(res.data[0].Demo); //澶囨敞 - $('#demodiv').show(); - $('#demodiv1').show(); - } - else { - $('#demodiv').hide(); - $('#demodiv1').hide(); - } - } - else { - $('#demodiv').hide(); - $('#demodiv1').hide(); - } - }); - } - - // 鏍规嵁鍏ュ簱鏄庣粏ID 鑾峰彇璇︾粏淇℃伅 - function setOrderGoods() { - if (xianshiyemian == 0) { - $("#ImportQuantity").val(""); - $("#Standard").val(""); - $("#ImportFactQuantity").val(""); - $("#BoxQty").val(""); - //$("#FullQty").val("123"); - // $("#BOXCODE").val(""); - - var param = { - Id: parseInt($("#goodSelect").val()) - }; - - synData(IP + "/PdaAsn/GetArrivalNoticeDetail", param, 'post', function (res) { - console.log(JSON.stringify(res)) - if (res.code == 0 && res.data != null) { //鎴愬姛 - $("#ImportQuantity").val(res.data.Qty); - $("#Standard").val(res.data.Standard); - $("#ImportFactQuantity").val(res.data.FactQty + ""); - } - }); - } - else if (xianshiyemian == 1) { - // 鏁伴噺 - $("#ImportQuantity1").val(""); - $("#Standard1").val(""); - $("#ImportFactQuantity1").val(""); - $("#FullQty").val(""); - - var param = { - Id: parseInt($("#goodSelect1").val()) - }; - - synData(IP + "/PdaAsn/GetArrivalNoticeDetail", param, 'post', function (res) { - console.log(JSON.stringify(res)) - if (res.code == 0 && res.data != null) { //鎴愬姛 - $("#ImportQuantity1").val(res.data.Qty); - $("#Standard1").val(res.data.Standard); - $("#ImportFactQuantity1").val(res.data.FactQty + ""); - $("#FullQty").val(res.data.UDF1); - } - else { } - }); - } - - } - var asnDetails = ""; - /* 缁戝畾鍏ュ簱鍗曠墿鏂欏強鎵规 */ function updateGoodList(skuNo) { if (xianshiyemian == 0) { @@ -1048,224 +843,390 @@ } + // 鏍规嵁鍏ュ簱鏄庣粏ID 鑾峰彇璇︾粏淇℃伅 + function setOrderGoods() { + if (xianshiyemian == 0) { + $("#ImportQuantity").val(""); + $("#Standard").val(""); + $("#ImportFactQuantity").val(""); + $("#BoxQty").val(""); + //$("#FullQty").val("123"); + // $("#BOXCODE").val(""); + + var param = { + Id: parseInt($("#goodSelect").val()) + }; + + synData(IP + "/PdaAsn/GetArrivalNoticeDetail", param, 'post', function (res) { + console.log(JSON.stringify(res)) + if (res.code == 0 && res.data != null) { //鎴愬姛 + $("#ImportQuantity").val(res.data.Qty); + $("#Standard").val(res.data.Standard); + $("#ImportFactQuantity").val(res.data.FactQty + ""); + } + }); + } + else if (xianshiyemian == 1) { + // 鏁伴噺 + $("#ImportQuantity1").val(""); + $("#Standard1").val(""); + $("#ImportFactQuantity1").val(""); + $("#FullQty").val(""); + + var param = { + Id: parseInt($("#goodSelect1").val()) + }; + + synData(IP + "/PdaAsn/GetArrivalNoticeDetail", param, 'post', function (res) { + console.log(JSON.stringify(res)) + if (res.code == 0 && res.data != null) { //鎴愬姛 + $("#ImportQuantity1").val(res.data.Qty); + $("#Standard1").val(res.data.Standard); + $("#ImportFactQuantity1").val(res.data.FactQty + ""); + $("#FullQty").val(res.data.UDF1); + } + else { } + }); + } + + } + + + //缁戝畾鍒版墭鐩樹簨浠� + form.on('submit(formBind)', function (data) { + if (xianshiyemian == 0) { + console.log($("#goodSelect").val()); + if ($("#bar").val() == "") { + layer.msg('璇烽�夋嫨鍏ュ簱鍗�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#goodSelect").val() == "") { + layer.msg('璇烽�夋嫨鐗╂枡鍙婃槑缁�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#STOCKCODE").val() == "") { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#BOXCODE").val() == "") { + layer.msg('璇锋壂鎻忓绠辨潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + AsnNo: $("#bar").val(), + PalletNo: $("#STOCKCODE").val(), + AsnDetailId: parseInt($("#goodSelect").val()), + LotNo: $("#goodSelect").find("option:selected").text(), + BoxNo: $("#BOXCODE").val(), + IsContinue: isContinue, + TailBoxNo: $("#BOXCODE2").val(), + Origin: "PDA", + TableType: xianshiyemian, + } + console.log(param) + //缁勭洏 + sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + setOrderGoods(); + refreshTable(); + $("#BOXCODE").val(""); + $("#BOXCODE2").val(""); + $("#QTY").val(""); + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + }); + } + }); + } + else if (xianshiyemian == 1) { + if ($("#bar1").val() == "") { + layer.msg('璇烽�夋嫨鍏ュ簱鍗�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#goodSelect1").val() == "") { + layer.msg('璇烽�夋嫨鐗╂枡鍙婃槑缁�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + if ($("#STOCKCODE1").val() == "") { + layer.msg('璇锋壂鎻忔墭鐩樻潯鐮�', { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }); + return; + } + var param = { + AsnNo: $("#bar1").val(), //鍑哄簱鍗曟嵁 + PalletNo: $("#STOCKCODE1").val(), //鎵樼洏鏉$爜 + AsnDetailId: parseInt($("#goodSelect1").val()), //鍏ュ簱鍗曟槑缁咺D + LotNo: $("#goodSelect1").find("option:selected").text(), //鐗╂枡鎵规 + SkuQty: parseInt($("#SkuQty").val()), //鐗╂枡鏁伴噺 + Demo: $("#NoticeDemo").val(), //鐗╂枡鏁伴噺 + Origin: "PDA", + TableType: xianshiyemian, + } + + console.log(param) + //缁勭洏 + sendData(IP + "/PdaAsn/BindPallet", param, 'post', function (res) { + if (res.code == 0) { //鎴愬姛 + layer.msg(res.msg, { + icon: 1, + time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + setOrderGoods(); + refreshTable(); + $("#STOCKCODE").val(""); + $("#SkuQty").val(""); + }); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { + //鍥炶皟 + }); + } + }); + } + + return false; //闃绘琛ㄥ崟璺宠浆銆傚鏋滈渶瑕佽〃鍗曡烦杞紝鍘绘帀杩欐鍗冲彲銆� + }); + + + // 鏍规嵁鍏ュ簱鍗曞彿 鑾峰彇澶囨敞鏄惁鏄剧ず鍙婂娉ㄤ俊鎭� + function updateDemoDiv() { + var param = { + AsnNo: $("#bar1").val(), + }; + synData(IP + "/PdaAsn/GetArrivalNotice", param, 'post', function (res) { + console.log(res) + if (res.code == 0 && res.data != null) { //鎴愬姛 + + //鍒ゆ柇榛樿閫変腑鏄惁涓哄瘎瀛樼墿鏂� + if (res.data[0].Type == "7") { + $("textarea[name='NoticeDemo']").val(res.data[0].Demo); //澶囨敞 + $('#demodiv').show(); + $('#demodiv1').show(); + } + else { + $('#demodiv').hide(); + $('#demodiv1').hide(); + } + } + else { + $('#demodiv').hide(); + $('#demodiv1').hide(); + } + }); + } + + + + + // 娓叉煋绠辩爜淇℃伅 - function refreshTable() { - if (xianshiyemian == 0) { - //鍏堟竻绌轰竴涓嬬瀛愬垪琛� - let trs = $("#tableBoxList tr") - let len = trs.length + // function refreshTable() { + // if (xianshiyemian == 0) { + // //鍏堟竻绌轰竴涓嬬瀛愬垪琛� + // let trs = $("#tableBoxList tr") + // let len = trs.length - for (i = len - 1; i >= 2; i--) { - trs[i].remove(); - } + // for (i = len - 1; i >= 2; i--) { + // trs[i].remove(); + // } - //璁剧疆鎵樼洏鍙� - $("#palletCode").val($.cookie('stockCode')) + // //璁剧疆鎵樼洏鍙� + // $("#palletCode").val($.cookie('stockCode')) - var param = { - PalletNo: $.cookie('stockCode') - }; - // 鏍规嵁鎵樼洏鍙疯幏鍙栫鐮佷俊鎭� - sendData(IP + "/PdaAsn/GetBoxInfos", param, 'post', function (res) { - if (res.code == 0) { //鎴愬姛 - var list = res - var arrTrs = new Array() - let idx = 0 - for (var i in res.data) { - var tr = $("#boxCell").eq(0).clone(); - tr.appendTo("#tableBoxList"); - tr.attr('id', res.data[i].Id) - tr.attr('boxno', res.data[i].BoxNo) - tr.attr('BindNo', res.data[i].BindNo) - idx++; - tr.attr('index', idx) - tr.find("td[name='code']").html(res.data[i].BoxNo); - tr.find("td[name='name']").html(res.data[i].SkuName); - tr.find("td[name='lotNo']").html(res.data[i].LotNo); - tr.find("td[name='num']").html(res.data[i].Qty); - tr.find("td[name='del']").click(function () { - var elem = $(this).parent() - var boxno = elem.attr('boxno') - var BindNo = elem.attr('BindNo') - var Id = elem.attr('id') - layer.alert("纭畾瑕佷粠鎵樼洏涓婂垹闄よ繖涓鐗╂枡鍚楋紵<br>" + boxno, { - icon: 2, - time: 0, //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - btn: ['鍒犻櫎', '鍙栨秷'], - yes: function () { + // var param = { + // PalletNo: $.cookie('stockCode') + // }; + // // 鏍规嵁鎵樼洏鍙疯幏鍙栫鐮佷俊鎭� + // sendData(IP + "/PdaAsn/GetBoxInfos", param, 'post', function (res) { + // if (res.code == 0) { //鎴愬姛 + // var list = res + // var arrTrs = new Array() + // let idx = 0 + // for (var i in res.data) { + // var tr = $("#boxCell").eq(0).clone(); + // tr.appendTo("#tableBoxList"); + // tr.attr('id', res.data[i].Id) + // tr.attr('boxno', res.data[i].BoxNo) + // tr.attr('BindNo', res.data[i].BindNo) + // idx++; + // tr.attr('index', idx) + // tr.find("td[name='code']").html(res.data[i].BoxNo); + // tr.find("td[name='name']").html(res.data[i].SkuName); + // tr.find("td[name='lotNo']").html(res.data[i].LotNo); + // tr.find("td[name='num']").html(res.data[i].Qty); + // tr.find("td[name='del']").click(function () { + // var elem = $(this).parent() + // var boxno = elem.attr('boxno') + // var BindNo = elem.attr('BindNo') + // var Id = elem.attr('id') + // layer.alert("纭畾瑕佷粠鎵樼洏涓婂垹闄よ繖涓鐗╂枡鍚楋紵<br>" + boxno, { + // icon: 2, + // time: 0, //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // btn: ['鍒犻櫎', '鍙栨秷'], + // yes: function () { - var param = { - boxNo: boxno, - }; - sendData(IP + "/BllAsn/DelBindBoxInfo", param, 'get', function (res) { - if (res.code == 0) { //鎴愬姛 - layer.msg(res.msg, { - icon: 1, - time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - elem.remove() - setOrderGoods(); - refreshTable(); - } else { //涓嶆垚鍔� - layer.msg(res.msg, { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { }); - } - }); - } - }) - }) - tr.show(); - arrTrs[i] = tr - } - //璁剧疆鍒嗛〉 - setPages(1, res.data.length) + // var param = { + // boxNo: boxno, + // }; + // sendData(IP + "/BllAsn/DelBindBoxInfo", param, 'get', function (res) { + // if (res.code == 0) { //鎴愬姛 + // layer.msg(res.msg, { + // icon: 1, + // time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // }); + // elem.remove() + // setOrderGoods(); + // refreshTable(); + // } else { //涓嶆垚鍔� + // layer.msg(res.msg, { + // icon: 2, + // time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // }, function () { }); + // } + // }); + // } + // }) + // }) + // tr.show(); + // arrTrs[i] = tr + // } + // //璁剧疆鍒嗛〉 + // setPages(1, res.data.length) - } else { //涓嶆垚鍔� - layer.msg("鏃犳暟鎹�", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { }); - $("#boxNum").val(0) - setPages(1, 0) - } - }); - } - else if (xianshiyemian == 1) { - //鍏堟竻绌轰竴涓嬬瀛愬垪琛� - let trs = $("#tableBoxList1 tr") - let len = trs.length + // } else { //涓嶆垚鍔� + // layer.msg("鏃犳暟鎹�", { + // icon: 2, + // time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // }, function () { }); + // $("#boxNum").val(0) + // setPages(1, 0) + // } + // }); + // } + // else if (xianshiyemian == 1) { + // //鍏堟竻绌轰竴涓嬬瀛愬垪琛� + // let trs = $("#tableBoxList1 tr") + // let len = trs.length - for (i = len - 1; i >= 2; i--) { - trs[i].remove(); - } + // for (i = len - 1; i >= 2; i--) { + // trs[i].remove(); + // } - //璁剧疆鎵樼洏鍙� - $("#palletCode").val($.cookie('stockCode1')) + // //璁剧疆鎵樼洏鍙� + // $("#palletCode").val($.cookie('stockCode1')) - var param = { - PalletNo: $.cookie('stockCode1') - }; - // 鏍规嵁鎵樼洏鍙疯幏鍙栫鐮佷俊鎭� - sendData(IP + "/PdaAsn/GetPalletBindInfo", param, 'post', function (res) { - if (res.code == 0) { //鎴愬姛 - var list = res - var arrTrs = new Array() - let idx = 0 - for (var i in res.data) { - var tr = $("#boxCell").eq(0).clone(); - tr.appendTo("#tableBoxList1"); - tr.attr('id', res.data[i].Id) - tr.attr('boxno', res.data[i].BoxNo) - tr.attr('BindNo', res.data[i].BindNo) - idx++; - tr.attr('index', idx) - tr.find("td[name='code']").html(res.data[i].SkuNo); - tr.find("td[name='name']").html(res.data[i].SkuName); - tr.find("td[name='lotNo']").html(res.data[i].LotNo); - tr.find("td[name='num']").html(res.data[i].Qty); - tr.find("td[name='del']").click(function () { - var elem = $(this).parent() - // var boxno = elem.attr('boxno') - var BindNo = elem.attr('BindNo') - console.log(res) - var Id = elem.attr('id') - layer.alert("纭畾瑕佷粠鎵樼洏涓婂垹闄よ繖鎵樼墿鏂欏悧锛�<br>" + res.data[0].PalletNo, { - icon: 2, - time: 0, //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - btn: ['鍒犻櫎', '鍙栨秷'], - yes: function () { + // var param = { + // PalletNo: $.cookie('stockCode1') + // }; + // // 鏍规嵁鎵樼洏鍙疯幏鍙栫鐮佷俊鎭� + // sendData(IP + "/PdaAsn/GetPalletBindInfo", param, 'post', function (res) { + // if (res.code == 0) { //鎴愬姛 + // var list = res + // var arrTrs = new Array() + // let idx = 0 + // for (var i in res.data) { + // var tr = $("#boxCell").eq(0).clone(); + // tr.appendTo("#tableBoxList1"); + // tr.attr('id', res.data[i].Id) + // tr.attr('boxno', res.data[i].BoxNo) + // tr.attr('BindNo', res.data[i].BindNo) + // idx++; + // tr.attr('index', idx) + // tr.find("td[name='code']").html(res.data[i].SkuNo); + // tr.find("td[name='name']").html(res.data[i].SkuName); + // tr.find("td[name='lotNo']").html(res.data[i].LotNo); + // tr.find("td[name='num']").html(res.data[i].Qty); + // tr.find("td[name='del']").click(function () { + // var elem = $(this).parent() + // // var boxno = elem.attr('boxno') + // var BindNo = elem.attr('BindNo') + // console.log(res) + // var Id = elem.attr('id') + // layer.alert("纭畾瑕佷粠鎵樼洏涓婂垹闄よ繖鎵樼墿鏂欏悧锛�<br>" + res.data[0].PalletNo, { + // icon: 2, + // time: 0, //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // btn: ['鍒犻櫎', '鍙栨秷'], + // yes: function () { - var param = { - Id: parseInt(Id), - PalletNo: res.data[0].PalletNo, - }; - console.log(Id) - console.log(param) - sendData(IP + "/PdaAsn/DelPalletBind", param, 'post', function (res) { - if (res.code == 0) { //鎴愬姛 - layer.msg(res.msg, { - icon: 1, - time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }); - elem.remove() - setOrderGoods(); - refreshTable(); - } else { //涓嶆垚鍔� - layer.msg(res.msg, { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { }); - } - }); - } - }) - }) - tr.show(); - arrTrs[i] = tr - } + // var param = { + // Id: parseInt(Id), + // PalletNo: res.data[0].PalletNo, + // }; + // console.log(Id) + // console.log(param) + // sendData(IP + "/PdaAsn/DelPalletBind", param, 'post', function (res) { + // if (res.code == 0) { //鎴愬姛 + // layer.msg(res.msg, { + // icon: 1, + // time: 1000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // }); + // elem.remove() + // setOrderGoods(); + // refreshTable(); + // } else { //涓嶆垚鍔� + // layer.msg(res.msg, { + // icon: 2, + // time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // }, function () { }); + // } + // }); + // } + // }) + // }) + // tr.show(); + // arrTrs[i] = tr + // } - //璁剧疆鍒嗛〉 - setPages(1, res.data.length) + // //璁剧疆鍒嗛〉 + // setPages(1, res.data.length) - } else { //涓嶆垚鍔� - layer.msg("鏃犳暟鎹�", { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { }); - $("#boxNum").val(0) - setPages(1, 0) - } - }); - } + // } else { //涓嶆垚鍔� + // layer.msg("鏃犳暟鎹�", { + // icon: 2, + // time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + // }, function () { }); + // $("#boxNum").val(0) + // setPages(1, 0) + // } + // }); + // } - } + // } - // 鍒ゆ柇鎵樼洏鐮佹槸鍚﹀彲鐢� - function checkPalletStat() { - if (xianshiyemian == 0) { - var param = { - "PalletNo": $("#STOCKCODE").val() - } - sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { - if (res.code == 0) { - - $.cookie('stockCode', $("#STOCKCODE").val()); - refreshTable() - $("#BOXCODE").focus(); - - } else { - layer.msg(res.msg, { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { }); - } - }); - } - else if (xianshiyemian == 1) { - var param = { - "PalletNo": $("#STOCKCODE1").val() - } - sendData(IP + "/PdaAsn/IsEnablePalletNo", param, 'post', function (res) { - if (res.code == 0) { - - $.cookie('stockCode1', $("#STOCKCODE1").val()); - refreshTable() - $("#SkuQty").focus(); - - } else { - layer.msg(res.msg, { - icon: 2, - time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 - }, function () { }); - } - }); - } - - } - - + + //绠卞洖杞︿簨浠� function checkBoxInfo() { var param = { "BoxNo": $("#BOXCODE").val(), @@ -1285,7 +1246,7 @@ }); return; } - + if (res.data[0].ASNNo != '' && res.data[0].ASNNo != null) { $("#bar").empty() $("#bar").append('<option value =>' + '</option>'); @@ -1388,133 +1349,6 @@ }) } - - /* 鍒嗛〉 */ - //璁剧疆鍒嗛〉 - function setPages(pageIndex, boxNum) { - if (boxNum <= 0) { - //鍒楄〃涓虹┖锛岄殣钘忓垎椤甸〉鐮� - $("#tableBoxPages").hide() - return - } - - let pageNum = Math.floor(boxNum / 10); - if (boxNum % 10 > 0) { - pageNum += 1; - } - //console.log("pageNum is " + pageNum) - - $("#tableBoxPages").find("tr").remove() - let table = $("#tableBoxPages") - $("<tr></tr>").appendTo("#tableBoxPages") - - // let newTr = table.append("<tr></tr>") - // newTr.append("<td class='page-prev'>涓婁竴椤�</td>") - $("<td id='prevPage' class='page-prev'>涓婁竴椤�</td>").appendTo("#tableBoxPages tr") - $("#tableBoxPages tr").eq(0).find("td[id^='prevPage']").click(function () { - onClickPrevPage() - }) - for (i = 1; i < pageNum + 1; i++) { - // newTr.append("<td class='page-num'>"+ i +"</td>") - $("<td class='page-num'>" + i + "</td>").appendTo("#tableBoxPages tr") - } - // newTr.append("<td class='page-next'>涓嬩竴椤�</td>") - $("<td id='nextPage' class='page-next'>涓嬩竴椤�</td>").appendTo("#tableBoxPages tr") - $("#tableBoxPages tr").eq(0).find("td[id^='nextPage']").click(function () { - onClickNextPage() - }) - // pages.show() - $("#tableBoxPages").show() - - setCurPage(1) - } - - //璁剧疆褰撳墠鍒嗛〉 - function setCurPage(pageIndex) { - let totalTrNum = $("#tableBoxList tr").length - if (totalTrNum <= 2) { - //console.log("tableBoxList 涓虹┖ totalTrNum: " + totalTrNum) - //curPageIndex = 1 - return - } - - let pageNum = getBoxPageNum() - if (pageIndex > pageNum) { - //console.log("璁剧疆鐨勯〉鐮佽秴鍑洪〉鏁�, pageIndex : " + pageIndex) - //curPageIndex = 1 - return - } - - let startIndex = (pageIndex - 1) * 10 + 1 - let n = totalTrNum - startIndex - let endIndex = 0 - if (n > 9) { - endIndex = startIndex + 9 - } else { - endIndex = startIndex + n - } - //console.log("startIndex is "+startIndex) - //console.log("endIndex is "+endIndex) - //startIndex =2 - //endIndex = 2 - let trs = $("#tableBoxList tr") - //console.log("琛屾暟 "+trs.length) - let d = 0 - for (let i = 2; i < trs.length; i++) { - //console.log("琛岀储寮� " + trs.eq(i).attr('index')) - let t = trs.eq(i) - d = t.attr('index') - if (d >= startIndex && d <= endIndex) { - //console.log("闇�瑕佹樉绀�") - //鏄剧ず琛� - t.show() - } else { - //闅愯棌琛� - t.hide() - } - } - - curPageIndex = pageIndex - - let ptr = $("#tableBoxPages tr") - for (let i = 1; i < pageNum + 1; i++) { - ptr.eq(0).find("td").eq(i).removeClass("page-num-select") - if (i == curPageIndex) { - ptr.eq(0).find("td").eq(i).addClass("page-num-select") - } - } - //console.log("totalTrNum is " + totalTrNum) - } - - function onClickPrevPage() { - //console.log("涓婁竴椤垫寜閽鐐瑰嚮") - if (curPageIndex == 1) { - return - } - setCurPage(curPageIndex - 1) - } - - function onClickNextPage() { - //console.log("涓嬩竴椤垫寜閽鐐瑰嚮") - let n = getBoxPageNum() - if (curPageIndex == n - 1) { - return - } - setCurPage(curPageIndex + 1) - } - function getBoxPageNum() { - let num = $("#tableBoxList tr").length - if (num <= 2) { - return 0 - } - - let pageNum = Math.floor(num / 10); - if (num % 10 > 0) { - pageNum += 1; - } - - return pageNum - } /*鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺��*/ diff --git a/Wms/Model/InterFaceModel/HttpModel.cs b/Wms/Model/InterFaceModel/HttpModel.cs index b346c96..35d91c0 100644 --- a/Wms/Model/InterFaceModel/HttpModel.cs +++ b/Wms/Model/InterFaceModel/HttpModel.cs @@ -73,7 +73,7 @@ public string TaskNo { get; set; } /// <summary> - /// 浠诲姟绫诲瀷 + /// 浠诲姟绫诲瀷0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2绉诲簱浠诲姟 /// </summary> public string TaskType { get; set; } diff --git a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs index a5376b2..16cb84d 100644 --- a/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/ArrivalNoticeServer.cs @@ -119,6 +119,7 @@ Status = tb1.Status, AsnType = tb2.Type, AsnStatus = tb2.Status, + IsPasteCode = tb5.IsPasteCode, Lot1 = tb1.Lot1, Lot2 = tb1.Lot2, UDF1 = tb1.UDF1, @@ -149,7 +150,10 @@ var labelQty = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == id).Sum(m => m.Qty + (m.SamplingQty == null? 0: m.SamplingQty)); var qty = detail.Qty - labelQty; - + if (qty<0) + { + qty = 0; + } return qty.ToString(); } catch (Exception e) @@ -249,11 +253,11 @@ string strMessage = ""; /** model.type 锛堝崟鎹被鍨�) - * 鎴愬搧鍏ュ簱 0 + * 鎴愬搧鍏ュ簱 0 * 閲囪喘鍏ュ簱 1 - * 涓棿鍝佷笉璐� 2 - * 閫�璐у叆搴� 3 + * 閫�璐у叆搴� 3 * 浣欐枡閫�鍥炲叆搴� 4 + * 鐢熶骇閫�鏂欏叆搴� 8 */ var TypeLot = "1, 5, 6, 7"; //鎵规鍙负绌哄崟鎹被鍨� @@ -311,7 +315,7 @@ continue; } - if (model.Type == "1" || model.Type == "5" || model.Type == "6" || model.Type == "7") + if ( model.Type == "5" || model.Type == "6" || model.Type == "7") { if (!string.IsNullOrWhiteSpace(detailModel.LotNo)) { @@ -343,7 +347,7 @@ detailModel.LotNo = maxLotNo; } } - if (model.Type == "0" || model.Type == "2" || model.Type == "3" || model.Type == "4") + if (model.Type == "0" || model.Type == "1" || model.Type == "2" || model.Type == "3" || model.Type == "4" && model.Type == "8") { if (string.IsNullOrWhiteSpace(detailModel.LotNo)) { @@ -446,12 +450,12 @@ lock (AsnLock) { //鍒ゆ柇鏄惁涓洪噰璐叆搴撳崟鎹垨杞﹂棿浣欐枡閫�鍥炲叆搴� - // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� + // 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� 8 鐢熶骇閫�鏂欏叆搴� //0銆�2銆�3銆�4 鎵规涓嶈兘涓虹┖ //1銆佹坊鍔犲繀椤讳负绌恒�佺紪杈戜笉鍙负绌猴紝涓嶈兘鏇存敼 //5銆�6 鎵规鍙负绌哄彲涓嶄负绌� //7 蹇呴』涓虹┖ - var TypeLot = "1, 5, 6, 7"; //鎵规涓虹敓鎴愭壒娆″崟鎹被鍨� + var TypeLot = " 5, 6, 7"; //鎵规涓虹敓鎴愭壒娆″崟鎹被鍨� var asnInfo = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == model.ASNNo && m.IsDel == "0"); if (asnInfo == null) @@ -577,11 +581,11 @@ if (detailModel.Id == 0 || detailModel.Id == null) { - if (model.Type == "1") - { - strMessage = "-1:閲囪喘鍏ュ簱涓嶅彲鏇存敼鏄庣粏锛屽彧鍙紪杈戞暟閲�;"; - return strMessage; - } + //if (model.Type == "1") + //{ + // strMessage = "-1:閲囪喘鍏ュ簱涓嶅彲鏇存敼鏄庣粏锛屽彧鍙紪杈戞暟閲�;"; + // return strMessage; + //} // 璁$畻鍑烘�婚噾棰� detailModel.Money = detailModel.Price * detailModel.Qty; @@ -787,7 +791,7 @@ return "-1:鍏ュ簱鍗曠姸鎬佸凡鍙樻洿锛屼笉鍙垹闄�!"; } - if (asnModel.Origin != "褰曞叆" && asnModel.Origin != "閲囪喘鍗�") + if (asnModel.Origin != "褰曞叆" )//&& asnModel.Origin != "閲囪喘鍗�" { return "-1:涓婃父绯荤粺涓嬪彂鐨勫崟鎹紝涓嶅彲鍒犻櫎;"; @@ -818,10 +822,17 @@ asnDetail.UpdateTime = editDateTime; asnDetail.UpdateUser = model.CreateUser; + //鐢熸垚鐨勬爣绛� + var boxList = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == asnDetail.Id && m.Origin == "WMS鐢熸垚").ToList(); + Db.Ado.BeginTran(); int rowCount = Db.Updateable(asnModel).ExecuteCommand(); rowCount += Db.Updateable(asnDetail).ExecuteCommand(); - + if (boxList.Count>0) + { + rowCount += Db.Deleteable(boxList).ExecuteCommand(); + } + if (rowCount < 2) { Db.RollbackTran(); diff --git a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs index f6d72cd..39754eb 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs @@ -657,7 +657,7 @@ { if (pack.L2Name != "鎵�") { - packLevel = 2; + packLevel = 1;//JC34椤圭洰鍙湁涓�绾ф爣绛� bNum = Convert.ToInt32(pack.L2Num); } } @@ -710,14 +710,14 @@ #endregion int labelNum = 1; //鐢熶骇鏉$爜鏁伴噺 - if (zNum > 0) - { - labelNum = int.Parse(Math.Ceiling(qty / zNum).ToString());//鏍囩鏁伴噺 - } - else - { - throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏄竴绾у寘瑁咃紝鏈煡璇㈠埌涓�绾у寘瑁呬俊鎭�"); - } + //if (zNum > 0) + //{ + labelNum = int.Parse(Math.Ceiling(qty / bNum).ToString());//鏍囩鏁伴噺 + //} + //else + //{ + // throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏄竴绾у寘瑁咃紝鏈煡璇㈠埌涓�绾у寘瑁呬俊鎭�"); + //} #region 鑾峰彇/鐢熸垚鎵规鍙� @@ -734,30 +734,30 @@ if (i == labelNum) { // 鏈�鍚庝竴涓潯鐮� - var s = zNum * (i - 1); - if (zNum > qty - s) + var s = bNum * (i - 1); + if (bNum > qty - s) { boxQty = qty - s;// 鏁伴噺 } else { - boxQty = zNum;// 鏁伴噺 + boxQty = bNum;// 鏁伴噺 } } else { - boxQty = zNum; // 鏁伴噺 + boxQty = bNum; // 鏁伴噺 } //鑾峰彇绠辩爜 if (string.IsNullOrWhiteSpace(maxBoxCode)) { - var str = "B" + maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 2302010001000001 + var str = "B" + maxLotNoStr + "000001"; //鎵瑰彿+ 娴佹按 B 230201 0001 000001 maxBoxCode = str; } else { - maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0'); + maxBoxCode = maxBoxCode.Substring(0, maxBoxCode.Length-6) + (int.Parse(maxBoxCode.Substring(maxBoxCode.Length - 6, 6)) + 1).ToString().PadLeft(6, '0'); } // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� diff --git a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs index 69e37ea..f278409 100644 --- a/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs @@ -1546,7 +1546,368 @@ } #endregion - // 鐢宠宸烽亾 + + #region 鐢宠鍌ㄤ綅銆佸贩閬� 浠诲姟瀹屾垚銆佸彇娑� + + + /// <summary> + /// 鐢宠宸烽亾(瀵嗛泦搴�) + /// </summary> + /// <param name="palletNo"></param> + /// <param name="houseNo"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> + public OutCommandDto RequestMiJiRoadWay(string palletNo, string houseNo) + { + try + { + #region 楠岃瘉鎵樼洏鍚堟硶鎬� + //楠岃瘉鎵樼洏鏉$爜鏄惁涓虹┖ + if (string.IsNullOrEmpty(palletNo)) + { + throw new Exception("璇疯緭鍏ヨ鐢宠鐨勬墭鐩樻潯鐮�"); + } + //楠岃瘉鎵�灞炰粨搴撴槸鍚︿负绌� + if (string.IsNullOrEmpty(houseNo)) + { + throw new Exception("璇烽�夋嫨鎵�灞炰粨搴�"); + } + //鑾峰彇浠撳簱绫诲瀷 + var houseType = Db.Queryable<SysWareHouse>().First(a => a.WareHouseNo == houseNo); + //楠岃瘉鏄惁涓哄瘑闆嗗簱 + if (houseType.Type != "3") + { + throw new Exception("浠撳簱涓嶆槸瀵嗛泦搴�"); + } + + var stock = Db.Queryable<SysPallets>().First(a => a.PalletNo == palletNo);//鎵樼洏淇℃伅 + //鍒ゆ柇鎵樼洏鏉$爜鏄惁鏈夋晥 + if (stock == null) + { + throw new Exception("鎵樼洏鏉$爜涓嶅彈WMS绠$悊锛屼笉鍙叆搴擄紒"); + } + #endregion + + + OutCommandDto comDto;//杩斿洖wcs鐨勫叆搴撳懡浠� + #region + + //鏌ヨ鎵樼洏缁戝畾淇℃伅(鐘舵�佷负绛夊緟鍏ュ簱/姝e湪鎵ц鐨�) + var palletBindList = Db.Queryable<BllPalletBind>() + .Where(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1")).ToList(); + var haveLocate = palletBindList.FirstOrDefault(m => !string.IsNullOrWhiteSpace(m.LocatNo)); + + var skuNo = ""; //鍏ュ簱鐗╂枡 + var lotNo = ""; //鍏ュ簱鎵规 + + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList(); + if (palletBindList.Count >= 1) //姝e父鍏ュ簱 + { + var palletBind = palletBindList.FirstOrDefault(m => m.Status == "1");//鏌ヨ鏄惁鏈夋鍦ㄦ墽琛岀殑鎵樼洏缁戝畾 + if (palletBind != null) + { + var beingTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == palletBind.TaskNo); + if (beingTask == null) + { + throw new Exception("璇ユ墭鐩樻鍦ㄥ叆搴擄紝浣嗘湭鏌ヨ鍒颁换鍔′俊鎭�"); + } + + comDto = new OutCommandDto() + { + PalletNo = palletNo,//鎵樼洏鍙� + StartRoadway = beingTask.StartRoadway, // 璧峰宸烽亾 + StartLocate = beingTask.StartLocat, // 璧峰浣嶇疆 + EndLocate = beingTask.EndLocat, // 鐩爣浣嶇疆 + EndRoadway = beingTask.EndRoadway, // 鐩爣宸烽亾 + TaskNo = beingTask.TaskNo, // 浠诲姟鍙� + TaskType = "0",// 浠诲姟绫诲瀷 (鍏ュ簱) + OutMode = "", //鐩爣鍦板潃 + Order = 1 + }; + if (beingTask.IsSuccess == 0) + { + beingTask.IsSuccess = 1; + Db.Updateable(beingTask).ExecuteCommand(); + } + return comDto; + + } + + + // 楠岃瘉鏄惁鍏宠仈鍗曟嵁锛岃幏鍙栨墭鐩樹笂瀛樻斁鐨勭墿鏂� + if (palletBindList.First().Type == "0") //鐗╂枡鎵樺叆搴� + { + //鍒ゆ柇鏄惁缁戝畾鍗曟嵁鍙婂崟鎹姸鎬佹槸鍚︽甯� + foreach (var item in palletBindList) + { + var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == item.ASNNo); + if (notice == null) + { + throw new Exception("鎵樼洏瀛樺湪鐗╂枡鏈粦瀹氬叆搴撳崟锛屼笉鍙叆搴擄紒"); + } + if (notice.Status == "3" || notice.Status == "4") + { + throw new Exception($"鍏ュ簱鍗晎item.ASNNo}宸插叧闂紝涓嶅彲鍏ュ簱锛�"); + } + } + + //鑾峰彇鐗╂枡瀛樻斁鍖哄煙 + var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => + m.IsDel == "0" && m.Id == palletBindList.First().ASNDetailNo); + if (noticeDetail == null) + { + throw new Exception("鎵樼洏瀛樺湪鐗╂枡鏈粦瀹氬叆搴撳崟鏄庣粏锛屼笉鍙叆搴�"); + } + + skuNo = noticeDetail.SkuNo; + lotNo = noticeDetail.LotNo; + + } + else if (palletBindList.First().Type == "1")//绌烘墭鐩� + { + skuNo = "100099"; + } + } + else //鍥炴祦鍏ュ簱 + { + if (stockDetail.Count == 0) + { + throw new Exception($"{palletNo}鎵樼洏涓嶅瓨鍦ㄥ簱瀛樹俊鎭紝涓嶅彲鍏ュ簱锛�"); + } + if (stockDetail.Count(m => !string.IsNullOrWhiteSpace(m.LocatNo)) > 0) + { + throw new Exception("褰撳墠鎵樼洏宸插湪搴撳唴锛岃鏍稿疄"); + } + skuNo = stockDetail.First().SkuNo; + lotNo = stockDetail.First().LotNo; + + #region 鍒ゆ柇浠诲姟鏄惁宸茬粡瀛樺湪锛岃嫢瀛樺湪鐩存帴杩斿洖浠诲姟锛� + var beingTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" + && (m.Status == "0" || m.Status == "1") && m.PalletNo == palletNo && m.Type == "0"); + if (beingTask != null) + { + comDto = new OutCommandDto() + { + PalletNo = palletNo,//鎵樼洏鍙� + StartRoadway = beingTask.StartRoadway, // 璧峰宸烽亾 + StartLocate = beingTask.StartLocat, // 璧峰浣嶇疆 + EndLocate = beingTask.EndLocat, // 鐩爣浣嶇疆 + EndRoadway = beingTask.EndRoadway, // 鐩爣宸烽亾 + TaskNo = beingTask.TaskNo, // 浠诲姟鍙� + TaskType = "0",// 浠诲姟绫诲瀷 (鍑哄簱) + OutMode = "", //鐩爣鍦板潃 + Order = 1 + }; + if (beingTask.IsSuccess == 0) + { + beingTask.IsSuccess = 1; + beingTask.Status = "1"; + Db.Updateable(beingTask).ExecuteCommand(); + } + + return comDto; + } + #endregion + + #region 鍒ゆ柇璇ユ墭鐩橈紝鏄惁绗﹀悎鍥炲簱鍔熻兘璁惧畾鐨勫洖搴撹鍒� + //鑾峰彇瀵瑰簲鍥炲簱瑙勫垯 + var function = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" + && a.FunSetNo == "Fun041" && a.IsEnable == "NO"); + if (function != null) + { + //鎷h揣瀹屾垚鍚庡厑璁告墭鐩樺洖搴� + var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" + && a.LotNo == stockDetail[0].LotNo && a.PalletNo == palletNo && a.SkuNo == stockDetail[0].SkuNo); + + //楠岃瘉鎷h揣鏄庣粏鏄惁瀛樺湪 + if (allot != null) + { + //楠岃瘉褰撳墠鎵樼洏鎷h揣淇℃伅鏄惁宸插畬鎴� + if (allot.Status != "5") + { + throw new Exception("褰撳墠鎵樼洏鎷h揣淇℃伅鏈畬鎴愶紝璇峰畬鎴愬悗鍥炲簱锛�"); + } + } + } + #endregion + } + + var allotLocate = new AllotLocation(); + + SysStorageLocat locate; + + #region 鏍规嵁sku纭鍖哄煙鍒掑垎 + + //鐗╂枡淇℃伅 + var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == skuNo); + if (sku == null) + { + throw new Exception("鐗╂枡缂栫爜涓嶅瓨鍦紝涓嶅彲鍏ュ簱"); + } + //鍒ゆ柇鐗╂枡鏄惁鍚湁绫诲埆淇℃伅 + if (string.IsNullOrWhiteSpace(sku.CategoryNo)) + { + throw new Exception($"鐗╂枡锛歿sku.SkuNo}鏈缃被鍒�,涓嶅彲鍏ュ簱"); + } + //鐗╂枡绫诲埆淇℃伅 + var skuCategory = Db.Queryable<SysMaterialCategory>().First(m => m.IsDel == "0" && m.CategoryNo == sku.CategoryNo); + if (skuCategory == null) + { + throw new Exception($"{sku.SkuNo}鐗╂枡绫诲埆涓嶅瓨鍦紝涓嶅彲鍏ュ簱"); + } + //鏁寸悊鍖哄煙淇℃伅 + var areaStr = skuCategory.AreaNo.Split(","); + var areaList = new List<string>(); + foreach (var item in areaStr) + { + areaList.Add(item); + } + + + var roadList = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == houseNo && areaList.Contains(m.AreaNo)) + .GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList(); + + + #endregion + + var roadNo = allotLocate.GetMiJiSuiTableRoad(houseNo, roadList, areaList,skuNo,lotNo); + + if (string.IsNullOrWhiteSpace(roadNo)) + { + throw new Exception("鏈煡璇㈠埌瀛樺湪绌哄偍浣嶅贩閬�"); + } + + Db.BeginTran(); + try + { + //娣诲姞宸烽亾浣跨敤璁板綍 + var log = new SysRoadwayUseLog + { + RoadwayNo = roadNo, + WareHouseNo = houseNo, + Row = 0, + Column = 0, + Layer = 0, + }; + Db.Insertable(log).ExecuteCommand(); + + // 娣诲姞鍏ュ簱鏃ュ織璁板綍 + var taskNo = new Common().GetMaxNo("TK"); + var exTask = new LogTask //鍏ュ簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "WCS", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + SendDate = DateTime.Now, //鍙戦�佹椂闂� + BackDate = DateTime.Now, //杩斿洖鏃堕棿 + StartRoadway = "", // 璧峰宸烽亾 + StartLocat = "",//璧峰浣嶇疆 + EndLocat = "",//鐩爣浣嶇疆 + EndRoadway = roadNo, // 鐩爣宸烽亾 + PalletNo = palletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + Msg = "鍏ュ簱鍙e埌=>>" + roadNo + "宸烽亾鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅 + + }; + Db.Insertable(exTask).ExecuteCommand(); + + var asnNo = ""; + // 娣诲姞鎵樼洏缁戝畾琛ㄦ墭鐩樺叆搴撲换鍔″彿 liudl + if (palletBindList.Count < 1) + { + foreach (DataStockDetail stockModel in stockDetail) + { + var bindModel = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.Status == "2" + && m.PalletNo == stockModel.PalletNo && m.ASNNo == stockModel.ASNNo && m.ASNDetailNo == stockModel.ASNDetailNo); + if (bindModel != null && string.IsNullOrWhiteSpace(bindModel.TaskNo)) + { + bindModel.TaskNo = taskNo; + bindModel.WareHouseNo = houseNo; + bindModel.RoadwayNo = roadNo; + Db.Updateable(bindModel).ExecuteCommand(); + asnNo = stockModel.ASNNo; + } + + + } + } + foreach (DataStockDetail stockModel in stockDetail) + { + //娣诲姞鎵樼洏涓婃灦璁板綍 + var upShelf = new BllPalletUpShelf() + { + TaskNo = exTask.TaskNo, + TraceNo = asnNo, + PalletNo = palletNo, + SkuNo = stockModel.SkuNo, + SkuName = stockModel.SkuName, + LotNo = stockModel.LotNo, + Status = "1", + + WareHouseNo = houseNo, + RoadwayNo = roadNo, + AreaNo = "", + LocatNo = "", + + CreateUser = 0, + }; + Db.Insertable(upShelf).ExecuteCommand(); + } + + + if (palletBindList.Count >= 1) + { + foreach (var item in palletBindList) + { + item.WareHouseNo = houseNo; + item.RoadwayNo = roadNo; + item.TaskNo = taskNo; + } + Db.Updateable(palletBindList).ExecuteCommand(); + } + Db.CommitTran(); + + comDto = new OutCommandDto() + { + PalletNo = palletNo,//鎵樼洏鍙� + StartRoadway = "", + StartLocate = "", // 璧峰浣嶇疆 + EndLocate = "", // 鐩爣浣嶇疆 + EndRoadway = roadNo, // 鐩爣宸烽亾 + TaskNo = taskNo, // 浠诲姟鍙� + TaskType = "0",// 浠诲姟绫诲瀷:鍏ュ簱浠诲姟 + OutMode = "", //鐩爣鍦板潃 + Order = 1 + }; + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception(ex.Message); + } + #endregion + + return comDto; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + /// <summary> + /// 鐢宠宸烽亾 + /// </summary> + /// <param name="palletNo"></param> + /// <param name="houseNo"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> public OutCommandDto RequestRoadWay(string palletNo, string houseNo) { try @@ -2022,7 +2383,14 @@ } } - //1 鐢宠鍌ㄤ綅 2 鐢宠宸烽亾鍚� 鍐嶇敵璇峰偍浣嶅偍浣� + /// <summary> + /// 1 鐢宠鍌ㄤ綅 2 鐢宠宸烽亾鍚� 鍐嶇敵璇峰偍浣嶅偍浣� + /// </summary> + /// <param name="palletNo"></param> + /// <param name="houseNo"></param> + /// <param name="roadwayNo"></param> + /// <returns></returns> + /// <exception cref="Exception"></exception> public OutCommandDto RequestLocation(string palletNo, string houseNo, string roadwayNo) { try @@ -2415,292 +2783,13 @@ throw new Exception(e.Message); } } - - #region 鏃х増鏈敵璇峰偍浣� - - //鐢宠鍌ㄤ綅 - //public OutCommandDto RequestLocation(string palletNo, string houseNo, string roadwayNo) - //{ - // try - // { - // //楠岃瘉鎵樼洏鏉$爜鏄惁涓虹┖ - // if (string.IsNullOrEmpty(palletNo)) - // { - // throw new Exception("璇疯緭鍏ヨ鐢宠鐨勬墭鐩樻潯鐮�"); - // } - // //楠岃瘉鎵�灞炰粨搴撴槸鍚︿负绌� - // if (string.IsNullOrEmpty(houseNo)) - // { - // throw new Exception("璇烽�夋嫨鎵�灞炰粨搴�"); - // } - // //楠岃瘉鏄惁涓哄钩搴撳叆搴� - // if (houseNo == "W02") - // { - // throw new Exception("骞冲簱璇蜂娇鐢≒DA鎵嬫寔杩涜骞冲簱鍏ュ簱"); - // } - - // OutCommandDto comDto;//杩斿洖wcs鐨勫叆搴撳懡浠� - // var isHaveLocateNo = false; //鎵樼洏缁戝畾淇℃伅涓槸鍚﹀凡鏈夋寚瀹氬偍浣� - - // var stock = Db.Queryable<SysPallets>().First(a => a.PalletNo == palletNo);//鎵樼洏淇℃伅 - - // //鍒ゆ柇鎵樼洏鏉$爜鏄惁鏈夋晥 - // if (stock == null) - // throw new Exception("鎵樼洏鏉$爜涓嶅彈WMS绠$悊锛屼笉鍙叆搴擄紒"); - - // #region - - // //鏌ヨ鎵樼洏缁戝畾淇℃伅(鐘舵�佷负绛夊緟鍏ュ簱鐨�) - // var palletBindList = Db.Queryable<BllPalletBind>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo && m.Status != "2").ToList(); - // var haveLocate = palletBindList.FirstOrDefault(m => !string.IsNullOrWhiteSpace(m.LocatNo)); - - // var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList(); - // //鐗╂枡绫诲埆淇℃伅 - // var skuCategoryList = Db.Queryable<SysMaterialCategory>().Where(m => m.IsDel == "0").ToList(); - - // var skuNo = ""; //鍏ュ簱鐗╂枡 - - // if (palletBindList.Count >= 1) //姝e父鍏ュ簱 - // { - // var palletBind = palletBindList.FirstOrDefault(m => m.Status == "1"); - // if (palletBind != null) - // { - // var beingTask = Db.Queryable<LogTask>().First(m => m.IsDel == "0" && m.TaskNo == palletBind.TaskNo); - // if (beingTask == null) - // { - // throw new Exception("璇ユ墭鐩樻鍦ㄥ叆搴擄紝浣嗘湭鏌ヨ鍒颁换鍔′俊鎭�"); - // } - // comDto = new OutCommandDto() - // { - // PalletNo = palletNo,//鎵樼洏鍙� - // StartRoadway = beingTask.StartRoadway, // 璧峰宸烽亾 - // StartLocate = "", // 璧峰浣嶇疆 - // EndLocate = beingTask.EndLocat, // 鐩爣浣嶇疆 - // EndRoadway = beingTask.EndRoadway, // 鐩爣宸烽亾 - // TaskNo = beingTask.TaskNo, // 浠诲姟鍙� - // TaskType = "0",// 浠诲姟绫诲瀷 (鍑哄簱) - // OutMode = "", //鐩爣鍦板潃 - // Order = 1 - // }; - // return comDto; - // } - // if (haveLocate != null) - // { - // isHaveLocateNo = true; //宸叉湁鎸囧畾鍌ㄤ綅 - // } - - // if (palletBindList.First().Type == "0") //鐗╂枡鎵樺叆搴� - // { - // //鍒ゆ柇鏄惁缁戝畾鍗曟嵁鍙婂崟鎹姸鎬佹槸鍚︽甯� - // foreach (var item in palletBindList) - // { - // var notice = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == item.ASNNo); - // if (notice == null) - // { - // throw new Exception("鎵樼洏瀛樺湪鐗╂枡鏈粦瀹氬叆搴撳崟锛屼笉鍙叆搴擄紒"); - // } - // if (notice.Status == "3") - // { - // throw new Exception($"鍏ュ簱鍗晎item.ASNNo}宸插叧闂紝涓嶅彲鍏ュ簱锛�"); - // } - // } - - // //鑾峰彇鐗╂枡瀛樻斁鍖哄煙 - // var noticeDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => - // m.IsDel == "0" && m.Id == palletBindList.First().ASNDetailNo); - // if (noticeDetail == null) - // { - // throw new Exception("鎵樼洏瀛樺湪鐗╂枡鏈粦瀹氬叆搴撳崟鏄庣粏锛屼笉鍙叆搴�"); - // } - - // skuNo = noticeDetail.SkuNo; - - // } - // else if (palletBindList.First().Type == "1")//绌烘墭鐩� - // { - // skuNo = "100099"; - // } - // } - // else //鍥炴祦鍏ュ簱 - // { - // var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == palletNo).ToList(); - // if (stockDetail.Count == 0) - // { - // throw new Exception($"{palletNo}鎵樼洏鏉$爜涓嶅叿鏈夌鐮佷俊鎭紝涓嶅彲鍏ュ簱锛�"); - // } - // skuNo = stockDetail.First().SkuNo; - // if (!string.IsNullOrWhiteSpace(stockDetail.First().WareHouseNo)) - // { - // if (stockDetail.First().WareHouseNo == "W01")//绔嬪簱 - // { - // throw new Exception($"{palletNo}鎵樼洏涓婂湪绔嬪簱涓湁搴撳瓨鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�"); - // } - - // if (stockDetail.First().WareHouseNo == "W02")//骞冲簱 - // { - // var locatePingKu = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == stockDetail.First().LocatNo); - // if (locatePingKu != null) - // { - // locatePingKu.Status = "0"; - // Db.Updateable(locatePingKu).ExecuteCommand(); - // } - // } - // } - - - // //鑾峰彇瀵瑰簲鍥炲簱瑙勫垯 - // var function = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetName == "鎵樼洏鍥炲簱楠岃瘉" && a.IsEnable == "NO"); - // #region 鎵樼洏鍥炲簱瑙勫垯 - - // if (function != null) - // { - // //鎷h揣瀹屾垚鍚庡厑璁告墭鐩樺洖搴� - // if (function.SetValue == "CompletePick") - // { - // var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.LotNo == stockDetail[0].LotNo && a.PalletNo == palletNo && a.SkuNo == stockDetail[0].SkuNo); - - // //楠岃瘉鎷h揣鏄庣粏鏄惁瀛樺湪 - // if (allot != null) - // { - // //楠岃瘉褰撳墠鎵樼洏鎷h揣淇℃伅鏄惁宸插畬鎴� - // if (allot.Status != "5") - // { - // throw new Exception("褰撳墠鎵樼洏鎷h揣淇℃伅鏈畬鎴愶紝璇峰畬鎴愬悗鍥炲簱锛�"); - // } - // } - // } - // } - - - // #endregion - // } - - // var allotLocate = new AllotLocation(); - - // SysStorageLocat locate; - // if (isHaveLocateNo) //鎸囧畾鍌ㄤ綅 - // { - // locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == haveLocate.LocatNo); - // } - // else - // { - // var sku = skuList.FirstOrDefault(m => m.SkuNo == skuNo); - // if (sku == null) - // { - // throw new Exception("鐗╂枡淇℃伅涓湭鏌ヨ鍒板叆搴撳崟鏄庣粏鍖呭惈鐨勭墿鏂欎俊鎭紝涓嶅彲鍏ュ簱"); - // } - // //鍒ゆ柇鐗╂枡鏄惁鍚湁绫诲埆淇℃伅 - // if (string.IsNullOrWhiteSpace(sku.CategoryNo)) - // { - // throw new Exception($"鐗╂枡锛歿sku.SkuNo}鏈煡璇㈠埌绫诲埆淇℃伅"); - // } - - // var skuCategory = skuCategoryList.FirstOrDefault(m => m.CategoryNo == sku.CategoryNo); - // if (skuCategory == null) - // { - // throw new Exception($"鏈湪绫诲埆淇℃伅涓煡璇㈠埌鐗╂枡锛歿sku.SkuNo}鍖呭惈鐨勭被鍒�"); - // } - - // var areaStr = skuCategory.AreaNo.Split(","); - // var areaList = new List<string>(); - // foreach (var item in areaStr) - // { - // areaList.Add(item); - // } - - // locate = allotLocate.GetSuiTableLocate(houseNo, areaList, roadwayNo); - // } - // Db.BeginTran(); - // try - // { - // //if (locate != null) - // //{ - // // //娣诲姞宸烽亾浣跨敤璁板綍 - // // var log = new SysRoadwayUseLog - // // { - // // RoadwayNo = locate.RoadwayNo, - // // LocateNo = locate.LocatNo, - // // WareHouseNo = locate.WareHouseNo, - // // Row = locate.Row, - // // Column = locate.Column, - // // Layer = locate.Layer, - // // Depth = locate.Depth - // // }; - // // Db.Insertable(log).ExecuteCommand(); - // //} - - // var taskNo = new Common().GetMaxNo("TK"); - // var exTask = new LogTask //鍏ュ簱浠诲姟 - // { - // TaskNo = taskNo, - // Sender = "WMS", - // Receiver = "WCS", - // IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 - // SendDate = DateTime.Now, //鍙戦�佹椂闂� - // BackDate = DateTime.Now, //杩斿洖鏃堕棿 - // StartRoadway = "", // 璧峰宸烽亾 - // StartLocat = "",//璧峰浣嶇疆 - // EndLocat = locate.LocatNo,//鐩爣浣嶇疆 - // EndRoadway = locate.RoadwayNo, // 鐩爣宸烽亾 - // PalletNo = palletNo,//鎵樼洏鐮� - // IsSend = 1,//鏄惁鍙啀娆′笅鍙� - // IsCancel = 1,//鏄惁鍙彇娑� - // IsFinish = 1,//鏄惁鍙畬鎴� - // Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 - // Status = "1",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 - // OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� - // Msg = "鍏ュ簱鍙e埌=>>" + locate.LocatNo + "鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅 - - // }; - // Db.Insertable(exTask).ExecuteCommand(); - // locate.Status = "2"; - // Db.Updateable(locate).ExecuteCommand(); - // if (palletBindList.Count >= 1) - // { - // foreach (var item in palletBindList) - // { - // item.Status = "1"; - // item.WareHouseNo = locate.WareHouseNo; - // item.RoadwayNo = locate.RoadwayNo; - // item.LocatNo = locate.LocatNo; - // item.TaskNo = taskNo; - // } - // Db.Updateable(palletBindList).ExecuteCommand(); - // } - // Db.CommitTran(); - // comDto = new OutCommandDto() - // { - // PalletNo = palletNo,//鎵樼洏鍙� - // StartRoadway = "", - // StartLocate = "", // 璧峰浣嶇疆 - // EndLocate = locate.LocatNo, // 鐩爣浣嶇疆 - // EndRoadway = locate.RoadwayNo, // 鐩爣宸烽亾 - // TaskNo = exTask.TaskNo, // 浠诲姟鍙� - // TaskType = "0",// 浠诲姟绫诲瀷 (鍑哄簱) - // OutMode = "", //鐩爣鍦板潃 - // Order = 1 - // }; - - // } - // catch (Exception ex) - // { - // Db.RollbackTran(); - // throw new Exception(ex.Message); - // } - // #endregion - - - // return comDto; - // } - // catch (Exception e) - // { - // throw new Exception(e.Message); - // } - //} - - #endregion - - //鍏ュ簱瀹屾垚(wcs鍙嶉銆亀ms鎵嬪姩瀹屾垚) + + /// <summary> + /// 鍏ュ簱瀹屾垚(wcs鍙嶉銆亀ms鎵嬪姩瀹屾垚) + /// </summary> + /// <param name="taskNo"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> public void ArrivalSuccess(string taskNo, int userId) { try @@ -3408,6 +3497,7 @@ throw new Exception(e.Message); } } + /// <summary> /// 婊″叆寮傚父 /// </summary> @@ -3601,7 +3691,12 @@ } } - //鎵嬪姩鍙栨秷鍏ュ簱浠诲姟 + /// <summary> + /// 鎵嬪姩鍙栨秷鍏ュ簱浠诲姟 + /// </summary> + /// <param name="taskNo"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> public void CancelAsnTask(string taskNo, int userId) { try @@ -3664,6 +3759,9 @@ throw new Exception(e.Message); } } + + #endregion + #region 鏁版嵁褰掓。 public List<PalletBindDto> GetArchivingPalletBindList(PalletBindVm model, out int count) { diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 152ebb3..5270e8a 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -28,17 +28,1666 @@ { private static readonly SqlSugarScope Db = DataContext.Db; - // 鑾峰彇鍗曟嵁鍒楄〃 - public List<ArrivalNoticeDto> GetArrivalNotices(ArrivalNoticeVm model) + #region JC34 + + /// <summary> + /// 缁戝畾鎵樼洏 璐存爣鐗╂枡 + /// </summary> + /// <param name="model"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> + public void BindPalletPasteCode(PdaPalletBindVm model, int userId) + { + try + { + #region 鍒ゆ柇 + //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 8锛氱敓浜ч��鏂欏叆搴� + + + if (string.IsNullOrEmpty(model.AsnNo)) + { + throw new Exception("鍗曟嵁鍙蜂笉鍙负绌�!"); + } + if (model.AsnDetailId == null || model.AsnDetailId == 0) + { + throw new Exception("鐗╂枡-鎵规涓嶅彲涓虹┖!"); + } + if (string.IsNullOrEmpty(model.PalletNo)) + { + throw new Exception("鎵樼洏鍙蜂笉鍙负绌�!"); + } + //鏍规嵁鍗曟嵁鍙疯幏鍙栧叆搴撳崟鎬诲崟 + var notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo); + if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2") + { + throw new Exception("璇ュ崟鎹凡鍏冲崟!"); + } + if (string.IsNullOrEmpty(model.LotNo)) + { + throw new Exception("鐗╂枡-鎵规涓嶅彲涓虹┖!"); + } + else + { + //浠庣墿鏂欏悕绉�-鎵规涓彇鍑烘壒娆� + int indexOfDash = model.LotNo.IndexOf("-"); + if (indexOfDash != -1) + { + model.LotNo = model.LotNo.Substring(indexOfDash + 1); + } + else + { + throw new Exception("鐗╂枡-鎵规涓嶅彲涓虹┖!"); + } + } + + //鍒ゆ柇绠辩爜淇℃伅 + if (string.IsNullOrEmpty(model.BoxNo)) + { + throw new Exception("绠辩爜淇℃伅涓嶅彲涓虹┖!"); + } + //鏄惁杩炵画缁勬墭 0锛氬惁 1锛氭槸 + if (model.IsContinue == "1") + { + if (string.IsNullOrWhiteSpace(model.TailBoxNo)) + { + throw new Exception("寮�鍚繛缁粍鎵樻椂锛屽熬绠辩爜淇℃伅涓嶅彲涓虹┖!"); + } + } + + //鎵樼洏淇℃伅鏄惁瀛樺湪 + var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); + if (pallet == null) + { + throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅锛岃鏍稿疄锛�"); + } + //楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦� + var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo)); + if (detail == null) + { + throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!"); + } + //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱澶� + var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); + if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo)) + { + throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝涓嶅彲缁勬墭锛岃鏍稿疄锛�"); + } + + #endregion + + //寮�鍚簨鍔� + Db.BeginTran(); + //褰撳墠鏃堕棿 + var comTime = DateTime.Now; + + #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); + + 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}鐗╁搧鍖呰鏈壘鍒帮紒"); + } + + #endregion + + #region 楠岃瘉鏄惁鍏佽绔嬪簱鍚屾墭鐩樹笉鍚岀墿鏂欏叆搴撴垨鍚屾墭鐩樺悓鐗╂枡涓嶅悓鎵规鍏ュ簱 + var palletBind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNNo == model.AsnNo && m.PalletNo == model.PalletNo && m.ASNDetailNo != model.AsnDetailId); + if (palletBind != null) + { + var box = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.BindNo == palletBind.Id && m.BitBoxMark == "0"); + if (box != null && (box.SkuNo != detail.SkuNo || !detail.LotNo.Contains(box.LotNo))) + { + var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "Fun045"); + if (funSetting == null || funSetting.IsEnable == "OFF") + { + throw new Exception($"涓嶅厑璁哥珛搴撳悓鎵樼洏涓嶅悓鐗╂枡鍏ュ簱鎴栧悓鎵樼洏涓嶅悓鎵规鍏ュ簱锛�"); + } + } + } + #endregion + + #region 绠辩爜淇℃伅 + var msgStr = $"绠卞彿涓簕model.BoxNo}"; + var boxInfoList = new List<BllBoxInfo>(); + + //棣栫 + var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).ToList(); + if (boxInfo.Count == 0) + { + throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); + } + boxInfoList.AddRange(boxInfo); + //鏄惁杩炵画缁勬墭 + if (model.IsContinue == "1") + { + //灏剧 + var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo).ToList(); + if (boxInfo2.Count == 0) + { + throw new Exception("灏剧鐮佷俊鎭笉瀛樺湪!"); + } + boxInfoList.AddRange(boxInfo2); + var sql = $"select * from BllBoxInfo where IsDel = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; "; + var list = Db.Ado.SqlQuery<BllBoxInfo>(sql); + boxInfoList.AddRange(list); + msgStr += $"灏剧鍙蜂负{model.TailBoxNo}"; + } + //缁戝畾绠辨�绘暟閲� + //model.SkuQty = boxInfoList.Sum(s => s.Qty); + //鍜岄�夋嫨鐨勬壒娆″悓鎵规鐨勭鐮佷俊鎭� + var sameBoxInfoList = boxInfoList.Where(w => w.LotNo == model.LotNo && w.Status == "0").ToList(); + //鍜岄�夋嫨鐨勬壒娆′笉鍚屾壒娆$殑绠辩爜淇℃伅锛堟嫾绠辨壒娆★級 + var notBoxInfoList = boxInfoList.Where(w => w.LotNo != model.LotNo).ToList(); + #endregion + + if (sameBoxInfoList.Count <= 0) + { + throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); + } + else + { + #region 鎵樼洏缁戝畾淇℃伅 + var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailId && m.PalletNo == model.PalletNo && m.LotNo == model.LotNo); + var bindId = 0; + if (bind == null) + { + bind = new BllPalletBind + { + ASNNo = model.AsnNo, + ASNDetailNo = (int)model.AsnDetailId, + PalletNo = model.PalletNo, + PalletNo2 = "", + PalletNo3 = "", + Qty = model.SkuQty,//涓嶅寘鍚嫾绠变腑闈炲悓鎵规鏁伴噺 + FullQty = pNum, + Status = "2",//鍏ュ簱瀹屾垚 + Type = "0", + LotNo = model.LotNo, + LotText = detail.LotText, + SupplierLot = detail.SupplierLot, + //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + BitPalletMark = "1", + IsBale = "0", + IsBelt = "0", + CreateUser = userId, + Demo = model.Demo, + }; + // 鎻掑叆鎵樼洏缁戝畾琛� + bindId = Db.Insertable(bind).ExecuteReturnIdentity(); + } + else + { + bindId = bind.Id; + bind.Qty += model.SkuQty; + } + + #endregion + + #region 搴撳瓨鏄庣粏鍜岃川妫�淇℃伅 + //鑾峰彇璇ユ壒娆℃渶缁堣川妫�缁撴灉 + BllQualityInspect quality = new BllQualityInspect(); + //鍒ゆ柇鏄惁涓洪��璐у叆搴撳崟 + if (notice.Type == "3") + { + quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.ASNNo == detail.ASNNo && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); + } + else + { + quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); + } + var tags = "0"; + if (notice.Type == "3" || notice.Type == "4") + { + tags = "1"; + } + + // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� + var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo); + var sdId1 = 0; + if (sd1 != null) + { + sdId1 = sd1.Id; + // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 + sd1.Qty = bind.Qty; + sd1.CompleteTime = comTime; + sd1.UpdateUser = userId; + sd1.UpdateTime = comTime; + + Db.Updateable(sd1).ExecuteCommand(); + } + else + { + // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 + sd1 = new DataStockDetail() + { + LotNo = bind.LotNo, + LotText = bind.LotText, + SupplierLot = bind.SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + Qty = bind.Qty, + LockQty = 0, + FrozenQty = 0, + InspectQty = 0, + ASNNo = bind.ASNNo, + ASNDetailNo = bind.ASNDetailNo, + WareHouseNo = "",//鎵�灞炰粨搴� + RoadwayNo = "",//鎵�灞炲贩閬� + AreaNo = "",//鎵�灞炲尯鍩� + LocatNo = "",//鍌ㄤ綅鍦板潃 + PalletNo = bind.PalletNo, + PalletNo2 = bind.PalletNo2, + PalletNo3 = bind.PalletNo3, + PalletTags = tags, + CompleteTime = comTime, + ProductionTime = bind.ProductionTime, + ExpirationTime = bind.ExpirationTime, + Status = "0", + InspectMark = bind.InspectMark, + InspectStatus = sku.IsInspect, + BitPalletMark = bind.BitPalletMark, + PackagNo = detail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮� + IsBale = bind.IsBale, + IsBelt = bind.IsBelt, + + IsDel = "0", + CreateUser = 0, + CreateTime = comTime + }; + + //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� //0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 + if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7") + { + sd1.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 + sd1.OwnerName = notice.CustomerName;//璐т富鍚嶇О + } + else if (notice.Type == "1" || notice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 + { + sd1.SupplierNo = notice.CustomerNo;//渚涘簲鍟嗙紪鐮� + sd1.SupplierName = notice.CustomerName;//渚涘簲鍟嗗悕绉� + } + if (quality != null) + { + //淇敼鍚堟牸涓嶅悎鏍兼暟閲� + if (quality.IsQualified == "1") //鍚堟牸 + { + //澧炲姞鍚堟牸鏁伴噺 + quality.PassQty += bind.Qty; + sd1.InspectStatus = "1"; + } + else if (quality.IsQualified == "0") //涓嶅悎鏍� + { + //澧炲姞涓嶅悎鏍兼暟閲� + quality.FailQty += bind.Qty; + sd1.InspectStatus = "2"; + } + Db.Updateable(quality).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 + } + //娣诲姞搴撳瓨鏄庣粏 + sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + } + #endregion + + // 鏇存敼绠辨敮鍏崇郴琛� + decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲� + var isSample = "0";//鏄惁鍙栨牱 + var sampleQty = 0m;//鍙栨牱鏁伴噺 + + //鏍囩缁勬墭 + var boxGroup = sameBoxInfoList.GroupBy(m => m.BoxNo).ToList(); + foreach (var g in boxGroup) + { + decimal boxFullQty = 0;//绠卞唴鎬绘暟閲� + foreach (var box in g) + { + if (box.BindNo != null && box.BindNo != 0) + { + continue; + } + //绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎 + if (box.SkuNo != detail.SkuNo || box.LotNo != model.LotNo) + { + throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!"); + } + + box.ASNNo = model.AsnNo; + box.ASNDetailNo = model.AsnDetailId; + box.BindNo = bindId; + box.PalletNo = model.PalletNo; + box.Status = "2"; + //box.InspectMark = model.IsSample; //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + //box.SamplingQty = 0; //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + box.CompleteTime = comTime; + box.UpdateTime = comTime; + box.UpdateUser = userId; + + //box.Qty = box.Qty; + //box.BitBoxMark = box.Qty == box.FullQty ? "0" : "1"; + + factQty += box.Qty; + boxFullQty += box.Qty; + if (box.InspectMark == "1") //鍒ゆ柇鏄惁鍙栨牱 + { + isSample = "1"; + sampleQty += (decimal)box.SamplingQty; + } + + #region 搴撳瓨绠辩爜鏄庣粏 + var box2 = new DataBoxInfo() + { + StockDetailId = sdId1, + BindNo = bind.Id, + BoxNo = box.BoxNo, + BoxNo2 = box.BoxNo2, + BoxNo3 = box.BoxNo3, + PalletNo = box.PalletNo, + PalletNo2 = box.PalletNo2, + PalletNo3 = box.PalletNo3, + Qty = box.Qty, + FullQty = box.FullQty, + Status = "2",//0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 + LotNo = box.LotNo, + LotText = box.LotText, + SkuNo = box.SkuNo, + SkuName = box.SkuName, + Standard = sku.Standard, + ProductionTime = box.ProductionTime, + SupplierLot = box.SupplierLot, + InspectStatus = sku.IsInspect, + InspectMark = box.InspectMark, + BitBoxMark = box.BitBoxMark, + ExpirationTime = box.ExpirationTime, + + CreateUser = 0, + CreateTime = comTime + }; + //娣诲姞搴撳瓨绠辩爜鏄庣粏 + Db.Insertable(box2).ExecuteCommand(); + #endregion + } + if (boxFullQty > bNum) + { + throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒"); + } + } + //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭� + Db.Updateable(boxInfoList).ExecuteCommand(); + + // 鏇存柊鎵樼洏缁戝畾琛� + bind.Qty += factQty; + + if (bind.FullQty < bind.Qty) + { + throw new Exception("鎵樼洏缁戝畾鏁伴噺宸茶秴鍑鸿鐗╂枡鍖呰鏁伴噺"); + } + + if (bind.FullQty == bind.Qty) + { + bind.BitPalletMark = "0"; + sd1.BitPalletMark = "0"; + } + if (bind.Qty > pNum) + { + throw new Exception($"缁戝畾澶辫触锛寋bind.PalletNo}鎵樼洏缁戝畾鏁伴噺澶т簬璇ョ墿鍝佹墭鐩樺寘瑁呮暟閲忥紒"); + } + + if (isSample == "1") + { + bind.InspectMark = "1"; + bind.SamplingQty = bind.SamplingQty == null ? sampleQty : bind.SamplingQty + sampleQty; + } + Db.Updateable(bind).Where(m => m.Id == bindId).ExecuteCommand(); + + #region 鍏ュ簱鍗曞強鏄庣粏 + detail.FactQty += factQty;//宸茬粍鏁伴噺 + detail.CompleteQty += factQty;//瀹屾垚鏁伴噺 + if (isSample == "1") //鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�兼敼涓哄垽鏂槸鍚﹀彇鏍� + { + detail.IsSampling = "1"; + } + detail.Status = "1";//0锛氱瓑寰呮墽琛� 1锛氭鍦ㄦ墽琛� 2锛氭墽琛屽畬鎴� + if (detail.CompleteQty >= detail.Qty) + { + detail.Status = "2"; + detail.CompleteTime = comTime; + } + detail.UpdateUser = userId; + detail.UpdateTime = comTime; + //鏇存柊鍏ュ簱鍗曟槑缁� + Db.Updateable(detail).ExecuteCommand(); + + notice.UpdateUser = userId; + notice.UpdateTime = comTime; + if (notice.Status == "0") + { + notice.Status = "1"; + } + var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>().Count(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo && m.Status != "2"); + if (asnDetailNum == 0) + { + notice.Status = "2";//鎵ц瀹屾垚 + notice.CompleteTime = comTime;//瀹屾垚鏃堕棿 + } + //鏇存柊鍏ュ簱鍗� + Db.Updateable(notice).ExecuteCommand(); + #endregion + + #region 搴撳瓨鏄庣粏 + sd1.Qty = bind.Qty; + //鏇存敼搴撳瓨鏄庣粏鏁伴噺 + Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand(); + #endregion + + #region 搴撳瓨 + var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo); + if (dataStock != null) + { + dataStock.Qty += factQty; + + if (bind.InspectMark == "1") + { + dataStock.IsSampling = bind.InspectMark; + } + Db.Updateable(dataStock).ExecuteCommand(); + } + else + { + var stock = new DataStock() + { + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + LotNo = bind.LotNo, + LotText = bind.LotText, + Qty = bind.Qty, + LockQty = 0, + FrozenQty = 0, + IsSampling = bind.InspectMark, + IsDel = "0", + CreateUser = userId, + CreateTime = comTime + }; + //缁存姢搴撳瓨璐т富淇℃伅 + if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 + { + stock.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 + stock.OwnerName = notice.CustomerName;//璐т富鍚嶇О + } + Db.Insertable(stock).ExecuteCommand(); + } + #endregion + + #region 璐ㄦ璇烽獙 + if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1") + { + var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); + if (qualityRequest == null) + { + string qcNo = new Common().GetMaxNo("QC"); + qualityRequest = new BllQualityInspectionRequest(); + qualityRequest.QcNo = qcNo; + qualityRequest.Status = "0"; + qualityRequest.SkuNo = sku.SkuNo; + qualityRequest.SkuName = sku.SkuName; + qualityRequest.LotNo = bind.LotNo; + qualityRequest.SupplierLot = bind.SupplierLot; + qualityRequest.Qty = detail.Qty; + qualityRequest.SamplingQty = 0; + qualityRequest.ASNNo = detail.ASNNo; + qualityRequest.CreateUser = userId; + qualityRequest.CreateTime = comTime; + //娣诲姞璐ㄦ璇烽獙鍗� + Db.Insertable(qualityRequest).ExecuteCommand(); + } + } + #endregion + } + + //鎷肩 + if (notBoxInfoList.Count > 0) + { + var gbox = notBoxInfoList.GroupBy(g => g.BoxNo).ToList(); + if (gbox.Count > 1) + { + throw new Exception("涓�涓墭鐩樹笂鍙兘鏈�1涓嫾绠�!"); + } + gbox = notBoxInfoList.GroupBy(g => g.LotNo).ToList(); + if (gbox.Count > 1) + { + throw new Exception("涓�涓鍐呮渶澶氳兘鏈�2涓笉鍚屾壒娆$墿鏂�!"); + } + var pinBoxNo = notBoxInfoList[0].BoxNo;//鎷肩绠辩爜 + var pinBoxLotNo = notBoxInfoList[0].LotNo;//鎷肩鎵规鍙� + //鎷肩鏁伴噺(鍜岄�夋嫨鐨勬壒娆′笉鍚屾壒娆$殑绠辩爜鏁伴噺) + decimal pinBoxQty = notBoxInfoList.Sum(s => s.Qty); + + var dataBoxList = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.BoxNo == pinBoxNo && w.LotNo == pinBoxLotNo).ToList(); + if (dataBoxList.Count > 0)//宸叉湁搴撳瓨 + { + //鍘熸墭鐩樼粦瀹氫俊鎭� + var oldPalletBind = Db.Queryable<BllPalletBind>().First(w => w.Id == notBoxInfoList[0].BindNo); + //鍘熷叆搴撳崟鏄庣粏 + var oldAsnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(w => w.Id == oldPalletBind.ASNDetailNo); + //鍘熷叆搴撳崟 + var oldAsnNotice = Db.Queryable<BllArrivalNotice>().First(w => w.ASNNo == oldAsnDetail.ASNNo); + #region 鎵樼洏缁戝畾淇℃伅 + var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == oldAsnDetail.Id && m.PalletNo == model.PalletNo); + var bindId = 0; + if (bind == null) + { + bind = new BllPalletBind + { + ASNNo = oldAsnDetail.ASNNo, + ASNDetailNo = oldAsnDetail.Id, + PalletNo = model.PalletNo, + PalletNo2 = "", + PalletNo3 = "", + Qty = 0, + FullQty = pNum, + Status = "2",//鍏ュ簱瀹屾垚 + Type = "0", + LotNo = pinBoxLotNo, + LotText = oldAsnDetail.LotText, + SupplierLot = oldAsnDetail.SupplierLot, + //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + BitPalletMark = "1", + IsBale = "0", + IsBelt = "0", + CreateUser = userId, + Demo = model.Demo, + }; + // 鎻掑叆鎵樼洏缁戝畾琛� + bindId = Db.Insertable(bind).ExecuteReturnIdentity(); + } + else + { + bindId = bind.Id; + bind.Qty += pinBoxQty; + + Db.Updateable(bind).ExecuteCommand(); + } + #endregion + + // 鎻掑叆搴撳瓨鏄庣粏鏁版嵁 + var sd1 = new DataStockDetail() + { + LotNo = pinBoxLotNo, + LotText = notBoxInfoList[0].LotText, + SupplierLot = notBoxInfoList[0].SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + Qty = pinBoxQty, + LockQty = 0, + FrozenQty = 0, + InspectQty = 0, + ASNNo = oldPalletBind.ASNNo, + ASNDetailNo = oldPalletBind.ASNDetailNo, + WareHouseNo = "",//鎵�灞炰粨搴� + RoadwayNo = "",//鎵�灞炲贩閬� + AreaNo = "",//鎵�灞炲尯鍩� + LocatNo = "",//鍌ㄤ綅鍦板潃 + PalletNo = bind.PalletNo, + PalletNo2 = bind.PalletNo2, + PalletNo3 = bind.PalletNo3, + PalletTags = "0", + CompleteTime = comTime, + ProductionTime = oldPalletBind.ProductionTime, + ExpirationTime = oldPalletBind.ExpirationTime, + Status = "0", + InspectMark = oldPalletBind.InspectMark, + InspectStatus = sku.IsInspect, + BitPalletMark = oldPalletBind.BitPalletMark, + PackagNo = oldAsnDetail.PackagNo, + IsBale = oldPalletBind.IsBale, + IsBelt = oldPalletBind.IsBelt, + + IsDel = "0", + CreateUser = 0, + CreateTime = comTime + }; + //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� + if (oldAsnNotice.Type == "0" || oldAsnNotice.Type == "2" || oldAsnNotice.Type == "4" || oldAsnNotice.Type == "6" || oldAsnNotice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 + { + sd1.OwnerNo = oldAsnNotice.CustomerNo;//璐т富缂栫爜 + sd1.OwnerName = oldAsnNotice.CustomerName;//璐т富鍚嶇О + } + else if (oldAsnNotice.Type == "1" || oldAsnNotice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 + { + sd1.SupplierNo = oldAsnNotice.CustomerNo;//渚涘簲鍟嗙紪鐮� + sd1.SupplierName = oldAsnNotice.CustomerName;//渚涘簲鍟嗗悕绉� + } + //娣诲姞搴撳瓨鏄庣粏 + var sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + foreach (var item in dataBoxList) + { + item.StockDetailId = sdId1;//搴撳瓨鏄庣粏id + item.BindNo = bind.Id;//鎵樼洏缁戝畾id + } + //鏇存柊搴撳瓨绠辨敮鏄庣粏琛� + Db.Updateable(dataBoxList).ExecuteCommand(); + + //鎵樼洏瑙g粦淇℃伅 + var palletUnbind = Db.Queryable<BllPalletUnbind>().First(w => w.IsDel == "0" && w.UpbindPalletNo == oldPalletBind.PalletNo && w.BoxNo == pinBoxNo); + if (palletUnbind == null) + { + throw new Exception("鎷肩鐨勬墭鐩樿В缁戜俊鎭笉瀛樺湪!"); + } + palletUnbind.BindPalletNo = model.PalletNo;//缁戝畾鎵樼洏鍙� + palletUnbind.UpdateTime = comTime; + palletUnbind.UpdateUser = userId; + //鏇存柊鎵樼洏瑙g粦缁戝畾琛ㄤ俊鎭� + Db.Updateable(palletUnbind).ExecuteCommand(); + } + else + { + string sql = $@"SELECT detail.* FROM BllArrivalNoticeDetail as detail + JOIN BllArrivalNotice as notice ON detail.ASNNo=notice.ASNNo + WHERE notice.IsDel='0' + AND ( notice.Status=0 or notice.Status=1 ) + AND detail.IsDel='0' + AND detail.LotNo='{pinBoxLotNo}' + AND detail.SkuNo='{sku.SkuNo}' + ORDER BY detail.CreateTime "; + //鎵惧埌鎷肩鍐呭叾浠栨壒娆℃墍灞炲叆搴撳崟鏄庣粏 + var arrDetail = Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sql).FirstOrDefault(); + if (arrDetail == null) + { + throw new Exception("鎷肩鍐呯墿鏂欐墍灞炲叆搴撳崟鏄庣粏涓嶅瓨鍦�!"); + } + //鎵惧埌鎷肩鍐呭叾浠栨壒娆℃墍灞炲叆搴撳崟 + var arrNotice = Db.Queryable<BllArrivalNotice>().First(w => w.IsDel == "0" && w.ASNNo == arrDetail.ASNNo); + if (arrNotice == null) + { + throw new Exception("鎷肩鍐呯墿鏂欐墍灞炲叆搴撳崟涓嶅瓨鍦�!"); + } + #region 鎵樼洏缁戝畾淇℃伅 + var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == arrDetail.Id && m.PalletNo == model.PalletNo); + var bindId = 0; + if (bind == null) + { + bind = new BllPalletBind + { + ASNNo = arrDetail.ASNNo, + ASNDetailNo = arrDetail.Id, + PalletNo = model.PalletNo, + PalletNo2 = "", + PalletNo3 = "", + Qty = 0, + FullQty = pNum, + Status = "2",//鍏ュ簱瀹屾垚 + Type = "0", + LotNo = pinBoxLotNo, + LotText = arrDetail.LotText, + SupplierLot = arrDetail.SupplierLot, + //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + BitPalletMark = "1", + IsBale = "0", + IsBelt = "0", + CreateUser = userId, + Demo = model.Demo, + }; + // 鎻掑叆鎵樼洏缁戝畾琛� + bindId = Db.Insertable(bind).ExecuteReturnIdentity(); + } + else + { + bindId = bind.Id; + } + #endregion + + #region 搴撳瓨鏄庣粏鍜岃川妫�淇℃伅 + //鑾峰彇璇ユ壒娆℃渶缁堣川妫�缁撴灉 + BllQualityInspect quality = new BllQualityInspect(); + //鍒ゆ柇鏄惁涓洪��璐у叆搴撳崟 + if (arrNotice.Type == "3") + { + quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.ASNNo == arrDetail.ASNNo && a.SkuNo == arrDetail.SkuNo && a.LotNo == arrDetail.LotNo).OrderByDescending(a => a.CreateTime).First(); + } + else + { + quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == arrDetail.SkuNo && a.LotNo == arrDetail.LotNo).OrderByDescending(a => a.CreateTime).First(); + } + var tags = "0"; + if (arrNotice.Type == "3" || arrNotice.Type == "4") + { + tags = "1"; + } + + // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� + var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNDetailNo == arrDetail.Id && m.PalletNo == model.PalletNo); + var sdId1 = 0; + if (sd1 != null) + { + sdId1 = sd1.Id; + // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 + sd1.Qty = bind.Qty; + sd1.CompleteTime = comTime; + sd1.UpdateUser = userId; + sd1.UpdateTime = comTime; + + Db.Updateable(sd1).ExecuteCommand(); + } + else + { + // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 + sd1 = new DataStockDetail() + { + LotNo = pinBoxLotNo, + LotText = notBoxInfoList[0].LotText, + SupplierLot = bind.SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + Qty = bind.Qty, + LockQty = 0, + FrozenQty = 0, + InspectQty = 0, + ASNNo = arrDetail.ASNNo, + ASNDetailNo = arrDetail.Id, + WareHouseNo = "",//鎵�灞炰粨搴� + RoadwayNo = "",//鎵�灞炲贩閬� + AreaNo = "",//鎵�灞炲尯鍩� + LocatNo = "",//鍌ㄤ綅鍦板潃 + PalletNo = bind.PalletNo, + PalletNo2 = bind.PalletNo2, + PalletNo3 = bind.PalletNo3, + PalletTags = tags, + CompleteTime = comTime, + ProductionTime = bind.ProductionTime, + ExpirationTime = bind.ExpirationTime, + Status = "0", + InspectMark = bind.InspectMark, + InspectStatus = sku.IsInspect, + BitPalletMark = bind.BitPalletMark, + PackagNo = arrDetail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮� + IsBale = bind.IsBale, + IsBelt = bind.IsBelt, + + IsDel = "0", + CreateUser = 0, + CreateTime = comTime + }; + + //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� + if (arrNotice.Type == "0" || arrNotice.Type == "2" || arrNotice.Type == "4" || arrNotice.Type == "6" || arrNotice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 + { + sd1.OwnerNo = arrNotice.CustomerNo;//璐т富缂栫爜 + sd1.OwnerName = arrNotice.CustomerName;//璐т富鍚嶇О + } + else if (arrNotice.Type == "1" || arrNotice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 + { + sd1.SupplierNo = arrNotice.CustomerNo;//渚涘簲鍟嗙紪鐮� + sd1.SupplierName = arrNotice.CustomerName;//渚涘簲鍟嗗悕绉� + } + if (quality != null) + { + //淇敼鍚堟牸涓嶅悎鏍兼暟閲� + if (quality.IsQualified == "1") //鍚堟牸 + { + //澧炲姞鍚堟牸鏁伴噺 + quality.PassQty += bind.Qty; + sd1.InspectStatus = "1"; + } + else if (quality.IsQualified == "0") //涓嶅悎鏍� + { + //澧炲姞涓嶅悎鏍兼暟閲� + quality.FailQty += bind.Qty; + sd1.InspectStatus = "2"; + } + Db.Updateable(quality).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 + } + //娣诲姞搴撳瓨鏄庣粏 + sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + } + #endregion + + // 鏇存敼绠辨敮鍏崇郴琛� + decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲� + var isSample = "0";//鏄惁鍙栨牱 + var sampleQty = 0m;//鍙栨牱鏁伴噺 + + //鏍囩缁勬墭 + var boxGroup = notBoxInfoList.GroupBy(m => m.BoxNo).ToList(); + foreach (var g in boxGroup) + { + decimal boxFullQty = 0;//绠卞唴鎬绘暟閲� + foreach (var box in g) + { + if (box.BindNo != null && box.BindNo != 0) + { + continue; + } + //绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎 + if (box.SkuNo != arrDetail.SkuNo || box.LotNo != arrDetail.LotNo) + { + throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!"); + } + + box.ASNNo = arrDetail.ASNNo; + box.ASNDetailNo = arrDetail.Id; + box.BindNo = bindId; + box.PalletNo = model.PalletNo; + box.Status = "2"; + //box.InspectMark = model.IsSample; //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + //box.SamplingQty = 0; //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + box.CompleteTime = comTime; + box.UpdateTime = comTime; + box.UpdateUser = userId; + + //box.Qty = box.Qty; + //box.BitBoxMark = box.Qty == box.FullQty ? "0" : "1"; + + factQty += box.Qty; + boxFullQty += box.Qty; + if (box.InspectMark == "1") //鍒ゆ柇鏄惁鍙栨牱 + { + isSample = "1"; + sampleQty += (decimal)box.SamplingQty; + } + + #region 搴撳瓨绠辩爜鏄庣粏 + var box2 = new DataBoxInfo() + { + StockDetailId = sdId1, + BindNo = bind.Id, + BoxNo = box.BoxNo, + BoxNo2 = box.BoxNo2, + BoxNo3 = box.BoxNo3, + PalletNo = box.PalletNo, + PalletNo2 = box.PalletNo2, + PalletNo3 = box.PalletNo3, + Qty = box.Qty, + FullQty = box.FullQty, + Status = "2",//0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 + LotNo = box.LotNo, + LotText = box.LotText, + SkuNo = box.SkuNo, + SkuName = box.SkuName, + Standard = sku.Standard, + ProductionTime = box.ProductionTime, + SupplierLot = box.SupplierLot, + InspectStatus = sku.IsInspect, + InspectMark = box.InspectMark, + BitBoxMark = box.BitBoxMark, + ExpirationTime = box.ExpirationTime, + + CreateUser = 0, + CreateTime = comTime + }; + //娣诲姞搴撳瓨绠辩爜鏄庣粏 + Db.Insertable(box2).ExecuteCommand(); + #endregion + } + if (boxFullQty > bNum) + { + throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒"); + } + } + //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭� + Db.Updateable(boxInfoList).ExecuteCommand(); + + // 鏇存柊鎵樼洏缁戝畾琛� + bind.Qty += factQty; + + if (bind.FullQty < bind.Qty) + { + throw new Exception("鎵樼洏缁戝畾鏁伴噺宸茶秴鍑鸿鐗╂枡鍖呰鏁伴噺"); + } + + if (bind.FullQty == bind.Qty) + { + bind.BitPalletMark = "0"; + sd1.BitPalletMark = "0"; + } + if (bind.Qty > pNum) + { + throw new Exception($"缁戝畾澶辫触锛寋bind.PalletNo}鎵樼洏缁戝畾鏁伴噺澶т簬璇ョ墿鍝佹墭鐩樺寘瑁呮暟閲忥紒"); + } + + if (isSample == "1") + { + bind.InspectMark = "1"; + bind.SamplingQty = bind.SamplingQty == null ? sampleQty : bind.SamplingQty + sampleQty; + } + Db.Updateable(bind).Where(m => m.Id == bindId).ExecuteCommand(); + + #region 鍏ュ簱鍗曞強鏄庣粏 + arrDetail.FactQty += factQty;//宸茬粍鏁伴噺 + arrDetail.CompleteQty += factQty;//瀹屾垚鏁伴噺 + if (isSample == "1") //鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�兼敼涓哄垽鏂槸鍚﹀彇鏍� + { + arrDetail.IsSampling = "1"; + } + arrDetail.Status = "1";//0锛氱瓑寰呮墽琛� 1锛氭鍦ㄦ墽琛� 2锛氭墽琛屽畬鎴� + if (arrDetail.CompleteQty >= arrDetail.Qty) + { + arrDetail.Status = "2"; + arrDetail.CompleteTime = comTime; + } + arrDetail.UpdateUser = userId; + arrDetail.UpdateTime = comTime; + //鏇存柊鍏ュ簱鍗曟槑缁� + Db.Updateable(arrDetail).ExecuteCommand(); + + arrNotice.UpdateUser = userId; + arrNotice.UpdateTime = comTime; + if (arrNotice.Status == "0") + { + arrNotice.Status = "1"; + } + var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>().Count(m => m.IsDel == "0" && m.ASNNo == arrDetail.ASNNo && m.Status != "2"); + if (asnDetailNum == 0) + { + arrNotice.Status = "2";//鎵ц瀹屾垚 + arrNotice.CompleteTime = comTime;//瀹屾垚鏃堕棿 + } + //鏇存柊鍏ュ簱鍗� + Db.Updateable(arrNotice).ExecuteCommand(); + #endregion + + #region 搴撳瓨鏄庣粏 + sd1.Qty = bind.Qty; + //鏇存敼搴撳瓨鏄庣粏鏁伴噺 + Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand(); + #endregion + + #region 搴撳瓨 + var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo); + if (dataStock != null) + { + dataStock.Qty += factQty; + + if (bind.InspectMark == "1") + { + dataStock.IsSampling = bind.InspectMark; + } + Db.Updateable(dataStock).ExecuteCommand(); + } + else + { + var stock = new DataStock() + { + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + LotNo = bind.LotNo, + LotText = bind.LotText, + Qty = bind.Qty, + LockQty = 0, + FrozenQty = 0, + IsSampling = bind.InspectMark, + IsDel = "0", + CreateUser = userId, + CreateTime = comTime + }; + //缁存姢搴撳瓨璐т富淇℃伅 + if (arrNotice.Type == "0" || arrNotice.Type == "2" || arrNotice.Type == "4" || arrNotice.Type == "6" || arrNotice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 + { + stock.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 + stock.OwnerName = notice.CustomerName;//璐т富鍚嶇О + } + Db.Insertable(stock).ExecuteCommand(); + } + #endregion + + #region 璐ㄦ璇烽獙 + if ((arrNotice.Type == "1" || arrNotice.Type == "4" || arrNotice.Type == "5") && sku.IsInspect != "1") + { + var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); + if (qualityRequest == null) + { + string qcNo = new Common().GetMaxNo("QC"); + qualityRequest = new BllQualityInspectionRequest(); + qualityRequest.QcNo = qcNo; + qualityRequest.Status = "0"; + qualityRequest.SkuNo = sku.SkuNo; + qualityRequest.SkuName = sku.SkuName; + qualityRequest.LotNo = bind.LotNo; + qualityRequest.SupplierLot = bind.SupplierLot; + qualityRequest.Qty = arrDetail.Qty; + qualityRequest.SamplingQty = 0; + qualityRequest.ASNNo = arrDetail.ASNNo; + qualityRequest.CreateUser = userId; + qualityRequest.CreateTime = comTime; + //娣诲姞璐ㄦ璇烽獙鍗� + Db.Insertable(qualityRequest).ExecuteCommand(); + } + } + #endregion + } + } + // 鏇存敼鎵樼洏浣跨敤鐘舵�� + var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{model.PalletNo}';"; + //娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� + 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}銆亄msgStr}鐨勭粍鐩樹俊鎭�", userId); + + //鎻愪氦浜嬪姟 + Db.CommitTran(); + } + catch (Exception e) + { + //鍥炴粴浜嬪姟 + Db.RollbackTran(); + throw new Exception(e.Message); + } + } + + /// <summary> + /// 缁戝畾鎵樼洏 涓嶈创鏍囩墿鏂� + /// </summary> + /// <param name="model"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> + public void BindPalletNoPasteCode(PdaPalletBindVm model, int userId) + { + try + { + #region 鍒ゆ柇 + + //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 8锛氱敓浜ч��鏂欏叆搴� + + + if (string.IsNullOrEmpty(model.AsnNo)) + { + throw new Exception("鍗曟嵁鍙蜂笉鍙负绌�!"); + } + if (model.AsnDetailId == null || model.AsnDetailId == 0) + { + throw new Exception("鐗╂枡涓嶅彲涓虹┖!"); + } + if (string.IsNullOrEmpty(model.PalletNo)) + { + throw new Exception("鎵樼洏鍙蜂笉鍙负绌�!"); + } + if (model.SkuQty < 0) + { + throw new Exception("鐗╂枡鏁伴噺涓嶈兘灏忎簬0!"); + } + //鏍规嵁鍗曟嵁鍙疯幏鍙栧叆搴撳崟鎬诲崟 + var notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo); + if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2") + { + throw new Exception("璇ュ崟鎹凡鍏冲崟!"); + } + + if (string.IsNullOrEmpty(model.LotNo)) + { + throw new Exception("鐗╂枡鎵规涓嶄负绌�!"); + } + else + { + //浠庣墿鏂欏悕绉�-鎵规涓彇鍑烘壒娆� + int indexOfDash = model.LotNo.IndexOf("-"); + if (indexOfDash != -1) + { + model.LotNo = model.LotNo.Substring(indexOfDash + 1); + } + else + { + throw new Exception("鐗╂枡鎵规涓嶅彲涓虹┖!"); + } + } + + //鎵樼洏鏄惁瀛樺湪 + var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); + if (pallet == null) + { + throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅锛岃鏍稿疄锛�"); + } + // 楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦� + var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo)); + if (detail == null) + { + throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!"); + } + //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱澶� + var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); + if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo)) + { + throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝璇锋牳瀹烇紒"); + } + if (stockDetail != null && (stockDetail.SkuNo != detail.SkuNo || stockDetail.LotNo != model.LotNo)) + { + throw new Exception("璇ユ墭鐩樺湪搴撳瓨宸叉湁鍏跺畠鐗╂枡鎵规淇℃伅锛岃鏍稿疄锛�"); + } + + #endregion + + #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 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}鐗╁搧鍖呰鏈壘鍒帮紒"); + } + + #endregion + + #region 楠岃瘉鏄惁鍏佽绔嬪簱鍚屾墭鐩樹笉鍚岀墿鏂欏叆搴撴垨鍚屾墭鐩樺悓鐗╂枡涓嶅悓鎵规鍏ュ簱 + //var palletBind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNNo == model.AsnNo && m.PalletNo == model.PalletNo && m.ASNDetailNo != model.AsnDetailId); + //if (palletBind != null) + //{ + // var box = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.BindNo == palletBind.Id && m.BitBoxMark == "0"); + // if (box != null && (box.SkuNo != detail.SkuNo || !detail.LotNo.Contains(box.LotNo))) + // { + // var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "Fun045"); + // if (funSetting == null || funSetting.IsEnable == "OFF") + // { + // throw new Exception($"涓嶅厑璁哥珛搴撳悓鎵樼洏涓嶅悓鐗╂枡鍏ュ簱鎴栧悓鎵樼洏涓嶅悓鎵规鍏ュ簱锛�"); + // } + // } + //} + #endregion + + var comTime = DateTime.Now; + + #region 缁勬墭淇℃伅 + + var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailId && m.PalletNo == model.PalletNo); + var bindId = 0; + if (bind == null) + { + DateTime? pTime = null;//鐢熶骇鏃ユ湡 + DateTime? eTime = null;//澶辨晥鏃ユ湡 + if (!string.IsNullOrWhiteSpace(detail.Lot1)) + { + pTime = DateTime.Parse(detail.Lot1); + } + if (!string.IsNullOrWhiteSpace(detail.Lot2)) + { + eTime = DateTime.Parse(detail.Lot2); + } + + + bind = new BllPalletBind + { + ASNNo = model.AsnNo, + ASNDetailNo = (int)model.AsnDetailId, + PalletNo = model.PalletNo, + + Qty = model.SkuQty, + FullQty = pNum, + Status = "2",//鍏ュ簱瀹屾垚 + Type = "0", + LotNo = model.LotNo, + LotText = detail.LotText, + SupplierLot = detail.SupplierLot, + //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 + ProductionTime = pTime, + ExpirationTime = eTime, + BitPalletMark = "1", + IsBale = "0", + IsBelt = "0", + CreateUser = userId, + Demo = model.Demo, + + }; + // 鎻掑叆鎵樼洏缁戝畾琛� + bindId = Db.Insertable(bind).ExecuteReturnIdentity(); + } + else + { + bindId = bind.Id; + bind.Qty += model.SkuQty; + } + if (bind.Qty < 0) + { + throw new Exception("缁勬墭鏁伴噺涓嶈兘灏忎簬0"); + } + + #endregion + + #region 搴撳瓨鏄庣粏 + //鑾峰彇璇ユ壒娆℃渶缁堣川妫�缁撴灉 + BllQualityInspect quality = new BllQualityInspect(); + //鍒ゆ柇鏄惁涓洪��璐у叆搴撳崟 + if (notice.Type == "3") + { + quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.ASNNo == detail.ASNNo && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); + } + else + { + quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); + } + var tags = "0"; + if (notice.Type == "3" || notice.Type == "4") + { + tags = "1"; + } + + // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� + var sd1 = Db.Queryable<DataStockDetail>() + .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.LotNo == bind.LotNo); + var sdId1 = 0; + if (sd1 != null) + { + sdId1 = sd1.Id; + // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 + sd1.Qty = bind.Qty; + sd1.CompleteTime = comTime; + sd1.UpdateUser = userId; + sd1.UpdateTime = comTime; + + Db.Updateable(sd1).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 + } + else + { + string inspectStatusStr = "0"; + if (sku.IsInspect == "1") + { + inspectStatusStr = "1"; + } + + // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 + sd1 = new DataStockDetail() + { + LotNo = bind.LotNo, + LotText = bind.LotText, + SupplierLot = bind.SupplierLot, + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + Qty = bind.Qty, + LockQty = 0, + FrozenQty = 0, + InspectQty = 0, + ASNNo = bind.ASNNo, + ASNDetailNo = bind.ASNDetailNo, + WareHouseNo = "",//鎵�灞炰粨搴� + RoadwayNo = "",//鎵�灞炲贩閬� + AreaNo = "",//鎵�灞炲尯鍩� + LocatNo = "",//鍌ㄤ綅鍦板潃 + PalletNo = bind.PalletNo, + PalletNo2 = bind.PalletNo2, + PalletNo3 = bind.PalletNo3, + PalletTags = tags, + CompleteTime = comTime, + ProductionTime = bind.ProductionTime, + ExpirationTime = bind.ExpirationTime, + Status = "0", + InspectMark = bind.InspectMark, + InspectStatus = inspectStatusStr, + BitPalletMark = bind.BitPalletMark, + PackagNo = detail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮� + IsBale = bind.IsBale, + IsBelt = bind.IsBelt, + + IsDel = "0", + CreateUser = 0, + CreateTime = comTime + }; + + //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� //0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 + if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7") + { + sd1.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 + sd1.OwnerName = notice.CustomerName;//璐т富鍚嶇О + } + else if (notice.Type == "1" || notice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 + { + sd1.SupplierNo = notice.CustomerNo;//渚涘簲鍟嗙紪鐮� + sd1.SupplierName = notice.CustomerName;//渚涘簲鍟嗗悕绉� + } + if (quality != null) + { + //淇敼鍚堟牸涓嶅悎鏍兼暟閲� + if (quality.IsQualified == "1") //鍚堟牸 + { + //澧炲姞鍚堟牸鏁伴噺 + quality.PassQty += bind.Qty; + sd1.InspectStatus = "1"; + } + else if (quality.IsQualified == "0") //涓嶅悎鏍� + { + //澧炲姞涓嶅悎鏍兼暟閲� + quality.FailQty += bind.Qty; + sd1.InspectStatus = "2"; + } + Db.Updateable(quality).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 + } + //娣诲姞搴撳瓨鏄庣粏 + sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); + } + #endregion + + + + #region 鏇存敼缁勬墭淇℃伅 + + var isSample = "0";//鏄惁鍙栨牱 + var sampleQty = 0m;//鍙栨牱鏁伴噺 + + + //if (bind.FullQty < bind.Qty && isTextTable == 0) + if (bind.FullQty < bind.Qty) + { + throw new Exception("鎵樼洏缁戝畾鏁伴噺宸茶秴鍑鸿鐗╂枡鍖呰鏁伴噺"); + } + + if (bind.FullQty == bind.Qty) + { + bind.BitPalletMark = "0"; + sd1.BitPalletMark = "0"; + } + //if (bind.Qty > pNum && isTextTable == 0) + if (bind.Qty > pNum) + { + throw new Exception($"缁戝畾澶辫触锛寋bind.PalletNo}鎵樼洏缁戝畾鏁伴噺澶т簬璇ョ墿鍝佹墭鐩樺寘瑁呮暟閲忥紒"); + } + + if (isSample == "1") + { + bind.InspectMark = "1"; + bind.SamplingQty = bind.SamplingQty == null ? sampleQty : bind.SamplingQty + sampleQty; + } + Db.Updateable(bind).Where(m => m.Id == bindId).ExecuteCommand(); + + #endregion + + #region 鍏ュ簱鍗曞強鏄庣粏 + decimal addQty = model.SkuQty; + + detail.FactQty += addQty;//宸茬粍鏁伴噺 + detail.CompleteQty += addQty;//瀹屾垚鏁伴噺 + if (isSample == "1") //鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�兼敼涓哄垽鏂槸鍚﹀彇鏍� + { + detail.IsSampling = "1"; + } + detail.Status = "1";//0锛氱瓑寰呮墽琛� 1锛氭鍦ㄦ墽琛� 2锛氭墽琛屽畬鎴� + if (detail.CompleteQty >= detail.Qty) + { + detail.Status = "2"; + detail.CompleteTime = comTime; + } + detail.UpdateUser = userId; + detail.UpdateTime = comTime; + //鏇存柊鍏ュ簱鍗曟槑缁� + Db.Updateable(detail).ExecuteCommand(); + + notice.UpdateUser = userId; + notice.UpdateTime = comTime; + if (notice.Status == "0") + { + notice.Status = "1"; + } + var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>() + .Count(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo && m.Status != "2"); + if (asnDetailNum == 0) + { + notice.Status = "2"; + notice.CompleteTime = comTime;//瀹屾垚鏃堕棿 + } + //鏇存柊鍏ュ簱鍗� + Db.Updateable(notice).ExecuteCommand(); + #endregion + + #region 搴撳瓨鏄庣粏 + sd1.Qty = bind.Qty; + //鏇存敼搴撳瓨鏄庣粏鏁伴噺 + Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand(); + #endregion + + #region 搴撳瓨 + var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo); + if (dataStock != null) + { + dataStock.Qty += model.SkuQty; + + + if (bind.InspectMark == "1") + { + dataStock.IsSampling = bind.InspectMark; + } + Db.Updateable(dataStock).ExecuteCommand(); + } + else + { + var stock = new DataStock() + { + SkuNo = sku.SkuNo, + SkuName = sku.SkuName, + Standard = sku.Standard, + LotNo = bind.LotNo, + LotText = bind.LotText, + Qty = bind.Qty, + LockQty = 0, + FrozenQty = 0, + IsSampling = bind.InspectMark, + IsDel = "0", + CreateUser = userId, + CreateTime = comTime + }; + //缁存姢搴撳瓨璐т富淇℃伅 + if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 + { + stock.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 + stock.OwnerName = notice.CustomerName;//璐т富鍚嶇О + } + Db.Insertable(stock).ExecuteCommand(); + } + #endregion + + #region 璐ㄦ璇烽獙 + if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1") + { + var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); + if (qualityRequest == null) + { + string qcNo = new Common().GetMaxNo("QC"); + qualityRequest = new BllQualityInspectionRequest(); + qualityRequest.QcNo = qcNo; + qualityRequest.Status = "0"; + qualityRequest.SkuNo = sku.SkuNo; + qualityRequest.SkuName = sku.SkuName; + qualityRequest.LotNo = bind.LotNo; + qualityRequest.SupplierLot = bind.SupplierLot; + qualityRequest.Qty = detail.Qty; + qualityRequest.SamplingQty = 0; + qualityRequest.ASNNo = detail.ASNNo; + qualityRequest.CreateUser = userId; + qualityRequest.CreateTime = comTime; + //娣诲姞璐ㄦ璇烽獙鍗� + Db.Insertable(qualityRequest).ExecuteCommand(); + } + } + #endregion + + // 鏇存敼鎵樼洏浣跨敤鐘舵�� + var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{model.PalletNo}';"; + //娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� + 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); + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + /// <summary> + /// 鑾峰彇闇�瑕佽创鏍囩鐨勫叆搴撳崟 鍗曟嵁鍙烽泦鍚� + /// </summary> + /// <returns></returns> + public List<string> GetPasteAsnNoStrList() + { + try + { + var item = Expressionable.Create<BllArrivalNoticeDetail>() + .AndIF(true, it => it.IsDel == "0") + .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� + + var modelList = Db.Queryable<BllArrivalNoticeDetail>().Where(item) + .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo && tb2.IsDel == "0" && (tb1.Status == "0" || tb1.Status == "1")) + .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo && tb3.IsDel == "0" && tb3.IsPasteCode == "1") + .Select((tb1, tb2, tb3) => tb1.ASNNo).Distinct().ToList(); + + return modelList; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + /// <summary> + /// 鑾峰彇涓嶉渶瑕佽创鏍囩鐨勫叆搴撳崟 鍗曟嵁鍙烽泦鍚� + /// </summary> + /// <returns></returns> + public List<string> GetNoPasteAsnNoStrList() + { + try + { + var item = Expressionable.Create<BllArrivalNoticeDetail>() + .AndIF(true, it => it.IsDel == "0") + .ToExpression();//娉ㄦ剰 杩欎竴鍙� 涓嶈兘灏� + + var modelList = Db.Queryable<BllArrivalNoticeDetail>().Where(item) + .LeftJoin<BllArrivalNotice>((tb1, tb2) => tb1.ASNNo == tb2.ASNNo && tb2.IsDel == "0" && (tb2.Status == "0" || tb2.Status == "1")) + .LeftJoin<SysMaterials>((tb1, tb2, tb3) => tb1.SkuNo == tb3.SkuNo && tb3.IsDel == "0" && tb3.IsPasteCode == "0") + .Select((tb1, tb2, tb3) => tb1.ASNNo).Distinct().ToList(); + + return modelList; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + /// <summary> + /// 鏍规嵁鍗曟嵁鍙疯幏鍙栧崟鎹槑缁嗗垪琛� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public List<ArrivalNoticeDetailDto> GetBindArrivalNoticeDetails(ArrivalNoticeVm model) { string sqlString = string.Empty; try { - // 鏈叧鍗曠殑鍗曟嵁 - sqlString = $"select * from BllArrivalNotice where Type in ({model.Type}) and Status != '3' and Status != '4' and IsDel='0' order by CreateTime;"; - var modelList = Db.Ado.SqlQuery<ArrivalNoticeDto>(sqlString); + sqlString = $"select * from BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' and isdel='0' order by CreateTime;"; + var modelList = Db.Ado.SqlQuery<ArrivalNoticeDetailDto>(sqlString); + List<ArrivalNoticeDetailDto> noticeList = new List<ArrivalNoticeDetailDto>(); + foreach (var item in modelList) + { + if (string.IsNullOrEmpty(item.LotNo)) + { + noticeList.Add(item); + } + else + { + string[] LotNoList = item.LotNo.Split(';'); + foreach (var item2 in LotNoList) + { + ArrivalNoticeDetailDto entry = new ArrivalNoticeDetailDto() + { + Id = item.Id, + ASNNo = item.ASNNo, + CompleteQty = item.CompleteQty, + CompleteTime = item.CompleteTime, + CreateTime = item.CreateTime, + Qty = item.Qty, + FactQty = item.FactQty, + LotNo = item2, + Money = item.Money, + PackagNo = item.PackagNo, + PackagName = item.PackagName, + Status = item.Status, + SkuNo = item.SkuNo, + SkuName = item.SkuName, + }; - return modelList; + + noticeList.Add(entry); + } + } + } + List<ArrivalNoticeDetailDto> list = new List<ArrivalNoticeDetailDto>(); + foreach (var item in noticeList) + { + string str = BySkuNoGetPackInfo(item.SkuNo); + if (str == "璐存爣") + { + list.Add(item); + } + } + + return list; } catch (Exception ex) { @@ -46,24 +1695,11 @@ } } - //鏍规嵁鍏ュ簱鍗曞彿鑾峰彇鍏ュ簱鎬诲崟淇℃伅 - public List<BllArrivalNotice> GetArrivalNotice(ArrivalNoticeVm model) - { - string sqlString = string.Empty; - try - { - sqlString = $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isdel='0' "; - var modelList = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString); - - return modelList; - } - catch (Exception ex) - { - throw ex; - } - } - - // 鏍规嵁鍗曟嵁鍙疯幏鍙栧崟鎹槑缁嗗垪琛� + /// <summary> + /// 鏍规嵁鍗曟嵁鍙疯幏鍙栧崟鎹槑缁嗗垪琛� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> public List<ArrivalNoticeDetailDto> GetArrivalNoticeDetails(ArrivalNoticeVm model) { string sqlString = string.Empty; @@ -90,7 +1726,11 @@ } } - // 鏍规嵁鍗曟嵁鏄庣粏ID鑾峰彇鏄庣粏璇︽儏 + /// <summary> + /// 鏍规嵁鍗曟嵁鏄庣粏ID鑾峰彇鏄庣粏璇︽儏 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> public ArrivalNoticeDetailDto GetArrivalNoticeDetail(ArrivalNoticeDetailVm model) { string sqlString = string.Empty; @@ -129,6 +1769,142 @@ throw ex; } } + + /// <summary> + /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model) + { + try + { + if (string.IsNullOrEmpty(model.BoxNo)) + { + throw new Exception("璇锋壂鎻忓绠辨潯鐮�!"); + } + string sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo = '{model.BoxNo}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + + if (models.Count == 0) + { + throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); + } + + return models; + } + catch (Exception ex) + { + throw ex; + } + } + + /// <summary> + /// 鏍规嵁绠辩爜鍚戣拷婧郴缁熻姹傛爣绛剧鐮佷俊鎭� + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + public List<BoxInfoDto> GetFMBindBoxInfos(string boxno) + { + try + { + #region 绠辩爜璇锋眰鎺ュ彛锛屾寮忕郴缁熸斁寮� + /*var jsonData = JsonConvert.SerializeObject(boxno); + + var response = HttpHelper.DoPost(url, jsonData, "绠辩爜淇℃伅璇锋眰", "FM"); + + var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.Success != 0) + { + throw new Exception("璇锋眰澶辫触" + obj.Message); + }*/ + #endregion + string sqlString = $@"SELECT + ASNNo, + BoxNo, + SkuNo, + SkuName, + LotNo, + BitBoxMark, + SUM(Qty) as Qty + FROM BllBoxInfo + WHERE IsDel = '0' + AND Status='0' + AND BoxNo = '{boxno}' + GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; + var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); // response + + if (models.Count == 0) + { + throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); + } + + return models; + } + catch (Exception ex) + { + throw ex; + } + } + + + #endregion + + + + + + + + // 鑾峰彇鍗曟嵁鍒楄〃 + public List<ArrivalNoticeDto> GetArrivalNotices(ArrivalNoticeVm model) + { + string sqlString = string.Empty; + try + { + // 鏈叧鍗曠殑鍗曟嵁 + sqlString = $"select * from BllArrivalNotice where Type in ({model.Type}) and Status != '3' and Status != '4' and IsDel='0' order by CreateTime;"; + var modelList = Db.Ado.SqlQuery<ArrivalNoticeDto>(sqlString); + + return modelList; + } + catch (Exception ex) + { + throw ex; + } + } + + //鏍规嵁鍏ュ簱鍗曞彿鑾峰彇鍏ュ簱鎬诲崟淇℃伅 + public List<BllArrivalNotice> GetArrivalNotice(ArrivalNoticeVm model) + { + string sqlString = string.Empty; + try + { + sqlString = $"select * from BllArrivalNotice where ASNNo = '{model.ASNNo}' and isdel='0' "; + var modelList = Db.Ado.SqlQuery<BllArrivalNotice>(sqlString); + + return modelList; + } + catch (Exception ex) + { + throw ex; + } + } + + + /// <summary> /// 楠岃瘉鎵樼洏鏄惁瀛樺湪 @@ -1884,156 +3660,9 @@ } #region 浜у搧缁勬墭 - /// <summary> - /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model) - { - try - { - if (string.IsNullOrEmpty(model.BoxNo)) - { - throw new Exception("璇锋壂鎻忓绠辨潯鐮�!"); - } - string sqlString = $@"SELECT - ASNNo, - BoxNo, - SkuNo, - SkuName, - LotNo, - BitBoxMark, - SUM(Qty) as Qty - FROM BllBoxInfo - WHERE IsDel = '0' - AND Status='0' - AND BoxNo = '{model.BoxNo}' - GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; - var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); + - if (models.Count == 0 ) - { - throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); - } - - return models; - } - catch (Exception ex) - { - throw ex; - } - } - - /// <summary> - /// 鏍规嵁绠辩爜鍚戣拷婧郴缁熻姹傛爣绛剧鐮佷俊鎭� - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - public List<BoxInfoDto> GetFMBindBoxInfos(string boxno) - { - try - { - #region 绠辩爜璇锋眰鎺ュ彛锛屾寮忕郴缁熸斁寮� - /*var jsonData = JsonConvert.SerializeObject(boxno); - - var response = HttpHelper.DoPost(url, jsonData, "绠辩爜淇℃伅璇锋眰", "FM"); - - var obj = JsonConvert.DeserializeObject<ErpModel>(response);//瑙f瀽杩斿洖鏁版嵁 - if (obj.Success != 0) - { - throw new Exception("璇锋眰澶辫触" + obj.Message); - }*/ - #endregion - string sqlString = $@"SELECT - ASNNo, - BoxNo, - SkuNo, - SkuName, - LotNo, - BitBoxMark, - SUM(Qty) as Qty - FROM BllBoxInfo - WHERE IsDel = '0' - AND Status='0' - AND BoxNo = '{boxno}' - GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo,BitBoxMark; "; - var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); // response - - if (models.Count == 0) - { - throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); - } - - return models; - } - catch (Exception ex) - { - throw ex; - } - } - - // 鏍规嵁鍗曟嵁鍙疯幏鍙栧崟鎹槑缁嗗垪琛� - public List<ArrivalNoticeDetailDto> GetBindArrivalNoticeDetails(ArrivalNoticeVm model) - { - string sqlString = string.Empty; - try - { - sqlString = $"select * from BllArrivalNoticeDetail where ASNNo = '{model.ASNNo}' and isdel='0' order by CreateTime;"; - var modelList = Db.Ado.SqlQuery<ArrivalNoticeDetailDto>(sqlString); - List<ArrivalNoticeDetailDto> noticeList = new List<ArrivalNoticeDetailDto>(); - foreach (var item in modelList) - { - if (string.IsNullOrEmpty(item.LotNo)) - { - noticeList.Add(item); - } - else - { - string[] LotNoList = item.LotNo.Split(';'); - foreach (var item2 in LotNoList) - { - ArrivalNoticeDetailDto entry = new ArrivalNoticeDetailDto() - { - Id = item.Id, - ASNNo = item.ASNNo, - CompleteQty = item.CompleteQty, - CompleteTime = item.CompleteTime, - CreateTime = item.CreateTime, - Qty = item.Qty, - FactQty = item.FactQty, - LotNo = item2, - Money = item.Money, - PackagNo = item.PackagNo, - PackagName = item.PackagName, - Status = item.Status, - SkuNo = item.SkuNo, - SkuName = item.SkuName, - }; - - - noticeList.Add(entry); - } - } - } - List<ArrivalNoticeDetailDto> list = new List<ArrivalNoticeDetailDto>(); - foreach (var item in noticeList) - { - string str = BySkuNoGetPackInfo(item.SkuNo); - if (str == "璐存爣") - { - list.Add(item); - } - } - - return list; - } - catch (Exception ex) - { - throw ex; - } - } - + //鏍规嵁鐗╂枡鑾峰彇鏄惁瀛樺湪鍖呰淇℃伅 public string BySkuNoGetPackInfo(string skuNo) { @@ -3416,1545 +5045,7 @@ } } - //JC26缁戝畾鎵樼洏 璐存爣鐗╂枡 - public void BindPalletPasteCode(PdaPalletBindVm model, int userId) - { - try - { - #region 鍒ゆ柇 - //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� - var TypeLot = "5, 6"; - - if (string.IsNullOrEmpty(model.AsnNo)) - { - throw new Exception("鍗曟嵁鍙蜂笉鍙负绌�!"); - } - if (model.AsnDetailId == null || model.AsnDetailId == 0) - { - throw new Exception("鐗╂枡涓嶅彲涓虹┖!"); - } - if (string.IsNullOrEmpty(model.PalletNo)) - { - throw new Exception("鎵樼洏鍙蜂笉鍙负绌�!"); - } - //鏍规嵁鍗曟嵁鍙疯幏鍙栧叆搴撳崟鎬诲崟 - var notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo); - if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2") - { - throw new Exception("璇ュ崟鎹凡鍏冲崟!"); - } - - if (string.IsNullOrEmpty(model.LotNo)) - { - throw new Exception("鐗╂枡涓嶄负绌�!"); - } - else - { - //浠庣墿鏂欏悕绉�-鎵规涓彇鍑烘壒娆� - int indexOfDash = model.LotNo.IndexOf("-"); - if (indexOfDash != -1) - { - model.LotNo = model.LotNo.Substring(indexOfDash + 1); - } - else - { - throw new Exception("鐗╂枡鎵规涓嶅彲涓虹┖!"); - } - } - - //鍒ゆ柇绠辩爜淇℃伅 - if (string.IsNullOrEmpty(model.BoxNo)) - { - throw new Exception("绠辩爜淇℃伅涓嶅彲涓虹┖!"); - } - //鏄惁杩炵画缁勬墭 0锛氬惁 1锛氭槸 - if (model.IsContinue == "1") - { - if (string.IsNullOrWhiteSpace(model.TailBoxNo)) - { - throw new Exception("寮�鍚繛缁粍鎵樻椂锛屽熬绠辩爜淇℃伅涓嶅彲涓虹┖!"); - } - } - - //鎵樼洏淇℃伅鏄惁瀛樺湪 - var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); - if (pallet == null) - { - throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅锛岃鏍稿疄锛�"); - } - //楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦� - var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo)); - if (detail == null) - { - throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!"); - } - //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱澶� - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); - if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo)) - { - throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝璇锋牳瀹烇紒"); - } - /*if (stockDetail != null && stockDetail.SkuNo != detail.SkuNo) - { - throw new Exception("璇ユ墭鐩樺湪搴撳瓨宸叉湁鍏跺畠鐗╂枡淇℃伅锛岃鏍稿疄锛�"); - }*/ - #endregion - - //寮�鍚簨鍔� - Db.BeginTran(); - //褰撳墠鏃堕棿 - var comTime = DateTime.Now; - - #region 鍖呰 - var package = Db.Queryable<SysPackag>().Where(m => m.IsDel == "0"); - var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo); - var pack = package.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}鐗╁搧鍖呰鏈壘鍒帮紒"); - } - - #endregion - - #region 楠岃瘉鏄惁鍏佽绔嬪簱鍚屾墭鐩樹笉鍚岀墿鏂欏叆搴撴垨鍚屾墭鐩樺悓鐗╂枡涓嶅悓鎵规鍏ュ簱 - var palletBind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNNo == model.AsnNo && m.PalletNo == model.PalletNo && m.ASNDetailNo != model.AsnDetailId); - if (palletBind != null) - { - var box = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.BindNo == palletBind.Id && m.BitBoxMark == "0"); - if (box != null && (box.SkuNo != detail.SkuNo || !detail.LotNo.Contains(box.LotNo))) - { - var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "Fun045"); - if (funSetting == null || funSetting.IsEnable == "OFF") - { - throw new Exception($"涓嶅厑璁哥珛搴撳悓鎵樼洏涓嶅悓鐗╂枡鍏ュ簱鎴栧悓鎵樼洏涓嶅悓鎵规鍏ュ簱锛�"); - } - } - } - #endregion - - #region 绠辩爜淇℃伅 - var msgStr = $"绠卞彿涓簕model.BoxNo}"; - var boxInfoList = new List<BllBoxInfo>(); - - //棣栫 - var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo).ToList(); - if (boxInfo.Count == 0) - { - throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); - } - boxInfoList.AddRange(boxInfo); - //鏄惁杩炵画缁勬墭 - if (model.IsContinue == "1") - { - //灏剧 - var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo).ToList(); - if (boxInfo2.Count == 0) - { - throw new Exception("灏剧鐮佷俊鎭笉瀛樺湪!"); - } - boxInfoList.AddRange(boxInfo2); - var sql = $"select * from BllBoxInfo where IsDel = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; "; - var list = Db.Ado.SqlQuery<BllBoxInfo>(sql); - boxInfoList.AddRange(list); - msgStr += $"灏剧鍙蜂负{model.TailBoxNo}"; - } - //缁戝畾绠辨�绘暟閲� - //model.SkuQty = boxInfoList.Sum(s => s.Qty); - //鍜岄�夋嫨鐨勬壒娆″悓鎵规鐨勭鐮佷俊鎭� - var sameBoxInfoList = boxInfoList.Where(w => w.LotNo == model.LotNo && w.Status == "0").ToList(); - //鍜岄�夋嫨鐨勬壒娆′笉鍚屾壒娆$殑绠辩爜淇℃伅锛堟嫾绠辨壒娆★級 - var notBoxInfoList = boxInfoList.Where(w => w.LotNo != model.LotNo).ToList(); - #endregion - - if (sameBoxInfoList.Count <= 0) - { - throw new Exception("绠辩爜淇℃伅涓嶅瓨鍦�!"); - } - else - { - #region 鎵樼洏缁戝畾淇℃伅 - var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailId && m.PalletNo == model.PalletNo); - var bindId = 0; - if (bind == null) - { - bind = new BllPalletBind - { - ASNNo = model.AsnNo, - ASNDetailNo = (int)model.AsnDetailId, - PalletNo = model.PalletNo, - PalletNo2 = "", - PalletNo3 = "", - Qty = model.SkuQty,//涓嶅寘鍚嫾绠变腑闈炲悓鎵规鏁伴噺 - FullQty = pNum, - Status = "2",//鍏ュ簱瀹屾垚 - Type = "0", - LotNo = model.LotNo, - LotText = detail.LotText, - SupplierLot = detail.SupplierLot, - //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - BitPalletMark = "1", - IsBale = "0", - IsBelt = "0", - CreateUser = userId, - Demo = model.Demo, - }; - // 鎻掑叆鎵樼洏缁戝畾琛� - bindId = Db.Insertable(bind).ExecuteReturnIdentity(); - } - else - { - bindId = bind.Id; - bind.Qty += model.SkuQty; - } - /*if (bind.Qty < 0) - { - throw new Exception("缁勭洏鏁伴噺涓嶈兘灏忎簬0"); - }*/ - #endregion - - #region 搴撳瓨鏄庣粏鍜岃川妫�淇℃伅 - //鑾峰彇璇ユ壒娆℃渶缁堣川妫�缁撴灉 - BllQualityInspect quality = new BllQualityInspect(); - //鍒ゆ柇鏄惁涓洪��璐у叆搴撳崟 - if (notice.Type == "3") - { - quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.ASNNo == detail.ASNNo && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); - } - else - { - quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); - } - var tags = "0"; - if (notice.Type == "3" || notice.Type == "4") - { - tags = "1"; - } - - // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� - var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo); - var sdId1 = 0; - if (sd1 != null) - { - sdId1 = sd1.Id; - // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 - sd1.Qty = bind.Qty; - sd1.CompleteTime = comTime; - sd1.UpdateUser = userId; - sd1.UpdateTime = comTime; - - Db.Updateable(sd1).ExecuteCommand(); - } - else - { - // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 - sd1 = new DataStockDetail() - { - LotNo = bind.LotNo, - LotText = bind.LotText, - SupplierLot = bind.SupplierLot, - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - Qty = bind.Qty, - LockQty = 0, - FrozenQty = 0, - InspectQty = 0, - ASNNo = bind.ASNNo, - ASNDetailNo = bind.ASNDetailNo, - WareHouseNo = "",//鎵�灞炰粨搴� - RoadwayNo = "",//鎵�灞炲贩閬� - AreaNo = "",//鎵�灞炲尯鍩� - LocatNo = "",//鍌ㄤ綅鍦板潃 - PalletNo = bind.PalletNo, - PalletNo2 = bind.PalletNo2, - PalletNo3 = bind.PalletNo3, - PalletTags = tags, - CompleteTime = comTime, - ProductionTime = bind.ProductionTime, - ExpirationTime = bind.ExpirationTime, - Status = "0", - InspectMark = bind.InspectMark, - InspectStatus = sku.IsInspect, - BitPalletMark = bind.BitPalletMark, - PackagNo = detail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮� - IsBale = bind.IsBale, - IsBelt = bind.IsBelt, - - IsDel = "0", - CreateUser = 0, - CreateTime = comTime - }; - - //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� - if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 - { - sd1.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 - sd1.OwnerName = notice.CustomerName;//璐т富鍚嶇О - } - else if (notice.Type == "1" || notice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 - { - sd1.SupplierNo = notice.CustomerNo;//渚涘簲鍟嗙紪鐮� - sd1.SupplierName = notice.CustomerName;//渚涘簲鍟嗗悕绉� - } - if (quality != null) - { - //淇敼鍚堟牸涓嶅悎鏍兼暟閲� - if (quality.IsQualified == "1") //鍚堟牸 - { - //澧炲姞鍚堟牸鏁伴噺 - quality.PassQty += bind.Qty; - sd1.InspectStatus = "1"; - } - else if (quality.IsQualified == "0") //涓嶅悎鏍� - { - //澧炲姞涓嶅悎鏍兼暟閲� - quality.FailQty += bind.Qty; - sd1.InspectStatus = "2"; - } - Db.Updateable(quality).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 - } - //娣诲姞搴撳瓨鏄庣粏 - sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); - } - #endregion - - // 鏇存敼绠辨敮鍏崇郴琛� - decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲� - var isSample = "0";//鏄惁鍙栨牱 - var sampleQty = 0m;//鍙栨牱鏁伴噺 - - //鏍囩缁勬墭 - var boxGroup = sameBoxInfoList.GroupBy(m => m.BoxNo).ToList(); - foreach (var g in boxGroup) - { - decimal boxFullQty = 0;//绠卞唴鎬绘暟閲� - foreach (var box in g) - { - if (box.BindNo != null && box.BindNo != 0) - { - continue; - } - //绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎 - if (box.SkuNo != detail.SkuNo || box.LotNo != model.LotNo) - { - throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!"); - } - - box.ASNNo = model.AsnNo; - box.ASNDetailNo = model.AsnDetailId; - box.BindNo = bindId; - box.PalletNo = model.PalletNo; - box.Status = "2"; - //box.InspectMark = model.IsSample; //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - //box.SamplingQty = 0; //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - box.CompleteTime = comTime; - box.UpdateTime = comTime; - box.UpdateUser = userId; - - //box.Qty = box.Qty; - //box.BitBoxMark = box.Qty == box.FullQty ? "0" : "1"; - - factQty += box.Qty; - boxFullQty += box.Qty; - if (box.InspectMark == "1") //鍒ゆ柇鏄惁鍙栨牱 - { - isSample = "1"; - sampleQty += (decimal)box.SamplingQty; - } - - #region 搴撳瓨绠辩爜鏄庣粏 - var box2 = new DataBoxInfo() - { - StockDetailId = sdId1, - BindNo = bind.Id, - BoxNo = box.BoxNo, - BoxNo2 = box.BoxNo2, - BoxNo3 = box.BoxNo3, - PalletNo = box.PalletNo, - PalletNo2 = box.PalletNo2, - PalletNo3 = box.PalletNo3, - Qty = box.Qty, - FullQty = box.FullQty, - Status = "2",//0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 - LotNo = box.LotNo, - LotText = box.LotText, - SkuNo = box.SkuNo, - SkuName = box.SkuName, - Standard = sku.Standard, - ProductionTime = box.ProductionTime, - SupplierLot = box.SupplierLot, - InspectStatus = sku.IsInspect, - InspectMark = box.InspectMark, - BitBoxMark = box.BitBoxMark, - ExpirationTime = box.ExpirationTime, - - CreateUser = 0, - CreateTime = comTime - }; - //娣诲姞搴撳瓨绠辩爜鏄庣粏 - Db.Insertable(box2).ExecuteCommand(); - #endregion - } - if (boxFullQty > bNum) - { - throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒"); - } - } - //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭� - Db.Updateable(boxInfoList).ExecuteCommand(); - - // 鏇存柊鎵樼洏缁戝畾琛� - bind.Qty += factQty; - - if (bind.FullQty < bind.Qty) - { - throw new Exception("鎵樼洏缁戝畾鏁伴噺宸茶秴鍑鸿鐗╂枡鍖呰鏁伴噺"); - } - - if (bind.FullQty == bind.Qty) - { - bind.BitPalletMark = "0"; - sd1.BitPalletMark = "0"; - } - if (bind.Qty > pNum) - { - throw new Exception($"缁戝畾澶辫触锛寋bind.PalletNo}鎵樼洏缁戝畾鏁伴噺澶т簬璇ョ墿鍝佹墭鐩樺寘瑁呮暟閲忥紒"); - } - - if (isSample == "1") - { - bind.InspectMark = "1"; - bind.SamplingQty = bind.SamplingQty == null ? sampleQty : bind.SamplingQty + sampleQty; - } - Db.Updateable(bind).Where(m => m.Id == bindId).ExecuteCommand(); - - #region 鍏ュ簱鍗曞強鏄庣粏 - detail.FactQty += factQty;//宸茬粍鏁伴噺 - detail.CompleteQty += factQty;//瀹屾垚鏁伴噺 - if (isSample == "1") //鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�兼敼涓哄垽鏂槸鍚﹀彇鏍� - { - detail.IsSampling = "1"; - } - detail.Status = "1";//0锛氱瓑寰呮墽琛� 1锛氭鍦ㄦ墽琛� 2锛氭墽琛屽畬鎴� - if (detail.CompleteQty >= detail.Qty) - { - detail.Status = "2"; - detail.CompleteTime = comTime; - } - detail.UpdateUser = userId; - detail.UpdateTime = comTime; - //鏇存柊鍏ュ簱鍗曟槑缁� - Db.Updateable(detail).ExecuteCommand(); - - notice.UpdateUser = userId; - notice.UpdateTime = comTime; - if (notice.Status == "0") - { - notice.Status = "1"; - } - var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>().Count(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo && m.Status != "2"); - if (asnDetailNum == 0) - { - notice.Status = "2";//鎵ц瀹屾垚 - notice.CompleteTime = comTime;//瀹屾垚鏃堕棿 - } - //鏇存柊鍏ュ簱鍗� - Db.Updateable(notice).ExecuteCommand(); - #endregion - - #region 搴撳瓨鏄庣粏 - sd1.Qty = bind.Qty; - //鏇存敼搴撳瓨鏄庣粏鏁伴噺 - Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand(); - #endregion - - #region 搴撳瓨 - var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo); - if (dataStock != null) - { - dataStock.Qty += factQty; - - if (bind.InspectMark == "1") - { - dataStock.IsSampling = bind.InspectMark; - } - Db.Updateable(dataStock).ExecuteCommand(); - } - else - { - var stock = new DataStock() - { - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - LotNo = bind.LotNo, - LotText = bind.LotText, - Qty = bind.Qty, - LockQty = 0, - FrozenQty = 0, - IsSampling = bind.InspectMark, - IsDel = "0", - CreateUser = userId, - CreateTime = comTime - }; - //缁存姢搴撳瓨璐т富淇℃伅 - if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 - { - stock.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 - stock.OwnerName = notice.CustomerName;//璐т富鍚嶇О - } - Db.Insertable(stock).ExecuteCommand(); - } - #endregion - - #region 璐ㄦ璇烽獙 - if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1") - { - var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); - if (qualityRequest == null) - { - string qcNo = new Common().GetMaxNo("QC"); - qualityRequest = new BllQualityInspectionRequest(); - qualityRequest.QcNo = qcNo; - qualityRequest.Status = "0"; - qualityRequest.SkuNo = sku.SkuNo; - qualityRequest.SkuName = sku.SkuName; - qualityRequest.LotNo = bind.LotNo; - qualityRequest.SupplierLot = bind.SupplierLot; - qualityRequest.Qty = detail.Qty; - qualityRequest.SamplingQty = 0; - qualityRequest.ASNNo = detail.ASNNo; - qualityRequest.CreateUser = userId; - qualityRequest.CreateTime = comTime; - //娣诲姞璐ㄦ璇烽獙鍗� - Db.Insertable(qualityRequest).ExecuteCommand(); - } - } - #endregion - } - //鎷肩 - if (notBoxInfoList.Count > 0) - { - var gbox = notBoxInfoList.GroupBy(g => g.BoxNo).ToList(); - if (gbox.Count > 1) - { - throw new Exception("涓�涓墭鐩樹笂鍙兘鏈�1涓嫾绠�!"); - } - gbox = notBoxInfoList.GroupBy(g => g.LotNo).ToList(); - if (gbox.Count > 1) - { - throw new Exception("涓�涓鍐呮渶澶氳兘鏈�2涓笉鍚屾壒娆$墿鏂�!"); - } - var pinBoxNo = notBoxInfoList[0].BoxNo;//鎷肩绠辩爜 - var pinBoxLotNo = notBoxInfoList[0].LotNo;//鎷肩鎵规鍙� - //鎷肩鏁伴噺(鍜岄�夋嫨鐨勬壒娆′笉鍚屾壒娆$殑绠辩爜鏁伴噺) - decimal pinBoxQty = notBoxInfoList.Sum(s => s.Qty); - - var dataBoxList = Db.Queryable<DataBoxInfo>().Where(w => w.IsDel == "0" && w.BoxNo == pinBoxNo && w.LotNo == pinBoxLotNo).ToList(); - if (dataBoxList.Count > 0)//宸叉湁搴撳瓨 - { - //鍘熸墭鐩樼粦瀹氫俊鎭� - var oldPalletBind = Db.Queryable<BllPalletBind>().First(w => w.Id == notBoxInfoList[0].BindNo); - //鍘熷叆搴撳崟鏄庣粏 - var oldAsnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(w => w.Id == oldPalletBind.ASNDetailNo); - //鍘熷叆搴撳崟 - var oldAsnNotice = Db.Queryable<BllArrivalNotice>().First(w => w.ASNNo == oldAsnDetail.ASNNo); - #region 鎵樼洏缁戝畾淇℃伅 - var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == oldAsnDetail.Id && m.PalletNo == model.PalletNo); - var bindId = 0; - if (bind == null) - { - bind = new BllPalletBind - { - ASNNo = oldAsnDetail.ASNNo, - ASNDetailNo = oldAsnDetail.Id, - PalletNo = model.PalletNo, - PalletNo2 = "", - PalletNo3 = "", - Qty = 0, - FullQty = pNum, - Status = "2",//鍏ュ簱瀹屾垚 - Type = "0", - LotNo = pinBoxLotNo, - LotText = oldAsnDetail.LotText, - SupplierLot = oldAsnDetail.SupplierLot, - //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - BitPalletMark = "1", - IsBale = "0", - IsBelt = "0", - CreateUser = userId, - Demo = model.Demo, - }; - // 鎻掑叆鎵樼洏缁戝畾琛� - bindId = Db.Insertable(bind).ExecuteReturnIdentity(); - } - else - { - bindId = bind.Id; - bind.Qty += pinBoxQty; - - Db.Updateable(bind).ExecuteCommand(); - } - #endregion - - // 鎻掑叆搴撳瓨鏄庣粏鏁版嵁 - var sd1 = new DataStockDetail() - { - LotNo = pinBoxLotNo, - LotText = notBoxInfoList[0].LotText, - SupplierLot = notBoxInfoList[0].SupplierLot, - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - Qty = pinBoxQty, - LockQty = 0, - FrozenQty = 0, - InspectQty = 0, - ASNNo = oldPalletBind.ASNNo, - ASNDetailNo = oldPalletBind.ASNDetailNo, - WareHouseNo = "",//鎵�灞炰粨搴� - RoadwayNo = "",//鎵�灞炲贩閬� - AreaNo = "",//鎵�灞炲尯鍩� - LocatNo = "",//鍌ㄤ綅鍦板潃 - PalletNo = bind.PalletNo, - PalletNo2 = bind.PalletNo2, - PalletNo3 = bind.PalletNo3, - PalletTags = "0", - CompleteTime = comTime, - ProductionTime = oldPalletBind.ProductionTime, - ExpirationTime = oldPalletBind.ExpirationTime, - Status = "0", - InspectMark = oldPalletBind.InspectMark, - InspectStatus = sku.IsInspect, - BitPalletMark = oldPalletBind.BitPalletMark, - PackagNo = oldAsnDetail.PackagNo, - IsBale = oldPalletBind.IsBale, - IsBelt = oldPalletBind.IsBelt, - - IsDel = "0", - CreateUser = 0, - CreateTime = comTime - }; - //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� - if (oldAsnNotice.Type == "0" || oldAsnNotice.Type == "2" || oldAsnNotice.Type == "4" || oldAsnNotice.Type == "6" || oldAsnNotice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 - { - sd1.OwnerNo = oldAsnNotice.CustomerNo;//璐т富缂栫爜 - sd1.OwnerName = oldAsnNotice.CustomerName;//璐т富鍚嶇О - } - else if (oldAsnNotice.Type == "1" || oldAsnNotice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 - { - sd1.SupplierNo = oldAsnNotice.CustomerNo;//渚涘簲鍟嗙紪鐮� - sd1.SupplierName = oldAsnNotice.CustomerName;//渚涘簲鍟嗗悕绉� - } - //娣诲姞搴撳瓨鏄庣粏 - var sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); - foreach (var item in dataBoxList) - { - item.StockDetailId = sdId1;//搴撳瓨鏄庣粏id - item.BindNo = bind.Id;//鎵樼洏缁戝畾id - } - //鏇存柊搴撳瓨绠辨敮鏄庣粏琛� - Db.Updateable(dataBoxList).ExecuteCommand(); - - //鎵樼洏瑙g粦淇℃伅 - var palletUnbind = Db.Queryable<BllPalletUnbind>().First(w => w.IsDel == "0" && w.UpbindPalletNo == oldPalletBind.PalletNo && w.BoxNo == pinBoxNo); - if (palletUnbind == null) - { - throw new Exception("鎷肩鐨勬墭鐩樿В缁戜俊鎭笉瀛樺湪!"); - } - palletUnbind.BindPalletNo = model.PalletNo;//缁戝畾鎵樼洏鍙� - palletUnbind.UpdateTime = comTime; - palletUnbind.UpdateUser = userId; - //鏇存柊鎵樼洏瑙g粦缁戝畾琛ㄤ俊鎭� - Db.Updateable(palletUnbind).ExecuteCommand(); - } - else - { - string sql = $@"SELECT detail.* FROM BllArrivalNoticeDetail as detail - JOIN BllArrivalNotice as notice ON detail.ASNNo=notice.ASNNo - WHERE notice.IsDel='0' - AND ( notice.Status=0 or notice.Status=1 ) - AND detail.IsDel='0' - AND detail.LotNo='{pinBoxLotNo}' - AND detail.SkuNo='{sku.SkuNo}' - ORDER BY detail.CreateTime "; - //鎵惧埌鎷肩鍐呭叾浠栨壒娆℃墍灞炲叆搴撳崟鏄庣粏 - var arrDetail = Db.Ado.SqlQuery<BllArrivalNoticeDetail>(sql).FirstOrDefault(); - if (arrDetail == null) - { - throw new Exception("鎷肩鍐呯墿鏂欐墍灞炲叆搴撳崟鏄庣粏涓嶅瓨鍦�!"); - } - //鎵惧埌鎷肩鍐呭叾浠栨壒娆℃墍灞炲叆搴撳崟 - var arrNotice = Db.Queryable<BllArrivalNotice>().First(w => w.IsDel == "0" && w.ASNNo == arrDetail.ASNNo); - if (arrNotice == null) - { - throw new Exception("鎷肩鍐呯墿鏂欐墍灞炲叆搴撳崟涓嶅瓨鍦�!"); - } - #region 鎵樼洏缁戝畾淇℃伅 - var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == arrDetail.Id && m.PalletNo == model.PalletNo); - var bindId = 0; - if (bind == null) - { - bind = new BllPalletBind - { - ASNNo = arrDetail.ASNNo, - ASNDetailNo = arrDetail.Id, - PalletNo = model.PalletNo, - PalletNo2 = "", - PalletNo3 = "", - Qty = 0, - FullQty = pNum, - Status = "2",//鍏ュ簱瀹屾垚 - Type = "0", - LotNo = pinBoxLotNo, - LotText = arrDetail.LotText, - SupplierLot = arrDetail.SupplierLot, - //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - BitPalletMark = "1", - IsBale = "0", - IsBelt = "0", - CreateUser = userId, - Demo = model.Demo, - }; - // 鎻掑叆鎵樼洏缁戝畾琛� - bindId = Db.Insertable(bind).ExecuteReturnIdentity(); - } - else - { - bindId = bind.Id; - } - #endregion - - #region 搴撳瓨鏄庣粏鍜岃川妫�淇℃伅 - //鑾峰彇璇ユ壒娆℃渶缁堣川妫�缁撴灉 - BllQualityInspect quality = new BllQualityInspect(); - //鍒ゆ柇鏄惁涓洪��璐у叆搴撳崟 - if (arrNotice.Type == "3") - { - quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.ASNNo == arrDetail.ASNNo && a.SkuNo == arrDetail.SkuNo && a.LotNo == arrDetail.LotNo).OrderByDescending(a => a.CreateTime).First(); - } - else - { - quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == arrDetail.SkuNo && a.LotNo == arrDetail.LotNo).OrderByDescending(a => a.CreateTime).First(); - } - var tags = "0"; - if (arrNotice.Type == "3" || arrNotice.Type == "4") - { - tags = "1"; - } - - // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� - var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNDetailNo == arrDetail.Id && m.PalletNo == model.PalletNo); - var sdId1 = 0; - if (sd1 != null) - { - sdId1 = sd1.Id; - // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 - sd1.Qty = bind.Qty; - sd1.CompleteTime = comTime; - sd1.UpdateUser = userId; - sd1.UpdateTime = comTime; - - Db.Updateable(sd1).ExecuteCommand(); - } - else - { - // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 - sd1 = new DataStockDetail() - { - LotNo = pinBoxLotNo, - LotText = notBoxInfoList[0].LotText, - SupplierLot = bind.SupplierLot, - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - Qty = bind.Qty, - LockQty = 0, - FrozenQty = 0, - InspectQty = 0, - ASNNo = arrDetail.ASNNo, - ASNDetailNo = arrDetail.Id, - WareHouseNo = "",//鎵�灞炰粨搴� - RoadwayNo = "",//鎵�灞炲贩閬� - AreaNo = "",//鎵�灞炲尯鍩� - LocatNo = "",//鍌ㄤ綅鍦板潃 - PalletNo = bind.PalletNo, - PalletNo2 = bind.PalletNo2, - PalletNo3 = bind.PalletNo3, - PalletTags = tags, - CompleteTime = comTime, - ProductionTime = bind.ProductionTime, - ExpirationTime = bind.ExpirationTime, - Status = "0", - InspectMark = bind.InspectMark, - InspectStatus = sku.IsInspect, - BitPalletMark = bind.BitPalletMark, - PackagNo = arrDetail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮� - IsBale = bind.IsBale, - IsBelt = bind.IsBelt, - - IsDel = "0", - CreateUser = 0, - CreateTime = comTime - }; - - //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� - if (arrNotice.Type == "0" || arrNotice.Type == "2" || arrNotice.Type == "4" || arrNotice.Type == "6" || arrNotice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 - { - sd1.OwnerNo = arrNotice.CustomerNo;//璐т富缂栫爜 - sd1.OwnerName = arrNotice.CustomerName;//璐т富鍚嶇О - } - else if (arrNotice.Type == "1" || arrNotice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 - { - sd1.SupplierNo = arrNotice.CustomerNo;//渚涘簲鍟嗙紪鐮� - sd1.SupplierName = arrNotice.CustomerName;//渚涘簲鍟嗗悕绉� - } - if (quality != null) - { - //淇敼鍚堟牸涓嶅悎鏍兼暟閲� - if (quality.IsQualified == "1") //鍚堟牸 - { - //澧炲姞鍚堟牸鏁伴噺 - quality.PassQty += bind.Qty; - sd1.InspectStatus = "1"; - } - else if (quality.IsQualified == "0") //涓嶅悎鏍� - { - //澧炲姞涓嶅悎鏍兼暟閲� - quality.FailQty += bind.Qty; - sd1.InspectStatus = "2"; - } - Db.Updateable(quality).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 - } - //娣诲姞搴撳瓨鏄庣粏 - sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); - } - #endregion - - // 鏇存敼绠辨敮鍏崇郴琛� - decimal factQty = 0.00m;//鎵樼洏鎬绘暟閲� - var isSample = "0";//鏄惁鍙栨牱 - var sampleQty = 0m;//鍙栨牱鏁伴噺 - - //鏍囩缁勬墭 - var boxGroup = notBoxInfoList.GroupBy(m => m.BoxNo).ToList(); - foreach (var g in boxGroup) - { - decimal boxFullQty = 0;//绠卞唴鎬绘暟閲� - foreach (var box in g) - { - if (box.BindNo != null && box.BindNo != 0) - { - continue; - } - //绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎 - if (box.SkuNo != arrDetail.SkuNo || box.LotNo != arrDetail.LotNo) - { - throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!"); - } - - box.ASNNo = arrDetail.ASNNo; - box.ASNDetailNo = arrDetail.Id; - box.BindNo = bindId; - box.PalletNo = model.PalletNo; - box.Status = "2"; - //box.InspectMark = model.IsSample; //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - //box.SamplingQty = 0; //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - box.CompleteTime = comTime; - box.UpdateTime = comTime; - box.UpdateUser = userId; - - //box.Qty = box.Qty; - //box.BitBoxMark = box.Qty == box.FullQty ? "0" : "1"; - - factQty += box.Qty; - boxFullQty += box.Qty; - if (box.InspectMark == "1") //鍒ゆ柇鏄惁鍙栨牱 - { - isSample = "1"; - sampleQty += (decimal)box.SamplingQty; - } - - #region 搴撳瓨绠辩爜鏄庣粏 - var box2 = new DataBoxInfo() - { - StockDetailId = sdId1, - BindNo = bind.Id, - BoxNo = box.BoxNo, - BoxNo2 = box.BoxNo2, - BoxNo3 = box.BoxNo3, - PalletNo = box.PalletNo, - PalletNo2 = box.PalletNo2, - PalletNo3 = box.PalletNo3, - Qty = box.Qty, - FullQty = box.FullQty, - Status = "2",//0锛氭湭缁勬墭 1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣 - LotNo = box.LotNo, - LotText = box.LotText, - SkuNo = box.SkuNo, - SkuName = box.SkuName, - Standard = sku.Standard, - ProductionTime = box.ProductionTime, - SupplierLot = box.SupplierLot, - InspectStatus = sku.IsInspect, - InspectMark = box.InspectMark, - BitBoxMark = box.BitBoxMark, - ExpirationTime = box.ExpirationTime, - - CreateUser = 0, - CreateTime = comTime - }; - //娣诲姞搴撳瓨绠辩爜鏄庣粏 - Db.Insertable(box2).ExecuteCommand(); - #endregion - } - if (boxFullQty > bNum) - { - throw new Exception($"缁戝畾澶辫触锛寋g.Key}绠辩爜缁戝畾鏁伴噺澶т簬璇ョ墿鍝佸寘瑁呮暟閲忥紒"); - } - } - //鏇存敼绠辨敮鍏崇郴琛ㄤ俊鎭� - Db.Updateable(boxInfoList).ExecuteCommand(); - - // 鏇存柊鎵樼洏缁戝畾琛� - bind.Qty += factQty; - - if (bind.FullQty < bind.Qty) - { - throw new Exception("鎵樼洏缁戝畾鏁伴噺宸茶秴鍑鸿鐗╂枡鍖呰鏁伴噺"); - } - - if (bind.FullQty == bind.Qty) - { - bind.BitPalletMark = "0"; - sd1.BitPalletMark = "0"; - } - if (bind.Qty > pNum) - { - throw new Exception($"缁戝畾澶辫触锛寋bind.PalletNo}鎵樼洏缁戝畾鏁伴噺澶т簬璇ョ墿鍝佹墭鐩樺寘瑁呮暟閲忥紒"); - } - - if (isSample == "1") - { - bind.InspectMark = "1"; - bind.SamplingQty = bind.SamplingQty == null ? sampleQty : bind.SamplingQty + sampleQty; - } - Db.Updateable(bind).Where(m => m.Id == bindId).ExecuteCommand(); - - #region 鍏ュ簱鍗曞強鏄庣粏 - arrDetail.FactQty += factQty;//宸茬粍鏁伴噺 - arrDetail.CompleteQty += factQty;//瀹屾垚鏁伴噺 - if (isSample == "1") //鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�兼敼涓哄垽鏂槸鍚﹀彇鏍� - { - arrDetail.IsSampling = "1"; - } - arrDetail.Status = "1";//0锛氱瓑寰呮墽琛� 1锛氭鍦ㄦ墽琛� 2锛氭墽琛屽畬鎴� - if (arrDetail.CompleteQty >= arrDetail.Qty) - { - arrDetail.Status = "2"; - arrDetail.CompleteTime = comTime; - } - arrDetail.UpdateUser = userId; - arrDetail.UpdateTime = comTime; - //鏇存柊鍏ュ簱鍗曟槑缁� - Db.Updateable(arrDetail).ExecuteCommand(); - - arrNotice.UpdateUser = userId; - arrNotice.UpdateTime = comTime; - if (arrNotice.Status == "0") - { - arrNotice.Status = "1"; - } - var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>().Count(m => m.IsDel == "0" && m.ASNNo == arrDetail.ASNNo && m.Status != "2"); - if (asnDetailNum == 0) - { - arrNotice.Status = "2";//鎵ц瀹屾垚 - arrNotice.CompleteTime = comTime;//瀹屾垚鏃堕棿 - } - //鏇存柊鍏ュ簱鍗� - Db.Updateable(arrNotice).ExecuteCommand(); - #endregion - - #region 搴撳瓨鏄庣粏 - sd1.Qty = bind.Qty; - //鏇存敼搴撳瓨鏄庣粏鏁伴噺 - Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand(); - #endregion - - #region 搴撳瓨 - var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo); - if (dataStock != null) - { - dataStock.Qty += factQty; - - if (bind.InspectMark == "1") - { - dataStock.IsSampling = bind.InspectMark; - } - Db.Updateable(dataStock).ExecuteCommand(); - } - else - { - var stock = new DataStock() - { - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - LotNo = bind.LotNo, - LotText = bind.LotText, - Qty = bind.Qty, - LockQty = 0, - FrozenQty = 0, - IsSampling = bind.InspectMark, - IsDel = "0", - CreateUser = userId, - CreateTime = comTime - }; - //缁存姢搴撳瓨璐т富淇℃伅 - if (arrNotice.Type == "0" || arrNotice.Type == "2" || arrNotice.Type == "4" || arrNotice.Type == "6" || arrNotice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 - { - stock.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 - stock.OwnerName = notice.CustomerName;//璐т富鍚嶇О - } - Db.Insertable(stock).ExecuteCommand(); - } - #endregion - - #region 璐ㄦ璇烽獙 - if ((arrNotice.Type == "1" || arrNotice.Type == "4" || arrNotice.Type == "5") && sku.IsInspect != "1") - { - var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); - if (qualityRequest == null) - { - string qcNo = new Common().GetMaxNo("QC"); - qualityRequest = new BllQualityInspectionRequest(); - qualityRequest.QcNo = qcNo; - qualityRequest.Status = "0"; - qualityRequest.SkuNo = sku.SkuNo; - qualityRequest.SkuName = sku.SkuName; - qualityRequest.LotNo = bind.LotNo; - qualityRequest.SupplierLot = bind.SupplierLot; - qualityRequest.Qty = arrDetail.Qty; - qualityRequest.SamplingQty = 0; - qualityRequest.ASNNo = arrDetail.ASNNo; - qualityRequest.CreateUser = userId; - qualityRequest.CreateTime = comTime; - //娣诲姞璐ㄦ璇烽獙鍗� - Db.Insertable(qualityRequest).ExecuteCommand(); - } - } - #endregion - } - } - // 鏇存敼鎵樼洏浣跨敤鐘舵�� - var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{model.PalletNo}';"; - //娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� - 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}銆亄msgStr}鐨勭粍鐩樹俊鎭�", userId); - - //鎻愪氦浜嬪姟 - Db.CommitTran(); - } - catch (Exception e) - { - //鍥炴粴浜嬪姟 - Db.RollbackTran(); - throw new Exception(e.Message); - } - } - - //JC26缁戝畾鎵樼洏 涓嶈创鏍囩墿鏂� - public void BindPalletNoPasteCode(PdaPalletBindVm model, int userId) - { - - #region 鍒ゆ柇 - - //0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欏叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� - var TypeLot = "5, 6"; - - if (string.IsNullOrEmpty(model.AsnNo)) - { - throw new Exception("鍗曟嵁鍙蜂笉鍙负绌�!"); - } - if (model.AsnDetailId == null || model.AsnDetailId == 0) - { - throw new Exception("鐗╂枡涓嶅彲涓虹┖!"); - } - if (string.IsNullOrEmpty(model.PalletNo)) - { - throw new Exception("鎵樼洏鍙蜂笉鍙负绌�!"); - } - if (model.SkuQty < 0) - { - throw new Exception("鐗╂枡鏁伴噺涓嶈兘灏忎簬0!"); - } - //鏍规嵁鍗曟嵁鍙疯幏鍙栧叆搴撳崟鎬诲崟 - var notice = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.AsnNo); - if (notice.Status != "0" && notice.Status != "1" && notice.Status != "2") - { - throw new Exception("璇ュ崟鎹凡鍏冲崟!"); - } - - if (string.IsNullOrEmpty(model.LotNo)) - { - throw new Exception("鐗╂枡鎵规涓嶄负绌�!"); - } - else - { - //浠庣墿鏂欏悕绉�-鎵规涓彇鍑烘壒娆� - int indexOfDash = model.LotNo.IndexOf("-"); - if (indexOfDash != -1) - { - model.LotNo = model.LotNo.Substring(indexOfDash + 1); - } - else - { - if (!TypeLot.Contains(notice.Type)) - { - throw new Exception("鐗╂枡鎵规涓嶅彲涓虹┖!"); - } - - model.LotNo = ""; - } - } - - //int isTextTable = model.TableType; - #endregion - - var comTime = DateTime.Now; - - //鎵樼洏鏄惁瀛樺湪 - var pallet = Db.Queryable<SysPallets>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); - if (pallet == null) - { - throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅锛岃鏍稿疄锛�"); - } - // 楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦� - var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo)); - if (detail == null) - { - throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!"); - } - //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱澶� - var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo); - if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo)) - { - throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝璇锋牳瀹烇紒"); - } - if (stockDetail != null && (stockDetail.SkuNo != detail.SkuNo || stockDetail.LotNo != model.LotNo)) - { - throw new Exception("璇ユ墭鐩樺湪搴撳瓨宸叉湁鍏跺畠鐗╂枡鎵规淇℃伅锛岃鏍稿疄锛�"); - } - - #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 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}鐗╁搧鍖呰鏈壘鍒帮紒"); - } - - #endregion - - #region 楠岃瘉鏄惁鍏佽绔嬪簱鍚屾墭鐩樹笉鍚岀墿鏂欏叆搴撴垨鍚屾墭鐩樺悓鐗╂枡涓嶅悓鎵规鍏ュ簱 - var palletBind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNNo == model.AsnNo && m.PalletNo == model.PalletNo && m.ASNDetailNo != model.AsnDetailId); - if (palletBind != null) - { - var box = Db.Queryable<BllBoxInfo>().First(m => m.IsDel == "0" && m.BindNo == palletBind.Id && m.BitBoxMark == "0"); - if (box != null && (box.SkuNo != detail.SkuNo || !detail.LotNo.Contains(box.LotNo))) - { - var funSetting = Db.Queryable<SysFunSetting>().First(a => a.IsDel == "0" && a.FunSetNo == "Fun045"); - if (funSetting == null || funSetting.IsEnable == "OFF") - { - throw new Exception($"涓嶅厑璁哥珛搴撳悓鎵樼洏涓嶅悓鐗╂枡鍏ュ簱鎴栧悓鎵樼洏涓嶅悓鎵规鍏ュ簱锛�"); - } - } - } - #endregion - //liudl && m.Status != "2" 缁勭洏鏃㈠叆搴撳畬鎴愭棤闇�鏍规嵁鎵樼洏鐘舵�佸垽鏂� - var bind = Db.Queryable<BllPalletBind>().First(m => m.IsDel == "0" && m.ASNDetailNo == model.AsnDetailId && m.PalletNo == model.PalletNo); - var bindId = 0; - if (bind == null) - { - DateTime? pTime = null; - DateTime? eTime = null; - if (!string.IsNullOrWhiteSpace(detail.Lot1)) - { - pTime = DateTime.Parse(detail.Lot1); - } - if (!string.IsNullOrWhiteSpace(detail.Lot2)) - { - eTime = DateTime.Parse(detail.Lot2); - } - - - bind = new BllPalletBind - { - ASNNo = model.AsnNo, - ASNDetailNo = (int)model.AsnDetailId, - PalletNo = model.PalletNo, - - Qty = model.SkuQty, - FullQty = pNum, - Status = "2",//鍏ュ簱瀹屾垚 - Type = "0", - LotNo = model.LotNo, - LotText = detail.LotText, - SupplierLot = detail.SupplierLot, - //InspectMark = model.IsSample, //鏄惁鍙栨牱鎵樼洏 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - //SamplingQty = 0, //鍙栨牱鏁伴噺 鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�奸渶娣诲姞瀵瑰簲瀛楁鍒ゆ柇 - ProductionTime = pTime, - ExpirationTime = eTime, - BitPalletMark = "1", - IsBale = "0", - IsBelt = "0", - CreateUser = userId, - Demo = model.Demo, - - }; - // 鎻掑叆鎵樼洏缁戝畾琛� - bindId = Db.Insertable(bind).ExecuteReturnIdentity(); - } - else - { - bindId = bind.Id; - bind.Qty += model.SkuQty; - } - if (bind.Qty < 0) - { - throw new Exception("缁勭洏鏁伴噺涓嶈兘灏忎簬0"); - } - - #region 搴撳瓨鏄庣粏 - //鑾峰彇璇ユ壒娆℃渶缁堣川妫�缁撴灉 - BllQualityInspect quality = new BllQualityInspect(); - //鍒ゆ柇鏄惁涓洪��璐у叆搴撳崟 - if (notice.Type == "3") - { - quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.ASNNo == detail.ASNNo && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); - } - else - { - quality = Db.Queryable<BllQualityInspect>().Where(a => a.IsDel == "0" && a.SkuNo == detail.SkuNo && a.LotNo == detail.LotNo).OrderByDescending(a => a.CreateTime).First(); - } - var tags = "0"; - if (notice.Type == "3" || notice.Type == "4") - { - tags = "1"; - } - - // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭� - var sd1 = Db.Queryable<DataStockDetail>() - .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.LotNo == bind.LotNo); - var sdId1 = 0; - if (sd1 != null) - { - sdId1 = sd1.Id; - // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁 - sd1.Qty = bind.Qty; - sd1.CompleteTime = comTime; - sd1.UpdateUser = userId; - sd1.UpdateTime = comTime; - - Db.Updateable(sd1).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 - } - else - { - string inspectStatusStr = "0"; - if (sku.IsInspect == "1") - { - inspectStatusStr = "1"; - } - - // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁 - sd1 = new DataStockDetail() - { - LotNo = bind.LotNo, - LotText = bind.LotText, - SupplierLot = bind.SupplierLot, - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - Qty = bind.Qty, - LockQty = 0, - FrozenQty = 0, - InspectQty = 0, - ASNNo = bind.ASNNo, - ASNDetailNo = bind.ASNDetailNo, - WareHouseNo = "",//鎵�灞炰粨搴� - RoadwayNo = "",//鎵�灞炲贩閬� - AreaNo = "",//鎵�灞炲尯鍩� - LocatNo = "",//鍌ㄤ綅鍦板潃 - PalletNo = bind.PalletNo, - PalletNo2 = bind.PalletNo2, - PalletNo3 = bind.PalletNo3, - PalletTags = tags, - CompleteTime = comTime, - ProductionTime = bind.ProductionTime, - ExpirationTime = bind.ExpirationTime, - Status = "0", - InspectMark = bind.InspectMark, - InspectStatus = inspectStatusStr, - BitPalletMark = bind.BitPalletMark, - PackagNo = detail.PackagNo, //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮� - IsBale = bind.IsBale, - IsBelt = bind.IsBelt, - - IsDel = "0", - CreateUser = 0, - CreateTime = comTime - }; - - //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� - if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 - { - sd1.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 - sd1.OwnerName = notice.CustomerName;//璐т富鍚嶇О - } - else if (notice.Type == "1" || notice.Type == "5")//1:閲囪喘鍏ュ簱,2:鍏跺畠鍏ュ簱 - { - sd1.SupplierNo = notice.CustomerNo;//渚涘簲鍟嗙紪鐮� - sd1.SupplierName = notice.CustomerName;//渚涘簲鍟嗗悕绉� - } - if (quality != null) - { - //淇敼鍚堟牸涓嶅悎鏍兼暟閲� - if (quality.IsQualified == "1") //鍚堟牸 - { - //澧炲姞鍚堟牸鏁伴噺 - quality.PassQty += bind.Qty; - sd1.InspectStatus = "1"; - } - else if (quality.IsQualified == "0") //涓嶅悎鏍� - { - //澧炲姞涓嶅悎鏍兼暟閲� - quality.FailQty += bind.Qty; - sd1.InspectStatus = "2"; - } - Db.Updateable(quality).ExecuteCommand(); //淇敼璐ㄦ淇℃伅 - } - //娣诲姞搴撳瓨鏄庣粏 - sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity(); - } - #endregion - - - - // 鏇存敼绠辨敮鍏崇郴琛� - - var isSample = "0";//鏄惁鍙栨牱 - var sampleQty = 0m;//鍙栨牱鏁伴噺 - - - //if (bind.FullQty < bind.Qty && isTextTable == 0) - if (bind.FullQty < bind.Qty) - { - throw new Exception("鎵樼洏缁戝畾鏁伴噺宸茶秴鍑鸿鐗╂枡鍖呰鏁伴噺"); - } - - if (bind.FullQty == bind.Qty) - { - bind.BitPalletMark = "0"; - sd1.BitPalletMark = "0"; - } - //if (bind.Qty > pNum && isTextTable == 0) - if (bind.Qty > pNum) - { - throw new Exception($"缁戝畾澶辫触锛寋bind.PalletNo}鎵樼洏缁戝畾鏁伴噺澶т簬璇ョ墿鍝佹墭鐩樺寘瑁呮暟閲忥紒"); - } - - if (isSample == "1") - { - bind.InspectMark = "1"; - bind.SamplingQty = bind.SamplingQty == null ? sampleQty : bind.SamplingQty + sampleQty; - } - Db.Updateable(bind).Where(m => m.Id == bindId).ExecuteCommand(); - - #region 鍏ュ簱鍗曞強鏄庣粏 - decimal addQty = model.SkuQty; - - detail.FactQty += addQty;//宸茬粍鏁伴噺 - detail.CompleteQty += addQty;//瀹屾垚鏁伴噺 - if (isSample == "1") //鍚庢湡涓氬姟寮�鍙戞椂 鎺ュ彛浼犲�兼敼涓哄垽鏂槸鍚﹀彇鏍� - { - detail.IsSampling = "1"; - } - detail.Status = "1";//0锛氱瓑寰呮墽琛� 1锛氭鍦ㄦ墽琛� 2锛氭墽琛屽畬鎴� - if (detail.CompleteQty >= detail.Qty) - { - detail.Status = "2"; - detail.CompleteTime = comTime; - } - detail.UpdateUser = userId; - detail.UpdateTime = comTime; - //鏇存柊鍏ュ簱鍗曟槑缁� - Db.Updateable(detail).ExecuteCommand(); - - notice.UpdateUser = userId; - notice.UpdateTime = comTime; - if (notice.Status == "0") - { - notice.Status = "1"; - } - var asnDetailNum = Db.Queryable<BllArrivalNoticeDetail>() - .Count(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo && m.Status != "2"); - if (asnDetailNum == 0) - { - notice.Status = "2"; - notice.CompleteTime = comTime;//瀹屾垚鏃堕棿 - } - //鏇存柊鍏ュ簱鍗� - Db.Updateable(notice).ExecuteCommand(); - #endregion - - #region 搴撳瓨鏄庣粏 - sd1.Qty = bind.Qty; - //鏇存敼搴撳瓨鏄庣粏鏁伴噺 - Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand(); - #endregion - - #region 搴撳瓨 - var dataStock = Db.Queryable<DataStock>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo); - if (dataStock != null) - { - dataStock.Qty += model.SkuQty; - - - if (bind.InspectMark == "1") - { - dataStock.IsSampling = bind.InspectMark; - } - Db.Updateable(dataStock).ExecuteCommand(); - } - else - { - var stock = new DataStock() - { - SkuNo = sku.SkuNo, - SkuName = sku.SkuName, - Standard = sku.Standard, - LotNo = bind.LotNo, - LotText = bind.LotText, - Qty = bind.Qty, - LockQty = 0, - FrozenQty = 0, - IsSampling = bind.InspectMark, - IsDel = "0", - CreateUser = userId, - CreateTime = comTime - }; - //缁存姢搴撳瓨璐т富淇℃伅 - if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")//0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱 - { - stock.OwnerNo = notice.CustomerNo;//璐т富缂栫爜 - stock.OwnerName = notice.CustomerName;//璐т富鍚嶇О - } - Db.Insertable(stock).ExecuteCommand(); - } - #endregion - - #region 璐ㄦ璇烽獙 - if ((notice.Type == "1" || notice.Type == "4" || notice.Type == "5") && sku.IsInspect != "1") - { - var qualityRequest = Db.Queryable<BllQualityInspectionRequest>().First(m => m.IsDel == "0" && m.SkuNo == sku.SkuNo && m.LotNo == bind.LotNo && m.SupplierLot == bind.SupplierLot); - if (qualityRequest == null) - { - string qcNo = new Common().GetMaxNo("QC"); - qualityRequest = new BllQualityInspectionRequest(); - qualityRequest.QcNo = qcNo; - qualityRequest.Status = "0"; - qualityRequest.SkuNo = sku.SkuNo; - qualityRequest.SkuName = sku.SkuName; - qualityRequest.LotNo = bind.LotNo; - qualityRequest.SupplierLot = bind.SupplierLot; - qualityRequest.Qty = detail.Qty; - qualityRequest.SamplingQty = 0; - qualityRequest.ASNNo = detail.ASNNo; - qualityRequest.CreateUser = userId; - qualityRequest.CreateTime = comTime; - //娣诲姞璐ㄦ璇烽獙鍗� - Db.Insertable(qualityRequest).ExecuteCommand(); - } - } - #endregion - - // 鏇存敼鎵樼洏浣跨敤鐘舵�� - var sqlStr = $"update SysPallets set Status = '1' where PalletNo = '{model.PalletNo}';"; - //娣诲姞鎵樼洏璁板綍琛ㄦ暟鎹� - 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); - } + #endregion diff --git a/Wms/WMS.BLL/Logic/AllotLocation.cs b/Wms/WMS.BLL/Logic/AllotLocation.cs index 9462f76..e21b168 100644 --- a/Wms/WMS.BLL/Logic/AllotLocation.cs +++ b/Wms/WMS.BLL/Logic/AllotLocation.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using System.IO; using System.Linq; using Model.ModelDto.SysDto; using SqlSugar; @@ -7,6 +8,7 @@ using WMS.Entity.BllAsnEntity; using WMS.Entity.Context; using WMS.Entity.DataEntity; +using WMS.Entity.LogEntity; using WMS.Entity.SysEntity; namespace WMS.BLL.Logic @@ -16,6 +18,178 @@ /// </summary> public class AllotLocation { + + + /// <summary> + /// 鑾峰彇瀵嗛泦搴撳悎閫傜殑宸烽亾锛堥�傜敤椤圭洰锛欽C34锛� + /// </summary> + /// <param name="roadways">宸烽亾闆嗗悎</param> + /// <param name="areaList">鍖哄煙闆嗗悎</param> + /// <param name="lotNo">鎵规鍙�</param> + /// <returns></returns> + public string GetMiJiSuiTableRoad(string house, List<string> roadways, List<string> areaList, string sku, string lotNo = "") + { + + var db = DataContext.Db; + + var dataStock = db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.WareHouseNo == house && m.SkuNo == sku); + if (!string.IsNullOrWhiteSpace(lotNo)) + { + dataStock = dataStock.Where(m => m.LotNo == lotNo); + } + //搴撳瓨鏌ユ壘鐩稿悓鐗╂枡/鎵规鐨勫贩閬� + var yiYouRoad = dataStock.GroupBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).OrderBy(m => m).ToList(); + foreach (var l in yiYouRoad) + { + // 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣� + + var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l); + + var bindNum = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.EndRoadway == l) + .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count(); + if (locateCount - bindNum > 0) + { + return l; + } + + } + //鑾峰彇搴撳瓨鍐呭凡鏈夌墿鏂欑殑宸烽亾 + var dataStockRoad = db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.WareHouseNo == house).GroupBy(m => m.RoadwayNo).OrderBy(m => m.RoadwayNo).Select(m => m.RoadwayNo).ToList(); + //鎺掗櫎鎺夊凡鏈夌墿鏂欑殑宸烽亾 + + roadways = roadways.Where(m => !dataStockRoad.Contains(m)).ToList(); + foreach (var l in roadways) + { + var bl = true; + //鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈変换鍔� + var taskList = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && m.EndRoadway == l && (m.Status == "0" || m.Status == "1")).ToList(); + if (taskList.Count > 0) + { + //鍒ゆ柇鐗╂枡鎵规鏄惁鍜屽綋鍓嶄竴鑷� + foreach (var item in taskList) + { + var palletBind = db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.TaskNo == item.TaskNo); + if (palletBind != null) + { + if (palletBind.SkuNo !=sku || palletBind.LotNo != lotNo) + { + bl = false; + continue; + } + + } + } + if (bl) + { + // 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣� + + var locateCount = db.Queryable<SysStorageLocat>().Count(m => m.Status == "0" && m.Flag == "0" && areaList.Contains(m.AreaNo) && m.RoadwayNo == l); + + var bindNum = db.Queryable<LogTask>().Where(m => m.IsDel == "0" && (m.Status == "0" || m.Status == "1") && m.EndRoadway == l) + .GroupBy(m => m.PalletNo).Select(m => m.PalletNo).Count(); + if (locateCount - bindNum > 0) + { + return l; + } + } + } + } + return ""; + + } + + /// <summary> + /// 鑾峰彇瀵嗛泦搴撳悎閫傜殑鍌ㄤ綅锛堥�傜敤椤圭洰锛欽C34锛� + /// </summary> + /// <param name="roadways">宸烽亾闆嗗悎</param> + /// <param name="areaList">鍖哄煙闆嗗悎</param> + /// <param name="lotNo">鎵规鍙�</param> + /// <returns></returns> + public SysStorageLocat GetMiJiSuiTableLocate(SysStorageRoadway roadway, List<string> areaList, string sku, string lotNo = "") + { + + var db = DataContext.Db; + + // 鍒ゆ柇褰撳墠宸烽亾(缁�)鏄惁鏈夌┖浣欏偍浣� + var locateList = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == roadway.RoadwayNo && areaList.Contains(m.AreaNo)).ToList(); + if (locateList.Count(m => m.Status == "0") > 0) + { + var bl = GetLocateASCOrDesc(roadway.RoadwayNo); + + var locate = locateList.OrderBy(m => m.LocatNo).First(); + + if (bl) + { + locate = locateList.OrderByDescending(m => m.LocatNo).First(); + } + var bl2 = MiJiLocateIsOk(locate, bl); //楠岃瘉鍌ㄤ綅鏄惁鍙叆搴撴柟娉� + if (bl2) + { + return locate; + } + } + + + return null; + + } + + /// <summary> + /// 鑾峰彇鍌ㄤ綅鐨勬帓鍒楅『搴� + /// </summary> + /// <param name="roadStr"></param> + /// <returns>true锛歞esc鍊掑簭 false锛歛sc姝e簭</returns> + public bool GetLocateASCOrDesc(string roadStr) + { + var db = DataContext.Db; + + var locate = db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.RoadwayNo == roadStr); + var a = locate.LocatNo.Substring(2,2);//鍌ㄤ綅鍒� + var b = locate.AisleOne.Substring(2, 2);//閫氶亾鍙e垪 + return int.Parse(a) < int.Parse(b); + } + + /// <summary> + /// 楠岃瘉鍌ㄤ綅鏄惁鍙叆搴� + /// </summary> + /// <param name="locate"></param> + /// <returns></returns> + private bool MiJiLocateIsOk(SysStorageLocat locate,bool bl) + { + + var db = DataContext.Db; + var a = int.Parse(locate.LocatNo.Substring(2, 2));//鍌ㄤ綅鍒� + var b = int.Parse(locate.AisleOne.Substring(2, 2));//閫氶亾鍙e垪 + var str1 = new List<string>() { "0", "3", "5" }; + var str2 = new List<string>() { "1", "2", "4" }; + var locatList1 = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == locate.RoadwayNo && m.Column < a).ToList(); + var locatList2 = db.Queryable<SysStorageLocat>().Where(m => m.IsDel == "0" && m.RoadwayNo == locate.RoadwayNo && m.Column > a).ToList(); + if (bl) + { + if (locatList1.Count(m => str1.Contains(m.Status)) > 0) + { + return false; + } + if (locatList2.Count(m => str2.Contains(m.Status)) > 0) + { + return false; + } + } + else + { + if (locatList1.Count(m => str2.Contains(m.Status)) > 0) + { + return false; + } + if (locatList2.Count(m => str1.Contains(m.Status)) > 0) + { + return false; + } + } + return true; + + } + /// <summary> /// 鑾峰彇鍚堥�傜殑搴撲綅 /// </summary> @@ -44,7 +218,7 @@ var dic = db.Queryable<SysDictionary>().First(m => m.Id.ToString() == house.Type); switch (dic.DictName) { - //鏄惁鎸囧畾宸烽亾 + //鎸囧畾宸烽亾 case "绔嬩綋搴�" when !string.IsNullOrWhiteSpace(roadwayNo): { var roadwayList = new List<SysStorageRoadway>(); @@ -81,6 +255,34 @@ if (locate == null) { throw new Exception($"{houseNo}浠撳簱宸插惎鐢ㄧ殑宸烽亾涓病鏈夊悎閫傜殑绌哄偍浣�"); + } + return locate; + } + //鎸囧畾宸烽亾 + case "瀵嗛泦搴�" when !string.IsNullOrWhiteSpace(roadwayNo): + { + var roadwayList = new List<SysStorageRoadway>(); + var roadway = db.Queryable<SysStorageRoadway>().First(m => m.RoadwayNo == roadwayNo); + if (roadway == null) + { + throw new Exception($"鏈煡璇㈠埌{roadwayNo}宸烽亾淇℃伅"); + } + + if (!roadList.Contains(roadwayNo)) + { + throw new Exception("褰撳墠鐗╂枡瀛樻斁鍖哄煙鏈湪鎸囧畾宸烽亾涓�"); + } + if (roadway.Status == "1") + { + throw new Exception($"{roadwayNo}宸烽亾宸插仠鐢�"); + } + + //鏌ヨ璇ュ贩閬撳苟涓旀爣蹇椾负姝e父鐨勭殑鍌ㄤ綅 + roadwayList.Add(roadway); + var locate = GetLocateByRoadways(roadwayList, areaList, true); + if (locate == null) + { + throw new Exception($"{roadwayNo}宸烽亾娌℃湁鍚堥�傜殑绌哄偍浣�"); } return locate; } @@ -340,6 +542,11 @@ } + /// <summary> + /// 楠岃瘉鍌ㄤ綅鏄惁鍙叆搴� + /// </summary> + /// <param name="locate"></param> + /// <returns></returns> private bool LocateIsOk(SysStorageLocat locate) { try diff --git a/Wms/WMS.BLL/SysServer/RolesServer.cs b/Wms/WMS.BLL/SysServer/RolesServer.cs index 6a767ad..45eab58 100644 --- a/Wms/WMS.BLL/SysServer/RolesServer.cs +++ b/Wms/WMS.BLL/SysServer/RolesServer.cs @@ -48,7 +48,7 @@ return await Db.Queryable<SysRoles>() .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) - .WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) + //.WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) .WhereIF(!string.IsNullOrEmpty(RoleNo), a => a.RoleNo.Contains(RoleNo)) .WhereIF(!string.IsNullOrEmpty(RoleName), a => a.RoleName.Contains(RoleName)) .Where(a => a.IsDel == "0") diff --git a/Wms/WMS.BLL/SysServer/UserInforServer.cs b/Wms/WMS.BLL/SysServer/UserInforServer.cs index 29fbd2d..48d461d 100644 --- a/Wms/WMS.BLL/SysServer/UserInforServer.cs +++ b/Wms/WMS.BLL/SysServer/UserInforServer.cs @@ -72,7 +72,7 @@ .WhereIF(!string.IsNullOrEmpty(DepartmentNo), a => a.DepartmentNo == DepartmentNo) .WhereIF(!string.IsNullOrEmpty(RoleNo), a => a.RoleNo == RoleNo) .WhereIF(!string.IsNullOrEmpty(Status), a => a.Status == Status) - .WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) + //.WhereIF(modUser.UserName.ToUpper() != "ADMIN", a => a.CreateUser == _userManager.UserId) .Where(a => a.IsDel == "0") .Select<UserInfoDto>((a, b, c, d) => new UserInfoDto() { diff --git a/Wms/WMS.Entity/BllAsnEntity/BllArrivalNotice.cs b/Wms/WMS.Entity/BllAsnEntity/BllArrivalNotice.cs index a02d136..22a8ac4 100644 --- a/Wms/WMS.Entity/BllAsnEntity/BllArrivalNotice.cs +++ b/Wms/WMS.Entity/BllAsnEntity/BllArrivalNotice.cs @@ -19,8 +19,8 @@ public string ASNNo {get;set;} /// <summary> - /// Desc:鍗曟嵁绫诲瀷 - /// Default: + /// Desc:鍗曟嵁绫诲瀷 + /// Default: 0锛氭垚鍝佸叆搴� 1锛氶噰璐叆搴� 2锛氫腑闂村搧鍏ュ簱 3锛氶��璐у叆搴� 4锛氳溅闂翠綑鏂欓��鍥炲叆搴� 5锛氬叾瀹冨叆搴� 6锛氫唬鍌ㄥ叆搴� 7锛氬瘎瀛樺叆搴� 8 鐢熶骇閫�鏂欏叆搴� /// Nullable:True /// </summary> public string Type {get;set;} diff --git a/Wms/WMS.Entity/SysEntity/SysWareHouse.cs b/Wms/WMS.Entity/SysEntity/SysWareHouse.cs index e163e7b..95b1d85 100644 --- a/Wms/WMS.Entity/SysEntity/SysWareHouse.cs +++ b/Wms/WMS.Entity/SysEntity/SysWareHouse.cs @@ -24,7 +24,7 @@ /// </summary> public string WareHouseName { get; set; } /// <summary> - /// 浠撳簱绫诲瀷 0锛氱珛浣撳簱 1锛氬瘑闆嗗簱 2:骞冲簱 + /// 浠撳簱绫诲瀷 1锛氱珛浣撳簱 2:骞冲簱 3锛氬瘑闆嗗簱 /// Default: /// Nullable:False /// </summary> diff --git a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs index e826d99..3ebb414 100644 --- a/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs +++ b/Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs @@ -12,6 +12,17 @@ { public interface IPdaAsnServer { + #region JC34 + + //鑾峰彇闇�瑕佽创鏍囩鐨勫叆搴撳崟 鍗曟嵁鍙烽泦鍚� + List<string> GetPasteAsnNoStrList(); + //鑾峰彇涓嶉渶瑕佽创鏍囩鐨勫叆搴撳崟 鍗曟嵁鍙烽泦鍚� + List<string> GetNoPasteAsnNoStrList(); + + + #endregion + + // 鑾峰彇鍗曟嵁鍒楄〃 List<ArrivalNoticeDto> GetArrivalNotices(ArrivalNoticeVm model); diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs index b4e38cc..47d4317 100644 --- a/Wms/Wms/Controllers/BllAsnController.cs +++ b/Wms/Wms/Controllers/BllAsnController.cs @@ -185,7 +185,7 @@ } if (strMesage.Contains("-1")) { - return Ok(new { code = 0, msg = "閮ㄥ垎鎴愬姛 " + strMesage }); + return Ok(new { code = 1, msg = "閮ㄥ垎鎴愬姛 " + strMesage }); } else { diff --git a/Wms/Wms/Controllers/PdaAsnController.cs b/Wms/Wms/Controllers/PdaAsnController.cs index d896832..e9c7604 100644 --- a/Wms/Wms/Controllers/PdaAsnController.cs +++ b/Wms/Wms/Controllers/PdaAsnController.cs @@ -17,14 +17,206 @@ [Authorize] public class PdaAsnController : ControllerBase { - #region 渚濊禆娉ㄥ叆 private readonly IPdaAsnServer _PdaAsnSvc; public PdaAsnController(IPdaAsnServer pdaAsnSvc) { _PdaAsnSvc = pdaAsnSvc; } + + + #region JC34 + + //---------------------------------------------缁勬墭鏀惰揣椤甸潰---------------------------------------------------------------------- + + /// <summary> + /// 缁戝畾鎵樼洏 + /// </summary> + /// <param name="model"></param> + /// <returns></returns> + /// <returns></returns> + /// <returns></returns> + [HttpPost] + [UnitOfWork] + public IActionResult BindPallet(PdaPalletBindVm model) + { + var claimsIdentity = this.User.Identity as ClaimsIdentity; + if (claimsIdentity == null) + { + throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); + } + string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; + if (string.IsNullOrWhiteSpace(UserId)) + { + throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); + } + if (model.TableType == 0) + { + _PdaAsnSvc.BindPalletPasteCode(model, int.Parse(UserId)); + } + else if (model.TableType == 1) + { + _PdaAsnSvc.BindPalletNoPasteCode(model, int.Parse(UserId)); + } + + return Ok(new { code = 0, msg = "缁戝畾鎴愬姛!" }); + + } + + /// <summary> + /// 鑾峰彇闇�瑕佽创鏍囩鐨勫叆搴撳崟 鍗曟嵁鍙烽泦鍚� + /// </summary> + /// <returns></returns> + [HttpPost] + public IActionResult GetPasteAsnNoStrList() + { + try + { + var models = _PdaAsnSvc.GetPasteAsnNoStrList(); + + return Ok(new { code = 0, msg = "鍏ュ簱鍗曚俊鎭�", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + /// <summary> + /// 鑾峰彇涓嶉渶瑕佽创鏍囩鐨勫叆搴撳崟 鍗曟嵁鍙烽泦鍚� + /// </summary> + /// <returns></returns> + [HttpPost] + public IActionResult GetNoPasteAsnNoStrList() + { + try + { + var models = _PdaAsnSvc.GetNoPasteAsnNoStrList(); + + return Ok(new { code = 0, msg = "鍏ュ簱鍗曚俊鎭�", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + /// <summary> + /// 鍒ゆ柇鎵樼洏鏄惁鍙敤 + /// </summary> + /// <param name="model">PalletNo锛氭墭鐩樻潯鐮�</param> + /// <returns></returns> + [HttpPost] + public IActionResult IsEnablePalletNo(PalletBindVm model) + { + try + { + var strMsg = _PdaAsnSvc.IsEnablePalletNo(model.PalletNo); + + if (strMsg == "") + { + return Ok(new { code = 0, msg = "鎵樼洏鍙敤!" }); + } + else + { + return Ok(new { code = 1, msg = strMsg }); + } + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + /// <summary> + /// 鏍规嵁鍗曟嵁鍙疯幏鍙栬创鏍囩殑鍏ュ簱鍗曟嵁淇℃伅(ID-鐗╂枡-鎵规) + /// </summary> + /// <param name="model">AsnNo:鍗曟嵁鍙�</param> + /// <returns></returns> + [HttpPost] + public IActionResult GetBindArrivalNoticeDetails(ArrivalNoticeVm model) + { + try + { + var models = _PdaAsnSvc.GetBindArrivalNoticeDetails(model); + + return Ok(new { code = 0, msg = "鍏ュ簱鍗曟槑缁嗕俊鎭�", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + /// <summary> + /// 鏍规嵁鍗曟嵁鍙疯幏鍙栦笉璐存爣鐨勫叆搴撳崟鎹俊鎭�(ID-鐗╂枡-鎵规) + /// </summary> + /// <param name="model">AsnNo:鍗曟嵁鍙�</param> + /// <returns></returns> + [HttpPost] + public IActionResult GetArrivalNoticeDetails(ArrivalNoticeVm model) + { + try + { + var models = _PdaAsnSvc.GetArrivalNoticeDetails(model); + + return Ok(new { code = 0, msg = "鍏ュ簱鍗曟槑缁嗕俊鎭�", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + /// <summary> + /// 鏍规嵁鍏ュ簱鍗曟槑缁咺D鑾峰彇鐗╂枡璇︽儏 锛圥DA鐗╂枡鎵规閫夐」鏁版嵁锛� + /// </summary> + /// <param name="model">Id锛氬叆搴撳崟鏄庣粏ID</param> + /// <returns></returns> + [HttpPost] + public IActionResult GetArrivalNoticeDetail(ArrivalNoticeDetailVm model) + { + try + { + var models = _PdaAsnSvc.GetArrivalNoticeDetail(model); + + return Ok(new { code = 0, msg = "鍏ュ簱鍗曟槑缁嗚缁嗕俊鎭�", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + /// <summary> + /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅 + /// </summary> + /// <param name="model">BoxNo:绠卞彿</param> + /// <returns></returns> + [HttpPost] + public IActionResult GetBindBoxInfos(BoxInfoVm model) + { + try + { + var models = _PdaAsnSvc.GetBindBoxInfos(model); + + return Ok(new { code = 0, msg = "鏍囩绠辩爜淇℃伅", data = models }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + + + //---------------------------------------------缁勬墭鏀惰揣椤甸潰---------------------------------------------------------------------- + + + #endregion + + #region 鍏敤鏂规硶 /// <summary> @@ -67,73 +259,6 @@ { return Ok(new { code = 0, msg = "鍏ュ簱鍗曚俊鎭�", data = models }); } - } - catch (Exception e) - { - return Ok(new { code = 1, msg = e.Message }); - } - } - - /// <summary> - /// 鍒ゆ柇鎵樼洏鏄惁鍙敤 - /// </summary> - /// <param name="model">PalletNo锛氭墭鐩樻潯鐮�</param> - /// <returns></returns> - [HttpPost] - public IActionResult IsEnablePalletNo(PalletBindVm model) - { - try - { - var strMsg = _PdaAsnSvc.IsEnablePalletNo(model.PalletNo); - - if (strMsg == "") - { - return Ok(new { code = 0, msg = "鎵樼洏鍙敤!" }); - } - else - { - return Ok(new { code = 1, msg = strMsg }); - } - } - catch (Exception e) - { - return Ok(new { code = 1, msg = e.Message }); - } - } - - /// <summary> - /// 鑾峰彇鍗曟嵁鏄庣粏鍒楄〃 - /// </summary> - /// <param name="model">AsnNo:鍗曟嵁鍙�</param> - /// <returns></returns> - [HttpPost] - public IActionResult GetArrivalNoticeDetails(ArrivalNoticeVm model) - { - try - { - var models = _PdaAsnSvc.GetArrivalNoticeDetails(model); - - return Ok(new { code = 0, msg = "鍏ュ簱鍗曟槑缁嗕俊鎭�", data = models }); - } - catch (Exception e) - { - return Ok(new { code = 1, msg = e.Message }); - } - } - - /// <summary> - /// 鏍规嵁鏄庣粏ID鑾峰彇鐗╂枡璇︽儏 - /// </summary> - /// <param name="model">Id锛氬叆搴撳崟鏄庣粏ID</param> - /// <returns></returns> - [HttpPost] - public IActionResult GetArrivalNoticeDetail(ArrivalNoticeDetailVm model) - { - try - { - var models = _PdaAsnSvc.GetArrivalNoticeDetail(model); - - return Ok(new { code = 0, msg = "鍏ュ簱鍗曟槑缁嗚缁嗕俊鎭�", data = models }); } catch (Exception e) { @@ -300,10 +425,6 @@ return Ok(new { code = 1, msg = e.Message }); } } - #endregion - - #region 鐢熶骇鍏ュ簱 - #endregion #region 绌烘墭鍏ュ簱 @@ -528,74 +649,7 @@ } #endregion - - #region 缁勬墭 - /// <summary> - /// 鏍规嵁绠辩爜鑾峰彇鏍囩绠辩爜淇℃伅 - /// </summary> - /// <param name="model">BoxNo:绠卞彿</param> - /// <returns></returns> - [HttpPost] - public IActionResult GetBindBoxInfos(BoxInfoVm model) - { - try - { - var models = _PdaAsnSvc.GetBindBoxInfos(model); - - return Ok(new { code = 0, msg = "鏍囩绠辩爜淇℃伅", data = models }); - } - catch (Exception e) - { - return Ok(new { code = 1, msg = e.Message }); - } - } - [HttpPost] - public IActionResult GetBindArrivalNoticeDetails(ArrivalNoticeVm model) - { - try - { - var models = _PdaAsnSvc.GetBindArrivalNoticeDetails(model); - - return Ok(new { code = 0, msg = "鍏ュ簱鍗曟槑缁嗕俊鎭�", data = models }); - } - catch (Exception e) - { - return Ok(new { code = 1, msg = e.Message }); - } - } - - /// <summary> - /// 缁戝畾鎵樼洏 - /// </summary> - /// <param name="model"></param> - /// <returns></returns> - [HttpPost] - [UnitOfWork] - public IActionResult BindPallet(PdaPalletBindVm model) - { - var claimsIdentity = this.User.Identity as ClaimsIdentity; - if (claimsIdentity == null) - { - throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); - } - string UserId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value; - if (string.IsNullOrWhiteSpace(UserId)) - { - throw new Exception("鏈幏鍙栧埌鐢ㄦ埛淇℃伅"); - } - if (model.TableType == 0) - { - _PdaAsnSvc.BindPalletPasteCode(model, int.Parse(UserId)); - } - else if (model.TableType == 1) - { - _PdaAsnSvc.BindPalletNoPasteCode(model, int.Parse(UserId)); - } - - return Ok(new { code = 0, msg = "缁戝畾鎴愬姛!" }); - - } - #endregion + #region 骞冲簱鍏ュ簱 /// <summary> -- Gitblit v1.8.0