/** * Company Name : 中贸促信息技术有限责任公司 * Project Name:project * File Name:OrgController.java * Package Name:ccpit.base.orgManage * Date:2015年9月21日上午8:37:32 * Copyright (c) 2015, dingwei@ccpit.org All Rights Reserved. * */ package ccpit.base.orgManage; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import ccpit.base.controller.BaseController; import ccpit.base.controller.Page; import ccpit.base.controller.PageRequest; import ccpit.base.role.Role; import ccpit.base.role.RoleService; import ccpit.base.user.User; import ccpit.base.user.UserService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; /** * ClassName:OrgController <br/> * Function: TODO ADD FUNCTION. <br/> * Reason: TODO ADD REASON. <br/> * Date: 2015年9月21日 上午8:37:32 <br/> * * @author dingwei * @version * @since JDK 1.6 * @see */ @Controller @RequestMapping("/admin/org") public class OrgController extends BaseController { private static final Logger log = LoggerFactory.getLogger(OrgController.class); @Autowired private OrgService orgService; @Autowired private UserService userService; @Autowired private RoleService roleService; /* * 进入机构管理列表界面 */ @RequestMapping("/goinOrgListPage") public Object goinOrgListPage() { ModelAndView mv = new ModelAndView("admin/orgManage/orgListPage"); return mv; } /** * * getAllOrgs:(默认查询出所有的机构信息). <br/> * @author dingwei * @param request * @return * @since JDK 1.6 */ @RequestMapping("/getAllOrgs") @ResponseBody public Object getAllOrgs(HttpServletRequest request) { Map<String, Object> map = new HashMap<String, Object>(); PageRequest pageRequest = this.getPage(request); Page<OrgInfo> users = orgService.queryPage(pageRequest); map.put("total", users.getTotal()); map.put("rows", users.getRows()); return map; } /** * * getAllApproveplans:(查询部门所有角色). <br/> * @author dingwei * @param request * @return * @since JDK 1.6 */ @RequestMapping("/getAllOrgRoles") @ResponseBody public Object getAllOrgRoles(HttpServletRequest request){ PageRequest pageRequest = getPage(request); String orgId = request.getParameter("orgId"); Set<Role> msList = new HashSet<Role>(); Page<Role> pageMemberBase = new Page<Role>(pageRequest); if(null != orgId && !"".equals(orgId) && !"undefined".equals(orgId)){ OrgInfo orgInfo = orgService.getOrgById(Long.valueOf(orgId)); if(null != orgInfo){ msList = orgInfo.getRoles(); } } List<Role> roleList = new ArrayList<Role>(msList); pageMemberBase.setTotal(msList.size()); pageMemberBase.setRows(roleList); return roleService.convert(pageMemberBase); } @RequestMapping({ "/getLeftTree" }) @ResponseBody public Object getLeftTree(HttpServletRequest request) { String isroot = request.getParameter("isroot"); // UserBo userBo = (UserBo) User user = (User) request.getSession().getAttribute("user_in_session"); List result = new ArrayList(); List<OrgInfo> orglist = null; // if (("true".equals(isroot)) || // ("superadmin".equals(userBo.getLoginName()))){ // listBo = this.unitService.findUnitByHierarchy("01"); // } // else { // }' String hql = "from OrgInfo order by orderNumber asc"; orglist = this.orgService.getOrgInfoList(hql); List listBo1 = null; if (null != orglist) { for (OrgInfo orgInfo : orglist) { Map item = new HashMap(); if (1 == orgInfo.getId()) { item.put("id", orgInfo.getId()); item.put("text", orgInfo.getName()); item.put("children", getChildren(orgInfo.getId(), orglist)); result.add(item); } } } return result; } public List<Map<String, Object>> getChildren(long id, List<OrgInfo> orgList) { List items = new ArrayList(); for (OrgInfo boinfo : orgList) { if (boinfo.getParentId() == id) { OrgInfo gg = (OrgInfo) boinfo; Map item = new HashMap(); item.put("id", gg.getId()); item.put("text", gg.getName()); item.put("children", getChildren(gg.getId(), orgList)); items.add(item); } } return items; } @RequestMapping("/addOrUpdateOrgInfo") public void addOrUpdateOrgInfo(HttpServletRequest request,HttpServletResponse response, OrgInfo orgInfo) { String result = ""; User user = (User) request.getSession().getAttribute("user_in_session"); String orgId = request.getParameter("orgId"); String orgName = request.getParameter("orgName"); String operate = request.getParameter("operate"); boolean flag = false; if (null != orgName) { try { orgName = java.net.URLDecoder.decode(orgName, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } if (null != orgId) { if ("add".equals(operate)) { orgInfo.setParentId(Long.valueOf(orgId)); orgInfo.setParentName(orgName); orgInfo.setCreateDate(new Date()); orgInfo.setCreateUser(user.getUsername()); flag = orgService.addOrg(orgInfo); }else if("edit".equals(operate)) { OrgInfo org = orgService.getOrgById(Long.valueOf(orgId)); if(null != orgInfo.getName()){ org.setName(orgInfo.getName()); } if(null != orgInfo.getOrderNumber()){ org.setOrderNumber(orgInfo.getOrderNumber()); } if(null != orgInfo.getDescription()){ org.setDescription(orgInfo.getDescription()); } if(null != orgInfo.getParentName()){ org.setParentName(orgInfo.getParentName()); } flag = orgService.updateOrg(org); } } if(flag){ result = "{ \"flag\": "+ flag +", \"info\": \"数据保存成功!\" }"; }else { result = "{ \"flag\": "+ flag +", \"info\": \"数据保存失败!\" }"; } try { response.setContentType("text/html"); response.getWriter().write(result); } catch (IOException e) { e.printStackTrace(); } } /** * * orgAddUsers:(机构添加用户). <br/> * @author dingwei * @param request * @return * @since JDK 1.6 */ @RequestMapping({ "/orgAddUsers" }) @ResponseBody public Object orgAddUsers(HttpServletRequest request,User user){ Map map = new HashMap(); String orgId = request.getParameter("orgId"); String userId = request.getParameter("userId"); boolean flag = false; if(null != orgId){ OrgInfo org = orgService.getOrgById(Long.valueOf(orgId)); if(null != userId){ } } return map.put("flag", flag); } @RequestMapping({ "/getOrgUserByOrdId" }) @ResponseBody public Object getOrgUserByOrdId(HttpServletRequest request){ Map map = new HashMap(); String orgId = request.getParameter("orgId"); Set<User> setUser = new HashSet<User>(); PageRequest pageRequest = this.getPage(request); Page<User> users = new Page<User>(pageRequest); boolean flag = false; if(null != orgId){ OrgInfo org = orgService.getOrgById(Long.valueOf(orgId)); Set<User> userSet = org.getUsers(); List<User> userList = new ArrayList<User>(userSet); users.setRows(userList); users.setTotal(userList.size()); } return userService.convert(users); } @RequestMapping({ "/delOrgUserByOrdId" }) @ResponseBody public Object delOrgUserByOrdId(HttpServletRequest request){ Map map = new HashMap(); String orgId = request.getParameter("orgId"); String userId = request.getParameter("userId"); Set<User> setUser = new HashSet<User>(); PageRequest pageRequest = this.getPage(request); Page<User> users = new Page<User>(pageRequest); boolean flag = false; if(null != orgId){ OrgInfo org = orgService.getOrgById(Long.valueOf(orgId)); setUser = org.getUsers(); if(null != userId){ User user = userService.getUser(Long.valueOf(userId)); if(setUser.contains(user)){ setUser.remove(user); } org.setUsers(setUser); boolean flag1 = orgService.updateOrg(org); if(flag1){ user.setWhetherDelete(true); flag = userService.updateUser(user); } } } if(flag){ map.put("flag", flag); map.put("info", "数据删除成功!"); }else { map.put("flag", flag); map.put("info", "数据删除失败!"); } return map; } @RequestMapping({ "/isExistNext" }) @ResponseBody public Object isExistNext(HttpServletRequest request) { String orgId = request.getParameter("orgId"); Map result = new HashMap(); List list = orgService.getChildOrgById(Long.valueOf(orgId)); if (null != list && list.size()>0) { if (list.size() > 0) { result.put("flag", false); result.put("info", "当前菜单存在子菜单,无法进行删除操作!"); } else { result.put("flag", true); } } else { OrgInfo orgInfo = orgService.getOrgById(Integer.valueOf(orgId)); Set<User> userSet = orgInfo.getUsers(); if(null != userSet && userSet.size()>0){ result.put("flag", false); result.put("info", "当前部门存在用户,无法进行删除操作!"); }else { result.put("flag", true); } } return result; } /** * 根据id删除 * @param request * @param response * @return */ @RequestMapping("/deleteOrg") @ResponseBody public Object deleteOrg(HttpServletRequest request, HttpServletResponse response){ Map result = new HashMap(); String orgId = request.getParameter("ids"); if(null != orgId){ OrgInfo orginfo = orgService.get(Long.valueOf(orgId)); orginfo.setWhetherDelete(true); orgService.updateOrg(orginfo); result.put("flag", true); }else { result.put("flag", false); } return result; } @RequestMapping("/queryOrgById") @ResponseBody public Object queryOrgById(HttpServletRequest request, HttpServletResponse response) { String orgId = request.getParameter("orgId"); OrgInfo orgInfo = orgService.getOrgById(Long.valueOf(orgId)); return orgInfo; } //查询所有部门信息,根据部门名称进行分组 @RequestMapping("/getOrgList") @ResponseBody public Object getOrgList(HttpServletRequest request){ String hql = "from OrgInfo group by name"; List<OrgInfo> listBo = orgService.getOrgInfoList(hql); List list = new ArrayList(); if(null != listBo){ for(int i=0;i<listBo.size();i++){ Map result = new HashMap(); result.put("id", listBo.get(i).getId()); result.put("text", listBo.get(i).getName()); if(!list.contains(result)){ list.add(result); } } } return list; } //查询所有部门信息,根据部门名称进行分组 @RequestMapping("/getDepartmentList") @ResponseBody public Object getDepartmentList(HttpServletRequest request){ String hql = "from OrgInfo group by name"; List<OrgInfo> listBo = orgService.getOrgInfoList(); List list = new ArrayList(); if(null != listBo){ for(OrgInfo orgInfo : listBo){ Map result = new HashMap(); if(0 == orgInfo.getParentId()){ result.put("id", orgInfo.getId()); result.put("text", orgInfo.getName()); result.put("children", getChildren(orgInfo.getId(), listBo)); if(!list.contains(result)){ list.add(result); } } } } return list; } @RequestMapping("/setOrgRoles/{id}") @ResponseBody public Object saveUserRoles(@PathVariable long id,HttpServletRequest request){ OrgInfo orgInfo = orgService.getOrgById(id); Map<String, Object> map = new HashMap<String, Object>(); String ids = request.getParameter("ids"); String[] idses = ids.split(","); Long[] longs = new Long[idses.length]; for (int i=0;i<idses.length;i++){ longs[i] = Long.parseLong(idses[i].toString()); } boolean flag = orgService.setOrg_roles(orgInfo,longs); if (flag){ map.put("flag", true); map.put("info", "部门角色分配成功!"); }else{ map.put("flag", false); map.put("info", "部门角色分配失败!"); } return map; } }