DistributionStatsController.java 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package cn.com.lzt.distributionstats.controller;
  2. import cn.com.lzt.attendance.dao.AttendanceStatsMinidaoDao;
  3. import cn.com.lzt.common.entity.ChartMultLineDto;
  4. import cn.com.lzt.common.entity.ChartSeriesDto;
  5. import cn.com.lzt.common.entity.DataDto;
  6. import cn.com.lzt.common.entity.DepartDto;
  7. import cn.com.lzt.common.util.DataUtil;
  8. import cn.com.lzt.common.util.ExportExcel;
  9. import cn.com.lzt.distributionstats.dao.DistributionStatsMinidaoDao;
  10. import cn.com.lzt.distributionstats.dto.DistributionDto;
  11. import cn.com.lzt.distributionstats.service.DistributionStatsServiceI;
  12. import org.apache.log4j.Logger;
  13. import org.jeecgframework.core.common.controller.BaseController;
  14. import org.jeecgframework.core.util.JeecgDataAutorUtils;
  15. import org.jeecgframework.core.util.ResourceUtil;
  16. import org.jeecgframework.core.util.StringUtil;
  17. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  18. import org.jeecgframework.web.system.pojo.base.TSUser;
  19. import org.jeecgframework.web.system.service.SystemService;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.stereotype.Controller;
  22. import org.springframework.web.bind.annotation.RequestMapping;
  23. import org.springframework.web.bind.annotation.ResponseBody;
  24. import org.springframework.web.servlet.ModelAndView;
  25. import javax.servlet.http.HttpServletRequest;
  26. import javax.servlet.http.HttpServletResponse;
  27. import javax.validation.Validator;
  28. import java.util.*;
  29. /**
  30. * @Title: Controller
  31. * @Description: 岗位人力统计
  32. * @author onlineGenerator
  33. * @date 2017-10-24 16:38:50
  34. * @version V1.0
  35. *
  36. */
  37. @Controller
  38. @RequestMapping("/distributionStatsController")
  39. public class DistributionStatsController extends BaseController {
  40. /**
  41. * Logger for this class
  42. */
  43. private static final Logger logger = Logger.getLogger(DistributionStatsController.class);
  44. //用户浏览器统计分析的国际化KEY
  45. private static final String USER_BROWSER_ANALYSIS = "user.browser.analysis";
  46. @Autowired
  47. private DistributionStatsServiceI statsService;
  48. @Autowired
  49. private SystemService systemService;
  50. @Autowired
  51. private Validator validator;
  52. @Autowired
  53. private DistributionStatsMinidaoDao distributionStatsMinidaoDao;
  54. @Autowired
  55. private AttendanceStatsMinidaoDao statsMinidaoDao;
  56. /**
  57. * 岗位人员统计页面
  58. *
  59. * @return
  60. */
  61. @RequestMapping(params = "distributionStats")
  62. public ModelAndView statisticTabs(HttpServletRequest request) {
  63. ModelAndView mav = new ModelAndView();
  64. Calendar c = Calendar.getInstance();
  65. mav.addObject("curYear",c.get(Calendar.YEAR)+"");
  66. int month = c.get(Calendar.MONTH);
  67. if(month > 9){
  68. mav.addObject("curMonth", c.get(Calendar.MONTH)+"");
  69. }else if(month == 0){
  70. mav.addObject("curYear",(c.get(Calendar.YEAR)-1)+"");
  71. mav.addObject("curMonth", "12");
  72. }else{
  73. mav.addObject("curMonth", "0"+c.get(Calendar.MONTH));
  74. }
  75. TSUser user = (TSUser) request.getSession().getAttribute(ResourceUtil.LOCAL_CLINET_USER);
  76. //查询用户角色
  77. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  78. DepartDto ddto = new DepartDto();
  79. ddto.setUid(user.getId());
  80. List<DepartDto> list = statsMinidaoDao.getUserDepart(ddto,authSql);
  81. mav.addObject("departList", list);
  82. mav.setViewName("cn/com/lzt/distributionstats/distributionStats");
  83. return mav;
  84. }
  85. /**
  86. * 岗位人员统计数据json
  87. * @param request
  88. * @param statasEntity
  89. * @return
  90. */
  91. @RequestMapping(params="distributionStatsData")
  92. @ResponseBody
  93. public Map<String,Object> distributionStatsData(HttpServletRequest request,DistributionDto distributionEntity) {
  94. Map<String,Object> result = new HashMap<String,Object>();
  95. List<String> xAxisData = new ArrayList<String>();
  96. List<String> yearMonths = new ArrayList<String>();
  97. List<DistributionDto> statsList = new ArrayList<DistributionDto>();
  98. //如果是月频,需要查询某年某月
  99. if(distributionEntity.getAttType() == 0){
  100. yearMonths.add(distributionEntity.getAttYear()+"-"+distributionEntity.getAttMonth());
  101. }else if(distributionEntity.getAttType() == 1){
  102. yearMonths = DataUtil.getYearMonthList(distributionEntity.getAttYear(), distributionEntity.getAttQuarters());
  103. }
  104. distributionEntity.setYearMonthList(yearMonths);
  105. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  106. MiniDaoPage<DistributionDto> list = new MiniDaoPage<DistributionDto>();
  107. if(!StringUtil.isEmpty(distributionEntity.getPid())){
  108. list = distributionStatsMinidaoDao.distributionStatsPdData(distributionEntity, authSql);
  109. }else{
  110. list = distributionStatsMinidaoDao.distributionStatsData(distributionEntity, authSql);
  111. }
  112. statsList = list.getResults();
  113. for(DistributionDto stats : statsList){
  114. xAxisData.add(stats.getDepartName());
  115. }
  116. ArrayList<ChartSeriesDto> series = new ArrayList<ChartSeriesDto>();//series值
  117. ChartSeriesDto csdto = new ChartSeriesDto();
  118. List<DataDto> datalist = new ArrayList<DataDto>();
  119. List<Map<String,Object>> obj = new ArrayList<Map<String,Object>>();
  120. Integer totalPeople = 0;
  121. for(int i= 0 ; i < statsList.size() ; i++){
  122. DataDto dd = new DataDto();
  123. dd.setName(statsList.get(i).getDepartName());
  124. dd.setValue(statsList.get(i).getPeopleNum().toString());
  125. datalist.add(dd);
  126. Map<String,Object> objmap = new HashMap<String, Object>();
  127. objmap.put("name", statsList.get(i).getDepartName());
  128. objmap.put("value", statsList.get(i).getPeopleNum());
  129. obj.add(objmap);
  130. totalPeople += statsList.get(i).getPeopleNum();
  131. }
  132. csdto.setData(datalist.toArray());
  133. series.add(csdto);
  134. ChartMultLineDto cmlDto = new ChartMultLineDto();
  135. cmlDto.setLegend(xAxisData.toArray());
  136. cmlDto.setxAxisData(xAxisData.toArray());
  137. cmlDto.setSeries(series);
  138. if( statsList== null || statsList.size() == 0){
  139. cmlDto.setNoData(true);
  140. }
  141. result.put("cdata", cmlDto);
  142. result.put("tdata", statsList);
  143. result.put("datamap", obj);
  144. result.put("totalPeople", totalPeople);
  145. request.getSession().setAttribute("distributionStats", statsList);
  146. return result;
  147. }
  148. /**
  149. * 项目岗位人员统计数据json--首页
  150. * @param request
  151. * @param statasEntity
  152. * @return
  153. */
  154. @RequestMapping(params="distributionStatsProsData")
  155. @ResponseBody
  156. public Map<String,Object> distributionStatsProsData(HttpServletRequest request,DistributionDto distributionEntity) {
  157. Map<String,Object> result = new HashMap<String,Object>();
  158. List<String> xAxisData = new ArrayList<String>();
  159. List<String> yearMonths = new ArrayList<String>();
  160. List<DistributionDto> statsList = new ArrayList<DistributionDto>();
  161. //如果是月频,需要查询某年某月
  162. if(distributionEntity.getAttType() == 0){
  163. yearMonths.add(distributionEntity.getAttYear()+"-"+distributionEntity.getAttMonth());
  164. }else if(distributionEntity.getAttType() == 1){
  165. yearMonths = DataUtil.getYearMonthList(distributionEntity.getAttYear(), distributionEntity.getAttQuarters());
  166. }
  167. distributionEntity.setYearMonthList(yearMonths);
  168. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  169. List<DistributionDto> list = distributionStatsMinidaoDao.distributionStatsProsData(distributionEntity, authSql);
  170. result.put("projects", list);
  171. return result;
  172. }
  173. /**
  174. * 岗位人力统计
  175. * @param request
  176. * @param statasEntity
  177. * @return
  178. */
  179. @RequestMapping(params="distributionStatsTaskData")
  180. @ResponseBody
  181. public void distributionStatsTaskData(HttpServletRequest request) {
  182. String attmonth = request.getParameter("attMonth");
  183. statsService.distributionStatsTaskData(attmonth);
  184. }
  185. /**
  186. * 导出
  187. * @param exceltitles
  188. * @param request
  189. * @param response
  190. * @throws Exception
  191. */
  192. @RequestMapping(params = "exportExcel")
  193. @ResponseBody
  194. public void exportExcel(String exceltitles,String exceltitleIds ,Integer flag,HttpServletRequest request,
  195. HttpServletResponse response) throws Exception{
  196. @SuppressWarnings("unchecked")
  197. List<Object> dataList = (List<Object>)request.getSession().getAttribute("distributionStats");
  198. ExportExcel ex = new ExportExcel("岗位人力统计", exceltitles.split(","), "岗位人力统计", dataList,exceltitleIds.split(","));
  199. ex.export(response);
  200. }
  201. }