roaddefectmanagerimpl.java
来自「Java的框架」· Java 代码 · 共 319 行
JAVA
319 行
package mcaps.apps.prrm.roaddefect.service.impl;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import mcap.core.logging.Log;
import mcap.core.map.service.WfsTransactionService;
import mcap.core.map.util.MapConstants;
import mcap.core.map.util.MapFeature;
import mcap.core.map.util.WfsTransaction;
import mcap.core.map.util.WfsTransactionFactory;
import mcaps.apps.prrm.roaddefect.dao.RoadDAO;
import mcaps.apps.prrm.roaddefect.dao.RoadDefectDAO;
import mcaps.apps.prrm.roaddefect.model.Road;
import mcaps.apps.prrm.roaddefect.model.RoadDefect;
import mcaps.apps.prrm.roaddefect.model.RoadDefectStatus;
import mcaps.apps.prrm.roaddefect.service.RoadDefectManager;
import mcaps.apps.prrm.roaddefect.util.RoadDefectFeature;
import mcaps.apps.prrm.roadinspection.dao.RoadInspectionDAO;
import mcaps.apps.prrm.roadinspection.model.RoadInspection;
import mcaps.apps.prrm.task.dao.TaskDAO;
import mcaps.apps.prrm.task.model.Status;
import mcaps.apps.prrm.task.model.Task;
import mcaps.apps.prrm.task.service.TaskManager;
/**
* Implementation of RoadDefectManager interface.
* @author jov
* @date Dec 7, 2005
* @version 1.0.1.0
*/
public class RoadDefectManagerImpl implements RoadDefectManager {
private final static String className="mcaps.apps.prrm.roaddefect.service.impl.RoadDefectManagerImpl";
private RoadDefectDAO roadDefectDAO;
private WfsTransactionFactory wfsTransactionFactory;
private WfsTransactionService wfsTransactionService;
private TaskDAO taskDAO;
private RoadInspectionDAO roadInspectionDAO;
private RoadDAO roadDAO;
//-------------------------------------------------------------------------
// Setter methods for dependency injection
//-------------------------------------------------------------------------
/**
* @return Returns the taskManager.
*/
public TaskDAO getTaskDAO() {
return taskDAO;
}
/**
* @param taskManager The taskManager to set.
*/
public void setTaskDAO(TaskDAO taskDAO) {
this.taskDAO = taskDAO;
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#setRoadDefectDAO(mcaps.apps.prrm.roaddefect.dao.RoadDefectDAO)
*/
public void setRoadDefectDAO(RoadDefectDAO dao){
this.roadDefectDAO = dao;
}
/**
* @return Returns the roadDefectManager.
*/
public RoadDefectDAO getRoadDefectDAO() {
return roadDefectDAO;
}
public void setRoadInspectionDAO (RoadInspectionDAO roadInspectionDAO) {
this.roadInspectionDAO = roadInspectionDAO;
}
public RoadInspectionDAO getRoadInspectionDAO()
{
return roadInspectionDAO;
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#setWfsTransaction(mcap.core.map.service.WfsTransactionService)
*/
public void setWfsTransactionService (WfsTransactionService wfsTransactionService) {
this.wfsTransactionService = wfsTransactionService;
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#setWfsTransactionFactory(mcap.core.map.util.WfsTransactionFactory)
*/
public void setWfsTransactionFactory (
WfsTransactionFactory wfsTransactionFactory) {
this.wfsTransactionFactory = wfsTransactionFactory;
}
//-------------------------------------------------------------------------
// Operation methods, implementing the RoadDefectManager interface
//-------------------------------------------------------------------------
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#getRoadDefect(java.lang.Integer)
*/
public RoadDefect getRoadDefect(Integer roadDefectID) {
return roadDefectDAO.getRoadDefect(roadDefectID);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#getRoadDefects(mcaps.apps.prrm.roaddefect.model.RoadDefect)
*/
public List getRoadDefects(RoadDefect roadDefect) {
return roadDefectDAO.getRoadDefects(roadDefect);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#getAllRoadDefects()
*/
public List getAllRoadDefects() {
return roadDefectDAO.getAllRoadDefects();
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#saveRoadDefect(mcaps.apps.prrm.roaddefect.model.RoadDefect)
*/
public void saveRoadDefect(RoadDefect roadDefect) throws Exception{
Date date = new Date();
boolean isNew = roadDefect.isNew();
if (isNew){
roadDefect.setStatus(RoadDefectStatus.DEFAULT);
roadDefect.setCreationTime(date);
}
roadDefect.setLastModifiedTime(date);
roadDefect.getContact().setLastModifiedTime(date);
roadDefectDAO.saveRoadDefect(roadDefect);
Log.info(className + " after saveRoadDefect() ");
MapFeature feature = new RoadDefectFeature(
wfsTransactionFactory.getMapServerUrl(),
roadDefect.getId(), roadDefect.getDefectType(),
roadDefect.getStatus(), roadDefect.getSeverity(),
roadDefect.getCoordinates());
WfsTransaction wfs = wfsTransactionFactory.getInstance(feature);
if (isNew){
if (!wfsTransactionService.doWFSTransaction(MapConstants.INSERT,wfs))
throw new Exception("Road Defect WFS INSERT Transaction failed.");
}else{
if (!wfsTransactionService.doWFSTransaction(MapConstants.UPDATE,wfs))
throw new Exception("Road Defect WFS UPDATE Transaction failed.");
}
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#removeRoadDefect(java.lang.Integer)
*/
public void removeRoadDefect(RoadDefect roadDefect) throws Exception{
roadDefectDAO.removeRoadDefect(roadDefect);
/*
Task task = new Task();
task.setRoadDefectId(roadDefect.getId());
task=taskManager.getTasks(task);
*/
if(!roadDefect.getStatus().equals(RoadDefectStatus.CLOSED))
{
this.removeRoadDefectFromGeoServer(roadDefect);
}
Task task=new Task();
task.setRoadDefectId(roadDefect.getId());
List tasks=taskDAO.getTasks(task);
Iterator iter=tasks.iterator();
while(iter.hasNext())
{
task=(Task)iter.next();
taskDAO.removeTask(task);
}
RoadInspection roadInspection =new RoadInspection();
roadInspection.setRoadDefectId(roadDefect.getId() );
List roadInspections=roadInspectionDAO.getRoadInspections(roadInspection);
iter=roadInspections.iterator();
while(iter.hasNext())
{
roadInspection=(RoadInspection)iter.next();
roadInspectionDAO.removeRoadInspection(roadInspection);
}
}
/**
* Remove map data from geoserver
* @param roadDefect
* @throws Exception
*/
private void removeRoadDefectFromGeoServer(RoadDefect roadDefect) throws Exception
{
MapFeature feature = new RoadDefectFeature(
wfsTransactionFactory.getMapServerUrl(),
roadDefect.getId(), roadDefect.getDefectType(),
roadDefect.getStatus(), roadDefect.getSeverity(),
roadDefect.getCoordinates());
WfsTransaction wfs = wfsTransactionFactory.getInstance(feature);
if (!wfsTransactionService.doWFSTransaction(MapConstants.DELETE,wfs))
throw new Exception("Road Defect WFS DELETE Transaction failed.");
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#purgeRoadDefect(java.util.Date, java.util.Date)
*/
public int purgeRoadDefect(Date startLastModifiedTime, Date endLastModifiedTime){
return roadDefectDAO.purgeRoadDefect(startLastModifiedTime,endLastModifiedTime);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#copyRoadDefectToFile(java.util.Date, java.util.Date)
*/
public int copyRoadDefectToFile(Date startLastModifiedTime, Date endLastModifiedTime) throws Exception{
return roadDefectDAO.copyRoadDefectToFile(startLastModifiedTime,endLastModifiedTime);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#getRoadDefects(java.util.Date, java.util.Date)
*/
public List getClosedRoadDefects(Date startLastModifiedTime, Date endLastModifiedTime){
return roadDefectDAO.getClosedRoadDefects(startLastModifiedTime,endLastModifiedTime);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#openRoadDefect(java.lang.Integer)
*/
public void openRoadDefect(Integer roadDefectID) {
roadDefectDAO.changeRoadDefectStatus(roadDefectID,RoadDefectStatus.OPEN);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#closeRoadDefect(java.lang.Integer)
*/
public void closeRoadDefect(Integer roadDefectID) throws Exception {
roadDefectDAO.changeRoadDefectStatus(roadDefectID,RoadDefectStatus.CLOSED);
RoadDefect roadDefect=roadDefectDAO.getRoadDefect(roadDefectID);
Task task=new Task();
task.setRoadDefectId(roadDefectID);
List tasks=taskDAO.getTasks(task);
Iterator iter=tasks.iterator();
while(iter.hasNext())
{
task=(Task)iter.next();
task.setStatus(Status.CLOSED);
taskDAO.saveTask(task);
}
//if close road defect, the road defect will be removed from geoserver
this.removeRoadDefectFromGeoServer(roadDefect);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#completeRoadDefect(java.lang.Integer)
*/
public void completeRoadDefect(Integer roadDefectID) {
roadDefectDAO.changeRoadDefectStatus(roadDefectID,RoadDefectStatus.DONE);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#assignRoadDefectForInspection(java.lang.Integer)
*/
public void assignRoadDefectForInspection(Integer roadDefectID){
roadDefectDAO.changeRoadDefectStatus(roadDefectID,RoadDefectStatus.ASSIGNED_INSP);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#assignRoadDefectForInspection(java.lang.Integer)
*/
public void setRoadDefectForDone(Integer roadDefectID){
roadDefectDAO.changeRoadDefectStatus(roadDefectID,RoadDefectStatus.DONE);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#assignRoadDefectForRepair(java.lang.Integer)
*/
public void assignRoadDefectForRepair(Integer roadDefectID){
roadDefectDAO.changeRoadDefectStatus(roadDefectID,RoadDefectStatus.ASSIGNED_REP);
}
/* (non-Javadoc)
* @see mcaps.apps.prrm.roaddefect.service.RoadDefectManager#assignRoadDefectForInspection(java.lang.Integer)
*/
public void setRoadDefectForInspectioned(Integer roadDefectID){
roadDefectDAO.changeRoadDefectStatus(roadDefectID,RoadDefectStatus.INSPECTED);
}
public RoadDAO getRoadDAO() {
return roadDAO;
}
public void setRoadDAO(RoadDAO roadDAO) {
this.roadDAO = roadDAO;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?