package cn.com.lzt.distributionstats.controller; import cn.com.lzt.attendance.dao.AttendanceStatsMinidaoDao; import cn.com.lzt.common.entity.ChartMultLineDto; import cn.com.lzt.common.entity.ChartSeriesDto; import cn.com.lzt.common.entity.DataDto; import cn.com.lzt.common.entity.DepartDto; import cn.com.lzt.common.util.DataUtil; import cn.com.lzt.common.util.ExportExcel; import cn.com.lzt.distributionstats.dao.DistributionStatsMinidaoDao; import cn.com.lzt.distributionstats.dto.DistributionDto; import cn.com.lzt.distributionstats.service.DistributionStatsServiceI; import org.apache.log4j.Logger; import org.jeecgframework.core.common.controller.BaseController; import org.jeecgframework.core.util.JeecgDataAutorUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.minidao.pojo.MiniDaoPage; 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 javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Validator; import java.util.*; /** * @Title: Controller * @Description: 岗位人力统计 * @author onlineGenerator * @date 2017-10-24 16:38:50 * @version V1.0 * */ @Controller @RequestMapping("/distributionStatsController") public class DistributionStatsController extends BaseController { /** * Logger for this class */ private static final Logger logger = Logger.getLogger(DistributionStatsController.class); //用户浏览器统计分析的国际化KEY private static final String USER_BROWSER_ANALYSIS = "user.browser.analysis"; @Autowired private DistributionStatsServiceI statsService; @Autowired private SystemService systemService; @Autowired private Validator validator; @Autowired private DistributionStatsMinidaoDao distributionStatsMinidaoDao; @Autowired private AttendanceStatsMinidaoDao statsMinidaoDao; /** * 岗位人员统计页面 * * @return */ @RequestMapping(params = "distributionStats") public ModelAndView statisticTabs(HttpServletRequest request) { ModelAndView mav = new ModelAndView(); Calendar c = Calendar.getInstance(); mav.addObject("curYear",c.get(Calendar.YEAR)+""); int month = c.get(Calendar.MONTH); if(month > 9){ mav.addObject("curMonth", c.get(Calendar.MONTH)+""); }else if(month == 0){ mav.addObject("curYear",(c.get(Calendar.YEAR)-1)+""); mav.addObject("curMonth", "12"); }else{ mav.addObject("curMonth", "0"+c.get(Calendar.MONTH)); } TSUser user = (TSUser) request.getSession().getAttribute(ResourceUtil.LOCAL_CLINET_USER); //查询用户角色 String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); DepartDto ddto = new DepartDto(); ddto.setUid(user.getId()); List list = statsMinidaoDao.getUserDepart(ddto,authSql); mav.addObject("departList", list); mav.setViewName("cn/com/lzt/distributionstats/distributionStats"); return mav; } /** * 岗位人员统计数据json * @param request * @param statasEntity * @return */ @RequestMapping(params="distributionStatsData") @ResponseBody public Map distributionStatsData(HttpServletRequest request,DistributionDto distributionEntity) { Map result = new HashMap(); List xAxisData = new ArrayList(); List yearMonths = new ArrayList(); List statsList = new ArrayList(); //如果是月频,需要查询某年某月 if(distributionEntity.getAttType() == 0){ yearMonths.add(distributionEntity.getAttYear()+"-"+distributionEntity.getAttMonth()); }else if(distributionEntity.getAttType() == 1){ yearMonths = DataUtil.getYearMonthList(distributionEntity.getAttYear(), distributionEntity.getAttQuarters()); } distributionEntity.setYearMonthList(yearMonths); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); MiniDaoPage list = new MiniDaoPage(); if(!StringUtil.isEmpty(distributionEntity.getPid())){ list = distributionStatsMinidaoDao.distributionStatsPdData(distributionEntity, authSql); }else{ list = distributionStatsMinidaoDao.distributionStatsData(distributionEntity, authSql); } statsList = list.getResults(); for(DistributionDto stats : statsList){ xAxisData.add(stats.getDepartName()); } ArrayList series = new ArrayList();//series值 ChartSeriesDto csdto = new ChartSeriesDto(); List datalist = new ArrayList(); List> obj = new ArrayList>(); Integer totalPeople = 0; for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setName(statsList.get(i).getDepartName()); dd.setValue(statsList.get(i).getPeopleNum().toString()); datalist.add(dd); Map objmap = new HashMap(); objmap.put("name", statsList.get(i).getDepartName()); objmap.put("value", statsList.get(i).getPeopleNum()); obj.add(objmap); totalPeople += statsList.get(i).getPeopleNum(); } csdto.setData(datalist.toArray()); series.add(csdto); ChartMultLineDto cmlDto = new ChartMultLineDto(); cmlDto.setLegend(xAxisData.toArray()); cmlDto.setxAxisData(xAxisData.toArray()); cmlDto.setSeries(series); if( statsList== null || statsList.size() == 0){ cmlDto.setNoData(true); } result.put("cdata", cmlDto); result.put("tdata", statsList); result.put("datamap", obj); result.put("totalPeople", totalPeople); request.getSession().setAttribute("distributionStats", statsList); return result; } /** * 项目岗位人员统计数据json--首页 * @param request * @param statasEntity * @return */ @RequestMapping(params="distributionStatsProsData") @ResponseBody public Map distributionStatsProsData(HttpServletRequest request,DistributionDto distributionEntity) { Map result = new HashMap(); List xAxisData = new ArrayList(); List yearMonths = new ArrayList(); List statsList = new ArrayList(); //如果是月频,需要查询某年某月 if(distributionEntity.getAttType() == 0){ yearMonths.add(distributionEntity.getAttYear()+"-"+distributionEntity.getAttMonth()); }else if(distributionEntity.getAttType() == 1){ yearMonths = DataUtil.getYearMonthList(distributionEntity.getAttYear(), distributionEntity.getAttQuarters()); } distributionEntity.setYearMonthList(yearMonths); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); List list = distributionStatsMinidaoDao.distributionStatsProsData(distributionEntity, authSql); result.put("projects", list); return result; } /** * 岗位人力统计 * @param request * @param statasEntity * @return */ @RequestMapping(params="distributionStatsTaskData") @ResponseBody public void distributionStatsTaskData(HttpServletRequest request) { String attmonth = request.getParameter("attMonth"); statsService.distributionStatsTaskData(attmonth); } /** * 导出 * @param exceltitles * @param request * @param response * @throws Exception */ @RequestMapping(params = "exportExcel") @ResponseBody public void exportExcel(String exceltitles,String exceltitleIds ,Integer flag,HttpServletRequest request, HttpServletResponse response) throws Exception{ @SuppressWarnings("unchecked") List dataList = (List)request.getSession().getAttribute("distributionStats"); ExportExcel ex = new ExportExcel("岗位人力统计", exceltitles.split(","), "岗位人力统计", dataList,exceltitleIds.split(",")); ex.export(response); } }