/** * */ package com.mvc.controller; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; 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.ResponseBody; import com.alibaba.fastjson.JSON; import com.base.constants.SessionKeyConstants; import com.base.enums.IsDelete; import com.base.enums.TaskStatus; import com.base.enums.TaskType; import com.mvc.entity.Contract; import com.mvc.entity.SubTask; import com.mvc.entity.Task; import com.mvc.entity.User; import com.mvc.service.SubTaskService; import com.mvc.service.TaskService; import com.utils.Pager; import net.sf.json.JSONObject; /** * 任务相关 * * @author zjn * @date 2016年9月12日 */ @Controller @RequestMapping("/task") public class TaskController { @Autowired TaskService taskService; @Autowired SubTaskService subTaskService; /** * zq接收任务起始页 * * @return */ @RequestMapping("/toTaskPage.do") public String managerReceivePage() { return "taskInformation/index"; } /** * 根据用户ID和状态筛选任务列表,task_state:0 表示为接收,1表示执行中,2表示已完成 * * @param request * @param session * @return */ @RequestMapping(value = "/selectTaskByState.do") public @ResponseBody String getTasks(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); Integer taskState = Integer.valueOf(request.getParameter("taskState")); Integer sendOrReceive = Integer.valueOf(request.getParameter("sendOrReceive")); Integer totalRow = taskService.countByParam(user.getUser_id(), taskState, null, sendOrReceive);// 0表示发送,1表示接收 System.out.println("总数" + totalRow); Pager pager = new Pager(); pager.setPage(Integer.valueOf(request.getParameter("page"))); pager.setTotalRow(totalRow); List<Task> list = taskService.findByPage(user.getUser_id(), taskState, null, pager.getOffset(), pager.getLimit(), sendOrReceive); jsonObject.put("list", list); jsonObject.put("totalPage", pager.getTotalPage()); System.out.println("totalPage返回列表:" + pager.getTotalPage()); return jsonObject.toString(); } /** * 根据页数,状态,关键字返回任务列表 * * @param request * @param session * @return */ @RequestMapping(value = "/selectTaskByContext.do") public @ResponseBody String getTasksBySearchKey(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); Integer taskState = Integer.valueOf(request.getParameter("taskState")); Integer sendOrReceive = Integer.valueOf(request.getParameter("sendOrReceive")); String searchKey = request.getParameter("context"); Integer totalRow = taskService.countByParam(user.getUser_id(), taskState, searchKey, sendOrReceive); System.out.println("总数" + totalRow); Pager pager = new Pager(); pager.setPage(Integer.valueOf(request.getParameter("page"))); pager.setTotalRow(totalRow); List<Task> list = taskService.findByPage(user.getUser_id(), taskState, searchKey, pager.getOffset(), pager.getLimit(), sendOrReceive); jsonObject.put("list", list); jsonObject.put("totalPage", pager.getTotalPage()); System.out.println("返回列表:" + jsonObject.toString()); return jsonObject.toString(); } /** * 根据合同ID和任务类型返回任务列表 * * @param request * @param session * @return */ @RequestMapping(value = "/selectTaskByConId.do") public @ResponseBody String getTasksByContId(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); Integer contId = Integer.valueOf(request.getParameter("contId")); Integer taskType = Integer.valueOf(request.getParameter("taskType")); List<Task> list = taskService.findByContIdAndType(user.getUser_id(), contId, taskType); jsonObject.put("list", list); System.out.println("返回列表:" + jsonObject.toString()); return jsonObject.toString(); } /** * 根据任务ID查询任务详情 * * @param request * @param session * @return */ @RequestMapping(value = "/selectTaskById.do") public @ResponseBody String findByTaskId(HttpServletRequest request, HttpSession session) { JSONObject jsonObject = new JSONObject(); User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); Integer taskId = Integer.valueOf(request.getParameter("ID")); Task task = taskService.findById(taskId); if (task.getTask_state() == TaskStatus.waitingReceipt.value && task.getReceiver().getUser_id() == user.getUser_id()) { taskService.updateState(taskId, TaskStatus.dealing.value); } jsonObject.put("task", task); return jsonObject.toString(); } /** * 创建任务 * * @param request * @param session * @return * @throws ParseException */ @RequestMapping(value = "/addTask.do") public @ResponseBody String addTask(HttpServletRequest request, HttpSession session) throws ParseException { JSONObject result = new JSONObject(); JSONObject jsonObject = new JSONObject(); Task task = new Task(); User user = (User) session.getAttribute(SessionKeyConstants.LOGIN); long time = System.currentTimeMillis(); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); Contract contract = new Contract(); System.out.println("conId:" + request.getParameter("conId")); if (request.getParameter("conId") != "") { contract.setCont_id(Integer.valueOf(request.getParameter("conId"))); task.setContract(contract); } System.out.println("taskType:" + request.getParameter("taskType")); Integer taskType = Integer.valueOf(request.getParameter("taskType")); task.setTask_type(taskType); task.setCreator(user); jsonObject = JSONObject.fromObject(request.getParameter("task")); System.out.println("task" + request.getParameter("task")); User receiver = new User(); receiver.setUser_id(Integer.valueOf(jsonObject.getString("receiver_id"))); task.setReceiver(receiver); task.setTask_ctime(new Date(time)); Date sdate = format.parse(jsonObject.getString("task_stime")); Date edate = format.parse(jsonObject.getString("task_etime")); if (jsonObject.containsKey("task_content")) { task.setTask_content(jsonObject.getString("task_content"));// 备注,张群刘亚赢不统一 } task.setTask_stime(sdate); task.setTask_etime(edate); task.setTask_isdelete(IsDelete.NO.value); task.setTask_state(TaskStatus.waitingReceipt.value); task.setTask_alarmnum(0); if (taskType != TaskType.assistants.value) {// 0代表普通任务;2代表执行管控任务 Task taskResult = taskService.save(task); if (taskResult.getTask_id() != null) { result.put("result", "true"); System.out.println("任务创建成功"); } else { result.put("result", "false"); System.out.println("任务创建失败"); } } else {// 1代表文书任务 List<String> subTasks = new ArrayList<String>(); if (jsonObject.containsKey("print")) // 打印 subTasks.add("print"); if (jsonObject.containsKey("sign")) // 签字 subTasks.add("sign"); if (jsonObject.containsKey("seal")) // 盖章 subTasks.add("seal"); if (jsonObject.containsKey("post")) // 邮寄 subTasks.add("post"); if (jsonObject.containsKey("file")) // 归档 subTasks.add("file"); Task taskResult = taskService.save(task); boolean flag = false; for (int j = 0; j < subTasks.size(); j++) { SubTask subTask = new SubTask(); subTask.setSuta_content(subTasks.get(j)); subTask.setSuta_state(0); subTask.setTask(taskResult); flag = subTaskService.save(subTask); } if (flag) { System.out.println("re:" + flag); result.put("result", "true"); } else result.put("result", "false"); } return result.toString(); } /** * 删除任务 * * @param request * @param session * @return */ @RequestMapping(value = "/deleteTask.do") public @ResponseBody String delete(HttpServletRequest request, HttpSession session) { Integer taskId = Integer.valueOf(request.getParameter("taskId")); boolean result = taskService.delete(taskId); return JSON.toJSONString(result); } /** * 完成任务确认 * * @param request * @param session * @return */ @RequestMapping(value = "/finishTask.do") public @ResponseBody String finishTask(HttpServletRequest request, HttpSession session) { Integer taskId = Integer.valueOf(request.getParameter("taskId")); boolean result = taskService.updateState(taskId, TaskStatus.finish.value); return JSON.toJSONString(result); } }