Commit fa871ca2 authored by 鲁鸿波's avatar 鲁鸿波

监督检查企业合规率详表开发

parent e082728b
...@@ -320,26 +320,6 @@ public class AccidentReportController extends SuperController { ...@@ -320,26 +320,6 @@ public class AccidentReportController extends SuperController {
return baseResponse; return baseResponse;
} }
/*@ApiOperation(value = "导出事故信息详情明细", notes = "导出事故信息详情明细")
@GetMapping(value = "/accidentReportDetailExport")
public BaseResponse<BizGeneralResponse> export(HttpServletResponse response, ReportDetailParam reportDetailParam){
BaseResponse<BizGeneralResponse> baseResponse=new BaseResponse<>();
Page<AccidentReportDetail> accidentReportDetailPage = accidentReportService.selectAccidentReportDetail(reportDetailParam);
if (org.apache.commons.collections4.CollectionUtils.isEmpty(accidentReportDetailPage.getRecords())) {
baseResponse.setData(BizGeneralResponse.builder().result("无事故信息详情明细数据").build());
return baseResponse;
}
List<AccidentReportDetailTemplate> accidentReportDetailTemplate = BeanConverUtil.converList(accidentReportDetailPage.getRecords(), AccidentReportDetailTemplate.class);
int index = 1;
for(AccidentReportDetailTemplate template : accidentReportDetailTemplate){
template.setNumber(String.valueOf(index++));
}
EasyExcelUtil.writeExcel(response, "事故信息详情明细", "事故信息详情明细", accidentReportDetailTemplate);
baseResponse.setData(
BizGeneralResponse.builder().result(TypeHelper.castToString(true)).build());
return baseResponse;
}*/
@ApiOperation(value = "导出事故信息详情明细", notes = "导出事故信息详情明细") @ApiOperation(value = "导出事故信息详情明细", notes = "导出事故信息详情明细")
@GetMapping(value = "/accidentReportDetailExport") @GetMapping(value = "/accidentReportDetailExport")
public BaseResponse<BizGeneralResponse> export(HttpServletResponse response, ReportDetailParam reportDetailParam) { public BaseResponse<BizGeneralResponse> export(HttpServletResponse response, ReportDetailParam reportDetailParam) {
...@@ -353,7 +333,7 @@ public class AccidentReportController extends SuperController { ...@@ -353,7 +333,7 @@ public class AccidentReportController extends SuperController {
} }
// 使用扩展的转换工具 // 使用扩展的转换工具
BeanConverExtensionUtil.converAccidentReportDetailList(accidentReportDetailPage.getRecords()) List<AccidentReportDetailTemplate> accidentReportDetailTemplate = BeanConverExtensionUtil.converAccidentReportDetailList(accidentReportDetailPage.getRecords());
// 设置序号 // 设置序号
for (int i = 0; i < accidentReportDetailTemplate.size(); i++) { for (int i = 0; i < accidentReportDetailTemplate.size(); i++) {
......
...@@ -2,8 +2,10 @@ package com.testor.module.hazard.controller; ...@@ -2,8 +2,10 @@ package com.testor.module.hazard.controller;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.testor.common.util.excel.EasyExcelUtil;
import com.testor.module.hazard.model.domain.THazardWorkPlanCheck; import com.testor.module.hazard.model.domain.THazardWorkPlanCheck;
import com.testor.module.hazard.model.dto.*; import com.testor.module.hazard.model.dto.*;
import com.testor.module.hazard.model.template.HazardWorkPlanStatisticsExportTemplate;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckComplianceStatisticsVO; import com.testor.module.hazard.model.vo.HazardWorkPlanCheckComplianceStatisticsVO;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemCountStatisticsVO; import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemCountStatisticsVO;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemTypeStatisticsVO; import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemTypeStatisticsVO;
...@@ -12,6 +14,7 @@ import com.tongtech.tfw.backend.common.biz.constants.BizConstants; ...@@ -12,6 +14,7 @@ import com.tongtech.tfw.backend.common.biz.constants.BizConstants;
import com.tongtech.tfw.backend.common.biz.models.BaseResponse; import com.tongtech.tfw.backend.common.biz.models.BaseResponse;
import com.tongtech.tfw.backend.common.biz.models.BaseResponseList; import com.tongtech.tfw.backend.common.biz.models.BaseResponseList;
import com.tongtech.tfw.backend.common.biz.models.BizGeneralResponse; import com.tongtech.tfw.backend.common.biz.models.BizGeneralResponse;
import com.tongtech.tfw.backend.common.context.ContextUtils;
import com.tongtech.tfw.backend.common.models.supers.SuperController; import com.tongtech.tfw.backend.common.models.supers.SuperController;
import com.tongtech.tfw.backend.core.helper.ObjectHelper; import com.tongtech.tfw.backend.core.helper.ObjectHelper;
import com.tongtech.tfw.backend.core.helper.StringHelper; import com.tongtech.tfw.backend.core.helper.StringHelper;
...@@ -87,7 +90,43 @@ public class THazardWorkPlanCheckStatisticsController extends SuperController ...@@ -87,7 +90,43 @@ public class THazardWorkPlanCheckStatisticsController extends SuperController
return baseResponse; return baseResponse;
} }
@ApiOperation(value = "企业合规率详表")
@GetMapping(value = "/detailsOfHazardousOperations")
public BaseResponse<BaseResponseList<HazardWorkPlanCheckDetailResult>> detailsOfHazardousOperations(THazardWorkPlanCheckParam tHazardWorkPlanCheckParam){
BaseResponse<BaseResponseList<HazardWorkPlanCheckDetailResult>>baseResponse=new BaseResponse<>();
if(StringHelper.isEmpty(tHazardWorkPlanCheckParam.getOrgId())){
tHazardWorkPlanCheckParam.setOrgId(ContextUtils.getLoginUser().getOrgId());
}
Page<HazardWorkPlanCheckDetailResult> resultList= tHazardWorkPlanCheckService.detailsOfHazardousOperations(tHazardWorkPlanCheckParam);
BaseResponseList<HazardWorkPlanCheckDetailResult> baseResponseList=new BaseResponseList<>();
baseResponseList.setData(resultList.getRecords());
baseResponseList.setTotal(resultList.getTotal());
baseResponse.setData(baseResponseList);
return baseResponse;
}
@GetMapping("/exportHazardStatistics")
@ApiOperation(value = "导出企业合规率详表")
public void exportHazardStatistics(HttpServletResponse response, THazardWorkPlanCheckParam param) {
// 设置不分页(获取所有数据)
param.setPage(String.valueOf(1));
param.setLimit(String.valueOf(Integer.MAX_VALUE));
if(StringHelper.isEmpty(param.getOrgId())){
param.setOrgId(ContextUtils.getLoginUser().getOrgId());
}
List<HazardWorkPlanCheckDetailResult> results = tHazardWorkPlanCheckService.detailsOfHazardousOperations(param).getRecords();
List<HazardWorkPlanStatisticsExportTemplate> templates = new ArrayList<>();
int index = 1;
for (HazardWorkPlanCheckDetailResult r : results) {
templates.add(HazardWorkPlanStatisticsExportTemplate.fromResult(r, index++));
}
EasyExcelUtil.writeExcel(response, "企业合规率详表明细", "企业合规率详表明细", templates);
}
} }
...@@ -137,32 +137,20 @@ public interface THazardWorkPlanCheckDao extends SuperDao<THazardWorkPlanCheck> ...@@ -137,32 +137,20 @@ public interface THazardWorkPlanCheckDao extends SuperDao<THazardWorkPlanCheck>
List<HazardWorkPlanCheckDetail> workStatusStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam); List<HazardWorkPlanCheckDetail> workStatusStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
/** /**
* 企业合规率详情之组织机构类型抽查率/合规率 统计 * 企业合规率详情之统计合规率
* @param tHazardWorkPlanCheckParam * @param tHazardWorkPlanCheckParam
* @return * @return
*/ */
List<HazardWorkPlanCheckDetail> isRentSpotCheckStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam); List<HazardWorkPlanCheckDetail> comprehensiveStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
/** /**
* 企业合规率详情之组织机构类型抽查率/合规率 统计 * 企业合规率详情之统计抽查率
* @param tHazardWorkPlanCheckParam * @param tHazardWorkPlanCheckParam
* @return * @return
*/ */
List<HazardWorkPlanCheckDetail> comprehensiveStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam); List<HazardWorkPlanCheckDetail> isRentSpotCheckStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
/**
* 企业合规率详情之作业级别合规率统计
* @param tHazardWorkPlanCheckParam
* @return
*//*
List<HazardWorkPlanCheckDetail> complianceRateStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
*//**
* 企业合规率详情之组织机构类型合规率统计
* @param tHazardWorkPlanCheckParam
* @return
*//*
List<HazardWorkPlanCheckDetail> isRentComplianceRateStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);*/
......
...@@ -24,6 +24,6 @@ public class HazardWorkPlanCheckDetailResult { ...@@ -24,6 +24,6 @@ public class HazardWorkPlanCheckDetailResult {
private Map<String, Double> spotCheckRateStats; private Map<String, Double> spotCheckRateStats;
@ApiModelProperty("危险作业状态") @ApiModelProperty("危险作业状态")
private Map<String, Integer> workStatusStats; // 作业状态统计 private Map<String, Integer> workStatusStats;
} }
package com.testor.module.hazard.model.template;
import com.alibaba.excel.annotation.ExcelProperty;
import com.testor.module.hazard.model.dto.HazardWorkPlanCheckDetailResult;
import lombok.Data;
import java.util.Map;
@Data
public class HazardWorkPlanStatisticsExportTemplate {
@ExcelProperty("序号")
private String number;
@ExcelProperty("大区")
private String regionName;
@ExcelProperty("经营部")
private String businessDeptName;
@ExcelProperty("企业名称")
private String currentOrgName;
// ========== 合规率 ==========
@ExcelProperty("全部作业合规率(%)")
private Double allComplianceRate;
@ExcelProperty("企业作业合规率(%)")
private Double enterpriseComplianceRate;
@ExcelProperty("相关方作业合规率(%)")
private Double relatedPartyComplianceRate;
@ExcelProperty("高度作业合规率(%)")
private Double highComplianceRate;
@ExcelProperty("较大作业合规率(%)")
private Double majorComplianceRate;
@ExcelProperty("一般作业合规率(%)")
private Double normalComplianceRate;
// ========== 抽查率 ==========
@ExcelProperty("企业作业抽查率(%)")
private Double enterpriseCheckRate;
@ExcelProperty("相关方作业抽查率(%)")
private Double relatedPartyCheckRate;
@ExcelProperty("高度作业抽查率(%)")
private Double highSpotCheckRate;
@ExcelProperty("较大作业抽查率(%)")
private Double majorSpotCheckRate;
@ExcelProperty("一般作业抽查率(%)")
private Double normalSpotCheckRate;
// ========== 危险作业状态 ==========
@ExcelProperty("五必须")
private Integer fiveMust;
@ExcelProperty("信息真实性")
private Integer informationTruth;
@ExcelProperty("违章作业")
private Integer illegalOperation;
@ExcelProperty("劳动组织")
private Integer laborOrganization;
@ExcelProperty("风险管理")
private Integer riskManagement;
@ExcelProperty("提级管理")
private Integer escalationManagement;
@ExcelProperty("变更管理")
private Integer changeManagement;
@ExcelProperty("其他")
private Integer otherStatus;
/**
* 从 HazardWorkPlanCheckDetailResult 填充模板
*/
public static HazardWorkPlanStatisticsExportTemplate fromResult(HazardWorkPlanCheckDetailResult result, int index) {
HazardWorkPlanStatisticsExportTemplate template = new HazardWorkPlanStatisticsExportTemplate();
template.setNumber(String.valueOf(index));
template.setRegionName(result.getRegionName());
template.setBusinessDeptName(result.getBusinessDeptName());
template.setCurrentOrgName(result.getCurrentOrgName());
Map<String, Double> compliance = result.getComplianceRateStats();
template.setAllComplianceRate(compliance.getOrDefault("全部作业", 0D));
template.setEnterpriseComplianceRate(compliance.getOrDefault("企业作业", 0D));
template.setRelatedPartyComplianceRate(compliance.getOrDefault("相关方作业", 0D));
template.setHighComplianceRate(compliance.getOrDefault("高度作业", 0D));
template.setMajorComplianceRate(compliance.getOrDefault("较大作业", 0D));
template.setNormalComplianceRate(compliance.getOrDefault("一般作业", 0D));
Map<String, Double> spotCheck = result.getSpotCheckRateStats();
template.setEnterpriseCheckRate(spotCheck.getOrDefault("企业作业", 0D));
template.setRelatedPartyCheckRate(spotCheck.getOrDefault("相关方作业", 0D));
template.setHighSpotCheckRate(spotCheck.getOrDefault("高度作业", 0D));
template.setMajorSpotCheckRate(spotCheck.getOrDefault("较大作业", 0D));
template.setNormalSpotCheckRate(spotCheck.getOrDefault("一般作业", 0D));
Map<String, Integer> status = result.getWorkStatusStats();
template.setFiveMust(status.getOrDefault("五必须", 0));
template.setInformationTruth(status.getOrDefault("信息真实性", 0));
template.setIllegalOperation(status.getOrDefault("违章作业", 0));
template.setLaborOrganization(status.getOrDefault("劳动组织", 0));
template.setRiskManagement(status.getOrDefault("风险管理", 0));
template.setEscalationManagement(status.getOrDefault("提级管理", 0));
template.setChangeManagement(status.getOrDefault("变更管理", 0));
template.setOtherStatus(status.getOrDefault("其他", 0));
return template;
}
}
...@@ -6,50 +6,55 @@ import lombok.Data; ...@@ -6,50 +6,55 @@ import lombok.Data;
@Data @Data
public class HazardWorkPlanCheckDetail { public class HazardWorkPlanCheckDetail {
@ApiModelProperty(value = "大区名称") @ApiModelProperty("大区名称")
private String regionName; private String regionName;
@ApiModelProperty(value = "经营部") @ApiModelProperty("经营部名称")
private String businessDeptName; private String businessDeptName;
@ApiModelProperty(value = "企业名称") @ApiModelProperty("企业名称")
private String currentOrgName; private String currentOrgName;
@ApiModelProperty(value = "合规率之全部作业比例") // ---------------- 合规率 ----------------
private String totalProblemCount; @ApiModelProperty("企业作业合规率")
private Double enterpriseComplianceRate;
@ApiModelProperty(value = "企业性质(企业/相关方)") @ApiModelProperty("相关方作业合规率")
private String orgTypeName; private Double relatedPartyComplianceRate;
@ApiModelProperty(value = "合规率之企业作业比例") @ApiModelProperty("高度危险作业合规率")
private String enterpriseComplianceRate; private Double complianceRateHigh;
@ApiModelProperty(value = "合规率之相关方作业比例") @ApiModelProperty("较大危险作业合规率")
private String relatedPartyComplianceRate; private Double complianceRateMajor;
@ApiModelProperty(value = "作业级别名称") @ApiModelProperty("一般危险作业合规率")
private String workLevelNameComplianceRate; private Double complianceRateNormal;
@ApiModelProperty(value = "合规率作业级别比例") // ---------------- 抽查率 ----------------
private String workLevelComplianceRate; @ApiModelProperty("企业作业抽查率")
private Double enterpriseCheckRate;
@ApiModelProperty(value = "抽查率作业级别比例") @ApiModelProperty("相关方作业抽查率")
private String workLevelCheckRate; private Double relatedPartySpotCheckRate;
@ApiModelProperty(value = "危险作业状态之问题名称") @ApiModelProperty("高度危险作业抽查率")
private String problemName; private Double spotCheckRateHigh;
@ApiModelProperty(value = "危险作业状态之问题数量")
private Integer problemCount;
@ApiModelProperty(value = "抽查率之企业作业比例") @ApiModelProperty("较大危险作业抽查率")
private String enterpriseCheckRate; private Double spotCheckRateMajor;
@ApiModelProperty(value = "抽查率之相关方作业比例")
private String relatedPartySpotCheckRate;
@ApiModelProperty("一般危险作业抽查率")
private Double spotCheckRateNormal;
// ---------------- 危险作业状态 ----------------
@ApiModelProperty("问题名称")
private String problemName;
@ApiModelProperty("问题数量")
private Integer problemCount;
@ApiModelProperty("是否租户(0:否,1:是)")
private String isRent;
} }
package com.testor.module.hazard.service; package com.testor.module.hazard.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.testor.module.hazard.model.domain.THazardWorkPlan;
import com.testor.module.hazard.model.domain.THazardWorkPlanCheck; import com.testor.module.hazard.model.domain.THazardWorkPlanCheck;
import com.testor.module.hazard.model.dto.HazardWorkPlanCheckEnterpriseComplianceDto; import com.testor.module.hazard.model.dto.*;
import com.testor.module.hazard.model.dto.HazardWorkPlanCheckStatsDTO; import com.testor.module.hazard.model.template.HazardWorkPlanStatisticsTemplate;
import com.testor.module.hazard.model.dto.THazardWorkPlanCheckParam;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckComplianceStatisticsVO; import com.testor.module.hazard.model.vo.HazardWorkPlanCheckComplianceStatisticsVO;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckDetail;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemCountStatisticsVO; import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemCountStatisticsVO;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemTypeStatisticsVO; import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemTypeStatisticsVO;
import com.testor.module.safe.model.dto.TSafeHazardOrgParam;
import com.tongtech.tfw.backend.common.models.supers.SuperService; import com.tongtech.tfw.backend.common.models.supers.SuperService;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.util.List; import java.util.List;
...@@ -139,7 +133,6 @@ public interface THazardWorkPlanCheckService extends SuperService<THazardWorkPla ...@@ -139,7 +133,6 @@ public interface THazardWorkPlanCheckService extends SuperService<THazardWorkPla
* @param tHazardWorkPlanCheckParam * @param tHazardWorkPlanCheckParam
* @return * @return
*/ */
Page<HazardWorkPlanCheckDetail> detailsOfHazardousOperations(THazardWorkPlanCheckParam tHazardWorkPlanCheckParam); Page<HazardWorkPlanCheckDetailResult> detailsOfHazardousOperations(THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
} }
...@@ -3,6 +3,7 @@ package com.testor.module.hazard.service.impl; ...@@ -3,6 +3,7 @@ package com.testor.module.hazard.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.testor.biz.sys.dict.data.dao.SysDictDataDao; import com.testor.biz.sys.dict.data.dao.SysDictDataDao;
import com.testor.biz.sys.dict.data.service.SysDictDataService; import com.testor.biz.sys.dict.data.service.SysDictDataService;
import com.testor.biz.sys.user.model.domain.SysUser;
import com.testor.common.core.utils.StringUtils; import com.testor.common.core.utils.StringUtils;
import com.testor.module.hazard.dao.HazardWorkPlanStatisticsDao; import com.testor.module.hazard.dao.HazardWorkPlanStatisticsDao;
import com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto; import com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto;
...@@ -12,7 +13,9 @@ import com.testor.module.hazard.model.dto.THazardWorkPlanStatistics; ...@@ -12,7 +13,9 @@ import com.testor.module.hazard.model.dto.THazardWorkPlanStatistics;
import com.testor.module.hazard.model.template.HazardWorkPlanStatisticsTemplate; import com.testor.module.hazard.model.template.HazardWorkPlanStatisticsTemplate;
import com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO; import com.testor.module.hazard.model.vo.HazardWorkPlanStatisticsVO;
import com.testor.module.hazard.service.HazardWorkPlanStatisticsService; import com.testor.module.hazard.service.HazardWorkPlanStatisticsService;
import com.testor.module.iam.service.SysUserService;
import com.testor.module.sys.service.NewSysDictDataService; import com.testor.module.sys.service.NewSysDictDataService;
import com.testor.module.sys.service.TSysUserService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -27,6 +30,9 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis ...@@ -27,6 +30,9 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis
@Autowired @Autowired
private NewSysDictDataService dictDataService; private NewSysDictDataService dictDataService;
@Autowired
private SysUserService userService;
/** /**
* 危险作业分布统计,根据单位 * 危险作业分布统计,根据单位
* *
...@@ -89,6 +95,7 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis ...@@ -89,6 +95,7 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis
@Override @Override
public Page<HazardWorkPlanStatisticsResult> selectWorkStatusDetailStatistics(HazardWorkPlanStatisticsDto query) { public Page<HazardWorkPlanStatisticsResult> selectWorkStatusDetailStatistics(HazardWorkPlanStatisticsDto query) {
// 0. 获取所有字典值 // 0. 获取所有字典值
Map<String, List<String>> allDictValues = getAllDictValues(); Map<String, List<String>> allDictValues = getAllDictValues();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment