diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/EnforcementCheckStatisticsController.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/EnforcementCheckStatisticsController.java index fbe0caef..3c37d26a 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/controller/EnforcementCheckStatisticsController.java +++ b/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 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 areaAllList=enforcementCheckStatisticsService.selectAllAreaList(); //存放以区ip为键,该ip下的所有记录为值 Map> list=new HashMap<>(); - for(int i=0;i 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 inOrderList=new ArrayList<>(); + Collections.addAll(inOrderList,"福田区","罗湖区","盐田区","南山区","宝安区","龙岗区","龙华区", + "坪山区","光明区","大鹏新区","深汕特别合作区","市"); + List 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 enterpriseStreetList=enforcementCheckStatisticsService.selectEnterpriseName(enterpriseStreet); + System.out.println(enterpriseStreetList); + enforcementCheckStatisticsService.excelExport2(response,enterpriseStreetList,enterpriseAddress); } } diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnterpriseStreet.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/domain/EnterpriseStreet.java new file mode 100644 index 00000000..15690941 --- /dev/null +++ b/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; + } +} diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnforcementCheckStatisticsMapper.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnforcementCheckStatisticsMapper.java index e0abc66c..5f717491 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnforcementCheckStatisticsMapper.java +++ b/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 selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics); + /** + * 查询行政执法检查统计查区以外 + * + * @param + * @return List + */ + public List selectEnforcementCheckStatisticsCityList(EnforcementCheckStatistics enforcementCheckStatistics); + /** * 查询所有区的id和name * @param diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnterpriseStreetMapper.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/mapper/EnterpriseStreetMapper.java new file mode 100644 index 00000000..9ead7fa0 --- /dev/null +++ b/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 selectEnterpriseStreetList(); + + /** + * 查询符合地址条件的企业名称及地址 + * @param + * @return List + */ + public List selectEnterpriseName(EnterpriseStreet enterpriseStreet); +} diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/EnforcementCheckStatisticsService.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/EnforcementCheckStatisticsService.java index 6cf081be..cee08a10 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/EnforcementCheckStatisticsService.java +++ b/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 selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics); + /** + *查询该区下的所有执法记录区以外 + */ + public List selectEnforcementCheckStatisticsCityList(EnforcementCheckStatistics enforcementCheckStatistics); /** *查询区下的所有执法部门 */ public List selectAllAreaList(); + /** - *excel导出 + * 查询带市区街道并分组统计的记录 + * @param + * @return List */ - public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List areaAllList, Map> list); + public List selectEnterpriseStreetList(); + + /** + * 查询符合地址条件的企业名称及地址 + * @param + * @return List + */ + public List selectEnterpriseName(EnterpriseStreet enterpriseStreet); + + /** + *excel导出(执法监督码使用情况) + */ + public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List areaAllList, Map> list, List enterpriseStreet); + + /** + *excel导出(企业信息) + */ + public void excelExport2(HttpServletResponse response, List enterpriseStreetList,String enterpriseAddress); + } diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnforcementCheckStatisticsImpl.java b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnforcementCheckStatisticsImpl.java index 8933d066..e866edad 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/java/com/zdxt/code/service/impl/EnforcementCheckStatisticsImpl.java +++ b/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 selectEnforcementCheckStatisticsList(EnforcementCheckStatistics enforcementCheckStatistics) { return enforcementCheckStatisticsMapper.selectEnforcementCheckStatisticsList(enforcementCheckStatistics); } + + /** + *查询区下的所有执法部门 + */ + @Override + public List selectEnforcementCheckStatisticsCityList(EnforcementCheckStatistics enforcementCheckStatistics) { + return enforcementCheckStatisticsMapper.selectEnforcementCheckStatisticsCityList(enforcementCheckStatistics); + } + /** *查询区下的所有执法部门 */ @@ -60,11 +73,26 @@ public class EnforcementCheckStatisticsImpl implements EnforcementCheckStatistic public List selectAllAreaList() { return enforcementCheckStatisticsMapper.selectAllAreaList(); } + + /** + * 查询带市区街道并分组统计的记录 + */ + @Override + public List selectEnterpriseStreetList(){ + return enterpriseStreetMapper.selectEnterpriseStreetList(); + } + + @Override + public List selectEnterpriseName(EnterpriseStreet enterpriseStreet) { + return enterpriseStreetMapper.selectEnterpriseName(enterpriseStreet); + } + + /** *导出excel */ @Override - public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List areaAllList, Map> list){ + public void excelExport(HttpServletResponse response, EnforcementCheckStatistics enforcementCheckStatistics, List inOrderList, Map> list,List 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 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 e=list.get(areaAllList.get(i).getDeptId());//取出该地区下的所有执法记录 - String enterpriseName1=null; - if(!e.isEmpty()){//判断执法记录是否为空 + //遍历地区list + for(int i=0;i 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 qyGroup1=e.stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getEnterpriseNumber,Collectors.counting())); + Map qyGroup1=e.stream().collect(Collectors.groupingBy((m -> m.getEnterpriseNumber()== null ? + "" : m.getEnterpriseNumber()),Collectors.counting())); //将以企业分好组的数据取出 - Map> qyGroup2=e.stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getEnterpriseNumber)); + Map> 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 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 zfGroup1 = qyGroup2.get(k).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getBureauDeptName, Collectors.counting())); - Map> zfGroup2 = qyGroup2.get(k).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getBureauDeptName)); + Map zfGroup1 = qyGroup2.get(k).stream().collect(Collectors.groupingBy((m -> m.getDeptName()== null ? + "" : m.getDeptName()), Collectors.counting())); + Map> 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 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 ryGroup1 = zfGroup2.get(zf).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcerTwo, Collectors.counting())); - Map> ryGroup2 = zfGroup2.get(zf).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcerTwo)); + Map ryGroup1 = zfGroup2.get(zf).stream().collect(Collectors.groupingBy((m -> m.getLawEnforcerTwo()== null ? + "" : m.getLawEnforcerTwo()), Collectors.counting())); + Map> 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 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 sxGroup1 = ryGroup2.get(ry).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcementItem, Collectors.counting())); - Map> sxGroup2 = ryGroup2.get(ry).stream().collect(Collectors.groupingBy(EnforcementCheckStatistics::getLawEnforcementItem)); + Map sxGroup1 = ryGroup2.get(ry).stream().collect(Collectors.groupingBy((m -> m.getLawEnforcementItem()== null ? + "" : m.getLawEnforcementItem()), Collectors.counting())); + Map> 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 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 s2HeadRowList=new ArrayList<>(); + Collections.addAll(s2HeadRowList,"区域","街道","企业数量"); + setStyle(s2HeadRowList,s2Row1,styleRow1); + sheet2.setDefaultColumnWidth(20);//全局 + List inOrderList2=new ArrayList<>(); + Collections.addAll(inOrderList2,"福田区","罗湖区","盐田区","南山区","宝安区","龙岗区","龙华区", + "坪山区","光明区","大鹏新区","深汕特别合作区","其他"); + Map> map1=enterpriseStreet.stream().collect(Collectors.groupingBy(item->(inOrderList2.contains(item.getEnterpriseAddress().substring(3,6))?item.getEnterpriseAddress().substring(3,6):"其他"))); + //List es1= (List) map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,10).equals("深汕特别合作区")); + System.out.println("第317行:"+map1.get("其他")); + List es1= map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,10).equals("深汕特别合作区")).collect(Collectors.toList()); + map1.put("深汕特别合作区",es1); + //List es2= (List) map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,7).equals("大鹏新区")); + List es2= map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,7).equals("大鹏新区")).collect(Collectors.toList()); + map1.put("大鹏新区",es2); + //List es3= (List) map1.get("其他").stream().filter(item->item.getEnterpriseAddress().substring(3,7).equals("光明新区")); + List 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> jdList = map1.get(area).stream().collect(Collectors.groupingBy(item -> item.getEnterpriseAddress().contains("街道") ? item.getEnterpriseAddress().substring(item.getEnterpriseAddress().indexOf("区") + 1, item.getEnterpriseAddress().indexOf("街道") + 2) : "其他")); + //<街道名字,数量> + Map 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 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 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); + } + } + } diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnforcementCheckStatisticsMapper.xml b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnforcementCheckStatisticsMapper.xml index fe218302..cf066813 100644 --- a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnforcementCheckStatisticsMapper.xml +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnforcementCheckStatisticsMapper.xml @@ -14,15 +14,23 @@ - + + diff --git a/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnterpriseStreetMapper.xml b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnterpriseStreetMapper.xml new file mode 100644 index 00000000..acd3d33e --- /dev/null +++ b/lib/EmergencyService/zdxtLawEnforcementCodeService/src/main/resources/mapper/EnterpriseStreetMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + \ No newline at end of file