<%@ page language="java" pageEncoding="UTF-8" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="tags" tagdir="/WEB-INF/tags"%> <c:set var="ctx" value="${pageContext.request.contextPath}"/> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>数据质量规则维护</title> <style> .table-null .table{ margin-bottom: 0px; } .table-null .table > tbody > tr > td, .table-null .table > thead > tr > th{ text-align: center; width: 25%; } .table-null td:first-child{ text-align: right; width: 36%; } .table-null tr td:last-child .form-control,.table-null tr td:last-child table{ width: 400px; } </style> </head> <body> <div class="container"> <ol class="breadcrumb"> <li><a href="${ctx}/index">首页</a></li> <li>数据质量核查</li> <li class="active">数据质量规则维护</li> </ol> </div> <div id="main-container main-tab-container"> <div id="content" class="container"> <div class="section"> <div class="tab-content"> <div class="tab-pane fade in active" id="home"> <div class="row"> <div class="col-xs-12"> <div class="table-header">数据质量规则上传</div> <form action="#" class="form-horizontal" id="ruleMaintainForm" method="post"> <table id="ruleMaintainTable" class="table-null"> <tr><td>省份(<font color="red">必填</font>):</td> <td> <c:forEach var="province" items="${provinceList}"> <input type="checkbox" name="province" id="province" value="${province.provinceId}" checked>${province.provinceName} </c:forEach> </td> </tr> <tr><td>数据来源(<font color="red">必填</font>):</td> <td> <select class="form-control" name="dataSource" id="dataSource" > <c:forEach var="dataSource" items="${dataSourceList}"> <c:if test="${dataSource.dataSourceId == '5'}"> <option value="${dataSource.dataSourceId}" selected>${dataSource.dataSourceName}</option> </c:if > <c:if test="${dataSource.dataSourceId != '5'}"> <option value="${dataSource.dataSourceId}" >${dataSource.dataSourceName}</option> </c:if > </c:forEach> </select></td> </tr> <tr><td>渠道(<font color="red">必填</font>):</td> <td><select class="form-control" name="channel" id="channel" > <c:forEach var="channel" items="${channelList}"> <c:if test="${channel.channelId == '7'}"> <option value="${channel.channelId}" selected>${channel.channelName}</option> </c:if> <c:if test="${channel.channelId != '7'}"> <option value="${channel.channelId}">${channel.channelName}</option> </c:if> </c:forEach> </select></td> </tr> <tr><td>业务(<font color="red">必填</font>):</td> <td > <div id="businesstd"></div> </td> </tr> <tr><td>数据采集频率(<font color="red">必填</font>):</td> <td><select class="form-control" name="calCycle" id="calCycle" style="display: inline;"> <option value="30MI">30分钟</option> <option value="01HR">1小时</option> <option value="01DY">1天</option> <option value="01MO">1月</option> </select> </td></tr> <tr><td>指标(<font color="red">必填</font>):</td> <td> <div id="kpitd"></div> </td> </tr> <tr><td>指标监控时间(<font color="red">必填</font>):</td> <td> <input type="text" name="frequencyValue" id="frequencyValue" style="display: inline;" /> <select name="frequencyType" id="frequencyType"> <option value="0">分钟</option> <option value="1">小时</option> <option value="2">天</option> <option value="3">月</option> </select></td> </tr> <tr><td>指标采集时间(<font color="red">必填</font>):</td> <td id="businessTimetd"> <input type='text' class='form-control' id='businessTime' name='businessTime' onfocus='WdatePicker({dateFmt:"yyyy-MM-dd HH:mm:00",startDate:"%y-%M-%d 00:00:00",readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]},alwaysUseStartDate:true})'/> </td> </tr> <tr><td>添加准确性规则:</td> <td><table class="table table-hover table-striped" id="displayParam"> <thead > <tr><th>规则类型</th><th>范围最大值</th><th>范围最小值</th><th>重复考核粒度</th><th>重复考核开始时间</th><th>重复考核结束时间</th><th>重复是否连续</th><th>重复最大次数</th><th>数据是否累计</th><th><a href="javascript:deleteAllTr()">删除全部</a></th></tr> </thead> <tbody id="addTr"></tbody> </table></td></tr> <tr><td>准确性规则类型:</td> <td><select class="form-control" name="ruleType" id="ruleType" > <option value="">无</option> <option value="1">范围类</option> <option value="2">重复类</option> </select></td></tr> <tr class="range"><td>范围最大值:</td><td><input type="text" class="form-control" name="scopeMaxValue" id="scopeMaxValue" /></td></tr> <tr class="range"><td>范围最小值:</td><td><input type="text" class="form-control" name="scopeMinValue" id="scopeMinValue" /></td></tr> <tr class="repeate"><td>重复考核粒度:</td> <td><select class="form-control" name='repeatedCheckGranularity' id='repeatedCheckGranularity'> <option value="day" selected>日</option> <option value="mon">天</option> </select> </td></tr> <tr class="repeate"><td>重复考核开始时间:</td><td><input type="text" class="form-control" id="repeatedCheckStartTime" name="repeatedCheckStartTime" onfocus="WdatePicker({minDate:'#F{$dp.$D(\'repeatedCheckStartTime\')}'})" /></td></tr> <tr class="repeate"><td>重复考核结束时间:</td><td><input id="repeatedCheckEndTime" name="repeatedCheckEndTime" class="form-control" type="text" onFocus="WdatePicker({maxDate:'#F{$dp.$D(\'repeatedCheckEndTime\')}'})"></td></tr> <tr class="repeate"><td>重复是否连续:</td> <td><select name='ifRepeatedCheckSeries' id='ifRepeatedCheckSeries' class="form-control"> <option value="1" selected>是</option> <option value="0">否</option> </select> </td></tr> <tr class="repeate"><td>重复最大次数:</td><td><input type='text' name='repeatedCheckMaxTime' id='repeatedCheckMaxTime' class="form-control" style="display: inline;"/></td></tr> <tr class="repeate"><td>数据是否累计:</td> <td><select name='ifRepeatedCheckSummation' id='ifRepeatedCheckSummation' class="form-control"> <option value="1" selected>是</option> <option value="0">否</option> </select> </td></tr> <tr><td></td> <td><button type="button" id="addParam" class="btn btn-primary">添加规则</button></td></tr> <tr><td></td><td><button type="button" id="ruleSubmit" class="btn btn-primary">确定</button> <button type="reset" class="btn btn-warning" id="ruleBack">返回</button> </td></tr> </table> </form> <input type="hidden" id="kpi" name="kpi" value='${kpiList}' /> <input type="hidden" id="business" name="business" value='${businessList}' /> </div> </div> </div> </div> </div> </div> </div> <script type="text/javascript"> $(".range").hide(); $(".repeate").hide(); $("#addParam").hide(); $("#ruleType").change(function (){ var selectValue = $("#ruleType").val(); if (selectValue == ""){ $(".range").hide(); $(".repeate").hide(); $("#addParam").hide(); } if (selectValue == 1){ $(".repeate").hide(); $(".range").show(); $("#addParam").show(); } if (selectValue == 2){ $(".range").hide(); $(".repeate").show(); $("#addParam").show(); } }); //删除所有准确性规则 function deleteAllTr(){ $("#addTr").empty(); } //删除一条准确性规则 function deleteRow(elementTag){ $(elementTag).parent().parent().remove(); } //添加/修改准确性规则 $("#addParam").click(function(){ var ruleType= $("#ruleType").val(); var scopeMaxValue = $.trim($("#scopeMaxValue").val()); var scopeMinValue = $.trim($("#scopeMinValue").val()); var repeatedCheckGranularity = $.trim($("#repeatedCheckGranularity").val()); var repeatedCheckStartTime = $.trim($("#repeatedCheckStartTime").val()); var repeatedCheckEndTime = $.trim($("#repeatedCheckEndTime").val()); var ifRepeatedCheckSeries = $.trim($("#ifRepeatedCheckSeries").val()); var repeatedCheckMaxTime = $.trim($("#repeatedCheckMaxTime").val()); var ifRepeatedCheckSummation = $.trim($("#ifRepeatedCheckSummation").val()); if(ruleType == "1" || ruleType == "2"){ if(ruleType == "1"){ if(scopeMaxValue==""){$.alert("范围最大值不能为空");} if(scopeMinValue==""){$.alert("范围最小值不能为空");} repeatedCheckGranularity ="无"; repeatedCheckStartTime ="无"; repeatedCheckEndTime ="无"; ifRepeatedCheckSeries ="无"; repeatedCheckMaxTime ="无"; ifRepeatedCheckSummation ="无"; } else if(ruleType == "2"){ if(repeatedCheckGranularity==""){$.alert("重复考核粒度不能为空");} if(repeatedCheckStartTime==""){$.alert("重复考核开始时间不能为空");} if(repeatedCheckEndTime==""){$.alert("重复考核结束时间不能为空");} if(ifRepeatedCheckSeries==""){$.alert("重复是否连续不能为空");} if(repeatedCheckMaxTime==""){$.alert("重复最大次数不能为空");} if(ifRepeatedCheckSummation==""){$.alert("数据是否累计不能为空");} scopeMaxValue ="无"; scopeMinValue ="无"; } if($("#addTr").find("tr.orange-tr").html()==null){ var addRow = $("<tr><td>"+ruleType+"</td><td>"+scopeMaxValue+"</td><td>"+scopeMinValue+"</td><td>"+repeatedCheckGranularity+"</td><td>"+repeatedCheckStartTime+"</td><td>"+repeatedCheckEndTime+"</td><td>"+ifRepeatedCheckSeries+"</td><td>"+repeatedCheckMaxTime+"</td><td>"+ifRepeatedCheckSummation+"</td><td><a href='javascript:;' title='' onclick='deleteRow(this)'>删除</a></td></tr>"); $("#addTr").append(addRow); $("#ruleType").attr("value",""); $("#scopeMaxValue").attr("value",""); $("#scopeMinValue").attr("value",""); $("#repeatedCheckGranularity").attr("value",""); $("#repeatedCheckStartTime").attr("value",""); $("#repeatedCheckEndTime").attr("value",""); $("#ifRepeatedCheckSeries").attr("value",""); $("#repeatedCheckMaxTime").attr("value",""); $("#ifRepeatedCheckSummation").attr("value",""); }else{ var findTr = $("#addTr").find("tr.orange-tr"); $(findTr).find("td").eq(0).html(ruleType); $(findTr).find("td").eq(1).html(scopeMaxValue); $(findTr).find("td").eq(2).html(scopeMinValue); $(findTr).find("td").eq(3).html(repeatedCheckGranularity); $(findTr).find("td").eq(4).html(repeatedCheckStartTime); $(findTr).find("td").eq(5).html(repeatedCheckEndTime); $(findTr).find("td").eq(6).html(ifRepeatedCheckSeries); $(findTr).find("td").eq(7).html(repeatedCheckMaxTime); $(findTr).find("td").eq(8).html(ifRepeatedCheckSummation); $("#addTr").find("tr").removeClass(); $("#addParam").text("添加规则"); } } }); //form表单提交 $("#ruleSubmit").click(function(){ if($.trim($("#frequencyValue").val())==""){ $.alert("指标监控时间不能为空"); }else if($("#businessTime").val()==""){ $.alert("指标业务时间不能为空"); }else if($("#ruleCrtTime").val()==""){ $.alert("规则创建时间不能为空"); }else if($("#ruleUpdateTime").val()==""){ $.alert("规则更新时间不能为空"); }else{ if($.trim($("#ruleType").val())=="1" || $.trim($("#ruleType").val())=="2"){ $.dialog({ title: "提醒", content: "有准确性规则参数尚未添加,确定提交", ok: function(){ $("#ruleSubmit").attr("disabled",true); var i = $("#addTr").find("tr").size(); if(i==0){ var createForm=$("#ruleMaintainForm"); createForm.attr("action","${ctx}/AnalysisSupport/QualityRuleMaintain/saveRuleDataForm"); createForm.submit(); createForm.attr("action","#"); }else{ $("#addTr").find("tr").each(function(){ var ruleType = $(this).find("td").eq(0).html(); var scopeMaxValue = $(this).find("td").eq(1).html(); var scopeMinValue = $(this).find("td").eq(2).html(); var repeatedCheckGranularity = $(this).find("td").eq(3).html(); var repeatedCheckStartTime = $(this).find("td").eq(4).html(); var repeatedCheckEndTime = $(this).find("td").eq(5).html(); var ifRepeatedCheckSeries = $(this).find("td").eq(6).html(); var repeatedCheckMaxTime = $(this).find("td").eq(7).html(); var ifRepeatedCheckSummation = $(this).find("td").eq(8).html(); if(scopeMaxValue =="无"){scopeMaxValue ="";} if(scopeMinValue =="无"){scopeMinValue ="";} if(repeatedCheckGranularity =="无"){repeatedCheckGranularity ="";} if(repeatedCheckStartTime =="无"){repeatedCheckStartTime ="";} if(repeatedCheckEndTime ="无"){repeatedCheckEndTime ="";} if(ifRepeatedCheckSeries =="无"){ifRepeatedCheckSeries ="";} if(repeatedCheckMaxTime =="无"){repeatedCheckMaxTime ="";} if(ifRepeatedCheckSummation =="无"){ifRepeatedCheckSummation ="";} $.ajax({ type : "GET", contentType : "application/json", url: "${ctx}/AnalysisSupport/QualityRuleMaintain/createAccuracyRule?ruleType="+ruleType+"&scopeMaxValue="+scopeMaxValue+"&scopeMinValue="+scopeMinValue+"&repeatedCheckGranularity="+repeatedCheckGranularity+"&repeatedCheckStartTime="+repeatedCheckStartTime+"&repeatedCheckEndTime="+repeatedCheckEndTime+"&scopeMinValue="+ifRepeatedCheckSeries+"&ifRepeatedCheckSeries="+repeatedCheckMaxTime+"&repeatedCheckMaxTime="+ifRepeatedCheckSummation+"&ifRepeatedCheckSummation=", dataType : "text", async: false, beforeSend: function(data) {}, success: function(){ i--; if(i==0){ var createForm=$("#ruleMaintainForm"); createForm.attr("action","${ctx}/AnalysisSupport/QualityRuleMaintain/saveRuleDataForm"); createForm.submit(); createForm.attr("action","#"); } } }); }); } }, okValue: "确定", cancel: function(){}, cancelValue: "取消", }); }else{ $("#ruleSubmit").attr("disabled",true); var i = $("#addTr").find("tr").size(); if(i==0){ var createForm=$("#ruleMaintainForm"); createForm.attr("action","${ctx}/AnalysisSupport/QualityRuleMaintain/saveRuleDataForm"); createForm.submit(); createForm.attr("action","#"); }else{ $("#addTr").find("tr").each(function(){ var ruleType = $(this).find("td").eq(0).html(); var scopeMaxValue = $(this).find("td").eq(1).html(); var scopeMinValue = $(this).find("td").eq(2).html(); var repeatedCheckGranularity = $(this).find("td").eq(3).html(); var repeatedCheckStartTime = $(this).find("td").eq(4).html(); var repeatedCheckEndTime = $(this).find("td").eq(5).html(); var ifRepeatedCheckSeries = $(this).find("td").eq(6).html(); var repeatedCheckMaxTime = $(this).find("td").eq(7).html(); var ifRepeatedCheckSummation = $(this).find("td").eq(8).html(); if(scopeMaxValue =="无"){scopeMaxValue ="";} if(scopeMinValue =="无"){scopeMinValue ="";} if(repeatedCheckGranularity =="无"){repeatedCheckGranularity ="";} if(repeatedCheckStartTime =="无"){repeatedCheckStartTime ="";} if(repeatedCheckEndTime ="无"){repeatedCheckEndTime ="";} if(ifRepeatedCheckSeries =="无"){ifRepeatedCheckSeries ="";} if(repeatedCheckMaxTime =="无"){repeatedCheckMaxTime ="";} if(ifRepeatedCheckSummation =="无"){ifRepeatedCheckSummation ="";} $.ajax({ type : "GET", contentType : "application/json", url: "${ctx}/AnalysisSupport/QualityRuleMaintain/createAccuracyRule?ruleType="+ruleType+"&scopeMaxValue="+scopeMaxValue+"&scopeMinValue="+scopeMinValue+"&repeatedCheckGranularity="+encodeURIComponent(repeatedCheckGranularity)+"&repeatedCheckStartTime="+encodeURIComponent(repeatedCheckStartTime)+"&repeatedCheckEndTime="+encodeURIComponent(repeatedCheckEndTime)+"&ifRepeatedCheckSeries="+ifRepeatedCheckSeries+"&repeatedCheckMaxTime="+repeatedCheckMaxTime+"&ifRepeatedCheckSummation="+ifRepeatedCheckSummation, dataType : "text", async: false, beforeSend: function(data) {}, success: function(){ i--; if(i==0){ var createForm=$("#ruleMaintainForm"); createForm.attr("action","${ctx}/AnalysisSupport/QualityRuleMaintain/saveRuleDataForm"); createForm.submit(); createForm.attr("action","#"); } } }); }); } } } }); $("#ruleBack").click(function(){ location.href="${ctx}/AnalysisSupport/QualityRuleResult"; }); function getProvinceCheckedValues() { var provinceArray = new Array(); var i=0; $("#province:checked").each(function(){ provinceArray[i]=$(this).val(); i++; }); return provinceArray; } function getProvinceCheckedValuesString(){ var provinceStr=""; var provinceArray=getProvinceCheckedValues(); for(var i=0;i<provinceArray.length;i++){ if(i==provinceArray.length-1){ provinceStr+=provinceArray[i]; }else{ provinceStr+=provinceArray[i]+","; } } return provinceStr; } var dataSourceValue =$("#dataSource").val(); var channelValue = $("#channel").val(); var businessIds = getBusinessCheckedValues(); var calCycleValue =$("#calCycle").val(); $("#dataSource").change(function(){ dataSourceValue = $("#dataSource").val(); updateBusiness(dataSourceValue,channelValue); }); $("#channel").change(function(){ channelValue = $("#channel").val(); updateBusiness(dataSourceValue,channelValue); }); function updateKpi(businessIds,calCycleValue){ $.ajax({ type : "GET", contentType : "application/json", url: "${ctx}/AnalysisSupport/QualityRuleMaintain/findKpiId?businessIds="+businessIds+"&calCycleValue="+calCycleValue, async: false, beforeSend: function(data) {}, success: function(data){ var td = $("#kpitd"); td.empty(); data = JSON.parse(data) data.forEach(function(t){ td.append("<input type='checkbox' name='kpiinput' class='kpiItem' title='"+t[2]+"' value='"+t[0]+"' checked >"+t[1]+"</input>") }); } }); } function updateBusiness(dataSource,channel){ $.ajax({ type : "GET", contentType : "application/json", url: "${ctx}/AnalysisSupport/QualityRuleMaintain/findBusinessId?dataSource="+dataSource+"&channel="+channel, async: false, beforeSend: function(data) {}, success: function(data){ var td = $("#businesstd"); var businessIds = new Array(); td.empty(); data = JSON.parse(data) data.forEach(function(t){ td.append("<input type='checkbox' name='businessinput' class='businessItem' value='"+t[0]+"' checked >"+t[1]+"</input>") businessIds+=t[0]+","; }); updateKpi(businessIds,calCycleValue); } }); $(".businessItem").click(function(){ businessIds=""; $("[name='businessinput']:checked").each(function (){ businessIds += $(this).val()+","; }); updateKpi(businessIds,calCycleValue); }); } $("#calCycle").change(function () { calCycleValue=$("#calCycle").val(); $("[name='businessinput']:checked").each(function (){ businessIds += $(this).val()+","; }); updateKpi(businessIds,calCycleValue) updateBusinessTime(calCycleValue) }); updateBusiness($("#dataSource").val(),$("#channel").val()); function updateBusinessTime(calCycleValue) { $("#businessTimetd").empty() if(calCycleValue == "30MI"){ $("#businessTimetd").append("<input type='text' class='form-control' id='businessTime' name='businessTime' onfocus='WdatePicker({dateFmt:\"yyyy-MM-dd HH:mm:00\",startDate:\"%y-%M-%d 00:00:00\",alwaysUseStartDate:true,readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]}})'/>"); }else if(calCycleValue == "01HR"){ $("#businessTimetd").append("<input type='text' class='form-control' id='businessTime' name='businessTime' onfocus='WdatePicker({dateFmt:\"yyyy-MM-dd HH:00:00\",startDate:\"%y-%M-%d 00:00:00\",alwaysUseStartDate:true,readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 60, 0 ], s : [ 60, 0 ]}})'/>"); }else if(calCycleValue == "01DY"){ $("#businessTimetd").append("<input type='text' class='form-control' id='businessTime' name='businessTime' onfocus='WdatePicker({dateFmt:\"yyyy-MM-dd 00:00:00\",startDate:\"%y-%M-%d 00:00:00\",alwaysUseStartDate:true,readOnly:false,hmsMenuCfg : {H : [ 24, 0 ], m : [ 60, 0 ], s : [ 60, 0 ]}})'/>"); }else if(calCycleValue == "01MO"){ $("#businessTimetd").append("<input type='text' class='form-control' id='businessTime' name='businessTime' onfocus='WdatePicker({dateFmt:\"yyyy-MM-01 00:00:00\",startDate:\"%y-%M-%d 00:00:00\",alwaysUseStartDate:true,readOnly:false,hmsMenuCfg : {H : [ 24, 0 ], m : [ 60, 0 ], s : [ 60, 0 ]}})' />"); } } function getBusinessCheckedValues(){ var businessArray = new Array(); var i=0; $("[name='businessinput']:checked").each(function(){ businessArray[i]=$(this).val(); i++; }); return businessArray; } function getBusinessCheckedValuesString(){ var businessStr=""; var businessArray=getBusinessCheckedValues(); for(var i=0;i<businessArray.length;i++){ if(i==businessArray.length-1){ businessStr+=businessArray[i]; }else{ businessStr+=businessArray[i]+","; } } return businessStr; } function getKpiCheckedValues(){ var kpiArray = new Array(); var i=0; $("[name='kpiinput']:checked").each(function(){ kpiArray[i]=$(this).val(); i++; }); return kpiArray; } function getKpiCheckedValuesString(){ var kpiStr=""; var kpiArray=getKpiCheckedValues(); for(var i=0;i<kpiArray.length;i++){ if(i==kpiArray.length-1){ kpiStr+=kpiArray[i]; }else{ kpiStr+=kpiArray[i]+","; } } return kpiStr; } var provinceValue = getProvinceCheckedValuesString(); var businessValue = getBusinessCheckedValuesString(); var kpiValue = getKpiCheckedValuesString(); </script> </body> </html>