TaskController.java-20160611
package main.java.com.zte.controller.system;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.session.Session;
import org.apache.shiro.subject.Subject;
import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import main.java.com.zte.controller.base.BaseController;
import main.java.com.zte.entity.Page;
import main.java.com.zte.entity.Task;
import main.java.com.zte.entity.charts.Echarts;
import main.java.com.zte.entity.charts.Series;
import main.java.com.zte.service.TaskService;
import main.java.com.zte.util.AppUtil;
import main.java.com.zte.util.Const;
import main.java.com.zte.util.DateUtil;
import main.java.com.zte.util.ObjectExcelView;
import main.java.com.zte.util.PageData;
import main.java.com.zte.util.Tools;
/**
* 任务Controller
*
* @author 10183302
*
*/
@Controller
@RequestMapping(value = "/task")
public class TaskController extends BaseController {
@Resource(name = "taskService")
private TaskService taskService;
/**
* 显示任务列表
*
* @param model
* @return
*/
@RequestMapping(value = "/list")
public ModelAndView list(Page page) throws Exception {
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
try {
pd = this.getPageData();
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String userName = (String) session
.getAttribute(Const.SESSION_USERNAME); // 获取session中的用户名
pd.put(Const.SESSION_USERNAME, userName);
String keyw = pd.getString("keyword");
if (Tools.notEmpty(keyw)) {
keyw = keyw.trim();
pd.put("keyw", keyw);
}
page.setPd(pd);
List<PageData> taskList = taskService.listTaskPage(page);
mv.addObject("taskList", taskList);
mv.setViewName("task/task_list");
} catch (Exception e) {
logger.error(e.toString(), e);
}
return mv;
}
/**
* 请求新增任务页面
*
* @param model
* @return
*/
@RequestMapping(value = "/toAdd")
public ModelAndView toAdd() throws Exception {
ModelAndView mv = this.getModelAndView();
try {
// pd = taskService.getTaskTypeList();
List<String> taskTypeList = new ArrayList<String>();
taskTypeList.add("在线任务");
taskTypeList.add("离线任务");
mv.addObject("taskTypeList", taskTypeList);
mv.setViewName("task/task_add");
} catch (Exception e) {
logger.error(e.toString(), e);
}
return mv;
}
/**
* 保存任务信息
*
* @param menu
* @param model
* @return
*/
@RequestMapping(value = "/add")
public ModelAndView add(Task task) throws Exception {
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
pd = this.getPageData();
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String userName = (String) session.getAttribute(Const.SESSION_USERNAME); // 获取session中的用户名
String taskName = pd.getString("taskName").trim();
String taskTime = DateUtil.getTime().toString();
try {
pd.put("taskTime", taskTime);
pd.put("taskStatus", "待启动"); // 状态
// 目录格式:根目录/userName/taskName-时间
pd.put("task_dir", Const.TASK_ROOT_DIR + userName + "/" + taskName
+ "-" + taskTime);
taskService.add(pd);
mv.addObject("msg", "success");
} catch (Exception e) {
logger.error(e.toString(), e);
mv.addObject("msg", "failed");
}
mv.setViewName("save_result");
return mv;
}
/**
* 请求编辑菜单页面
*
* @param
* @return
*/
@RequestMapping(value = "/toEdit")
public ModelAndView toEdit(String taskId) throws Exception {
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
try {
pd = this.getPageData();
pd.put("taskId", taskId);
List<PageData> taskList = taskService.getTaskByTaskId(pd);
mv.addObject("taskList", taskList);
mv.addObject("pd", pd);
mv.setViewName("task/task_edit");
} catch (Exception e) {
logger.error(e.toString(), e);
}
return mv;
}
/**
* 保存编辑
*
* @param
* @return
*/
@RequestMapping(value = "/edit")
public ModelAndView edit() throws Exception {
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
try {
pd = this.getPageData();
pd = taskService.edit(pd);
mv.addObject("msg", "success");
} catch (Exception e) {
logger.error(e.toString(), e);
mv.addObject("msg", "failed");
}
mv.setViewName("save_result");
return mv;
}
/**
* 获取任务分析结果
*
* @param
* @return
*/
@RequestMapping(value = "/reslut")
public ModelAndView reslut(Page page, String taskId) throws Exception {
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
try {
pd = this.getPageData();
pd.put("taskId", taskId);
page.setPd(pd);
List<PageData> resultList = taskService.listResult(page);
mv.addObject("resultList", resultList);
mv.addObject("pd", pd);
if (!resultList.isEmpty()) {
mv.addObject("msg", "success");
}
mv.setViewName("pm/result_chart");
} catch (Exception e) {
logger.error(e.toString(), e);
}
System.out.println("ID_01:" + taskId);
return mv;
}
/**
* 获取任务分析结果
*
* @param
* @return
*/
@RequestMapping(value = "/result_charts")
@ResponseBody
public Object result_charts(Page page) throws Exception {
Map<String, String> map = new HashMap<String, String>();
PageData pd = new PageData();
pd = this.getPageData();
String taskId = pd.getString("taskId");
System.out.println("ID_02:" + taskId);
try {
pd = this.getPageData();
pd.put("taskId", taskId);
page.setPd(pd);
List<PageData> resultList = taskService.listResult(page);
JSONArray jsonArray = JSONArray.fromObject(resultList);
if (!resultList.isEmpty()) {
map.put("msg", "success");
map.put("resultList", jsonArray.toString());
}
} catch (Exception e) {
logger.error(e.toString(), e);
}
System.out.println("taskId=" + taskId);
System.out.println("result:"
+ AppUtil.returnObject(new PageData(), map));
JSONObject jsonObject = JSONObject.fromObject(AppUtil.returnObject(
new PageData(), map));
System.out.println("jsonObject:" + jsonObject);
return AppUtil.returnObject(new PageData(), map);
}
/**
* 获取任务分析结果
*
* @param
* @return
*/
@RequestMapping(value = "/test_charts")
@ResponseBody
public String test_charts(Page page) throws Exception {
JSONArray members = new JSONArray();
for (int i = 1; i < 5; i++) {
// 构建JSON 对象
JSONObject member = new JSONObject();
// 构建series所需参数
member.put("name", "张飞" + i); // 对应series.name
JSONArray list = new JSONArray();// 对应series.data
for (int k = 1; k < 5; k++) {
list.add(k * 100);
}
member.put("year", (2012 + i));// 对应Y轴显示
member.put("list", list);
member.put("color", "#FF0022");// 如需要可以设置柱状图颜色
members.add(member);
}
return members.toString();
}
/**
* 获取单个节点上报信息
*
* @param
* @return
*/
@RequestMapping(value = "/pm_detail")
public ModelAndView pmDetail(Page page, String step) throws Exception {
ModelAndView mv = this.getModelAndView();
PageData pd = new PageData();
try {
pd = this.getPageData();
String stepName = null;
switch (step) {
case "1":
stepName = Const.RECEIVE_REPORT_MSG_TIME;
break;
case "2":
stepName = Const.PROCESS_GET_FILE_TIME;
break;
case "3":
stepName = Const.PROCESS_PARSE_TIME;
break;
case "5":
stepName = Const.PROCESS_STORE_TIME;
break;
case "7":
stepName = Const.PROCESS_FINISH_TIME;
break;
}
pd.put("stepName", stepName);
page.setPd(pd);
List<PageData> poResultList = taskService.listPOResult(page);
mv.addObject("poResultList", poResultList);
mv.addObject("pd", pd);
if (!poResultList.isEmpty()) {
mv.addObject("msg", "success");
}
mv.setViewName("pm/po_charts");
} catch (Exception e) {
logger.error(e.toString(), e);
}
return mv;
}
/**
* 删除任务
*
* @param task_id
* @param out
*/
@RequestMapping(value = "/delete")
public void delete(@RequestParam String task_id, PrintWriter out)
throws Exception {
try {
taskService.deleteByTaskId(task_id);
out.write("success");
out.flush();
out.close();
} catch (Exception e) {
logger.error(e.toString(), e);
}
}
/*
* 导出到excel
*
* @return
*/
@RequestMapping(value = "/excel")
public ModelAndView exportExcel() {
logBefore(logger, "导出Pictures到excel");
ModelAndView mv = new ModelAndView();
try {
Map<String, Object> dataMap = new HashMap<String, Object>();
List<String> titles = new ArrayList<String>();
titles.add("编号"); // 1
titles.add("任务名称"); // 2
titles.add("创建人"); // 3
titles.add("创建时间"); // 4
titles.add("日志路径"); // 5
titles.add("类型"); // 6
titles.add("状态"); // 7
dataMap.put("titles", titles);
Subject currentUser = SecurityUtils.getSubject();
Session session = currentUser.getSession();
String userName = (String) session
.getAttribute(Const.SESSION_USERNAME); // 获取session中的用户名
List<Task> taskList = taskService.listTaskByUname(userName);
List<PageData> varList = new ArrayList<PageData>();
for (int i = 0; i < taskList.size(); i++) {
PageData vpd = new PageData();
vpd.put("var1", taskList.get(i).getNumber()); // 1
vpd.put("var2", taskList.get(i).getName()); // 2
vpd.put("var3", taskList.get(i).getOwner()); // 3
vpd.put("var4", taskList.get(i).getTime()); // 4
vpd.put("var5", taskList.get(i).getDir()); // 5
vpd.put("var6", taskList.get(i).getType()); // 6
vpd.put("var7", taskList.get(i).getStatus()); // 7
varList.add(vpd);
}
dataMap.put("varList", varList);
ObjectExcelView erv = new ObjectExcelView();
mv = new ModelAndView(erv, dataMap);
} catch (Exception e) {
logger.error(e.toString(), e);
}
return mv;
}
}
TaskController.java-20160611的更多相关文章
- TaskController.java 20160712
package main.java.com.zte.controller.system; import java.io.PrintWriter; import java.util.ArrayList; ...
- Spring 3整合Quartz 2实现手动设置定时任务:新增,修改,删除,暂停和恢复(附带源码)
摘要:在项目的管理功能中,对定时任务的管理有时会很常见.但一般定时任务配置都在xml中完成,包括cronExpression表达式,十分的方便.但是如果我的任务信息是保存在数据库的,想要动态的初始化, ...
- Collectors.toMap不允许Null Value导致NPE
背景 线上某任务出现报警,报错日志如下: java.lang.NullPointerException: null at java.util.HashMap.merge(HashMap.java:12 ...
- 【记录】【springboot】动态定时任务ScheduledFuture,可添加、修改、删除
这里只演示添加和删除任务的,因为修改就是删除任务再添加而已. 方便演示,任务就是每3秒打印 1.没有任务 后台 2.添加一个任务 3.再添加一个任务 4.删除一个任务 5.再添加一个任务 6.代码 运 ...
- SpringBoot+JPA+SpringSeurity+JWT
目的:使用这个框架主要就是为了解决高并发环境下登陆操作对数据库及服务器的压力,同时能保证安全性: 加载时,SpringSecurity定义拦截器和添加两个Fitler: 登陆时,登陆成功,通过传入的信 ...
- SpringBoot整合quartz实现动态启动,停止定时任务功能
注意:这个方法当程序重启之后会失效,所以必须将定时任务持久化到数据库,然后程序启动的时候重新把数据库的定时任务加载到quartz中 springboot程序启动初始化代码参考:https://www. ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- TaskController
package main.java.com.zte.controller.system; import java.io.PrintWriter; import java.util.ArrayList; ...
- 故障重现(内存篇2),JAVA内存不足导致频繁回收和swap引起的性能问题
背景起因: 记起以前的另一次也是关于内存的调优分享下 有个系统平时运行非常稳定运行(没经历过大并发考验),然而在一次活动后,人数并发一上来后,系统开始卡. 我按经验开始调优,在每个关键步骤的加入如 ...
随机推荐
- Android基础整理之四大组件Activity
最近准备系统的重新整理复习一下Android的各方面的知识,本着知识分享的原则,我就把梳理过程中一些东西给记录下来,权当一个学习笔记吧. 下面步入正题..... 什么是Activity Activit ...
- Gentoo 网络接口配置文件说明
裁剪的Gentoo系统,仅供公司内部使用! [作为备份档案] 网络接口配置:/etc/conf.d/net #设置静态IPconfig_eth0="192.168.1.x/24" ...
- 利用glassfish4任意文件读取拿权限的一些思路
只要讨论的是linux环境测试发现只针对GlassFish4,且基本上是已root运行的http://www.wooyun.org/bugs/wooyun-2010-0144595 zoomeye d ...
- Zabbix全方位告警接入-电话/微信/短信都支持
百度告警平台地址: http://gaojing.baidu.com 联系我们: 邮箱:gaojing@baidu.com 电话:13924600771 QQ群:183806029 对于使用zabbi ...
- 基于ArcEngine的空间数据通用建库软件介绍
最近花了点时间把之前的空间数据入库功能进行了完善,在这里做一个简单的介绍,也希望大家给提点意见和建议,我的目标是做一个好用.易用.通用.稳定的入库程序. 1.软件特点: 基于模板(方案)的数据更新 ...
- Codeforces Round #164 (Div. 2) E. Playlist 贪心+概率dp
题目链接: http://codeforces.com/problemset/problem/268/E E. Playlist time limit per test 1 secondmemory ...
- HDU 5294 Tricks Device 最短路+最大流
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5294 题意: 给你个无向图: 1.求最少删除几条边就能破坏节点1到节点n的最短路径, 2.最多能删除 ...
- 02.Redis主从集群的Sentinel配置
1.集群环境 1.Linux服务器列表 使用4台CentOS Linux服务器搭建环境,其IP地址如下: 192.168.110.100 192.168.110.101 192.168.110.102 ...
- 【BZOJ】【3166】【HEOI2013】Alo
可持久化Trie+set Orz zyf…… 搞区间中次大值不好搞,那么我们就反过来,找一个数,然后看它在哪些区间里是次大值…… (然而事实上我们并不用真的把这个区间具体是什么找见,只要知道它可以跟哪 ...
- jQuery - AJAX (keep for myself)
1. 简介:AJAX工作原理图 AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术.(如google地图) 目的:在不重载整个网页的情况下,AJAX 通 ...