| | |
| | | form = layui.form, |
| | | layer = layui.layer; |
| | | var boxNo = getQueryString('BoxNo'); |
| | | var bindNo = getQueryString('BindNo'); |
| | | if (!boxNo) |
| | | { |
| | | boxNo = ""; |
| | | bindNo = ""; |
| | | } |
| | | else |
| | | { |
| | | var param = { |
| | | boxNo: boxNo, |
| | | bindNo: bindNo, |
| | | }; |
| | | |
| | | console.log(getQueryString('BoxNo')) |
| | |
| | | refreshTable(); |
| | | function refreshTable() { |
| | | var param={ |
| | | BindNo:getQueryString('BindNo'), |
| | | BoxNo:getQueryString('BoxNo'), |
| | | BoxNo3:$("#BoxNo3").val() |
| | | } |
| | |
| | | layer.open({ |
| | | type: 2, |
| | | title: '箱支详情信息', |
| | | content: 'BindBoxInfo.html?BoxNo=' + BoxNo, |
| | | content: 'BindBoxInfo.html?BoxNo=' + BoxNo+'&BindNo='+data.BindNo, |
| | | maxmin: true, |
| | | area: ['80%', '85%'], |
| | | btn: ['关闭'], |
| | |
| | | <i class="layui-icon layui-icon-delete"></i>取消分配 |
| | | </a>`; |
| | | } |
| | | if( d.Status == '2' || d.Status == '3'){ |
| | | if( d.Status == '2' || d.Status == '3'|| (d.Status == '4' && d.Type == "1")){ |
| | | html += `<a class="layui-btn layui-btn-normal layui-btn-xs outClass" lay-event="outKu"> |
| | | <i class="layui-icon layui-icon-ok"></i>出库 |
| | | </a>`; |
| | |
| | | <div id="BOX" class="layui-form-item layout-input"> |
| | | <label class="layui-form-label" lang>外箱条码:</label> |
| | | <div class="layui-input-block"> |
| | | <input id="BOXCODE" type="text" lay-verify="required" lang langholder |
| | | <input id="BOXCODE" type="text" lang langholder |
| | | placeholder="请扫描外箱条码" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div id="BOX" class="layui-form-item layout-input"> |
| | | <label class="layui-form-label" lang>追溯条码:</label> |
| | | <div class="layui-input-block"> |
| | | <input id="BOXCODE3" type="text" lang langholder |
| | | placeholder="请扫描追溯条码" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div id="" class="layui-form-item layout-input"> |
| | |
| | | checkBoxInfo() |
| | | } |
| | | }); |
| | | //箱码回车事件 |
| | | $("#BOXCODE3").keydown(function (e) { |
| | | if (e.keyCode === 13) { |
| | | if ($("#BOXCODE3").val() == "") { |
| | | layer.msg('请先扫描追溯码', { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return |
| | | } |
| | | |
| | | // if ($("#STOCKCODE").val() == "") { |
| | | // layer.msg('请先扫描托盘码', { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }); |
| | | // $("#BOXCODE").val(""); |
| | | // $("#STOCKCODE").focus(); |
| | | // return; |
| | | // } |
| | | checkBoxInfo3() |
| | | } |
| | | }); |
| | | /* 入库单据下拉框 */ |
| | | //点击入库单据下拉框事件 |
| | | // $("#selectDiv").click(function () { |
| | |
| | | }); |
| | | return; |
| | | } |
| | | if ($("#BOXCODE").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: $("#goodSelect").val(), |
| | | PalletNo: $("#STOCKCODE").val(), |
| | | //AsnDetailId: parseInt($("#goodSelect").val()), |
| | | LotNo: $("#goodSelect").find("option:selected").text(), |
| | | BoxNo: $("#BOXCODE").val(), |
| | | BoxNo01: $("#BOXCODE3").val(), |
| | | IsContinue: isContinue, |
| | | TailBoxNo: $("#BOXCODE2").val(), |
| | | Origin: "PDA", |
| | |
| | | // }); |
| | | // return; |
| | | // } |
| | | var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,4})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if ($("#goodSelect1").val() == "") { |
| | | layer.msg('请选择物料及明细', { |
| | | icon: 2, |
| | |
| | | }); |
| | | return; |
| | | } |
| | | if (!reg.test($("#SkuQty").val())) { |
| | | layer.msg("入库数量必须大于0(可保留4位小数)", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | var param = { |
| | | AsnNo: $("#goodSelect1").val(), //出库单据 |
| | | PalletNo: $("#STOCKCODE1").val(), //托盘条码 |
| | | //AsnDetailId: parseInt($("#goodSelect1").val()), //入库单明细ID |
| | | LotNo: $("#goodSelect1").find("option:selected").text(), //物料批次 |
| | | SkuQty: parseInt($("#SkuQty").val()), //物料数量 |
| | | SkuQty: parseFloat($("#SkuQty").val()), //物料数量 |
| | | Demo: $("#NoticeDemo").val(), //物料数量 |
| | | Origin: "PDA", |
| | | TableType: xianshiyemian, |
| | |
| | | $("#Standard1").val(res.data.Standard); |
| | | $("#ImportFactQuantity1").val(res.data.FactQty + ""); |
| | | if (res.data.SkuNo == "100088") { |
| | | $("textarea[name='NoticeDemo']").val(res.data.UDF5); //备注 |
| | | $('#demodiv').show(); |
| | | $('#demodiv1').show(); |
| | | }else{ |
| | |
| | | function checkBoxInfo() { |
| | | var param = { |
| | | "BoxNo": $("#BOXCODE").val(), |
| | | "AsnNo":$("#bar").val(), |
| | | "AsnNo":$("#goodSelect").val(), |
| | | } |
| | | sendData(IP + "/PdaAsn/GetBindBoxInfos", param, 'post', function (res) { |
| | | if (res.code == 0) { //成功 |
| | |
| | | }); |
| | | return; |
| | | } |
| | | if (res.data[0].ASNNo != '' && res.data[0].ASNNo != null) { |
| | | $("#bar").empty() |
| | | $("#bar").append('<option value =>' + '</option>'); |
| | | form.render('select'); |
| | | // if (res.data[0].ASNNo != '' && res.data[0].ASNNo != null) { |
| | | // $("#bar").empty() |
| | | // $("#bar").append('<option value =>' + '</option>'); |
| | | // form.render('select'); |
| | | |
| | | $("#bar").append('<option value =' + res.data[0].ASNNo + ' selected>' + res.data[0].ASNNo + '</option>'); |
| | | // $("#bar").append('<option value =' + res.data[0].ASNNo + ' selected>' + res.data[0].ASNNo + '</option>'); |
| | | |
| | | // updateGoodList(res.data[0].SkuNo) |
| | | setOrderGoods(); |
| | | } else { |
| | | if (asnDetails == '') { |
| | | layer.msg("请先选择入库单据!", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | } |
| | | // // updateGoodList(res.data[0].SkuNo) |
| | | // setOrderGoods(); |
| | | // } else { |
| | | // if (asnDetails == '') { |
| | | // layer.msg("请先选择入库单据!", { |
| | | // icon: 2, |
| | | // time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | // }); |
| | | // return; |
| | | // } |
| | | // } |
| | | asnDetails.forEach(element => { |
| | | console.log(element); |
| | | |
| | |
| | | |
| | | } |
| | | |
| | | function checkBoxInfo3() { |
| | | var param = { |
| | | "BoxNo3": $("#BOXCODE3").val(), |
| | | "AsnNo":$("#goodSelect").val(), |
| | | } |
| | | sendData(IP + "/PdaAsn/GetBindBoxInfo2s", param, 'post', function (res) { |
| | | if (res.code == 0) { //成功 |
| | | var bl = false; |
| | | if (res.data.length == 0) { |
| | | layer.msg("未查询到此箱物料信息,请核实!", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return; |
| | | } |
| | | |
| | | asnDetails.forEach(element => { |
| | | console.log(element); |
| | | |
| | | if (element.SkuNo == res.data[0].SkuNo && element.LotNo == res.data[0].LotNo) { |
| | | var sel = 'dd[lay-value=' + element.id + ']'; |
| | | $('#goodSelect').siblings("div.layui-form-select").find('dl').find(sel).addClass('layui-this'); |
| | | bl = true; |
| | | } |
| | | }); |
| | | if (!bl) { |
| | | layer.msg("此箱物料不符合该入库单,请核实!", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | } else { |
| | | $("#BoxQty").val(res.data[0].Qty); |
| | | } |
| | | |
| | | } else { //不成功 |
| | | layer.msg(res.msg, { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | } |
| | | |
| | | /* 分页 */ |
| | | //设置分页 |
| | |
| | | <div class="layui-form-item layout-input" style="margin-top: 6px;"> |
| | | <label class="layui-form-label lableWidth">拣货数量:</label> |
| | | <div class="layui-input-block"> |
| | | <input id="pickQty1" type="number" placeholder="请输入拣货数量"autocomplete="off" |
| | | class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> |
| | | <input id="pickQty1" type="text" placeholder="请输入拣货数量"autocomplete="off" |
| | | class="layui-input" > |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | <label class="layui-form-label lableWidth" >拣货数量:</label> |
| | | <div id="" class="local-input"> |
| | | <div class="layui-input-block"> |
| | | <input id="pickQty2" type="number" placeholder="请输入拣货数量" |
| | | <input id="pickQty2" type="text" placeholder="请输入拣货数量" |
| | | autocomplete="off" class="layui-input" style="padding-left:0.1rem;" |
| | | oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> |
| | | > |
| | | </div> |
| | | </div> |
| | | <div id="" class="local-ok"> |
| | |
| | | //确认拣货 |
| | | function reqPickScatter() { |
| | | canPickBox = false//回调 |
| | | if($('#pickQty1').val()!= "" && $('#pickQty1').val()!= undefined){ |
| | | var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,4})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if (!reg.test($("#pickQty1").val())) { |
| | | layer.msg("数量必须大于0(可保留4位小数)", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | } |
| | | var param = { |
| | | "SoNo": $("#bar").val(), |
| | | "SoDetailId": $("#skuLotNo").val(), |
| | |
| | | //确认拣货 |
| | | function reqPickScatter2() { |
| | | canPickBox = false//回调 |
| | | if($('#pickQty2').val()!= "" && $('#pickQty2').val()!= undefined){ |
| | | var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,4})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if (!reg.test($("#pickQty2").val())) { |
| | | layer.msg("数量必须大于0(可保留4位小数)", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | } |
| | | var param = { |
| | | "SoNo": $("#bar2").val(), |
| | | "SoDetailId": $("#skuLotNo2").val(), |
| | |
| | | <div class="layui-form-item layout-input" style="margin-top: 6px;"> |
| | | <label class="layui-form-label lableWidth">拣货数量:</label> |
| | | <div class="layui-input-block"> |
| | | <input id="pickQty1" type="number" placeholder="请输入拣货数量"autocomplete="off" |
| | | class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> |
| | | <input id="pickQty1" type="text" placeholder="请输入拣货数量"autocomplete="off" |
| | | class="layui-input"> |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | <label class="layui-form-label lableWidth" >拣货数量:</label> |
| | | <div id="" class="local-input"> |
| | | <div class="layui-input-block"> |
| | | <input id="pickQty2" type="number" placeholder="请输入拣货数量" |
| | | <input id="pickQty2" type="text" placeholder="请输入拣货数量" |
| | | autocomplete="off" class="layui-input" style="padding-left:0.1rem;" |
| | | oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> |
| | | > |
| | | </div> |
| | | </div> |
| | | <div id="" class="local-ok"> |
| | |
| | | |
| | | //确认拣货 |
| | | function reqPickScatter() { |
| | | if($('#pickQty1').val()!= "" && $('#pickQty1').val()!= undefined){ |
| | | var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,4})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if (!reg.test($("#pickQty1").val())) { |
| | | layer.msg("数量必须大于0(可保留4位小数)", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | } |
| | | var param = { |
| | | "SoNo": $("#bar").val(), |
| | | "SoDetailId": $("#skuLotNo").val(), |
| | |
| | | |
| | | //确认拣货 |
| | | function reqPickScatter2() { |
| | | if($('#pickQty2').val()!= "" && $('#pickQty2').val()!= undefined){ |
| | | var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,4})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if (!reg.test($("#pickQty2").val())) { |
| | | layer.msg("数量必须大于0(可保留4位小数)", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | } |
| | | var param = { |
| | | "SoNo": $("#bar2").val(), |
| | | "SoDetailId": $("#skuLotNo2").val(), |
| | |
| | | <div class="layui-form-item layout-input" style="margin-top: 6px;"> |
| | | <label class="layui-form-label lableWidth">拣货数量:</label> |
| | | <div class="layui-input-block"> |
| | | <input id="pickQty1" type="number" placeholder="请输入拣货数量"autocomplete="off" |
| | | class="layui-input" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> |
| | | <input id="pickQty1" type="text" placeholder="请输入拣货数量"autocomplete="off" |
| | | class="layui-input" > |
| | | </div> |
| | | </div> |
| | | </td> |
| | |
| | | <label class="layui-form-label lableWidth" >拣货数量:</label> |
| | | <div id="" class="local-input"> |
| | | <div class="layui-input-block"> |
| | | <input id="pickQty2" type="number" placeholder="请输入拣货数量" |
| | | <input id="pickQty2" type="text" placeholder="请输入拣货数量" |
| | | autocomplete="off" class="layui-input" style="padding-left:0.1rem;" |
| | | oninput="value=value.replace(/^(0+)|[^\d]+/g,'')"> |
| | | > |
| | | </div> |
| | | </div> |
| | | <div id="" class="local-ok"> |
| | |
| | | |
| | | //确认拣货 |
| | | function reqPickScatter() { |
| | | if($('#pickQty1').val()!= "" && $('#pickQty1').val()!= undefined){ |
| | | var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,4})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if (!reg.test($("#pickQty1").val())) { |
| | | layer.msg("数量必须大于0(可保留4位小数)", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | } |
| | | var param = { |
| | | "SoNo": $("#bar").val(), |
| | | "SoDetailId": $("#skuLotNo").val(), |
| | |
| | | |
| | | //确认拣货 |
| | | function reqPickScatter2() { |
| | | if($('#pickQty2').val()!= "" && $('#pickQty2').val()!= undefined){ |
| | | var reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,4})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/; |
| | | if (!reg.test($("#pickQty2").val())) { |
| | | layer.msg("数量必须大于0(可保留4位小数)", { |
| | | icon: 2, |
| | | time: 2000 //2秒关闭(如果不配置,默认是3秒) |
| | | }); |
| | | return -1; |
| | | } |
| | | } |
| | | var param = { |
| | | "SoNo": $("#bar2").val(), |
| | | "SoDetailId": $("#skuLotNo2").val(), |
| | |
| | | .GroupBy((a, b) => new |
| | | { |
| | | a.PalletNo, |
| | | a.BindNo, |
| | | a.BoxNo, |
| | | a.SkuNo, |
| | | a.SkuName, |
| | |
| | | .Select((a, b) => new BoxInfoDto() |
| | | { |
| | | BoxNo = a.BoxNo, |
| | | BindNo = a.BindNo, |
| | | PalletNo = a.PalletNo, |
| | | Qty = SqlFunc.AggregateSum(a.Qty), |
| | | FullQty = a.FullQty, |
| | |
| | | /// <param name="boxNo">箱码</param> |
| | | /// <param name="boxNo3">支码</param> |
| | | /// <returns></returns> |
| | | public List<BoxInfoDto> GetBoxInfoByBoxNo(string boxNo, string boxNo3) |
| | | public List<BoxInfoDto> GetBoxInfoByBoxNo(string bindNo, string boxNo, string boxNo3) |
| | | { |
| | | Expression<Func<BllBoxInfo, bool>> item = Expressionable.Create<BllBoxInfo>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(bindNo), it => it.BindNo == int.Parse(bindNo)) |
| | | .AndIF(!string.IsNullOrWhiteSpace(boxNo), it => it.BoxNo == boxNo.Trim()) |
| | | .AndIF(!string.IsNullOrWhiteSpace(boxNo3), it => it.BoxNo3.Contains(boxNo3.Trim())) |
| | | .And(m => m.IsDel == "0") |
| | |
| | | using System.Reflection; |
| | | using System.IO; |
| | | using System.Security.Cryptography.X509Certificates; |
| | | using System.Net.WebSockets; |
| | | |
| | | namespace WMS.BLL.BllPdaServer |
| | | { |
| | |
| | | |
| | | if (modelList.Count > 0) |
| | | { |
| | | var notice = Db.Queryable<BllArrivalNotice>().First(m=>m.IsDel == "0" && m.ASNNo == modelList[0].ASNNo); |
| | | modelList[0].UDF5 = notice.Demo; |
| | | return modelList[0]; |
| | | } |
| | | |
| | |
| | | } |
| | | if (!string.IsNullOrWhiteSpace(model.ASNNo)) |
| | | { |
| | | var asnData = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == model.ASNNo); |
| | | if (asnData != null && (asnData.Type == "0" || asnData.Type == "3")) |
| | | var detailId = model.ASNNo.Split("-")[0]; |
| | | var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m=>m.IsDel =="0" && m.Id == int.Parse(detailId)); |
| | | if (detail != null) |
| | | { |
| | | var count = Db.Queryable<BllBoxInfo>().Count(m => m.IsDel == "0" && m.Status == "0" && m.BoxNo == model.BoxNo); |
| | | if (count == 0) |
| | | var asnData = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo); |
| | | if (asnData != null && (asnData.Type == "0" || asnData.Type == "3")) |
| | | { |
| | | GetBoxInfoByFuMa(model.BoxNo, ""); //从赋码系统获取箱码信息 |
| | | var count = Db.Queryable<BllBoxInfo>().Count(m => m.IsDel == "0" && m.Status == "0" && m.BoxNo == model.BoxNo); |
| | | if (count == 0) |
| | | { |
| | | GetBoxInfoByFuMa(model.BoxNo, ""); //从赋码系统获取箱码信息 |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | string sqlString = $@"SELECT |
| | |
| | | throw ex; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据箱码获取标签最小追溯码信息 |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | public List<BoxInfoDto> GetBindBoxInfo2s(BoxInfoVm model) |
| | | { |
| | | try |
| | | { |
| | | if (string.IsNullOrEmpty(model.BoxNo3)) |
| | | { |
| | | throw new Exception("请扫描最小追溯条码!"); |
| | | } |
| | | if (!string.IsNullOrWhiteSpace(model.ASNNo)) |
| | | { |
| | | var detailId = model.ASNNo.Split("-")[0]; |
| | | var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == int.Parse(detailId)); |
| | | if (detail != null) |
| | | { |
| | | var asnData = Db.Queryable<BllArrivalNotice>().First(m => m.IsDel == "0" && m.ASNNo == detail.ASNNo); |
| | | if (asnData != null) |
| | | { |
| | | if (asnData.Type != "3") |
| | | { |
| | | throw new Exception("单据请选择退货入库单!"); |
| | | } |
| | | var count = Db.Queryable<BllBoxInfo>().Count(m => m.IsDel == "0" && m.Status == "0" && m.BoxNo3 == model.BoxNo3); |
| | | if (count == 0) |
| | | { |
| | | //优先WMS查找 |
| | | |
| | | var comDetail = Db.Queryable<BllBoxInfo>().First(m=>m.BoxNo3 == model.BoxNo3 && m.IsDel =="0" && m.Status =="2"); |
| | | if (comDetail!= null) |
| | | { |
| | | var boxInfo = new BllBoxInfo() |
| | | { |
| | | ASNNo = "", |
| | | //ASNDetailNo = 0, |
| | | OrderCode = "", |
| | | //BindNo = 0, |
| | | BoxNo = comDetail.BoxNo, |
| | | BoxNo2 = comDetail.BoxNo2, |
| | | BoxNo3 = comDetail.BoxNo3, |
| | | PalletNo = "", |
| | | Qty = comDetail.Qty, |
| | | FullQty = comDetail.FullQty, |
| | | Status = "0", |
| | | SkuNo = comDetail.SkuNo, |
| | | SkuName = comDetail.SkuName, |
| | | LotNo = comDetail.LotNo, |
| | | LotText = comDetail.LotText, |
| | | SupplierLot = comDetail.SupplierLot, |
| | | ProductionTime = comDetail.ProductionTime, |
| | | ExpirationTime = comDetail.ExpirationTime, |
| | | //CompleteTime = comTime, |
| | | InspectMark = comDetail.InspectMark, |
| | | BitBoxMark = "1", |
| | | InspectStatus = comDetail.InspectStatus, |
| | | Origin = "赋码", |
| | | Standard = comDetail.Standard, |
| | | PackageStandard = comDetail.PackageStandard, |
| | | StoreTime = comDetail.StoreTime, |
| | | QtyOrd = comDetail.QtyOrd, |
| | | QtyCount = comDetail.QtyCount, |
| | | CreateUser = 0, |
| | | CreateTime = DateTime.Now, |
| | | }; |
| | | Db.Insertable(boxInfo).ExecuteCommand(); |
| | | } |
| | | else |
| | | { |
| | | // GetBoxInfoByFuMa(model.BoxNo3, ""); //从赋码系统获取箱码信息 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | string sqlString = $@"SELECT |
| | | ASNNo, |
| | | BoxNo, |
| | | SkuNo, |
| | | SkuName, |
| | | LotNo, |
| | | SUM(Qty) as Qty |
| | | FROM BllBoxInfo |
| | | WHERE IsDel = '0' |
| | | AND Status='0' |
| | | AND BoxNo3 = '{model.BoxNo3}' |
| | | GROUP BY ASNNo,BoxNo,SkuNo,SkuName,LotNo; "; |
| | | var models = Db.Ado.SqlQuery<BoxInfoDto>(sqlString); |
| | | if (models.Count == 0) |
| | | { |
| | | throw new Exception("最小追溯码信息不存在!"); |
| | | } |
| | | return models; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | } |
| | | |
| | | // 根据单据号获取单据明细列表 |
| | | public List<ArrivalNoticeDetailDto> GetBindArrivalNoticeDetails(ArrivalNoticeVm model) |
| | | { |
| | |
| | | //判断物料数量是否为0 为0判断箱码信息 不为0继续 |
| | | if (model.TableType == 0) |
| | | { |
| | | if (string.IsNullOrEmpty(model.BoxNo)) |
| | | if (notice.Type != "3") |
| | | { |
| | | throw new Exception("-1:箱码信息不可为空!"); |
| | | } |
| | | |
| | | if (model.IsContinue == "1") |
| | | { |
| | | if (string.IsNullOrWhiteSpace(model.TailBoxNo)) |
| | | if (string.IsNullOrEmpty(model.BoxNo)) |
| | | { |
| | | throw new Exception("-1:开启连续组托时,尾箱码信息不可为空!"); |
| | | throw new Exception("-1:箱码信息不可为空!"); |
| | | } |
| | | if (model.IsContinue == "1") |
| | | { |
| | | if (string.IsNullOrWhiteSpace(model.TailBoxNo)) |
| | | { |
| | | throw new Exception("-1:开启连续组托时,尾箱码信息不可为空!"); |
| | | } |
| | | |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if (string.IsNullOrEmpty(model.BoxNo01)) |
| | | { |
| | | throw new Exception("-1:追溯码信息不可为空!"); |
| | | } |
| | | if (model.IsContinue == "1") |
| | | { |
| | | throw new Exception("-1:追溯码不可连续组托!"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | int isTextTable = model.TableType; |
| | | int isDeposit = 0; |
| | |
| | | var boxInfoList = new List<BllBoxInfo>(); |
| | | if (model.SkuQty == 0) |
| | | { |
| | | //首箱 |
| | | var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo.Count == 0) |
| | | if (notice.Type == "3") |
| | | { |
| | | throw new Exception("-1:箱码信息不存在!"); |
| | | } |
| | | boxInfoList.AddRange(boxInfo); |
| | | //是否连续组托 |
| | | if (model.IsContinue == "1") |
| | | { |
| | | //尾箱 |
| | | var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo2.Count == 0) |
| | | //首箱 |
| | | var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo3 == model.BoxNo01 && m.Status == "0").ToList(); |
| | | if (boxInfo.Count == 0) |
| | | { |
| | | throw new Exception("-1:尾箱码信息不存在!"); |
| | | throw new Exception("-1:箱码信息不存在!"); |
| | | } |
| | | boxInfoList.AddRange(boxInfo2); |
| | | var sql = $"select * from BllBoxInfo where IsDel = '0' and Status = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; "; |
| | | var list = Db.Ado.SqlQuery<BllBoxInfo>(sql); |
| | | boxInfoList.AddRange(list); |
| | | msgStr += $"尾箱号为{model.TailBoxNo}"; |
| | | boxInfoList.AddRange(boxInfo); |
| | | } |
| | | else |
| | | { |
| | | //首箱 |
| | | var boxInfo = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.BoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo.Count == 0) |
| | | { |
| | | throw new Exception("-1:箱码信息不存在!"); |
| | | } |
| | | boxInfoList.AddRange(boxInfo); |
| | | //是否连续组托 |
| | | if (model.IsContinue == "1") |
| | | { |
| | | //尾箱 |
| | | var boxInfo2 = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == model.TailBoxNo && m.Status == "0").ToList(); |
| | | if (boxInfo2.Count == 0) |
| | | { |
| | | throw new Exception("-1:尾箱码信息不存在!"); |
| | | } |
| | | boxInfoList.AddRange(boxInfo2); |
| | | var sql = $"select * from BllBoxInfo where IsDel = '0' and Status = '0' and boxNo>'{model.BoxNo}' and boxNo<'{model.TailBoxNo}'; "; |
| | | var list = Db.Ado.SqlQuery<BllBoxInfo>(sql); |
| | | boxInfoList.AddRange(list); |
| | | msgStr += $"尾箱号为{model.TailBoxNo}"; |
| | | } |
| | | } |
| | | } |
| | | #endregion |
| | |
| | | { |
| | | throw new Exception("未查询到该出库单的信息"); |
| | | } |
| | | if (notice.Status != "3") |
| | | var type1 = new List<string>() { "0", "4" }; //拣货不可多出 |
| | | var type2 = new List<string>() { "1", "2", "3", "5", "6", "7", "8" };//拣货可多出 |
| | | if (type1.Contains(notice.Type)) |
| | | { |
| | | throw new Exception("出库单的状态不是正在执行,不能拣货"); |
| | | if (notice.Status != "3") |
| | | { |
| | | throw new Exception("出库单的状态不是正在执行,不能拣货"); |
| | | } |
| | | } |
| | | if (type2.Contains(notice.Type)) |
| | | { |
| | | if (notice.Status != "3" && notice.Status != "4") |
| | | { |
| | | throw new Exception("出库单的状态不是正在执行或执行完成,不能拣货"); |
| | | } |
| | | } |
| | | //出库单明细 |
| | | var noticeDetail = Db.Queryable<BllExportNoticeDetail>() |
| | |
| | | if (!string.IsNullOrEmpty(model.ASNNo)) |
| | | { |
| | | //查询是否为退货入库单据 |
| | | var Arrival = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && a.Type == "3"); |
| | | var Arrival = Db.Queryable<BllArrivalNotice>().First(a => a.IsDel == "0" && a.ASNNo == model.ASNNo && (a.Type == "3" || a.Type == "4")); |
| | | if (Arrival == null) |
| | | { |
| | | throw new Exception("只有入库单据为退货入库单可输入 入库单号,请核查!"); |
| | | throw new Exception("只有入库单据为退货入库单可输入入库单号,请核查!"); |
| | | } |
| | | |
| | | //获取入库单明细 |
| | |
| | | break; |
| | | case "5"://中间品出库 |
| | | skuType = "(4)"; |
| | | inspectStatus = "1"; |
| | | inspectStatus = "0,1"; |
| | | break; |
| | | case "6"://代储出库 |
| | | skuType = "(0,1,2,3,4)"; |
| | |
| | | |
| | | List<BoxInfoDto> GetBoxInfoList(BoxInfoVm model, out int count); |
| | | |
| | | List<BoxInfoDto> GetBoxInfoByBoxNo(string boxNo, string boxNo3); |
| | | List<BoxInfoDto> GetBoxInfoByBoxNo(string bindNo,string boxNo, string boxNo3); |
| | | |
| | | /// <summary> |
| | | /// 删除托盘绑定信息 |
| | |
| | | |
| | | // 根据箱码获取标签箱码信息 |
| | | List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model); |
| | | // 根据箱码获取标签最小追溯码信息 |
| | | List<BoxInfoDto> GetBindBoxInfo2s(BoxInfoVm model); |
| | | |
| | | //根据单据号获取单据明细列表 |
| | | List<ArrivalNoticeDetailDto> GetBindArrivalNoticeDetails(ArrivalNoticeVm model); |
| | |
| | | } |
| | | |
| | | [HttpGet] |
| | | public IActionResult GetBoxInfoByBoxNo(string boxNo, string boxNo3) |
| | | public IActionResult GetBoxInfoByBoxNo(string bindNo, string boxNo, string boxNo3) |
| | | { |
| | | try |
| | | { |
| | | var models = _PalletBindSvc.GetBoxInfoByBoxNo(boxNo, boxNo3); |
| | | var models = _PalletBindSvc.GetBoxInfoByBoxNo(bindNo,boxNo, boxNo3); |
| | | |
| | | return Ok(new { code = 0, count= models.Count, msg = "箱支明细信息", data = models }); |
| | | } |
| | |
| | | return Ok(new { code = 1, msg = e.Message }); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据箱码获取标签最小追溯码信息 |
| | | /// </summary> |
| | | /// <param name="model">BoxNo:箱号</param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | public IActionResult GetBindBoxInfo2s(BoxInfoVm model) |
| | | { |
| | | try |
| | | { |
| | | var models = _PdaAsnSvc.GetBindBoxInfo2s(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) |
| | | { |