From 77d4f387e1247626713dbfcbfa33828cf5c5d2e4 Mon Sep 17 00:00:00 2001 From: wangzhijiang <12345678> Date: Thu, 19 May 2022 21:49:37 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E5=BA=93-=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E8=AF=A6=E6=83=85-=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3=20?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E9=A2=86=E5=9F=9F=E5=88=86=E7=BB=84.=20=20?= =?UTF-8?q?=20=20=E5=AF=BC=E5=87=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProjectLibraryBaseController.java | 22 ++ .../project/entity/ConditionAssessmentEO.java | 4 + .../project/enums/OperatorTypeEnum.java | 12 ++ .../mapper/ConditionAssessmentEOMapper.java | 9 + .../mapper/ProjectLawsInventoryEOMapper.java | 16 ++ .../mapper/ProjectTaskInventoryEOMapper.java | 36 ++++ .../xml/ConditionAssessmentEOMapper.xml | 17 ++ .../xml/ProjectLawsInventoryEOMapper.xml | 29 +++ .../xml/ProjectTaskInventoryEOMapper.xml | 72 +++++++ .../IConditionAssessmentEOService.java | 8 + .../service/IProjectLibraryBaseService.java | 11 + .../ConditionAssessmentEOServiceImpl.java | 37 ++++ .../impl/ProjectLibraryBaseServiceImpl.java | 190 +++++++++++++++++- 13 files changed, 459 insertions(+), 4 deletions(-) diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java index f17b026db..88dd4826a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/controller/ProjectLibraryBaseController.java @@ -173,5 +173,27 @@ public class ProjectLibraryBaseController extends JeroController getProjectDetailsStatisticsGroupByTerritory(@RequestParam Map params) { + Map data = projectLibraryBaseService.getProjectDetailsStatisticsGroupByTerritory(params); + return Result.OK((String)params.get("cut"),data); + } + + /** + * 导出excel + * + * @param request + * @param params + */ + @RequestMapping(value = "/exportProjectDetailsStatisticsGroupByTerritoryXls") + public void exportProjectDetailsStatisticsGroupByTerritoryXls(HttpServletResponse response,HttpServletRequest request, Map params) { + projectLibraryBaseService.exportProjectDetailsStatisticsGroupByTerritoryXls(response,request, params); + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ConditionAssessmentEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ConditionAssessmentEO.java index beeaa246c..7586da569 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ConditionAssessmentEO.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/entity/ConditionAssessmentEO.java @@ -80,4 +80,8 @@ public class ConditionAssessmentEO implements Serializable { @TableField(exist = false) private String cut; + + /**责任领域**/ + @TableField(exist = false) + private String dutyTerritory; } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java index 801282916..7b6862cd8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/enums/OperatorTypeEnum.java @@ -22,6 +22,18 @@ public enum OperatorTypeEnum { QUERY_TASK_INVENTORY_DETAIL("查询法规清单明细信息","queryTaskInventoryDetail"), UPDATE_TASK_INVENTORY_DETAIL("更新法规清单明细信息","updateTaskInventoryDetail"), UPDATE_DRE_TASK_STATUS("更新法规清单明细信息,dre任务状态","updateDreTaskStatus"), + + + /** + * 项目库 - 项目详情 统计查询 操作类型枚举 + */ + QUERY_CURRENT_PROJECT_STATUS_STATISTICS("查询当前项目状态统计","queryCurrentProjectStatusStatistics"), + QUERY_LISTING_TO_CONFIRM_STATISTICS("查询清单确认统计","queryListingToConfirmStatistics"), + QUERY_TASK_TO_CONFIRM_STATISTICS("查询任务确认统计","queryTaskToConfirmStatistics"), + QUERY_DESIGN_STATISTICS("查询设计符合性统计","queryDesignStatistics"), + QUERY_PREHOMO_STATISTICS("查询prehomo统计","queryPrehomoStatistics"), + QUERY_VERIFY_STATISTICS("查询验证符合性统计","queryVerifyStatistics"), + QUERY_CERTIFICATION_PROGRESS_STATISTICS("查询认证进度统计","queryCertificationProgressStatistics"), ; String name; diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java index 609d1c5ba..f9118ff5a 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ConditionAssessmentEOMapper.java @@ -20,4 +20,13 @@ public interface ConditionAssessmentEOMapper extends BaseMapper> getCurrentProjectStatusStatistics(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList); + + /** + * 根据 评估状态 查询列表 + * @param projectLawsInventoryIdList + * @param conditionAssessment + * @return + */ + List getProjectStatusAssessListByConditionAssessment(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList, + @Param("conditionAssessment") String conditionAssessment); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java index aa7af9818..3306200d3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectLawsInventoryEOMapper.java @@ -28,4 +28,20 @@ public interface ProjectLawsInventoryEOMapper extends BaseMapper> getTaskToConfirmStatistics(@Param("projectLibraryId")String projectLibraryId); + + /** + * 统计该项目中,某一个 清单确认状态的数据 根据领域分组 + * @param projectLibraryId 项目库id + * @param inventoryAffirmStatus 清单确认状态 + * @return + */ + List> getListingToConfirmStatisticsGroupByTerritory(@Param("projectLibraryId") String projectLibraryId,@Param("inventoryAffirmStatus") String inventoryAffirmStatus); + + /** + * 统计该项目中,某一个 任务确认状态的数据 根据领域分组 + * @param projectLibraryId + * @param taskAffirmStatus + * @return + */ + List> getTaskToConfirmStatisticsGroupByTerritory(@Param("projectLibraryId") String projectLibraryId, @Param("taskAffirmStatus") String taskAffirmStatus); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java index f5ee847d9..0e252ee67 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/ProjectTaskInventoryEOMapper.java @@ -40,4 +40,40 @@ public interface ProjectTaskInventoryEOMapper extends BaseMapper> getVerifyComplianceStatistice(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList); + + /** + * 统计该项目中,某一个 设计符合性流程 任务状态的数据 根据领域分组 + * @param projectLawsInventoryIdList + * @param designFlowTaskStatus + * @return + */ + List> getDesignComplianceStatisticeGroupByTerritory(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList, + @Param("designFlowTaskStatus") String designFlowTaskStatus); + + /** + * 统计该项目中,某一个 prehomo确认流程 任务状态的数据 根据领域分组 + * @param projectLawsInventoryIdList + * @param designFlowTaskStatus + * @return + */ + List> getPrehomoStatisticeGroupByTerritory(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList, + @Param("prehomoFlowTaskStatus") String designFlowTaskStatus); + + /** + * 统计该项目中,某一个 验证符合性确认流程 任务状态的数据 根据领域分组 + * @param projectLawsInventoryIdList + * @param verifyFlowTaskStatus + * @return + */ + List> getVerifyComplianceStatisticeGroupByTerritory(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList, + @Param("verifyFlowTaskStatus") String verifyFlowTaskStatus); + + /** + * 统计该项目中,某一个 认证进度的数据 根据领域分组 + * @param projectLawsInventoryIdList + * @param certificationProgress + * @return + */ + List> getCertificationProgressStatisticsGroupByTerritory(@Param("projectLawsInventoryIdList") List projectLawsInventoryIdList, + @Param("certificationProgress") String certificationProgress); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml index fda409366..d694b781d 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ConditionAssessmentEOMapper.xml @@ -12,6 +12,7 @@ + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml index 26ff526bf..b32e15a02 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectLawsInventoryEOMapper.xml @@ -69,4 +69,33 @@ project_library_id = #{projectLibraryId} group by task_affirm_status + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml index 460876633..9a59d452b 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/mapper/xml/ProjectTaskInventoryEOMapper.xml @@ -78,4 +78,76 @@ group by verify_flow_task_status + + + + + + + + diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java index 9be7b8dc3..6739aaae3 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IConditionAssessmentEOService.java @@ -6,6 +6,7 @@ import com.jero.modules.project.entity.ConditionAssessmentEO; import com.jero.modules.project.entity. ConditionAssessmentEO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; +import java.util.Map; /** * @Description: 任务清单-项目状态评估表 @@ -82,4 +83,11 @@ public interface IConditionAssessmentEOService extends IService getProjectStatusAssessList(List projectLawsInventoryIdList); + + /** + * 根据 评估状态查询 统计每一个领域下的数量 + * @param params + * @return + */ + List> getProjectStatusAssessStatisticsGroupByTerritory(Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java index cf0703eaf..5f021e002 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/IProjectLibraryBaseService.java @@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.jero.modules.project.entity.ProjectLibraryBase; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.text.ParseException; import java.util.List; import java.util.Map; @@ -76,4 +78,13 @@ public interface IProjectLibraryBaseService extends IService * @return */ Map getProjectDetailsStatistics(String id); + + /** + * 项目详情-统计接口-根据领域分组 + * @param params + * @return + */ + Map getProjectDetailsStatisticsGroupByTerritory(Map params); + + void exportProjectDetailsStatisticsGroupByTerritoryXls(HttpServletResponse response, HttpServletRequest request, Map params); } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java index d317339b3..9e93b08fd 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ConditionAssessmentEOServiceImpl.java @@ -200,4 +200,41 @@ public class ConditionAssessmentEOServiceImpl extends ServiceImpl> getProjectStatusAssessStatisticsGroupByTerritory(Map params) { + //项目当前状态颜色 + String conditionAssessment = (String) params.get("conditionAssessment"); + + List projectLawsInventoryIdList = (List) params.get("projectLawsInventoryIdList"); + + List> result = new ArrayList<>(); + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + List conditionAssessmentList = this.baseMapper.getProjectStatusAssessListByConditionAssessment(projectLawsInventoryIdList, conditionAssessment); + List dutyTerritoryList = conditionAssessmentList.stream().distinct().map(ConditionAssessmentEO::getDutyTerritory).collect(Collectors.toList()); + + dutyTerritoryList.forEach(dutyTerritory -> { + Map map = new HashMap<>(); + map.put("dutyTerritory",dutyTerritory); + result.add(map); + }); + + for (Map conditionAssementMap : result) { + int conditionAssessmentCount = 0; + for (ConditionAssessmentEO conditionAssessmentEO : conditionAssessmentList) { + if(com.jero.modules.system.util.StringUtils.equals(conditionAssessmentEO.getDutyTerritory(),conditionAssementMap.get("dutyTerritory").toString())){ + conditionAssessmentCount ++; + } + } + conditionAssementMap.put("amount",conditionAssessmentCount); + } + + } + return result; + } } diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index 9b4c4eb08..921c10691 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -4,14 +4,13 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.jero.common.constant.enums.CutEnum; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.vo.LoginUser; import com.jero.modules.project.entity.ConditionAssessmentEO; import com.jero.modules.project.entity.ProjectLawsInventoryEO; import com.jero.modules.project.entity.ProjectLibraryBase; -import com.jero.modules.project.enums.CertificationProgressEnum; -import com.jero.modules.project.enums.CurrentProjectStatusEnum; -import com.jero.modules.project.enums.InventoryAffirmStatusEnum; -import com.jero.modules.project.enums.TaskAffirmStatusEnum; +import com.jero.modules.project.enums.*; import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper; import com.jero.modules.project.mapper.ProjectLibraryBaseMapper; import com.jero.modules.project.mapper.ProjectTaskInventoryEOMapper; @@ -22,10 +21,18 @@ import com.jero.modules.system.mapper.SysDictItemMapper; import com.jero.modules.system.mapper.SysUserMapper; import com.jero.modules.system.util.StringUtils; import org.apache.commons.collections4.CollectionUtils; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.OutputStream; import java.text.ParseException; import java.util.*; import java.util.stream.Collectors; @@ -301,6 +308,181 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl getProjectDetailsStatisticsGroupByTerritory(Map params) { + String operatorType = (String) params.get("operatorType"); + String projectLibraryId = (String) params.get("projectLibraryId"); + if(org.apache.commons.lang3.StringUtils.isEmpty(projectLibraryId)){ + throw new JeroBootException("项目库id不能为空!"); + } + + Map result = new HashMap<>(); + + QueryWrapper lawsInventoryEOQueryWrapper = new QueryWrapper<>(); + lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId); + lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue()); + lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue()); + List projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper); + List projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList()); + + if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ + params.put("projectLawsInventoryIdList",projectLawsInventoryIdList); + List> conditionAssessmentMapList = this.conditionAssessmentEOService.getProjectStatusAssessStatisticsGroupByTerritory(params); + result.put("conditionAssessmentMapList",conditionAssessmentMapList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + //清单确认 状态 + String inventoryAffirmStatus = (String) params.get("inventoryAffirmStatus"); + List> listingToConfirmList = this.projectLawsInventoryEOMapper.getListingToConfirmStatisticsGroupByTerritory(projectLibraryId,inventoryAffirmStatus); + result.put("listingToConfirmList",listingToConfirmList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + //任务确认 状态 + String taskAffirmStatus = (String) params.get("taskAffirmStatus"); + List> taskToConfirmList = this.projectLawsInventoryEOMapper.getTaskToConfirmStatisticsGroupByTerritory(projectLibraryId,taskAffirmStatus); + result.put("taskToConfirmList",taskToConfirmList); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ + //设计符合性 流程任务状态 + String designFlowTaskStatus = (String) params.get("designFlowTaskStatus"); + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + List> designComplianceList = this.projectTaskInventoryEOMapper.getDesignComplianceStatisticeGroupByTerritory(projectLawsInventoryIdList,designFlowTaskStatus); + result.put("designComplianceList",designComplianceList); + } + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ + //prehomo确认 流程任务状态 + String prehomoFlowTaskStatus = (String) params.get("prehomoFlowTaskStatus"); + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + List> prehomoList = this.projectTaskInventoryEOMapper.getPrehomoStatisticeGroupByTerritory(projectLawsInventoryIdList,prehomoFlowTaskStatus); + result.put("prehomoList",prehomoList); + } + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ + //验证符合性 流程任务状态 + String verifyFlowTaskStatus = (String) params.get("verifyFlowTaskStatus"); + + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + List> verifyComplianceList = this.projectTaskInventoryEOMapper.getVerifyComplianceStatisticeGroupByTerritory(projectLawsInventoryIdList,verifyFlowTaskStatus); + result.put("verifyComplianceList",verifyComplianceList); + } + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ + //认证进度 流程任务状态 + String certificationProgress = (String) params.get("certificationProgress"); + + if(CollectionUtils.isNotEmpty(projectLawsInventoryIdList)){ + List> certificationProgressList = this.projectTaskInventoryEOMapper.getCertificationProgressStatisticsGroupByTerritory(projectLawsInventoryIdList,certificationProgress); + result.put("certificationProgressList",certificationProgressList); + } + } + return result; + } + + @Override + public void exportProjectDetailsStatisticsGroupByTerritoryXls(HttpServletResponse response, HttpServletRequest request, Map params) { + Map projectDetailsStatisticsGroupByTerritory = getProjectDetailsStatisticsGroupByTerritory(params); + String operatorType = (String) params.get("operatorType"); + String cut = (String) params.get("cut"); + String sheetName = ""; + String title = ""; + if (StringUtils.equals(cut,CutEnum.CN.getValue())) { + title = "责任领域,数量"; + if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ + sheetName = "项目状态"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + sheetName = "清单确认"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + sheetName = "任务确认"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ + sheetName = "设计符合性"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ + sheetName = "Pre-homo"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ + sheetName = "验证符合性"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ + sheetName = "认证进度"; + } + }else if (StringUtils.equals(cut,CutEnum.EN.getValue())) { + title = "Responsible Field,Amount"; + if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ + sheetName = "Project status"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + sheetName = "Listing to confirm"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + sheetName = "Task to confirm"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ + sheetName = "Design compliance"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ + sheetName = "Pre-homo"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ + sheetName = "Verify compliance"; + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ + sheetName = "Certification progress"; + } + } + + + OutputStream os = null; + HSSFWorkbook workbook = new HSSFWorkbook(); + + try { + String fileName = sheetName + ".xlsx"; + response.setHeader("Content-Disposition", + "attachment; filename=" + fileName); + response.setContentType("application/force-download"); + + HSSFSheet sheet = workbook.createSheet(sheetName); + + String[] titleArr = title.split(","); + Row firstRow = sheet.createRow(0); + //第0行 1到3列 19到20列 设置居中、表头值。 + for (int i = 0; i <= 2; i++){ + Cell cell = firstRow.createCell(i); + cell.setCellValue(titleArr[i]); + } + + createSheetData(sheet,projectDetailsStatisticsGroupByTerritory,params); + + os = response.getOutputStream(); + workbook.write(os); + os.flush(); + }catch (IOException ex){ + if(CutEnum.CN.getValue().equals(cut)){ + throw new JeroBootException("下载文件失败"); + }else{ + throw new JeroBootException("Failed to download file"); + } + } + } + + public void createSheetData(HSSFSheet sheet,Map projectDetailsStatisticsGroupByTerritory, Map params){ + List> exportData = new ArrayList<>(); + String operatorType = (String) params.get("operatorType"); + if(StringUtils.equals(OperatorTypeEnum.QUERY_CURRENT_PROJECT_STATUS_STATISTICS.getValue(),operatorType)){ + exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("conditionAssessmentMapList"); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_LISTING_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("listingToConfirmList"); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_TASK_TO_CONFIRM_STATISTICS.getValue(),operatorType)){ + exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("taskToConfirmList"); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_DESIGN_STATISTICS.getValue(),operatorType)){ + exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("designComplianceList"); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_PREHOMO_STATISTICS.getValue(),operatorType)){ + exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("prehomoList"); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_VERIFY_STATISTICS.getValue(),operatorType)){ + exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("verifyComplianceList"); + }else if(StringUtils.equals(OperatorTypeEnum.QUERY_CERTIFICATION_PROGRESS_STATISTICS.getValue(),operatorType)){ + exportData = (List>) projectDetailsStatisticsGroupByTerritory.get("certificationProgressList"); + } + + int rowIndex = 1; + for (int dataIndex = 0; dataIndex < exportData.size(); dataIndex++) { + Row dataRow = sheet.createRow(rowIndex); + dataRow.createCell(0).setCellValue(exportData.get(dataIndex).get("dutyTerritory").toString()); + dataRow.createCell(1).setCellValue(exportData.get(dataIndex).get("amount").toString()); + rowIndex ++; + } + } }