wtt
2025-03-10 42159f8de1ac7e6caf3c2e2e6152e6731668ed7e
欠料运算模块添加
3个文件已修改
2个文件已添加
809 ■■■■■ 已修改文件
WebTM/WebTM.csproj 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/宝工排产/JIT_DayPlanPlatForm.html 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/欠料运算/JIT_MaterialLevelShorAnalysis.html 249 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/生产管理/欠料运算/JIT_MaterialLevelShorAnalysisReport.html 501 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/views/项目管理/工程项目/PM_ProjectBill.html 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebTM/WebTM.csproj
@@ -562,6 +562,8 @@
    <Content Include="views\生产管理\报工台工序\微瑕品记录单\Sc_SubtleFlawBillList.html" />
    <Content Include="views\生产管理\报工平台功能页\Gy_ButtonList.html" />
    <Content Include="views\生产管理\报工平台功能页\LineBind_Button.html" />
    <Content Include="views\生产管理\欠料运算\JIT_MaterialLevelShorAnalysis.html" />
    <Content Include="views\生产管理\欠料运算\JIT_MaterialLevelShorAnalysisReport.html" />
    <Content Include="views\生产管理\班次开班单\Sc_ShiftsBeginInfoBillList.html" />
    <Content Include="views\生产管理\班次开班单\Sc_ShiftsBeginInfoBill_Add_Edit.html" />
    <Content Include="views\生产管理\提料计划\JIT_PickUpCalculate.html" />
WebTM/views/Éú²ú¹ÜÀí/±¦¹¤ÅŲú/JIT_DayPlanPlatForm.html
@@ -34,6 +34,7 @@
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnUnlockOrder" id="btnUnlockOrder">解锁工单</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnCompleteSetAnalysis" id="btnCompleteSetAnalysis">齐套分析</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnTLYS" id="btnTLYS">提料运算</button>
                            <button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btn_Calculate" id="btn_Calculate">欠料运算</button>
                            <!--<button class="layui-btn layui-btn-normal" style="margin-left: 0px" type="button" lay-submit="" lay-filter="btnRoutEdit" id="btnRoutEdit">工艺路线</button>-->
                        </div>
                        <div class="layui-collapse resizable-container">
@@ -719,7 +720,16 @@
                }
            })
        })
        //欠料运算
        form.on('submit(btn_Calculate)', function (data) {
            layer.confirm('你确定要执行操作吗,请先确保排产数据已保存?', {
                btn: ['确定', '取消'] //按钮
                , btn1: function (index, layero) {
                    set_Calculate();
                    layer.close(index);
                }
            })
        });
        //生产订单选单
        form.on('submit(btnICMOBill)', function (data) {
            get_btnICMOBill();
@@ -1927,6 +1937,33 @@
                }
            });
        }
        //欠料运算
        function set_Calculate() {
            if ($("#HWorkShopID").val() == 0) {
                return layer.msg("生产车间不能为空!");
            }
            var ajaxLoad = layer.load();
            //欠料运算
            var sql = "exec h_p_JIT_MaterialLevelShorAnalysisReportList " + $("#HWorkShopID").val() + ",'" + sessionStorage["HMaker"] + "'," + sessionStorage["OrganizationID"];
            $.ajax({
                url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                type: "GET",
                async: false,
                data: { "sWhere": sql },
                success: function (data1) {
                    if (data1.count == 1) {
                        layer.msg(data1.data[0]["HRemark"]);
                        layer.close(ajaxLoad);
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                        layer.close(ajaxLoad);
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                    layer.close(ajaxLoad);
                }
            });
        }
        //生产订单选单
        function get_btnICMOBill() {
WebTM/views/Éú²ú¹ÜÀí/Ç·ÁÏÔËËã/JIT_MaterialLevelShorAnalysis.html
New file
@@ -0,0 +1,249 @@
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>多级欠料运算</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <style type="text/css">
        input.layui-input.layui-unselect {
            padding-right: 0;
        }
    </style>
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <h1 style="text-align: center; padding: 30px 0;"><b>多级欠料运算</b></h1>
                            <div class="layui-colla-item" style="padding-top:20px;">
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;">生产订单组织</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                        <select name="HProdORGID" id="HProdORGID" lay-verify="HProdORGID">
                                            <!--动态渲染组织-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">生产车间</label>
                                    <div class="layui-input-block" style="margin-left: 77px;">
                                        <input type="hidden" class="layui-input" lay-verify="HWorkShopID" name="HWorkShopID" id="HWorkShopID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <input type="text" class="layui-input" lay-verify="HWorkShopIDName" name="HWorkShopIDName" id="HWorkShopIDName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;">
                                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHWorkShopID" id="btnHWorkShopID" style="padding: 0 10px;float: right;margin-right: 3px;">
                                            <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
                                        </button>
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btn_Calculate" id="btn_Calculate" style="padding:0 30px;margin-left:50px;">开始多级欠料运算</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btn_Cancel" id="btn_Cancel" style="padding:0 20px">退出</button>
                            </div>
                            <div class="layui-colla-item" style="height:600px;margin-top:20px;">
                                <font size="5" color="blue" id="HRemark"></font>
                            </div>
                        </div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                    </form>
                </div>
            </div>
        </div>
    </div>
    <script type="text/javascript">
        layui.config({
            base: '../../../layuiadmin/' //静态资源所在路径
        }).extend({
            index: 'lib/index', //主入口模块
        }).use(['index', 'form', 'laydate', 'table', 'element', 'tableSelect'], function () {
            //#region å…¬å…±å˜é‡
            var $ = layui.$
                , admin = layui.admin
                , layer = layui.layer
                , table = layui.table
                , form = layui.form
                , element = layui.element
                , tableSelect = layui.tableSelect;
            var HModName = "JIT_MaterialLevelShorAnalysis";
            var HMaker = sessionStorage["HUserName"]
            var HStockOrgID = sessionStorage["OrganizationID"]  //组织ID
            //#endregion
            //判断是否登录 æœªç™»å½•则跳到登录页
            if (sessionStorage.login != "login") {
                layer.confirm("登录失效,请重新登录!", {
                    icon: 4, skin: 'layui-layer-lan', title: "温馨提示", closeBtn: 0, btn: ['重新登录']
                }, function () { window.location.href = "../../user/login.html"; });
            }
            //#region åˆå§‹åŒ–界面
            set_ClearBill();
            function set_ClearBill() {
                //部门输入框
                tableSelect.render({
                    elem: '#HWorkShopIDName',//输入框dom选择
                    searchKey: '部门名称,HItemID',//查询的列名
                    sWhere: '',//table搜索sWhere条件 //默认筛选项
                    ajaxSelect: function (sWhere) {
                        var data = '';
                        $.ajax({
                            url: GetWEBURL() + '/Gy_Department/list',
                            type: "GET",
                            data: { "sWhere": sWhere, "user": HMaker, "Organization": sessionStorage["Organization"] },
                            async: false,
                            success: function (data1) {
                                if (data1.count == 1) {
                                    data = data1.data
                                }
                            },
                            error: function () {
                                layer.alert('获取列表失败!', { icon: 15, title: '通信错误' });
                            }
                        });
                        return data;
                    },//设置前端分页时可以设置的
                    table: {
                        //url: GetWEBURL() + 'Gy_Supplier/page',
                        //where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                        cols: [[
                            { type: 'radio', fixed: 'left' },//需要加这个fixed属性不然点击checkbox会触发行点击导致无法正确点击
                            { field: 'HItemID', title: 'HItemID' },
                            { field: '部门名称', title: '部门名称' },
                        ]],
                        page: true,
                        limit: 5,
                        limits: [5]
                    },
                    done: function (elem, data) {
                        if (data != []) {
                            $("#HWorkShopIDName").val(data.data[0]['部门名称']);
                            $("#HWorkShopID").val(data.data[0]['HItemID']);
                        }
                    }
                })
                Organ();
            }
            //生产车间
            form.on('submit(btnHWorkShopID)', function (data) {
                btnHWorkShopID();
            });
            //#endregion
            //#region å¼€å§‹å¤šçº§æ¬ æ–™è¿ç®—
            form.on('submit(btn_Calculate)', function (data) {
                set_Calculate(data);
            });
            function set_Calculate() {
                var ajaxLoad = layer.load();
                var HWorkShopID = $("#HWorkShopID").val();
                if (HWorkShopID == 0) {
                    layer.close(ajaxLoad);
                    layer.msg("请选择部门");
                    return
                }
                //欠料运算
                var sql = "exec h_p_JIT_MaterialLevelShorAnalysisReportList " + HWorkShopID + ",'" + HMaker + "'," + HStockOrgID;
                $.ajax({
                    url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                    type: "GET",
                    async: false,
                    data: { "sWhere": sql },
                    success: function (data1) {
                        if (data1.count == 1) {
                            layer.msg(data1.data[0]["HRemark"]);
                            layer.close(ajaxLoad);
                        } else {
                            layer.alert(data1.code + data1.Message, { icon: 5 });
                            layer.close(ajaxLoad);
                        }
                    }, error: function () {
                        layer.alert("接口请求失败!", { icon: 5 });
                        layer.close(ajaxLoad);
                    }
                });
            }
            //#endregion
            //#region èŽ·å–ç»„ç»‡
            function Organ() {
                //获取登录页组织列
                $.ajax({
                    type: "get",
                    url: GetWEBURL() + "/Web/GetOrganizations",
                    success: function (result) {
                        var Organization = "";
                        if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                            var data = result.data;
                            for (var i = 0; i < data.length; i++) {
                                Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
                            }
                            $("#HProdORGID").append(Organization);
                            $("#HProdORGID").val(sessionStorage["OrganizationID"])
                            form.render('select');
                        }
                        layer.closeAll("loading");
                    }
                })
            }
            //#endregion
            //#region é€€å‡º
            form.on('submit(btn_Cancel)', function () {
                layer.confirm('您确定要退出吗?', { icon: 3, title: '提示' }, function (index) {
                    Pub_Close(2);
                });
            })
            //#endregion
            //#region é€‰æ‹©ç”Ÿäº§è½¦é—´
            function btnHWorkShopID() {
                var HOrgName = $(".layui-form-select input").val();
                layer.open({
                    type: 2 //类型
                    , skin: 'layui-layer-rim'//加上边框
                    , area: ['90%', '90%']//大小
                    , title: '生产车间列表'//标题
                    , shift: 2//弹出动画
                    , content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html?Type=2&HOrgName=' + HOrgName, 'yes']
                    , btn: ['确定', '取消']
                    , btn1: function (index, layero) {//按钮【按钮一】的回调
                        var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                        var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                        if (checkStatus.data.length === 0) {
                            return layer.msg('请选择数据');
                        }
                        //获取数据
                        $("#HWorkShopID").val(checkStatus.data[0].HItemID);//车间id
                        $("#HWorkShopIDName").val(checkStatus.data[0].部门名称);//车间名称
                        /*get_WriteConfigFile();*/
                        layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                    }
                    , btn2: function (index, layero) { }
                })
            }
            //#endregion
        });
        function GetHDeptNameValue(obj)  //返回采购部门
        {
            $("#HWorkShopID").val(obj[0].HItemID);//车间id
            $("#HWorkShopIDName").val(obj[0].部门名称);//车间名称
        }
        //以上为layui模块
        //此处方法涉及到被外部页面parent.方法名调用的必须放在Layui方法外部
    </script>
</body>
</html>
WebTM/views/Éú²ú¹ÜÀí/Ç·ÁÏÔËËã/JIT_MaterialLevelShorAnalysisReport.html
New file
@@ -0,0 +1,501 @@
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>欠料报表</title>
    <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
    <link rel="stylesheet" href="../../../layuiadmin/ext/soulTable.css" media="all">
    <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
    <script src="../../../layuiadmin/layui/layui.js"></script>
    <script src="../../../layuiadmin/Scripts/json2.js"></script>
    <script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
    <script src="../../../layuiadmin/Scripts/webConfig.js"></script>
    <script src="../../../layuiadmin/PubCustom.js"></script>
    <script src="../../../layuiadmin/SetColumn.js"></script>
    <!--<script src="../../../layuiadmin/soulTable.slim.js"></script>--><!--标题筛选不能引用此js文件-->
</head>
<body>
    <div class="layui-fluid">
        <div class="layui-col-md12">
            <div class="layui-card" style="padding: 1px">
                <div class="layui-card-body" style="padding: 1px;">
                    <form class="layui-form" action="" lay-filter="component-form-group">
                        <div class="layui-collapse">
                            <div class="layui-colla-item">
                                <div class="layui-colla-title layui-inline">
                                    <div class="layui-inline">
                                        <span>更多</span>
                                    </div>
                                </div>
                                <div class="layui-inline" style="display:none">
                                    <label class="layui-form-label" style="width: 85px;">组织</label>
                                    <div class="layui-input-block" style="margin-left: 120px; width: 185px;">
                                        <select name="HORGID" id="HORGID" lay-verify="HORGID">
                                            <!--动态渲染组织-->
                                        </select>
                                    </div>
                                </div>
                                <div class="layui-inline">
                                    <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">生产车间</label>
                                    <div class="layui-input-block" style="margin-left: 77px;">
                                        <input type="hidden" class="layui-input" lay-verify="HWorkShopID" name="HWorkShopID" id="HWorkShopID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <input type="text" class="layui-input" lay-verify="HWorkShopIDName" name="HWorkShopIDName" id="HWorkShopIDName" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;">
                                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHWorkShopID" id="btnHWorkShopID" 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;">产品编码</label>
                                    <div class="layui-input-block" style="margin-left: 77px;">
                                        <input type="hidden" class="layui-input" lay-verify="HMATERIALID" name="HMATERIALID" id="HMATERIALID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <input type="text" class="layui-input" lay-verify="HMATERIALNAME" name="HMATERIALNAME" id="HMATERIALNAME" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                                        <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHMATERIALID" id="btnHMATERIALID" 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; width: 185px;">
                                    <select name="HType" id="HType" lay-verify="HType">
                                        <option value="齐套" selected="selected">齐套</option>
                                        <option value="未齐套">未齐套</option>-->
                                                        <!--<option value="采购订单">采购订单</option> æš‚时没有-->
                                                        <!--</select>
                                </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="date" class="layui-input" lay-verify="HBEGINDATE" name="HBEGINDATE" id="HBEGINDATE" style="padding-left: 78px;">
                                    </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="date" class="layui-input" lay-verify="HENDDATE" name="HENDDATE" id="HENDDATE" style="padding-left: 78px;">
                                    </div>
                                </div>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnSearch" id="btnSearch">查询</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnReSearch" id="btnReSearch">重置</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnExport" id="btnExport">导出</button>
                                <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="bthHideColumn" id="bthHideColumn">列设置</button>
                                <!--<div class="layui-colla-content" style="padding: 0px; margin-left: 6%;">
        <div class="layui-row" style="margin-top:10px;">
            <div class="layui-inline">
                <label class="layui-form-label" style="width: 85px;padding: 9px 18px;">产品编码</label>
                <div class="layui-input-block" style="margin-left: 77px;">
                    <input type="hidden" class="layui-input" lay-verify="HMATERIALID" name="HMATERIALID" id="HMATERIALID" value="0" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                    <input type="text" class="layui-input" lay-verify="HMATERIALNAME" name="HMATERIALNAME" id="HMATERIALNAME" value="" style="background-color:#efefef4d;width: 60%;display: inline-block;" readonly>
                    <button class="layui-btn layuiadmin-btn-order" type="button" lay-submit="" lay-filter="btnHMATERIALID" id="btnHMATERIALID" 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;">
                    <input type="text" class="layui-input" name="HMOBILLNO" id="HMOBILLNO">
                </div>
            </div>
        </div>
    </div>-->
                            </div>
                        </div>
                        <table class="" id="mainTable" lay-filter="mainTable"></table>
                    </form>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
<script>
    var treeCkData = { id: 0 };
    var TagId = "";
    var TagParentId = "";
    layui.config({
        base: '../../../layuiadmin/' //静态资源所在路径
    }).extend({
        index: 'lib/index', //主入口模块
        soulTable: '../ext/soulTable',
    }).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate', 'util', 'soulTable', 'flow','tableSelect'], function () {
        //#region å…¬ç”¨å˜é‡
        var $ = layui.$
            , admin = layui.admin
            , layer = layui.layer
            , table = layui.table
            , form = layui.form
            , element = layui.element
            , laypage = layui.laypage
            , laydate = layui.laydate
            , util = layui.util
            , tree = layui.tree
            , util = layui.util
            , soulTable = layui.soulTable
            , flow = layui.flow
            , tableSelect = layui.tableSelect;
        var sWhere = "";
        var option = [];
        var ins;                        //用于导出excel
        var HModName = "ReportPODemandPlanBillList_S";
        //#endregion
        //#region è¿›å…¥é¡µé¢å³åŠ è½½
        //初始化界面
        set_ClearBill();
        //#endregion
        //#region è§¦å‘事件:包括form.on(){}格式的所有点击事件、选择事件等
        //#region äº§å“ç¼–码
        form.on('submit(btnHMATERIALID)', function (data) {
            btnHMATERIALID();
        });
        //#endregion
        //#region  ç”Ÿäº§è½¦é—´
        form.on('submit(btnHWorkShopID)', function (data) {
            btnHWorkShopID();
        });
        //#endregion
        //#region é‡ç½®æŒ‰é’®
        form.on('submit(btnReSearch)', function (data) {
            set_ClearQuery();
        });
        //#endregion
        //#region æŸ¥è¯¢æŒ‰é’®
        form.on('submit(btnSearch)', function (data) {
            get_FastQuery();
        });
        //#endregion
        //#region å¯¼å‡ºæŒ‰é’®
        form.on('submit(btnExport)', function (data) {
            getExportData();
        });
        //#endregion
        //#region åˆ—设置按钮
        form.on('submit(bthHideColumn)', function (data) {
            get_HideColumnNoPageForPlan(HModName, option, get_FastQuery);
        });
        //#endregion
        //#endregion
        //#region æœ¬é¡µé¢è¢«è°ƒç”¨çš„æ‰€æœ‰æ–¹æ³•
        //#region åˆå§‹åŒ–界面
        function set_ClearBill() {
            //部门输入框
            tableSelect.render({
                elem: '#HWorkShopIDName',//输入框dom选择
                searchKey: '部门名称,HItemID',//查询的列名
                sWhere: '',//table搜索sWhere条件 //默认筛选项
                ajaxSelect: function (sWhere) {
                    var data = '';
                    $.ajax({
                        url: GetWEBURL() + '/Gy_Department/list',
                        type: "GET",
                        data: { "sWhere": sWhere, "user": sessionStorage["HMaker"], "Organization": sessionStorage["Organization"] },
                        async: false,
                        success: function (data1) {
                            if (data1.count == 1) {
                                data = data1.data
                            }
                        },
                        error: function () {
                            layer.alert('获取列表失败!', { icon: 15, title: '通信错误' });
                        }
                    });
                    return data;
                },//设置前端分页时可以设置的
                table: {
                    //url: GetWEBURL() + 'Gy_Supplier/page',
                    //where: { user: '翁涛涛', Organization: '浙江智云迈思' },
                    cols: [[
                        { type: 'radio', fixed: 'left' },//需要加这个fixed属性不然点击checkbox会触发行点击导致无法正确点击
                        { field: 'HItemID', title: 'HItemID' },
                        { field: '部门名称', title: '部门名称' },
                    ]],
                    page: true,
                    limit: 5,
                    limits: [5]
                },
                done: function (elem, data) {
                    if (data != []) {
                        $("#HWorkShopIDName").val(data.data[0]['部门名称']);
                        $("#HWorkShopID").val(data.data[0]['HItemID']);
                    }
                }
            })
            //初始化日期
            $("#HBEGINDATE").val(Format(new Date(new Date()), "yyyy-MM-dd"));//欠料日期
            $("#HENDDATE").val(Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + 30), "yyyy-MM-dd"));//至
            //生产组织加载
            Organ();
            //快速过滤
            get_FastQuery();
        }
        //#endregion
        //#region åˆå§‹åŒ–表格方法
        function set_InitGrid() {
            var columns = [];
            columns.push({ type: 'checkbox', fixed: 'left', sort: true});
            columns.push({ field: '物料ID', title: '物料ID', sort: true, filter: true });
            columns.push({ field: '物料编码', title: '物料编码', sort: true, filter: true });
            columns.push({ field: '物料名称', title: '物料名称', sort: true, filter: true });
            columns.push({ field: '生产车间ID', title: '生产车间ID', sort: true, filter: true  });
            columns.push({ field: '生产车间编码', title: '生产车间编码', sort: true,  filter: true  });
            columns.push({ field: '生产车间名称', title: '生产车间名称', sort: true, filter: true  });
            columns.push({ field: '采购在途', title: '采购在途', sort: true, filter: true  });
            //columns.push({ field: 'HPOOrderBillRemark', title: '摘要' });
            //columns.push({ field: 'HPOOrderBillNote', title: '备注' });
            //columns.push({ field: '采购员', title: '采购员' });
            columns.push({ field: '生产未入库', title: '生产未入库', sort: true, filter: true });
            //columns.push({ field: '计量单位名称', title: '计量单位', sort: true, filter: true });
            //columns.push({ field: 'TQSUM', title: '欠料拖期数量', sort: true, totalRow: true, filter: true });
            //获取两个月期之间的相差
            var time1 = Date.parse(new Date($("#HBEGINDATE").val()));//开始时间
            var time2 = Date.parse(new Date($("#HENDDATE").val()));//结束时间
            var Days = Math.abs(parseInt((time2 - time1) / 1000 / 3600 / 24));
            //获取年
            var yyyy = new Date($("#HBEGINDATE").val()).getFullYear();
            //获取月份
            var MM = new Date($("#HBEGINDATE").val()).getMonth() + 1;
            //获取开始月份的最大天数
            var SumMonth = new Date(yyyy, MM, 0).getDate(); //动态两月之差
            //获取开始日期的天数
            var HBEGINDATE = new Date(new Date($("#HBEGINDATE").val())).getDate(); //获取开始日期天数
            var k = 0;//收集循环次数
            for (var j = 0; j <= (Days - k); j++) {
                columns.push({ field: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'yyyy-MM-dd'), title: Format(yyyy + '/' + MM + '/' + (HBEGINDATE + j), 'MM.dd'), width: 70, totalRow: true, filter: true })
                //跨年的话 ä¼šä»Žä¸€æœˆä¸€å·å¼€å§‹
                if (MM == 12 && (HBEGINDATE + j) == 31) {
                    yyyy += 1;
                    MM = 1;
                    SumMonth = new Date(yyyy, MM, 0).getDate();
                    HBEGINDATE = 0;
                    k += j;
                    j = 0;
                } else if ((HBEGINDATE + j) == SumMonth) { //跨月 æœˆæ•°åР䏀  å¤©æ•°ä»Žä¸€å¼€å§‹
                    HBEGINDATE = 0;
                    MM += 1;
                    SumMonth = new Date(yyyy, MM, 0).getDate();
                    k += j;
                    j = 0;
                }
            }
            /*columns.push({ field: '欠料计划合计', title: '欠料计划合计', filter: true  });*/
            option = {
                elem: '#mainTable'
                //, toolbar: '#toolbarDemo'
                , height: 'full-50'
                , page: true
                , cellMinWidth: 90
                , limit: 1000
                , limits: [50, 500,1000, 2000]
                , totalRow: true
                , loading: false
                , cols: [columns]
                , done: function (res, curr, count) {
                    soulTable.render(this);
                }
            };
        }
        //#endregion
        //获取组织
        function Organ() {
            //获取登录页组织列
            var Organization = '';
            $.ajax({
                type: "get",
                url: GetWEBURL() + "/Web/GetOrganizations",
                async: false,
                success: function (result) {
                    if (result.count == 1) { // è¯´æ˜ŽéªŒè¯æˆåŠŸäº†ï¼Œ
                        var data = result.data;
                        for (var i = 0; i < data.length; i++) {
                            Organization += '<option  style="color:blue;" value="' + data[i].ID + '">' + data[i].Name + '</option>';
                        }
                        $("#HORGID").append(Organization);
                        $("#HORGID").val(sessionStorage["OrganizationID"])
                        form.render('select');
                    }
                    layer.closeAll("loading");
                }
            })
        }
        //#region æŸ¥è¯¢
        function get_Display(sWhere) {
            var ajaxLoad = layer.load();
            var HBEGINDATE = $("#HBEGINDATE").val();//欠料日期
            var HENDDATE = $("#HENDDATE").val();//至
            var sql = "exec h_p_JIT_MaterialLevelShorReportList '" + sWhere + "','" + HBEGINDATE + "','" + HENDDATE + "'";
            $.ajax({
                url: GetWEBURL() + '/Gy_SOPBillList/WindowPrintList',
                type: "GET",
                async: false,
                data: { "sWhere": sql },
                success: function (data1) {
                    if (data1.count == 1) {
                        option.data = data1.data;
                        //列设置
                        DisPlay_HideColumnForPlan(HModName, sessionStorage["HUserName"], option);
                        ins = table.render(option);
                        layer.close(ajaxLoad);
                    } else {
                        layer.alert(data1.code + data1.Message, { icon: 5 });
                        layer.close(ajaxLoad);
                    }
                }, error: function () {
                    layer.alert("接口请求失败!", { icon: 5 });
                    layer.close(ajaxLoad);
                }
            });
        }
        //#endregion
        //#region èŽ·å–å¯¼å‡ºæ•°æ®
        function getExportData() {
            var data = option.data;
            data.forEach((item) => {
                for (let itemobj in item) {
                    if (item[itemobj] == null) {
                        item[itemobj] = "";
                    }
                    if (item[itemobj].length > 0) {  // å‡è®¾å­—段名为field
                        item[itemobj] = item[itemobj].toString().replace(/[\r\n]+/g, '');  // å°†æ¢è¡Œç¬¦æ›¿æ¢ä¸ºç©ºå­—符串
                    }
                }
            });
            table.exportFile(ins.config.id, data, "xls");
        }
        //#endregion
        //#region å¿«é€Ÿè¿‡æ»¤
        function get_FastQuery() {
            HORGID = $("#HORGID").val();//组织
            var HBEGINDATE = $("#HBEGINDATE").val();//欠料日期
            var HENDDATE = $("#HENDDATE").val();//至
            var HMATERIALID = $("#HMATERIALID").val();//物料/产品
            var HWorkShopID = $("#HWorkShopID").val();//物料/产品
            if (HBEGINDATE > HENDDATE) {
                return layer.msg("开始日期不能小于结束日期!");
            }
            if (HORGID != "") {
                sWhere += " and T1.HStockORGID= " + HORGID+" ";
            }
            if (HWorkShopID != 0) {
                sWhere += " and T1.HWorkShopID= " + HWorkShopID + " ";
            }
            //if (HBEGINDATE != null && HENDDATE != null) {
            //    sWhere += " and HDate between ''" + HBEGINDATE + "'' and ''" + HENDDATE + "'' ";
            //}
            if (HMATERIALID!=0) {
                sWhere += " and T1.HMaterID= " + HMATERIALID+" ";
            }
            //初始化表格
            set_InitGrid();
            get_Display(sWhere);
            sWhere = "";//调用接口后清空sWhere缓存
        }
        //#endregion
        //#region é‡ç½®è¿‡æ»¤æ¡ä»¶æ–¹æ³•
        function set_ClearQuery() {
            $("#HORGID").val(sessionStorage["OrganizationID"]);//组织
            $("#HBEGINDATE").val(Format(new Date(new Date()), "yyyy-MM-dd"));//欠料日期
            $("#HENDDATE").val(Format(new Date($("#HBEGINDATE").val()).setDate(new Date($("#HBEGINDATE").val()).getDate() + 30), "yyyy-MM-dd"));//至
            $("#HMATERIALID").val("");//物料/产品
            $("#HMATERIALNAME").val("");
            $("#HWorkShopID").val("");
            $("#HWorkShopIDName").val("");
            form.render('select');
            sWhere = "";
        }
        //#endregion
        //物料列表
        function btnHMATERIALID() {
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , area: ['90%', '90%']//大小
                , title: '物料列表'//标题
                , shift: 2//弹出动画
                , content: ['../../基础资料/公用基础资料/Gy_Material.html', 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                    if (checkStatus.data.length === 0) {
                        return layer.msg('请选择数据');
                    }
                    //获取数据
                    $("#HMATERIALID").val(checkStatus.data[0].HItemID);
                    $("#HMATERIALNAME").val(checkStatus.data[0].物料名称);
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
            })
        }
        //#region é€‰æ‹©ç”Ÿäº§è½¦é—´
        function btnHWorkShopID() {
            var HOrgName = $(".layui-form-select input").val();
            layer.open({
                type: 2 //类型
                , skin: 'layui-layer-rim'//加上边框
                , area: ['90%', '90%']//大小
                , title: '生产车间列表'//标题
                , shift: 2//弹出动画
                , content: ['../../基础资料/公用基础资料/Gy_DepartmentList.html?Type=2&HOrgName=' + HOrgName, 'yes']
                , btn: ['确定', '取消']
                , btn1: function (index, layero) {//按钮【按钮一】的回调
                    var iframeWindow = window['layui-layer-iframe' + index]  //获取弹框页面
                    var checkStatus = iframeWindow.layui.table.checkStatus('mainTable');//获取table的elem:"#test"
                    if (checkStatus.data.length === 0) {
                        return layer.msg('请选择数据');
                    }
                    //获取数据
                    $("#HWorkShopID").val(checkStatus.data[0].HItemID);//车间id
                    $("#HWorkShopIDName").val(checkStatus.data[0].部门名称);//车间名称
                    /*get_WriteConfigFile();*/
                    layer.close(index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
                }
                , btn2: function (index, layero) { }
            })
        }
            //#endregion
        //#endregion
        //以上是layui模块
    });
    function GetGyMaterial(obj) {
        $("#HMATERIALID").val(obj.HItemID);
        $("#HMATERIALNAME").val(obj.物料名称);
    }
    function GetHDeptNameValue(obj)  //返回采购部门
    {
        $("#HWorkShopID").val(obj[0].HItemID);//车间id
        $("#HWorkShopIDName").val(obj[0].部门名称);//车间名称
    }
</script>
WebTM/views/ÏîÄ¿¹ÜÀí/¹¤³ÌÏîÄ¿/PM_ProjectBill.html
@@ -1038,16 +1038,16 @@
                $("#HWaterSupplyDate").val(Format(new Date(), "yyyy-MM-dd"));
                //$('input[type="datetime-local"]').val(new Date().toDateString());
                $('input[type="datetime-local"]').each(function () {
                    // èŽ·å–å½“å‰æ—¥æœŸå’Œæ—¶é—´
                    const now = new Date();
                    // æ³¨æ„ï¼šä¸Šé¢çš„代码会生成一个形如"2023-04-01 12:34:56"的字符串,但datetime-local实际上期望的是"YYYY-MM-DDTHH:mm:ss"(无空格)
                    // å› æ­¤æˆ‘们应该使用下面的代码来正确格式化
                    const formattedDateTimeLocal = now.toISOString().slice(0, 10) + 'T' + now.toTimeString().slice(0, 8).replace(/:\d{2}\.\d{3}/, ':00'); // åŽ»é™¤æ¯«ç§’å¹¶è®¾ç½®ä¸º00秒(因为datetime-local不支持毫秒)
                //$('input[type="datetime-local"]').each(function () {
                //    // èŽ·å–å½“å‰æ—¥æœŸå’Œæ—¶é—´
                //    const now = new Date();
                //    // æ³¨æ„ï¼šä¸Šé¢çš„代码会生成一个形如"2023-04-01 12:34:56"的字符串,但datetime-local实际上期望的是"YYYY-MM-DDTHH:mm:ss"(无空格)
                //    // å› æ­¤æˆ‘们应该使用下面的代码来正确格式化
                //    const formattedDateTimeLocal = now.toISOString().slice(0, 10) + 'T' + now.toTimeString().slice(0, 8).replace(/:\d{2}\.\d{3}/, ':00'); // åŽ»é™¤æ¯«ç§’å¹¶è®¾ç½®ä¸º00秒(因为datetime-local不支持毫秒)
                    // è®¾ç½®input元素的值
                    $(this).val(formattedDateTimeLocal);
                });
                //    // è®¾ç½®input元素的值
                //    $(this).val(formattedDateTimeLocal);
                //});
                //初始化项目阶段表
                get_InitGrid1();
            }