@ -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 > inOrder List, Map < String , List < EnforcementCheckStatistics > > list , List < EnterpriseStreet > enterpriseStree t ) {
//创建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 ) ;
}
}
}