package com.cabletech.business.wplan.plan.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.base.service.UserInfoService; import com.cabletech.business.flowservice.util.ProMockPo; import com.cabletech.business.wplan.plan.dao.PatrolApproveDao; import com.cabletech.business.wplan.plan.dao.PatrolinfoDao; import com.cabletech.business.wplan.plan.model.PatrolApprove; import com.cabletech.business.wplan.plan.model.Patrolinfo; import com.cabletech.business.wplan.plan.service.PatrolApproveService; import com.cabletech.business.wplan.plan.service.PatrolWorkflowService; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; import com.cabletech.common.base.SysConstant; /** * 巡检审批服务实现 * * @author zhaobi * @author 杨隽 2012-05-17 去除无用的导入、局部变量和类成员 * */ @Service @Transactional public class PatrolApproveServiceImpl extends BaseServiceImpl<PatrolApprove, String> implements PatrolApproveService { /** * 计划审批Dao */ @Resource(name = "patrolApproveDao") private PatrolApproveDao patrolApproveDao; /** * 巡检工作流服务 */ @Resource(name = "patrolWorkflowService") private PatrolWorkflowService patrolWorkflowService; /** * 巡检计划服务; */ @Resource(name = "patrolinfoDao") private PatrolinfoDao patrolinfoDao; // 用户信息业务处理 @Resource(name = "userInfoServiceImpl") private UserInfoService userInfoService; @Override @Transactional public void deleteApprove(String planid) { patrolApproveDao.deleteApprove(planid); } @Override protected BaseDao<PatrolApprove, String> getBaseDao() { // TODO Auto-generated method stub return patrolApproveDao; } /* * 审批 (non-Javadoc) * * @see * com.cabletech.business.wplan.plan.service.PatrolApproveService#audit( * com.cabletech.business.wplan.plan.model.PatrolApprove, * com.cabletech.business.base.model.UserInfo) */ @Override @Transactional public void audit(PatrolApprove patrolapprove, UserInfo userinfo) { // TODO Auto-generated method stub Patrolinfo patrolinfo = patrolinfoDao.get(patrolapprove.getPlanid()); SmParameter parameter = getSmParameter(patrolinfo, patrolapprove); // 执行工作流业务 ProMockPo pro = doWorkflow(patrolapprove, userinfo, parameter); // 审核通过 if (pro.isFlowOver()) { patrolinfo.setPlanstate(SysConstant.PASSED_STATE); } else { // 审核不通过 patrolinfo.setPlanstate(SysConstant.NOT_PASSED_STATE); } patrolinfoDao.save(patrolinfo); } /** * 获取发送短信的传递参数 * * @param patrolinfo * Patrolinfo * @param patrolapprove * PatrolApprove * @return */ private SmParameter getSmParameter(Patrolinfo patrolinfo, PatrolApprove patrolapprove) { // TODO Auto-generated method stub String simId = getUserPhone(patrolinfo.getCreater()); String msgId = ""; String[] contentParameters = new String[] { patrolinfo.getPlanname() }; if (SysConstant.PASS_WORKFLOW_TRANSTION.equals(patrolapprove .getResult())) { msgId = "approve_passed"; } else { msgId = "approve_not_passed"; } SmParameter parameter = SmParameter.getInstance("wplan", msgId, simId, contentParameters); return parameter; } /** * 根据用户编号获取用户联系电话 * * @param userId * String * @return */ private String getUserPhone(String userId) { // TODO Auto-generated method stub String phone = ""; UserInfo user = userInfoService.getUserInfoByPersonId(userId); if (user != null) { phone = user.getPhone(); } return phone; } /** * 执行计划工作流 * * @param smParameter * SmParameter 短信发送参数 * @param userinfo * UserInfo 当前登录用户信息 * @param patrolapprove * PatrolApprove 巡检计划审核信息 */ @Transactional private ProMockPo doWorkflow(PatrolApprove patrolapprove, UserInfo userinfo, SmParameter smParameter) { ProMockPo taskPi = new ProMockPo(); // 工作流任务ID taskPi.setTaskId(patrolapprove.getId()); taskPi.setBzid(patrolapprove.getPlanid()); taskPi.setComment(patrolapprove.getRemark()); taskPi.setUserId(userinfo.getPersonId()); taskPi.setUserName(userinfo.getUserName()); taskPi.setTransition(patrolapprove.getResult()); return patrolWorkflowService.doTask(taskPi, smParameter); } }