roadinspectionmultiactioncontroller.java

来自「Java的框架」· Java 代码 · 共 399 行

JAVA
399
字号
package mcaps.apps.prrm.roadinspection.webapp.controller;

//import java.io.IOException;
//import java.util.HashMap;
//import java.util.Map;

import java.util.ArrayList;
import java.util.List;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
import java.io.File;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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;
import mcap.core.logging.Log;
import mcaps.apps.prrm.roaddefect.model.RoadDefect;
import mcaps.apps.prrm.roaddefect.service.RoadDefectManager;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;
import mcaps.apps.prrm.roadinspection.model.RoadInspectionPicture;
import mcaps.apps.prrm.roadinspection.service.RoadInspectionManager;
import mcap.core.base.webapp.controller.BaseMultiActionController;
import mcap.core.base.webapp.util.Result;
import mcaps.apps.prrm.roadinspection.util.NameConstants;
import mcaps.apps.prrm.task.model.Status;
import mcaps.apps.prrm.task.model.Task;
import mcaps.apps.prrm.task.service.TaskManager;

public class RoadInspectionMultiActionController extends BaseMultiActionController implements
		InitializingBean {

	private static final String ROADINSPECTIONS_VIEW = "prrm/roadInspection/roadInspections";
	private static final String ROADINSPECTION_VIEW = "prrm/roadInspection/roadInspection";
	private static final String UPLOAD_ROOT_DIR = "resources/pictures/roadinspection/";
	private static final String ROADINSPECTION_REPORT_VIEW = "roadInspectionReport";
	
	private static final String className="mcaps.apps.prrm.roadinspection.webapp.controller.RoadInspectionMultiActionController";
	private RoadInspectionManager roadInspectionManager;
	private TaskManager taskManager;
	private RoadDefectManager roadDefectManager; 
	private Map imageMap;
	
	/**
	 * 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;
	}
	
	/**
	 * @return Returns the taskManager.
	 */
	public TaskManager getTaskManager() {
		return taskManager;
	}


	/**
	 * @param taskManager The taskManager to set.
	 */
	public void setTaskManager(TaskManager taskManager) {
		this.taskManager = taskManager;
	}
	/**
	 * Returns the imageMap.
	 * @return Map
	 */
	public Map getImageMap () {
		return imageMap;
	}

	/**
	 * Sets the imageMap.
	 * @param imageMap The imageMap to set.
	 */
	public void setImageMap (Map imageMap) {
		this.imageMap = imageMap;
	}


	public void afterPropertiesSet() throws Exception {
		if (roadInspectionManager == null)
			throw new ApplicationContextException(
					"Must set roadInspectionManager bean property on " + getClass());
		if (imageMap == null)
			throw new ApplicationContextException(
					"Must set imageMap 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 roadInspectionHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {

    if (request.getParameter ("roadInspectionId") == null) {
    	Result result = new Result("roadInspection.title","roadInspection.heading",
																	"roadInspection.nullid","actionUrl");
			return new ModelAndView("result","result",result);
		}
		RoadInspection roadInspection = roadInspectionManager.getRoadInspection(
				RequestUtils.getIntParameter(request, "roadInspectionId"));
    
		if (roadInspection == null) {
    	Result result = new Result("roadInspection.title","roadInspection.heading",
																	"roadInspection.null","actionUrl");
			return new ModelAndView("result","result",result);
		}
		Task task=taskManager.getTask(roadInspection.getTaskId());
		List pictureList = getPictureFiles(roadInspection.getId());
		
		request.setAttribute("roadinspectionpicturelist",pictureList);
		request.setAttribute(mcaps.apps.prrm.task.util.NameConstants.TASK_OBJ,task);
		
		return new ModelAndView(ROADINSPECTION_VIEW, NameConstants.ROADINSPECTION_OBJ, roadInspection);
	}
	
	
	/**
	 * Custom handler for submit road defect inspection
	 * 
	 * @author fenglei
	 * 
	 * @param request
	 *          current HTTP request
	 * @param response
	 *          current HTTP response
	 * @return a ModelAndView to render the response
	 */
	public ModelAndView submitRoadInspectionHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {

	Log.info(className + " submitRoadInspectionHandler start");
    if (request.getParameter ("taskId") == null) {
    	Result result = new Result("roadInspection.title","roadInspection.heading",
																	"roadInspection.nullid","actionUrl");
			return new ModelAndView("result","result",result);
		}
    
    RoadInspection roadInspection=this.roadInspectionManager.getRoadInspection(RequestUtils.getIntParameter(request,"roadInspectionId"));
    Log.info(className + " submitRoadInspectionHandler roadInspection.id=" + roadInspection.getId());
    
 //   Task task=this.taskManager.getTask(RequestUtils.getIntParameter(request,"taskId"));
    
		if (roadInspection == null) {
    	Result result = new Result("roadInspection.title","roadInspection.heading",
																	"roadInspection.null","actionUrl");
			return new ModelAndView("result","result",result);
		}
		
		this.getRoadInspectionManager().submitRoadInspection(roadInspection);
		
		Log.info(className + " submitRoadInspectionHandler end");
		
		return new ModelAndView (new RedirectView ("roadDefect.action?roadDefectId=" + roadInspection.getRoadDefectId()));
		//return new ModelAndView(new RedirectView ("task.action?taskId=" + task.getId()));
	}
	/**
	 * 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 roadInspectionReportHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {    

    if (request.getParameter ("roadInspectionId") == null) {
			Result result = new Result ("roadInspection.title",
					"roadInspection.heading", "roadInspection.nullid", "actionUrl");
			return new ModelAndView ("result", "result", result);
		}

		String id = request.getParameter ("roadInspectionId");
		System.out.println ("roadInspectionid = " + id);

		String uri = request.getRequestURI ();
		String format = uri.substring (uri.lastIndexOf (".") + 1);

		System.out.println ("format = " + format);
		Map model = new HashMap ();
		model.put ("format", format);
		model.put ("roadinspectionid", Integer.valueOf (id));

		String imageDir = getServletContext ().getRealPath (UPLOAD_ROOT_DIR);
		model.put ("imagedir", imageDir);
		System.out.println("Image Dir : " + imageDir);
		System.out.println("Image Dir : " + model.get("imagedir"));
		String uploadDir = UPLOAD_ROOT_DIR + id + "/";
		String fullUploadDir = getServletContext ().getRealPath (uploadDir);


		File dir = new File (fullUploadDir);
		if (dir.exists ()) {
			File[] files = dir.listFiles();
			String fileName;
			int cnt = 0;
			for (int i = 0; i < files.length; i++) {
				File file = files[i];
				if (file.isFile()) {
					if (isImageFile (file)) {
//						fileName = file.getAbsolutePath();
						fileName = file.getName();
						model.put ("imagefile" + ++cnt, fileName);
						System.out.println(cnt + fileName);
					}
				}
			}
		}
//		if (format.equals("html")){
			System.out.println("Image Map Set");
			request.getSession().setAttribute("IMAGES_MAP", imageMap);
//		}
		return new ModelAndView(ROADINSPECTION_REPORT_VIEW, model);
		}
	
	/**
	 * 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 roadInspectionsHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {
		return new ModelAndView(ROADINSPECTIONS_VIEW, 
				NameConstants.ROADINSPECTION_LIST, roadInspectionManager.getAllRoadInspections());
	}
	
	/**
	 * 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 roadInspectionsSearchHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {
		return new ModelAndView(ROADINSPECTIONS_VIEW, 
				NameConstants.ROADINSPECTION_LIST, roadInspectionManager.getAllRoadInspections());
	}
	
	/**
	 * 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 deleteRoadInspectionHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {    

		Locale locale = request.getLocale();
 
    if (request.getParameter ("roadInspectionId") == null) {
    	Result result = new Result("deleteRoadInspection.title","deleteRoadInspection.heading",
																	"roadInspection.delete.nullid","actionUrl");
			return new ModelAndView("result","result",result);
		}
		Integer id = Integer.valueOf(request.getParameter ("roadInspectionId"));
		RoadInspection roadInspection = this.getRoadInspectionManager().getRoadInspection(id);
		this.getRoadInspectionManager().removeRoadInspection(roadInspection);
		saveMessage (request, getText ("roadInspection.deleted", id.toString(), locale));
		return new ModelAndView(ROADINSPECTIONS_VIEW, NameConstants.ROADINSPECTION_LIST, roadInspectionManager.getAllRoadInspections());
	}
	
	
	/**
	 * 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 deleteRoadInspectionPictureHandler(HttpServletRequest request,
			HttpServletResponse response) throws ServletException {    

		Locale locale = request.getLocale();
 
    if (request.getParameter ("roadInspectionId") == null) {
    	Result result = new Result("deleteRoadInspectionPicture.title","deleteRoadInspection.heading",
																	"roadInspection.picture.nullid","actionUrl");
			return new ModelAndView("result","result",result);
		}
    if (request.getParameter ("pictureid") == null) {
    	Result result = new Result("deleteRoadInspectionPicture.title","deleteRoadInspection.heading",
																	"roadInspection.picture.nullpicid","actionUrl");
			return new ModelAndView("result","result",result);
		}

		Integer id = Integer.valueOf(request.getParameter ("roadInspectionId"));
		String picId = request.getParameter ("pictureid");
		
		String uploadDir = UPLOAD_ROOT_DIR + id + "\\";
    String fullUploadDir = getServletContext().getRealPath(uploadDir);
    
		File dir = new File(fullUploadDir);
    if (dir.exists()) {
       	System.out.println(" Delete Pic : " + fullUploadDir  + "\\" + picId);
	    	File file = new File(fullUploadDir + "\\" + picId);
	    	if (file.exists()){
	    		file.delete();
    		}
    }
		
		saveMessage (request, getText ("roadInspectionPicture.deleted", picId, locale));
		return new ModelAndView (new RedirectView ("roadInspectionForm.action?method=edit&roadInspectionId=" + id));
	}

	private boolean isImageFile(File file){
		String fileName = file.getName();
		String ext = fileName.substring(fileName.lastIndexOf(".",fileName.length())+1);
		if ((ext.equalsIgnoreCase("jpg")) || (ext.equalsIgnoreCase("jpeg")) ||
				(ext.equalsIgnoreCase("gif")) || (ext.equalsIgnoreCase("bmp")) ||
				(ext.equalsIgnoreCase("png") )){
			return true;
		}
		return false;
	}

	private List getPictureFiles(Integer roadInspectionId){
		List pictureList = new ArrayList();
		String uploadDir = UPLOAD_ROOT_DIR + roadInspectionId + "/";
    String fullUploadDir = getServletContext().getRealPath(uploadDir);
    
		File dir = new File(fullUploadDir);
    if (dir.exists()) {
			File[] files = dir.listFiles();
			RoadInspectionPicture pic = null;
			short cnt = 0;
			for (int i = 0; i < files.length; i++){
				File file = files[i];
				if (file.isFile()){
					if (isImageFile(file)){
						pic = new RoadInspectionPicture();
							pic.setName(file.getName());
							pic.setPath(uploadDir);
							pictureList.add(cnt++,pic);
					}
		    }
			}
		}
    return pictureList;
	}


	/**
	 * @return Returns the roadDefectManager.
	 */
	public RoadDefectManager getRoadDefectManager() {
		return roadDefectManager;
	}


	/**
	 * @param roadDefectManager The roadDefectManager to set.
	 */
	public void setRoadDefectManager(RoadDefectManager roadDefectManager) {
		this.roadDefectManager = roadDefectManager;
	}


	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?