package com.cabletech.business.desktop.service.impl; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.cabletech.baseinfo.business.Service.BaseInfoProvider; import com.cabletech.baseinfo.business.entity.UserInfo; import com.cabletech.business.desktop.dao.DesktopDao; import com.cabletech.business.desktop.service.MyWorkService; import com.cabletech.business.workflow.common.service.AbstractWorkflowWaitHandledService; import com.cabletech.business.workflow.common.service.WorkflowWaitHandledService; import com.cabletech.common.base.BaseDao; import com.cabletech.common.base.BaseServiceImpl; /** * 我的工作实现 * * @author Administrator * */ @Service @SuppressWarnings("rawtypes") public class MyWorkServiceImpl extends BaseServiceImpl implements MyWorkService { @Resource(name = "baseInfoProvider") private BaseInfoProvider baseInfoProvider; // 桌面服务Dao @Resource(name = "desktopDao") private DesktopDao desktopDao; // 待办工作流业务处理服务列表 @Autowired private List<AbstractWorkflowWaitHandledService> workflowServiceList; @Resource(name = "workflowWaitHandledServiceImpl") private WorkflowWaitHandledService workflowWaitHandledService; @Override protected BaseDao getBaseDao() { // TODO Auto-generated method stub return null; } /** * 获取菜单 * * @param user * 用户 * @param menuid * 当前菜单 */ @SuppressWarnings("deprecation") public List<Map<String, Object>> getMenuInfo(UserInfo user, String menuid) { // TODO Auto-generated method stub // 获取菜单下一级目录 return baseInfoProvider.getMenuList(user.getUserId(), menuid, ""); } /** * 获取当前用户可以进行处理的待办工作信息数量 * * @param userInfo * 用户 */ @Transactional public Map<String, Object> getWaitHandledTasksNumber(UserInfo userInfo) { Map<String, Object> map = new HashMap<String, Object>(); // 获取专业类型 List<Map<String, Object>> businessTypeList = userInfo .getBusinessTypes(); if (CollectionUtils.isEmpty(workflowServiceList)) { return map; } if (CollectionUtils.isEmpty(businessTypeList)) { return map; } for (int i = 0; i < workflowServiceList.size(); i++) { AbstractWorkflowWaitHandledService workflowService = workflowServiceList .get(i); workflowService.setBusinessTypeList(businessTypeList); workflowService.getOneWorkflowHandledTaskNumber(userInfo, map); } // map.putAll(workflowWaitHandledService // .getWorkflowWaitHandledNumberMap(userInfo)); return map; } @Override @Transactional public List<Map<String, Object>> getWaitHandledTasksList(UserInfo userInfo, String type) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); // 获取专业类型 List<Map<String, Object>> businessTypeList = userInfo .getBusinessTypes(); if (CollectionUtils.isEmpty(workflowServiceList)) { return list; } if (CollectionUtils.isEmpty(businessTypeList)) { return list; } for (int i = 0; i < workflowServiceList.size(); i++) { AbstractWorkflowWaitHandledService workflowService = workflowServiceList .get(i); if (!type.equals(workflowService.getWorkflowType(workflowService .getProcessDefName()))) { continue; } workflowService.setBusinessTypeList(businessTypeList); List<Map<String, Object>> resultList = workflowService .getOneWorkflowHandledTaskList( workflowService.getBusinessTypeList(), userInfo); list.addAll(resultList); } return list; } @Override @Transactional(readOnly = true) public List<Map<String, Object>> getShortCuts(UserInfo user) { // TODO Auto-generated method stub return desktopDao.getShortCuts(user); } }