Commit cf8516c9 by chentian

比对结果功能开发

parent 4fdf5c8a
......@@ -151,6 +151,7 @@
<artifactId>quartz</artifactId>
<version>2.2.1</version>
</dependency>
</dependencies>
<build>
<finalName>SolrDataComparison</finalName>
......
package com.cc.solr.conf;
import com.cc.solr.util.MyJobFactory;
import org.quartz.Scheduler;
import org.quartz.ee.servlet.QuartzInitializerListener;
import org.springframework.beans.factory.config.PropertiesFactoryBean;
......@@ -46,4 +47,17 @@ public class SchedulerConfig {
return schedulerFactoryBean().getScheduler();
}
//SolrDataJob quatz无法注入redisUtil,。 一:新建MyJobFactory类 二:配置以下步骤解决 begin
@Bean
public MyJobFactory jobFactory(){
return new MyJobFactory();
}
@Bean
public SchedulerFactoryBean schedulerFactoryBean(MyJobFactory jobFactory){
SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean();
schedulerFactoryBean.setJobFactory(jobFactory);
return schedulerFactoryBean;
}
//SolrDataJob quatz无法注入redisUtil,配置以下步骤解决。end
}
......@@ -24,5 +24,7 @@ public class WebMvcConfig extends WebMvcConfigurerAdapter {
registry.addViewController("/comparisonResultList").setViewName("comparisonResultList");
registry.addViewController("/sourceecharts").setViewName("sourceecharts");
registry.addViewController("/comparisonecharts").setViewName("comparisonecharts");
registry.addViewController("/coreResultList").setViewName("coreResultList");
}
}
......@@ -42,7 +42,7 @@ public class ComparisonDataController {
throws SolrServerException, IOException {
//不用默认SolrClient取url,用HttpSolrClient来访问solr,默认的在application.yml里面,只能配置一个地址,这里的地址写在配置文件里,可以写多个。
Properties properties = propertiesUtil.propertiesUtil("solr.properties");
String comparisonsolrdata= properties.getProperty("comparisonsolrdata");
String comparisonsolrdata = properties.getProperty("comparisonsolrdata");
HttpSolrClient client = new HttpSolrClient(comparisonsolrdata);
SolrQuery params = new SolrQuery();
......@@ -66,7 +66,7 @@ public class ComparisonDataController {
params.setStart((conditionInfo.getPage() - 1) * 10);
} else {
params.setStart((conditionInfo.getPage() - 1) * 10 + 1);
params.setStart((conditionInfo.getPage() - 1) * 10 );
}
params.setRows(conditionInfo.getLimit());//每页显示10条
......
package com.cc.solr.controller;
import com.cc.solr.entity.ConditionInfo;
import com.cc.solr.entity.CompareTask;
import com.cc.solr.entity.RedisDataInfo;
import com.cc.solr.service.CompareTaskService;
import com.cc.solr.util.RedisUtil;
import com.cc.solr.util.ResultMap;
import com.cc.solr.util.XzxtRestResult;
import com.cc.solr.util.propertiesUtil;
import io.swagger.annotations.*;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
......@@ -15,6 +15,7 @@ import org.apache.solr.common.SolrDocumentList;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import java.io.IOException;
import java.util.Properties;
......@@ -24,106 +25,108 @@ import java.util.Properties;
public class ComparisonResultController {
@Autowired
CompareTaskService taskService;
/**
* 7、查 ++:关键字、高亮、分页 ✔
*
* @return
* @throws SolrServerException
* @throws IOException
*/
@PostMapping("/selectByConditionInfo")
//方法描述
@ApiOperation(value = "插入接口-分页查询", notes = "分页查询")
//参数描述
@ApiImplicitParams({
@ApiImplicitParam(name = "ConditionInfo", value = "查询条件实体类", required = true),
})
//返回值描述
@ApiResponses(value = {
@ApiResponse(code = 200, message = "OK"),
@ApiResponse(code = 405, message = "查询失败")
})
public ResultMap selectByConditionInfo(ConditionInfo conditionInfo)
throws SolrServerException, IOException {
//不用默认SolrClient取url,用HttpSolrClient来访问solr,默认的在application.yml里面,只能配置一个地址,这里的地址写在配置文件里,可以写多个。
Properties properties = propertiesUtil.propertiesUtil("solr.properties");
String comparisonsolrdata= properties.getProperty("comparisonsolrdata");
HttpSolrClient client = new HttpSolrClient(comparisonsolrdata);
SolrQuery params = new SolrQuery();
// 查询条件
if (conditionInfo.getQ() == null || "".equals(conditionInfo.getQ())) {
params.set("q", "*:*");//查询字符串,必须的
} else {
params.set("q", conditionInfo.getQ());//暂时写死,查询字符串,必须的
}
// fq – (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,
if (conditionInfo.getFq() != null && !"".equals(conditionInfo.getFq())) {
params.set("fq", conditionInfo.getFq());
}
/*// 排序
if(conditionInfo.getSort()!=null && !"".equals(conditionInfo.getSort())){
params.addSort(conditionInfo.getSort(), SolrQuery.ORDER.desc);
}*/
// 分页
if (conditionInfo.getPage() == 1) {//page是页数,首页起始行数用(页数-1*10)(0,10),第二页起始行数用(页数-1*10)+1:(11,20)
params.setStart((conditionInfo.getPage() - 1) * 10);
} else {
params.setStart((conditionInfo.getPage() - 1) * 10 + 1);
}
params.setRows(conditionInfo.getLimit());//每页显示10条
// solr数据库是 itaem
@Autowired
private RedisUtil redisUtil;
if (conditionInfo.getCore() == null || "".equals(conditionInfo.getCore())) {
//保存
String core = properties.getProperty("core");
String[] cores = core.split(",", -1);
core = cores[0];
conditionInfo.setCore(core);
}
QueryResponse queryResponse = client.query(conditionInfo.getCore(), params);
//QueryResponse queryResponse = client.query(params);
SolrDocumentList results = queryResponse.getResults();
// 数量,分页用
long total = results.getNumFound();// JS 使用 size=MXA 和 data.length 即可知道长度了(但不合理),itaem实例里的数据总数
@PostMapping("/saveCompareTask")
@ResponseBody
public XzxtRestResult saveCompareTask(CompareTask task) {
return taskService.saveTask(task);
}
//获取list
//查询列表与查询总数放到resultMap,用于页面展示
@PostMapping("/compareTaskList")
@ResponseBody
public ResultMap taskList(Model model, CompareTask task) {
ResultMap resultMap = new ResultMap();
resultMap.setCount(new Long(total).intValue());
resultMap.setData(results);
try {
resultMap = taskService.taskAll(task);
} catch (IOException e) {
e.printStackTrace();
}
return resultMap;
}
//保存
@PostMapping("/saveCompareTask")
/**
* @return
*/
@RequestMapping(value = "/toCoreResultList")
@ResponseBody
public XzxtRestResult saveCompareTask(CompareTask task){
return taskService.saveTask(task);
public ModelAndView toCoreResultList(RedisDataInfo info) {
ModelAndView modelAndView = new ModelAndView("coreResultList");
modelAndView.addObject("redisDataInfo", info);
return modelAndView;
}
//获取list
@PostMapping("/compareTaskList")
//从redis里读取出id,把它作为条件去solr里查询
@PostMapping("/getCoreResultList")
@ResponseBody
public ResultMap taskList(Model model, CompareTask task){
ResultMap resultMap=new ResultMap();
public ResultMap getCoreResultList(RedisDataInfo info) {
//根据key,hashkey从redis里取出id begin
String ids = "";
try {
resultMap =taskService.taskAll(task);
} catch (IOException e) {
ids = redisUtil.hmGet(info.getJobClassName() + "-" + info.getJobGroupName() + "-" + info.getDataSource(), info.getCore()).toString();
} catch (Exception e) {
e.printStackTrace();
} finally {
System.out.println(ids);
//根据key,hashkey从redis里取出id end
Properties properties = propertiesUtil.propertiesUtil("solr.properties");
String solrdata = properties.getProperty(info.getDataSource());
HttpSolrClient client = new HttpSolrClient(solrdata);
SolrQuery params = new SolrQuery();
// 查询条件
ResultMap resultMap = new ResultMap();
if (ids != null && !"".equals(ids)) {
//ID:140000000000201807170000000015 or ID:140000000000201807240000000001
String[] idAttr = ids.split(",");
String id = "";
for (int i = 0; i < idAttr.length; i++) {
if (id == "") {
id = "ID:" + idAttr[i];
} else {
id = id + " or ID:" + idAttr[i];
}
}
System.out.println(id);
params.set("q", id);//把id拼成类似于select 的in的条件来查询
// 分页
if (info.getPage() == 1) {//page是页数,首页起始行数用(页数-1*10)(0,10),第二页起始行数用(页数-1*10)+1:(11,20)
params.setStart((info.getPage() - 1) * 10);
} else {
params.setStart((info.getPage() - 1) * 10);
}
params.setRows(info.getLimit());//每页显示10条
QueryResponse queryResponse = null;
try {
queryResponse = client.query(info.getCore(), params);
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//QueryResponse queryResponse = client.query(params);
SolrDocumentList results = queryResponse.getResults();
// 数量,分页用
long total = results.getNumFound();// JS 使用 size=MXA 和 data.length 即可知道长度了(但不合理),itaem实例里的数据总数
//查询列表与查询总数放到resultMap,用于页面展示
resultMap.setCount(new Long(total).intValue());
resultMap.setData(results);
}
return resultMap;
}
return resultMap;
}
}
......@@ -53,6 +53,12 @@ public class JobController
JobDetail jobDetail = JobBuilder.newJob(getClass(jobClassName).getClass()).withIdentity(jobClassName, jobGroupName)
.build();
jobDetail.getJobDataMap().put("Test", "This is test value");
jobDetail.getJobDataMap().put("core", task.getCore());
jobDetail.getJobDataMap().put("comparisonCore", task.getComparisonCore());
jobDetail.getJobDataMap().put("fq", task.getFq());
jobDetail.getJobDataMap().put("q", task.getQ());
jobDetail.getJobDataMap().put("jobClassName", jobClassName);
jobDetail.getJobDataMap().put("jobGroupName", jobGroupName);
//表达式调度构建器(即任务执行的时间)
CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);
......
......@@ -75,7 +75,7 @@ public class SourceDataController {
params.setStart((conditionInfo.getPage() - 1) * 10);
} else {
params.setStart((conditionInfo.getPage() - 1) * 10 + 1);
params.setStart((conditionInfo.getPage() - 1) * 10);
}
params.setRows(conditionInfo.getLimit());//每页显示10条
......
package com.cc.solr.entity;
public class RedisDataInfo extends PageBean{
private String jobClassName;
private String jobGroupName;
private String core;
private String dataSource;
public String getJobClassName() {
return jobClassName;
}
public void setJobClassName(String jobClassName) {
this.jobClassName = jobClassName;
}
public String getJobGroupName() {
return jobGroupName;
}
public void setJobGroupName(String jobGroupName) {
this.jobGroupName = jobGroupName;
}
public String getCore() {
return core;
}
public void setCore(String core) {
this.core = core;
}
public String getDataSource() {
return dataSource;
}
public void setDataSource(String dataSource) {
this.dataSource = dataSource;
}
}
package com.cc.solr.job;
import com.cc.solr.util.RedisUtil;
import com.cc.solr.util.propertiesUtil;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.quartz.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.AsyncResult;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
import java.util.concurrent.Future;
public class SolrDataJob implements BaseJob {
private static Logger _log = LoggerFactory.getLogger(SolrDataJob.class);
@Resource
private RedisUtil redisUtil ;
public SolrDataJob() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException {
_log.error("Hello Job执行时间: " + new Date());
JobKey key = context.getJobDetail().getKey();//获取JobDetail的标识信息
System.out.println("JobDetail‘s name and group are "+key.getName()+":"+key.getGroup());
TriggerKey triggerKey = context.getTrigger().getKey();//获取Trigger的标识信息
System.out.println("Trigger‘s name and group are "+triggerKey.getName()+":"+triggerKey.getGroup());
JobDataMap map = context.getJobDetail().getJobDataMap();
String core = map.getString("core");
String comparisonCore = map.getString("comparisonCore");
String q = map.getString("q");
String fq = map.getString("fq");
String jobClassName = map.getString("jobClassName");String jobGroupName = map.getString("jobGroupName");
//根据数据源,查询条件,过滤条件查询solr begin
//数据源必填
solrDataSetRedis("sourcesolrdata", core,q, fq, jobClassName, jobGroupName);
//根据数据源,比对源,查询条件,过滤条件查询solr end
//根据比对数据源,查询条件,过滤条件查询solr begin
//比对数据源不必填
if(!"".equals(comparisonCore)&&comparisonCore!=null){
solrDataSetRedis("comparisonsolrdata", comparisonCore,q, fq, jobClassName, jobGroupName);
}
//根据比对数据源,比对源,查询条件,过滤条件查询solr end
}
public void solrDataSetRedis(String dataSource,String core,String q,String fq,String jobClassName,String jobGroupName){
RedisUtil redis=new RedisUtil();
Properties properties = propertiesUtil.propertiesUtil("solr.properties");
String sourcesolrdata= properties.getProperty(dataSource);
HttpSolrClient client = new HttpSolrClient(sourcesolrdata);
SolrQuery params = new SolrQuery();
// 查询条件
if (q == null || "".equals(q)) {
params.set("q", "*:*");//查询字符串,必须的
} else {
params.set("q", q);//暂时写死,查询字符串,必须的
}
// fq – (filter query)过虑查询,作用:在q查询符合结果中同时是fq查询符合的,
if (fq != null && !"".equals(fq)) {
params.set("fq", fq);
}
QueryResponse queryResponse = null;
try {
queryResponse = client.query(core, params);
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
SolrDocumentList results = queryResponse.getResults();
String id="";
for (SolrDocument solrDocument : results) {
id += (String) solrDocument.getFieldValue("ID")+",";//这边是获取solr上有存储的字段,也就是我们在schema.xml文件里配置的field标签的stored属性,=true就会存储在solr服务器上,因为我的schema.xml只配置id的stored=true,所以这边我先通过获取id,在通过id去数据库获取具体的新闻信息
}
// 数量,分页用
long total = results.getNumFound();// JS 使用 size=MXA 和 data.length 即可知道长度了(但不合理),itaem实例里的数据总数
try {
int totalCount = new Long(total).intValue();
int pageNum = totalCount / 10;
if (totalCount % 10 != 0) {
pageNum++;
}
for (int i = 2; i <= pageNum; i++) {
if (i == 1) {//page是页数,首页起始行数用(页数-1*10)(0,10),第二页起始行数用(页数-1*10)+1:(11,20)
params.setStart((i - 1) * 10);
} else {
params.setStart((i - 1) * 10);
}
params.setRows(10);//每页显示10条
queryResponse = client.query(core, params);
SolrDocumentList resultss = queryResponse.getResults();
for (SolrDocument solrDocument : resultss) {
id += (String) solrDocument.getFieldValue("ID")+",";//这边是获取solr上有存储的字段,也就是我们在schema.xml文件里配置的field标签的stored属性,=true就会存储在solr服务器上,因为我的schema.xml只配置id的stored=true,所以这边我先通过获取id,在通过id去数据库获取具体的新闻信息
}
}
if(!"".equals(id)&&id!=null){
id=id.substring(0,id.length() - 1);
redisUtil.hmSet(jobClassName+"-"+jobGroupName+"-"+dataSource,core,id);
}
System.out.println(id);
}catch(Exception e){
e.printStackTrace();
}
}
@Async("taskExecutor")
public Future<String> doReturn(SolrDocumentList results){
String id="";
try {
// 这个方法需要调用500毫秒
Thread.sleep(500);
for (SolrDocument solrDocument : results) {
id += (String) solrDocument.getFieldValue("ID")+",";//这边是获取solr上有存储的字段,也就是我们在schema.xml文件里配置的field标签的stored属性,=true就会存储在solr服务器上,因为我的schema.xml只配置id的stored=true,所以这边我先通过获取id,在通过id去数据库获取具体的新闻信息
}
} catch (InterruptedException e) {
e.printStackTrace();
}
// 消息汇总
if(!"".equals(id)){
id=id.substring(0,id.length() - 1);
}
return new AsyncResult<>(String.format("{%s}", id ));
//调用
// Future<String> idFuture= doReturn(results);
//String ids="";
// ids=idFuture.get();
}
}
......@@ -15,5 +15,6 @@ public interface CompareTaskService {
ResultMap taskAll(CompareTask task) throws IOException;
XzxtRestResult saveTask(CompareTask task);
XzxtRestResult updateTaskById(String id,String status);
}
......@@ -5,6 +5,7 @@ import com.cc.solr.entity.CompareTask;
import com.cc.solr.mapper.CompareTaskMapper;
import com.cc.solr.service.CompareTaskService;
import com.cc.solr.util.KeyUtil;
import com.cc.solr.util.RedisUtil;
import com.cc.solr.util.ResultMap;
import com.cc.solr.util.XzxtRestResult;
import org.slf4j.Logger;
......@@ -24,7 +25,6 @@ public class CompareTaskServiceImpl implements CompareTaskService {
@Resource
private CompareTaskMapper taskMapper;
@Override
public ResultMap taskAll(CompareTask task) throws IOException {
List<CompareTask> tasklist=taskMapper.selectPageList(task);
......@@ -38,7 +38,6 @@ public class CompareTaskServiceImpl implements CompareTaskService {
return resultMap ;
}
@Override
public XzxtRestResult saveTask(CompareTask task) {
String id=KeyUtil.getUniqueKey("RW");
......
package com.cc.solr.util;
import org.quartz.spi.TriggerFiredBundle;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.scheduling.quartz.SpringBeanJobFactory;
public class MyJobFactory extends SpringBeanJobFactory {
@Autowired
private AutowireCapableBeanFactory capableBeanFactory;
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
//调用父类的方法
Object jobInstance = super.createJobInstance(bundle);
//进行注入
capableBeanFactory.autowireBean(jobInstance);
return jobInstance;
}
}
\ No newline at end of file
......@@ -104,8 +104,8 @@ public class RedisUtil {
* @param hashKey
* @param value
*/
public void hmSet(String key, Object hashKey, Object value){
HashOperations<String, Object, Object> hash = redisTemplate.opsForHash();
public void hmSet(String key, String hashKey, String value){
HashOperations<String, String, String> hash = redisTemplate.opsForHash();
hash.put(key,hashKey,value);
}
......@@ -184,4 +184,12 @@ public class RedisUtil {
ZSetOperations<String, Object> zset = redisTemplate.opsForZSet();
return zset.rangeByScore(key, scoure, scoure1);
}
public static void main(String[] args){
RedisUtil t =new RedisUtil();
// t.hmSet("chent","test","123");
t.set("4","4");
System.out.println("-------------");
}
}
......@@ -10,6 +10,8 @@ comparisonsolrdatahome=tbstasj,tbstasj,tbstasj,tbstasj
#-------mobam---------------------------------------------------------------------------------------
#TB_ST_ASJ
core=tbstasj,TB_ST_RY
core=tbstasj,TB_ST_RY,TB_XW_BA,TB_ST_RY_SYFWBZH
tbstasj=\u6848\u4E8B\u4EF6\u7F16\u53F7:ID,\u6848\u4EF6\u540D\u79F0:AJMC,\u6848\u4EF6\u7C7B\u522B:AJLBDM
TB_ST_RY=\u4EBA\u5458\u7F16\u53F7:ID,\u59D3\u540D:XM,\u6027\u522B:XBDM
TB_XW_BA=\u4EBA\u5458\u7F16\u53F7:BAR_ASJXGRYBH,\u62A5\u6848\u5730\u70B9\u884C\u653F\u533A\u5212:BADD_XZQHDM
TB_ST_RY_SYFWBZH=\u4EBA\u5458\u7F16\u53F7:ASJXGRYBH,\u670D\u52A1\u6807\u8BC6\u53F7:SYFWBZH_FWBZH_FWBZH
......@@ -67,30 +67,6 @@
<!-- 右侧主体开始 -->
<div class="page-content">
<div class="content">
<!-- <label class="layui-form-label l15" style="padding-right: 0;">数据源:</label>
<div class="layui-input-block" style="float:left;margin-left:0;">
<select name="core" lay-verify="" id="core" style="height:30px;width:200px;" class="h30">
</select>
</div>
<div class="layui-form-mid" style="padding:0 !important;">
<label class="layui-form-label l15" style="width:100px;">查询字符串:</label>
<div class="layui-input-inline">
<input type="text" name="q" id="q" lay-verify="required"
class="layui-input h30" placeholder="ID:A5111021400002017120001" >
</div>
</div>
<div class="layui-form-mid" style="padding:0 !important;">
<label class="layui-form-label l15">过滤查询:</label>
<div class="layui-input-inline">
<input type="text" name="fq" id="fq" lay-verify="required"
class="layui-input h30" placeholder="ID:A5111021400002017120001" >
</div>
</div>
<div class="layui-btn-container">
<button class="layui-btn layui-btn-normal queryList" style="margin-left: 20px;">查询</button>
<button class="layui-btn layui-btn-normal clear" style="margin-left: 20px;">清空</button>
</div>-->
<!--查询条件-->
<div >
<table style="width:100%;border-collapse: collapse;text-align:left;" class="tablec">
......@@ -104,7 +80,7 @@
</select></td>
<td style="width:10%;" class="ar"> 比对数据源:</td>
<td > <select name="comparisonCore" lay-verify="" id="comparisonCore" style="height:30px;width:200px;" class="h30 bgn">
<option value=""></option>
</select></td>
</tr>
<tr style="line-height:40px">
......@@ -116,6 +92,7 @@
<select name="jobClassName" lay-verify="" id="jobClassName" style="height:30px;width:200px;" class="h30 bgn">
<option value="com.cc.solr.job.NewJob">NewJob</option>
<option value="com.cc.solr.job.HelloJob">HelloJob</option>
<option value="com.cc.solr.job.SolrDataJob">SolrDataJob</option>
</select>
</td>
......@@ -124,7 +101,7 @@
<option value="0 */1 * * * ?">每隔1分钟执行一次</option>
<option value="0 0 23 * * ?">每天23点执行一次</option>
<option value="0 0 1 1 * ?">每月1号凌晨1点执行一次</option>
<option value="0 0 1 ? * L">每周星期天凌晨1点行一次</option>
<option value="0 0 1 ? * L">每周星期天凌晨1点行一次</option>
</select></td>
</tr>
<tr style="line-height:30px">
......@@ -177,6 +154,12 @@
{{# } }}
</script>
<script type="text/html" id="barDemo2">
<a class="layui-btn layui-btn-xs" lay-event="coreListShow">数据源结果</a>
{{# if(d.comparisonCore != null) { }}
<a class="layui-btn layui-btn-xs" lay-event="comparisonCoreListShow">比对源结果</a>
{{# } }}
</script>
<script>
layui.use('table', function () {
var table = layui.table;
......@@ -196,27 +179,24 @@
});
}
});
//end
//初始化加载table
tableIns = table.render({
elem: '#test'
, url: 'comparisonresult/compareTaskList'
, method: 'POST'
, toolbar: '#toolbarDemo'
, title: '比对结果表'
, page: true
, limit: 10
,cols: [
[
{field:'id', title:'任务编号',align:'center', width:'20%', edit: 'text'}
,{field:'taskName', title:'任务名称',align:'center', width:'15%', edit: 'text'}
,{field:'job_name', title:'任务类名',align:'center', width:'15%', edit: 'text'}
,{field:'job_group', title:'任务分组',align:'center', width:'15%', edit: 'text'}
,{field:'status', title:'状态',align:'center', toolbar: '#statusDemo', width:'10%', edit: 'text'}
,{field: 'right', title:'操作',align:'center', toolbar: '#barDemo1', width:'25%'}
,{field:'job_name', title:'任务类名',align:'center', width:'20%', edit: 'text'}
,{field:'job_group', title:'任务分组',align:'center', width:'10%', edit: 'text'}
,{field:'status', title:'状态',align:'center', toolbar: '#statusDemo', width:'5%', edit: 'text'}
,{field: 'right', title:'操作',align:'center', toolbar: '#barDemo1', width:'15%'}
,{field: 'right', title:'结果',align:'center', toolbar: '#barDemo2', width:'15%'}
]
]
});
......@@ -232,6 +212,16 @@
var jobClassName = cheNull($('#jobClassName').val());
var jobGroupName = cheNull($('#jobGroupName').val());
var cronExpression = cheNull($('#cronExpression').val());
if(taskName==null || taskName==""){
layer.msg("任务名称不能为空");
return;
}
if(jobGroupName==null || jobGroupName==""){
layer.msg("任务分组不能为空");
return;
}
//保存任务
$.ajax({
url: 'job/addjob',
......@@ -254,12 +244,7 @@
}
});
//保存任务
});
//监听行工具事件
table.on('tool(test)', function(obj){
var data = obj.data;
......@@ -380,6 +365,34 @@
}
});
}else if(obj.event === 'coreListShow'){
var url="comparisonresult/toCoreResultList?jobClassName="+data.job_name+"&jobGroupName="+data.job_group+"&core="+data.core+"&dataSource=sourcesolrdata";
layer.open({
type: 2,
title: '数据源结果列表',
maxmin: false,
moveOut: true,
closeBtn: 2,
shadeClose: true, //点击遮罩关闭层
area : ['1100px' , '600px'],
tipsMore: true,
content: url
});
}else if(obj.event === 'comparisonCoreListShow'){
var url="comparisonresult/toCoreResultList?jobClassName="+data.job_name+"&jobGroupName="+data.job_group+"&core="+data.comparisonCore+"&dataSource=comparisonsolrdata";
layer.open({
type: 2,
title: '数据源结果列表',
maxmin: false,
moveOut: true,
closeBtn: 2,
shadeClose: true, //点击遮罩关闭层
area : ['1100px' , '600px'],
tipsMore: true,
content: url
});
}
});
......
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta 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="/css/xadmin.css">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link rel="stylesheet" href="/css/font.css">
<link rel="stylesheet" href="/fenye/fenye.css" media="all">
<link rel="stylesheet" href="/fenye/font-awesome.min.css" media="all">
<script type="text/javascript" src="/jquery/jquery.min.js"></script>
<link rel="stylesheet" href="/layui/css/layui.css" media="all">
<script type="text/javascript" src="/js/xadmin.js"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
<div class="wrapper">
<!-- 右侧主体开始 -->
<div class="page-content">
<div class="content">
<table class="layui-hide" id="test" lay-filter="test" width="98%"></table>
</div>
</div>
<!-- 右侧主体结束 -->
</div>
<script src="/layui/layui.js" charset="utf-8"></script>
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
<script>
layui.use('table', function(){
var redisDataInfo='[[${redisDataInfo}]]';//使用Thymeleaf取值
var table = layui.table;
//初始化页面查询列
$.ajax({
url: '/sourcedata/getCols',
async: false, // 注意此处需要同步,因为先绑定表头,才能绑定数据
type: "POST",
data:{selCore:'[[${redisDataInfo.core}]]'},
dataType: "json",
success: function (jsonObj) {
var columnsAll = new Array(); //如果返回的数据不为空,则添加遍历该数据集合
if (jsonObj.length > 0) {
for (var i = 0; i < jsonObj.length; i++) {
//debugger;//把返回的数据封装到一个对象中
var col = {}
col['title'] = jsonObj[i].title;
col['field'] = jsonObj[i].field;
col['align'] = 'center';
col['sort'] = true;
columnsAll.push(col);
}
//初始化加载table
tableIns = table.render({
elem: '#test'
, url: '/comparisonresult/getCoreResultList'
, method: 'POST'
,title: '结果列表'
, page: true
, limit: 10
, cols: [columnsAll]
,where: {//查询条件
jobClassName: '[[${redisDataInfo.jobClassName}]]',
jobGroupName: '[[${redisDataInfo.jobGroupName}]]',
core: '[[${redisDataInfo.core}]]',
dataSource: '[[${redisDataInfo.dataSource}]]'
}
});
}
}
});
});
</script>
</body>
</html>
\ No newline at end of file
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