Browse Source

excel导出2

v3
zouyx 2 years ago
parent
commit
2b4afa1099
  1. 40
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/EnforcementCheckStatisticsController.java
  2. 54
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnterpriseStreet.java
  3. 12
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnforcementCheckStatisticsMapper.java
  4. 21
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnterpriseStreetMapper.java
  5. 33
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/EnforcementCheckStatisticsService.java
  6. 273
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnforcementCheckStatisticsImpl.java
  7. 14
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnforcementCheckStatisticsMapper.xml
  8. 25
      lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnterpriseStreetMapper.xml

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

@ -3,19 +3,18 @@ package com.zdxt.code.controller;
import cn.hutool.http.server.HttpServerResponse;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import com.zdxt.code.domain.EnterpriseStreet;
import com.zdxt.code.service.EnforcementCheckStatisticsService;
import com.zdxt.common.ZDResponse;
import com.zdxt.common.controller.BaseController;
import com.zdxt.common.util.StringUtils;
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.bind.annotation.*;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
@ -48,24 +47,45 @@ public class EnforcementCheckStatisticsController extends BaseController {
@GetMapping ("/queryList/{year}/{month}")
@ResponseBody
public void queryList(HttpServletResponse response, @PathVariable String year, @PathVariable String month)
public void queryList(HttpServletResponse response, @PathVariable String year, @PathVariable List<Integer> month)
{
EnforcementCheckStatistics enforcementCheckStatistics=new EnforcementCheckStatistics();
String month1=StringUtils.join(month,",");
enforcementCheckStatistics.setYear(year);
enforcementCheckStatistics.setMonth(month);
enforcementCheckStatistics.setMonth(month1);
System.out.println(enforcementCheckStatistics);
//查出区下所有区的id
List<EnforcementCheckStatistics> areaAllList=enforcementCheckStatisticsService.selectAllAreaList();
//存放以区ip为键,该ip下的所有记录为值
Map<String,List<EnforcementCheckStatistics>> list=new HashMap<>();
for(int i=0;i<areaAllList.size();i++){
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);
EnforcementCheckStatistics enforcementCheckStatistics1 = areaAllList.get(i);
//查找出该区下的所有执法记录
List<EnforcementCheckStatistics> statisticslist = enforcementCheckStatisticsService.selectEnforcementCheckStatisticsList(enforcementCheckStatistics1);
//以区id为键,区下所有执法记录为值
list.put(areaAllList.get(i).getDeptId(),statisticslist);
list.put(areaAllList.get(i).getDeptName(), statisticslist);//区名为键
//list.put(areaAllList.get(i).getDeptId(), statisticslist);
}
enforcementCheckStatisticsService.excelExport(response,enforcementCheckStatistics,areaAllList,list);
EnforcementCheckStatistics e2=new EnforcementCheckStatistics();
e2.setYear(year);
e2.setMonth(month1);
list.put("市",enforcementCheckStatisticsService.selectEnforcementCheckStatisticsCityList(e2));//区外也加入
List<String> inOrderList=new ArrayList<>();
Collections.addAll(inOrderList,"福田区","罗湖区","盐田区","南山区","宝安区","龙岗区","龙华区",
"坪山区","光明区","大鹏新区","深汕特别合作区","市");
List<EnterpriseStreet> enterpriseStreet=enforcementCheckStatisticsService.selectEnterpriseStreetList();
enforcementCheckStatisticsService.excelExport(response,enforcementCheckStatistics,inOrderList,list,enterpriseStreet);
}
@GetMapping ("/queryEnterpriseAddressList")
@ResponseBody
public void queryEnterpriseAddressList(HttpServletResponse response, @RequestParam String enterpriseAddress)
{
EnterpriseStreet enterpriseStreet=new EnterpriseStreet();
enterpriseStreet.setEnterpriseAddress(enterpriseAddress);
List<EnterpriseStreet> enterpriseStreetList=enforcementCheckStatisticsService.selectEnterpriseName(enterpriseStreet);
System.out.println(enterpriseStreetList);
enforcementCheckStatisticsService.excelExport2(response,enterpriseStreetList,enterpriseAddress);
}
}

54
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnterpriseStreet.java

@ -0,0 +1,54 @@
package com.zdxt.code.domain;
import com.zdxt.common.BaseDomain;
import lombok.Data;
import java.util.Date;
public class EnterpriseStreet{
private String id;
private String enterpriseAddress;
private String enterpriseName;
private String enterpriseNumber;
private String createTime;
public String getEnterpriseAddress() {
return enterpriseAddress;
}
public void setEnterpriseAddress(String enterpriseAddress) {
this.enterpriseAddress = enterpriseAddress;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCreateTime() {
return createTime;
}
public void setCreateTime(String createTime) {
this.createTime = createTime;
}
public String getEnterpriseName() {
return enterpriseName;
}
public void setEnterpriseName(String enterpriseName) {
this.enterpriseName = enterpriseName;
}
public String getEnterpriseNumber() {
return enterpriseNumber;
}
public void setEnterpriseNumber(String enterpriseNumber) {
this.enterpriseNumber = enterpriseNumber;
}
}

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

@ -1,6 +1,8 @@
package com.zdxt.code.mapper;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import com.zdxt.code.domain.EnterpriseStreet;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -8,13 +10,21 @@ import java.util.List;
public interface EnforcementCheckStatisticsMapper {
/**
* 查询行政执法检查统计
* 查询行政执法检查统计按区查
*
* @param enforcementCheckStatistics
* @return List
*/
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics);
/**
* 查询行政执法检查统计查区以外
*
* @param
* @return List
*/
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsCityList(EnforcementCheckStatistics enforcementCheckStatistics);
/**
* 查询所有区的id和name
* @param

21
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnterpriseStreetMapper.java

@ -0,0 +1,21 @@
package com.zdxt.code.mapper;
import com.zdxt.code.domain.EnterpriseStreet;
import java.util.List;
public interface EnterpriseStreetMapper {
/**
* 查询带市区街道并分组统计的记录
* @param
* @return List
*/
public List<EnterpriseStreet> selectEnterpriseStreetList();
/**
* 查询符合地址条件的企业名称及地址
* @param
* @return List
*/
public List<EnterpriseStreet> selectEnterpriseName(EnterpriseStreet enterpriseStreet);
}

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

@ -1,7 +1,7 @@
package com.zdxt.code.service;
import cn.hutool.http.server.HttpServerResponse;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import com.zdxt.code.domain.EnterpriseStreet;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@ -9,15 +9,40 @@ import java.util.Map;
public interface EnforcementCheckStatisticsService {
/**
*查询该区下的所有执法记录
*查询该区下的所有执法记录按区查
*/
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics);
/**
*查询该区下的所有执法记录区以外
*/
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsCityList(EnforcementCheckStatistics enforcementCheckStatistics);
/**
*查询区下的所有执法部门
*/
public List<EnforcementCheckStatistics> selectAllAreaList();
/**
*excel导出
* 查询带市区街道并分组统计的记录
* @param
* @return List
*/
public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List<EnforcementCheckStatistics> areaAllList, Map<String, List<EnforcementCheckStatistics>> list);
public List<EnterpriseStreet> selectEnterpriseStreetList();
/**
* 查询符合地址条件的企业名称及地址
* @param
* @return List
*/
public List<EnterpriseStreet> selectEnterpriseName(EnterpriseStreet enterpriseStreet);
/**
*excel导出(执法监督码使用情况)
*/
public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List<String> areaAllList, Map<String, List<EnforcementCheckStatistics>> list, List<EnterpriseStreet> enterpriseStreet);
/**
*excel导出(企业信息)
*/
public void excelExport2(HttpServletResponse response, List<EnterpriseStreet> enterpriseStreetList,String enterpriseAddress);
}

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

@ -2,8 +2,10 @@ package com.zdxt.code.service.impl;
import cn.hutool.http.server.HttpServerResponse;
import com.zdxt.code.domain.EnforcementCheckStatistics;
import com.zdxt.code.domain.EnterpriseStreet;
import com.zdxt.code.mapper.EnforcementCheckStatisticsMapper;
import com.zdxt.code.mapper.EnterpriseStreetMapper;
import com.zdxt.code.service.EnforcementCheckStatisticsService;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.*;
@ -15,16 +17,18 @@ 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.*;
import java.util.stream.Collectors;
import static com.zdxt.common.util.StringUtils.substring;
import static org.apache.commons.io.FilenameUtils.concat;
@Service
public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatisticsService {
@Autowired
private EnforcementCheckStatisticsMapper enforcementCheckStatisticsMapper;
@Autowired
private EnterpriseStreetMapper enterpriseStreetMapper;
/**
*将样式应用到单元格
*/
@ -53,6 +57,15 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics) {
return enforcementCheckStatisticsMapper.selectEnforcementCheckStatisticsList(enforcementCheckStatistics);
}
/**
*查询区下的所有执法部门
*/
@Override
public List<EnforcementCheckStatistics> selectEnforcementCheckStatisticsCityList(EnforcementCheckStatistics enforcementCheckStatistics) {
return enforcementCheckStatisticsMapper.selectEnforcementCheckStatisticsCityList(enforcementCheckStatistics);
}
/**
*查询区下的所有执法部门
*/
@ -60,11 +73,26 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
public List<EnforcementCheckStatistics> selectAllAreaList() {
return enforcementCheckStatisticsMapper.selectAllAreaList();
}
/**
* 查询带市区街道并分组统计的记录
*/
@Override
public List<EnterpriseStreet> selectEnterpriseStreetList(){
return enterpriseStreetMapper.selectEnterpriseStreetList();
}
@Override
public List<EnterpriseStreet> selectEnterpriseName(EnterpriseStreet enterpriseStreet) {
return enterpriseStreetMapper.selectEnterpriseName(enterpriseStreet);
}
/**
*导出excel
*/
@Override
public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List<EnforcementCheckStatistics> areaAllList, Map<String, List<EnforcementCheckStatistics>> list){
public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List<String> inOrderList, Map<String, List<EnforcementCheckStatistics>> list,List<EnterpriseStreet> enterpriseStreet){
//创建HSSFWorkbook对象(excel文档对象)
HSSFWorkbook wb=new HSSFWorkbook();
//建立新的sheet对象(sheet:表单)
@ -129,32 +157,17 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
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()){//判断执法记录是否为空
//遍历地区list
for(int i=0;i<inOrderList.size();i++){
String area=inOrderList.get(i);//取出地区名
if(list.get(area)!=null){//判断该区执法记录是否为空
List<EnforcementCheckStatistics> e=list.get(area);
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));
@ -162,22 +175,15 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
hbStyle(rowNum+1, rowNum+e.size(),1,1,sheet);
}
//非空时将执法以企业划分<企业税号,合计>
Map<String,Long> qyGroup1=e.stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getEnterpriseNumber,Collectors.counting()));
Map<String,Long> qyGroup1=e.stream().collect(Collectors.groupingBy((m -> m.getEnterpriseNumber()== null ?
"" : m.getEnterpriseNumber()),Collectors.counting()));
//将以企业分好组的数据取出
Map<String,List<EnforcementCheckStatistics>> qyGroup2=e.stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getEnterpriseNumber));
Map<String,List<EnforcementCheckStatistics>> qyGroup2=e.stream().collect(Collectors.groupingBy(m -> m.getEnterpriseNumber()== null ?
"" : m.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",
@ -195,38 +201,28 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
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));
Map<String, Long> zfGroup1 = qyGroup2.get(k).stream().collect(Collectors.groupingBy((m -> m.getDeptName()== null ?
"" : m.getDeptName()), Collectors.counting()));
Map<String, List<EnforcementCheckStatistics>> zfGroup2 = qyGroup2.get(k).stream().collect(Collectors.groupingBy(m -> m.getDeptName()== null ?
"" : m.getDeptName()));
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());
@ -236,37 +232,27 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
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));
Map<String, Long> ryGroup1 = zfGroup2.get(zf).stream().collect(Collectors.groupingBy((m -> m.getLawEnforcerTwo()== null ?
"" : m.getLawEnforcerTwo()), Collectors.counting()));
Map<String, List<EnforcementCheckStatistics>> ryGroup2 = zfGroup2.get(zf).stream().collect(Collectors.groupingBy(m -> m.getLawEnforcerTwo()== null ?
"" : m.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());
@ -276,38 +262,28 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
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));
Map<String, Long> sxGroup1 = ryGroup2.get(ry).stream().collect(Collectors.groupingBy((m -> m.getLawEnforcementItem()== null ?
"" : m.getLawEnforcementItem()), Collectors.counting()));
Map<String, List<EnforcementCheckStatistics>> sxGroup2 = ryGroup2.get(ry).stream().collect(Collectors.groupingBy(m -> m.getLawEnforcementItem()== null ?
"" : m.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",
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),sxGroup1.get(sx)+"",
""+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",
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),sxGroup1.get(sx)+"",
"",""+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",
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),sxGroup1.get(sx)+"",
"","",""+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",
sxGroup2.get(sx).get(0).getLawEnforcerTwo(),sxGroup2.get(sx).get(0).getLawEnforcementItem(),sxGroup1.get(sx)+"",
"","","",""+qyGroup1.get(k),sxGroup2.get(sx).get(0).getRemark());
}
setStyle(cellList,row,styleRow3);
@ -318,7 +294,6 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
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));
}
}
}
@ -336,6 +311,92 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
setStyle(cellList,row,styleRow3);
}
}
//第二个sheet
HSSFSheet sheet2= wb.createSheet("街道企业统计");
int rowNum2=0;
HSSFRow s2Row1=sheet2.createRow(rowNum2);
List<String> s2HeadRowList=new ArrayList<>();
Collections.addAll(s2HeadRowList,"区域","街道","企业数量");
setStyle(s2HeadRowList,s2Row1,styleRow1);
sheet2.setDefaultColumnWidth(20);//全局
List<String> inOrderList2=new ArrayList<>();
Collections.addAll(inOrderList2,"福田区","罗湖区","盐田区","南山区","宝安区","龙岗区","龙华区",
"坪山区","光明区","大鹏新区","深汕特别合作区","其他");
Map<String, List<EnterpriseStreet>> map1=enterpriseStreet.stream().collect(Collectors.groupingBy(item->(inOrderList2.contains(item.getEnterpriseAddress().substring(3,6))?item.getEnterpriseAddress().substring(3,6):"其他")));
//List<EnterpriseStreet> es1= (List<EnterpriseStreet>) map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,10).equals("深汕特别合作区"));
System.out.println("第317行:"+map1.get("其他"));
List<EnterpriseStreet> es1= map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,10).equals("深汕特别合作区")).collect(Collectors.toList());
map1.put("深汕特别合作区",es1);
//List<EnterpriseStreet> es2= (List<EnterpriseStreet>) map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,7).equals("大鹏新区"));
List<EnterpriseStreet> es2= map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,7).equals("大鹏新区")).collect(Collectors.toList());
map1.put("大鹏新区",es2);
//List<EnterpriseStreet> es3= (List<EnterpriseStreet>) map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,7).equals("光明新区"));
List<EnterpriseStreet> es3= map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,7).equals("光明新区")).collect(Collectors.toList());
/*System.out.println("第324行:"+es3);
System.out.println("第325行:"+map1.get("光明区"));*/
map1.get("光明区").addAll(es3);
//删除在”其他“中多余的数据
for(int i = 0 ;i < map1.get("其他").size(); i++){
if(map1.get("其他").get(i).getEnterpriseAddress().contains("深汕特别合作区")){
map1.get("其他").remove(i);
}else if(map1.get("其他").get(i).getEnterpriseAddress().contains("光明新区")){
map1.get("其他").remove(i);
}else if(map1.get("其他").get(i).getEnterpriseAddress().contains("大鹏新区")){
map1.get("其他").remove(i);
}
}
/*System.out.println("第327行:"+map1.get("光明区"));*/
for(String area:inOrderList2){
if(map1.get(area)!=null) {
if(area.equals("其他")){
HSSFRow s2Row = sheet2.createRow(++rowNum2);
HSSFCell s2cell1 = s2Row.createCell(0);
HSSFCell s2cell2 = s2Row.createCell(1);
HSSFCell s2cell3 = s2Row.createCell(2);
s2cell1.setCellValue("其他");
s2cell3.setCellValue(map1.get("其他").size());
s2cell1.setCellStyle(styleRow3);
s2cell2.setCellStyle(styleRow3);
s2cell3.setCellStyle(styleRow3);
}else {
Map<String, List<EnterpriseStreet>> jdList = map1.get(area).stream().collect(Collectors.groupingBy(item -> item.getEnterpriseAddress().contains("街道") ? item.getEnterpriseAddress().substring(item.getEnterpriseAddress().indexOf("区") + 1, item.getEnterpriseAddress().indexOf("街道") + 2) : "其他"));
//<街道名字,数量>
Map<String, Integer> jdNum = new HashMap<>();
for (String jd : jdList.keySet()) {
HSSFRow s2Row = sheet2.createRow(++rowNum2);
HSSFCell s2cell1 = s2Row.createCell(0);
HSSFCell s2cell2 = s2Row.createCell(1);
HSSFCell s2cell3 = s2Row.createCell(2);
s2cell1.setCellValue(area);
s2cell2.setCellValue(jd);
s2cell3.setCellValue(jdList.get(jd).size());
s2cell1.setCellStyle(styleRow3);
s2cell2.setCellStyle(styleRow3);
s2cell3.setCellStyle(styleRow3);
}
/*if(!jdList.isEmpty()){
System.out.println("第343行:"+rowNum2);
sheet2.addMergedRegion(new CellRangeAddress(rowNum2 - jdList.size() + 1, rowNum2, 0, 0));
hbStyle(rowNum2 - jdList.size()+1, rowNum2, 0, 0,sheet2);
}*/
if (jdList.size() > 1) {
/*System.out.println("第351行:"+rowNum2);*/
sheet2.addMergedRegion(new CellRangeAddress(rowNum2 - jdList.size() + 1, rowNum2, 0, 0));
hbStyle(rowNum2 - jdList.size() + 1, rowNum2, 0, 0, sheet2);
}
}
}else{
HSSFRow s2Row = sheet2.createRow(++rowNum2);
HSSFCell s2cell1 = s2Row.createCell(0);
HSSFCell s2cell2 = s2Row.createCell(1);
HSSFCell s2cell3 = s2Row.createCell(2);
s2cell1.setCellValue(area);
s2cell1.setCellStyle(styleRow3);
s2cell2.setCellStyle(styleRow3);
s2cell3.setCellStyle(styleRow3);
}
}
//输出Excel文件
try {
//wb.write(new File("D:/code/执法监督码使用情况统计.xls"));
@ -364,5 +425,51 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic
}
@Override
public void excelExport2(HttpServletResponse response, List<EnterpriseStreet> enterpriseStreetList,String enterpriseAddress) {
//创建HSSFWorkbook对象(excel文档对象)
HSSFWorkbook wb=new HSSFWorkbook();
//建立新的sheet对象(sheet:表单)
HSSFSheet sheet= wb.createSheet(enterpriseAddress+"企业信息.xls");
sheet.setDefaultColumnWidth(20);
int rowNum=0;
HSSFRow row1=sheet.createRow(++rowNum);
row1.createCell(0).setCellValue("企业名称");
row1.createCell(1).setCellValue("企业纳税识别号");
row1.createCell(2).setCellValue("企业地址");
row1.createCell(3).setCellValue("创建时间");
for(int i=0;i<enterpriseStreetList.size();i++)
{
HSSFRow row=sheet.createRow(++rowNum);
row.createCell(0).setCellValue(enterpriseStreetList.get(i).getEnterpriseName());
row.createCell(1).setCellValue(enterpriseStreetList.get(i).getEnterpriseNumber());
row.createCell(2).setCellValue(enterpriseStreetList.get(i).getEnterpriseAddress());
row.createCell(3).setCellValue(enterpriseStreetList.get(i).getCreateTime());
}
try {
FileOutputStream foutputStream = new FileOutputStream(enterpriseAddress+"企业信息.xls");
wb.write(foutputStream);
wb.close();
foutputStream.close();
response.setContentType("application/x-xls");
response.setHeader("Content-Disposition", "attachment; filename="+ URLEncoder.encode(enterpriseAddress+"企业信息.xls","utf-8"));
OutputStream outputStream = response.getOutputStream();
FileInputStream fileInputStream = new FileInputStream(new File(enterpriseAddress+"企业信息.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(enterpriseAddress+"企业信息.xls");
if(file.delete()){
System.out.println("本地删除成功");
}
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}

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

@ -14,15 +14,23 @@
<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
select e.bureau_dept_name,e.bureau_dept_id,e.law_enforcement_id,e.enterprise_number,i.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)in(${month}))
order by e.enterprise_name
</select>
<select id="selectEnforcementCheckStatisticsCityList" parameterType="EnforcementCheckStatistics" resultMap="EnforcementCheckStatisticsResult">
select e.bureau_dept_name,e.bureau_dept_id,e.law_enforcement_id,e.enterprise_number,i.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})
where !find_in_set((select dept_id from sys_dept where dept_name="区"),s.ancestors) and (year(e.create_time)=#{year}) and (month(e.create_time)in(${month}))
order by e.enterprise_name
</select>

25
lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnterpriseStreetMapper.xml

@ -0,0 +1,25 @@
<?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.EnterpriseStreetMapper">
<resultMap id="EnterpriseStreetResult" type="EnterpriseStreet">
<result property="id" column="id"/>
<result property="enterpriseAddress" column="enterprise_address"/>
<result property="enterpriseName" column="enterprise_name"/>
<result property="enterpriseNumber" column="enterprise_number"/>
<result property="createTime" column="create_time"/>
</resultMap>
<select id="selectEnterpriseStreetList" parameterType="EnterpriseStreet" resultMap="EnterpriseStreetResult">
select enterprise_address from enterprise_information
</select>
<select id="selectEnterpriseName" parameterType="EnterpriseStreet" resultMap="EnterpriseStreetResult">
select enterprise_name,enterprise_address,enterprise_number,create_time from enterprise_information
<where>
<if test="enterpriseAddress != null and enterpriseAddress != '' " >and enterprise_address like concat('%',#{enterpriseAddress},'%')</if>
</where>
order by create_time
</select>
</mapper>
Loading…
Cancel
Save