package com.cabletech.business.workflow.wmaintain.service.impl; import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.base.model.SmParameter; import com.cabletech.business.workflow.wmaintain.dao.WMaintainBaseDao; import com.cabletech.business.workflow.wmaintain.model.WMaintainPlan; import com.cabletech.business.workflow.wmaintain.service.WMaintainApprovePlanService; import com.cabletech.common.base.SysConstant; /** * 审核维修作业计划服务接口实现 * * @author 杨隽 2012-04-11 创建 * @author 杨隽 2012-04-16 添加注释部分 * */ @Service @Transactional public class WMaintainApprovePlanServiceImpl extends WMaintainBaseServiceImpl<WMaintainPlan, String> implements WMaintainApprovePlanService { // 维修作业计划Dao @Resource(name = "WMaintainPlanDao") private WMaintainBaseDao<WMaintainPlan, String> wMaintainPlanDao; /** * 审核维修作业计划 * * @param planApprove * WMaintainPlan 审核维修作业计划表单数据 * @param userInfo * UserInfo 当前登录用户信息 */ @Override public void approvePlan(WMaintainPlan planApprove, UserInfo userInfo) { // TODO Auto-generated method stub WMaintainPlan plan = writePlanApproveInfo(planApprove, userInfo); wMaintainPlanDao.save(plan); SmParameter smParameter = getSmParameter(plan); super.doWorkflow(plan, smParameter); } /** * 获取维修作业计划处理操作Dao * * @return WMaintainBaseDao<T, PK> 维修作业计划处理操作Dao */ @Override protected WMaintainBaseDao<WMaintainPlan, String> getWMaintainBaseDao() { // TODO Auto-generated method stub return wMaintainPlanDao; } /** * 补充审核维修作业计划信息数据 * * @param planApprove * WMaintainPlan 审核维修作业计划表单数据 * @param userInfo * UserInfo 当前登录用户信息 * @return WMaintainPlan 审核维修作业计划信息数据 */ private WMaintainPlan writePlanApproveInfo(WMaintainPlan planApprove, UserInfo userInfo) { WMaintainPlan plan = wMaintainPlanDao.get(planApprove.getId()); plan.setApproveResult(planApprove.getApproveResult()); plan.setApproveRemark(planApprove.getApproveRemark()); plan.setTransferApproverId(planApprove.getTransferApproverId()); plan.setWorkflowTaskId(planApprove.getWorkflowTaskId()); plan.setWorkflowTransition(planApprove.getApproveResult()); plan.setWorkflowComment(planApprove.getApproveRemark()); plan.setCurrentProcessUserId(userInfo.getPersonId()); if (SysConstant.TRANSFER_WORKFLOW_TRANSTION.equals(plan .getApproveResult())) { plan.setNextProcessUserId(planApprove.getTransferApproverId()); } else { plan.setNextProcessUserId(plan.getCreater()); } if (SysConstant.PASS_WORKFLOW_TRANSTION.equals(plan.getApproveResult())) { plan.setPlanState(WMaintainPlan.WMAINTAIN_PLAN_PASSED_STATE); } else if (SysConstant.REJECT_WORKFLOW_TRANSITION.equals(plan .getApproveResult())) { plan.setPlanState(WMaintainPlan.WMAINTAIN_PLAN_NOTPASSED_STATE); } return plan; } /** * 获取短信发送参数 * * @param plan * WMaintainPlan 审核维修作业计划信息 * @return SmParameter 短信发送参数 */ private SmParameter getSmParameter(WMaintainPlan plan) { SmParameter smParameter = new SmParameter(); String simId = super.getUserPhone(plan.getNextProcessUserId()); String[] contentParameters = new String[] { plan.getPlanName() }; smParameter.setSimId(simId); smParameter.setContentParameters(contentParameters); smParameter.setXmlFileId(WMAINTAIN_XML_FILE_ID); if (SysConstant.PASS_WORKFLOW_TRANSTION.equals(plan.getApproveResult())) { smParameter.setXmlMessageId(APPROVE_PASSED_PLAN_MSG_ID); } else if (SysConstant.REJECT_WORKFLOW_TRANSITION.equals(plan .getApproveResult())) { smParameter.setXmlMessageId(APPROVE_NOTPASSED_PLAN_MSG_ID); } else { smParameter.setXmlMessageId(APPROVE_TRANSFER_PLAN_MSG_ID); } return smParameter; } }