chengsc
2024-10-24 716b29fea5945ca7dc4419d9f1f980c379312b32
修改问题
16个文件已修改
487 ■■■■ 已修改文件
HTML/views/ASNSetting/BindBoxInfo.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/ASNSetting/PalletBind.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/SOSetting/ExportNotice.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/AsnSetting/productEnterQuantity.html 134 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/SampleOut.html 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/pinTuoOut.html 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Pda/View/SoSetting/productOut.html 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs 205 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllQualityServer/QualityInspectServer.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/BllAsnController.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Wms/Wms/Controllers/PdaAsnController.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
HTML/views/ASNSetting/BindBoxInfo.html
@@ -72,14 +72,17 @@
                    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'))
@@ -87,6 +90,7 @@
                    refreshTable();
                    function refreshTable() {
                        var param={
                            BindNo:getQueryString('BindNo'),
                            BoxNo:getQueryString('BoxNo'),
                            BoxNo3:$("#BoxNo3").val()
                        }
HTML/views/ASNSetting/PalletBind.html
@@ -808,7 +808,7 @@
                        layer.open({
                            type: 2,
                            title: '箱支详情信息',
                            content: 'BindBoxInfo.html?BoxNo=' + BoxNo,
                            content: 'BindBoxInfo.html?BoxNo=' + BoxNo+'&BindNo='+data.BindNo,
                            maxmin: true,
                            area: ['80%', '85%'],
                            btn: ['关闭'],
HTML/views/SOSetting/ExportNotice.html
@@ -372,7 +372,7 @@
                                                    <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>`;
Pda/View/AsnSetting/productEnterQuantity.html
@@ -138,8 +138,15 @@
                        <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">
@@ -540,7 +547,29 @@
                    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 () {
@@ -713,19 +742,20 @@
                        });
                        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",
@@ -763,6 +793,7 @@
                    //     });
                    //     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,
@@ -777,12 +808,19 @@
                        });
                        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,
@@ -880,6 +918,7 @@
                            $("#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{
@@ -1373,7 +1412,7 @@
            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) { //成功
@@ -1385,24 +1424,24 @@
                            });
                            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);
@@ -1431,6 +1470,49 @@
            }
            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秒)
                        });
                    }
                });
            }
            /* 分页 */
            //设置分页
Pda/View/SoSetting/SampleOut.html
@@ -288,8 +288,8 @@
                                        <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>
@@ -482,9 +482,9 @@
                                            <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">
@@ -1044,6 +1044,16 @@
            //确认拣货 
            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(),
@@ -1609,6 +1619,16 @@
            //确认拣货 
            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(),
Pda/View/SoSetting/pinTuoOut.html
@@ -303,8 +303,8 @@
                                        <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>
@@ -525,9 +525,9 @@
                                            <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">
@@ -1019,6 +1019,16 @@
            //确认拣货 
            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(),
@@ -1498,6 +1508,16 @@
            //确认拣货 
            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(),
Pda/View/SoSetting/productOut.html
@@ -303,8 +303,8 @@
                                        <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>
@@ -509,9 +509,9 @@
                                            <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">
@@ -1009,6 +1009,16 @@
            //确认拣货 
            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(),
@@ -1489,6 +1499,16 @@
            //确认拣货 
            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(),
Wms/WMS.BLL/BllAsnServer/PalletBindServer.cs
@@ -493,6 +493,7 @@
                    .GroupBy((a, b) => new
                    {
                        a.PalletNo,
                        a.BindNo,
                        a.BoxNo,
                        a.SkuNo,
                        a.SkuName,
@@ -510,6 +511,7 @@
                    .Select((a, b) => new BoxInfoDto()
                    {
                        BoxNo = a.BoxNo,
                        BindNo = a.BindNo,
                        PalletNo = a.PalletNo,
                        Qty = SqlFunc.AggregateSum(a.Qty),
                        FullQty = a.FullQty,
@@ -540,9 +542,10 @@
        /// <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")
Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -23,6 +23,7 @@
using System.Reflection;
using System.IO;
using System.Security.Cryptography.X509Certificates;
using System.Net.WebSockets;
namespace WMS.BLL.BllPdaServer
{
@@ -208,6 +209,8 @@
                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];
                }
@@ -1903,15 +1906,21 @@
                }
                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 
@@ -1938,6 +1947,111 @@
                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)
        {
@@ -2090,19 +2204,35 @@
                //判断物料数量是否为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;
@@ -2302,27 +2432,40 @@
                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
Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -399,9 +399,21 @@
                {
                    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>()
Wms/WMS.BLL/BllQualityServer/QualityInspectServer.cs
@@ -111,10 +111,10 @@
            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("只有入库单据为退货入库单可输入入库单号,请核查!");
                }
                //获取入库单明细
Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -450,7 +450,7 @@
                        break;
                    case "5"://中间品出库
                        skuType = "(4)";
                        inspectStatus = "1";
                        inspectStatus = "0,1";
                        break;
                    case "6"://代储出库
                        skuType = "(0,1,2,3,4)";
Wms/WMS.IBLL/IBllAsnServer/IPalletBindServer.cs
@@ -24,7 +24,7 @@
        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>
        /// 删除托盘绑定信息
Wms/WMS.IBLL/IPdaServer/IPdaAsnServer.cs
@@ -78,6 +78,8 @@
        // 根据箱码获取标签箱码信息
        List<BoxInfoDto> GetBindBoxInfos(BoxInfoVm model);
        // 根据箱码获取标签最小追溯码信息
        List<BoxInfoDto> GetBindBoxInfo2s(BoxInfoVm model);
        //根据单据号获取单据明细列表
        List<ArrivalNoticeDetailDto> GetBindArrivalNoticeDetails(ArrivalNoticeVm model);
Wms/Wms/Controllers/BllAsnController.cs
@@ -366,11 +366,11 @@
        }
        [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 });
            }
Wms/Wms/Controllers/PdaAsnController.cs
@@ -533,6 +533,27 @@
                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)
        {