wtt
2025-11-05 1552dce281ef5a80fbc1d911ea8a32eb7d0795f6
单品过站开发
3个文件已修改
1574 ■■■■ 已修改文件
WebTM/views/车间管理/单品过站_小卫/Cj_ProcessItemStationPlatform_KeyElement.html 494 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/车间管理/单品过站_小卫/Cj_ProcessItemStationPlatform_batchKeyElement.html 613 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/车间管理/单品过站_小卫/Cj_ProcessItemStationPlatform_generateCaseCode.html 467 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/³µ¼ä¹ÜÀí/µ¥Æ·¹ýÕ¾_СÎÀ/Cj_ProcessItemStationPlatform_KeyElement.html
@@ -33,11 +33,11 @@
                                <label class="layui-form-label" style="padding-left:0px" id="">镭雕码:</label>
                                <input type="text" class="layui-input" name="HBarCode_SN" lay-verify="HBarCode_SN" autocomplete="off" placeholder="请键入后回车" id="HBarCode_SN" style="width: 500px;">
                            </div>
                            <button class="layui-btn layui-btn-normal" style="float:left;" type="button" lay-submit="" lay-filter="btnNextProc" id="btnNextProc">换产品</button>
                            <button class="layui-btn layui-btn-normal" style="float:right" type="button" lay-submit="" lay-filter="btnExit" id="btnExit">退出</button>
                        </div>
@@ -77,6 +77,13 @@
                                            <label class="layui-form-label" style="width: 85px;" id="">当前镭雕码:</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HSNNo" lay-verify="HSNNo" id="HSNNo" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">追溯单号</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBillNo" lay-verify="HBillNo" id="HBillNo" style="background-color:#EDEDED;" readonly>
                                                <input type="hidden" name="HInterID" id="HInterID" lay-verify="HInterID">
                                            </div>
                                        </div>
                                    </div>
@@ -237,12 +244,12 @@
                            </div>
                        </div>
                    </div>
                    <script type="text/html" id="toolbarDemo">
                    <!--<script type="text/html" id="toolbarDemo">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete"><i class="layui-icon layui-icon-form"></i>解绑</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                        </div>
                    </script>
                    </script>-->
                    <script type="text/html" id="toolbarDemo2">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete2"><i class="layui-icon layui-icon-form"></i>删除</button>
@@ -255,6 +262,9 @@
    </div>
</body>
</html>
<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    layui.config({
@@ -274,8 +284,8 @@
        //定义全局变量
        var HModName = "Cj_ProcessItemStationPlatform_batch";
        var HModName2 = "Cj_ProcessItemStationPlatform_batch2";
        var HModName = "Cj_ProcessItemStationPlatform_KeyElement";
        var HModName2 = "Cj_ProcessItemStationPlatform_KeyElement2";
        var option = [];
        var option2 = [];
        //#endregion
@@ -289,6 +299,11 @@
        //#endregion
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
        });
        //头工具栏事件
        table.on('toolbar(mainTable)', function (obj) {
            switch (obj.event) {
@@ -303,68 +318,39 @@
        table.on('toolbar(mainTable2)', function (obj) {
            switch (obj.event) {
                //删除按钮
                case 'btn-Delete2': set_DeleteBill2();
                case 'btn-Delete2': btn_Delete();
                    break;
                //列设置
                case 'set_HideColumn2': get_HideColumnNoPage(HModName2, sessionStorage["HUserName"], option2, get_Display);
                    break;
            };
        });
        //批次码回车方法
        $('#HBarCode_Batch').on('keydown', function (event) {
            var HBarCode = $('#HBarCodeSN').val();
            var HBardCodeProcExchBillNo = $('#HBardCodeProcExchBillNo').val();
            if (event.keyCode == 13) {
                if (!HBardCodeProcExchBillNo) {
                    layer.msg(get_MessageError("[0000-2-034]请先扫流转卡!", sessionStorage["HTranSlate"]))
                    return;
                } else {
                    HBarCode = HBarCode.toUpperCase();
                    if (!HBarCode) {
                        layer.msg(get_MessageError("[0000-2-019]条形码不能为空!", sessionStorage["HTranSlate"]))
                        return;
                    } else {
                        if (HBarCode.length != 29 && HBarCode.length != 50) {
                            layer.alert(get_MessageError("[3791-2-012]子件条码长度不为29位或50位!", sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-035]退出', sessionStorage["HTranSlate"])], time: 100000, offset: 't' });
                            return;
                        }
                        if (HBarCode.match(/[^\x00-\xff]/g) != null) {
                            layer.alert(get_MessageError("[3791-2-013]必须是半角字符!", sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-035]退出', sessionStorage["HTranSlate"])], time: 100000, offset: 't' });
                            return;
                        }
                    }
                }
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i]["HBatchNo"] == "") {
                        layer.msg(get_MessageError("[3791-2-014]当前工序批次不能为空!", sessionStorage["HTranSlate"]))
                        return;
                    }
                }
                txtHBarCode_KeyDown(HBarCode);
            }
        });
        //镭雕码回车方法
        $('#HBarCode_SN').on('keydown', function (event) {
            var HBarCode = $('#HBardCodeProcExchBillNo').val();
            var HBarCode_SN = $('#HBarCode_SN').val();
            if (event.keyCode == 13) {
                if (!HBarCode) {
                    layer.msg(get_MessageError("[0000-1-057]流转卡不能为空!", sessionStorage["HTranSlate"]))
                    return;
                if (HBarCode_SN) {
                    createBillNo();
                    txtHBarCodeSN_KeyDown(HBarCode_SN);
                }
                setIntervalIndex = setInterval(setIntervalList, 30000);
                get_BomList(HBarCode);
                //if (option.data != 0) {
                //    //保存到临时表
                //    get_AddBomTempList();
                //}
                //查询不良记录
                get_BadRecords();
                //查询合格记录
                get_HGRecords();
            }
        });
        //关键件回车方法
        $('#HBarCode_Key').on('keydown', function (event) {
            var HBarCode_Key = $('#HBarCode_Key').val();
            if (event.keyCode == 13) {
                if ($("#HBarCode_SN").val() == "" || $("#HBarCode_SN").val() == null) {
                    layer.msg("未扫SN码请先扫码");
                    $("#HBarCode_SN").focus();
                    return
                }
                if (HBarCode_Key) {
                    txtHBarCodeKey_KeyDown(HBarCode_Key);
                }
            }
        });
@@ -393,7 +379,23 @@
        form.on('submit(btnHProc)', function () {
            btnHProc();
        });
        //换产品
        form.on('submit(btnNextProc)', function (data) {
            //for (var i = 0; i < option.data.length; i++) {
            //    if (option.data[i].HBindingQty < 1 || option.data[i].HBarCode == "") {
            //        layer.alert("第<span style='color: red;'>" + (i + 1) + "</span>行,配件 <span style='color: blue;'>" + option.data[i].HMaterName + "</span> æœªç»‘定齐整!")
            //        return;
            //    }
            //}
            //保存关键件
            if (AllowLoadData(data)) {
                set_SaveBill(data);
            }
            //历史绑定记录查询
            //get_Display();
        });
        //退出
        form.on('submit(btnExit)', function (data) {
@@ -412,7 +414,7 @@
        //初始化界面
        function set_ClearBill() {
            //进入页面默认光标在流转卡上
            $("#HBardCodeProcExchBillNo").focus();
            $("#HBarCode_SN").focus();
            //制单人
            $("#HMaker").val(sessionStorage["HUserName"]);
            $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd"));
@@ -421,7 +423,7 @@
            //初始化表格
            set_InitGrid();
            //
            //get_Display();
            get_Display();
        }
        //#region é€šè¿‡ç™»å½•用户获取默认值
@@ -462,29 +464,33 @@
        function set_InitGrid() {
            option= {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
                //, toolbar: '#toolbarDemo'
                , page: false
                , totalRow: true
                , cellMinWidth: 120
                , data: []
                , height: 285
                , limit: 10
                , cols: [[
                    { type: 'numbers', title: '序号' }
                    , { field: '日期', title: '日期' }
                    , { field: '配件代码', title: '配件代码' }
                    , { field: '配件名称', title: '配件名称' }
                    , { field: '配件规格', title: '配件规格' }
                    , { field: '配件数量', title: '配件数量', totalRow: true}
                    , { field: 'HBatchNo', title: '当前批次' }
                    , { field: 'HICMOInterID', title: 'HICMOInterID', hide: true }
                    , { field: 'HICMOEntryID', title: 'HICMOEntryID', hide: true }
                    , { field: 'HICMOBillNo', title: 'HICMOBillNo', hide: true }
                    , { field: 'HProcExchInterID', title: 'HProcExchInterID', hide: true }
                    , { field: 'HProcExchEntryID', title: 'HProcExchEntryID', hide: true }
                    , { field: 'HProcExchBillNo', title: 'HProcExchBillNo', hide: true }
                , cols: [[ //绑定信息表
                    { type: 'numbers', title: '序号', width: 50 }
                    , { field: 'HBarCode_P', title: '产品码', width: 265 }
                    , { field: 'HBarCode', title: '配件码', width: 265 }
                    , { field: 'HPartsQty', title: '配件数', width: 72 }
                    , { field: 'HBindingQty', title: '已绑数', width: 72 }
                    , { field: 'HMaterID', title: 'HMaterID', hide: true }
                    , { field: 'HBarCode', title: 'HBarCode', hide: true }
                    , { field: 'HMaterNumber', title: '物料代码', width: 160 }
                    , { field: 'HMaterName', title: '物料名称', width: 160 }
                    , { field: 'HMaterModel', title: '规格型号', width: 160, hide: true }
                    , { field: 'HBatchNo', title: '批次', width: 160, hide: true }
                    , { field: 'HSourceID', title: 'HSourceID', width: 160, hide: true }
                    , { field: 'HEquipID', title: 'HEquipID', width: 160, hide: true }
                    , { field: 'HGroupID', title: 'HGroupID', width: 160, hide: true }
                    , { field: 'HWorkerID', title: 'HWorkerID', width: 160, hide: true }
                    , { field: 'HScanDate', title: 'HScanDate', width: 160, hide: true }
                    , { field: 'HSourceInterID', title: 'HSourceInterID', width: 160, hide: true }
                    , { field: 'HSourceEntryID', title: 'HSourceEntryID', width: 160, hide: true }
                    , { field: 'HSourceBillNo', title: 'HSourceBillNo', width: 160, hide: true }
                    , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 66 }
                ]]
            }
            option2 = {
@@ -518,77 +524,158 @@
            table.render(option2);
        }
        
        //条码回车查询
        function txtHBarCode_KeyDown(HBarCode) {
            var HProcExchBillNo = $("#HProcExchBillNo").val();
        //产品SN镭雕码码回车查询
        function txtHBarCodeSN_KeyDown(HBarCode) {
            //主表信息查询
            var indexs = layer.load();
            //配件信息查询
            var HBillNo = $("#HBillNo").val();
            $.ajax({
                type: "GET",
                url: GetWEBURL() + "/Cj_SingleStation/SNHBardCodeList",
                url: GetWEBURL() + "/Cj_SingleStation/HBardCodeBomList_XW",
                async: false,
                data: { "HBarCode": HBarCode, "HProcExchBillNo": HProcExchBillNo, "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                data: { "HBillNo": HBillNo, "HBarCode": HBarCode, "HProcID": $("#HProcID").val(), "HOrgID": sessionStorage["OrganizationID"], "user": sessionStorage["HUserName"] },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.close(indexs);
                        var index = layer.load();
                        var data = data1.data
                        var rowarr = [];
                        for (var i = 0; i < data.length; i++) {
                            rowarr.push({
                                "HBarCode_P": data[i].产品码, "HPartsBarCode": "", "HPartsQty": data[i].分子子项用量, "HBindingQty": 0
                                , "HMaterID": data[i].子项物料ID, "HMaterNumber": data[i].子项物料代码, "HMaterName": data[i].子项物料名称, "HMaterModel": data[i].子项规格型号, "HBatchNo": ""
                                , "HSourceID": $("#HSourceID").val(), "HEquipID": 0, "HGroupID": $("#HGroupID").val(), "HWorkerID": $("#HEmpID").val()
                                , "HScanDate": new Date(), "HSourceInterID": $("#HICMOInterID").val()
                                , "HSourceEntryID": $("#HICMOEntryID").val(), "HSourceBillNo": $("#HICMOBillNo").val()
                            });
                        }
                        option.data = rowarr;
                        table.render(option);
                        //禁用输入框,背景色变灰
                        $("#HBarCode_SN").prop("readonly", true);
                        $("#HBarCode_SN").css('background', '#EDEDED')//背景色变灰
                        //光标跳转到配件码文本框上
                        $("#HBarCode_Key").focus();
                        //获取对应主表信息
                        $.ajax({
                            type: "GET",
                            url: GetWEBURL() + "/Cj_SingleStation/HBardCodeSNList",
                            url: GetWEBURL() + "/Cj_SingleStation/checkHBarCode_Batch",
                            async: false,
                            data: { "HBarCode": HBarCode, "user": sessionStorage["HUserName"] },
                            data: { "HBarCode": HBarCode, "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                            dataType: "json",
                            success: function (data1) {
                                if (data1.count == 1) {
                                    layer.close(index);
                                    $("#HBarCode_P").val(HBarCode);
                                    if (AllowLoadData()) {
                                        //保存数据
                                        set_AddAssemblyBill();
                                    }
                                    layer.close(indexs);
                                    $("#HSNNo").val(HBarCode);
                                    $("#HMaterNumber").val(data1.data[0]["HMaterNumber"])
                                    $("#HMaterName").val(data1.data[0]["HMaterName"])
                                    $("#HMaterModel").val(data1.data[0]["HMaterModel"])
                                    $("#HICMOBillNo").val(data1.data[0]["HSourceBillNo"])
                                }
                                else {
                                    layer.close(index);
                                    layer.msg(get_MessageError(data1.Message, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                                    layer.close(indexs);
                                    layer.confirm(data1.Message);
                                }
                                $("#HBarCodeSN").val("");
                            },
                            error: function (err) {
                                layer.close(index);
                                layer.close(indexs);
                                layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                                return;
                            }
                        });
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(get_MessageError(data1.Message, sessionStorage["HTranSlate"]));
                        $("#HBarCode_SN").val("");
                        $("#HBarCode_SN").focus();
                        layer.confirm(data1.Message);
                    }
                    //光标跳转到SN条码文本框上
                    //$("#HBarCodeSN").focus();
                    $("#HBarCodeSN").val("");
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                    layer.msg("错误:" + err, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    $("#HBarCode_SN").val("");
                    $("#HBarCode_SN").focus();
                    layer.confirm(data1.Message);
                }
            });
        }
        //配件码回车查询
        function txtHBarCodeKey_KeyDown(HBarCode) {
            var indexs = layer.load();
            var HBillNo = $("#HBillNo").val();
            $.ajax({
                type: "GET",
                url: GetWEBURL() + "/Cj_SingleStation/BarCodeBillBomMatch_XW",
                async: false,
                data: { "HBillNo": HBillNo, "HBarCode": HBarCode, "HBarCode_P": $('#HBarCode_SN').val(), "HProcID": $('#HProcID').val(), "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = data1.data
                        for (var i = 0; i < option.data.length; i++) {
                            if (data[0].HMaterID == option.data[i].HMaterID && option.data[i].HBindingQty < option.data[i].HPartsQty) {
                                option.data[i].HMaterID = data[0].HMaterID
                                option.data[i].HMaterNumber = data[0].物料代码
                                option.data[i].HMaterName = data[0].物料名称
                                option.data[i].HMaterModel = data[0].规格型号
                                option.data[i].HBarCode = data[0].配件码
                                option.data[i].HBindingQty = option.data[i].HBindingQty + 1
                                $("#HReturnMessage").text("成功扫码一个配件:" + data[0].物料名称);
                                break;
                            } else if (data[0].HMaterID == option.data[i].HMaterID && i == option.data.length - 1) {
                                layer.msg("第" + (i + 1) + "行已全部绑定,请勿超量绑定");
                            } else if (data[0].HMaterID != option.data[i].HMaterID && i == option.data.length - 1) {
                                layer.msg("所扫配件码:" + HBarCode + " ,对应物料不在生产用料清单中!");
                            }
                        }
                        //option.data = rowarr;
                        table.render(option);
                        //光标跳转到配件码文本框上
                        $("#HBarCode_Key").focus();
                        $("#HBarCode_Key").val("");
                        layer.close(indexs);
                    }
                    else {
                        layer.close(indexs);
                        layer.confirm(data1.Message);
                    }
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg("错误:" + err, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                }
            });
        }
        //加载网格
        function get_Display() {
        //加载历史过站清单信息
        function get_Display(sWhere = '') {
            var ajaxLoad = layer.load();
            var HProcID = $("#HProcID").val();
            var HSourceID = $("#HSourceID").val();
            sWhere += ` and HProcID = ${HProcID} and HSourceID = ${HSourceID}`
            $.ajax({
                url: GetWEBURL() + '/Cg_POOrderBill/list',
                url: GetWEBURL() + '/Cj_SingleStation/SingleStationOutBillList',
                async: false,
                type: "GET",
                data: { "sWhere": '', "user": sessionStorage["HUserName"] },
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = [];//列字段数据
                        var col = [];
                        var titleData=[]
                        var titleData = []
                        var totalArray = ["数量", "关联数量", "未关联数量", "打印条码数量", "未打印条码数量", "实收数量", "金额"];
                        //给空的数组赋值
                        for (var key in data1.list) {
@@ -626,15 +713,15 @@
                                }
                            }
                        }
                        option.cols = [col]
                        option.data = data1.data;
                        option2.cols = [col]
                        option2.data = data1.data;
                        //刷新表格数据
                        DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, []);
                        DisPlay_HideColumn(HModName2, sessionStorage["HUserName"], option2, []);
                        table.render(option);
                        table.render(option2);
                        layer.close(ajaxLoad);
                        //layer.alert("查询成功", { icon: 1 });
                    } else {
@@ -646,6 +733,170 @@
                    layer.alert("接口请求失败!", { icon: 5 });
                }
            });
        }
        //#region ä¿å­˜æ–¹æ³•
        function set_SaveBill() {
            var data = {
                "field": {
                    "HProcID": $("#HProcID").val(), "HBatchNo": "",
                    "HGroupID": $("#HGroupID").val(), "HSourceID": $("#HSourceID").val(),
                    "HProdOrgID": sessionStorage["OrganizationID"],
                    "HEmpID": $("#HEmpID").val(), "HDeptID": $("#HDeptID").val()
                }
            };
            var sMainStr = JSON.stringify(data.field);
            var HBarCode = $("#HBarCode_SN").val();
            var sSubStr = JSON.stringify(option.data);
            var sMainSub = sMainStr + ';' + HBarCode + ';' + sSubStr + ';' + sessionStorage["HUserName"];
            var indexs = layer.load();
            $.ajax({
                type: "POST",
                url: GetWEBURL() + "/Cj_SingleStation/AddStationOutBillAndAssemblyBill",
                async: false,
                data: { "sMainSub": sMainSub },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.close(indexs);
                        $("#HReturnMessage").text("成功过站扫码一个产品:" + HBarCode);
                        //切换产品
                        set_changeHBarCodeSN();
                        get_Display();
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(data1.Message, { icon: 5, btn: ["确认"], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "出现错误" });
                    }
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                }
            });
        }
        //#endregion
        //删除单据
        function btn_Delete() {
            var checkStatus = table.checkStatus('mainTable2')
                , data = checkStatus.data;
            if (checkStatus.data.length === 1) {
                layer.confirm(get_MessageError('[0000-1-003]确定删除' + data[0].单据号 + '吗?', sessionStorage["HTranSlate"]), function (index) {
                    var ajaxLoad = layer.load();
                    //逻辑删除方法
                    $.ajax({
                        url: GetWEBURL() + '/Cj_StationOutBill/del_StationOutBillandAssemblyBill',
                        type: "GET",
                        data: { "HInterID": data[0].hmainid, "HBarCode_P": data[0].镭雕SN码, "HDeleteMan": sessionStorage["HUserName"], "HBillSubType": "3791" },
                        success: function (result) {
                            if (result.count == 1) {
                                get_Display();
                                layer.close(ajaxLoad);
                            } else {
                                layer.close(ajaxLoad);
                                layer.alert(get_MessageError(result.Message, sessionStorage["HTranSlate"]) + result.Message, { icon: 5 });
                            }
                        }, error: function () {
                            layer.close(ajaxLoad);
                            layer.alert(get_MessageError("[0000-1-002]接口请求失败!", sessionStorage["HTranSlate"]), { icon: 5 });
                        }
                    });
                    layer.close(index);
                });
            } else {
                layer.msg(get_MessageError('[0000-1-001]请选择一行数据编辑!', sessionStorage["HTranSlate"]));
            }
        }
        //切换产品方法
        function set_changeHBarCodeSN() {
            $("#HSNNo").val("");
            $("#HMaterNumber").val("")
            $("#HMaterName").val("")
            $("#HMaterModel").val("")
            $("#HICMOBillNo").val("")
            //启用输入框,背景色恢复
            $("#HBarCode_SN").prop("readonly", false);
            $("#HBarCode_SN").css('background', '#FFFFFF')//产品码文本框背景色恢复
            //清空文本框内容
            $("#HBarCode_SN").val("");//产品码文本框内容清空
            //光标跳转到产品码文本框上
            $("#HBarCode_SN").focus();
            //清除绑定信息网格扫码记录
            option.data = [];
            table.render(option);
        }
        // ç”Ÿæˆå•据号
        function createBillNo() {
            //重新获取单据号
            $.ajax({
                url: GetWEBURL() + "/Web/GetMAXNumPDA",
                type: "GET",
                async: false,
                data: { "HBillType": '3727' },
                success: function (d) {
                    //$("#HInterID").val(d.data[0].HInterID);
                    $("#HBillNo").val(d.data[0].HBillNo);
                    //$("#HDate").val(Format(new Date(), "yyyy-MM-dd"));  //默认为当前日期
                    //重新启用保存按钮
                    //$("#btnSave").removeClass("layui-btn-disabled").attr("disabled", false);
                }
            });
        }
        //表格行内事件删除
        function set_GridDelete(obj) {
            var data = obj.data;
            var rowIndex = $(obj.tr).attr("data-index");
            if (obj.event === 'del') {
                layer.confirm('真的删除行吗?', function (index) {
                    var wait = layer.load();
                    //删除临时表数据
                    $.ajax({
                        url: GetWEBURL() + 'Deltet_Sc_AssemblyBill_BindBarCodeTemp',
                        type: "GET",
                        data: { "HBillNo": $("#HBillNo").val(), "HBarCode": option.data[rowIndex].HBarCode, "user": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { icon: 1, time: 500 }, function () {
                                    //关闭当前frame
                                    layer.close(wait);
                                });
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                                layer.close(wait);
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                            layer.close(wait);
                        }
                    });
                    //刷新表格数据
                    option.data[rowIndex].HBarCode = "";
                    option.data[rowIndex].HBindingQty = 0;
                    //option.data[rowIndex].HMaterID = 0;
                    option.data[rowIndex].HMaterNumber = "";
                    option.data[rowIndex].HMaterName = "";
                    option.data[rowIndex].HMaterModel = "";
                    option.data[rowIndex].HBarCode = "";
                    table.render(option);
                    layer.close(index);
                });
            }
        }
        //员工选择页面
@@ -783,18 +1034,27 @@
        //非空验证
        function AllowLoadData() {
            var HBarCode = $("#HBarCode_P").val();
            var HBarCode = $("#HBarCode_SN").val();
            if (HBarCode == "") {
                layer.msg(get_MessageError("[0000-2-019]产品SN不能为空!", sessionStorage["HTranSlate"]))
                return false;
            }
            var sSubStr = JSON.stringify(table.cache['mainTable']);
            var HEmpID2 = $("#HEmpID2").val();
            if (HEmpID2 == 0) {
                layer.msg(get_MessageError("[0000-2-030]操作员不能为空!", sessionStorage["HTranSlate"]))
                return false;
            if (typeof (sSubStr) != "undefined" && typeof (sSubStr) != "") {
                sSubStr = JSON.parse(sSubStr);
                for (var i = 0; i < sSubStr.length; i++) {
                    if (sSubStr[i].HBarCode == "" || sSubStr[i].HBarCode == undefined || sSubStr[i].HBarCode == null) {
                        layer.msg("绑定信息第" + (i + 1) + "行,配件码未绑定!", { icon: 5, btn: ['确认'], time: 4000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                        return Result = false;
                    }
                }
            } else {
                layer.msg("配件绑定信息不允许为空!", { icon: 5, btn: ['确认'], time: 4000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            //var HBadReasonID = $("#HBadReasonID").val();
            //if (HBadReasonID == 0) {
            //    layer.msg("不良原因不能为空!")
WebTM/views/³µ¼ä¹ÜÀí/µ¥Æ·¹ýÕ¾_СÎÀ/Cj_ProcessItemStationPlatform_batchKeyElement.html
@@ -33,7 +33,8 @@
                                <label class="layui-form-label" style="padding-left:0px" id="">镭雕码:</label>
                                <input type="text" class="layui-input" name="HBarCode_SN" lay-verify="HBarCode_SN" autocomplete="off" placeholder="请键入后回车" id="HBarCode_SN" style="width: 500px;">
                            </div>
                            <button class="layui-btn layui-btn-normal" style="float:left;" type="button" lay-submit="" lay-filter="btnNextProc" id="btnNextProc">换产品</button>
                            <!--<button class="layui-btn layui-btn-normal" style="float:left;" type="button" lay-submit="" lay-filter="btnSave" id="btnSave">保存</button>-->
                            <button class="layui-btn layui-btn-normal" style="float:right" type="button" lay-submit="" lay-filter="btnExit" id="btnExit">退出</button>
                            <button class="layui-btn layui-btn-normal" style="float: right" type="button" lay-submit="" lay-filter="btnChange" id="btnChange">变更</button>
@@ -46,7 +47,7 @@
                    </div>
                    <div class="layui-tab layui-tab-card" style="width: 49%; float: left; background-color: white;height:400px">
                    <div class="layui-tab layui-tab-card" style="width: 40%; float: left; background-color: white;height:400px">
                        <ul class="layui-tab-title" lay-filter="tab-all">
                            <li lay-id="1" style="padding:1px;" class="layui-this">产品信息</li>
                            <li lay-id="2" style="padding:1px;">其他信息</li>
@@ -64,11 +65,18 @@
                                            </div>
                                        </div>
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;">追溯单号</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBillNo" lay-verify="HBillNo" id="HBillNo" style="background-color:#EDEDED;" readonly>
                                                <input type="hidden" name="HInterID" id="HInterID" lay-verify="HInterID">
                                            </div>
                                        </div>
                                        <!--<div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;" id="">当前批次:</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
                                                <input type="text" class="layui-input" name="HBatchNo" lay-verify="HBatchNo" id="HBatchNo" style="background-color:#efefef4d;" readonly>
                                            </div>
                                        </div>
                                        </div>-->
                                        <div class="layui-inline">
                                            <label class="layui-form-label" style="width: 85px;" id="">供应商:</label>
                                            <div class="layui-input-block" style="margin-left: 120px;">
@@ -213,7 +221,7 @@
                        </div>
                    </div>
                    <div class="layui-tab layui-tab-card" style="width: 50.5%; float: right;">
                    <div class="layui-tab layui-tab-card" style="width: 59.5%; float: right;">
                        <ul class="layui-tab-title">
                            <li class="layui-this">关键件清单</li>
                        </ul>
@@ -240,12 +248,7 @@
                            </div>
                        </div>
                    </div>
                    <script type="text/html" id="toolbarDemo">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete"><i class="layui-icon layui-icon-form"></i>解绑</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                        </div>
                    </script>
                    <script type="text/html" id="toolbarDemo2">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete2"><i class="layui-icon layui-icon-form"></i>删除</button>
@@ -258,6 +261,9 @@
    </div>
</body>
</html>
<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    layui.config({
@@ -277,8 +283,8 @@
        //定义全局变量
        var HModName = "Cj_ProcessItemStationPlatform_batch";
        var HModName2 = "Cj_ProcessItemStationPlatform_batch2";
        var HModName = "Cj_ProcessItemStationPlatform_batchKeyElement";
        var HModName2 = "Cj_ProcessItemStationPlatform_batchKeyElement2";
        var option = [];
        var option2 = [];
        //#endregion
@@ -293,11 +299,17 @@
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        //头工具栏事件
        //绑定信息行内事件
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
        });
        table.on('toolbar(mainTable)', function (obj) {
            switch (obj.event) {
                //删除按钮
                case 'btn-Delete': set_DeleteBill();
                    break;
                //case 'btn-Delete': btn_Delete();
                //    break;
                //列设置
                case 'set_HideColumn': get_HideColumnNoPage(HModName, sessionStorage["HUserName"], option, get_Display);
                    break;
@@ -306,70 +318,118 @@
        table.on('toolbar(mainTable2)', function (obj) {
            switch (obj.event) {
                //删除按钮
                case 'btn-Delete2': set_DeleteBill2();
                case 'btn-Delete2': btn_Delete();
                    break;
                //列设置
                case 'set_HideColumn2': get_HideColumnNoPage(HModName2, sessionStorage["HUserName"], option2, get_Display);
                    break;
            };
        });
        //变更
        form.on('submit(btnChange)', function (data) {
            $("#HBarCode_Batch").val("");
            $("#HBarCode_Batch").prop("readonly", false);
            $("#HBarCode_BatchSec").val("");
            $("#HBatchNo").val("");
            $("#HMaterNumber").val("");
            $("#HMaterName").val("");
            $("#HMaterModel").val("");
            $("#HSupID").val(0)
            $("#HSupName").val(0)
            //进入页面默认光标在批次上
            $("#HBarCode_Batch").focus();
        });
        //批次码回车方法
        $('#HBarCode_Batch').on('keydown', function (event) {
            var HBarCode = $('#HBarCodeSN').val();
            var HBardCodeProcExchBillNo = $('#HBardCodeProcExchBillNo').val();
            var HBarCode = $('#HBarCode_Batch').val();
            if (event.keyCode == 13) {
                if (!HBardCodeProcExchBillNo) {
                    layer.msg(get_MessageError("[0000-2-034]请先扫流转卡!", sessionStorage["HTranSlate"]))
                    return;
                } else {
                    HBarCode = HBarCode.toUpperCase();
                    if (!HBarCode) {
                        layer.msg(get_MessageError("[0000-2-019]条形码不能为空!", sessionStorage["HTranSlate"]))
                        return;
                    } else {
                        if (HBarCode.length != 29 && HBarCode.length != 50) {
                            layer.alert(get_MessageError("[3791-2-012]子件条码长度不为29位或50位!", sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-035]退出', sessionStorage["HTranSlate"])], time: 100000, offset: 't' });
                            return;
                        }
                //如果镭雕码不为空
                if (HBarCode) {
                    txtHBarCode_KeyDown(HBarCode);
                }
                        if (HBarCode.match(/[^\x00-\xff]/g) != null) {
                            layer.alert(get_MessageError("[3791-2-013]必须是半角字符!", sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-035]退出', sessionStorage["HTranSlate"])], time: 100000, offset: 't' });
                            return;
                        }
                    }
                }
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i]["HBatchNo"] == "") {
                        layer.msg(get_MessageError("[3791-2-014]当前工序批次不能为空!", sessionStorage["HTranSlate"]))
                        return;
                    }
                }
                txtHBarCode_KeyDown(HBarCode);
            }
        });
      
        //镭雕码回车方法
        $('#HBarCode_SN').on('keydown', function (event) {
            var HBarCode = $('#HBardCodeProcExchBillNo').val();
            var HBarCode_SN = $('#HBarCode_SN').val();
            if (event.keyCode == 13) {
                if (!HBarCode) {
                    layer.msg(get_MessageError("[0000-1-057]流转卡不能为空!", sessionStorage["HTranSlate"]))
                    return;
                if ($("#HBarCode_Batch").val() == "" || $("#HBarCode_Batch").val() == null) {
                    layer.msg("未扫批次码请先扫码");
                    $("#HBarCode_Batch").focus();
                    return
                }
                setIntervalIndex = setInterval(setIntervalList, 30000);
                get_BomList(HBarCode);
                //if (option.data != 0) {
                //    //保存到临时表
                //    get_AddBomTempList();
                //}
                //查询不良记录
                get_BadRecords();
                //查询合格记录
                get_HGRecords();
                if (HBarCode_SN) {
                    createBillNo();
                    txtHBarCodeSN_KeyDown(HBarCode_SN);
                }
            }
        });
        //关键件回车方法
        $('#HBarCode_Key').on('keydown', function (event) {
            var HBarCode_Key = $('#HBarCode_Key').val();
            if (event.keyCode == 13) {
                if ($("#HBarCode_Batch").val() == "" || $("#HBarCode_Batch").val() == null) {
                    layer.msg("未扫批次码请先扫码");
                    $("#HBarCode_Batch").focus();
                    return
                }
                if ($("#HBarCode_SN").val() == "" || $("#HBarCode_SN").val() == null) {
                    layer.msg("未扫SN码请先扫码");
                    $("#HBarCode_SN").focus();
                    return
                }
                if (HBarCode_Key) {
                    txtHBarCodeKey_KeyDown(HBarCode_Key);
                }
            }
        });
        //保存
        form.on('submit(btnSave)', function (data) {
            if (AllowLoadData(data)) {
                set_SaveBill(data);
            }
        });
        //换产品
        form.on('submit(btnNextProc)', function (data) {
            //for (var i = 0; i < option.data.length; i++) {
            //    if (option.data[i].HBindingQty < 1 || option.data[i].HBarCode == "") {
            //        layer.alert("第<span style='color: red;'>" + (i + 1) + "</span>行,配件 <span style='color: blue;'>" + option.data[i].HMaterName + "</span> æœªç»‘定齐整!")
            //        return;
            //    }
            //}
            //保存关键件
            if (AllowLoadData(data)) {
                set_SaveBill(data);
            }
            //重新获取单据号
            //$.ajax({
            //    url: GetWEBURL() + "/Web/GetMAXNumPDA",
            //    type: "GET",
            //    data: { "HBillType": '3727' },
            //    success: function (d) {
            //        $("#HInterID").val(d.data[0].HInterID);
            //        $("#HBillNo").val(d.data[0].HBillNo);
            //        $("#HDate").val(Format(new Date(), "yyyy-MM-dd"));  //默认为当前日期
            //        //重新启用保存按钮
            //        $("#btnSave").removeClass("layui-btn-disabled").attr("disabled", false);
            //    }
            //});
            //历史绑定记录查询
            //get_Display();
        });
        //选择操作员
        form.on('submit(btnHEmp)', function () {
@@ -415,16 +475,17 @@
        //初始化界面
        function set_ClearBill() {
            //进入页面默认光标在流转卡上
            $("#HBardCodeProcExchBillNo").focus();
            $("#HBarCode_Batch").focus();
            //制单人
            $("#HMaker").val(sessionStorage["HUserName"]);
            $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd"));
            //通过登录用户获取默认值
            GetDefValByUser();
            //初始化表格
            set_InitGrid();
            //
            //get_Display();
            get_Display();
        }
        //#region é€šè¿‡ç™»å½•用户获取默认值
@@ -461,33 +522,55 @@
        }
            //#endregion
        // ç”Ÿæˆå•据号
        function createBillNo() {
            //重新获取单据号
            $.ajax({
                url: GetWEBURL() + "/Web/GetMAXNumPDA",
                type: "GET",
                async: false,
                data: { "HBillType": '3727' },
                success: function (d) {
                    //$("#HInterID").val(d.data[0].HInterID);
                    $("#HBillNo").val(d.data[0].HBillNo);
                    //$("#HDate").val(Format(new Date(), "yyyy-MM-dd"));  //默认为当前日期
                    //重新启用保存按钮
                    //$("#btnSave").removeClass("layui-btn-disabled").attr("disabled", false);
                }
            });
        }
        //关键件清单
        function set_InitGrid() {
            option= {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
                //, toolbar: '#toolbarDemo'
                , page: false
                , totalRow: true
                , cellMinWidth: 120
                , data: []
                , height: 285
                , limit: 10
                , cols: [[
                    { type: 'numbers', title: '序号' }
                    , { field: '日期', title: '日期' }
                    , { field: '配件代码', title: '配件代码' }
                    , { field: '配件名称', title: '配件名称' }
                    , { field: '配件规格', title: '配件规格' }
                    , { field: '配件数量', title: '配件数量', totalRow: true}
                    , { field: 'HBatchNo', title: '当前批次' }
                    , { field: 'HICMOInterID', title: 'HICMOInterID', hide: true }
                    , { field: 'HICMOEntryID', title: 'HICMOEntryID', hide: true }
                    , { field: 'HICMOBillNo', title: 'HICMOBillNo', hide: true }
                    , { field: 'HProcExchInterID', title: 'HProcExchInterID', hide: true }
                    , { field: 'HProcExchEntryID', title: 'HProcExchEntryID', hide: true }
                    , { field: 'HProcExchBillNo', title: 'HProcExchBillNo', hide: true }
                , limit: 50
                , cols: [[ //绑定信息表
                    { type: 'numbers', title: '序号', width: 50 }
                    , { field: 'HBarCode_P', title: '产品码', width: 265 }
                    , { field: 'HBarCode', title: '配件码', width: 265 }
                    , { field: 'HPartsQty', title: '配件数', width: 72 }
                    , { field: 'HBindingQty', title: '已绑数', width: 72 }
                    , { field: 'HMaterID', title: 'HMaterID', hide: true }
                    , { field: 'HBarCode', title: 'HBarCode', hide: true }
                    , { field: 'HMaterNumber', title: '物料代码', width: 160 }
                    , { field: 'HMaterName', title: '物料名称', width: 160 }
                    , { field: 'HMaterModel', title: '规格型号', width: 160, hide: true }
                    , { field: 'HBatchNo', title: '批次', width: 160, hide: true }
                    , { field: 'HSourceID', title: 'HSourceID', width: 160, hide: true }
                    , { field: 'HEquipID', title: 'HEquipID', width: 160, hide: true }
                    , { field: 'HGroupID', title: 'HGroupID', width: 160, hide: true }
                    , { field: 'HWorkerID', title: 'HWorkerID', width: 160, hide: true }
                    , { field: 'HScanDate', title: 'HScanDate', width: 160, hide: true }
                    , { field: 'HSourceInterID', title: 'HSourceInterID', width: 160, hide: true }
                    , { field: 'HSourceEntryID', title: 'HSourceEntryID', width: 160, hide: true }
                    , { field: 'HSourceBillNo', title: 'HSourceBillNo', width: 160, hide: true }
                    , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 66 }
                ]]
            }
            option2 = {
@@ -524,53 +607,35 @@
        //条码回车查询
        function txtHBarCode_KeyDown(HBarCode) {
            var HProcExchBillNo = $("#HProcExchBillNo").val();
            var indexs = layer.load();
            $.ajax({
                type: "GET",
                url: GetWEBURL() + "/Cj_SingleStation/SNHBardCodeList",
                url: GetWEBURL() + "/Cj_SingleStation/checkHBarCode_Batch",
                async: false,
                data: { "HBarCode": HBarCode, "HProcExchBillNo": HProcExchBillNo, "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                data: { "HBarCode": HBarCode, "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.close(indexs);
                        var index = layer.load();
                        $("#HBarCode_BatchSec").val(HBarCode);
                        const parts = HBarCode.split('@');
                        $("#HBatchNo").val(parts[2]);
                        $.ajax({
                            type: "GET",
                            url: GetWEBURL() + "/Cj_SingleStation/HBardCodeSNList",
                            async: false,
                            data: { "HBarCode": HBarCode, "user": sessionStorage["HUserName"] },
                            dataType: "json",
                            success: function (data1) {
                                if (data1.count == 1) {
                                    layer.close(index);
                                    $("#HBarCode_P").val(HBarCode);
                                    if (AllowLoadData()) {
                                        //保存数据
                                        set_AddAssemblyBill();
                                    }
                                }
                                else {
                                    layer.close(index);
                                    layer.msg(get_MessageError(data1.Message, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                                }
                                $("#HBarCodeSN").val("");
                            },
                            error: function (err) {
                                layer.close(index);
                                layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                            }
                        });
                        $("#HMaterNumber").val(data1.data[0]["HMaterNumber"])
                        $("#HMaterName").val(data1.data[0]["HMaterName"])
                        $("#HMaterModel").val(data1.data[0]["HMaterModel"])
                        $("#HSupID").val(data1.data[0]["HSupID"])
                        $("#HSupName").val(data1.data[0]["HSupName"])
                        $("#HBarCode_Batch").prop("readonly", true);
                        //光标在镭雕码上
                        $("#HBarCode_SN").focus();
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(get_MessageError(data1.Message, sessionStorage["HTranSlate"]));
                        layer.msg(data1.Message);
                    }
                    //光标跳转到SN条码文本框上
                    //$("#HBarCodeSN").focus();
                    $("#HBarCodeSN").val("");
                },
                error: function (err) {
                    layer.close(indexs);
@@ -579,19 +644,228 @@
            });
        }
        //加载网格
        function get_Display() {
            var ajaxLoad = layer.load();
        //产品SN镭雕码码回车查询
        function txtHBarCodeSN_KeyDown(HBarCode) {
            //主表信息查询
            var indexs = layer.load();
            //配件信息查询
            var HBillNo = $("#HBillNo").val();
            $.ajax({
                url: GetWEBURL() + '/Cg_POOrderBill/list',
                type: "GET",
                url: GetWEBURL() + "/Cj_SingleStation/HBardCodeBomList_XW",
                async: false,
                data: { "HBillNo": HBillNo,"HBarCode": HBarCode, "HProcID": $("#HProcID").val(), "HOrgID": sessionStorage["OrganizationID"], "user": sessionStorage["HUserName"] },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = data1.data
                        var rowarr = [];
                        for (var i = 0; i < data.length; i++) {
                            rowarr.push({
                                "HBarCode_P": data[i].产品码, "HPartsBarCode": "", "HPartsQty": data[i].分子子项用量, "HBindingQty": 0
                                , "HMaterID": data[i].子项物料ID, "HMaterNumber": data[i].子项物料代码, "HMaterName": data[i].子项物料名称, "HMaterModel": data[i].子项规格型号, "HBatchNo": ""
                                , "HSourceID": $("#HSourceID").val(), "HEquipID": 0, "HGroupID": $("#HGroupID").val(), "HWorkerID": $("#HEmpID").val()
                                , "HScanDate": new Date(), "HSourceInterID": $("#HICMOInterID").val()
                                , "HSourceEntryID": $("#HICMOEntryID").val(), "HSourceBillNo": $("#HICMOBillNo").val()
                            });
                        }
                        option.data = rowarr;
                        table.render(option);
                        //禁用输入框,背景色变灰
                        $("#HBarCode_SN").prop("readonly", true);
                        $("#HBarCode_SN").css('background', '#EDEDED')//背景色变灰
                        //光标跳转到配件码文本框上
                        $("#HBarCode_Key").focus();
                        //获取对应主表信息
                        $.ajax({
                            type: "GET",
                            url: GetWEBURL() + "/Cj_SingleStation/checkHBarCode_Batch",
                            async: false,
                            data: { "HBarCode": HBarCode, "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                            dataType: "json",
                            success: function (data1) {
                                if (data1.count == 1) {
                                    layer.close(indexs);
                                    $("#HSNNo").val(HBarCode);
                                    $("#HMaterNumber").val(data1.data[0]["HMaterNumber"])
                                    $("#HMaterName").val(data1.data[0]["HMaterName"])
                                    $("#HMaterModel").val(data1.data[0]["HMaterModel"])
                                    $("#HICMOBillNo").val(data1.data[0]["HSourceBillNo"])
                                }
                                else {
                                    layer.close(indexs);
                                    layer.confirm(data1.Message);
                                }
                            },
                            error: function (err) {
                                layer.close(indexs);
                                layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                                return;
                            }
                        });
                    }
                    else {
                        layer.close(indexs);
                        $("#HBarCode_SN").val("");
                        $("#HBarCode_SN").focus();
                        layer.confirm(data1.Message);
                    }
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg("错误:" + err, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                    $("#HBarCode_SN").val("");
                    $("#HBarCode_SN").focus();
                    layer.confirm(data1.Message);
                }
            });
        }
        //配件码回车查询
        function txtHBarCodeKey_KeyDown(HBarCode) {
            var indexs = layer.load();
            var HBillNo = $("#HBillNo").val();
            $.ajax({
                type: "GET",
                url: GetWEBURL() + "/Cj_SingleStation/BarCodeBillBomMatch_XW",
                async: false,
                data: { "HBillNo": HBillNo,"HBarCode": HBarCode, "HBarCode_P": $('#HBarCode_SN').val(), "HProcID": $('#HProcID').val(), "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = data1.data
                        for (var i = 0; i < option.data.length; i++) {
                            if (data[0].HMaterID == option.data[i].HMaterID && option.data[i].HBindingQty < option.data[i].HPartsQty) {
                                option.data[i].HMaterID = data[0].HMaterID
                                option.data[i].HMaterNumber = data[0].物料代码
                                option.data[i].HMaterName = data[0].物料名称
                                option.data[i].HMaterModel = data[0].规格型号
                                option.data[i].HBarCode = data[0].配件码
                                option.data[i].HBindingQty = option.data[i].HBindingQty + 1
                                $("#HReturnMessage").text("成功扫码一个配件:" + data[0].物料名称);
                                break;
                            } else if (data[0].HMaterID == option.data[i].HMaterID && i == option.data.length - 1) {
                                layer.msg("第" + (i + 1) + "行已全部绑定,请勿超量绑定");
                            } else if (data[0].HMaterID != option.data[i].HMaterID && i == option.data.length - 1) {
                                layer.msg("所扫配件码:" + HBarCode + " ,对应物料不在生产用料清单中!");
                            }
                        }
                        //option.data = rowarr;
                        table.render(option);
                        //光标跳转到配件码文本框上
                        $("#HBarCode_Key").focus();
                        $("#HBarCode_Key").val("");
                        layer.close(indexs);
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(data1.Message);
                    }
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg("错误:" + err, { icon: 5, btn: ['确认'], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                }
            });
        }
        //切换产品方法
        function set_changeHBarCodeSN() {
            $("#HSNNo").val("");
            $("#HMaterNumber").val("")
            $("#HMaterName").val("")
            $("#HMaterModel").val("")
            $("#HICMOBillNo").val("")
            //启用输入框,背景色恢复
            $("#HBarCode_SN").prop("readonly", false);
            $("#HBarCode_SN").css('background', '#FFFFFF')//产品码文本框背景色恢复
            //清空文本框内容
            $("#HBarCode_SN").val("");//产品码文本框内容清空
            //光标跳转到产品码文本框上
            $("#HBarCode_SN").focus();
            //清除绑定信息网格扫码记录
            option.data = [];
            table.render(option);
        }
        //#region ä¿å­˜æ–¹æ³•
        function set_SaveBill() {
            var data = {
                "field": {
                    "HProcID": $("#HProcID").val(), "HBatchNo": $("#HBarCode_Batch").val(),
                    "HGroupID": $("#HGroupID").val(), "HSourceID": $("#HSourceID").val(),
                    "HProdOrgID": sessionStorage["OrganizationID"],
                    "HEmpID": $("#HEmpID").val(), "HDeptID": $("#HDeptID").val()
                }
            };
            var sMainStr = JSON.stringify(data.field);
            var HBarCode = $("#HBarCode_SN").val();
            var sSubStr = JSON.stringify(option.data);
            var sMainSub = sMainStr + ';' + HBarCode + ';' + sSubStr+';' + sessionStorage["HUserName"];
            var indexs = layer.load();
            $.ajax({
                type: "POST",
                url: GetWEBURL() + "/Cj_SingleStation/AddStationOutBillAndAssemblyBill",
                async: false,
                data: { "sMainSub": sMainSub },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.close(indexs);
                        $("#HReturnMessage").text("成功过站扫码一个产品:" + HBarCode);
                        //切换产品
                        set_changeHBarCodeSN();
                        get_Display();
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(data1.Message, { icon: 5, btn: ["确认"], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "出现错误" });
                    }
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                }
            });
        }
        //#endregion
        function get_Display(sWhere = '') {
            var ajaxLoad = layer.load();
            var HProcID = $("#HProcID").val();
            var HSourceID = $("#HSourceID").val();
            sWhere += ` and HProcID = ${HProcID} and HSourceID = ${HSourceID}`
            $.ajax({
                url: GetWEBURL() + '/Cj_SingleStation/SingleStationOutBillList',
                async: false,
                type: "GET",
                data: { "sWhere": '', "user": sessionStorage["HUserName"] },
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = [];//列字段数据
                        var col = [];
                        var titleData=[]
                        var titleData = []
                        var totalArray = ["数量", "关联数量", "未关联数量", "打印条码数量", "未打印条码数量", "实收数量", "金额"];
                        //给空的数组赋值
                        for (var key in data1.list) {
@@ -629,15 +903,15 @@
                                }
                            }
                        }
                        option.cols = [col]
                        option.data = data1.data;
                        option2.cols = [col]
                        option2.data = data1.data;
                        //刷新表格数据
                        DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, []);
                        DisPlay_HideColumn(HModName2, sessionStorage["HUserName"], option2, []);
                        table.render(option);
                        table.render(option2);
                        layer.close(ajaxLoad);
                        //layer.alert("查询成功", { icon: 1 });
                    } else {
@@ -782,21 +1056,74 @@
            })
        }
        //表格行内事件删除
        function set_GridDelete(obj) {
            var data = obj.data;
            var rowIndex = $(obj.tr).attr("data-index");
            if (obj.event === 'del') {
                layer.confirm('真的删除行吗?', function (index) {
                    var wait = layer.load();
                    //删除临时表数据
                    $.ajax({
                        url: GetWEBURL() + 'Deltet_Sc_AssemblyBill_BindBarCodeTemp',
                        type: "GET",
                        data: { "HBillNo": $("#HBillNo").val(), "HBarCode": option.data[rowIndex].HBarCode, "user": sessionStorage["HUserName"] },
                        success: function (result) {
                            if (result.count == 1) {
                                layer.msg(result.Message, { icon: 1, time: 500 }, function () {
                                    //关闭当前frame
                                    layer.close(wait);
                                });
                            } else {
                                layer.alert(result.code + result.Message, { icon: 5 });
                                layer.close(wait);
                            }
                        }, error: function () {
                            layer.alert("接口请求失败!", { icon: 5 });
                            layer.close(wait);
                        }
                    });
                    //刷新表格数据
                    option.data[rowIndex].HBarCode = "";
                    option.data[rowIndex].HBindingQty = 0;
                    //option.data[rowIndex].HMaterID = 0;
                    option.data[rowIndex].HMaterNumber = "";
                    option.data[rowIndex].HMaterName = "";
                    option.data[rowIndex].HMaterModel = "";
                    option.data[rowIndex].HBarCode = "";
                    table.render(option);
                    layer.close(index);
                });
            }
        }
        //非空验证
        function AllowLoadData() {
            var HBarCode = $("#HBarCode_P").val();
            var HBarCode = $("#HBarCode_SN").val();
            if (HBarCode == "") {
                layer.msg(get_MessageError("[0000-2-019]产品SN不能为空!", sessionStorage["HTranSlate"]))
                return false;
            }
            var sSubStr = JSON.stringify(table.cache['mainTable']);
            var HEmpID2 = $("#HEmpID2").val();
            if (HEmpID2 == 0) {
                layer.msg(get_MessageError("[0000-2-030]操作员不能为空!", sessionStorage["HTranSlate"]))
                return false;
            if (typeof (sSubStr) != "undefined" && typeof (sSubStr) != "") {
                sSubStr = JSON.parse(sSubStr);
                for (var i = 0; i < sSubStr.length; i++) {
                    if (sSubStr[i].HBarCode == "" || sSubStr[i].HBarCode == undefined || sSubStr[i].HBarCode == null) {
                        layer.msg("绑定信息第" + (i + 1) + "行,配件码未绑定!", { icon: 5, btn: ['确认'], time: 4000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                        return Result = false;
                    }
                }
            } else {
                layer.msg("配件绑定信息不允许为空!", { icon: 5, btn: ['确认'], time: 4000, offset: 't', skin: 'layui-layer-lan', title: "温馨提示" });
                return Result = false;
            }
            //var HBadReasonID = $("#HBadReasonID").val();
            //if (HBadReasonID == 0) {
@@ -806,6 +1133,38 @@
            return true;
        }
        //删除单据
        function btn_Delete() {
            var checkStatus = table.checkStatus('mainTable2')
                , data = checkStatus.data;
            if (checkStatus.data.length === 1) {
                layer.confirm(get_MessageError('[0000-1-003]确定删除' + data[0].单据号 + '吗?', sessionStorage["HTranSlate"]), function (index) {
                    var ajaxLoad = layer.load();
                    //逻辑删除方法
                    $.ajax({
                        url: GetWEBURL() + '/Cj_StationOutBill/del_StationOutBillandAssemblyBill',
                        type: "GET",
                        data: { "HInterID": data[0].hmainid, "HBarCode_P": data[0].镭雕SN码, "HDeleteMan": sessionStorage["HUserName"], "HBillSubType": "3791" },
                        success: function (result) {
                            if (result.count == 1) {
                                get_Display();
                                layer.close(ajaxLoad);
                            } else {
                                layer.close(ajaxLoad);
                                layer.alert(get_MessageError(result.Message, sessionStorage["HTranSlate"]) + result.Message, { icon: 5 });
                            }
                        }, error: function () {
                            layer.close(ajaxLoad);
                            layer.alert(get_MessageError("[0000-1-002]接口请求失败!", sessionStorage["HTranSlate"]), { icon: 5 });
                        }
                    });
                    layer.close(index);
                });
            } else {
                layer.msg(get_MessageError('[0000-1-001]请选择一行数据编辑!', sessionStorage["HTranSlate"]));
            }
        }
        //#endregion
    });
WebTM/views/³µ¼ä¹ÜÀí/µ¥Æ·¹ýÕ¾_СÎÀ/Cj_ProcessItemStationPlatform_generateCaseCode.html
@@ -49,8 +49,8 @@
                            <div class="layui-tab-content" style="">
                                <div class="layui-tab-item  layui-show">
                                    <div class="layui-input-block" style="display: inline-block; margin-left:0px;">
                                        <label class="layui-form-label" style="padding-left:0px" id="">需求数量:</label>
                                        <input type="text" class="layui-input" name="HNeedQty" lay-verify="HNeedQty" autocomplete="off" id="HNeedQty" value="100" style="width: 100px;float:left">
                                        <label class="layui-form-label" style="padding-left:0px" id="">最大箱数:</label>
                                        <input type="text" class="layui-input" name="HNeedQty" lay-verify="HNeedQty" autocomplete="off" id="HNeedQty" value="2" style="width: 100px;float:left" readonly>
                                    </div>
                                    <div class="layui-input-block" style="display: inline-block; margin-left:0px;">
@@ -58,14 +58,74 @@
                                        <input type="text" class="layui-input" name="HWeight" lay-verify="HWeight" autocomplete="off" id="HWeight" value="100" style="width: 100px;float:left">
                                    </div>
                                    <div class="layui-input-block" style="display: inline-block; margin-left:0px;">
                                        <label class="layui-form-label" style="padding-left:0px" id="">最小重量:</label>
                                        <input type="text" class="layui-input" name="HWeight" lay-verify="HMinWeight" autocomplete="off" id="HMinWeight" value="0" style="width: 100px;float:left">
                                    </div>
                                    <div class="layui-input-block" style="display: inline-block; margin-left:0px;">
                                        <label class="layui-form-label" style="padding-left:0px" id="">最大重量:</label>
                                        <input type="text" class="layui-input" name="HWeight" lay-verify="HMaxWeight" autocomplete="off" id="HMaxWeight" value="101" style="width: 100px;float:left">
                                    </div>
                                    <table class="layui-hide" id="mainTable" lay-filter="mainTable"></table>
                                </div>
                                <!--其他信息-->
                                <div class="layui-tab-item">
                                    <div class="layui-form-item" style="padding-top: 10px;">
                                        <div class="layui-row">
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px;padding: 9px 18px;" id="BT_HProcName">工序</label>
                                                <div class="layui-input-block" style="margin-left: 77px;">
                                                    <input type="text" class="layui-input" name="HProcName" lay-verify="HProcName" id="HProcName" style="background-color: #efefef4d; width: 60%; display: inline-block;" readonly>
                                                    <input type="hidden" name="HProcID" id="HProcID" lay-verify="HProcID" value="0">
                                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHProc" id="btnHProc" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                    </button>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px; padding: 9px 18px;" id="BT_HDeptName">当前车间</label>
                                                <div class="layui-input-block" style="margin-left: 77px;">
                                                    <input type="text" class="layui-input" lay-verify="HDeptName" name="HDeptName" id="HDeptName" style="background-color: #efefef4d; width: 60%; display: inline-block;" readonly>
                                                    <input type="hidden" class="layui-input" lay-verify="HDeptID" name="HDeptID" id="HDeptID">
                                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHDept" id="btnHDept" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                    </button>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px;padding: 9px 18px;" id="BT_HEmpName">操作员</label>
                                                <div class="layui-input-block" style="margin-left: 77px;">
                                                    <input type="text" class="layui-input" lay-verify="HEmpName" name="HEmpName" id="HEmpName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                    <input type="hidden" class="layui-input" lay-verify="HEmpID" name="HEmpID" id="HEmpID" value="0">
                                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHEmp" id="btnHEmp" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                    </button>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px; padding: 9px 18px;" id="BT_HGroupName">生产班组</label>
                                                <div class="layui-input-block" style="margin-left: 77px;">
                                                    <input type="text" class="layui-input" name="HGroupName" id="HGroupName" lay-verify="HGroupName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                    <input type="hidden" class="layui-input" name="HGroupID" lay-verify="HGroupID" id="HGroupID" value="0">
                                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHGroup" id="btnHGroup" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                    </button>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px; padding: 9px 18px;" id="BT_HSourceName">生产资源</label>
                                                <div class="layui-input-block" style="margin-left: 77px;">
                                                    <input type="text" class="layui-input" name="HSourceName" id="HSourceName" lay-verify="HSourceName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                                    <input type="hidden" class="layui-input" name="HSourceID" lay-verify="HSourceID" id="HSourceID" value="0">
                                                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHSource" id="btnHSource" style="padding: 0 10px;float: right;margin-right: 3px;">
                                                        <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                                    </button>
                                                </div>
                                            </div>
                                            <div class="layui-inline">
                                                <label class="layui-form-label" style="width: 85px;">制单人</label>
                                                <div class="layui-input-block" style="margin-left: 120px;">
@@ -101,12 +161,12 @@
                    <script type="text/html" id="toolbarDemo">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete"><i class="layui-icon layui-icon-form"></i>解绑</button>
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                            <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn" id="HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>-->
                        </div>
                    </script>
                    <script type="text/html" id="toolbarDemo2">
                        <div class="layui-btn-container">
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete2"><i class="layui-icon layui-icon-form"></i>删除</button>
                            <!--<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Delete2"><i class="layui-icon layui-icon-form"></i>删除</button>-->
                            <button type="button" class="layui-btn layui-btn-sm" lay-event="set_HideColumn2" id="HideColumn"><i class="layui-icon layui-icon-form"></i>列设置</button>
                        </div>
                    </script>
@@ -116,6 +176,9 @@
    </div>
</body>
</html>
<script type="text/html" id="barDemo">
    <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
</script>
<script>
    layui.config({
@@ -135,10 +198,11 @@
        //定义全局变量
        var HModName = "Cj_ProcessItemStationPlatform_batch";
        var HModName2 = "Cj_ProcessItemStationPlatform_batch2";
        var HModName = "Cj_ProcessItemStationPlatform_CaseCode";
        var HModName2 = "Cj_ProcessItemStationPlatform_CaseCode2";
        var option = [];
        var option2 = [];
        var barCodeData = [];//记录SN条码信息
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
@@ -150,11 +214,16 @@
        //#endregion
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        table.on('tool(mainTable)', function (obj) {
            set_GridDelete(obj);   //行内删除
        });
        //头工具栏事件
        table.on('toolbar(mainTable)', function (obj) {
            switch (obj.event) {
                //删除按钮
                case 'btn-Delete': set_DeleteBill();
                case 'btn-Delete': btn_Delete();
                    break;
                //列设置
                case 'set_HideColumn': get_HideColumnNoPage(HModName, sessionStorage["HUserName"], option, get_Display);
@@ -171,60 +240,14 @@
                    break;
            };
        });
        //批次码回车方法
        $('#HBarCode_Batch').on('keydown', function (event) {
            var HBarCode = $('#HBarCodeSN').val();
            var HBardCodeProcExchBillNo = $('#HBardCodeProcExchBillNo').val();
            if (event.keyCode == 13) {
                if (!HBardCodeProcExchBillNo) {
                    layer.msg(get_MessageError("[0000-2-034]请先扫流转卡!", sessionStorage["HTranSlate"]))
                    return;
                } else {
                    HBarCode = HBarCode.toUpperCase();
                    if (!HBarCode) {
                        layer.msg(get_MessageError("[0000-2-019]条形码不能为空!", sessionStorage["HTranSlate"]))
                        return;
                    } else {
                        if (HBarCode.length != 29 && HBarCode.length != 50) {
                            layer.alert(get_MessageError("[3791-2-012]子件条码长度不为29位或50位!", sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-035]退出', sessionStorage["HTranSlate"])], time: 100000, offset: 't' });
                            return;
                        }
                        if (HBarCode.match(/[^\x00-\xff]/g) != null) {
                            layer.alert(get_MessageError("[3791-2-013]必须是半角字符!", sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-035]退出', sessionStorage["HTranSlate"])], time: 100000, offset: 't' });
                            return;
                        }
                    }
                }
                for (var i = 0; i < option.data.length; i++) {
                    if (option.data[i]["HBatchNo"] == "") {
                        layer.msg(get_MessageError("[3791-2-014]当前工序批次不能为空!", sessionStorage["HTranSlate"]))
                        return;
                    }
                }
                txtHBarCode_KeyDown(HBarCode);
            }
        });
      
        //镭雕码回车方法
        $('#HBarCode_SN').on('keydown', function (event) {
            var HBarCode = $('#HBardCodeProcExchBillNo').val();
            var HBarCode_SN = $('#HBarCode_SN').val();
            if (event.keyCode == 13) {
                if (!HBarCode) {
                    layer.msg(get_MessageError("[0000-1-057]流转卡不能为空!", sessionStorage["HTranSlate"]))
                    return;
                }
                setIntervalIndex = setInterval(setIntervalList, 30000);
                get_BomList(HBarCode);
                //if (option.data != 0) {
                //    //保存到临时表
                //    get_AddBomTempList();
                //}
                //查询不良记录
                get_BadRecords();
                //查询合格记录
                get_HGRecords();
                txtHBarCode_KeyDown(HBarCode_SN);
               
            }
        });
@@ -264,7 +287,10 @@
                Pub_Close(2);
            }
        });
        //变更
        form.on('submit(btnSave)', function (data) {
            set_getCaseCode();
        });
        //#endregion
@@ -273,7 +299,7 @@
        //初始化界面
        function set_ClearBill() {
            //进入页面默认光标在流转卡上
            $("#HBardCodeProcExchBillNo").focus();
            $("#HBarCode_SN").focus();
            //制单人
            $("#HMaker").val(sessionStorage["HUserName"]);
            $("#HMakeDate").val(Format(new Date(), "yyyy-MM-dd"));
@@ -282,7 +308,13 @@
            //初始化表格
            set_InitGrid();
            //
            //get_Display();
            get_Display();
            var data = localStorage.getItem("CaseCodeDataCache");
            if (data != null) {
                option.data = JSON.parse(data);
                table.render(option);
            }
        }
        //#region é€šè¿‡ç™»å½•用户获取默认值
@@ -317,13 +349,13 @@
                }
            })
        }
            //#endregion
        //#endregion
        //关键件清单
        //彩盒清单
        function set_InitGrid() {
            option= {
                elem: '#mainTable'
                , toolbar: '#toolbarDemo'
                //, toolbar: '#toolbarDemo'
                , page: false
                , totalRow: true
                , cellMinWidth: 120
@@ -331,21 +363,21 @@
                , height: 285
                , limit: 10
                , cols: [[
                    { type: 'numbers', title: '序号' }
                    , { field: '日期', title: '日期' }
                    , { field: '配件代码', title: '配件代码' }
                    , { field: '配件名称', title: '配件名称' }
                    , { field: '配件规格', title: '配件规格' }
                    , { field: '配件数量', title: '配件数量', totalRow: true}
                    , { field: 'HBatchNo', title: '当前批次' }
                    { type: 'checkbox', fixed: 'left', totalRowText: '合计' }
                    , { type: 'numbers', title: '序号' }
                    , { field: 'HItemID', title: 'HItemID', hide: true }
                    , { field: 'HBarCode', title: '产品SN码' }
                    , { field: 'HMaterID', title: 'HMaterID', hide: true  }
                    , { field: 'HMaterNumber', title: '物料代码' }
                    , { field: 'HMaterName', title: '物料名称', totalRow: true}
                    , { field: 'HMaterModel', title: '规格型号' }
                    , { field: 'HICMOInterID', title: 'HICMOInterID', hide: true }
                    , { field: 'HICMOEntryID', title: 'HICMOEntryID', hide: true }
                    , { field: 'HICMOBillNo', title: 'HICMOBillNo', hide: true }
                    , { field: 'HProcExchInterID', title: 'HProcExchInterID', hide: true }
                    , { field: 'HProcExchEntryID', title: 'HProcExchEntryID', hide: true }
                    , { field: 'HProcExchBillNo', title: 'HProcExchBillNo', hide: true }
                    , { field: 'HMaterID', title: 'HMaterID', hide: true }
                    , { field: 'HBarCode', title: 'HBarCode', hide: true }
                    , { field: 'HICMOBillNo', title: '生产订单号', hide: true }
                    , { field: 'HInterID', title: 'HInterID', hide: true }
                    , { field: 'HWeight', title: '重量' }
                    , { fixed: 'right', title: '操作', toolbar: '#barDemo', width: 66 }
                ]]
            }
            option2 = {
@@ -381,75 +413,154 @@
        
        //条码回车查询
        function txtHBarCode_KeyDown(HBarCode) {
            getHBarCodeData(HBarCode);
            //清空SN镭雕码内容
            $("#HBarCode_SN").val("");
            $("#HBarCode_SN").focus();
        }
            var HProcExchBillNo = $("#HProcExchBillNo").val();
            var indexs = layer.load();
        function getHBarCodeData(HBarCode) {
            indexs = layer.load();
            //获取对应主表信息
            $.ajax({
                type: "GET",
                url: GetWEBURL() + "/Cj_SingleStation/SNHBardCodeList",
                url: GetWEBURL() + "/Cj_SingleStation/checkHBarCode_Batch",
                async: false,
                data: { "HBarCode": HBarCode, "HProcExchBillNo": HProcExchBillNo, "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                data: { "HBarCode": HBarCode, "user": sessionStorage["HUserName"], "HOrgID": sessionStorage["OrganizationID"] },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.close(indexs);
                        var index = layer.load();
                        $.ajax({
                            type: "GET",
                            url: GetWEBURL() + "/Cj_SingleStation/HBardCodeSNList",
                            async: false,
                            data: { "HBarCode": HBarCode, "user": sessionStorage["HUserName"] },
                            dataType: "json",
                            success: function (data1) {
                                if (data1.count == 1) {
                                    layer.close(index);
                                    $("#HBarCode_P").val(HBarCode);
                                    if (AllowLoadData()) {
                                        //保存数据
                                        set_AddAssemblyBill();
                                    }
                                }
                                else {
                                    layer.close(index);
                                    layer.msg(get_MessageError(data1.Message, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                                }
                                $("#HBarCodeSN").val("");
                            },
                            error: function (err) {
                                layer.close(index);
                                layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                            }
                        });
                        barCodeData = data1.data[0];
                        //$("#HMinWeight").val();获取最大数量最小重量最大箱数
                        //$("#HMaxWeight").val();
                        //$("#HNeedQty").val();
                        if (AllowLoadData()) {
                            set_SaveBill(HBarCode);
                        }
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(get_MessageError(data1.Message, sessionStorage["HTranSlate"]));
                        layer.confirm(data1.Message);
                    }
                    //光标跳转到SN条码文本框上
                    //$("#HBarCodeSN").focus();
                    $("#HBarCodeSN").val("");
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                }
            });
        }
        //加载网格
        function get_Display() {
            var ajaxLoad = layer.load();
        //#region è¿‡ç«™ä¿å­˜æ–¹æ³•
        function set_SaveBill(HBarCode) {
            var data = {
                "field": {
                    "HProcID": $("#HProcID").val(), "HBatchNo": "", "HWeight": $("#HWeight").val(),
                    "HGroupID": $("#HGroupID").val(), "HSourceID": $("#HSourceID").val(),
                    "HProdOrgID": sessionStorage["OrganizationID"],
                    "HEmpID": $("#HEmpID").val(), "HDeptID": $("#HDeptID").val()
                }
            };
            var sMainStr = JSON.stringify(data.field);
            var sSubStr = HBarCode;
            var sMainSub = sMainStr + ';' + sSubStr + ';' + sessionStorage["HUserName"];
            var indexs = layer.load();
            $.ajax({
                url: GetWEBURL() + '/Cg_POOrderBill/list',
                type: "POST",
                url: GetWEBURL() + "/Cj_SingleStation/AddStationOutBillList",
                async: false,
                data: { "sMainSub": sMainSub },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.close(indexs);
                        //清单内容存入
                        barCodeData.HInterID = data1.data//获取对应出战汇报但内码
                        barCodeData.HWeight = $("#HWeight").val()//重量
                        option.data.push(barCodeData);
                        table.render(option)
                        //本地存储
                        localStorage.setItem("CaseCodeDataCache", JSON.stringify(option.data));
                        $("#HReturnMessage").text("成功扫码一个:" + HBarCode);
                        get_Display();
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(data1.Message, { icon: 5, btn: ["确认"], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "出现错误" });
                    }
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                }
            });
        }
        //#endregion
        //#region ä¸­ç®±ç ç”Ÿæˆ
        function set_getCaseCode() {
            const hitmidString = option.data.map(item => item.HItemID).join(",");
            var sMainSub = hitmidString + ';' + sessionStorage["HUserName"];
            var indexs = layer.load();
            $.ajax({
                type: "POST",
                url: GetWEBURL() + "/Cj_SingleStation/AddCaseCode",
                async: false,
                data: { "sMainSub": sMainSub },
                dataType: "json",
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.close(indexs);
                        //清单内容存入
                        option.data = [];
                        table.render(option)
                        //本地存储
                        localStorage.setItem("CaseCodeDataCache", JSON.stringify(option.data));
                        $("#HReturnMessage").text("成功生成一个:" + data1.data);
                        get_Display();
                    }
                    else {
                        layer.close(indexs);
                        layer.msg(data1.Message, { icon: 5, btn: ["确认"], time: 100000, offset: 't', skin: 'layui-layer-lan', title: "出现错误" });
                    }
                },
                error: function (err) {
                    layer.close(indexs);
                    layer.msg(get_MessageError("错误:" + err, sessionStorage["HTranSlate"]), { icon: 5, btn: [get_MessageError('[0000-2-008]确认', sessionStorage["HTranSlate"])], time: 100000, offset: 't', skin: 'layui-layer-lan', title: get_MessageError("[0000-2-009]温馨提示", sessionStorage["HTranSlate"]) });
                }
            });
        }
        //#endregion
        //加载历史过站清单信息
        function get_Display(sWhere = '') {
            var ajaxLoad = layer.load();
            var HProcID = $("#HProcID").val();
            var HSourceID = $("#HSourceID").val();
            sWhere += ` and HProcID = ${HProcID} and HSourceID = ${HSourceID}`
            $.ajax({
                url: GetWEBURL() + '/Cj_SingleStation/SingleStationOutBillList',
                async: false,
                type: "GET",
                data: { "sWhere": '', "user": sessionStorage["HUserName"] },
                data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
                success: function (data1) {
                    if (data1.count == 1) {
                        var data = [];//列字段数据
                        var col = [];
                        var titleData=[]
                        var titleData = []
                        var totalArray = ["数量", "关联数量", "未关联数量", "打印条码数量", "未打印条码数量", "实收数量", "金额"];
                        //给空的数组赋值
                        for (var key in data1.list) {
@@ -487,15 +598,15 @@
                                }
                            }
                        }
                        option.cols = [col]
                        option.data = data1.data;
                        option2.cols = [col]
                        option2.data = data1.data;
                        //刷新表格数据
                        DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, []);
                        DisPlay_HideColumn(HModName2, sessionStorage["HUserName"], option2, []);
                        table.render(option);
                        table.render(option2);
                        layer.close(ajaxLoad);
                        //layer.alert("查询成功", { icon: 1 });
                    } else {
@@ -508,6 +619,80 @@
                }
            });
        }
        //删除单据
        function btn_Delete() {
            var checkStatus = table.checkStatus('mainTable')
                , data = checkStatus.data;
            if (checkStatus.data.length === 1) {
                layer.confirm(get_MessageError('[0000-1-003]确定删除' + data[0].HBarCode + '吗?', sessionStorage["HTranSlate"]), function (index) {
                    var ajaxLoad = layer.load();
                    //逻辑删除方法
                    $.ajax({
                        url: GetWEBURL() + '/Cj_StationOutBill/del_StationOutBill',
                        type: "GET",
                        data: { "HInterID": data[0].HInterID, "HDeleteMan": sessionStorage["HUserName"], "HBillSubType": "3791" },
                        success: function (result) {
                            if (result.count == 1) {
                                get_Display();
                                layer.close(ajaxLoad);
                            } else {
                                layer.close(ajaxLoad);
                                layer.alert(get_MessageError(result.Message, sessionStorage["HTranSlate"]) + result.Message, { icon: 5 });
                            }
                        }, error: function () {
                            layer.close(ajaxLoad);
                            layer.alert(get_MessageError("[0000-1-002]接口请求失败!", sessionStorage["HTranSlate"]), { icon: 5 });
                        }
                    });
                    layer.close(index);
                });
            } else {
                layer.msg(get_MessageError('[0000-1-001]请选择一行数据编辑!', sessionStorage["HTranSlate"]));
            }
        }
        //表格行内事件删除
        function set_GridDelete(obj) {
            var data = obj.data;
            var rowIndex = $(obj.tr).attr("data-index");
            if (obj.event === 'del') {
                layer.confirm('真的删除行吗?', function (index) {
                    var wait = layer.load();
                    //逻辑删除方法
                    $.ajax({
                        url: GetWEBURL() + '/Cj_StationOutBill/del_StationOutBill',
                        type: "GET",
                        data: { "HInterID": data.HInterID, "HDeleteMan": sessionStorage["HUserName"], "HBillSubType": "3791" },
                        success: function (result) {
                            if (result.count == 1) {
                                // åˆ é™¤ id=2 çš„对象(Bob)
                                debugger
                                const index = option.data.findIndex(item => item.HInterID === data.HInterID);
                                if (index !== -1) {
                                    option.data.splice(index, 1); // ä»Ž index å¼€å§‹åˆ é™¤ 1 ä¸ªå…ƒç´ 
                                }
                                //本地存储
                                localStorage.setItem("CaseCodeDataCache", JSON.stringify(option.data));
                                get_Display();
                                table.render(option);
                                layer.close(wait);
                            } else {
                                layer.close(wait);
                                layer.alert(get_MessageError(result.Message, sessionStorage["HTranSlate"]) + result.Message, { icon: 5 });
                            }
                        }, error: function () {
                            layer.close(wait);
                            layer.alert(get_MessageError("[0000-1-002]接口请求失败!", sessionStorage["HTranSlate"]), { icon: 5 });
                        }
                    });
                });
            }
        }
        //员工选择页面
        function btnHEmp() {
@@ -644,23 +829,29 @@
        //非空验证
        function AllowLoadData() {
            var HBarCode = $("#HBarCode_P").val();
            if (HBarCode == "") {
                layer.msg(get_MessageError("[0000-2-019]产品SN不能为空!", sessionStorage["HTranSlate"]))
            let HMinWeight = +$("#HMinWeight").val();
            let HMaxWeight = +$("#HMaxWeight").val();
            let HWeight = +$("#HWeight").val();
            //第一次扫镭雕码
            if (option.data.length === 0) {
                if (HWeight < HMinWeight || HWeight > HMaxWeight) {
                    layer.confirm("重量校验失败")
                    return false;
                }
            } else {
                if (HWeight < HMinWeight || HWeight > HMaxWeight) {
                    layer.confirm("重量校验失败")
                    return false;
                }
                if (option.data[0].HMaterID != barCodeData.HMaterID) {
                    return false;
                }
            }
            if (option.data.length >= $("#HNeedQty").val()) {
                layer.confirm("箱数已满请提交")
                return false;
            }
            var HEmpID2 = $("#HEmpID2").val();
            if (HEmpID2 == 0) {
                layer.msg(get_MessageError("[0000-2-030]操作员不能为空!", sessionStorage["HTranSlate"]))
                return false;
            }
            //var HBadReasonID = $("#HBadReasonID").val();
            //if (HBadReasonID == 0) {
            //    layer.msg("不良原因不能为空!")
            //    return false;
            //}
            return true;
        }