Browse Source

excel导出

v3
zouyx 2 years ago
parent
commit
235d37e079
  1. 71
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/EnforcementCheckStatisticsController.java
  2. 45
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnforcementCheckStatistics.java
  3. 24
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnforcementCheckStatisticsMapper.java
  4. 23
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/EnforcementCheckStatisticsService.java
  5. 368
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnforcementCheckStatisticsImpl.java
  6. 33
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnforcementCheckStatisticsMapper.xml

71
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/EnforcementCheckStatisticsController.java

@ -0,0 +1,71 @@
package com.zdxt.code.controller;
import cn.hutool.http.server.HttpServerResponse;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import com.zdxt.code.service.EnforcementCheckStatisticsService;
import com.zdxt.common.ZDResponse;
import com.zdxt.common.controller.BaseController;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.util.*;
import java.util.stream.Collectors;
/**
* 行政执法检查统计Controller
*
* @author zouyaxin
* @date 2024/8/29
*/
@Controller
@RequestMapping("/enforcementCheckStatistics")
public class EnforcementCheckStatisticsController extends BaseController {
private String prefix = "code/enforcementCheckStatistics";
@Autowired
private EnforcementCheckStatisticsService enforcementCheckStatisticsService;
@GetMapping ("/queryList/{year}/{month}")
@ResponseBody
public void queryList(HttpServletResponse response, @PathVariable String year, @PathVariable String month)
{
EnforcementCheckStatistics enforcementCheckStatistics=new EnforcementCheckStatistics();
enforcementCheckStatistics.setYear(year);
enforcementCheckStatistics.setMonth(month);
//查出区下所有区的id
List<EnforcementCheckStatistics> areaAllList=enforcementCheckStatisticsService.selectAllAreaList();
//存放以区ip为键,该ip下的所有记录为值
Map<String,List<EnforcementCheckStatistics>> list=new HashMap<>();
for(int i=0;i<areaAllList.size();i++){
areaAllList.get(i).setMonth(enforcementCheckStatistics.getMonth());
areaAllList.get(i).setYear(enforcementCheckStatistics.getYear());
EnforcementCheckStatistics enforcementCheckStatistics1=areaAllList.get(i);
//查找出该区下的所有执法记录
List<EnforcementCheckStatistics> statisticslist = enforcementCheckStatisticsService.selectEnforcementCheckStatisticsList(enforcementCheckStatistics1);
//以区id为键,区下所有执法记录为值
list.put(areaAllList.get(i).getDeptId(),statisticslist);
}
enforcementCheckStatisticsService.excelExport(response,enforcementCheckStatistics,areaAllList,list);
}
}

45
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnforcementCheckStatistics.java

@ -0,0 +1,45 @@
package com.zdxt.code.domain;
import com.zdxt.common.BaseDomain;
import lombok.Data;
import java.util.List;
@Data
public class EnforcementCheckStatistics extends BaseDomain {
/** 主键ID */
private String id;
/** 局级部门(主体) */
private String bureauDeptName;
/** 局级部门id(主体) */
private String bureauDeptId;
/** 被执法企业 */
private String enterpriseName;
/** 被执法企业纳税识别号 */
private String enterpriseNumber;
/** 执法部门id */
private String lawEnforcementId;
/* *//** 执法人员姓名1 *//*
private String lawEnforcer;
*//** 执法人员姓名2 *//*
private String lawEnforcerTwo;*/
/** 执法人员姓名2 */
private String lawEnforcerTwo;
/** 检查事项 */
private String lawEnforcementItem;
/** 区域 */
private String deptName;
/** 备注 */
private String remark;
/** 区域id */
private String deptId;
/** 预警次数 */
private String Num;
/** 筛查年份 */
private String year;
/** 筛查月份 */
private String month;
}

24
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnforcementCheckStatisticsMapper.java

@ -0,0 +1,24 @@
package com.zdxt.code.mapper;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
public interface EnforcementCheckStatisticsMapper {
/**
* 查询行政执法检查统计
*
* @param enforcementCheckStatistics
* @return List
*/
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics);
/**
* 查询所有区的id和name
* @param
* @return List
*/
public List<EnforcementCheckStatistics> selectAllAreaList();
}

23
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/EnforcementCheckStatisticsService.java

@ -0,0 +1,23 @@
package com.zdxt.code.service;
import cn.hutool.http.server.HttpServerResponse;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;
public interface EnforcementCheckStatisticsService {
/**
*查询该区下的所有执法记录
*/
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics);
/**
*查询区下的所有执法部门
*/
public List<EnforcementCheckStatistics> selectAllAreaList();
/**
*excel导出
*/
public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List<EnforcementCheckStatistics> areaAllList, Map<String, List<EnforcementCheckStatistics>> list);
}

368
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnforcementCheckStatisticsImpl.java

@ -0,0 +1,368 @@
package com.zdxt.code.service.impl;
import cn.hutool.http.server.HttpServerResponse;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import com.zdxt.code.mapper.EnforcementCheckStatisticsMapper;
import com.zdxt.code.service.EnforcementCheckStatisticsService;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.RegionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatisticsService {
@Autowired
private EnforcementCheckStatisticsMapper enforcementCheckStatisticsMapper;
/**
*将样式应用到单元格
*/
private void setStyle(List<String> cellList,HSSFRow row,HSSFCellStyle styleRow3){
for (int t=0;t<cellList.size();t++){
HSSFCell cell= row.createCell(t);
cell.setCellValue(cellList.get(t));
System.out.println(cellList.get(t));
cell.setCellStyle(styleRow3);
}
}
/**
*为合并的单元格修正样式
*/
private void hbStyle(int x1,int x2,int y1,int y2,HSSFSheet sheet){
CellRangeAddress region=new CellRangeAddress(x1, x2,y1,y2);
RegionUtil.setBorderBottom(BorderStyle.THIN, region, sheet);
RegionUtil.setBorderLeft(BorderStyle.THIN, region, sheet);
RegionUtil.setBorderRight(BorderStyle.THIN, region, sheet);
RegionUtil.setBorderTop(BorderStyle.THIN, region, sheet);
}
/**
*查询该区下的所有执法记录
*/
@Override
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics) {
return enforcementCheckStatisticsMapper.selectEnforcementCheckStatisticsList(enforcementCheckStatistics);
}
/**
*查询区下的所有执法部门
*/
@Override
public List<EnforcementCheckStatistics> selectAllAreaList() {
return enforcementCheckStatisticsMapper.selectAllAreaList();
}
/**
*导出excel
*/
@Override
public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List<EnforcementCheckStatistics> areaAllList, Map<String, List<EnforcementCheckStatistics>> list){
//创建HSSFWorkbook对象(excel文档对象)
HSSFWorkbook wb=new HSSFWorkbook();
//建立新的sheet对象(sheet:表单)
HSSFSheet sheet= wb.createSheet("行政执法检查统计"+enforcementCheckStatistics.getMonth()+"月");
//自适应列宽
sheet.setDefaultColumnWidth(20);//全局
sheet.setColumnWidth(0,2500);//某列
sheet.setColumnWidth(1,2500);
//在sheet里创建第一行,参数为excel行数,0~65535
HSSFRow row1=sheet.createRow(0);
//字体样式
HSSFFont font1=wb.createFont();
font1.setFontName("微软雅黑");
font1.setBold(true);
font1.setFontHeightInPoints((short) 16);
HSSFFont font2=wb.createFont();
font2.setFontName("微软雅黑");
font2.setBold(true);
font2.setFontHeightInPoints((short) 11);
HSSFFont font3=wb.createFont();
font2.setFontName("微软雅黑");
font2.setFontHeightInPoints((short) 11);
//第一行样式
HSSFCellStyle styleRow1=wb.createCellStyle();
styleRow1.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
styleRow1.setFillPattern(FillPatternType.SOLID_FOREGROUND);
styleRow1.setAlignment(HorizontalAlignment.CENTER);
styleRow1.setVerticalAlignment(VerticalAlignment.CENTER);
styleRow1.setBorderTop(BorderStyle.THIN);//边框默认黑色
styleRow1.setBorderRight(BorderStyle.THIN);
styleRow1.setBorderBottom(BorderStyle.THIN);
styleRow1.setBorderLeft(BorderStyle.THIN);
styleRow1.setFont(font1);
//第二行样式
HSSFCellStyle styleRow2=wb.createCellStyle();
styleRow2.setWrapText(true);//换行
styleRow2.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
styleRow2.setFillPattern(FillPatternType.SOLID_FOREGROUND);
styleRow2.setAlignment(HorizontalAlignment.CENTER);
styleRow2.setVerticalAlignment(VerticalAlignment.CENTER);
styleRow2.setBorderTop(BorderStyle.THIN);
styleRow2.setBorderRight(BorderStyle.THIN);
styleRow2.setBorderBottom(BorderStyle.THIN);
styleRow2.setBorderLeft(BorderStyle.THIN);
styleRow2.setFont(font2);
//内容样式
HSSFCellStyle styleRow3=wb.createCellStyle();
styleRow3.setAlignment(HorizontalAlignment.CENTER);
styleRow3.setVerticalAlignment(VerticalAlignment.CENTER);
styleRow3.setBorderTop(BorderStyle.THIN);
styleRow3.setBorderRight(BorderStyle.THIN);
styleRow3.setBorderBottom(BorderStyle.THIN);
styleRow3.setBorderLeft(BorderStyle.THIN);
styleRow3.setFont(font3);
//创建单元格,参数为列数,0~255
HSSFCell cell1=row1.createCell(0);
//修改单元格内容
cell1.setCellValue(enforcementCheckStatistics.getMonth()+"月行政执法检查统计");
//将单元格样式应用到该单元格
cell1.setCellStyle(styleRow1);
//合并单元格--CellRangeAddress(起始行,结束行,起始列,结束列)
sheet.addMergedRegion(new CellRangeAddress(0,0,0,11));
//在sheet里创建第二行
HSSFRow row2=sheet.createRow(1);
/* //创建单元格并设置单元格内容
row2.createCell(0).setCellValue("序号");
row2.createCell(1).setCellValue("区域");
row2.createCell(2).setCellValue("企业");
row2.createCell(3).setCellValue("执法主体");
row2.createCell(4).setCellValue("执法人员");
row2.createCell(5).setCellValue("检查事项");
row2.createCell(6).setCellValue("执法检查次数");
row2.createCell(7).setCellValue("2次及以下");
row2.createCell(8).setCellValue("3至4次\n(黄色)");
row2.createCell(9).setCellValue("5至6次\n(橙色)");
row2.createCell(10).setCellValue("7次及以上\n(红色)");
row2.createCell(11).setCellValue("备注");*/
List<String> headRow2List=new ArrayList<>();
Collections.addAll(headRow2List,"序号","区域","企业","执法主体","执法人员","检查事项","执法检查次数",
"2次及以下","3至4次\n(黄色)","5至6次\n(橙色)","7次及以上\n(红色)","备注");
setStyle(headRow2List,row2,styleRow2);
int rowNum=1;
for(int i=0;i<areaAllList.size();i++){//遍历地区list
String area=areaAllList.get(i).getDeptName();//取出地区名
List<EnforcementCheckStatistics> e=list.get(areaAllList.get(i).getDeptId());//取出该地区下的所有执法记录
String enterpriseName1=null;
if(!e.isEmpty()){//判断执法记录是否为空
if(e.size()>1){//当该区执法记录大于两条时才合并序号、区列
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, rowNum+e.size(),0,0));
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, rowNum+e.size(),1,1));
hbStyle(rowNum+1, rowNum+e.size(),0,0,sheet);
hbStyle(rowNum+1, rowNum+e.size(),1,1,sheet);
}
//非空时将执法以企业划分<企业税号,合计>
Map<String,Long> qyGroup1=e.stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getEnterpriseNumber,Collectors.counting()));
//将以企业分好组的数据取出
Map<String,List<EnforcementCheckStatistics>> qyGroup2=e.stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getEnterpriseNumber));
for(String k:qyGroup2.keySet()){//同企业内遍历执法
//if分组数<2则后续无需遍历
if(qyGroup1.get(k)<2){
HSSFRow row = sheet.createRow(++rowNum);
/* row.createCell(0).setCellValue(i+1);
row.createCell(1).setCellValue(area);
row.createCell(2).setCellValue(qyGroup2.get(k).get(0).getEnterpriseName());
row.createCell(3).setCellValue(qyGroup2.get(k).get(0).getBureauDeptName());
row.createCell(4).setCellValue(qyGroup2.get(k).get(0).getLawEnforcerTwo());
row.createCell(5).setCellValue(qyGroup2.get(k).get(0).getLawEnforcementItem());
row.createCell(6).setCellValue(1);
row.createCell(7).setCellValue(1);
row.createCell(11).setCellValue(qyGroup2.get(k).get(0).getRemark());*/
List<String> cellList=new ArrayList<>();
Collections.addAll(cellList,""+(i+1),area,qyGroup2.get(k).get(0).getEnterpriseName(),qyGroup2.get(k).get(0).getBureauDeptName(),
qyGroup2.get(k).get(0).getLawEnforcerTwo(),qyGroup2.get(k).get(0).getLawEnforcementItem(),"1",
"1","","","",qyGroup2.get(k).get(0).getRemark());
setStyle(cellList,row,styleRow3);
}else {
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, (int) (rowNum+qyGroup1.get(k)),2,2));//合并企业
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, (int) (rowNum+qyGroup1.get(k)),7,7));
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, (int) (rowNum+qyGroup1.get(k)),8,8));
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, (int) (rowNum+qyGroup1.get(k)),9,9));
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, (int) (rowNum+qyGroup1.get(k)),10,10));
hbStyle(rowNum+1, (int) (rowNum+qyGroup1.get(k)),2,2,sheet);
hbStyle(rowNum+1, (int) (rowNum+qyGroup1.get(k)),7,7,sheet);
hbStyle(rowNum+1, (int) (rowNum+qyGroup1.get(k)),8,8,sheet);
hbStyle(rowNum+1, (int) (rowNum+qyGroup1.get(k)),9,9,sheet);
hbStyle(rowNum+1, (int) (rowNum+qyGroup1.get(k)),10,10,sheet);
//以同企业内,以执法分组
Map<String, Long> zfGroup1 = qyGroup2.get(k).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getBureauDeptName, Collectors.counting()));
Map<String, List<EnforcementCheckStatistics>> zfGroup2 = qyGroup2.get(k).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getBureauDeptName));
for (String zf : zfGroup2.keySet()) {
//if 分组数<2则后续无需遍历
if(zfGroup1.get(zf)<2){
HSSFRow row = sheet.createRow(++rowNum);
/* row.createCell(0).setCellValue(i+1);
row.createCell(1).setCellValue(area);
row.createCell(2).setCellValue(zfGroup2.get(zf).get(0).getEnterpriseName());
row.createCell(3).setCellValue(zfGroup2.get(zf).get(0).getBureauDeptName());
row.createCell(4).setCellValue(zfGroup2.get(zf).get(0).getLawEnforcerTwo());
row.createCell(5).setCellValue(zfGroup2.get(zf).get(0).getLawEnforcementItem());
row.createCell(6).setCellValue(1);
row.createCell(11).setCellValue(zfGroup2.get(zf).get(0).getRemark());*/
List<String> cellList=new ArrayList<>();
if(qyGroup1.get(k)<3){
//row.createCell(7).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,zfGroup2.get(zf).get(0).getEnterpriseName(),zfGroup2.get(zf).get(0).getBureauDeptName(),
zfGroup2.get(zf).get(0).getLawEnforcerTwo(),zfGroup2.get(zf).get(0).getLawEnforcementItem(),"1",
""+qyGroup1.get(k),"","","",zfGroup2.get(zf).get(0).getRemark());
} else if (3<=qyGroup1.get(k)&&qyGroup1.get(k)<=4) {
//row.createCell(8).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,zfGroup2.get(zf).get(0).getEnterpriseName(),zfGroup2.get(zf).get(0).getBureauDeptName(),
zfGroup2.get(zf).get(0).getLawEnforcerTwo(),zfGroup2.get(zf).get(0).getLawEnforcementItem(),"1",
"",""+qyGroup1.get(k),"","",zfGroup2.get(zf).get(0).getRemark());
} else if (5<=qyGroup1.get(k)&&qyGroup1.get(k)<=6) {
//row.createCell(9).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,zfGroup2.get(zf).get(0).getEnterpriseName(),zfGroup2.get(zf).get(0).getBureauDeptName(),
zfGroup2.get(zf).get(0).getLawEnforcerTwo(),zfGroup2.get(zf).get(0).getLawEnforcementItem(),"1",
"","",""+qyGroup1.get(k),"",zfGroup2.get(zf).get(0).getRemark());
}else {
//row.createCell(10).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,zfGroup2.get(zf).get(0).getEnterpriseName(),zfGroup2.get(zf).get(0).getBureauDeptName(),
zfGroup2.get(zf).get(0).getLawEnforcerTwo(),zfGroup2.get(zf).get(0).getLawEnforcementItem(),"1",
"","","",""+qyGroup1.get(k),zfGroup2.get(zf).get(0).getRemark());
}
setStyle(cellList,row,styleRow3);
}else{
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, (int) (rowNum+zfGroup1.get(zf)),3,3));//合并执法
hbStyle(rowNum+1, (int) (rowNum+zfGroup1.get(zf)),3,3,sheet);
//以同企业、执法内,以执法人员分组
Map<String, Long> ryGroup1 = zfGroup2.get(zf).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcerTwo, Collectors.counting()));
Map<String, List<EnforcementCheckStatistics>> ryGroup2 = zfGroup2.get(zf).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcerTwo));
for (String ry : ryGroup2.keySet()) {
if(ryGroup1.get(ry)<2){
HSSFRow row = sheet.createRow(++rowNum);
/* row.createCell(0).setCellValue(i+1);
row.createCell(1).setCellValue(area);
row.createCell(2).setCellValue(ryGroup2.get(ry).get(0).getEnterpriseName());
row.createCell(3).setCellValue(ryGroup2.get(ry).get(0).getBureauDeptName());
row.createCell(4).setCellValue(ryGroup2.get(ry).get(0).getLawEnforcerTwo());
row.createCell(5).setCellValue(ryGroup2.get(ry).get(0).getLawEnforcementItem());
row.createCell(6).setCellValue(1);
row.createCell(11).setCellValue(ryGroup2.get(ry).get(0).getRemark());*/
List<String> cellList=new ArrayList<>();
if(qyGroup1.get(k)<3){
//row.createCell(7).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,ryGroup2.get(ry).get(0).getEnterpriseName(),ryGroup2.get(ry).get(0).getBureauDeptName(),
ryGroup2.get(ry).get(0).getLawEnforcerTwo(),ryGroup2.get(ry).get(0).getLawEnforcementItem(),"1",
""+qyGroup1.get(k),"","","",ryGroup2.get(ry).get(0).getRemark());
} else if (3<=qyGroup1.get(k)&&qyGroup1.get(k)<=4) {
//row.createCell(8).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,ryGroup2.get(ry).get(0).getEnterpriseName(),ryGroup2.get(ry).get(0).getBureauDeptName(),
ryGroup2.get(ry).get(0).getLawEnforcerTwo(),ryGroup2.get(ry).get(0).getLawEnforcementItem(),"1",
"",""+qyGroup1.get(k),"","",ryGroup2.get(ry).get(0).getRemark());
} else if (5<=qyGroup1.get(k)&&qyGroup1.get(k)<=6) {
//row.createCell(9).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,ryGroup2.get(ry).get(0).getEnterpriseName(),ryGroup2.get(ry).get(0).getBureauDeptName(),
ryGroup2.get(ry).get(0).getLawEnforcerTwo(),ryGroup2.get(ry).get(0).getLawEnforcementItem(),"1",
"","",""+qyGroup1.get(k),"",ryGroup2.get(ry).get(0).getRemark());
}else {
//row.createCell(10).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,ryGroup2.get(ry).get(0).getEnterpriseName(),ryGroup2.get(ry).get(0).getBureauDeptName(),
ryGroup2.get(ry).get(0).getLawEnforcerTwo(),ryGroup2.get(ry).get(0).getLawEnforcementItem(),"1",
"","","",""+qyGroup1.get(k),ryGroup2.get(ry).get(0).getRemark());
}
setStyle(cellList,row,styleRow3);
}else {
sheet.addMergedRegion(new CellRangeAddress(rowNum+1, (int) (rowNum+ryGroup1.get(ry)),4,4));//合并人员
hbStyle(rowNum+1, (int) (rowNum+ryGroup1.get(ry)),4,4,sheet);
//以同企业、执法、执法人员内,以执法事项分组
Map<String, Long> sxGroup1 = ryGroup2.get(ry).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcementItem, Collectors.counting()));
Map<String, List<EnforcementCheckStatistics>> sxGroup2 = ryGroup2.get(ry).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcementItem));
for (String sx : sxGroup2.keySet()) {
HSSFRow row = sheet.createRow(++rowNum);
/*row.createCell(0).setCellValue(i+1);
row.createCell(1).setCellValue(area);
row.createCell(2).setCellValue(sxGroup2.get(sx).get(0).getEnterpriseName());
row.createCell(3).setCellValue(sxGroup2.get(sx).get(0).getBureauDeptName());
row.createCell(4).setCellValue(sxGroup2.get(sx).get(0).getLawEnforcerTwo());
row.createCell(5).setCellValue(sxGroup2.get(sx).get(0).getLawEnforcementItem());
row.createCell(6).setCellValue(sxGroup1.get(sx));
row.createCell(11).setCellValue(sxGroup2.get(sx).get(0).getRemark());*/
List<String> cellList=new ArrayList<>();
if(qyGroup1.get(k)<3){
//row.createCell(7).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,sxGroup2.get(sx).get(0).getEnterpriseName(),sxGroup2.get(sx).get(0).getBureauDeptName(),
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),"1",
""+qyGroup1.get(k),"","","",sxGroup2.get(sx).get(0).getRemark());
} else if (3<=qyGroup1.get(k)&&qyGroup1.get(k)<=4) {
//row.createCell(8).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,sxGroup2.get(sx).get(0).getEnterpriseName(),sxGroup2.get(sx).get(0).getBureauDeptName(),
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),"1",
"",""+qyGroup1.get(k),"","",sxGroup2.get(sx).get(0).getRemark());
} else if (5<=qyGroup1.get(k)&&qyGroup1.get(k)<=6) {
//row.createCell(9).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,sxGroup2.get(sx).get(0).getEnterpriseName(),sxGroup2.get(sx).get(0).getBureauDeptName(),
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),"1",
"","",""+qyGroup1.get(k),"",sxGroup2.get(sx).get(0).getRemark());
}else {
//row.createCell(10).setCellValue(qyGroup1.get(k));
Collections.addAll(cellList,""+(i+1),area,sxGroup2.get(sx).get(0).getEnterpriseName(),sxGroup2.get(sx).get(0).getBureauDeptName(),
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),"1",
"","","",""+qyGroup1.get(k),sxGroup2.get(sx).get(0).getRemark());
}
setStyle(cellList,row,styleRow3);
if (sxGroup1.get(sx) >= 2) {
sheet.addMergedRegion(new CellRangeAddress(rowNum, (int) (rowNum - 1 + sxGroup1.get(sx)), 5, 5));//合并事项
sheet.addMergedRegion(new CellRangeAddress(rowNum, (int) (rowNum - 1 + sxGroup1.get(sx)), 6, 6));
hbStyle(rowNum, (int) (rowNum - 1 + sxGroup1.get(sx)), 5, 5,sheet);
hbStyle(rowNum, (int) (rowNum - 1 + sxGroup1.get(sx)), 6, 6,sheet);
hbStyle(rowNum, (int) (rowNum - 1 + sxGroup1.get(sx)), 11, 11,sheet);
rowNum = (int) (rowNum - 1 + sxGroup1.get(sx));
}
}
}
}
}
}
}
}
}else{
rowNum++;
HSSFRow row=sheet.createRow(rowNum);
List<String> cellList=new ArrayList<>();
Collections.addAll(cellList,""+(i+1),area,"","","","","","","","","","");
setStyle(cellList,row,styleRow3);
}
}
//输出Excel文件
try {
//wb.write(new File("D:/code/执法监督码使用情况统计.xls"));
FileOutputStream foutputStream = new FileOutputStream("执法监督码使用情况统计.xls");
wb.write(foutputStream);
wb.close();
foutputStream.close();
response.setContentType("application/x-xls");
response.setHeader("Content-Disposition", "attachment; filename="+ URLEncoder.encode("执法监督码使用情况统计.xls","utf-8"));
OutputStream outputStream = response.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(new File("执法监督码使用情况统计.xls"));
int length;
byte[] buffer = new byte[1024];
while ((length = fileInputStream.read(buffer)) > 0) {
outputStream.write(buffer, 0, length);
}
fileInputStream.close();
outputStream.flush();
File file=new File("执法监督码使用情况统计.xls");
if(file.delete()){
System.out.println("本地删除成功");
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

33
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnforcementCheckStatisticsMapper.xml

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zdxt.code.mapper.EnforcementCheckStatisticsMapper">
<resultMap type="EnforcementCheckStatistics" id="EnforcementCheckStatisticsResult">
<result property="id" column="id"/>
<result property="bureauDeptName" column="bureau_dept_name"/>
<result property="bureauDeptId" column="bureau_dept_id"/>
<result property="lawEnforcementId" column="law_enforcement_id"/>
<result property="enterpriseName" column="enterprise_name"/>
<result property="enterpriseNumber" column="enterprise_number"/>
<result property="lawEnforcementItem" column="law_enforcement_item"/>
<result property="deptName" column="dept_name"/>
<result property="remark" column="remark"/>
<result property="depId" column="dep_id"/>
</resultMap>
<select id="selectEnforcementCheckStatisticsList" parameterType="EnforcementCheckStatistics" resultMap="EnforcementCheckStatisticsResult">
select e.bureau_dept_name,e.bureau_dept_id,e.law_enforcement_id,e.enterprise_number,e.enterprise_name,concat(e.law_enforcer,",",e.law_enforcer_two)as lawEnforcerTwo,e.law_enforcement_item,e.remark
from enforcement_registration e
inner join sys_dept s on e.law_enforcement_id=s.dept_id
inner join enterprise_information i on e.enterprise_number=i.enterprise_number
where find_in_set(#{deptId},s.ancestors) and (year(e.create_time)=#{year}) and (month(e.create_time)=#{month})
order by e.enterprise_name
</select>
<select id="selectAllAreaList" parameterType="EnforcementCheckStatistics" resultMap="EnforcementCheckStatisticsResult">
select dept_id,dept_Name from sys_dept where parent_id=(select dept_id from sys_dept where dept_Name="区") order by dept_id asc
</select>
</mapper>
Loading…
Cancel
Save