From 89b2a1e44a4c4a244eb885c5f8dd802147dd03ee Mon Sep 17 00:00:00 2001 From: Demo <Demo@DESKTOP-CPA90BF> Date: 星期五, 02 二月 2024 11:18:26 +0800 Subject: [PATCH] Merge branch 'csc' --- Wms/WMS.Entity/BllAsnEntity/BllLabelBoxNo.cs | 21 + Wms/WMS.IBLL/IBllAsnServer/IBllLabelBoxNoServer.cs | 43 ++ Wms/Wms/Controllers/BllAsnController.cs | 15 HTML/views/ASNSetting/ArrivalNotice.html | 18 Wms/Model/ModelDto/BllAsnDto/LabelBoxDto.cs | 10 Wms/WMS.BLL/BllAsnServer/BllLabelBoxNoServer.cs | 625 ++++++++++++++++++++++++++++++++++++ HTML/views/ASNSetting/LabelPrint.html | 116 +++--- HTML/views/ASNSetting/LabelPrintSelect.html | 148 +++++--- 8 files changed, 867 insertions(+), 129 deletions(-) diff --git a/HTML/views/ASNSetting/ArrivalNotice.html b/HTML/views/ASNSetting/ArrivalNotice.html index 3ddf22a..f6fbcab 100644 --- a/HTML/views/ASNSetting/ArrivalNotice.html +++ b/HTML/views/ASNSetting/ArrivalNotice.html @@ -1144,6 +1144,7 @@ //鏄庣粏琛ㄦ搷浣滄爮浜嬩欢 table.on('tool(LAY-app-content-list2)', function (obj) { var data = obj.data; + var id = data.Id; switch(obj.event) { case "del" : @@ -1179,7 +1180,7 @@ title: '鐢熸垚鏍囩', content: 'LabelPrintSelect.html', maxmin: true, - area: ['460px', '460px'], + area: ['480px', '615px'], btn: ['纭畾','鍙栨秷'], yes: function(index, layero){ var iframeWindow = window['layui-layer-iframe'+ index] @@ -1190,20 +1191,13 @@ var field = data.field; //鑾峰彇鎻愪氦鐨勫瓧娈� console.log(field); //鎻愪氦 Ajax 鎴愬姛鍚庯紝闈欐�佹洿鏂拌〃鏍间腑鐨勬暟鎹� - var param = { - Id: data.Id, - Reset: field.reset, //閲嶇疆鎵瑰彿 - Level: field.level, //鏍囩绾у埆 1/2绾� - Type:field.type, //鍏崇郴灞傜骇 鏈�/鏃犲眰绾� - ArriveQty:field.arriveQty, //鍒拌揣鏁伴噺 - BoxType:field.boxType ,// 绠辨敮绫诲瀷 绠�/鏀� - Qty:field.qty //绠�/鏀暟閲� - }; - console.log(param); + //"&Level="+field.level+"&Type="+field.type+"&BoxType="+field.boxType+"&Qty="+field.qty+ + var str = "Id="+id+"&Reset="+field.reset+"&ArriveQty="+field.arriveQty+"&ProductionTime="+field.productionTime+"&ExpirationTime="+field.expirationTime+"&StoreTime="+field.storeTime; + layer.open({ type: 2, title: '鐢熸垚鏍囩', - content: 'LabelPrint.html', + content: 'LabelPrint.html?'+str, maxmin: true, area: ['660px', '660px'], btn: ['鍙栨秷'], diff --git a/HTML/views/ASNSetting/LabelPrint.html b/HTML/views/ASNSetting/LabelPrint.html index c1d7a6b..1704e72 100644 --- a/HTML/views/ASNSetting/LabelPrint.html +++ b/HTML/views/ASNSetting/LabelPrint.html @@ -27,6 +27,16 @@ <body> <div style="width:100%;text-align: center;"> + <div style="padding-top: 10px;text-align: left; margin-left: 5%;" id="button"> + <div class="layui-inline"> + <button id="btnAdd" class="layui-btn layui-btn-sm" lay-event="Add2"><i + class="layui-icon"></i>鐢熸垚鏍囩</button> + </div> + <div class="layui-inline"> + <button id="btnPrint" class="layui-btn layui-btn-sm" lay-event="Add"><i + class="layui-icon"></i>鎵撳嵃</button> + </div> + </div> <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="print" style="width: 100%;height:100%; text-align: right;padding-top: 5px;margin-left: 0%;"> <div> @@ -44,7 +54,7 @@ </tr> <tr> <td>鍝佸悕</td> - <td colspan="3" id="goodName"></td> + <td colspan="3" id="SkuName"></td> </tr> <tr> <td>瑙勬牸/鍨嬪彿</td> @@ -56,7 +66,7 @@ <td>杩涘巶缂栧彿</td> <td style="padding: 1px 0px;"></td> <td>鐗╂枡浠g爜</td> - <td style="padding: 1px 0px;"> </td> + <td id="SkuNo"> </td> </tr> <tr> <td>鍘熷巶鎵瑰彿</td> @@ -80,49 +90,8 @@ </div> <div style="page-break-after: always;"></div> - </div> - <hr> - <div style="padding-top: 10px;text-align: left;" id="button"> - <div class="layui-inline" style="margin-right: 10px;"> - <span style="padding-right: 5px;">鏄惁閲嶇疆鎵规:</span> - <span style="padding-right: 5px;">鏄�</span><input type="radio" checked="true" name="isprint" value="1"> - <span style="padding-right: 5px;">鍚�</span><input type="radio" name="isprint" value="0"> - </div> - <div class="layui-inline"> - 鍒拌揣鏁伴噺锛�<div class="layui-input-inline"> - <input type="text" - oninput="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d).*$/,'$1$2.$3')" - onafterpaste="this.value=this.value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d).*$/,'$1$2.$3')" - name="skuNum" id="skuNum" lay-verify="skuNum" placeholder="" style="width: 100px;" - autocomplete="off" class="layui-input InputCss"> - </div> - </div> - <div class="layui-inline"> - 绠辨爣绛炬暟閲忥細<div class="layui-input-inline"> - <input type="text" onkeyup="this.value=this.value.replace(/^0{1,}/g,'')" - onafterpaste="this.value=this.value.replace(/^0{1,}/g,'')" name="bQNum" id="bQNum" - lay-verify="bQNum" placeholder="" style="width: 100px;" autocomplete="off" - class="layui-input InputCss"> - </div> - </div> - - <div> - <div class="layui-inline" style="padding-top: 5px"> - 涓�绾ф爣绛惧繀褰曞弬鏁帮細绠卞唴鏁伴噺锛�<div class="layui-input-inline"> - <input type="text" - oninput="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d).*$/,'$1$2.$3')" - onafterpaste="this.value=this.value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d).*$/,'$1$2.$3')" - name="number" id="number" lay-verify="number" placeholder="" style="width: 70px;" - autocomplete="off" class="layui-input InputCss"> - </div> - </div> - <div class="layui-inline"> - <button id="btnPrint" class="layui-btn layui-btn-sm" lay-event="Add"><i - class="layui-icon"></i>鎵撳嵃</button> - </div> - </div> - </div> - + </div> + </div> <script src="../../layuiadmin/layui/layui.js"></script> <script src="../../js/public.js"></script> @@ -141,20 +110,22 @@ form = layui.form, layer = layui.layer; var laydate = layui.laydate; - laydate.render({ - elem: '#ProductionDate' - , format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� - }); - laydate.render({ - elem: '#InspectTime' - , format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� - }); - laydate.render({ - elem: '#ExpirationTime' - , format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� - }); - var id = getQueryString('id'); - var xun = 0; + + var id = getQueryString('Id'); + var reset = getQueryString('Reset'); + var arriveQty = getQueryString('ArriveQty'); + + var productionTime = getQueryString('ProductionTime'); + var expirationTime = getQueryString('ExpirationTime'); + var storeTime = getQueryString('StoreTime'); + // var level = getQueryString('Level'); + // var type = getQueryString('Type'); + // var boxType = getQueryString('BoxType'); + // var qty = getQueryString('Qty'); + + console.log(productionTime); + console.log(expirationTime); + console.log(storeTime); $('#btnPrint').on('click', function () { var param = { @@ -204,7 +175,30 @@ id = 0; } else { - div(-1, 1, 0); + var param = { + id: id, + }; + synData(IP + "/BllAsn/GetLabelBoxModel", param , 'get', function (res) { + if (res.code == 0) { //鎴愬姛 + $("#SkuName").html(res.data.SkuName); + $("#Standard").html(res.data.Standard); + $("#PackageStandard").html(res.data.PackageStandard); + $("#SkuNo").html(res.data.SkuNo); + $("#SupplierLot").html(res.data.SupplierLot); + $("#ExpirationTime").html(expirationTime); + $("#StoreTime").html( storeTime); + + // $("#imgBar").attr("src", res.data[0].imageStr); + } else { //涓嶆垚鍔� + layer.msg(res.msg, { + icon: 2, + time: 2000 //2绉掑叧闂紙濡傛灉涓嶉厤缃紝榛樿鏄�3绉掞級 + }, function () { }); + } + }); + + // div(-1, 1, 0); + } @@ -336,7 +330,7 @@ // 鑾峰彇浼犻�掑弬鏁� function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); - var r = window.location.search.substr(1).match(reg); + var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } diff --git a/HTML/views/ASNSetting/LabelPrintSelect.html b/HTML/views/ASNSetting/LabelPrintSelect.html index 31beeec..1b021e4 100644 --- a/HTML/views/ASNSetting/LabelPrintSelect.html +++ b/HTML/views/ASNSetting/LabelPrintSelect.html @@ -10,6 +10,25 @@ </head> <body> <div class="layui-form" lay-filter="layuiadmin-app-form-list" id="layuiadmin-app-form-list" style="padding: 20px 30px 0 0;"> + + <div class="layui-form-item"> + <label class="layui-form-label">鐢熶骇鏃ユ湡</label> + <div class="layui-input-block"> + <input type="text" name="productionTime" id="productionTime" placeholder="璇疯緭鍏ョ敓浜ф棩鏈�" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鏈夋晥鏈熻嚦</label> + <div class="layui-input-block"> + <input type="text" name="expirationTime" id="expirationTime" placeholder="璇疯緭鍏ユ湁鏁堟湡鑷�" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">鍌ㄥ瓨鏈熻嚦</label> + <div class="layui-input-block"> + <input type="text" name="storeTime" id="storeTime" placeholder="璇疯緭鍏ュ偍瀛樻湡鑷�" autocomplete="off" class="layui-input"> + </div> + </div> <div class="layui-form-item"> <label class="layui-form-label">閲嶇疆鎵瑰彿</label> <div class="layui-input-block"> @@ -19,7 +38,7 @@ </select> </div> </div> - <div class="layui-form-item"> + <!-- <div class="layui-form-item"> <label class="layui-form-label">鏍囩绾у埆</label> <div class="layui-input-block"> <select name="level" id="level" lay-filter="levelFil" lay-verify="required"> @@ -36,14 +55,16 @@ <option value="0">鏃犲眰绾�</option> </select> </div> - </div> + </div> --> <div class="layui-form-item"> <label class="layui-form-label">鍒拌揣鏁伴噺</label> <div class="layui-input-block"> - <input type="text" name=arriveQty" id="arriveQty" lay-verify="required" placeholder="璇疯緭鍏ュ贩閬撳悕绉�" autocomplete="off" class="layui-input"> + <input type="text" name="arriveQty" id="arriveQty" lay-verify="required" placeholder="璇疯緭鍏ュ埌璐ф暟閲�" autocomplete="off" class="layui-input" oninput="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3')" + onafterpaste="this.value=this.value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3')"> </div> </div> - <div class="layui-form-item" id="boxTypeDiv" style="display: none;"> + + <!-- <div class="layui-form-item" id="boxTypeDiv" style="display: none;"> <label class="layui-form-label">绠辨敮绫诲瀷</label> <div class="layui-input-block"> <select name="boxType" id="boxType" lay-filter="boxTypeFil" lay-search> @@ -56,9 +77,10 @@ <div class="layui-form-item" id="qtyDiv" style="display: none;"> <label class="layui-form-label">鏁伴噺</label> <div class="layui-input-block"> - <input type="text" name="qty" id="qty" placeholder="璇疯緭鍏ュ贩閬撳悕绉�" autocomplete="off" class="layui-input"> + <input type="text" name="qty" id="qty" placeholder="璇疯緭鍏ユ暟閲�" autocomplete="off" class="layui-input" oninput="value=value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3')" + onafterpaste="this.value=this.value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.').replace(/^(\-)*(\d+)\.(\d\d\d\d).*$/,'$1$2.$3')"> </div> - </div> + </div> --> <div class="layui-form-item layui-hide"> <input type="button" lay-submit lay-filter="layuiadmin-app-form-submit" id="layuiadmin-app-form-submit" value="纭娣诲姞"> <input type="button" lay-submit lay-filter="layuiadmin-app-form-edit" id="layuiadmin-app-form-edit" value="纭缂栬緫"> @@ -75,64 +97,78 @@ base: '../../layuiadmin/' //闈欐�佽祫婧愭墍鍦ㄨ矾寰� }).extend({ index: 'lib/index' //涓诲叆鍙fā鍧� - }).use(['index', 'form', 'layer'], function() { + }).use(['index', 'form', 'layer', 'laydate'], function() { var $ = layui.$; var form = layui.form; var layer = layui.layer; - form.on('select(levelFil)', function(data){ - console.log($("#type").val()); - var type = $("#type").val(); - if (data.value == "1" ) { - $("#boxTypeDiv").css("display","none"); - form.val("layuiadmin-app-form-list", { - "boxType": "" - }); - $("#boxType").removeAttr("lay-verify"); + var laydate = layui.laydate; + laydate.render({ + elem: '#productionTime' + , format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� + }); + laydate.render({ + elem: '#expirationTime' + , format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� + }); + laydate.render({ + elem: '#storeTime' + , format: 'yyyy-MM-dd' //鍙换鎰忕粍鍚� + }); - $("#qtyDiv").css("display","none"); - $("#qty").removeAttr("lay-verify"); - $("#qty").val(""); + // form.on('select(levelFil)', function(data){ + // console.log($("#type").val()); + // var type = $("#type").val(); + // if (data.value == "1" ) { + // $("#boxTypeDiv").css("display","none"); + // form.val("layuiadmin-app-form-list", { + // "boxType": "" + // }); + // $("#boxType").removeAttr("lay-verify"); - form.render('select'); - } - if (data.value == "2" && type == "0") { - $("#boxTypeDiv").css("display","block"); - $("#boxType").attr("lay-verify","required"); + // $("#qtyDiv").css("display","none"); + // $("#qty").removeAttr("lay-verify"); + // $("#qty").val(""); + + // form.render('select'); + // } + // if (data.value == "2" && type == "0") { + // $("#boxTypeDiv").css("display","block"); + // $("#boxType").attr("lay-verify","required"); - } - }); - form.on('select(typeFil)', function(data){ - var level = $("#level").val(); - if (data.value == "1") { - $("#boxTypeDiv").css("display","none"); + // } + // }); + // form.on('select(typeFil)', function(data){ + // var level = $("#level").val(); + // if (data.value == "1") { + // $("#boxTypeDiv").css("display","none"); - form.val("layuiadmin-app-form-list", { - "boxType": "" - }); - $("#boxType").removeAttr("lay-verify"); - - $("#qtyDiv").css("display","none"); - $("#qty").removeAttr("lay-verify"); - $("#qty").val(""); - form.render('select'); - } - if (data.value == "0" && level == "2") { - $("#boxTypeDiv").css("display","block"); - $("#boxType").attr("lay-verify","required"); + // form.val("layuiadmin-app-form-list", { + // "boxType": "" + // }); + // $("#boxType").removeAttr("lay-verify"); - } - }); - form.on('select(boxTypeFil)', function(data){ - if (data.value == "1") { //绠� - $("#qtyDiv").css("display","none"); - $("#qty").removeAttr("lay-verify"); - $("#qty").val(""); - } - if (data.value == "2" ) { - $("#qtyDiv").css("display","block"); - $("#qty").attr("lay-verify","required"); - } - }); + // $("#qtyDiv").css("display","none"); + // $("#qty").removeAttr("lay-verify"); + // $("#qty").val(""); + // form.render('select'); + // } + // if (data.value == "0" && level == "2") { + // $("#boxTypeDiv").css("display","block"); + // $("#boxType").attr("lay-verify","required"); + + // } + // }); + // form.on('select(boxTypeFil)', function(data){ + // if (data.value == "1") { //绠� + // $("#qtyDiv").css("display","none"); + // $("#qty").removeAttr("lay-verify"); + // $("#qty").val(""); + // } + // if (data.value == "2" ) { + // $("#qtyDiv").css("display","block"); + // $("#qty").attr("lay-verify","required"); + // } + // }); }) diff --git a/Wms/Model/ModelDto/BllAsnDto/LabelBoxDto.cs b/Wms/Model/ModelDto/BllAsnDto/LabelBoxDto.cs index 716c14e..83c5d8c 100644 --- a/Wms/Model/ModelDto/BllAsnDto/LabelBoxDto.cs +++ b/Wms/Model/ModelDto/BllAsnDto/LabelBoxDto.cs @@ -18,6 +18,9 @@ public decimal Qty { get; set; } public string SkuNo { get; set; } public string SkuName { get; set; } + public string Standard { get; set; } + public string PackageStandard { get; set; } + public DateTime? StoreTime { get; set; } public string LotNo { get; set; } public string LotText { get; set; } public string SupplierName { get; set; } @@ -41,5 +44,12 @@ public DateTime CreateTime { get; set; } public DateTime? UpdateTime { get; set; } + /// <summary> + /// 鐢熸垚涓�缁寸爜鍥剧墖璺緞 + /// </summary> + public string ImgStr { get; set; } } + + + } diff --git a/Wms/WMS.BLL/BllAsnServer/BllLabelBoxNoServer.cs b/Wms/WMS.BLL/BllAsnServer/BllLabelBoxNoServer.cs index 8309e3f..276afd5 100644 --- a/Wms/WMS.BLL/BllAsnServer/BllLabelBoxNoServer.cs +++ b/Wms/WMS.BLL/BllAsnServer/BllLabelBoxNoServer.cs @@ -1,10 +1,12 @@ 锘縰sing System; using System.Collections.Generic; +using System.Linq; using System.Linq.Expressions; using System.Text; using Model.ModelDto.BllAsnDto; using Model.ModelVm.BllAsnVm; using SqlSugar; +using Utility.Tools; using WMS.DAL; using WMS.Entity.BllAsnEntity; using WMS.Entity.Context; @@ -47,6 +49,9 @@ Qty = a.Qty, SkuNo = a.SkuNo, SkuName = a.SkuName, + Standard = a.Standard, + PackageStandard = a.PackageStandard, + StoreTime = a.StoreTime, LotNo = a.LotNo, LotText = a.LotText, SupplierName = a.SupplierName, @@ -79,5 +84,625 @@ throw new Exception(e.Message); } } + + //鑾峰彇鏍囩妯℃澘鏍规嵁鍏ュ簱鍗曟槑缁咺D + public LabelBoxDto GetLabelBoxModel(int id) + { + try + { + var asnDetail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == id && m.IsDel == "0"); + if (asnDetail == null) + { + throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅锛岃鏍稿疄"); + } + + var packInfo = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnDetail.PackagNo); + if (packInfo == null) + { + throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏涓殑鐗╂枡鍖呰淇℃伅"); + } + + var str = ""; + + if (!string.IsNullOrWhiteSpace(packInfo.L1Name)) + { + str += packInfo.L1Num + "/" + packInfo.L1Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L2Name)) + { + str += "-" + packInfo.L2Num + "/" + packInfo.L2Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L3Name)) + { + str += "-" + packInfo.L3Num + "/" + packInfo.L3Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L4Name)) + { + str += "-" + packInfo.L4Num + "/" + packInfo.L4Name; + } + if (!string.IsNullOrWhiteSpace(packInfo.L5Name)) + { + str += "-" + packInfo.L5Num + "/" + packInfo.L5Name; + } + + + var data = new LabelBoxDto(); + data.SkuNo = asnDetail.SkuNo; + data.SkuName = asnDetail.SkuName; + data.Standard = asnDetail.Standard; + data.SupplierLot = asnDetail.SupplierLot; + data.PackageStandard = str; + return data; + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + //鑾峰彇鏍囩淇℃伅(鐢熸垚鏍囩) + public List<LabelBoxDto> AddLabelBoxReturn(int imId, string isReset,decimal arriveQty, string skuName, string standard, string packStandard, string skuNo, + string supplierLot, string productionTime, string expirationTime, string storeTime, int userId) + { + try + { + #region 蹇呭~楠岃瘉 + + //if (string.IsNullOrWhiteSpace(productionDate)) + //{ + // throw new Exception("鐢熶骇鏃ユ湡闇�蹇呭~锛屼笉鑳戒负绌�"); + //} + + //var twoSeletOne = true;//鏈夋晥鏈熴�佸楠屾湡浜岄�変竴 + //if (string.IsNullOrWhiteSpace(expirationTime)) + //{ + // twoSeletOne = false; + //} + //if (string.IsNullOrWhiteSpace(inspectTime)) + //{ + // twoSeletOne = false; + //} + + //if (twoSeletOne) + //{ + // throw new Exception("鏈夋晥鏈熴�佸楠屾湡鏈�濂藉~鍐欎竴涓�"); + //} + //if (string.IsNullOrWhiteSpace(supplierName)) + //{ + // throw new Exception("鐢熶骇鍘傚闇�蹇呭~锛屼笉鑳戒负绌�"); + //} + //if (string.IsNullOrWhiteSpace(supplierLot)) + //{ + // throw new Exception("鍘傚鎵瑰彿闇�蹇呭~锛屼笉鑳戒负绌�"); + //} + + //if (bQNum <= 0) + //{ + // throw new Exception("澶栫鏍囩鏁伴噺涓嶈兘涓虹┖鎴栧皬浜庣瓑浜�0"); + //} + + #endregion + + #region 鍗曟嵁銆佺墿鏂欍�佸寘瑁呫�佹爣绛句俊鎭幏鍙� + + var asnList = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.Id == imId && m.IsDel == "0"); + if (asnList == null) + { + throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅"); + } + var asn = Db.Queryable<BllArrivalNotice>().First(m => m.ASNNo == asnList.ASNNo && m.IsDel == "0"); + if (asn == null) + { + throw new Exception("鏈煡璇㈠埌鍗曟嵁淇℃伅"); + } + //鐗╂枡 + var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == asnList.SkuNo); + var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == asnList.PackagNo); + if (pack == null) + { + throw new Exception("鏈煡璇㈠埌褰撳墠鍗曟嵁涓墿鏂欑殑鍖呰淇℃伅"); + } + //鏍囩琛� + var label = Db.Queryable<BllLabelBoxNo>().Where(m => m.IsDel == "0" && m.ASNDetailNo == imId).ToList(); + + + #endregion + + #region 鍖呰鏌ヨ + + var bNum = 0;//绠辩墿鍝佹暟閲� + var zNum = 0;//鏀墿鍝佹暟閲� + var packLevel = 0; + var isGo = true; + + if (pack.L5Num.HasValue) + { + if (pack.L5Name != "鎵�") + { + isGo = false; + packLevel = 5; + bNum = Convert.ToInt32(pack.L5Num); + } + } + if (pack.L4Num.HasValue && isGo) + { + if (pack.L4Name != "鎵�") + { + isGo = false; + packLevel = 4; + bNum = Convert.ToInt32(pack.L4Num); + } + } + if (pack.L3Num.HasValue && isGo) + { + if (pack.L4Name != "鎵�") + { + isGo = false; + packLevel = 3; + bNum = Convert.ToInt32(pack.L3Num); + } + } + if (pack.L2Num.HasValue) + { + packLevel = 2; + bNum = Convert.ToInt32(pack.L2Num); + + } + if (pack.L1Num.HasValue) + { + if (packLevel == 0) + { + packLevel = 1; + bNum = Convert.ToInt32(pack.L1Num); + } + zNum = Convert.ToInt32(pack.L1Num); + } + + if (packLevel <= 1)//鍖呰绛夌骇灏忎簬1锛屾寜鐓�1绾ф爣绛炬墦鍗� + { + packLevel = 1; + } + + #endregion + + if (packLevel == 1) + { + #region 涓�绾у寘瑁� + + // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁� + var labQty = label.Sum(m => m.Qty); + var qty = asnList.Qty - labQty;//褰撳墠鍗曟嵁鍓╀綑闇�瑕佹墦鍗扮殑鐗╂枡鏁伴噺(涓嶆槸鏍囩鏁伴噺) + if (qty <= 0) + { + throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦"); + } + + #region 鍒拌揣鏁伴噺 + + if (arriveQty - qty > 0) + { + throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺骞舵牳瀹�!"); + } + else + { + qty = arriveQty; + } + + #endregion + + int labelNum = 1; //鐢熶骇鏉$爜鏁伴噺 + if (zNum > 0) + { + labelNum = int.Parse(Math.Ceiling(qty / zNum).ToString());//鏍囩鏁伴噺 + } + else + { + throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏄竴绾у寘瑁咃紝鏈煡璇㈠埌涓�绾у寘瑁呬俊鎭�"); + } + + #region 鑾峰彇/鐢熸垚鎵规鍙� + + string maxLotNoStr = ""; //鎵规鍙� + string maxBoxCode = ""; //绠辩爜鍙� + // 鐢熸垚鑷紪鎵瑰彿 + string toDayTime = DateTime.Now.ToString("yyyyMMdd"); + var diJiJian = 0; + + var maxLotNo = label.Max(a => a.LotNo); + var maxBoxNo = label.Max(a => a.BoxNo); + if (isReset == "0") + { + + maxLotNoStr = maxLotNo; + maxBoxCode = maxBoxNo; + if (string.IsNullOrWhiteSpace(maxLotNoStr)) + { + maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; + } + } + else + { + var maxCode = Db.Queryable<BllLabelBoxNo>().Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 + if (string.IsNullOrWhiteSpace(maxCode)) + { + maxLotNoStr = toDayTime.Substring(2, 6) + "0001"; + } + else + { + var lotStr = maxCode.Substring(0, 6); + var timeStr = toDayTime.Substring(2, 6); + if (lotStr == timeStr) + { + maxLotNoStr = toDayTime.Substring(2, 6) + (int.Parse(maxCode.Substring(6, 4)) + 1).ToString().PadLeft(4, '0'); + } + else + { + maxLotNoStr = timeStr + "0001"; + } + + } + } + + #endregion + + var modelList = new List<LabelBoxDto>(); + + for (int i = 1; i <= labelNum; i++) + { + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + LabelBoxDto model = new LabelBoxDto(); + model.AsnDetailNo = imId; + model.SkuNo = asnList.SkuNo; + model.SkuName = asnList.SkuName; + + model.SupplierName = asn.CustomerName; // 渚涘簲鍟� + + model.Standard = asnList.Standard; // 瑙勬牸 + model.PackageStandard = packStandard; + model.SupplierLot = supplierLot; // 鍘傚鎵瑰彿 + model.LotNo = maxLotNoStr; //鎵规 + + model.ProductionTime = DateTime.Parse(productionTime); // 鐢熶骇鏃ユ湡 + model.StoreTime = DateTime.Parse(storeTime); // 鍌ㄥ瓨鏈熻嚦 + model.ExpirationTime = DateTime.Parse(expirationTime); // 鏈夋晥鏈熻嚦/璐瓨鏈� + if (i == labelNum) + { + // 鏈�鍚庝竴涓潯鐮� + var s = zNum * (i - 1); + if (zNum > qty - s) + { + model.Qty = qty - s;// 鏁伴噺 + } + else + { + model.Qty = zNum;// 鏁伴噺 + } + } + else + { + model.Qty = zNum; // 鏁伴噺 + } + + + if (maxBoxCode == "") + { + var str = model.LotNo + "000001"; + model.BoxNo = str; // 鏀彿 鎵瑰彿+ 娴佹按 2302010001000001 + maxBoxCode = model.BoxNo; + } + else + { + model.BoxNo = maxBoxCode.Substring(0, 10) + (int.Parse(maxBoxCode.Substring(10, 6)) + 1).ToString().PadLeft(6, '0'); + maxBoxCode = model.BoxNo; + } + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 80, 50); + + // 娣诲姞鍒發ist闆嗗悎 + modelList.Add(model); + + // 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� + var labelModel = new BllLabelBoxNo() + { + ASNNo = asnList.ASNNo, + ASNDetailNo = asnList.Id, + BoxNo = model.BoxNo, + ParentBoxNo = "", + Qty = model.Qty, + SkuNo = model.SkuNo, + SkuName = model.SkuName, + Standard = model.Standard, + PackageStandard = model.PackageStandard, + + LotNo = model.LotNo, + SupplierName = asn.CustomerName, + ProductionTime = model.ProductionTime, + SupplierLot = model.SupplierLot, + StoreTime = model.StoreTime, + ExpirationTime = model.ExpirationTime, + IsUse = "0", + Level = "1", + + CreateUser = userId, + CreateTime = DateTime.Now, + }; + + Db.Insertable(labelModel).ExecuteCommand(); + + } + + #endregion + } + else //(packLevel == 2) + { + #region 浜岀骇鍖呰 + + // 鏍规嵁鐢ㄦ埛杈撳叆鐨勭鏁伴噺璁$畻闇�瑕佺殑鏉$爜鏁� + var labQty = label.Sum(m => m.Qty); + var qty2 = asnList.Qty - labQty; + if (qty2 <= 0) + { + throw new Exception("褰撳墠鍗曟嵁鐗╂枡鏍囩宸叉墦鍗板畬姣曪紝濡傛湁闇�瑕佽琛ユ墦"); + } + + #region 澧炲姞鍒拌揣鏁伴噺 + + if (arriveQty - qty2 > 0) + { + throw new Exception("鍒拌揣鏁伴噺澶т簬鏈墦鏍囩鏁伴噺锛岃閲嶆柊杈撳叆鍒拌揣鏁伴噺!"); + } + else + { + qty2 = arriveQty; + } + #endregion + + int labelNum2 = 1; //鐢熶骇绠辨潯鐮佹暟閲� + + labelNum2 = int.Parse(Math.Ceiling(qty2 / bNum).ToString()); + + + + var ss = bNum / zNum; //姣忕鏀爣绛炬暟閲� + var labelNumZ2 = Math.Ceiling((decimal)ss); + + #region 鑾峰彇/鐢熸垚鎵规鍙� + + string maxCodestr2 = ""; //鎵规 + string maxboxcode2 = ""; //绠辩爜 + string maxboxcode3 = ""; //鏀爜 + // 鐢熸垚鑷紪鎵瑰彿 + string toDayTime2 = DateTime.Now.ToString("yyyyMMdd"); + if (isReset == "0") + { + var maxCode = label.Max(a => a.LotNo); + var boxCode1 = label.Where(m=>m.Level == "1").Max(a => a.BoxNo);//绠卞彿 + var boxCode2 = label.Where(m => m.Level == "2").Max(a => a.BoxNo);//鏀彿 + maxCodestr2 = maxCode; + maxboxcode2 = boxCode1; + maxboxcode3 = boxCode2; + if (string.IsNullOrWhiteSpace(maxCodestr2)) + { + maxCodestr2 = toDayTime2.Substring(2, 6) + "0001"; + } + } + else + { + var maxCode = Db.Queryable<BllLabelBoxNo>().Max(a => a.LotNo); // 鑾峰彇浠婂ぉ鏈�澶ф壒娆″彿 + if (string.IsNullOrWhiteSpace(maxCode)) + { + maxCodestr2 = toDayTime2.Substring(2, 6) + "0001"; + } + else + { + var lotStr = maxCode.Substring(0, 6); + var timeStr = toDayTime2.Substring(2, 6); + if (lotStr == timeStr) + { + maxCodestr2 = timeStr + (int.Parse(maxCode.Substring(6, 4)) + 1).ToString().PadLeft(4, '0'); + } + else + { + maxCodestr2 = timeStr + "0001"; + } + + } + } + + #endregion + + var modelList = new List<LabelBoxDto>(); + + for (int i = 1; i <= labelNum2; i++)//绠辩爜鏍囩 + { + // 鐗╂枡鏉$爜淇℃伅璧嬪�� + LabelBoxDto model = new LabelBoxDto(); + model.AsnDetailNo = imId; + model.SkuNo = asnList.SkuNo; + model.SkuName = asnList.SkuName; + + model.Standard = asnList.Standard; // 瑙勬牸 + model.PackageStandard = packStandard; + + model.SupplierLot = supplierLot; // 鍘傚鎵瑰彿 + model.LotNo = maxCodestr2; //鎵规 + + model.ProductionTime = DateTime.Parse(productionTime); // 鐢熶骇鏃ユ湡 + model.StoreTime = DateTime.Parse(storeTime); // 鍌ㄥ瓨鏈熻嚦 + model.ExpirationTime = DateTime.Parse(expirationTime); // 鏈夋晥鏈熻嚦/璐瓨鏈� + if (i == labelNum2) + { + // 鏈�鍚庝竴涓潯鐮� + var s = bNum * (i - 1); + if (bNum > qty2 - s) + { + model.Qty = qty2 - s;// 鏁伴噺 + } + else + { + model.Qty = bNum;// 鏁伴噺 + } + } + else + { + model.Qty = bNum; // 鏁伴噺 + } + + if (maxboxcode2 == "") + { + maxboxcode2 = model.LotNo +"000001"; + model.BoxNo = maxboxcode2; // 绠卞彿 鎵瑰彿+绗嚑绠� + maxboxcode2 = model.BoxNo; + } + else + { + model.BoxNo = maxboxcode2.Substring(0, 10) + (int.Parse(maxboxcode2.Substring(10, 6)) + 1).ToString().PadLeft(6, '0'); + maxboxcode2 = model.BoxNo; + } + model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 80, 50); + + // 娣诲姞鍒發ist闆嗗悎 + modelList.Add(model); + + if (i == labelNum2) + { + var isGo2 = false; + var sl = 0; + for (int j = 1; j <= labelNumZ2; j++) + { + if (isGo2) + { + break; + } + var d = zNum; + if (i == labelNum2) + { + var s = bNum * (i - 1); + var s2 = zNum * (j - 1); + if (zNum >= qty2 - s - s2) + { + d = (int)(qty2 - s - s2); // 鏁伴噺 + isGo2 = true; + } + } + sl++; + } + labelNumZ2 = sl; + } + + for (int j = 1; j <= labelNumZ2; j++)//鏈�灏忓崟浣嶆爣绛� + { + if (isGo) + { + break; + } + var d = zNum; + if (i == labelNum2) + { + var s = bNum * (i - 1); + var s2 = zNum * (j - 1); + if (zNum >= qty2 - s - s2) + { + d = (int)(qty2 - s - s2); // 鏁伴噺 + isGo = true; + } + } + //// 鐗╂枡鏉$爜淇℃伅璧嬪�� + //LabelPrint5Model model2 = new LabelPrint5Model(); + //model2.ImportId = imId; + //model2.OuterBillCode = list.OuterBillCode; + //model2.ImportBillCode = list.ImportBillCode; + //model2.SkuNo = list.GoodsCode; + //model2.SkuName = list.GoodsName; + //model2.QtyCount = (int)labelNumZ2; // 鎬讳欢鏁�(int)labelNumZ2 + + //model2.SupplierName = supplierName; // 鐢熶骇鍘傚 + //model2.ProductionDate = productionDate; // 鐢熶骇鏃ユ湡 + //model2.SapSkuNo = sapNo; // SAP浠g爜 + //model2.Standard = good.GoodsStandard; // 瑙勬牸 + //model2.SupplierLot = supplierLot; // 鍘傚鎵瑰彿 + + //model2.LotNo = maxCodestr2; //鎵规 + + + //model2.InspectTime = inspectTime; // 澶嶉獙鏈熻嚦 + //model2.ExpirationTime = expirationTime; // 鏈夋晥鏈熻嚦/璐瓨鏈� + //model2.ExpirationType = good.GoodsTemp; // 璐瓨鏉′欢 + //model2.Qty = d; // 鏁伴噺 + + //model2.QtyOrd = j; // 绗嚑浠� + //if (maxboxcode3 == "") + //{ + // var str = mesGood.PadRight(16, ' ') + model.LotNo.PadRight(12, ' ') + "0001"; + // model2.BoxCode = str; // 鏀彿 鎵瑰彿+绗嚑绠� + // maxboxcode3 = model2.BoxCode; + //} + //else + //{ + // model2.BoxCode = maxboxcode3.Substring(0, 28) + (int.Parse(maxboxcode3.Substring(28, 4)) + 1).ToString().PadLeft(4, '0'); + // maxboxcode3 = model2.BoxCode; + //} + + //model2.imageStr = Utility.Extra.BarcodeHelper.GetQrCodeBase64(model2.BoxCode, 85, 85); + //// 娣诲姞鍒發ist闆嗗悎 + + //if (printModel.Count(m => m.BoxCode.Length > 17) <= 100)//鎺掗櫎寰呯鐮佸垽鏂敮鐮佹槸鍚﹀皬浜�100 + //{ + // printModel.Add(model2); + //} + //var guid = Guid.NewGuid().ToString("N"); + //// 灏嗘潯鐮佷繚瀛樺埌鍘熸枡鏉$爜琛� + //var LabelModel2 = new LabelPrint + //{ + // LabelID = guid, + // LabelStream = model.BoxCode, + // BoxCode1 = model2.BoxCode, + // GoodsCode = model2.SkuNo, + // GoodsName = model2.SkuName, + // GoodsStandard = model2.Standard, + // ImportLotNo = model2.LotNo, + // SupplierName = model2.SupplierName, + // ImportId = model2.ImportId, + // OuterBillCode = model2.OuterBillCode, + // ImportBillCode = model2.ImportBillCode, + // ProductionDate = model2.ProductionDate, + // SapSkuNo = model2.SapSkuNo, + // Qty = model2.Qty, + // SupplierLot = model2.SupplierLot, + // InspectTime = model2.InspectTime, + // ExpirationTime = model2.ExpirationTime, + // QtyCount = model2.QtyCount, + // QtyOrd = model2.QtyOrd, + // ExpirationType = model2.ExpirationType, + // BoxNum = bNum,//model.Qty, + + // BulkTank = model.Qty == bNum ? 0 : 1,//闆跺ご绠� + // BulkCase = 0,//闆跺ご鐩� + + // CreateUser = createUser, + // CreateTime = DateTime.Now, + // IsUse = 0 + //}; + + //DataContext.LabelPrint.InsertOnSubmit(LabelModel2); + } + + + } + + #endregion + } + + //return printModel; + + + throw new NotImplementedException(); + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + + } } diff --git a/Wms/WMS.Entity/BllAsnEntity/BllLabelBoxNo.cs b/Wms/WMS.Entity/BllAsnEntity/BllLabelBoxNo.cs index c9a9ccf..a3311e5 100644 --- a/Wms/WMS.Entity/BllAsnEntity/BllLabelBoxNo.cs +++ b/Wms/WMS.Entity/BllAsnEntity/BllLabelBoxNo.cs @@ -61,6 +61,27 @@ public string SkuName { get; set; } /// <summary> + /// Desc:鐗╂枡瑙勬牸 + /// Default: + /// Nullable:True + /// </summary> + public string Standard { get; set; } + + /// <summary> + /// Desc:鍖呰瑙勬牸 + /// Default: + /// Nullable:True + /// </summary> + public string PackageStandard { get; set; } + + /// <summary> + /// Desc:鍌ㄥ瓨鏈熻嚦 + /// Default: + /// Nullable:True + /// </summary> + public DateTime? StoreTime { get; set; } + + /// <summary> /// Desc:鎵规鍙� /// Default: /// Nullable:True diff --git a/Wms/WMS.IBLL/IBllAsnServer/IBllLabelBoxNoServer.cs b/Wms/WMS.IBLL/IBllAsnServer/IBllLabelBoxNoServer.cs index be6e45b..136e781 100644 --- a/Wms/WMS.IBLL/IBllAsnServer/IBllLabelBoxNoServer.cs +++ b/Wms/WMS.IBLL/IBllAsnServer/IBllLabelBoxNoServer.cs @@ -16,5 +16,48 @@ /// <param name="count">鏁伴噺</param> /// <returns>鏍囩绠辩爜淇℃伅</returns> List<LabelBoxDto> GetLabelBoxList(LabelBoxVm model, out int count); + + /// <summary> + /// 鑾峰彇鏍囩妯℃澘鏍规嵁鍏ュ簱鍗曟槑缁咺D + /// </summary> + /// <param name="id">鍏ュ簱鍗曟槑缁咺D</param> + /// <returns>鏍囩淇℃伅妯℃澘</returns> + LabelBoxDto GetLabelBoxModel(int id); + + ///// <summary> + ///// 鑾峰彇鐗╂枡鏍囩淇℃伅JC06 + ///// </summary> + ///// <param name="imId"></param> + ///// <param name="isPrint">鏄惁閲嶆柊鐢熸垚鑷湁鎵规 0:鍚� 1:鏄� </param> + ///// <param name="createUser">鍒涘缓浜�</param> + ///// <param name="number">绠卞唴鏁伴噺锛堜竴绾ф爣绛惧繀濉級</param> + ///// <param name="productionDate">鐢熶骇鏃ユ湡</param> + ///// <param name="supplierName">鐢熶骇鍘傚</param> + ///// <param name="supplierLot">鐢熶骇鍘傚鎵瑰彿</param> + ///// <param name="inspectTime">鏈夋晥鏈�</param> + ///// <param name="expirationTime">淇濊川鏈�</param> + ///// <param name="bQNum">澶栫鏍囩鏁伴噺</param> + ///// <param name="skuNum">鍒拌揣鏁伴噺</param> + ///// <returns></returns> + + /// <summary> + /// 鑾峰彇鏍囩淇℃伅(鐢熸垚鏍囩) + /// </summary> + /// <param name="imId">鍏ュ簱鍗曟槑缁咺D</param> + /// <param name="isReset">鏄惁閲嶆柊鐢熸垚鑷湁鎵规 0:鍚� 1:鏄�</param> + /// <param name="arriveQty">鍒拌揣鏁伴噺</param> + /// <param name="skuName">鐗╂枡鍚嶇О</param> + /// <param name="standard">瑙勬牸/鍨嬪彿</param> + /// <param name="packStandard">鍖呰瑙勬牸</param> + /// <param name="skuNo">鐗╂枡缂栫爜</param> + /// <param name="supplierLot">渚涘簲鍟嗘壒娆�</param> + /// <param name="productionTime">鐢熶骇鏃ユ湡</param> + /// <param name="expirationTime">鏈夋晥鏈熻嚦</param> + /// <param name="storeTime">鍌ㄥ瓨鏈熻嚦</param> + /// <param name="userId">鎿嶄綔浜�</param> + /// <returns></returns> + List<LabelBoxDto> AddLabelBoxReturn(int imId, string isReset, decimal arriveQty, string skuName,string standard,string packStandard,string skuNo, string supplierLot, string productionTime, string expirationTime, string storeTime,int userId); + + } } diff --git a/Wms/Wms/Controllers/BllAsnController.cs b/Wms/Wms/Controllers/BllAsnController.cs index 081f183..fee616f 100644 --- a/Wms/Wms/Controllers/BllAsnController.cs +++ b/Wms/Wms/Controllers/BllAsnController.cs @@ -862,6 +862,21 @@ } } + [HttpGet] + public IActionResult GetLabelBoxModel(int id) + { + try + { + var list = _labelBox.GetLabelBoxModel(id); + return Ok(new { code = 0, msg = "绠辩爜妯℃澘淇℃伅", data = list }); + } + catch (Exception e) + { + return Ok(new { code = 1, msg = e.Message }); + } + } + + #endregion } -- Gitblit v1.8.0