package com.dsideal.FengHuang.TouPiao.Controller; import com.alibaba.fastjson.JSONObject; import com.aspose.cells.Workbook; import com.dsideal.FengHuang.Interceptor.IsLoginInterface; import com.dsideal.FengHuang.TouPiao.Model.TouPiaoModel; import com.dsideal.FengHuang.Util.CommonUtil; import com.dsideal.FengHuang.Util.ExcelExportUtil; import com.dsideal.FengHuang.Util.FileUtil; import com.jfinal.aop.Before; import com.jfinal.core.Controller; import com.jfinal.ext.interceptor.GET; import com.jfinal.ext.interceptor.POST; import com.jfinal.kit.Kv; import com.jfinal.kit.PathKit; import com.jfinal.kit.PropKit; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; import com.jfinal.plugin.activerecord.SqlPara; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.UUID; @SuppressWarnings("unchecked") public class TouPiaoController extends Controller { TouPiaoModel tm = new TouPiaoModel(); /** * 功能:获取侯选人名单 * 作者:黄海 * 日期:2022-12-11 * 高级 * http://10.10.11.124:9000/FengHuang/TouPiao/getHouXuanRenList?type_id=1 * 中级 * http://10.10.11.124:9000/FengHuang/TouPiao/getHouXuanRenList?type_id=2 */ @Before({GET.class}) @IsLoginInterface({}) public void getHouXuanRenList(int type_id) { List list = tm.getHouXuanRenList(type_id); renderJson(CommonUtil.renderJsonForLayUI(list)); } /* 获取当前登录人员信息,比如姓名信息,身份信息(评委小组,还是群众) http://10.10.11.124:9000/FengHuang/TouPiao/getTouPiaoRenInfo */ @Before({GET.class}) @IsLoginInterface({}) public void getTouPiaoRenInfo() { String toupiaoren_tel = getCookie("toupiaoren_tel"); Record record = tm.getTouPiaoRenInfo(toupiaoren_tel); renderJson(record); } @Before({POST.class}) @IsLoginInterface({}) public void save(String gaoji, String zhongji) { String toupiaoren_tel = getCookie("toupiaoren_tel"); if (tm.haveFinishTouPiao(toupiaoren_tel)) { Kv kv = Kv.create(); kv.put("success", false); kv.put("message", "您已经投票完成,不能重复投票!"); renderJson(kv); return; } //检查中级是不是2个,高级是不是2个 String[] gaojiArray = gaoji.split(","); String[] zhongjiArray = zhongji.split(","); if (gaojiArray.length != 2) { Kv kv = Kv.create(); kv.set("success", false); kv.set("message", "本次投票高级只能投2人!"); renderJson(kv); return; } if (zhongjiArray.length != 2) { Kv kv = Kv.create(); kv.set("success", false); kv.set("message", "本次投票中级只能投2人!"); renderJson(kv); return; } tm.save(toupiaoren_tel, gaojiArray, zhongjiArray); Kv kv = Kv.create(); kv.set("success", true); kv.set("message", "投票成功 !"); renderJson(kv); } /* 统计信息 http://10.10.11.124:9000/FengHuang/TouPiao/TongJi?houxuanren_type_id=1 */ public void TongJi(int houxuanren_type_id) { List list = tm.TongJi(houxuanren_type_id); renderJson(CommonUtil.renderJsonForLayUI(list)); } /* 投票人数信息 http://10.10.11.124:9000/FengHuang/TouPiao/getTouPiaoRenSummary */ public void getTouPiaoRenSummary() { List list1 = tm.getYingTouPiaoRenSummary(); List list2 = tm.getYiTouPiaoRenSummary(); List res = new ArrayList<>(); for (Record r1 : list1) for (Record r2 : list2) { if (r1.getInt("toupiaoren_type_id") == r2.getInt("toupiaoren_type_id")) { Record r3 = new Record(); r3.set("toupiaoren_type_id", r1.getInt("toupiaoren_type_id")); r3.set("ying_count", r1.getInt("c")); r3.set("yi_count", r2.getInt("c")); res.add(r3); } } renderJson(CommonUtil.renderJsonForLayUI(res)); } /* 导出excel http://10.10.11.124:9000/FengHuang/TouPiao/exportExcel */ public void exportExcel() throws Exception { //模板文件 String excelPath = PathKit.getRootClassPath() + PropKit.get("excelExportTemplatePathSuffix").replace("\\", "/"); String filePath = excelPath + "TouPiaoSummaryGaoJi.json"; //转成 json对象 JSONObject jo = FileUtil.readJsonFile(filePath); //导出 Page rs = new Page<>(); List list1 = tm.TongJi(1); rs.setList(list1); rs.setPageNumber(1); rs.setPageSize(list1.size()); rs.setTotalRow(list1.size()); String file1 = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xls"; ExcelExportUtil.export(rs, jo, file1); //中级导出 filePath = excelPath + "TouPiaoSummaryZhongJi.json"; //转成 json对象 jo = FileUtil.readJsonFile(filePath); //导出 rs = new Page<>(); List list2 = tm.TongJi(2); rs.setList(list2); rs.setPageNumber(1); rs.setPageSize(list2.size()); rs.setTotalRow(list2.size()); String file2 = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xls"; ExcelExportUtil.export(rs, jo, file2); ExcelExportUtil.getLicense(); Workbook SourceBook1 = new Workbook(file1); Workbook SourceBook2 = new Workbook(file2); SourceBook1.combine(SourceBook2); String file3 = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xls"; SourceBook1.save(file3); //提供下载 String filename = "投票结果.xls"; renderFile(new File(file3), filename); } }