Commit 98f37997 authored by liuna's avatar liuna

2017年12月4日 智能分析平台提交内容

--数据质量核查下质量规则报告页面
parent 3f1e7665
This diff is collapsed.
package com.hp.cmsz.entity;
import javax.persistence.*;
import java.sql.Timestamp;
/**
* ccolap.quality_report_detail_v视图对应的实体类
*
* @author Liu Na
*
*/
@Entity
@Table(name = "quality_report_detail_v")
public class QualityRuleReport {
private Long qualityVerificationReportId;
private Long dataSourceId;
private Long businessId;
private Long kpiId;
private Long provinceId;
private Long channelId;
private String provinceName;
private String dataSourceName;
private String businessName;
private String channelName;
private String kpiName;
private String kpiCode;
private String reportType;
private String reportName;
private Timestamp reportSumStartTime;
private Timestamp reportSumEndTime;
private Long integralityNum;
private Double integralityPro;
private Long timelyNum;
private Double timelyPro;
private Long accuracyNum;
private Double accuracyPro;
private Long ifPredicted;
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
public Long getQualityVerificationReportId() {
return qualityVerificationReportId;
}
public void setQualityVerificationReportId(Long qualityVerificationReportId) {
this.qualityVerificationReportId = qualityVerificationReportId;
}
public Long getDataSourceId() {
return dataSourceId;
}
public void setDataSourceId(Long dataSourceId) {
this.dataSourceId = dataSourceId;
}
public Long getBusinessId() {
return businessId;
}
public void setBusinessId(Long businessId) {
this.businessId = businessId;
}
public Long getKpiId() {
return kpiId;
}
public void setKpiId(Long kpiId) {
this.kpiId = kpiId;
}
public Long getProvinceId() {
return provinceId;
}
public void setProvinceId(Long provinceId) {
this.provinceId = provinceId;
}
public Long getChannelId() {
return channelId;
}
public void setChannelId(Long channelId) {
this.channelId = channelId;
}
public String getProvinceName() {
return provinceName;
}
public void setProvinceName(String provinceName) {
this.provinceName = provinceName;
}
public String getDataSourceName() {
return dataSourceName;
}
public void setDataSourceName(String dataSourceName) {
this.dataSourceName = dataSourceName;
}
public String getBusinessName() {
return businessName;
}
public void setBusinessName(String businessName) {
this.businessName = businessName;
}
public String getKpiName() {
return kpiName;
}
public void setKpiName(String kpiName) {
this.kpiName = kpiName;
}
public String getKpiCode() {
return kpiCode;
}
public void setKpiCode(String kpiCode) {
this.kpiCode = kpiCode;
}
public String getReportType() {
return reportType;
}
public void setReportType(String reportType) {
this.reportType = reportType;
}
public String getReportName() {
return reportName;
}
public void setReportName(String reportName) {
this.reportName = reportName;
}
public Timestamp getReportSumStartTime() {
return reportSumStartTime;
}
public void setReportSumStartTime(Timestamp reportSumStartTime) {
this.reportSumStartTime = reportSumStartTime;
}
public Timestamp getReportSumEndTime() {
return reportSumEndTime;
}
public void setReportSumEndTime(Timestamp reportSumEndTime) {
this.reportSumEndTime = reportSumEndTime;
}
public Long getIntegralityNum() {
return integralityNum;
}
public void setIntegralityNum(Long integralityNum) {
this.integralityNum = integralityNum;
}
public Double getIntegralityPro() {
return integralityPro;
}
public void setIntegralityPro(Double integralityPro) {
this.integralityPro = integralityPro;
}
public Long getTimelyNum() {
return timelyNum;
}
public void setTimelyNum(Long timelyNum) {
this.timelyNum = timelyNum;
}
public Double getTimelyPro() {
return timelyPro;
}
public void setTimelyPro(Double timelyPro) {
this.timelyPro = timelyPro;
}
public Long getAccuracyNum() {
return accuracyNum;
}
public void setAccuracyNum(Long accuracyNum) {
this.accuracyNum = accuracyNum;
}
public Double getAccuracyPro() {
return accuracyPro;
}
public void setAccuracyPro(Double accuracyPro) {
this.accuracyPro = accuracyPro;
}
public Long getIfPredicted() {
return ifPredicted;
}
public void setIfPredicted(Long ifPredicted) {
this.ifPredicted = ifPredicted;
}
public String getChannelName() {
return channelName;
}
public void setChannelName(String channelName) {
this.channelName = channelName;
}
}
......@@ -21,5 +21,5 @@ public interface QualityRuleInfoDao extends JpaSpecificationExecutor<QualityRule
QualityRuleInfo findByQualityRuleId(Long qualityRuleId);
//根据筛选项查找
List<QualityRuleInfo> findByDataSourceIdInAndChannelIdInAndBusinessIdInAndProvinceIdInAndIfFilterInAndBusinessTimeBetweenOrderByBusinessTimeDesc(List<Long> dataSource, List<Long> chnnal, List<Long> busines, List<Long> province, List<Long> ifFilter,Timestamp startTime, Timestamp endTime);
List<QualityRuleInfo> findByDataSourceIdInAndChannelIdInAndBusinessIdInAndProvinceIdInAndIfFilterInAndWarningTypeInAndBusinessTimeBetweenOrderByBusinessTimeDesc(List<Long> dataSource, List<Long> chnnal, List<Long> busines, List<Long> province, List<Long> ifFilter,List<String> ifWarning,Timestamp startTime, Timestamp endTime);
}
package com.hp.cmsz.repository;
import com.hp.cmsz.entity.QualityRuleInfo;
import com.hp.cmsz.entity.QualityRuleReport;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.sql.Timestamp;
import java.util.List;
public interface QualityRuleReportDao extends JpaSpecificationExecutor<QualityRuleReport>,
PagingAndSortingRepository<QualityRuleReport, Long> {
@Query("from QualityRuleReport qualityRuleReport where qualityRuleReport.reportSumEndTime between timestampadd(M,-1,getdate()) and getdate() order by qualityRuleReport.reportSumEndTime Desc")
List<QualityRuleReport> findQualityRuleReport();
//根据筛选项筛选出质量规则报告
List<QualityRuleReport> findByDataSourceIdInAndChannelIdInAndBusinessIdInAndProvinceIdInAndReportTypeInAndReportSumEndTimeBetweenOrderByReportSumEndTimeDesc(List<Long> dataSource, List<Long> chnnal, List<Long> busines, List<Long> province,List<String> reportType, Timestamp startTime, Timestamp endTime);
}
......@@ -23,8 +23,8 @@ public class QualityRuleInfoService {
}
//根据筛选项获取质量规则
public List<QualityRuleInfo> getQualityRuleInfoBy(List<Long> dataSource, List<Long> chnnal, List<Long> busines, List<Long>province, List<Long> ifFilter,Timestamp startTime, Timestamp endTime){
return qualityRuleInfoDao.findByDataSourceIdInAndChannelIdInAndBusinessIdInAndProvinceIdInAndIfFilterInAndBusinessTimeBetweenOrderByBusinessTimeDesc(dataSource,chnnal,busines,province,ifFilter,startTime, endTime);
public List<QualityRuleInfo> getQualityRuleInfoBy(List<Long> dataSource, List<Long> chnnal, List<Long> busines, List<Long>province, List<Long> ifFilter,List<String> ifWarning,Timestamp startTime, Timestamp endTime){
return qualityRuleInfoDao.findByDataSourceIdInAndChannelIdInAndBusinessIdInAndProvinceIdInAndIfFilterInAndWarningTypeInAndBusinessTimeBetweenOrderByBusinessTimeDesc(dataSource,chnnal,busines,province,ifFilter,ifWarning,startTime, endTime);
}
}
package com.hp.cmsz.service.analysissupport;
import com.hp.cmsz.entity.QualityRuleReport;
import com.hp.cmsz.repository.QualityRuleReportDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Timestamp;
import java.util.List;
@Service
@Transactional
public class QualityRuleReportService {
@Autowired
private QualityRuleReportDao qualityRuleReportDao;
public List<QualityRuleReport> getQualityRuleReportByLastMonth(){ return qualityRuleReportDao.findQualityRuleReport();}
//根据筛选项筛选
public List<QualityRuleReport> getQualityRuleReportBy(List<Long> dataSource, List<Long> chnnal, List<Long> busines, List<Long>province,List<String> reportType, Timestamp startTime, Timestamp endTime){
return qualityRuleReportDao.findByDataSourceIdInAndChannelIdInAndBusinessIdInAndProvinceIdInAndReportTypeInAndReportSumEndTimeBetweenOrderByReportSumEndTimeDesc(dataSource,chnnal,busines,province,reportType,startTime, endTime);
}
}
......@@ -193,6 +193,7 @@ public class PageURLController {
public static String FilterMaintain = "AnalysisSupport/FilterRuleMaintain";
public static String FilterConfiguration = "AnalysisSupport/FilterRuleConfiguration";
public static String RuleOperation = "AnalysisSupport/QualityRuleOperation";
public static String RuleReport = "AnalysisSupport/QualityRuleReport";
//基础管理
//AuthorityManage映射到WEB-INF/views下的AuthorityManage/AuthorityManage.jsp页面
......
......@@ -306,7 +306,8 @@ public class QualityRuleConfigurationController {
}
qualityRule.setRuleCrtTime(Timestamp.valueOf(ruleCrtTime));
qualityRule.setRuleUpdateTime(Timestamp.valueOf(sd.format(new Date())));
qualityRule.setRuleValidFlag("1");
qualityRule.setIfSystemValue("1");
qualityRuleDao.save(qualityRule);
cmszOperationLogService.createLog("修改", "更新数据质量规则", "quality_rule_warehouse_info_t. QUALITY_RULE_ID=" + qualityRule.getQualityRuleId().toString());
......
......@@ -310,8 +310,8 @@ public class QualityRuleMaintainController {
}
qualityRule.setRuleCrtTime(Timestamp.valueOf(sd.format(new Date())));
qualityRule.setRuleUpdateTime(Timestamp.valueOf(sd.format(new Date())));
qualityRule.setRuleValidFlag("0");
qualityRule.setIfSystemValue("0");
qualityRule.setRuleValidFlag("1");
qualityRule.setIfSystemValue("1");
qualityRuleDao.save(qualityRule);
cmszOperationLogService.createLog("增加", "新建质量模型", "quality_rule_warehouse_info_t. QUALITY_RULE_ID=" + qualityRule.getQualityRuleId().toString());
Long qualityRuleId = qualityRule.getQualityRuleId();
......
......@@ -108,9 +108,9 @@ public class QualityRuleOperationController {
@RequestParam(value = "bussines") String bussines,//业务
@RequestParam(value = "province") String province,//省份
@RequestParam(value = "ifFilter") String ifFilter,//是否过滤
@RequestParam(value = "ifWarning") String ifWarning,//是否告警
HttpServletResponse response) throws ParseException, UnsupportedEncodingException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
cmszOperationLogService.createLog("查询","质量规则运营查询","质量规则运营页面查询");
List<QualityRuleInfo> qualityRuleInfoList;
String[] dates=period.split("~");
......@@ -119,6 +119,7 @@ public class QualityRuleOperationController {
String[] bussinesS =bussines.split(",");
String[] provinceS=province.split(",");
String[] ifFilterS=ifFilter.split(",");
String[] ifWarningS=ifWarning.split(",");
Timestamp startTime= Timestamp.valueOf(dates[0]);
Timestamp endTime=Timestamp.valueOf(dates[1]);
List<Long> dataSourceList=changeStrToList(dataSourceS);
......@@ -126,7 +127,9 @@ public class QualityRuleOperationController {
List<Long> bussinesList=changeStrToList(bussinesS);
List<Long> provinceList=changeStrToList(provinceS);
List<Long> ifFilterList=changeStrToList(ifFilterS);
qualityRuleInfoList = qualityRuleInfoService.getQualityRuleInfoBy(dataSourceList,chnnalList,bussinesList,provinceList,ifFilterList,startTime,endTime);
List<String> ifWarningList=changeStrToListstr(ifWarningS);
qualityRuleInfoList = qualityRuleInfoService.getQualityRuleInfoBy(dataSourceList,chnnalList,bussinesList,provinceList,ifFilterList,ifWarningList,startTime,endTime);
cmszOperationLogService.createLog("查询","数据质量运营","由筛选项得到数据质量运营");
Gson gson = new Gson();
response.setContentType("text/Xml;charset=gbk");
PrintWriter out = null;
......@@ -149,6 +152,16 @@ public class QualityRuleOperationController {
return list;
}
//将string数据类型转换成List<String>类型
public List<String> changeStrToListstr(String[] str){
List<String> list = new ArrayList<String>();
for(int i=0;i<str.length;i++){
list.add(str[i]);
}
return list;
}
//查看数据质量规则内容
@RequestMapping(value = "/findQuality*",method = RequestMethod.GET)
@ResponseBody
......
package com.hp.cmsz.web.analysissupport;
import com.google.gson.Gson;
import com.hp.cmsz.entity.*;
import com.hp.cmsz.repository.DataSourceDao;
import com.hp.cmsz.repository.KpiDao;
import com.hp.cmsz.repository.ProvinceDao;
import com.hp.cmsz.service.BusinessService;
import com.hp.cmsz.service.ChannelService;
import com.hp.cmsz.service.CmszOperationLogService;
import com.hp.cmsz.service.analysissupport.QualityRuleReportService;
import com.hp.cmsz.web.PageURLController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 数据质量核查中的质量规则报告结果控制类
*
* @author Liu Na
*
*/
@Controller
@RequestMapping(value="AnalysisSupport/QualityRuleReport")
public class QualityRuleReportController {
@Autowired
private ProvinceDao provinceDao;
@Autowired
private ChannelService channelService;
@Autowired
private BusinessService businessService;
@Autowired
private KpiDao kpiDao;
@Autowired
private DataSourceDao dataSourceDao;
@Autowired
private QualityRuleReportService qualityRuleReportService;
@Autowired
private CmszOperationLogService cmszOperationLogService;
@RequestMapping(value = "")
public String ruleResultHome(
@RequestParam(value = "rulePageNum", defaultValue="1") String rulePageNum,
Map model){
List<QualityRuleReport> qualityRuleReportList = new ArrayList<QualityRuleReport>();
//查询出所有省份的信息
List<Province> provinceList=(List<Province>)provinceDao.findAll();
//查询出所有的渠道信息
//List<Channel> channelList=(List<Channel>)channelDao.findChannel();
List<Channel> channelList = channelService.getAllChannels();
//查询出所有的指标
List<Kpi> kpiList=(List<Kpi>)kpiDao.findAll();
//查询出所有的业务
List<String> businessList=businessService.getAllBusinessIdAndBusinessName();
//查询出所有的数据来源信息
List<DataSource> datasourceList=dataSourceDao.findDataSource();
//查询出所有的运营质量规则
qualityRuleReportList = qualityRuleReportService.getQualityRuleReportByLastMonth();
Gson gson = new Gson();
model.put("provinceList", provinceList);
model.put("channelList", channelList);
model.put("kpiList", kpiList);
model.put("businessList",businessList);
model.put("datasourceList", datasourceList);
model.put("qualityRuleReportList", gson.toJson(qualityRuleReportList));
model.put("rulePageNum", rulePageNum);
cmszOperationLogService.createLog("查询","质量规则报告","质量规则报告首页");
return PageURLController.RuleReport;
}
//根据筛选项搜索
@RequestMapping(value = "/reportChangeTable*", method = RequestMethod.GET)
@ResponseBody
public void changeTable(@RequestParam(value = "period") String period,// 时间
@RequestParam(value = "dataSource") String dataSource,// 数据来源
@RequestParam(value = "chnnal") String chnnal,//渠道
@RequestParam(value = "bussines") String bussines,//业务
@RequestParam(value = "province") String province,//省份
@RequestParam(value = "reportType") String reportType,//报告类型
HttpServletResponse response) throws ParseException, UnsupportedEncodingException {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
List<QualityRuleReport> qualityRuleReportList;
String[] dates = period.split("~");
String[] dataSourceS = dataSource.split(",");
String[] chnnalS = chnnal.split(",");
String[] bussinesS = bussines.split(",");
String[] provinceS = province.split(",");
String[] reportTypeS = reportType.split(",");
Timestamp startTime = Timestamp.valueOf(dates[0]);
Timestamp endTime = Timestamp.valueOf(dates[1]);
List<Long> dataSourceList = changeStrToList(dataSourceS);
List<Long> chnnalList = changeStrToList(chnnalS);
List<Long> bussinesList = changeStrToList(bussinesS);
List<Long> provinceList = changeStrToList(provinceS);
List<String> reportTypeList = changeStrToListstr(reportTypeS);
qualityRuleReportList = qualityRuleReportService.getQualityRuleReportBy(dataSourceList, chnnalList, bussinesList, provinceList,reportTypeList, startTime, endTime);
cmszOperationLogService.createLog("查询", "数据质量报告", "由筛选项得到数据质量报告");
Gson gson = new Gson();
response.setContentType("text/Xml;charset=gbk");
PrintWriter out = null;
try {
out = response.getWriter();
out.println(gson.toJson(qualityRuleReportList));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//将string数据类型转换成List<Long>类型
public List<Long> changeStrToList(String[] str){
List<Long> list = new ArrayList<Long>();
for(int i=0;i<str.length;i++){
list.add(Long.parseLong(str[i]));
}
return list;
}
//将string数据类型转换成List<String>类型
public List<String> changeStrToListstr(String[] str){
List<String> list = new ArrayList<String>();
for(int i=0;i<str.length;i++){
list.add(str[i]);
}
return list;
}
}
......@@ -274,6 +274,7 @@
<ul class="dropdown-menu">
<li><a href="${ctx}/AnalysisSupport/QualityRuleResult">数据质量规则维护</a></li>
<li><a href="${ctx}/AnalysisSupport/QualityRuleOperation">数据质量运营</a></li>
<li><a href="${ctx}/AnalysisSupport/QualityRuleReport">数据质量报告</a></li>
<li><a href="${ctx}/AnalysisSupport/FilterRuleResult">过滤规则维护</a></li>
</ul>
</li>
......
<%@tag pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<!-- 质量规则报告类型 -->
<div id="ws" class="slide-menu-option">
<label>是否过滤</label>
<select class="slide-menu-select" id="reportType" name="reportType">
<option value="1,2,3" title="全部"selected><a href="#">全部</a></option>
<option value="1" title="日报"><a href="#">日报</a></option>
<option value="2" title="周报"><a href="#">周报</a></option>
<option value="3" title="月报"><a href="#">月报</a></option>
</select>
</div>
<script type="text/javascript">
function getReportType(){
return $("#reportType").val();
}
function getReportTypeTitle(){
return $("#reportType").find("option:selected").attr("title");
}
function RelReportTypeRest() {
$("#reportType").val("1,2,3");
}
</script>
\ No newline at end of file
<%@tag pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />
<!-- 质量规则是否告警 -->
<div id="ws" class="slide-menu-option">
<label>是否告警</label>
<select class="slide-menu-select" id="ifWarning" name="ifWarning">
<option value="正常" title="正常"><a href="#">正常</a></option>
<option value="及时性,准确性" title="告警"><a href="#">告警</a></option>
</select>
</div>
<script type="text/javascript">
function getIfWarning(){
return $("#ifWarning").val();
}
function getIfWarningTitle(){
return $("#ifWarning").find("option:selected").attr("title");
}
function RelWarningRest() {
$("#ifWarning").val("正常");
}
</script>
\ No newline at end of file
......@@ -117,7 +117,7 @@
</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",readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]}})'/>
<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 ]}})'/>
</td>
</tr>
<tr><td>添加准确性规则:</td>
......@@ -441,8 +441,7 @@
td.empty();
data = JSON.parse(data)
data.forEach(function(t){
console.log(data)
td.append("<input type='checkbox' title='kpiCode' name='kpiinput' class='kpiItem' value='"+t[0]+"' >"+t[1]+"</input>")
td.append("<input type='checkbox' title='"+t[2]+"' name='kpiinput' class='kpiItem' value='"+t[0]+"' >"+t[1]+"</input>")
});
}
});
......@@ -493,13 +492,13 @@
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\",readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]}})'/>");
$("#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 : [ 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\",readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]}})'/>");
$("#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\",readOnly:false,hmsMenuCfg : {H : [ 24, 0 ], m : [ 60, 0 ], s : [ 60, 0 ]}})'/>");
$("#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,startDate:\"yyyy-MM-dd 00:00:00\",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\",readOnly:false,hmsMenuCfg : {H : [ 24, 0 ], m : [ 60, 0 ], s : [ 60, 0 ]}})' />");
$("#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 ]}})' />");
}
}
......
......@@ -109,13 +109,13 @@
</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",readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]}})'/>
<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 >
<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>
......@@ -433,7 +433,7 @@ function updateKpi(businessIds,calCycleValue){
td.empty();
data = JSON.parse(data)
data.forEach(function(t){
td.append("<input type='checkbox' name='kpiinput' class='kpiItem' value='"+t[0]+"' checked >"+t[1]+"</input>")
td.append("<input type='checkbox' name='kpiinput' class='kpiItem' title='"+t[2]+"' value='"+t[0]+"' checked >"+t[1]+"</input>")
});
}
});
......@@ -484,13 +484,13 @@ 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\",readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]},'minDate:HH:00:00','maxDate:HH:30:00'})'/>");
$("#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\",readOnly:false,hmsMenuCfg : {H : [ 1, 6 ], m : [ 30, 2 ], s : [ 60, 0 ]}})'/>");
$("#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\",readOnly:false,hmsMenuCfg : {H : [ 24, 0 ], m : [ 60, 0 ], s : [ 60, 0 ]}})'/>");
$("#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\",readOnly:false,hmsMenuCfg : {H : [ 24, 0 ], m : [ 60, 0 ], s : [ 60, 0 ]}})' />");
$("#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 ]}})' />");
}
}
......
......@@ -28,6 +28,7 @@
<ul class="nav nav-tabs">
<li><a href="${ctx}/AnalysisSupport/QualityRuleResult">数据质量规则维护</a></li>
<li class="active"><a href="#home" data-toggle="tab">数据质量运营</a></li>
<li><a href="${ctx}/AnalysisSupport/QualityRuleReport">数据质量报告</a></li>
<li><a href="${ctx}/AnalysisSupport/FilterRuleResult">过滤规则维护</a></li>
</ul>
</div>
......@@ -45,6 +46,7 @@
<tags:Public_ProvinceTag />
<tags:GJFX_datasource_channle_business/>
<tags:QualityRule_IfFilter />
<tags:QualityRuleInfo_IfWarning />
<button id="submit" class="btn btn-primary" onclick="operResultSubmit()">提交</button>
<button id="disable" class="btn btn-warning" onclick="operResultReset()">重置</button>
</div>
......@@ -65,6 +67,7 @@
<span id="ChannelTag3" class="label label-info" data-placement="bottom"></span>
<span id="BusinessTag" class="label label-info" data-placement="bottom" ></span>
<span id="ifFilterTag" class="label label-info" data-placement="bottom" ></span>
<span id="ifWarningTag" class="label label-info" data-placement="bottom" ></span>
</div>
<div class="bt-list-import">
......@@ -74,7 +77,7 @@
<div class="row">
<div class="col-xs-12">
<div class="table-header">
质量规则运营结果
数据质量规则运营结果
<shiro:hasAnyRoles name="admin,dataAnalysis,businessAnalysis">
<div id="time_div" style="top: -6px;float: right;height: 0px;position: relative;">
......@@ -108,6 +111,7 @@
var bussines=getStatsBusinessCheckedValuesString();
var province=getProvinceCheckedValuesString();
var ifFilter=getIfFilter();
var ifWarning=getIfWarning();
if(dataSource==""){
$.alert("数据来源的选择不能为空");
}else if(chnnal===""){
......@@ -118,6 +122,8 @@
$.alert("省份的选择不能为空");
}else if(ifFilter==="") {
$.alert("是否过滤的选择不能为空");
}else if(ifWarning==="") {
$.alert("是否告警的选择不能为空");
}else{
toggleMenu('slidePushMenus');//隐藏筛选项
//时间标签
......@@ -136,13 +142,16 @@
//是否过滤
$('#ifFilterTag').text("是否过滤").attr('data-original-title', getIfFilterTitle()).tooltip();
//是否告警
$('#ifWarningTag').text("是否告警").attr('data-original-title', getIfWarningTitle()).tooltip();
if(period==""){
$.alert("时间选择不能为空");
}
$.ajax({
type : 'GET',
contentType : 'application/json',
url: "${ctx}/AnalysisSupport/QualityRuleOperation/operationChangeTable?period="+period+"&province="+province+"&dataSource="+dataSource+"&chnnal="+chnnal+"&bussines="+bussines+"&ifFilter="+ifFilter,
url: "${ctx}/AnalysisSupport/QualityRuleOperation/operationChangeTable?period="+period+"&province="+province+"&dataSource="+dataSource+"&chnnal="+chnnal+"&bussines="+bussines+"&ifFilter="+ifFilter+"&ifWarning="+ifWarning,
dataType : 'text',
async: false,
beforeSend: function(data) {
......@@ -163,6 +172,7 @@
ProvinceReset();
statsDataSourceReset();//三级联动重置
RelFilterRest();
RelWarningRest();
}
</script>
......
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<title>全网监控智能分析平台</title>
</head>
<body>
<div id="sticky-wrap"></div>
<div>
<div class="container">
<ol class="breadcrumb">
<li><a href="${ctx}/index">首页</a></li>
<li>数据质量核查</li>
<li class="active">质量规则报告</li>
</ol>
</div>
</div>
<div id="main-container main-tab-container">
<div id="content" class="container">
<div class="tab-bar-bt">
<ul class="nav nav-tabs">
<li><a href="${ctx}/AnalysisSupport/QualityRuleResult">数据质量规则维护</a></li>
<li><a href="${ctx}/AnalysisSupport/QualityRuleOperation">数据质量运营</a></li>
<li class="active"><a href="#home" data-toggle="tab">数据质量报告</a></li>
<li><a href="${ctx}/AnalysisSupport/FilterRuleResult">过滤规则维护</a></li>
</ul>
</div>
<div class="section">
<div class="tab-content">
<div class="tab-pane fade in active" id="home">
<div class="row me-row">
<div id="slidePushMenus2" class="cbp-spmenu-push">
<div class="slideMenu" id="cbp-spmenu-s2" style="">
<div class="form">
<tags:PeriodTag />
<tags:Public_ProvinceTag />
<tags:GJFX_datasource_channle_business/>
<tags:QualityReportType />
<button id="submit" class="btn btn-primary" onclick="reportResultSubmit()">提交</button>
<button id="disable" class="btn btn-warning" onclick="reportResultReset()">重置</button>
</div>
</div>
<div class="main col-xs-12">
<div id="mainm2" class="mainm" ></div>
<div class="content clearfix">
<div class="block clearfix">
<button id="showLeftPush2" class="menu-trigger btn btn-default" onclick="toggleMenu('slidePushMenus2')">
<span class="glyphicon glyphicon-list"></span>
</button>
<div class="slide-menu-tags">
<span id="PeriodTag" class="label label-info" data-placement="bottom" >最近一个月</span>
<span id="ProvinceTag" class="label label-info" data-placement="bottom"></span>
<span id="DataSourceTag" class="label label-info" data-placement="bottom" ></span>
<span id="ChannelTag3" class="label label-info" data-placement="bottom"></span>
<span id="BusinessTag" class="label label-info" data-placement="bottom" ></span>
<span id="ReportTypeTag" class="label label-info" data-placement="bottom" ></span>
</div>
<div class="bt-list-import">
</div>
</div>
<div class="row">
<div class="col-xs-12">
<div class="table-header">
数据质量规则报告查询结果
<shiro:hasAnyRoles name="admin,dataAnalysis,businessAnalysis">
<div id="time_div" style="top: -6px;float: right;height: 0px;position: relative;">
</div>
</shiro:hasAnyRoles>
</div>
<table id="ruleReportTable" class="table table-hover table-striped">
</table>
<input type="hidden" id="qualityRuleReport" name="qualityRuleReport" value='${qualityRuleReportList}' />
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<form action="#" method="get" id="listForm"></form>
</div>
</div>
</div>
</div>
<script type="text/javascript" src="${ctx}/static/js/ruleReportDetailTable.js"></script>
<script type="text/javascript">
initDate();
ruleReportDetailTable();
function reportResultSubmit(){
var period=getPeriodStr()
var dataSource=getStatsDataSourceCheckedValuesString();
var chnnal=getStatsChannelCheckedValuesString();
var bussines=getStatsBusinessCheckedValuesString();
var province=getProvinceCheckedValuesString();
var reportType=getReportType();
if(dataSource==""){
$.alert("数据来源的选择不能为空");
}else if(chnnal===""){
$.alert("渠道的选择不能为空");
}else if(bussines===""){
$.alert("业务的选择不能为空");
}else if(province===""){
$.alert("省份的选择不能为空");
}else if(reportType===""){
$.alert("报告类型的选择不能为空");
}else{
toggleMenu('slidePushMenus');//隐藏筛选项
//时间标签
$('#PeriodTag').text("时间范围").attr('data-original-title',getPeriodStr()).tooltip();
//数据来源标签
$('#DataSourceTag').text("数据来源").append($("<span class='badge'></span>").text(getStatsDataSourceCheckedValues().length)).attr('data-original-title',getStatsDataSourceCheckedTitles()).tooltip();
//渠道标签
$('#ChannelTag').text("渠道").append($("<span class='badge'></span>").text(getStatsChannelCheckedValues().length)).attr('data-original-title',getStatsChannelCheckedTitles()).tooltip();
//业务标签
$('#BusinessTag').text("业务").append($("<span class='badge'></span>").text(getStatsBusinessCheckedValues().length)).attr('data-original-title',getStatsBusinessCheckedTitlesString()).tooltip();
//省份标签
$('#ProvinceTag').text("省份").append($("<span class='badge'></span>").text(getProvinceCheckedValues().length)).attr('data-original-title',getProvinceCheckedTitles()).tooltip();
//报告类型
$('#ReportTypeTag').text("报告类型").attr('data-original-title', getReportTypeTitle()).tooltip();
if(period==""){
$.alert("时间选择不能为空");
}
$.ajax({
type : 'GET',
contentType : 'application/json',
url: "${ctx}/AnalysisSupport/QualityRuleReport/reportChangeTable?period="+period+"&province="+province+"&dataSource="+dataSource+"&chnnal="+chnnal+"&bussines="+bussines+"&reportType="+reportType,
dataType : 'text',
async: false,
beforeSend: function(data) {
},
success: function(data) {
$("#qualityRuleReport").val(data);
ruleReportDetailTable();
ruleId="";
toggleMenu('slidePushMenus2');//隐藏筛选项
updateTag(true);
}
});
}
}
function reportResultReset(){
initDate();
ProvinceReset();
statsDataSourceReset();//三级联动重置
RelReportTypeRest();
}
</script>
</body>
</html>
\ No newline at end of file
......@@ -27,6 +27,7 @@
<ul class="nav nav-tabs">
<li class="active"><a href="#home" data-toggle="tab">数据质量规则维护</a></li>
<li><a href="${ctx}/AnalysisSupport/QualityRuleOperation">数据质量运营</a></li>
<li><a href="${ctx}/AnalysisSupport/QualityRuleReport">数据质量报告</a></li>
<li><a href="${ctx}/AnalysisSupport/FilterRuleResult">过滤规则维护</a></li>
</ul>
</div>
......
......@@ -555,6 +555,9 @@ function selectRule(qualityRuleId){
data.kpiMonitorTime = data.kpiMonitorTime + "天";
}
}
if(data.businessTime != null){
data.businessTime = df.format(new Date(data.businessTime));
}
ruleTbody.append($("<tr></tr>")
.append("<td>" + data.provinceName + "</td>")
.append("<td>" + data.dataSourceName + "</td>")
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment