main
黄海 1 year ago
parent 28508dbab8
commit 46d0aafffb

@ -2,7 +2,6 @@ package com.dsideal.QingLong.Zbdc.Controller;
import cn.hutool.core.compress.ZipWriter;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson.JSONObject;
import com.dsideal.QingLong.Base.Model.BaseModel;
import com.dsideal.QingLong.Bean.TZbdcTree;
@ -28,7 +27,6 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.*;
@ -36,6 +34,7 @@ public class ZbdcController extends Controller {
private final ZbdcModel zm = new ZbdcModel();
/**
*
*
@ -653,6 +652,7 @@ public class ZbdcController extends Controller {
renderJson(CommonUtil.renderJsonForLayUI(list));
}
/**
*
*/
@ -683,6 +683,7 @@ public class ZbdcController extends Controller {
//导出
String excelFile = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xlsx";
ExcelExportUtil.exportByTemplate(list.getList(), template, excelFile);
//提供下载
renderFile(new File(excelFile), "基础信息.xlsx");
}
}
@ -909,13 +910,13 @@ public class ZbdcController extends Controller {
@Before({GET.class})
@IsLoginInterface({})
@IsNumericInterface({"page", "limit"})
public void listSchool(int year, String area_id,int check_type_id, int school_type_id, String keyword, int page, int limit) {
public void listSchool(int year, String area_id, int check_type_id, int school_type_id, String keyword, int page, int limit) {
if (year == 0) year = DateTime.now().year();//如果没有传入获取的年份,那么就是系统的默认当前年份
if (StrKit.isBlank(keyword)) keyword = "";
//上报单位ID
String bureau_id = SessionKit.get(getRequest(), getResponse(), "bureau_id");
Page<Record> list = zm.listSchool(year, area_id,check_type_id, bureau_id, school_type_id, keyword, page, limit);
Page<Record> list = zm.listSchool(year, area_id, check_type_id, bureau_id, school_type_id, keyword, page, limit);
renderJson(CommonUtil.renderJsonForLayUI(list));
}
@ -1078,18 +1079,22 @@ public class ZbdcController extends Controller {
//1、基础信息
Page<Record> p1 = zm.getQueryBaseInfo(null, 0, year, null, 1, 99999, bureau_id);
String template = excelPath + "Query_BaseInfo.xlsx";
//修改一下模板
String template_tmp = zm.CleanTemplate(template, bureau_id);
//导出
String excelFile = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xlsx";
ExcelExportUtil.exportByTemplate(p1.getList(), template, excelFile);
ExcelExportUtil.exportByTemplate(p1.getList(), template_tmp, excelFile);
_map.put(excelFile, "基础信息.xlsx");
//2、常规装备
Page<Record> p2 = zm.getQueryCgzb(null, 0, year, null, 1, 99999, bureau_id);
template = excelPath + "Query_Cgzb.xlsx";
//修改一下模板
template_tmp = zm.CleanTemplate(template, bureau_id);
//导出
excelFile = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xlsx";
ExcelExportUtil.exportByTemplate(p2.getList(), template, excelFile);
ExcelExportUtil.exportByTemplate(p2.getList(), template_tmp, excelFile);
_map.put(excelFile, "常规装备.xlsx");
//3、仪器设备
@ -1110,6 +1115,7 @@ public class ZbdcController extends Controller {
//导出
excelFile = excelPath + "excelTemp/" + UUID.randomUUID().toString().toUpperCase() + ".xlsx";
ExcelExportUtil.exportByTemplate(p4.getList(), template, excelFile);
_map.put(excelFile, "信息化设备/" + dcb_name + ".xlsx");
}
// 使用 ZipWriter 创建 ZIP 包并添加文件,同时更改文件名称

@ -1,16 +1,18 @@
package com.dsideal.QingLong.Zbdc.Model;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.dsideal.QingLong.Interceptor.IsLoginInterface;
import com.dsideal.QingLong.Interceptor.IsNumericInterface;
import com.dsideal.QingLong.Start;
import com.dsideal.QingLong.Base.Model.BaseModel;
import com.dsideal.QingLong.Util.CommonUtil;
import com.jfinal.kit.JsonKit;
import com.jfinal.kit.Kv;
@ -18,17 +20,16 @@ import com.jfinal.kit.PropKit;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.*;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.dialect.PostgreSqlDialect;
import com.jfinal.plugin.hikaricp.HikariCpPlugin;
import com.jfinal.plugin.redis.RedisPlugin;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.*;
import java.text.SimpleDateFormat;
public class ZbdcModel {
private final BaseModel bm = new BaseModel();
/**
* ID
*
@ -2485,4 +2486,70 @@ public class ZbdcModel {
int check_type_id = r.getInt("check_type_id");
return check_type_id;
}
/**
*
*
* @param template
* @param bureau_id
* @return
*/
public String CleanTemplate(String template, String bureau_id) throws IOException {
//拷贝出来模板,然后修改一下
File tempDir = new File(System.getProperty("java.io.tmpdir"));
String template_tmp = tempDir + "/" + UUID.randomUUID() + ".xlsx";
FileUtil.copy(template, template_tmp, true);
//根据当前单位的单位类型,决定是不是隐藏掉一些列
int c_school_type_id = bm.getOrgInfoById(bureau_id).getInt("school_type_id");
switch (c_school_type_id) {
case 211://211 小学
template_tmp = kill(template_tmp, "cz_,gz_,summary_");
break;
case 311: // 311 初中
template_tmp = kill(template_tmp, "xx_,gz_,summary_");
break;
case 341: // 341 完中
template_tmp = kill(template_tmp, "xx_");
break;
case 342:// 342 高中
template_tmp = kill(template_tmp, "xx_,cz_,summary_");
break;
case 312:// 312 九年一贯制
template_tmp = kill(template_tmp, "gz_");
break;
}
return template_tmp;
}
private String kill(String excelPath, String prefix) throws IOException {
//使用POI打开EXCEL
XSSFWorkbook workbook = new XSSFWorkbook(excelPath);
// 获取第一个工作表工作表索引从0开始
Sheet sheet = workbook.getSheetAt(0);
//数据开始行
int startRow = sheet.getLastRowNum();
//一共多少列
int colNum = sheet.getRow(0).getLastCellNum();
//找到最后一行遍历此行的每一列如果此列的数据是以指定prefix开头的将此列标识为隐藏
//最后一行是数据与字段的关系,先读取出来
Row row = sheet.getRow(startRow);
for (int columnIndex = 0; columnIndex < colNum; columnIndex++) {
Cell cell = row.getCell(columnIndex);
for (String s : prefix.split(",")) {
if (cell.getStringCellValue().startsWith(s)) {
//隐藏掉该列
sheet.setColumnHidden(columnIndex, true);
}
}
}
//生成文件
File tempDir = new File(System.getProperty("java.io.tmpdir"));
String template_tmp = tempDir + "/" + UUID.randomUUID() + ".xlsx";
File file = new File(template_tmp);
FileOutputStream fileOutputStreane = new FileOutputStream(file);
workbook.write(fileOutputStreane);
fileOutputStreane.flush();
fileOutputStreane.close();
return template_tmp;
}
}
Loading…
Cancel
Save