taskmultiactioncontroller.java
来自「Java的框架」· Java 代码 · 共 257 行
JAVA
257 行
package mcaps.apps.prrm.task.webapp.controller;
//import java.io.IOException;
//import java.util.HashMap;
//import java.util.Map;
import java.util.Locale;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import mcaps.apps.prrm.roaddefect.model.RoadDefect;
import mcaps.apps.prrm.roaddefect.model.RoadDefectStatus;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;
import mcaps.apps.prrm.roadinspection.service.RoadInspectionManager;
import mcaps.apps.prrm.task.model.Status;
import mcaps.apps.prrm.task.model.Task;
import mcaps.apps.prrm.task.service.TaskManager;
import mcap.core.base.webapp.controller.BaseMultiActionController;
import mcap.core.base.webapp.util.Result;
import mcap.core.logging.Log;
import mcaps.apps.prrm.task.util.NameConstants;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContextException;
import org.springframework.web.bind.RequestUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.view.RedirectView;
public class TaskMultiActionController extends BaseMultiActionController implements
InitializingBean {
private static final String TASKS_VIEW = "prrm/task/tasks";
private static final String TASK_VIEW = "prrm/task/task";
private static final String ROADDEFECT_VIEW_URL ="roadDefect.action?roadDefectId=";
private TaskManager taskManager;
private RoadInspectionManager roadInspectionManager;
/**
* Returns the taskManager.
* @return TaskManager
*/
public TaskManager getTaskManager () {
return taskManager;
}
/**
* Sets the taskManager.
* @param taskManager The taskManager to set.
*/
public void setTaskManager (TaskManager taskManager) {
this.taskManager = taskManager;
}
/**
* Returns the roadInspectionManager.
* @return RoadInspectionManager
*/
public RoadInspectionManager getRoadInspectionManager () {
return roadInspectionManager;
}
/**
* Sets the roadInspectionManager.
* @param roadInspectionManager The roadInspectionManager to set.
*/
public void setRoadInspectionManager (RoadInspectionManager roadInspectionManager) {
this.roadInspectionManager = roadInspectionManager;
}
public void afterPropertiesSet() throws Exception {
if (taskManager == null)
throw new ApplicationContextException(
"Must set taskManager bean property on " + getClass());
if (roadInspectionManager == null)
throw new ApplicationContextException(
"Must set roadInspectionManager bean property on " + getClass());
}
// handlers
/**
* Custom handler for road defect display
*
* @param request
* current HTTP request
* @param response
* current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView taskHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
if (request.getParameter ("taskId") == null) {
Result result = new Result ("task.title",
"task.heading", "task.nullid", "actionUrl");
return new ModelAndView ("result", "result", result);
}
Task task = taskManager.getTask(RequestUtils.getIntParameter(request, "taskId"));
if (task == null) {
Result result = new Result("task.title","task.heading",
"task.null","actionUrl");
return new ModelAndView("result","result",result);
}
if (task.getStatus().equals(Status.PENDING)){
task.setStatus(Status.OPEN);
taskManager.saveTask(task);
}
RoadInspection ri = new RoadInspection();
ri.setTaskId(task.getId());
request.setAttribute(mcaps.apps.prrm.roadinspection.util.NameConstants.ROADINSPECTION_LIST,roadInspectionManager.getRoadInspections(ri));
return new ModelAndView(TASK_VIEW,NameConstants.TASK_OBJ, task);
}
/**
* Custom handler for road defects display
*
* @param request
* current HTTP request
* @param response
* current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView tasksHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
String userName = request.getRemoteUser ();
if (userName != null) {
if (request.isUserInRole(mcap.core.user.util.NameConstants.ADMIN_ROLE)){
return new ModelAndView(TASKS_VIEW,
NameConstants.TASK_LIST, taskManager.getAllTasks());
}else{
Task task = new Task();
task.setAssignedUserId(userName);
return new ModelAndView(TASKS_VIEW,
NameConstants.TASK_LIST, taskManager.getTasks(task));
}
}
return new ModelAndView(TASKS_VIEW,
NameConstants.TASK_LIST, null);
}
// /**
// * Custom handler for road defects display
// *
// * @param request
// * current HTTP request
// * @param response
// * current HTTP response
// * @return a ModelAndView to render the response
// */
// public ModelAndView tasksSearchHandler(HttpServletRequest request,
// HttpServletResponse response) throws ServletException {
// return new ModelAndView("tasks",
// NameConstants.ROADDEFECT_LIST, taskManager.getAllTasks());
// }
/**
* Custom handler for road defects display
*
* @param request
* current HTTP request
* @param response
* current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView deleteTaskHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
Locale locale = request.getLocale();
System.out.print("deleteTaskHandler");
System.out.print(request.getQueryString());
if (request.getParameter ("taskId") == null) {
Result result = new Result("deleteTask.title","deleteTask.heading",
"task.delete.nullid",
"actionUrl");
return new ModelAndView("result","result",result);
}
Integer id = Integer.valueOf(request.getParameter ("taskId"));
System.out.print("deleteTaskHandler delete id : " + id);
Task task=this.getTaskManager().getTask(id);
this.getTaskManager().removeTask(task);
saveMessage (request, getText ("task.deleted", id.toString(),
locale));
return new ModelAndView(TASKS_VIEW,
NameConstants.TASK_LIST, taskManager.getAllTasks());
}
/**
* Custom handler for change task status (Done, Close)
*
* @author fenglei
* @param request current HTTP request
* @param response current HTTP response
* @return a ModelAndView to render the response
*/
public ModelAndView statusTaskHandler(HttpServletRequest request,
HttpServletResponse response) throws ServletException {
if (request.getParameter ("taskId") == null) {
Result result = new Result ("task.title",
"task.heading", "task.nullid", "actionUrl");
return new ModelAndView("result","result",result);
}
Integer id=RequestUtils.getIntParameter(request, "taskId");
Task task = taskManager.getTask(id);
Locale locale = request.getLocale();
if (task == null) {
Result result = new Result ("task.title",
"task.heading", "task.nullid", "actionUrl");
return new ModelAndView("result","result",result);
}
try{
//set road defect status to Opened
if("Done".equals(request.getParameter("method")))
{
task.setStatus(Status.DONE);
this.getTaskManager().changeStatus(task);
saveMessage (request, getText ("task.done", id.toString(),
locale));
}
//set road defect status to Closed.
else if("Closed".equals(request.getParameter("method")))
{
task.setStatus(Status.CLOSED);
this.getTaskManager().changeStatus(task);
saveMessage (request, getText ("task.close", id.toString(),
locale));
}
} catch (Exception e) {
Log.warn("Fail to change task status. " + e.getMessage());
return getErrorView(NameConstants.STATUS_TASK_TITLE,
NameConstants.STATUS_TASK_HEADING,
NameConstants.ERROR_STATUS_TASK_FAIL,
new Object[]{id},
TASKS_VIEW);
}
return new ModelAndView (new RedirectView (ROADDEFECT_VIEW_URL + task.getRoadDefectId()));
//return new ModelAndView(TASKS_VIEW,NameConstants.TASK_LIST, taskManager.getAllTasks());
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?