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

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

parent e082728b
......@@ -320,26 +320,6 @@ public class AccidentReportController extends SuperController {
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 = "导出事故信息详情明细")
@GetMapping(value = "/accidentReportDetailExport")
public BaseResponse<BizGeneralResponse> export(HttpServletResponse response, ReportDetailParam reportDetailParam) {
......@@ -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++) {
......
......@@ -2,8 +2,10 @@ package com.testor.module.hazard.controller;
import com.alibaba.fastjson.JSON;
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.dto.*;
import com.testor.module.hazard.model.template.HazardWorkPlanStatisticsExportTemplate;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckComplianceStatisticsVO;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemCountStatisticsVO;
import com.testor.module.hazard.model.vo.HazardWorkPlanCheckProblemTypeStatisticsVO;
......@@ -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.BaseResponseList;
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.core.helper.ObjectHelper;
import com.tongtech.tfw.backend.core.helper.StringHelper;
......@@ -87,7 +90,43 @@ public class THazardWorkPlanCheckStatisticsController extends SuperController
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>
List<HazardWorkPlanCheckDetail> workStatusStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
/**
* 企业合规率详情之组织机构类型抽查率/合规率 统计
* 企业合规率详情之统计合规率
* @param tHazardWorkPlanCheckParam
* @return
*/
List<HazardWorkPlanCheckDetail> isRentSpotCheckStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
List<HazardWorkPlanCheckDetail> comprehensiveStatistics(@Param("param") THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
/**
* 企业合规率详情之组织机构类型抽查率/合规率 统计
* 企业合规率详情之统计抽查率
* @param tHazardWorkPlanCheckParam
* @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 {
private Map<String, Double> spotCheckRateStats;
@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;
@Data
public class HazardWorkPlanCheckDetail {
@ApiModelProperty(value = "大区名称")
@ApiModelProperty("大区名称")
private String regionName;
@ApiModelProperty(value = "经营部")
@ApiModelProperty("经营部名称")
private String businessDeptName;
@ApiModelProperty(value = "企业名称")
@ApiModelProperty("企业名称")
private String currentOrgName;
@ApiModelProperty(value = "合规率之全部作业比例")
private String totalProblemCount;
// ---------------- 合规率 ----------------
@ApiModelProperty("企业作业合规率")
private Double enterpriseComplianceRate;
@ApiModelProperty(value = "企业性质(企业/相关方)")
private String orgTypeName;
@ApiModelProperty("相关方作业合规率")
private Double relatedPartyComplianceRate;
@ApiModelProperty(value = "合规率之企业作业比例")
private String enterpriseComplianceRate;
@ApiModelProperty("高度危险作业合规率")
private Double complianceRateHigh;
@ApiModelProperty(value = "合规率之相关方作业比例")
private String relatedPartyComplianceRate;
@ApiModelProperty("较大危险作业合规率")
private Double complianceRateMajor;
@ApiModelProperty(value = "作业级别名称")
private String workLevelNameComplianceRate;
@ApiModelProperty("一般危险作业合规率")
private Double complianceRateNormal;
@ApiModelProperty(value = "合规率作业级别比例")
private String workLevelComplianceRate;
// ---------------- 抽查率 ----------------
@ApiModelProperty("企业作业抽查率")
private Double enterpriseCheckRate;
@ApiModelProperty(value = "抽查率作业级别比例")
private String workLevelCheckRate;
@ApiModelProperty("相关方作业抽查率")
private Double relatedPartySpotCheckRate;
@ApiModelProperty(value = "危险作业状态之问题名称")
private String problemName;
@ApiModelProperty(value = "危险作业状态之问题数量")
private Integer problemCount;
@ApiModelProperty("高度危险作业抽查率")
private Double spotCheckRateHigh;
@ApiModelProperty(value = "抽查率之企业作业比例")
private String enterpriseCheckRate;
@ApiModelProperty(value = "抽查率之相关方作业比例")
private String relatedPartySpotCheckRate;
@ApiModelProperty("较大危险作业抽查率")
private Double spotCheckRateMajor;
@ApiModelProperty("一般危险作业抽查率")
private Double spotCheckRateNormal;
// ---------------- 危险作业状态 ----------------
@ApiModelProperty("问题名称")
private String problemName;
@ApiModelProperty("问题数量")
private Integer problemCount;
@ApiModelProperty("是否租户(0:否,1:是)")
private String isRent;
}
package com.testor.module.hazard.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.dto.HazardWorkPlanCheckEnterpriseComplianceDto;
import com.testor.module.hazard.model.dto.HazardWorkPlanCheckStatsDTO;
import com.testor.module.hazard.model.dto.THazardWorkPlanCheckParam;
import com.testor.module.hazard.model.dto.*;
import com.testor.module.hazard.model.template.HazardWorkPlanStatisticsTemplate;
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.HazardWorkPlanCheckProblemTypeStatisticsVO;
import com.testor.module.safe.model.dto.TSafeHazardOrgParam;
import com.tongtech.tfw.backend.common.models.supers.SuperService;
import org.apache.ibatis.annotations.Param;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
......@@ -139,7 +133,6 @@ public interface THazardWorkPlanCheckService extends SuperService<THazardWorkPla
* @param tHazardWorkPlanCheckParam
* @return
*/
Page<HazardWorkPlanCheckDetail> detailsOfHazardousOperations(THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
Page<HazardWorkPlanCheckDetailResult> detailsOfHazardousOperations(THazardWorkPlanCheckParam tHazardWorkPlanCheckParam);
}
......@@ -3,6 +3,7 @@ package com.testor.module.hazard.service.impl;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.testor.biz.sys.dict.data.dao.SysDictDataDao;
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.module.hazard.dao.HazardWorkPlanStatisticsDao;
import com.testor.module.hazard.model.dto.HazardWorkPlanStatisticsDto;
......@@ -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.vo.HazardWorkPlanStatisticsVO;
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.TSysUserService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -27,6 +30,9 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis
@Autowired
private NewSysDictDataService dictDataService;
@Autowired
private SysUserService userService;
/**
* 危险作业分布统计,根据单位
*
......@@ -89,6 +95,7 @@ public class HazardWorkPlanStatisticsServiceImpl implements HazardWorkPlanStatis
@Override
public Page<HazardWorkPlanStatisticsResult> selectWorkStatusDetailStatistics(HazardWorkPlanStatisticsDto query) {
// 0. 获取所有字典值
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