package com.xcgl.reports.contoller; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtil; import org.apache.log4j.Logger; import org.jeecgframework.core.common.model.json.DataGrid; import org.jeecgframework.core.util.DataUtils; import org.jeecgframework.core.util.DateUtils; import org.jeecgframework.core.util.JeecgDataAutorUtils; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.minidao.pojo.MiniDaoPage; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants; import org.jeecgframework.tag.core.easyui.TagUtil; import org.jeecgframework.web.system.service.SystemService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.xcgl.reports.dao.XcglRptDao; import com.xcgl.reports.dto.ActivitiOvertimeDto; import com.xcgl.reports.dto.ActivitiOvertimeSumDto; import com.xcgl.reports.dto.ActivitiStats; import com.xcgl.reports.dto.TaskStats; 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.util.DataUtil; import cn.com.lzt.common.util.ExportExcel; import cn.com.lzt.tools.DecimalUtils; import cn.com.lzt.userstats.dto.UserEntity; @Controller @RequestMapping("/xcglRptController") public class XcglRptController { @Autowired private XcglRptDao rptDao; @Autowired private SystemService systemService; private static final Logger logger = Logger.getLogger(XcglRptController.class); @RequestMapping(params = "task4managerRptDemo") public ModelAndView task4managerRptDemo(HttpServletRequest request) { return new ModelAndView("com/xcgl/reports/task4managerRptDemo"); } @RequestMapping(params = "task4ProjectRptDemo") public ModelAndView task4ProjectRptDemo(HttpServletRequest request) { return new ModelAndView("com/xcgl/reports/task4ProjectRptDemo"); } @RequestMapping(params = "task4EvaluateRptDemo") public ModelAndView task4EvaluateRptDemo(HttpServletRequest request) { return new ModelAndView("com/xcgl/reports/task4EvaluateRptDemo"); } // @RequestMapping(params = "shuiyishinenghaoDemo") // public ModelAndView shuiyishinenghaoDemo(HttpServletRequest request) { // return new ModelAndView("cn/com/lzt/report/shuiyishinenghaoDemo"); // } // // @RequestMapping(params = "diantiguzhangDemo") // public ModelAndView diantiguzhangDemo(HttpServletRequest request) { // return new ModelAndView("cn/com/lzt/report/diantiguzhangDemo"); // } // // @RequestMapping(params = "menjincesuoDemo") // public ModelAndView menjincesuoDemo(HttpServletRequest request) { // return new ModelAndView("cn/com/lzt/report/menjincesuoDemo"); // } // // @RequestMapping(params = "diantiguzhangYueDemo") // public ModelAndView diantiguzhangYueDemo(HttpServletRequest request) { // return new ModelAndView("cn/com/lzt/report/diantiguzhangYueDemo"); // } // // @RequestMapping(params = "kaoqintiaozhengDemo") // public ModelAndView kaoqintiaozhengdemo(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); // // //默认HR权限 // String rolefalg ="1"; // //查询用户角色 // String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); // List userRolelist = statsMinidaoDao.getUserRoleList(user.getId(),authSql); // for(UserRoleDto urdto : userRolelist){ // if(Constants.USER_ROLE_HR.contains(urdto.getRolecode())){ // rolefalg = "1"; // break; // } // if(Constants.USER_ROLE_DEPT.contains(urdto.getRolecode())){ // rolefalg = "2"; // break; // } // } // if(rolefalg.equals("2")){ // List projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId(); // mav.addObject("departList", projectDepartDtoList); // } // mav.addObject("roleFlag", rolefalg); // mav.setViewName("cn/com/lzt/report/kaoqintiaozhengdemo"); // return mav; // } // // // @RequestMapping(params = "getKaoQinTiaoZhengTime") // @ResponseBody // public Map getKaoQinTiaoZhengTime(HttpServletRequest request,WageDto wageEntity) { // Map result = new HashMap(); // List xAxisData = new ArrayList(); // String month = wageEntity.getAttYear()+"-"+wageEntity.getAttMonth(); // // List kaoqinDtoList = rptDao.getKaoQinPaihangTime(month); // // ArrayList series = new ArrayList();//series值 // ChartSeriesDto csdto = new ChartSeriesDto(); // csdto.setName("考勤修改时长(分钟)"); // csdto.setType("bar"); // csdto.setBarMaxWidth(30); // List datalist = new ArrayList(); // for(int i= 0 ; i < kaoqinDtoList.size() ; i++){ // DataDto dd = new DataDto(); // dd.setValue(String.valueOf(kaoqinDtoList.get(i).getTotal())); // datalist.add(dd); // xAxisData.add(kaoqinDtoList.get(i).getName()); // } // csdto.setData(datalist.toArray()); // series.add(csdto); // ChartMultLineDto cmlDto = new ChartMultLineDto(); // cmlDto.setxAxisData(xAxisData.toArray()); // cmlDto.setSeries(series); // if( kaoqinDtoList== null || kaoqinDtoList.size() == 0){ // cmlDto.setNoData(true); // } // result.put("cdata", cmlDto); // result.put("tdata", kaoqinDtoList); // request.getSession().setAttribute("kaoqinModify", kaoqinDtoList); // return result; // } // // @RequestMapping(params = "kaoqintiaozhengCountDemo") // public ModelAndView kaoqintiaozhengCountdemo(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); // // //默认HR权限 // String rolefalg ="1"; // //查询用户角色 // String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); // List userRolelist = statsMinidaoDao.getUserRoleList(user.getId(),authSql); // for(UserRoleDto urdto : userRolelist){ // if(Constants.USER_ROLE_HR.contains(urdto.getRolecode())){ // rolefalg = "1"; // break; // } // if(Constants.USER_ROLE_DEPT.contains(urdto.getRolecode())){ // rolefalg = "2"; // break; // } // } // if(rolefalg.equals("2")){ // List projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId(); // mav.addObject("departList", projectDepartDtoList); // } // mav.addObject("roleFlag", rolefalg); // mav.setViewName("cn/com/lzt/report/kaoqintiaozhengCountdemo"); // return mav; // } // // // @RequestMapping(params = "getKaoQinTiaoZhengCount") // @ResponseBody // public Map getKaoQinTiaoZhengCount(HttpServletRequest request,WageDto wageEntity) { // Map result = new HashMap(); // List xAxisData = new ArrayList(); // String month = wageEntity.getAttYear()+"-"+wageEntity.getAttMonth(); // List kaoqinDtoList = new ArrayList(); // if(!StringUtil.isEmpty(wageEntity.getPid())){ // kaoqinDtoList = rptDao.getKaoQinPaihangCountProject(month, wageEntity.getPid()); // } // else if (!StringUtil.isEmpty(wageEntity.getDeptId())) { // kaoqinDtoList = rptDao.getKaoQinPaihangCountPerson(month, wageEntity.getDeptId()); // } // else // kaoqinDtoList = rptDao.getKaoQinPaihangCount(month); // // ArrayList series = new ArrayList();//series值 // ChartSeriesDto csdto = new ChartSeriesDto(); // csdto.setName("考勤修改次数(次)"); // csdto.setType("bar"); // csdto.setBarMaxWidth(30); // List datalist = new ArrayList(); // for(int i= 0 ; i < kaoqinDtoList.size() ; i++){ // DataDto dd = new DataDto(); // dd.setId(kaoqinDtoList.get(i).getId()); // dd.setValue(String.valueOf(kaoqinDtoList.get(i).getCount())); // datalist.add(dd); // xAxisData.add(kaoqinDtoList.get(i).getName()); // } // csdto.setData(datalist.toArray()); // series.add(csdto); // ChartMultLineDto cmlDto = new ChartMultLineDto(); // cmlDto.setxAxisData(xAxisData.toArray()); // cmlDto.setSeries(series); // if( kaoqinDtoList== null || kaoqinDtoList.size() == 0){ // cmlDto.setNoData(true); // } // result.put("cdata", cmlDto); // result.put("tdata", kaoqinDtoList); // request.getSession().setAttribute("kaoqinModify", kaoqinDtoList); // return result; // } @RequestMapping(params = "taskstats-org") public ModelAndView taskstatsorg(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); // // //默认HR权限 // String rolefalg ="1"; // //查询用户角色 // String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); // List userRolelist = statsMinidaoDao.getUserRoleList(user.getId(),authSql); // for(UserRoleDto urdto : userRolelist){ // if(Constants.USER_ROLE_HR.contains(urdto.getRolecode())){ // rolefalg = "1"; // break; // } // if(Constants.USER_ROLE_DEPT.contains(urdto.getRolecode())){ // rolefalg = "2"; // break; // } // } // if(rolefalg.equals("2")){ // List projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId(); // mav.addObject("departList", projectDepartDtoList); // } // mav.addObject("roleFlag", rolefalg); mav.setViewName("com/xcgl/reports/taskstats-org"); return mav; } @RequestMapping(params="taskStatsOrgData") @ResponseBody public Map taskStatsOrgData(HttpServletRequest request,UserEntity userEntity) { Map result = new HashMap(); List xAxisData = new ArrayList(); List yearMonths = new ArrayList(); List statsList = new ArrayList(); List tData = new ArrayList(); //如果是月频,需要查询某年某月 if(userEntity.getAttType() == 0){ yearMonths.add(userEntity.getAttYear()+"-"+userEntity.getAttMonth()); }else if(userEntity.getAttType() == 1){ yearMonths = DataUtil.getYearMonthList(userEntity.getAttYear(), userEntity.getAttQuarters()); } userEntity.setYearMonthList(yearMonths); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); MiniDaoPage list = new MiniDaoPage(); list = rptDao.taskStatsOrgData(userEntity, authSql); statsList = list.getResults(); for(TaskStats stats : statsList){ xAxisData.add(stats.getName()); } ArrayList series = new ArrayList();//series值 ChartSeriesDto csdto = new ChartSeriesDto(); csdto.setName("工作数量"); csdto.setType("bar"); csdto.setBarWidth(12); List datalist = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getTaskTotal())); datalist.add(dd); } csdto.setData(datalist.toArray()); series.add(csdto); ChartSeriesDto csdto_nofinishnum = new ChartSeriesDto(); csdto_nofinishnum.setName("未完成工作数量"); csdto_nofinishnum.setType("bar"); csdto_nofinishnum.setBarWidth(12); List datalist_nofinishnum = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getNoFinishTaskTotal())); datalist_nofinishnum.add(dd); } csdto_nofinishnum.setData(datalist_nofinishnum.toArray()); series.add(csdto_nofinishnum); ChartSeriesDto csdto_nofinish = new ChartSeriesDto(); csdto_nofinish.setName("未完成率"); csdto_nofinish.setType("bar"); csdto_nofinish.setBarWidth(12); List datalist_nofinish = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(DecimalUtils.formatToStr( statsList.get(i).getNoFinishProportion().doubleValue())); datalist_nofinish.add(dd); } csdto_nofinish.setData(datalist_nofinish.toArray()); series.add(csdto_nofinish); ChartMultLineDto cmlDto = new ChartMultLineDto(); cmlDto.setxAxisData(xAxisData.toArray()); cmlDto.setSeries(series); if( statsList== null || statsList.size() == 0){ cmlDto.setNoData(true); } result.put("cdata", cmlDto); //statsList排序重置 for(int i = statsList.size()-1;i > -1;i--) { tData.add(statsList.get(i)); } result.put("tdata", tData); request.getSession().setAttribute("taskStats", statsList); return result; } @RequestMapping(params="taskStats-orguserdata") @ResponseBody public Map taskStatsorguserdata(HttpServletRequest request,UserEntity userEntity) { Map result = new HashMap(); List xAxisData = new ArrayList(); List yearMonths = new ArrayList(); List statsList = new ArrayList(); //如果是月频,需要查询某年某月 if(userEntity.getAttType() == 0){ yearMonths.add(userEntity.getAttYear()+"-"+userEntity.getAttMonth()); }else if(userEntity.getAttType() == 1){ yearMonths = DataUtil.getYearMonthList(userEntity.getAttYear(), userEntity.getAttQuarters()); } userEntity.setYearMonthList(yearMonths); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); MiniDaoPage list = new MiniDaoPage(); list = rptDao.taskStatsOrgUserData(userEntity, authSql); statsList = list.getResults(); for(TaskStats stats : statsList){ xAxisData.add(stats.getName()); } ArrayList series = new ArrayList();//series值 ChartSeriesDto csdto = new ChartSeriesDto(); csdto.setName("工作数量"); csdto.setType("bar"); csdto.setBarMaxWidth(12); List datalist = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getTaskTotal())); datalist.add(dd); } csdto.setData(datalist.toArray()); series.add(csdto); ChartSeriesDto csdto_nofinishnum = new ChartSeriesDto(); csdto_nofinishnum.setName("未完成工作数量"); csdto_nofinishnum.setType("bar"); csdto_nofinishnum.setBarWidth(12); List datalist_nofinishnum = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getNoFinishTaskTotal())); datalist_nofinishnum.add(dd); } csdto_nofinishnum.setData(datalist_nofinishnum.toArray()); series.add(csdto_nofinishnum); ChartSeriesDto csdto_nofinish = new ChartSeriesDto(); csdto_nofinish.setName("未完成率"); csdto_nofinish.setType("bar"); csdto_nofinish.setBarWidth(12); List datalist_nofinish = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(DecimalUtils.formatToStr( statsList.get(i).getNoFinishProportion().doubleValue())); datalist_nofinish.add(dd); } csdto_nofinish.setData(datalist_nofinish.toArray()); series.add(csdto_nofinish); ChartMultLineDto cmlDto = new ChartMultLineDto(); cmlDto.setxAxisData(xAxisData.toArray()); cmlDto.setSeries(series); if( statsList== null || statsList.size() == 0){ cmlDto.setNoData(true); } result.put("cdata", cmlDto); result.put("tdata", statsList); request.getSession().setAttribute("taskStats", statsList); return result; } @RequestMapping(params = "taskStatsType") public ModelAndView taskStatsType(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); // // //默认HR权限 // String rolefalg ="1"; // //查询用户角色 // String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); // List userRolelist = statsMinidaoDao.getUserRoleList(user.getId(),authSql); // for(UserRoleDto urdto : userRolelist){ // if(Constants.USER_ROLE_HR.contains(urdto.getRolecode())){ // rolefalg = "1"; // break; // } // if(Constants.USER_ROLE_DEPT.contains(urdto.getRolecode())){ // rolefalg = "2"; // break; // } // } // if(rolefalg.equals("2")){ // List projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId(); // mav.addObject("departList", projectDepartDtoList); // } // mav.addObject("roleFlag", rolefalg); mav.setViewName("com/xcgl/reports/taskstats-type"); return mav; } @RequestMapping(params="taskStatsTypedata") @ResponseBody public Map taskStatsTypedata(HttpServletRequest request,UserEntity userEntity) { Map result = new HashMap(); List xAxisData = new ArrayList(); List yearMonths = new ArrayList(); List statsList = new ArrayList(); //如果是月频,需要查询某年某月 if(userEntity.getAttType() == 0){ yearMonths.add(userEntity.getAttYear()+"-"+userEntity.getAttMonth()); }else if(userEntity.getAttType() == 1){ yearMonths = DataUtil.getYearMonthList(userEntity.getAttYear(), userEntity.getAttQuarters()); } userEntity.setYearMonthList(yearMonths); String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); MiniDaoPage list = new MiniDaoPage(); list = rptDao.taskStatsTypeData(userEntity, authSql); statsList = list.getResults(); for(TaskStats stats : statsList){ xAxisData.add(stats.getName()); } ArrayList series = new ArrayList();//series值 ChartSeriesDto csdto = new ChartSeriesDto(); csdto.setName("工作数量"); csdto.setType("bar"); csdto.setBarMaxWidth(15); List datalist = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getTaskTotal())); datalist.add(dd); } csdto.setData(datalist.toArray()); series.add(csdto); ChartSeriesDto csdto_nofinishnum = new ChartSeriesDto(); csdto_nofinishnum.setName("未完成工作数量"); csdto_nofinishnum.setType("bar"); csdto_nofinishnum.setBarWidth(15); List datalist_nofinishnum = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getNoFinishTaskTotal())); datalist_nofinishnum.add(dd); } csdto_nofinishnum.setData(datalist_nofinishnum.toArray()); series.add(csdto_nofinishnum); ChartSeriesDto csdto_nofinish = new ChartSeriesDto(); csdto_nofinish.setName("未完成率"); csdto_nofinish.setType("bar"); csdto_nofinish.setBarWidth(15); List datalist_nofinish = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(DecimalUtils.formatToStr( statsList.get(i).getNoFinishProportion().doubleValue())); datalist_nofinish.add(dd); } csdto_nofinish.setData(datalist_nofinish.toArray()); series.add(csdto_nofinish); ChartMultLineDto cmlDto = new ChartMultLineDto(); cmlDto.setxAxisData(xAxisData.toArray()); cmlDto.setSeries(series); if( statsList== null || statsList.size() == 0){ cmlDto.setNoData(true); } result.put("cdata", cmlDto); result.put("tdata", statsList); request.getSession().setAttribute("taskStats", statsList); return result; } @RequestMapping(params = "activitiStatsOrg") public String activitiStatsOrg(HttpServletRequest request) { activitiStatsInitSearchCondition(request); return "com/xcgl/reports/activiti_stats_org"; } @RequestMapping(params = "activitiStatsType") public String activitiStatsType(HttpServletRequest request) { activitiStatsInitSearchCondition(request); return "com/xcgl/reports/activiti_stats_type"; } private void activitiStatsInitSearchCondition(HttpServletRequest request){ Calendar c = Calendar.getInstance(); request.setAttribute("curYear",c.get(Calendar.YEAR)); int month = c.get(Calendar.MONTH); if(month > 9){ request.setAttribute("curMonth",c.get(Calendar.MONTH)); }else if(month == 0){ request.setAttribute("curYear",(c.get(Calendar.YEAR)-1)+""); request.setAttribute("curMonth", "12"); }else{ request.setAttribute("curMonth", "0"+c.get(Calendar.MONTH)); } } @RequestMapping(params="activitiStatsOrgData") @ResponseBody public Map activitiStatsOrgData(HttpServletRequest request,UserEntity userEntity) { String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); MiniDaoPage list= rptDao.activitiStatsOrgData(userEntity,Integer.valueOf(tookTime),authSql); Map result = activitiStatsDataParse(request,list,0); return result; } @RequestMapping(params="activitiStatsUserData") @ResponseBody public Map activitiStatsUserData(HttpServletRequest request,UserEntity userEntity) { String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); MiniDaoPage list= rptDao.activitiStatsUserData(userEntity,Integer.valueOf(tookTime),authSql); Map result = activitiStatsDataParse(request,list,1); return result; } @RequestMapping(params="activitiStatsTypeData") @ResponseBody public Map activitiStatsTypeData(HttpServletRequest request,UserEntity userEntity) { String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString(); String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); MiniDaoPage list= rptDao.activitiStatsTypeData(userEntity,Integer.valueOf(tookTime),authSql); Map result = activitiStatsDataParse(request,list,2); return result; } private Map activitiStatsDataParse(HttpServletRequest request,MiniDaoPage list,int type){ Map result = new HashMap(); List xAxisData = new ArrayList(); List statsList = new ArrayList<>(); List tData = new ArrayList(); statsList = list.getResults(); for(TaskStats stats : statsList){ xAxisData.add(stats.getName()); } ArrayList series = new ArrayList();//series值 ChartSeriesDto csdto = new ChartSeriesDto(); csdto.setName("审批数量"); csdto.setType("bar"); csdto.setBarWidth(12); List datalist = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getTaskTotal())); datalist.add(dd); } csdto.setData(datalist.toArray()); series.add(csdto); ChartSeriesDto csdto_nofinishnum = new ChartSeriesDto(); csdto_nofinishnum.setName("未完成审批数量"); csdto_nofinishnum.setType("bar"); csdto_nofinishnum.setBarWidth(12); List datalist_nofinishnum = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getNoFinishTaskTotal())); datalist_nofinishnum.add(dd); } csdto_nofinishnum.setData(datalist_nofinishnum.toArray()); series.add(csdto_nofinishnum); /*ChartSeriesDto csdto_nofinish = new ChartSeriesDto(); csdto_nofinish.setName("未完成率"); csdto_nofinish.setType("bar"); csdto_nofinish.setBarWidth(12); List datalist_nofinish = new ArrayList(); for(int i= 0 ; i < statsList.size() ; i++){ DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(DecimalUtils.formatToStr( statsList.get(i).getNoFinishProportion().doubleValue())); datalist_nofinish.add(dd); } csdto_nofinish.setData(datalist_nofinish.toArray()); series.add(csdto_nofinish);*/ if(type!=2) {//按类型统计 不显示逾期 ChartSeriesDto overdue = new ChartSeriesDto(); overdue.setName("逾期数量"); overdue.setType("bar"); overdue.setBarWidth(12); List datalist_overdue = new ArrayList(); for (int i = 0; i < statsList.size(); i++) { DataDto dd = new DataDto(); dd.setId(statsList.get(i).getId()); dd.setValue(String.valueOf(statsList.get(i).getOverdueCount())); datalist_overdue.add(dd); } overdue.setData(datalist_overdue.toArray()); series.add(overdue); } ChartMultLineDto cmlDto = new ChartMultLineDto(); cmlDto.setxAxisData(xAxisData.toArray()); cmlDto.setSeries(series); if( statsList== null || statsList.size() == 0){ cmlDto.setNoData(true); } result.put("cdata", cmlDto); //statsList排序重置 for(int i = statsList.size()-1;i > -1;i--) { tData.add(statsList.get(i)); } result.put("tdata", tData); request.getSession().setAttribute("taskStats", statsList); return result; } @RequestMapping(params = "activitiOvertime") public ModelAndView activitiOvertime(HttpServletRequest request) { return new ModelAndView("com/xcgl/reports/activiti_overtime"); } @RequestMapping(params = "activitiOvertimeData") public void activitiOvertimeData(HttpServletRequest request, HttpServletResponse response,DataGrid dataGrid) { String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); MiniDaoPage page = rptDao.activitiOvertimeList(Integer.valueOf(tookTime),dataGrid.getPage(), dataGrid.getRows()); dataGrid.setResults(page.getResults()); dataGrid.setTotal(page.getTotal()); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "exportActivitiOvertime") public String exportActivitiOvertime( HttpServletRequest request, HttpServletResponse response,ModelMap map) throws Exception { // @SuppressWarnings("unchecked") // String exceltitles = "员工姓名,未完成签报名称,应完成时间"; // String exceltitleIds = "realName,title,shouldDoneTime"; String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); MiniDaoPage page = rptDao.activitiOvertimeList(Integer.valueOf(tookTime), 1, 10000); List dataList = new ArrayList(); for (ActivitiOvertimeDto object : page.getResults()) { dataList.add(object); } // ExportExcel ex = new ExportExcel("签报逾期明细", exceltitles.split(","), "签报逾期明细", dataList, // exceltitleIds.split(",")); // ex.export(response); map.put(NormalExcelConstants.FILE_NAME, "签报系统逾期签报明细"); map.put(NormalExcelConstants.CLASS, ActivitiOvertimeDto.class); ExportParams param = new ExportParams("签报系统逾期签报明细", "统计周期:(01.01 00:00 - " + DateUtils.formatDate(new Date(), "MM.dd HH:mm") + ")","逾期签报明细"); param.setAddIndex(true); map.put(NormalExcelConstants.PARAMS,param ); map.put(NormalExcelConstants.DATA_LIST, dataList); return NormalExcelConstants.JEECG_EXCEL_VIEW; } @RequestMapping(params = "exportExcelStats") @ResponseBody public void exportExcelStats(String exceltitles,String exceltitleIds ,Integer flag,String excelname, String dataKey, String filename, HttpServletRequest request, HttpServletResponse response) throws Exception { @SuppressWarnings("unchecked") List dataList = (List) request.getSession().getAttribute(dataKey); ExportExcel ex = new ExportExcel(excelname, exceltitles.split(","), filename, dataList, exceltitleIds.split(",")); ex.export(response); } @RequestMapping(params = "activitimyactiviti") public ModelAndView activitimyactiviti(HttpServletRequest request) { return new ModelAndView("com/xcgl/reports/activiti_myactiviti"); } /** * 此为demo,查询某个项目发起的所有签报、签报状态、工作流状态等信息。 * */ @RequestMapping(params = "myactivitiData") public void myactivitiData(HttpServletRequest request, HttpServletResponse response,DataGrid dataGrid) { String sql = "select bu.realname as '发起人' \n" + " ,hivar.text_ as title \n" + " ,act.ACT_NAME_ as stepname \n" + " ,proc.END_TIME_ as endTime,case when proc.end_time_ is null then '0' else '1' end as activitistatus \n" + " ,tbu.realname as realName , '1' as taskstatus \n" + " from ACT_HI_PROCINST proc\n" + " left join act_hi_varinst hivar on hivar.PROC_INST_ID_=proc.PROC_INST_ID_ and hivar.NAME_='bpm_biz_title'\n" + " left join act_hi_actinst act on act.PROC_INST_ID_ = proc.PROC_INST_ID_ and act.DURATION_ is null\n" + " left join t_s_base_user bu on proc.START_USER_ID_ = bu.username and bu.delete_flag = 0\n" + " left join t_s_user_org org on org.user_id=bu.id and ifpluralism='0' and org.status='0'\n" + " left join ACT_HI_TASKINST task on task.PROC_INST_ID_ = proc.id_ and task.end_time_ is null\n" + " left join t_s_base_user tbu on tbu.username = task.ASSIGNEE_\n" + " where left(proc.start_time_ ,4) > '2019'\n" + " order by proc.START_TIME_ desc;"; List> ret = systemService.findForJdbc(sql); //设置第一个为未完成 if(ret.size() > 0) { ret.get(0).put("taskstatus", "0"); } dataGrid.setResults(ret); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "activititask") public ModelAndView activititask(HttpServletRequest request) { return new ModelAndView("com/xcgl/reports/activiti_task"); } /** * 此为demo,查询某个签报,对应的工作流状态信息。 * */ @RequestMapping(params = "myactivititaskData") public void activititaskData(HttpServletRequest request, HttpServletResponse response,DataGrid dataGrid) { List> res = new ArrayList>(); Map task = new HashMap(); task.put("title", "江秋芳平级调动,完成档案调动工作"); task.put("endTime", null); task.put("realname", "方志刚"); task.put("taskstatus", "0"); res.add(task); task = new HashMap(); task.put("title", "江秋芳平级调动,完成排班工作"); task.put("endTime", "2020-01-03 12:33:04"); task.put("realname", "王宇宸"); task.put("taskstatus", "1"); res.add(task); task = new HashMap(); task.put("title", "江秋芳平级调动,完成配置工资工作"); task.put("endTime", "2020-01-07 10:03:09"); task.put("realname", "朱红霞"); task.put("taskstatus", "1"); res.add(task); dataGrid.setResults(res); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "activitiOvertimeSub") public ModelAndView activitiOvertimeSub(HttpServletRequest request) { return new ModelAndView("com/xcgl/reports/activiti_overtime_sub"); } @RequestMapping(params = "activitiOvertimeSubData") public void activitiOvertimeSubData(HttpServletRequest request, HttpServletResponse response,DataGrid dataGrid) { String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); String month = request.getParameter("month"); if(StringUtil.isEmpty(month)) { month = DataUtils.formatDate(new Date()).substring(0,7); } MiniDaoPage page = rptDao.activitiOvertimeSum(Integer.valueOf(tookTime), month,dataGrid.getPage(), dataGrid.getRows()); dataGrid.setResults(page.getResults()); dataGrid.setTotal(page.getTotal()); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "activitiOvertimeSubDetail") public ModelAndView activitiOvertimeSubDetail(HttpServletRequest request) { String username = request.getParameter("username"); request.setAttribute("username", username); String month = request.getParameter("month"); request.setAttribute("month", month); return new ModelAndView("com/xcgl/reports/activiti_overtime_sub_detail"); } @RequestMapping(params = "activitiOvertimeSubDetailData") public void activitiOvertimeSubDetailData(HttpServletRequest request, HttpServletResponse response,DataGrid dataGrid) { String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); String month = request.getParameter("month"); String username = request.getParameter("username"); if(StringUtil.isEmpty(month)) { month = DataUtils.formatDate(new Date()).substring(0,7); } MiniDaoPage page = rptDao.activitiOvertimeSumDetail(Integer.valueOf(tookTime), month,username,dataGrid.getPage(), dataGrid.getRows()); dataGrid.setResults(page.getResults()); dataGrid.setTotal(page.getTotal()); TagUtil.datagrid(response, dataGrid); } @RequestMapping(params = "exportActivitiOvertimeSub") public String exportActivitiOvertimeSub( HttpServletRequest request, HttpServletResponse response,ModelMap map) throws Exception { String tookTime = ResourceUtil.getConfigByName("activiti.task.tooktime"); String month = request.getParameter("month"); if(StringUtil.isEmpty(month)) { month = DataUtils.formatDate(new Date()).substring(0,7); } MiniDaoPage page = rptDao.activitiOvertimeSum(Integer.valueOf(tookTime),month, 1, 10000); List dataList = new ArrayList(); for (ActivitiOvertimeSumDto object : page.getResults()) { dataList.add(object); } map.put(NormalExcelConstants.FILE_NAME, "逾期签报统计"); map.put(NormalExcelConstants.CLASS, ActivitiOvertimeSumDto.class); ExportParams param = new ExportParams("逾期签报统计", "统计周期:" + month + ")","逾期签报统计"); param.setAddIndex(true); map.put(NormalExcelConstants.PARAMS,param ); map.put(NormalExcelConstants.DATA_LIST, dataList); return NormalExcelConstants.JEECG_EXCEL_VIEW; } }