HomePageController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. package cn.com.lzt.homepage.controller;
  2. import java.util.*;
  3. import javax.servlet.http.HttpServletRequest;
  4. import org.jeecgframework.core.util.JeecgDataAutorUtils;
  5. import org.jeecgframework.core.util.ResourceUtil;
  6. import org.jeecgframework.web.system.pojo.base.TSUser;
  7. import org.jeecgframework.web.system.service.SystemService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. import org.springframework.web.bind.annotation.ResponseBody;
  12. import org.springframework.web.servlet.ModelAndView;
  13. import cn.com.lzt.arrangeduty.dto.ProjectDepartDto;
  14. import cn.com.lzt.attendance.dao.AttendanceStatsMinidaoDao;
  15. import cn.com.lzt.common.entity.UserRoleDto;
  16. import cn.com.lzt.common.util.Constants;
  17. import cn.com.lzt.dialogDeal.service.DialogDealServiceI;
  18. import cn.com.lzt.homepage.dto.DashboardDto;
  19. import cn.com.lzt.homepage.service.HomepageServiceI;
  20. /**
  21. * @author onlineGenerator
  22. * @version V1.0
  23. * @Title: Controller
  24. * @Description: 首页跳转
  25. * @date 2017-10-24 16:38:50
  26. */
  27. @Controller
  28. @RequestMapping("/homepageController")
  29. public class HomePageController {
  30. @Autowired
  31. DialogDealServiceI dialogDealServiceI;
  32. @Autowired
  33. private HomepageServiceI homepageServiceI;
  34. @Autowired
  35. private SystemService systemService;
  36. /**
  37. * 首页页面
  38. *
  39. * @return
  40. */
  41. @RequestMapping(params = "homepage")
  42. public ModelAndView statisticTabs(HttpServletRequest request) {
  43. return new ModelAndView("cn/com/lzt/homepage/homepage");
  44. }
  45. @RequestMapping(params = "workflowboard")
  46. public ModelAndView workflowboard(HttpServletRequest request) {
  47. ModelAndView mav = new ModelAndView();
  48. mav.setViewName("cn/com/lzt/homepage/workflowboard");
  49. TSUser user = ResourceUtil.getSessionUser();
  50. if (user == null) {
  51. return null;
  52. }
  53. 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" +
  54. "left join t_s_function pf on pf.id = f.parentfunctionid \n" +
  55. "where f.id in(\n" +
  56. "select functionid from t_s_role_function where roleid in (\n" +
  57. "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-人事签报'\n" +
  58. "order by f.functionorder*1";
  59. 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" +
  60. "left join t_s_function pf on pf.id = f.parentfunctionid \n" +
  61. "where f.id in(\n" +
  62. "select functionid from t_s_role_function where roleid in (\n" +
  63. "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-财务签报'\n" +
  64. "order by f.functionorder*1";
  65. 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" +
  66. "left join t_s_function pf on pf.id = f.parentfunctionid \n" +
  67. "where f.id in(\n" +
  68. "select functionid from t_s_role_function where roleid in (\n" +
  69. "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-其他签报'\n" +
  70. "order by f.functionorder*1";
  71. 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" +
  72. "left join t_s_function pf on pf.id = f.parentfunctionid \n" +
  73. "where f.id in(\n" +
  74. "select functionid from t_s_role_function where roleid in (\n" +
  75. "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-物料签报'\n" +
  76. "order by f.functionorder*1";
  77. //办公类签报(add-刘梦祥-2021年11月2日15:24:45)
  78. 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" +
  79. "left join t_s_function pf on pf.id = f.parentfunctionid \n" +
  80. "where f.id in(\n" +
  81. "select functionid from t_s_role_function where roleid in (\n" +
  82. "select roleid from t_s_role_user where userid = ?) )and pf.functionname = '功能权限-办公类签报'\n" +
  83. "order by f.functionorder*1";
  84. String[] bg = {"bg-info", "bg-primary", "bg-success", "bg-warning"};
  85. Map<String, Integer> badgeNumberMap = new HashMap<>();
  86. // 得到登录人所有的待处理个数
  87. getBadgeAllNumberByUser(badgeNumberMap, user);
  88. List<Map<String, Object>> funHRList = homepageServiceI.findForJdbc(funHRSql, user.getId());
  89. funAllList(funHRList,badgeNumberMap,bg);
  90. List<Map<String, Object>> funFIList = homepageServiceI.findForJdbc(funFISql, user.getId());
  91. funAllList(funFIList,badgeNumberMap,bg);
  92. List<Map<String, Object>> funOTHERList = homepageServiceI.findForJdbc(funOtherSql, user.getId());
  93. funAllList(funOTHERList,badgeNumberMap,bg);
  94. List<Map<String, Object>> funSCMList = homepageServiceI.findForJdbc(funSCMSql, user.getId());
  95. funAllList(funSCMList,badgeNumberMap,bg);
  96. //办公类签报(add-刘梦祥-2021年11月2日15:24:45)
  97. List<Map<String, Object>> funWORKList = homepageServiceI.findForJdbc(funWORKSql, user.getId());
  98. funAllList(funWORKList,badgeNumberMap,bg);
  99. request.setAttribute("funHRList", funHRList);
  100. request.setAttribute("funFIList", funFIList);
  101. request.setAttribute("funSCMList", funSCMList);
  102. //办公类签报(add-刘梦祥-2021年11月2日15:24:45)
  103. request.setAttribute("funWORKList", funWORKList);
  104. request.setAttribute("funOTHERList", funOTHERList);
  105. return mav;
  106. }
  107. @RequestMapping(params = "getAllbadgeNumberMap")
  108. @ResponseBody
  109. public Map<String, Integer> getAllbadgeNumberMap(){
  110. TSUser user = ResourceUtil.getSessionUser();
  111. Map<String, Integer> badgeNumberMap = new HashMap<>();
  112. getBadgeAllNumberByUser(badgeNumberMap, user);
  113. return badgeNumberMap;
  114. }
  115. public void funAllList(List<Map<String, Object>> funList,Map<String, Integer> badgeNumberMap,String[] bg){
  116. for (int i = 0; i < funList.size(); i++) {
  117. if (badgeNumberMap.containsKey(String.valueOf(funList.get(i).get("fname")))) {
  118. funList.get(i).put("badgeNumber", badgeNumberMap.get(String.valueOf(funList.get(i).get("fname"))));
  119. }
  120. funList.get(i).put("fbg", bg[i % 4]);
  121. }
  122. }
  123. /**
  124. * 得到登录人所有的待处理个数
  125. *
  126. * @param badgeNumberMap
  127. * @param user
  128. * @author 刘梦祥
  129. * @Date 2022年1月10日13:27:02
  130. */
  131. public void getBadgeAllNumberByUser(Map<String, Integer> badgeNumberMap, TSUser user) {
  132. // add-刘梦祥-2022年1月10日11:36:50-(查询所有的待处理条数)
  133. String sqlStr = "SELECT\n" +
  134. "\ttype,\n" +
  135. "\tCOUNT(id) sumNumber\n" +
  136. "FROM\n" +
  137. "\tt_b_request\n";
  138. // 首先根据小程序登录用户的userid得到科室和职位
  139. String sql = "SELECT\n" +
  140. "\ttsbu.id loginUserId,\n" +
  141. "\ttsuo.org_id orgId,\n" +
  142. "\ttbup.in_postid inPostId\n" +
  143. "FROM\n" +
  144. "\tt_s_base_user tsbu\n" +
  145. "LEFT JOIN t_s_user_org tsuo ON tsuo.user_id = tsbu.id\n" +
  146. "LEFT JOIN t_bus_user_personnel tbup ON tbup.userid = tsuo.user_id\n" +
  147. "WHERE\n" +
  148. "\ttsbu.id = ?;";
  149. Map<String, Object> uopData = systemService.findOneForJdbc(sql, user.getId());
  150. if (uopData != null) {
  151. sqlStr += " where `status` = \"待审批\"\n" +
  152. "AND current_ruler_id IN (\n" +
  153. "\t'{\"userId\":\"" + user.getId() + "\"}',\n" +
  154. "\t'{\"departId\":\"" + uopData.get("orgId") + "\",\"inPostid\":\"" + uopData.get("inPostId") + "\"}'\n" +
  155. ") ";
  156. }
  157. sqlStr += " GROUP BY type\n";
  158. // 执行sql得到总条数
  159. List<Map<String, Object>> totalData = systemService.findForJdbc(sqlStr);
  160. for (Map<String, Object> totalDataItem : totalData) {
  161. if (totalDataItem.containsKey("type") && totalDataItem.containsKey("sumNumber")) {
  162. String OAType = "";
  163. switch (String.valueOf(totalDataItem.get("type"))) {
  164. case "加班签报审批":
  165. OAType = "加班申请";
  166. break;
  167. case "加班审核流程":
  168. OAType = "加班审核";
  169. break;
  170. case "休假签报":
  171. OAType = "休假申请";
  172. break;
  173. case "物料申购(维修类)":
  174. case "物料申购(非维修类)":
  175. OAType = "物料申购";
  176. break;
  177. case "物料申购(办公室)":
  178. OAType = "物料申购(办公室)";
  179. break;
  180. case "事前申请签报审批":
  181. OAType = "事前申请";
  182. break;
  183. case "通知发布签报":
  184. OAType = "通知公告";
  185. break;
  186. case "公务活动申请签报":
  187. OAType = "公务活动申请";
  188. break;
  189. case "用印申请签报审批":
  190. OAType = "用印申请";
  191. break;
  192. case "督查奖惩申请":
  193. OAType = "督查奖惩申请";
  194. break;
  195. default:
  196. OAType = String.valueOf(totalDataItem.get("type"));
  197. break;
  198. }
  199. if (badgeNumberMap.containsKey(OAType)) {
  200. badgeNumberMap.put(OAType, badgeNumberMap.get(OAType) + Integer.parseInt(String.valueOf(totalDataItem.get("sumNumber"))));
  201. } else {
  202. badgeNumberMap.put(OAType, Integer.parseInt(String.valueOf(totalDataItem.get("sumNumber"))));
  203. }
  204. }
  205. }
  206. }
  207. /**
  208. * 更新用戶看板配置
  209. *
  210. * @param request
  211. * @param ids
  212. * @param sortNums
  213. * @param requiredFlags
  214. * @param checkedStatus
  215. * @return
  216. */
  217. @RequestMapping(params = "updateBoards")
  218. @ResponseBody
  219. public Map<String, Object> updateBoards(HttpServletRequest request, String ids, String sortNums, String requiredFlags, String checkedStatus) {
  220. TSUser user = (TSUser) request.getSession().getAttribute(ResourceUtil.LOCAL_CLINET_USER);
  221. Map<String, Object> results = homepageServiceI.updateUserBoards(ids.split(","), sortNums.split(","), checkedStatus.split(","), requiredFlags.split(","), user);
  222. return results;
  223. }
  224. }