package org.infosec.ismp.manager.winsensor.operation.service.impl; import java.sql.Timestamp; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.infosec.ismp.agent.comm.util.OperationConstant; import org.infosec.ismp.agent.comm.winsensor.model.operation.Problem; import org.infosec.ismp.manager.winsensor.operation.dao.ManagerProblemDao; import org.infosec.ismp.manager.winsensor.operation.entity.ManagerProblemBO; import org.infosec.ismp.manager.winsensor.operation.service.ManagerProblemService; /** * @author Rocky * @version create time: Jan 15, 2011 4:53:52 PM * */ public class ManagerProblemServiceImpl implements ManagerProblemService { private ManagerProblemDao dao; @Override public Boolean addProblem(Problem problem, String domainId) { ManagerProblemBO existProblem = dao.findProblem(problem.getProblemId()); if (existProblem == null) { ManagerProblemBO problemBO = new ManagerProblemBO(); problemBO.setContact(problem.getContact()); problemBO.setContactAddress(problem.getContactAddress()); SimpleDateFormat format = new SimpleDateFormat(OperationConstant.DUTY_MANAGER_DATE_FORMAT); long createTime; try { createTime = format.parse(problem.getCreateTime()).getTime(); } catch (ParseException e) { createTime = System.currentTimeMillis(); } problemBO.setCreateTime(new Timestamp(createTime)); problemBO.setDescription(problem.getDescription()); problemBO.setProblemId(problem.getProblemId()); problemBO.setSensorId(problem.getSensorId()); problemBO.setServiceAddress(problem.getServiceAddress()); problemBO.setTitle(problem.getTitle()); problemBO.setDomainId(Integer.valueOf(domainId)); problemBO.setState(1); dao.addProblem(problemBO); return true; } return false; } @Override public ManagerProblemBO findByProblemId(String problemId) { return dao.findProblem(problemId); } @Override public void sendProblemClosed(ManagerProblemBO problem) { problem.setIfSendProbClosed(true); problem.setSendProbClosedTime(new Date()); dao.updateProblem(problem); } @Override public void closeOperationProblem(ManagerProblemBO problem) { problem.setIfproblemClosed(true); problem.setProbClosedTime(new Date()); dao.updateProblem(problem); } @Override public void generateWorkOrders(ManagerProblemBO problem, String workOrdersId) { problem.setWorkOrdersId(workOrdersId); problem.setIfGeneratedWorkOrders(true); problem.setWorkOrdersGeneTime(new Date()); dao.updateProblem(problem); } @Override public void sendGenerateWorkOrders(ManagerProblemBO problem) { problem.setIfSendGeneWorkOrders(true); problem.setSendGeneworkOrdersTime(new Date()); dao.updateProblem(problem); } @Override public void closeWorkOrders(ManagerProblemBO problem, String workOrdersId) { if (problem.getWorkOrdersId().equals(workOrdersId)) { problem.setIfWorkOrdersClosed(true); problem.setWorkOrdersClosedTime(new Date()); dao.updateProblem(problem); } } @Override public void sendWorkOrdersClosed(ManagerProblemBO problem) { problem.setIfSendWorkOrdersClosed(true); problem.setSendOrdersClosedTime(new Date()); dao.updateProblem(problem); } @Override public void completeWorkOrders(ManagerProblemBO problem, String workOrdersId) { if (problem.getWorkOrdersId().equals(workOrdersId)) { problem.setIfWorkOrdersComplete(true); problem.setWorkOrdersCompTime(new Date()); dao.updateProblem(problem); } } @Override public void sendWorkOrdersCompleted(ManagerProblemBO problem) { problem.setIfSendWorkOrdersClosed(true); problem.setSendOrdersCompTime(new Date()); dao.updateProblem(problem); } public void setDao(ManagerProblemDao dao) { this.dao = dao; } }