Commit 7959a444 authored by liuna's avatar liuna

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

--按需求修改
parent f0e48c5d
<component name="ArtifactManager">
<artifact type="exploded-war" build-on-make="true" name="CmszMonitorAnalysis">
<artifact type="exploded-war" name="CmszMonitorAnalysis">
<output-path>$PROJECT_DIR$/out/artifacts/CmszMonitorAnalysis</output-path>
<root id="root">
<element id="directory" name="WEB-INF">
......@@ -151,6 +151,7 @@
<element id="library" level="module" name="XmlSchema-1.1.jar" module-name="CmszMonitorAnalysis" />
<element id="library" level="module" name="xmlsec-1.3.0-1.0.0.jar" module-name="CmszMonitorAnalysis" />
<element id="file-copy" path="$PROJECT_DIR$/lib/freemarker.jar" />
<element id="library" level="project" name="lib" />
<element id="library" level="application" name="servlet-api" />
</element>
</element>
......
This diff is collapsed.
......@@ -13,6 +13,8 @@ import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.hp.cmsz.entity.*;
import com.hp.cmsz.repository.*;
import com.hp.cmsz.service.analysissupport.AccuracyRuleService;
import com.hp.cmsz.service.analysissupport.QualityRuleService;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -20,22 +22,6 @@ import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.google.gson.Gson;
import com.hp.cmsz.entity.Channel;
import com.hp.cmsz.entity.DataSource;
import com.hp.cmsz.entity.DataType;
import com.hp.cmsz.entity.QualityRule;
import com.hp.cmsz.entity.Kpi;
import com.hp.cmsz.entity.Province;
import com.hp.cmsz.entity.AccuracyRule;
import com.hp.cmsz.repository.AccuracyRuleDao;
import com.hp.cmsz.repository.BusinessDao;
import com.hp.cmsz.repository.ChannelDao;
import com.hp.cmsz.repository.ChannelDataSourceMapDao;
import com.hp.cmsz.repository.DataSourceDao;
import com.hp.cmsz.repository.DataTypeDao;
import com.hp.cmsz.repository.KpiDao;
import com.hp.cmsz.repository.ProvinceDao;
import com.hp.cmsz.repository.QualityRuleDao;
import com.hp.cmsz.service.BusinessService;
import com.hp.cmsz.service.CmszOperationLogService;
import com.hp.cmsz.web.PageURLController;
......@@ -52,7 +38,7 @@ import com.hp.cmsz.web.PageURLController;
public class QualityRuleMaintainController {
@Autowired
private ProvinceDao provinceDao;
private ProvinceAllDao provinceAllDao;
@Autowired
private ChannelDao channelDao;
......@@ -94,7 +80,7 @@ public class QualityRuleMaintainController {
public String ruleMaintainHome(Map model){
//查询出所有的省份
List<Province> provinceList=(List<Province>)provinceDao.findProvince();
List<ProvinceAll> provinceList=(List<ProvinceAll>)provinceAllDao.findProvince();
//查询出所有的渠道信息
List<Channel> channelList=(List<Channel>)channelDao.findChannel();
//查询出所有的指标
......
......@@ -2,6 +2,7 @@ package com.hp.cmsz.web.analysissupport;
import com.google.gson.Gson;
import com.hp.cmsz.commons.utils.ExportExcelUtil;
import com.hp.cmsz.entity.*;
import com.hp.cmsz.repository.*;
import com.hp.cmsz.service.BusinessService;
......@@ -9,6 +10,7 @@ import com.hp.cmsz.service.ChannelService;
import com.hp.cmsz.service.CmszOperationLogService;
import com.hp.cmsz.service.analysissupport.QualityRuleInfoService;
import com.hp.cmsz.web.PageURLController;
import org.apache.poi.hssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
......@@ -22,9 +24,7 @@ import org.springframework.web.util.HtmlUtils;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -68,6 +68,7 @@ public class QualityRuleOperationController {
@Autowired
private CmszOperationLogService cmszOperationLogService;
//返回到质量规则运营页面
@RequestMapping(value = "/home")
public ModelAndView crawlDataManageHome(String selectTab) {
......@@ -109,7 +110,6 @@ public class QualityRuleOperationController {
@RequestParam(value = "bussines") String bussines,//业务
@RequestParam(value = "province") String province,//省份
@RequestParam(value = "ifFilter") String ifFilter,//是否过滤
@RequestParam(value = "ifWarning") String ifWarning,//是否告警
@RequestParam(value = "sortType", defaultValue = "parameterId") String sortType,
@RequestParam(value = "page", defaultValue = "1") int pageNumber,
@RequestParam(value = "pageSize", defaultValue = "30") int pageSize,
......@@ -124,7 +124,8 @@ public class QualityRuleOperationController {
String[] bussinesS =bussines.split(",");
String[] provinceS=province.split(",");
String[] ifFilterS=ifFilter.split(",");
String[] ifWarningS=ifWarning.split(",");
// String[] ifWarningS=ifWarning.split(",");
Timestamp startTime= Timestamp.valueOf(dates[0]);
Timestamp endTime=Timestamp.valueOf(dates[1]);
List<Long> dataSourceList=changeStrToList(dataSourceS);
......@@ -132,10 +133,10 @@ public class QualityRuleOperationController {
List<Long> bussinesList=changeStrToList(bussinesS);
List<Long> provinceList=changeStrToList(provinceS);
List<Long> ifFilterList=changeStrToList(ifFilterS);
List<String> ifWarningList=changeStrToListstr(ifWarningS);
String ifWarning="正常";
sortType = HtmlUtils.htmlEscape(sortType);
// Page<QualityRuleInfo> qualityRuleInfoPage = qualityRuleInfoService.getQualityRuleInfoPage(qualityRuleInfo,pageNumber,pageSize,sortType);
Page<QualityRuleInfo> qualityRuleInfoPage = qualityRuleInfoService.getQualityRuleInfoBy(qualityRuleInfo, pageNumber, pageSize, sortType,dataSourceList,chnnalList,bussinesList,provinceList,ifFilterList,ifWarningList,startTime,endTime);
Page<QualityRuleInfo> qualityRuleInfoPage = qualityRuleInfoService.getQualityRuleInfoBy(qualityRuleInfo, pageNumber, pageSize, sortType,dataSourceList,chnnalList,bussinesList,provinceList,ifFilterList,ifWarning,startTime,endTime);
modelAndView.addObject("qualityRuleInfoPage", qualityRuleInfoPage);
modelAndView.addObject("pageSize", pageSize);
modelAndView.addObject("sortType", sortType);
......@@ -185,4 +186,134 @@ public class QualityRuleOperationController {
}
}
//导出Excel
@RequestMapping(value = "/uploadOperation",method = RequestMethod.POST)
public void uploadModel(HttpServletRequest request,HttpServletResponse response){
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date =new Date();
String fileName = "质量规则运营列表"+"_"+formatDate.format(date);
try {
fileName = new String(fileName.getBytes("gb2312"), "ISO-8859-1");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
// 创建工作薄
HSSFWorkbook wb = new HSSFWorkbook();
// 创建sheet
HSSFSheet sheet = wb.createSheet();
ExportExcelUtil exportExcel = new ExportExcelUtil(wb, sheet);
// 创建列标头LIST
List<String> fialList = new ArrayList<String>();
fialList.add("质量规则ID");
fialList.add("省份");
fialList.add("数据来源");
fialList.add("渠道");
fialList.add("业务");
fialList.add("指标名称");
fialList.add("指标编码");
fialList.add("告警类型");
fialList.add("告警原因");
fialList.add("指标业务时间");
fialList.add("指标延迟时间");
// 该报表的列数
int number = fialList.size();
// 给工作表列定义列宽
for (int i = 0; i < number; i++) {
sheet.setColumnWidth(i, 5500);
}
// 创建单元格样式
HSSFCellStyle cellStyle = wb.createCellStyle();
// 指定单元格居中对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 指定单元格垂直居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 指定当单元格内容显示不下时自动换行
cellStyle.setWrapText(true);
// 设置单元格字体
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setFontHeight((short) 220);
cellStyle.setFont(font);
// 创建报表头部
exportExcel.createNormalHead("运营明细列表", number - 1);
// 创建第二行
HSSFRow row2 = sheet.createRow(1);
// 设置行高
row2.setHeight((short) 500);
// 单元格
HSSFCell row2Cell = null;
// 创建不同的LIST的列标题
for (int i = 0; i < number; i++) {
row2Cell = row2.createCell(i);
row2Cell.setCellStyle(cellStyle);
row2Cell.setCellValue(new HSSFRichTextString(fialList.get(i).toString()));
}
List<Long> ruleOperationIds = new ArrayList<Long>();
List<QualityRuleInfo> list = null;
int rowNum=list.size();
// 设置列表数据
for (int i = 2; i < (rowNum+2); i++) {
HSSFRow row = sheet.createRow(i);
// 设置行高
row.setHeight((short) 350);
//报表数据
QualityRuleInfo qualityRuleInfo = list.get(i-2);
row.createCell(0).setCellValue(qualityRuleInfo.getQualityRuleId());
ruleOperationIds.add(qualityRuleInfo.getQualityRuleId());
row.createCell(1).setCellValue(qualityRuleInfo.getProvinceName());
row.createCell(2).setCellValue(qualityRuleInfo.getDataSourceName());
row.createCell(3).setCellValue(qualityRuleInfo.getChannelName());
row.createCell(4).setCellValue(qualityRuleInfo.getBusinessName());
row.createCell(5).setCellValue(qualityRuleInfo.getKpiName());
row.createCell(6).setCellValue(qualityRuleInfo.getKpiCode());
row.createCell(7).setCellValue(qualityRuleInfo.getWarningType());
row.createCell(8).setCellValue(qualityRuleInfo.getWarningReason());
row.createCell(9).setCellValue(formatDate.format(qualityRuleInfo.getBusinessTime()));
row.createCell(10).setCellValue(formatDate.format(qualityRuleInfo.getKpiMonitorRunTime()));
}
cmszOperationLogService.createLog("导出","质量规则运营","导出质量规则运营信息");
// 下载文件时要设置的头信息
response.setHeader("Content-Disposition", "attachment;fileName="
+ fileName + ".xls");
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
wb.write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
OutputStream ops = null;
try {
ops = response.getOutputStream();// 用于下载的输出流
ops.write(content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ops.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
package com.hp.cmsz.web.analysissupport;
import com.google.gson.Gson;
import com.hp.cmsz.commons.utils.ExportExcelUtil;
import com.hp.cmsz.entity.*;
import com.hp.cmsz.repository.DataSourceDao;
import com.hp.cmsz.repository.KpiDao;
......@@ -13,6 +14,7 @@ import com.hp.cmsz.service.analysissupport.QualityRuleInfoService;
import com.hp.cmsz.service.analysissupport.QualityRuleReportInfoService;
import com.hp.cmsz.service.analysissupport.QualityRuleReportService;
import com.hp.cmsz.web.PageURLController;
import org.apache.poi.hssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Controller;
......@@ -23,10 +25,9 @@ import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.util.HtmlUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
......@@ -70,6 +71,8 @@ public class QualityRuleReportController {
@Autowired
private CmszOperationLogService cmszOperationLogService;
List<QualityRuleReport> staticRuleReportList = new ArrayList<QualityRuleReport>();
@RequestMapping(value = "")
public String ruleResultHome(
@RequestParam(value = "rulePageNum", defaultValue="1") String rulePageNum,
......@@ -131,6 +134,7 @@ public class QualityRuleReportController {
List<Long> provinceList = changeStrToList(provinceS);
List<String> reportTypeList = changeStrToListstr(reportTypeS);
qualityRuleReportList = qualityRuleReportService.getQualityRuleReportBy(dataSourceList, chnnalList, bussinesList, provinceList,reportTypeList, startTime, endTime);
staticRuleReportList = qualityRuleReportList;
cmszOperationLogService.createLog("查询", "数据质量报告", "由筛选项得到数据质量报告");
Gson gson = new Gson();
response.setContentType("text/Xml;charset=gbk");
......@@ -191,4 +195,140 @@ public class QualityRuleReportController {
return modelAndView;
}
//导出Excel
@RequestMapping(value = "/uploadReport",method = RequestMethod.POST)
public void uploadModel(HttpServletRequest request, HttpServletResponse response){
SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date =new Date();
String fileName = "质量规则报告列表"+"_"+formatDate.format(date);
try {
fileName = new String(fileName.getBytes("gb2312"), "ISO-8859-1");
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
// 创建工作薄
HSSFWorkbook wb = new HSSFWorkbook();
// 创建sheet
HSSFSheet sheet = wb.createSheet();
ExportExcelUtil exportExcel = new ExportExcelUtil(wb, sheet);
// 创建列标头LIST
List<String> fialList = new ArrayList<String>();
fialList.add("报告类型");
fialList.add("省份");
fialList.add("数据来源");
fialList.add("渠道");
fialList.add("业务");
fialList.add("指标名称");
fialList.add("指标编码");
fialList.add("完整性数量");
fialList.add("完整性占比");
fialList.add("及时性数量");
fialList.add("及时性占比");
fialList.add("准确性数量");
fialList.add("准确性占比");
fialList.add("是否预测");
fialList.add("报告时间");
// 该报表的列数
int number = fialList.size();
// 给工作表列定义列宽
for (int i = 0; i < number; i++) {
sheet.setColumnWidth(i, 5500);
}
// 创建单元格样式
HSSFCellStyle cellStyle = wb.createCellStyle();
// 指定单元格居中对齐
cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
// 指定单元格垂直居中对齐
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 指定当单元格内容显示不下时自动换行
cellStyle.setWrapText(true);
// 设置单元格字体
HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setFontName("宋体");
font.setFontHeight((short) 220);
cellStyle.setFont(font);
// 创建报表头部
exportExcel.createNormalHead("运营明细列表", number - 1);
// 创建第二行
HSSFRow row2 = sheet.createRow(1);
// 设置行高
row2.setHeight((short) 500);
// 单元格
HSSFCell row2Cell = null;
// 创建不同的LIST的列标题
for (int i = 0; i < number; i++) {
row2Cell = row2.createCell(i);
row2Cell.setCellStyle(cellStyle);
row2Cell.setCellValue(new HSSFRichTextString(fialList.get(i).toString()));
}
List<QualityRuleReport> list = staticRuleReportList;
int rowNum=list.size();
// 设置列表数据
for (int i = 2; i < (rowNum+2); i++) {
HSSFRow row = sheet.createRow(i);
// 设置行高
row.setHeight((short) 350);
//报表数据
QualityRuleReport qualityRuleReport = list.get(i-2);
row.createCell(0).setCellValue(qualityRuleReport.getReportName());
row.createCell(1).setCellValue(qualityRuleReport.getProvinceName());
row.createCell(2).setCellValue(qualityRuleReport.getDataSourceName());
row.createCell(3).setCellValue(qualityRuleReport.getChannelName());
row.createCell(4).setCellValue(qualityRuleReport.getBusinessName());
row.createCell(5).setCellValue(qualityRuleReport.getKpiName());
row.createCell(6).setCellValue(qualityRuleReport.getKpiCode());
row.createCell(7).setCellValue(qualityRuleReport.getIntegralityNum());
row.createCell(8).setCellValue(qualityRuleReport.getIntegralityPro());
row.createCell(9).setCellValue(qualityRuleReport.getTimelyNum());
row.createCell(10).setCellValue(qualityRuleReport.getTimelyPro());
row.createCell(11).setCellValue(qualityRuleReport.getAccuracyNum());
row.createCell(12).setCellValue(qualityRuleReport.getAccuracyPro());
row.createCell(13).setCellValue(qualityRuleReport.getIfPredicted());
row.createCell(14).setCellValue(formatDate.format(qualityRuleReport.getReportSumEndTime()));
}
cmszOperationLogService.createLog("导出","质量规则报告","导出质量规则报告信息");
// 下载文件时要设置的头信息
response.setHeader("Content-Disposition", "attachment;fileName="
+ fileName + ".xls");
ByteArrayOutputStream os = new ByteArrayOutputStream();
try {
wb.write(os);
} catch (IOException e) {
e.printStackTrace();
}
byte[] content = os.toByteArray();
OutputStream ops = null;
try {
ops = response.getOutputStream();// 用于下载的输出流
ops.write(content);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
ops.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
<%@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="reportState" name="reportState">
<option value="0,1" title="全部"selected><a href="#">全部</a></option>
<option value="1" title="正常"><a href="#">正常</a></option>
<option value="0" title="异常"><a href="#">异常</a></option>
</select>
</div>
<script type="text/javascript">
function getReportState(){
return $("#reportState").val();
}
function getReportStateTitle(){
return $("#reportState").find("option:selected").attr("title");
}
function RelStateRest() {
$("#reportState").val("0,1");
}
</script>
\ No newline at end of file
......@@ -47,9 +47,11 @@
<table id="ruleMaintainTable" class="table-null">
<tr><td>省份(<font color="red">必填</font>):</td>
<td>
<div class="checkbox-inline"><label><input type="checkbox" id="allProvince" name="allProvince" checked>全选</label></div><br/>
<c:forEach var="province" items="${provinceList}">
<input type="checkbox" name="province" class="province" id="province" value="${province.provinceId}" checked>${province.provinceName}
<c:if test="${province.provinceId == '32'}">
<input type="checkbox" name="province" class="province" id="province" onclick="return false;" value="${province.provinceId}" checked>${province.provinceName}
</c:if>
</c:forEach>
</td>
</tr>
......@@ -101,7 +103,7 @@
</td>
</tr>
<tr><td>监控延迟时间(<font color="red">必填</font>):</td>
<td>
<td id="monitorTime">
<input type="text" name="frequencyValue" id="frequencyValue" style="display: inline;" />
<select name="frequencyType" id="frequencyType">
<option value="0">分钟</option>
......@@ -110,9 +112,9 @@
<option value="3"></option>
</select></td>
</tr>
<tr><td>指标采集时间<font color="red">必填</font>):</td>
<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})'/>
<input type='text' class='form-control' id='businessTime' name='businessTime' onfocus='WdatePicker({dateFmt:"yyyy-MM-dd",defaultDate:new Date()})'/>
</td>
</tr>
<tr><td>添加准确性规则:</td>
......@@ -306,6 +308,7 @@ $("#addParam").click(function(){
if(ifRepeatedCheckSeries =="无"){ifRepeatedCheckSeries ="";}
if(repeatedCheckMaxTime =="无"){repeatedCheckMaxTime ="";}
if(ifRepeatedCheckSummation =="无"){ifRepeatedCheckSummation ="";}
$.ajax({
type : "GET",
contentType : "application/json",
......@@ -375,6 +378,7 @@ $("#addParam").click(function(){
}
}
});
});
}
}
......@@ -485,15 +489,14 @@ 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 ]}})'/>");
$("#monitorTime");
}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 ]}})'/>");
$("#monitorTime");
}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 ]}})'/>");
$("#monitorTime");
}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 ]}})' />");
$("#monitorTime");
}
}
......
......@@ -68,7 +68,9 @@
<span id="ReportTypeTag" class="label label-info" data-placement="bottom" ></span>
</div>
<div class="bt-list-import">
<a href="#" id="uploadExcel" class=""> <span
class="glyphicon glyphicon-import"></span> <span
class="glyphicon-class">导出Excel</span> </a>
</div>
</div>
......@@ -167,6 +169,14 @@
RelReportTypeRest();
}
$("#uploadExcel").click(function(){
var listForm=$("#listForm");
listForm.attr("method","post");
listForm.attr("action","${ctx}/AnalysisSupport/QualityRuleReport/uploadReport");
listForm.submit();
listForm.attr("action","#");
});
</script>
</body>
</html>
\ No newline at end of file
......@@ -106,15 +106,7 @@ if(receiveRulePageNum!=1){
$("#createRule").click(function(){
$.dialog({
title: "提醒",
content:"确定新建质量规则?",
ok: function(){location.href="${ctx}/AnalysisSupport/QualityRuleMaintain";},
okValue:"确定",
cancel: function(){},
cancelValue:"取消",
lock:true
});
location.href="${ctx}/AnalysisSupport/QualityRuleMaintain";
});
function ruleResultSubmit(){
......@@ -171,28 +163,12 @@ $("#createRule").click(function(){
}
$("#updateRule").click(function(){
var pageNum = $("#goPageNo").val();
$.dialog({
title: "提醒",
content:"确定修改质量规则?",
ok: function(){location.href="${ctx}/AnalysisSupport/QualityRuleConfiguration?qualityRuleId="+qualityRuleId;},
okValue:"确定",
cancel: function(){},
cancelValue:"取消",
lock:true
});
location.href="${ctx}/AnalysisSupport/QualityRuleConfiguration?qualityRuleId="+qualityRuleId;
});
$("#deleteRule").click(function(){
var pageNum = $("#goPageNo").val();
$.dialog({
title: "提醒",
content:"确定删除质量规则?",
ok: function(){location.href="${ctx}/AnalysisSupport/RuleDelete?qualityRuleId="+qualityRuleId;},
okValue:"确定",
cancel: function(){},
cancelValue:"取消",
lock:true
});
location.href="${ctx}/AnalysisSupport/RuleDelete?qualityRuleId="+qualityRuleId;
});
</script>
......
......@@ -6,15 +6,15 @@
<table class="table table-hover table-striped">
<thead>
<tr>
<th width="6.4%">省份</th>
<th width="6.4%">数据来源</th>
<th width="6.4%">渠道</th>
<th width="6.4%">业务</th>
<th width="6.4%">指标名称</th>
<th width="6.4%">指标编码</th>
<%--<th width="6.4%">省份</th>--%>
<%--<th width="6.4%">数据来源</th>--%>
<%--<th width="6.4%">渠道</th>--%>
<%--<th width="6.4%">业务</th>--%>
<%--<th width="6.4%">指标名称</th>--%>
<%--<th width="6.4%">指标编码</th>--%>
<th width="6.4%">告警类型</th>
<th width="6.4%">告警原因</th>
<th width="6.4%">指标监控范围</th>
<th width="6.4%">监控延迟时间</th>
<th width="6.4%">指标采集时间</th>
</tr>
</thead>
......@@ -22,12 +22,12 @@
<c:forEach items="${qualityRuleOperationDetailPage.content}" var="qualityRuleOperationDetail">
<tr>
<td>${qualityRuleOperationDetail.provinceName} </td>
<td>${qualityRuleOperationDetail.dataSourceName}</td>
<td>${qualityRuleOperationDetail.channelName}</td>
<td>${qualityRuleOperationDetail.businessName}</td>
<td>${qualityRuleOperationDetail.kpiName}</td>
<td>${qualityRuleOperationDetail.kpiCode}</td>
<%--<td>${qualityRuleOperationDetail.provinceName} </td>--%>
<%--<td>${qualityRuleOperationDetail.dataSourceName}</td>--%>
<%--<td>${qualityRuleOperationDetail.channelName}</td>--%>
<%--<td>${qualityRuleOperationDetail.businessName}</td>--%>
<%--<td>${qualityRuleOperationDetail.kpiName}</td>--%>
<%--<td>${qualityRuleOperationDetail.kpiCode}</td>--%>
<td>${qualityRuleOperationDetail.warningType}</td>
<td>${qualityRuleOperationDetail.warningReason}</td>
<td><fmt:formatDate value="${qualityRuleOperationDetail.kpiMonitorRunTime}" pattern="yyyy-MM-dd hh:mm:ss" /> </td>
......
......@@ -40,7 +40,7 @@
<tags:ProvinceTag/>
<tags:GJFX_datasource_channle_business/>
<tags:QualityRule_IfFilter />
<tags:QualityRuleInfo_IfWarning />
</div>
<div class="slide-menu-option">
<button type="input" class="btn btn-primary" onclick="searchData();return false;">提交</button>
......@@ -67,8 +67,13 @@
<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">
<a href="#" id="uploadExcel" class=""> <span
class="glyphicon glyphicon-import"></span> <span
class="glyphicon-class">导出Excel</span> </a>
</div>
</div>
<!-- Top Navigation -->
......@@ -95,7 +100,7 @@
$('#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();
$('#ifFilterTag').text("是否过滤").attr('data-original-title', getIfFilterTitle()).tooltip();
$('#ifWarningTag').text("是否告警").attr('data-original-title', getIfWarningTitle()).tooltip();
queryResult(1);
}
......@@ -104,7 +109,7 @@
$.ajax({
type : 'post',
'url' : '${ctx}/AnalysisSupport/QualityRuleOperation/queryOperationFrame',
data : "page=" + page +"&period="+getPeriodStr()+"&province="+getProvinceCheckedValues()+"&dataSource="+getStatsDataSourceCheckedValuesString()+"&chnnal="+getStatsChannelCheckedValuesString()+"&bussines="+getStatsBusinessCheckedValuesString()+"&ifFilter="+getIfFilter()+"&ifWarning="+getIfWarning(),
data : "page=" + page +"&period="+getPeriodStr()+"&province="+getProvinceCheckedValues()+"&dataSource="+getStatsDataSourceCheckedValuesString()+"&chnnal="+getStatsChannelCheckedValuesString()+"&bussines="+getStatsBusinessCheckedValuesString()+"&ifFilter="+getIfFilter(),
success : function(data) {
$('#resultList').html(data);
disable();
......@@ -112,6 +117,14 @@
});
}
$("#uploadExcel").click(function(){
var listForm=$("#listForm");
listForm.attr("method","post");
listForm.attr("action","${ctx}/AnalysisSupport/QualityRuleOperation/uploadOperation");
listForm.submit();
listForm.attr("action","#");
});
</script>
</body>
</html>
......@@ -20,8 +20,8 @@
<th width="6.4%">指标CODE</th>
<th width="6.4%">告警类型</th>
<th width="6.4%">告警原因</th>
<th width="6.4%">指标业务时间</th>
<th width="6.4%">指标监控时间</th>
<th width="6.4%">数据时间</th>
<th width="6.4%">告警时间</th>
<%--<th width="6.4%">是否过滤</th>--%>
</tr>
</thead>
......@@ -38,8 +38,8 @@
<td>${qualityRuleInfo.kpiCode}</td>
<td>${qualityRuleInfo.warningType}</td>
<td>${qualityRuleInfo.warningReason}</td>
<td><fmt:formatDate value="${qualityRuleInfo.kpiMonitorRunTime}" pattern="yyyy-MM-dd hh:mm:ss" /></td>
<td><fmt:formatDate value="${qualityRuleInfo.businessTime}" pattern="yyyy-MM-dd hh:mm:ss" /></td>
<td><fmt:formatDate value="${qualityRuleInfo.kpiMonitorRunTime}" pattern="yyyy-MM-dd hh:mm" /></td>
<td><fmt:formatDate value="${qualityRuleInfo.businessTime}" pattern="yyyy-MM-dd hh:mm" /></td>
<%--<td>--%>
<%--<c:if test="${qualityRuleInfo.ifFilter == '1'}">无过滤规则</c:if>--%>
<%--<c:if test="${qualityRuleInfo.ifFilter == '0'}">过滤</c:if>--%>
......@@ -174,7 +174,7 @@
$.dialog({
title: "数据质量规则",
content: "<div id='ruleList'>" +
"<div class='col-xs-12'><div class='panel panel-default'><div class='panel-heading'></div><div class='panel-body'> <table class='table table-hover table-striped'> <thead> <tr> <th width=''>省份</th> <th width=''>数据来源</th> <th width=''>渠道</th> <th width=''>业务</th> <th width=''>指标名称</th> <th width=''>指标编码</th> <th width=''>数据类型</th> <th width=''>数据采集频率</th> <th width=''>指标监控范围</th> <th width=''>指标采集时间</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> </div>" +
"<div class='col-xs-12'><div class='panel panel-default'><div class='panel-heading'></div><div class='panel-body'> <table class='table table-hover table-striped'> <thead> <tr> <th width=''>省份</th> <th width=''>数据来源</th> <th width=''>渠道</th> <th width=''>业务</th> <th width=''>指标名称</th> <th width=''>指标编码</th> <th width=''>数据类型</th> <th width=''>数据采集频率</th> <th width=''>监控延迟时间</th> <th width=''>指标采集时间</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> </div>" +
"</div>",
lock: true,
width: 800,
......@@ -208,7 +208,6 @@
if (data.businessTime != null) {
data.businessTime = df.format(new Date(data.businessTime));
}
console.log(data.businessTime)
ruleTbody.append($("<tr></tr>")
.append("<td>" + data.provinceName + "</td>")
.append("<td>" + data.dataSourceName + "</td>")
......
......@@ -134,7 +134,7 @@ function ruleOperationDetailTable(){
header[6] = ["指标名称","kpiName","7%","15"];
header[7] = ["指标CODE","kpiCode","7%","15"];
header[8] = ["告警类型","warningType","7%","15"];
header[9] = ["指标监控时间","kpiMonitorRunTime","7%","15"];
header[9] = ["监控延迟时间","kpiMonitorRunTime","7%","15"];
header[10] = ["指标业务时间","businessTime","7%","15"];
header[11] = ["是否过滤","ifFilter","7%",""];
......@@ -525,7 +525,7 @@ function selectRule(qualityRuleId){
$.dialog({
title:"数据质量规则",
content:"<div id='ruleList'>"+
"<div class='col-xs-12'><div class='panel panel-default'><div class='panel-heading'>规则参数列表</div><div class='panel-body'> <table class='table table-hover table-striped'> <thead> <tr> <th width=''>省份</th> <th width=''>数据来源</th> <th width=''>渠道</th> <th width=''>业务</th> <th width=''>指标名称</th> <th width=''>指标编码</th> <th width=''>数据类型</th> <th width=''>数据采集频率</th> <th width=''>指标监控范围</th> <th width=''>指标采集时间</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> </div>"+
"<div class='col-xs-12'><div class='panel panel-default'><div class='panel-heading'>规则参数列表</div><div class='panel-body'> <table class='table table-hover table-striped'> <thead> <tr> <th width=''>省份</th> <th width=''>数据来源</th> <th width=''>渠道</th> <th width=''>业务</th> <th width=''>指标名称</th> <th width=''>指标编码</th> <th width=''>数据类型</th> <th width=''>数据采集频率</th> <th width=''>监控延迟时间</th> <th width=''>指标采集时间</th> </tr> </thead> <tbody> </tbody> </table> </div> </div> </div>"+
"</div>",
lock:true,
width:800,
......
......@@ -331,7 +331,7 @@ table_pagging.prototype = {
}
if(k==1){
tdContext = "<a href='javascript:;' onclick='selectOperation(\""+this.getData(this.objectlist[i],"provinceId")+"\",\""+this.getData(this.objectlist[i],"kpiId")+"\",\""+this.getData(this.objectlist[i],"reportSumStartTime")+"\",\""+this.getData(this.objectlist[i],"reportSumEndTime")+"\")'>"+this.getData(this.objectlist[i],this.header[k][1])+"</a>";
tdContext = "<a href='javascript:;' onclick=\"selectOperation("+i+")\" alt='\"+i+\"'>"+this.getData(this.objectlist[i],this.header[k][1])+"</a>";
}
}
......@@ -555,14 +555,89 @@ function queryResult(page) {
}
//查看数据质量运营
function selectOperation(provinceId,kpiId,reportSumStartTime,reportSumEndTime){
function selectOperation(i){
console.log(jsonData[i])
if(jsonData[i].integralityNum==undefined){
jsonData[i].integralityNum="";
}
if(jsonData[i].integralityPro==undefined){
jsonData[i].integralityPro="";
}else{
jsonData[i].integralityPro=(jsonData[i].integralityPro*100).toFixed(0)+"%";
}
if(jsonData[i].timelyNum==undefined){
jsonData[i].timelyNum="";
}
if(jsonData[i].timelyPro==undefined){
jsonData[i].timelyPro="";
}else {
jsonData[i].timelyPro=(jsonData[i].timelyPro*100).toFixed(0)+"%";
}
if(jsonData[i].accuracyNum==undefined){
jsonData[i].accuracyNum="";
}
if(jsonData[i].accuracyPro==undefined){
jsonData[i].accuracyPro="";
}else {
jsonData[i].accuracyPro=(jsonData[i].accuracyPro*100).toFixed(0)+"%";
}
$.dialog({
title:"数据质量运营明细",
content:"<div style='width: 800px; height: 500px;overflow-y: scroll' id='dataForm'></div>",
content:"<div class='dialog-p' style='max-height: 560px; overflow-y: scroll; overflow-x: auto;'>" +
" <div class='col-xs-12'>" +
" <div class='panel panel-default'>" +
" <div class='panel-heading'>质量规则报告预览</div>" +
" <div class='panel-body'>"+
" <table class='table table-vertical'>"+
" <tr><td>"+
" <table class='table table-vertical'>" +
" <tr>" +
" <td width='10%'>省份</td>" +
" <td>"+jsonData[i].provinceName+"</td>" +
" <td width='10%'>数据来源</td>" +
" <td>"+jsonData[i].dataSourceName+"</td>" +
" <td width='10%'>业务</td>" +
" <td>"+jsonData[i].businessName+"</td>" +
" </tr>" +
" <tr>" +
" <td width='10%'>渠道</td>" +
" <td>"+jsonData[i].channelName+"</td>" +
" <td>指标名称</td>" +
" <td>"+jsonData[i].kpiName+"</td>" +
" <td>指标编码</td>" +
" <td>"+jsonData[i].kpiCode+"</td>" +
" </tr>" +
" <tr>" +
" <td>完整性数量</td>" +
" <td>"+jsonData[i].integralityNum+"</td>" +
" <td>完整性占比</td>" +
" <td>"+jsonData[i].integralityPro+"</td>" +
" <td>及时性数量</td>" +
" <td>"+jsonData[i].timelyNum+"</td>" +
" </tr>" +
" <tr>" +
" <td>及时性占比</td>" +
" <td>"+jsonData[i].timelyPro+"</td>" +
" <td>准确性数量</td>" +
" <td>"+jsonData[i].accuracyNum+"</td>" +
" <td>准确性占比</td>" +
" <td>"+jsonData[i].accuracyPro+"</td>" +
" </tr>" +
" <tr>" +
" <td colspan='8' align='center'>质量异常明细展示</td>" +
" </tr>" +
" <tr>" +
" <td colspan='8'>" +
" <div class='panel-body'>" +
" <div style='width: 800px; height: 500px;overflow-y: scroll' id='dataForm' ></div>"+
" </div>" +
" </td>" +
" </tr>" +
"</table>",
lock:true,
width:800,
initialize:function() {
queryOperation(1,provinceId,kpiId,reportSumStartTime,reportSumEndTime);
queryOperation(1,jsonData[i].provinceId,jsonData[i].kpiId,jsonData[i].reportSumStartTime,jsonData[i].reportSumEndTime);
}
});
}
\ No newline at end of file
......@@ -127,18 +127,18 @@ function ruleResultDetailTable(){
var header = new Array();
header[0] = ["","<input type='radio' name='update'id='update' onclick='javascript:radioChoose(this);'/>","1%",""];
header[1] = ["质量规则ID","qualityRuleId","7%","15"];
header[2] = ["省份","provinceName","7%","15"];
header[3] = ["数据来源","dataSourceName","7%","15"];
header[4] = ["渠道","channelName","7%","15"];
header[5] = ["业务","businessName","7%","15"];
header[6] = ["指标名称","kpiName","7%","15"];
header[7] = ["指标编码","kpiCode","7%","15"];
header[8] = ["数据类型","kpiTypeName","7%","15"];
header[9] = ["数据采集频率","calCycle","7%","15"];
header[10] = ["监控延迟时间","kpiMonitorTime","7%","15"];
header[11] = ["指标采集时间","businessTime","7%","15"];
header[12] = ["准确性规则","accuracyRuleId","7%","15"];
// header[1] = ["质量规则ID","qualityRuleId","7%","15"];
// header[2] = ["省份","provinceName","7%","15"];
// header[3] = ["数据来源","dataSourceName","7%","15"];
header[1] = ["渠道","channelName","7%","15"];
header[2] = ["业务","businessName","7%","15"];
header[3] = ["指标名称","kpiName","7%","15"];
header[4] = ["指标编码","kpiCode","7%","15"];
header[5] = ["数据类型","kpiTypeName","7%","15"];
header[6] = ["数据采集频率","calCycle","7%","15"];
header[7] = ["监控延迟时间","kpiMonitorTime","7%","15"];
// header[11] = ["指标采集时间","businessTime","7%","15"];
header[8] = ["准确性规则","accuracyRuleId","7%","15"];
window.pagging = new table_pagging({limit:12,tableId:'ruleResultTable',header:header});
pagging.pagging(jsonData);
......@@ -301,7 +301,7 @@ table_pagging.prototype = {
tdContext = "&nbsp;";
}
if(k==10){
if(k==7){
if(tdContext.indexOf("/")!=-1){
var a = new Array();
a = tdContext.split("/");
......@@ -319,13 +319,13 @@ table_pagging.prototype = {
}
}
if(k==11){
if(tdContext!="&nbsp;"){
tdContext = df.format(new Date(tdContext));
}
}
if(k==12){
// if(k==11){
//
// if(tdContext!="&nbsp;"){
// tdContext = df.format(new Date(tdContext));
// }
// }
if(k==8){
tdContext = "<a href='javascript:;' onclick='selectRule(\""+this.getData(this.objectlist[i],"qualityRuleId")+"\")'>查看规则</a>";
}
......@@ -535,6 +535,7 @@ table_pagging.prototype = {
//alert(clickObj);
//alert(clickObj.nextSibling.innerHTML);
$("#updateRule").attr("disabled", false);
$("#deleteRule").attr("disabled", false);
qualityRuleId=parseInt(obj[parseInt(clickObj.nextSibling.innerHTML)].qualityRuleId);
}
......
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