package cn.com.lzt.homepage.controller; import java.util.*; import javax.servlet.http.HttpServletRequest; import org.jeecgframework.core.util.JeecgDataAutorUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.web.system.pojo.base.TSUser; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import cn.com.lzt.arrangeduty.dto.ProjectDepartDto; import cn.com.lzt.attendance.dao.AttendanceStatsMinidaoDao; import cn.com.lzt.common.entity.UserRoleDto; import cn.com.lzt.common.util.Constants; import cn.com.lzt.dialogDeal.service.DialogDealServiceI; import cn.com.lzt.homepage.dto.DashboardDto; import cn.com.lzt.homepage.service.HomepageServiceI; /** * @author onlineGenerator * @version V1.0 * @Title: Controller * @Description: 首页跳转 * @date 2017-10-24 16:38:50 */ @Controller @RequestMapping("/homepageController") public class HomePageController { @Autowired DialogDealServiceI dialogDealServiceI; @Autowired private HomepageServiceI homepageServiceI; @Autowired private SystemService systemService; /** * 首页页面 * * @return */ @RequestMapping(params = "homepage") public ModelAndView statisticTabs(HttpServletRequest request) { return new ModelAndView("cn/com/lzt/homepage/homepage"); } @RequestMapping(params = "workflowboard") public ModelAndView workflowboard(HttpServletRequest request) { ModelAndView mav = new ModelAndView(); mav.setViewName("cn/com/lzt/homepage/workflowboard"); TSUser user = ResourceUtil.getSessionUser(); if (user == null) { return null; } String funHRSql = "select f.functionname fname,f.functionurl furl ,f.function_icon_style ficon , pf.functionname pfname ,f.remark remark from t_s_function f \n" + "left join t_s_function pf on pf.id = f.parentfunctionid \n" + "where f.id in(\n" + "select functionid from t_s_role_function where roleid in (\n" + "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-人事签报'\n" + "order by f.functionorder*1"; String funFISql = "select f.functionname fname,f.functionurl furl ,f.function_icon_style ficon , pf.functionname pfname ,f.remark remark from t_s_function f \n" + "left join t_s_function pf on pf.id = f.parentfunctionid \n" + "where f.id in(\n" + "select functionid from t_s_role_function where roleid in (\n" + "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-财务签报'\n" + "order by f.functionorder*1"; String funOtherSql = "select f.functionname fname,f.functionurl furl ,f.function_icon_style ficon , pf.functionname pfname,f.remark remark from t_s_function f \n" + "left join t_s_function pf on pf.id = f.parentfunctionid \n" + "where f.id in(\n" + "select functionid from t_s_role_function where roleid in (\n" + "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-其他签报'\n" + "order by f.functionorder*1"; String funSCMSql = "select f.functionname fname,f.functionurl furl ,f.function_icon_style ficon , pf.functionname pfname,f.remark remark from t_s_function f \n" + "left join t_s_function pf on pf.id = f.parentfunctionid \n" + "where f.id in(\n" + "select functionid from t_s_role_function where roleid in (\n" + "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-物料签报'\n" + "order by f.functionorder*1"; //办公类签报(add-刘梦祥-2021年11月2日15:24:45) String funWORKSql = "select f.functionname fname,f.functionurl furl ,f.function_icon_style ficon , pf.functionname pfname,f.remark remark from t_s_function f \n" + "left join t_s_function pf on pf.id = f.parentfunctionid \n" + "where f.id in(\n" + "select functionid from t_s_role_function where roleid in (\n" + "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-办公类签报'\n" + "order by f.functionorder*1"; String[] bg = {"bg-info", "bg-primary", "bg-success", "bg-warning"}; Map badgeNumberMap = new HashMap<>(); // 得到登录人所有的待处理个数 getBadgeAllNumberByUser(badgeNumberMap, user); List> funHRList = homepageServiceI.findForJdbc(funHRSql, user.getId()); funAllList(funHRList,badgeNumberMap,bg); List> funFIList = homepageServiceI.findForJdbc(funFISql, user.getId()); funAllList(funFIList,badgeNumberMap,bg); List> funOTHERList = homepageServiceI.findForJdbc(funOtherSql, user.getId()); funAllList(funOTHERList,badgeNumberMap,bg); List> funSCMList = homepageServiceI.findForJdbc(funSCMSql, user.getId()); funAllList(funSCMList,badgeNumberMap,bg); //办公类签报(add-刘梦祥-2021年11月2日15:24:45) List> funWORKList = homepageServiceI.findForJdbc(funWORKSql, user.getId()); funAllList(funWORKList,badgeNumberMap,bg); request.setAttribute("funHRList", funHRList); request.setAttribute("funFIList", funFIList); request.setAttribute("funSCMList", funSCMList); //办公类签报(add-刘梦祥-2021年11月2日15:24:45) request.setAttribute("funWORKList", funWORKList); request.setAttribute("funOTHERList", funOTHERList); return mav; } @RequestMapping(params = "getAllbadgeNumberMap") @ResponseBody public Map getAllbadgeNumberMap(){ TSUser user = ResourceUtil.getSessionUser(); Map badgeNumberMap = new HashMap<>(); getBadgeAllNumberByUser(badgeNumberMap, user); return badgeNumberMap; } public void funAllList(List> funList,Map badgeNumberMap,String[] bg){ for (int i = 0; i < funList.size(); i++) { if (badgeNumberMap.containsKey(String.valueOf(funList.get(i).get("fname")))) { funList.get(i).put("badgeNumber", badgeNumberMap.get(String.valueOf(funList.get(i).get("fname")))); } funList.get(i).put("fbg", bg[i % 4]); } } /** * 得到登录人所有的待处理个数 * * @param badgeNumberMap * @param user * @author 刘梦祥 * @Date 2022年1月10日13:27:02 */ public void getBadgeAllNumberByUser(Map badgeNumberMap, TSUser user) { // add-刘梦祥-2022年1月10日11:36:50-(查询所有的待处理条数) String sqlStr = "SELECT\n" + "\ttype,\n" + "\tCOUNT(id) sumNumber\n" + "FROM\n" + "\tt_b_request\n"; // 首先根据小程序登录用户的userid得到科室和职位 String sql = "SELECT\n" + "\ttsbu.id loginUserId,\n" + "\ttsuo.org_id orgId,\n" + "\ttbup.in_postid inPostId\n" + "FROM\n" + "\tt_s_base_user tsbu\n" + "LEFT JOIN t_s_user_org tsuo ON tsuo.user_id = tsbu.id\n" + "LEFT JOIN t_bus_user_personnel tbup ON tbup.userid = tsuo.user_id\n" + "WHERE\n" + "\ttsbu.id = ?;"; Map uopData = systemService.findOneForJdbc(sql, user.getId()); if (uopData != null) { sqlStr += " where `status` = \"待审批\"\n" + "AND current_ruler_id IN (\n" + "\t'{\"userId\":\"" + user.getId() + "\"}',\n" + "\t'{\"departId\":\"" + uopData.get("orgId") + "\",\"inPostid\":\"" + uopData.get("inPostId") + "\"}'\n" + ") "; } sqlStr += " GROUP BY type\n"; // 执行sql得到总条数 List> totalData = systemService.findForJdbc(sqlStr); for (Map totalDataItem : totalData) { if (totalDataItem.containsKey("type") && totalDataItem.containsKey("sumNumber")) { String OAType = ""; switch (String.valueOf(totalDataItem.get("type"))) { case "加班签报审批": OAType = "加班申请"; break; case "加班审核流程": OAType = "加班审核"; break; case "休假签报": OAType = "休假申请"; break; case "物料申购(维修类)": case "物料申购(非维修类)": OAType = "物料申购"; break; case "物料申购(办公室)": OAType = "物料申购(办公室)"; break; case "事前申请签报审批": OAType = "事前申请"; break; case "通知发布签报": OAType = "通知公告"; break; case "公务活动申请签报": OAType = "公务活动申请"; break; case "用印申请签报审批": OAType = "用印申请"; break; case "督查奖惩申请": OAType = "督查奖惩申请"; break; default: OAType = String.valueOf(totalDataItem.get("type")); break; } if (badgeNumberMap.containsKey(OAType)) { badgeNumberMap.put(OAType, badgeNumberMap.get(OAType) + Integer.parseInt(String.valueOf(totalDataItem.get("sumNumber")))); } else { badgeNumberMap.put(OAType, Integer.parseInt(String.valueOf(totalDataItem.get("sumNumber")))); } } } } /** * 更新用戶看板配置 * * @param request * @param ids * @param sortNums * @param requiredFlags * @param checkedStatus * @return */ @RequestMapping(params = "updateBoards") @ResponseBody public Map updateBoards(HttpServletRequest request, String ids, String sortNums, String requiredFlags, String checkedStatus) { TSUser user = (TSUser) request.getSession().getAttribute(ResourceUtil.LOCAL_CLINET_USER); Map results = homepageServiceI.updateUserBoards(ids.split(","), sortNums.split(","), checkedStatus.split(","), requiredFlags.split(","), user); return results; } }