Browse Source

研判分析--基础模板step2

master
buaixuexideshitongxue 2 weeks ago
parent
commit
251ae22a7a
  1. 28
      src/main/java/com/biutag/supervision/pojo/dto/report/ReportViewModel.java
  2. 19
      src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityDepartmentSection.java
  3. 34
      src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityOverviewSection.java
  4. 19
      src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityPersonalSection.java
  5. 17
      src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityTypeItem.java
  6. 73
      src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLineDetailSection.java
  7. 2
      src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLineOverviewSection.java
  8. 28
      src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLinePersonRankItem.java
  9. 22
      src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLineRankItem.java
  10. 34
      src/main/java/com/biutag/supervision/pojo/dto/report/unitInvestigation/UnitInvestigationItem.java
  11. 33
      src/main/java/com/biutag/supervision/pojo/dto/report/unitInvestigation/UnitInvestigationOverviewSection.java
  12. 118
      src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameLeaderVo.java
  13. 34
      src/main/java/com/biutag/supervision/service/NegativeTaskService.java
  14. 6
      src/main/java/com/biutag/supervision/service/NegativeWorkService.java
  15. 202
      src/main/java/com/biutag/supervision/service/report/ReportDataServiceImpl.java
  16. BIN
      src/main/resources/static/templates/督审一体化平台研判分析报告.docx

28
src/main/java/com/biutag/supervision/pojo/dto/report/ReportViewModel.java

@ -1,9 +1,17 @@
package com.biutag.supervision.pojo.dto.report; package com.biutag.supervision.pojo.dto.report;
import com.biutag.supervision.pojo.dto.report.accountability.AccountabilityDepartmentSection;
import com.biutag.supervision.pojo.dto.report.accountability.AccountabilityOverviewSection;
import com.biutag.supervision.pojo.dto.report.accountability.AccountabilityPersonalSection;
import com.biutag.supervision.pojo.dto.report.businessLine.BusinessLineDetailSection;
import com.biutag.supervision.pojo.dto.report.businessLine.BusinessLineOverviewSection;
import com.biutag.supervision.pojo.dto.report.unitInvestigation.UnitInvestigationOverviewSection;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import java.util.List;
/** /**
* @ClassName ReportGenerationDTO * @ClassName ReportGenerationDTO
* @Description TODO * @Description TODO
@ -28,6 +36,26 @@ public class ReportViewModel {
@Schema(description = "各业务条线情况-总览部分") @Schema(description = "各业务条线情况-总览部分")
private BusinessLineOverviewSection businessLineOverviewSection; private BusinessLineOverviewSection businessLineOverviewSection;
@Schema(description = "各业务条线情况-明细部分")
private List<BusinessLineDetailSection> businessLineDetailSections;
@Schema(description = "单位查处情况")
private UnitInvestigationOverviewSection unitInvestigationSection;
// @Schema(description = "单位查处情况--详情预留")
// private UnitInvestigationDetailSection unitInvestigationDetailSection;
@Schema(description = "问责追责情况")
private AccountabilityOverviewSection accountabilityOverviewSection;
// 分开 预留可修改空间
@Schema(description = "单位问责追责情况明细")
private AccountabilityDepartmentSection accountabilityUnitDetailSection;
@Schema(description = "个人问责追责情况")
private AccountabilityPersonalSection accountabilityPersonOverviewSection;
} }

19
src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityDepartmentSection.java

@ -0,0 +1,19 @@
package com.biutag.supervision.pojo.dto.report.accountability;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@Schema(description = "对单位追责问责情况")
public class AccountabilityDepartmentSection {
@Schema(description = "问责单位总次数", example = "6")
private Integer totalCount;
@Schema(description = "单位问责类型列表")
private List<AccountabilityTypeItem> typeItems;
}

34
src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityOverviewSection.java

@ -0,0 +1,34 @@
package com.biutag.supervision.pojo.dto.report.accountability;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName AccountabilityOverviewSection
* @Description TODO
* @Author shihao
* @Date 2026/3/6 11:19
*/
@Getter
@Setter
@Schema(description = "问责追责情况总览")
public class AccountabilityOverviewSection {
@Schema(description = "统计开始时间", example = "2026年3月1日")
private String periodStart;
@Schema(description = "统计结束时间", example = "2026年3月31日")
private String periodEnd;
@Schema(description = "开展问题类型条数", example = "8")
private Integer problemTypeCount;
@Schema(description = "个人问责次数", example = "12")
private Integer personalAccountabilityCount;
@Schema(description = "单位问责次数", example = "5")
private Integer departmentAccountabilityCount;
}

19
src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityPersonalSection.java

@ -0,0 +1,19 @@
package com.biutag.supervision.pojo.dto.report.accountability;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
@Schema(description = "对个人追责问责情况")
public class AccountabilityPersonalSection {
@Schema(description = "问责个人总次数", example = "10")
private Integer totalCount;
@Schema(description = "个人问责类型列表")
private List<AccountabilityTypeItem> typeItems;
}

17
src/main/java/com/biutag/supervision/pojo/dto/report/accountability/AccountabilityTypeItem.java

@ -0,0 +1,17 @@
package com.biutag.supervision.pojo.dto.report.accountability;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Schema(description = "问责类型项")
public class AccountabilityTypeItem {
@Schema(description = "问责类型名称", example = "诫勉处理")
private String typeName;
@Schema(description = "次数", example = "3")
private Integer count;
}

73
src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLineDetailSection.java

@ -0,0 +1,73 @@
package com.biutag.supervision.pojo.dto.report.businessLine;
import com.biutag.supervision.pojo.enums.report.TrendEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.List;
/**
* @ClassName BusinessLineDetailSection
* @Description 各业务条线情况明细项
* @Author shihao
* @Date 2026/3/6 9:37
*/
@Getter
@Setter
@Schema(description = "各业务条线情况-明细项")
public class BusinessLineDetailSection {
@Schema(description = "序号,如 一、二、三")
private String orderNo;
@Schema(description = "业务条线名称")
private String businessLineName;
@Schema(description = "业务条线父级名称")
private String businessFatherLineName;
@Schema(description = "下发总数")
private Integer totalIssued;
@Schema(description = "查实总数(属实+基本属实)")
private Integer verifiedTotal;
@Schema(description = "查实率")
private BigDecimal verifiedRate;
@Schema(description = "问责总次数")
private Integer accountabilityTotal;
@Schema(description = "总追责问责率")
private BigDecimal accountabilityRate;
@Schema(description = "个人问责次数")
private Integer personalAccountabilityCount;
@Schema(description = "单位问责次数")
private Integer departmentAccountabilityCount;
@Schema(description = "问题类型TOP列表")
private List<BusinessLineRankItem> topProblemTypes;
@Schema(description = "重点单位TOP列表")
private List<BusinessLineRankItem> topUnits;
@Schema(description = "重点人员TOP列表")
private List<BusinessLinePersonRankItem> topPersons;
@Schema(description = "环比变化率")
private BigDecimal momRate;
@Schema(description = "环比趋势")
private TrendEnum momTrend;
@Schema(description = "同比变化率")
private BigDecimal yoyRate;
@Schema(description = "同比趋势")
private TrendEnum yoyTrend;
}

2
src/main/java/com/biutag/supervision/pojo/dto/report/BusinessLineOverviewSection.java → src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLineOverviewSection.java

@ -1,4 +1,4 @@
package com.biutag.supervision.pojo.dto.report; package com.biutag.supervision.pojo.dto.report.businessLine;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter; import lombok.Getter;

28
src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLinePersonRankItem.java

@ -0,0 +1,28 @@
package com.biutag.supervision.pojo.dto.report.businessLine;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@Schema(description = "业务条线重点人员排行项")
public class BusinessLinePersonRankItem {
@Schema(description = "人员姓名")
private String personName;
@Schema(description = "所属单位")
private String unitName;
@Schema(description = "人员类别,如 民警/辅警")
private String identityName;
@Schema(description = "数量")
private Integer count;
@Schema(description = "占比")
private BigDecimal rate;
}

22
src/main/java/com/biutag/supervision/pojo/dto/report/businessLine/BusinessLineRankItem.java

@ -0,0 +1,22 @@
package com.biutag.supervision.pojo.dto.report.businessLine;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
@Getter
@Setter
@Schema(description = "业务条线排行项")
public class BusinessLineRankItem {
@Schema(description = "名称,如 执法程序问题 / 某某派出所")
private String name;
@Schema(description = "数量")
private Integer count;
@Schema(description = "占比")
private BigDecimal rate;
}

34
src/main/java/com/biutag/supervision/pojo/dto/report/unitInvestigation/UnitInvestigationItem.java

@ -0,0 +1,34 @@
package com.biutag.supervision.pojo.dto.report.unitInvestigation;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
/**
* @ClassName UnitInvestigationItem
* @Description TODO
* @Author shihao
* @Date 2026/3/6 10:46
*/
@Getter
@Setter
@Schema(description = "单位查处情况明细")
public class UnitInvestigationItem {
@Schema(description = "排名", example = "1")
private Integer rank;
@Schema(description = "单位名称", example = "XXXXX")
private String unitName;
@Schema(description = "下发问题数", example = "20")
private Integer issuedProblemCount;
@Schema(description = "查实问题数", example = "15")
private Integer verifiedProblemCount;
@Schema(description = "查实率", example = "75.00%")
private String verifiedRate;
}

33
src/main/java/com/biutag/supervision/pojo/dto/report/unitInvestigation/UnitInvestigationOverviewSection.java

@ -0,0 +1,33 @@
package com.biutag.supervision.pojo.dto.report.unitInvestigation;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @ClassName UnitInvestigationOverviewSection
* @Description TODO
* @Author shihao
* @Date 2026/3/6 10:45
*/
@Setter
@Getter
@Schema(description = "单位查处情况")
public class UnitInvestigationOverviewSection {
@Schema(description = "统计开始时间", example = "2026年3月1日")
private String periodStart;
@Schema(description = "统计结束时间", example = "2026年3月31日")
private String periodEnd;
@Schema(description = "查实问题占比较多的单位列表")
private List<UnitInvestigationItem> topUnits;
}

118
src/main/java/com/biutag/supervision/pojo/vo/ExportNegativeBlameLeaderVo.java

@ -0,0 +1,118 @@
package com.biutag.supervision.pojo.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import java.time.LocalDateTime;
/**
* @ClassName ExportNegativeBlameLeaderVo
* @Description 问责领导信息
* @Author shihao
* @Date 2026/3/6 14:46
*/
@Setter
@Getter
@Schema(description = "问责领导信息")
public class ExportNegativeBlameLeaderVo {
@ExcelProperty({"问题编号"})
private String id;
// 通报期数
@ExcelProperty({"通报期数"})
private String reportNumber;
// 问题发现时间
@ExcelProperty({"问题发现时间"})
@JsonFormat(pattern = "yyyy-MM-dd HH:mm")
private LocalDateTime discoveryTime;
// 业务类别名称
@ExcelProperty({"问题来源"})
private String problemSources;
// 业务类别名称
@ExcelProperty({"业务类别"})
private String businessTypeName;
// 涉嫌问题 JSON
@ExcelProperty({"涉嫌问题"})
private String involveProblem;
// 简要描述
@ExcelProperty({"简要描述"})
private String thingDesc;
// 涉及单位名称
@ExcelProperty({"涉及单位"})
private String involveDepartName;
// 办理单位 二级
@ExcelProperty({"办理单位(二级)"})
private String handleSecondDepartName;
// 办理单位 三级
@ExcelProperty({"办理单位(三级)"})
private String handleThreeDepartName;
// 核查情况
@ExcelProperty({"核查情况(是否属实)"})
private String checkStatusName;
// 是否整改
@ExcelProperty({"是否整改"})
private String isRectifyName;
// 问题整改情况
@ExcelProperty({"整改情况"})
private String rectifyDesc;
// 追责对象
@ExcelProperty({"追责对象"})
private String accountabilityTarget;
// @ExcelProperty({"涉及人员姓名"})
// private String blameName;
// 涉及警号
// @ExcelProperty({"警号"})
// private String blameEmpNo;
//
// // 涉及身份证
// @ExcelProperty({"身份证"})
// private String blameIdCode;
// @ExcelProperty({"人员属性"})
// private String ivPersonType;
//
// @ExcelProperty({"责任追责"})
// private String handleResultName;
// 责任领导
@ExcelProperty({"责任领导姓名"})
private String leadName;
// 领导警号
@ExcelProperty({"责任领导警号"})
private String leadEmpNo;
// 责任领导身份证
@ExcelProperty({"责任领导身份证"})
private String leadIdCode;
// 领导处理结果
@ExcelProperty("责任领导责任追责")
private String leadHandleResultName;
// 问题类型
// @ExcelProperty({"问题类型"})
// private String problemType;
}

34
src/main/java/com/biutag/supervision/service/NegativeTaskService.java

@ -19,6 +19,7 @@ import com.biutag.supervision.pojo.entity.*;
import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel; import com.biutag.supervision.pojo.model.ModelClueTaskDepartModel;
import com.biutag.supervision.pojo.model.UserAuth; import com.biutag.supervision.pojo.model.UserAuth;
import com.biutag.supervision.pojo.param.NegativeTaskQueryParam; import com.biutag.supervision.pojo.param.NegativeTaskQueryParam;
import com.biutag.supervision.pojo.vo.ExportNegativeBlameLeaderVo;
import com.biutag.supervision.pojo.vo.ExportNegativeBlameVo; import com.biutag.supervision.pojo.vo.ExportNegativeBlameVo;
import com.biutag.supervision.pojo.vo.ExportNegativeVo; import com.biutag.supervision.pojo.vo.ExportNegativeVo;
import com.biutag.supervision.pojo.vo.NegativeQueryVo; import com.biutag.supervision.pojo.vo.NegativeQueryVo;
@ -178,6 +179,33 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
}).toList(); }).toList();
} }
Set<String> seen = new HashSet<>();
List<ExportNegativeBlameLeaderVo> blameLeaderVoList = blameVoList.stream()
.filter(one -> StrUtil.isNotBlank(one.getLeadName()))
.filter(one -> "涉及个人".equals(one.getAccountabilityTarget()))
// 同一个问题 同一个人 同一个问责 算一条数据
.filter(one -> seen.add(one.getId() + "_" + one.getLeadHandleResultName() + "_" + one.getLeadName()))
.map(one -> {
ExportNegativeBlameLeaderVo exportNegativeBlameLeaderVo = new ExportNegativeBlameLeaderVo();
BeanUtils.copyProperties(one, exportNegativeBlameLeaderVo);
return exportNegativeBlameLeaderVo;
}
).toList();
Set<String> seenLead = new HashSet<>();
List<ExportNegativeBlameLeaderVo> departBlameLeaderVoList = blameVoList.stream()
.filter(one -> StrUtil.isNotBlank(one.getLeadName()))
.filter(one -> "涉及单位".equals(one.getAccountabilityTarget()))
// .filter(one -> seenLead.add(one.getId() + "_" + one.getLeadHandleResultName()))
.map(one -> {
ExportNegativeBlameLeaderVo exportNegativeBlameLeaderVo = new ExportNegativeBlameLeaderVo();
BeanUtils.copyProperties(one, exportNegativeBlameLeaderVo);
return exportNegativeBlameLeaderVo;
}
).toList();
ByteArrayOutputStream os = new ByteArrayOutputStream(); ByteArrayOutputStream os = new ByteArrayOutputStream();
try { try {
ExcelWriter excelWriter = EasyExcel.write(os).build(); ExcelWriter excelWriter = EasyExcel.write(os).build();
@ -185,8 +213,14 @@ public class NegativeTaskService extends ServiceImpl<NegativeTaskMapper, Negativ
.head(ExportNegativeVo.class).build(); .head(ExportNegativeVo.class).build();
WriteSheet sheet2 = EasyExcel.writerSheet(1, "问题涉及人员台账") WriteSheet sheet2 = EasyExcel.writerSheet(1, "问题涉及人员台账")
.head(ExportNegativeBlameVo.class).build(); .head(ExportNegativeBlameVo.class).build();
WriteSheet sheet3 = EasyExcel.writerSheet(2, "个人问题涉及领导台账")
.head(ExportNegativeBlameLeaderVo.class).build();
WriteSheet sheet4 = EasyExcel.writerSheet(3, "单位问题涉及台账")
.head(ExportNegativeBlameLeaderVo.class).build();
excelWriter.write(list, sheet1); excelWriter.write(list, sheet1);
excelWriter.write(blameVoList, sheet2); excelWriter.write(blameVoList, sheet2);
excelWriter.write(blameLeaderVoList, sheet3);
excelWriter.write(departBlameLeaderVoList, sheet4);
excelWriter.finish(); excelWriter.finish();
} catch (RuntimeException e) { } catch (RuntimeException e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);

6
src/main/java/com/biutag/supervision/service/NegativeWorkService.java

@ -38,9 +38,9 @@ public class NegativeWorkService extends ServiceImpl<NegativeWorkMapper, Negativ
public Page<NegativeWorkModel> page(NegativeQueryParam param, String workStatus) { public Page<NegativeWorkModel> page(NegativeQueryParam param, String workStatus) {
UserAuth user = UserContextHolder.getCurrentUser(); UserAuth user = UserContextHolder.getCurrentUser();
if (user.getRoleCodes().isEmpty() || user.getAuthDepartIds().isEmpty() || user.getAuthSources().isEmpty()) { // if (user.getRoleCodes().isEmpty() || user.getAuthDepartIds().isEmpty() || user.getAuthSources().isEmpty()) {
return new Page<NegativeWorkModel>().setTotal(0).setRecords(new ArrayList<>()); // return new Page<NegativeWorkModel>().setTotal(0).setRecords(new ArrayList<>());
} // }
QueryWrapper<NegativeWorkModel> queryWrapper = new QueryWrapper<>(); QueryWrapper<NegativeWorkModel> queryWrapper = new QueryWrapper<>();
queryWrapper.in("w.role_code", user.getRoleCodes()) queryWrapper.in("w.role_code", user.getRoleCodes())
.in("w.depart_id", user.getAuthDepartIds()) .in("w.depart_id", user.getAuthDepartIds())

202
src/main/java/com/biutag/supervision/service/report/ReportDataServiceImpl.java

@ -3,11 +3,17 @@ package com.biutag.supervision.service.report;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.biutag.supervision.constants.enums.CheckStatusEnum; import com.biutag.supervision.constants.enums.CheckStatusEnum;
import com.biutag.supervision.constants.enums.ProcessingStatusEnum; import com.biutag.supervision.constants.enums.ProcessingStatusEnum;
import com.biutag.supervision.pojo.domain.NegativeVo; import com.biutag.supervision.pojo.dto.report.accountability.AccountabilityOverviewSection;
import com.biutag.supervision.pojo.dto.report.BusinessLineOverviewSection; import com.biutag.supervision.pojo.dto.report.businessLine.BusinessLineDetailSection;
import com.biutag.supervision.pojo.dto.report.businessLine.BusinessLineOverviewSection;
import com.biutag.supervision.pojo.dto.report.OverviewSection; import com.biutag.supervision.pojo.dto.report.OverviewSection;
import com.biutag.supervision.pojo.dto.report.ReportViewModel; import com.biutag.supervision.pojo.dto.report.ReportViewModel;
import com.biutag.supervision.pojo.dto.report.businessLine.BusinessLinePersonRankItem;
import com.biutag.supervision.pojo.dto.report.businessLine.BusinessLineRankItem;
import com.biutag.supervision.pojo.dto.report.unitInvestigation.UnitInvestigationItem;
import com.biutag.supervision.pojo.dto.report.unitInvestigation.UnitInvestigationOverviewSection;
import com.biutag.supervision.pojo.entity.NegativeBlame; import com.biutag.supervision.pojo.entity.NegativeBlame;
import com.biutag.supervision.pojo.enums.report.TrendEnum;
import com.biutag.supervision.pojo.param.NegativeQueryParam; import com.biutag.supervision.pojo.param.NegativeQueryParam;
import com.biutag.supervision.pojo.param.negativeBlame.NegativeBlameQueryParam; import com.biutag.supervision.pojo.param.negativeBlame.NegativeBlameQueryParam;
import com.biutag.supervision.pojo.vo.DictProblemSourceTree; import com.biutag.supervision.pojo.vo.DictProblemSourceTree;
@ -23,9 +29,7 @@ import jakarta.annotation.Resource;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.*;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
@ -52,10 +56,194 @@ public class ReportDataServiceImpl implements ReportDataService {
vm.setPeriodStart(periodStart); vm.setPeriodStart(periodStart);
vm.setPeriodEnd(periodEnd); vm.setPeriodEnd(periodEnd);
vm.setOverviewSection(buildOverviewSection(request, periodStart, periodEnd)); vm.setOverviewSection(buildOverviewSection(request, periodStart, periodEnd));
vm.setBusinessLineOverviewSection(buildbusinessLineOverviewSection(request, periodStart, periodEnd)); vm.setBusinessLineOverviewSection(buildBusinessLineOverviewSection(request, periodStart, periodEnd));
vm.setBusinessLineDetailSections(buildBusinessLineDetailSections(request, periodStart, periodEnd));
vm.setUnitInvestigationSection(buildUnitInvestigationSection(request, periodStart, periodEnd));
vm.setAccountabilityOverviewSection(buildAccountabilityOverviewSection(request, periodStart, periodEnd));
// vm.setAccountabilityUnitDetailSection();
return vm; return vm;
} }
/**
* 问责追责总览
* @param request
* @param periodStart
* @param periodEnd
* @return
*/
private AccountabilityOverviewSection buildAccountabilityOverviewSection(NegativeQueryParam request, String periodStart, String periodEnd) {
return null;
}
private UnitInvestigationOverviewSection buildUnitInvestigationSection(NegativeQueryParam request,
String periodStart,
String periodEnd) {
UnitInvestigationOverviewSection section = new UnitInvestigationOverviewSection();
section.setPeriodStart(periodStart);
section.setPeriodEnd(periodEnd);
List<UnitInvestigationItem> topUnits = new ArrayList<>();
UnitInvestigationItem item1 = new UnitInvestigationItem();
item1.setRank(1);
item1.setUnitName("北京市分公司");
item1.setIssuedProblemCount(28);
item1.setVerifiedProblemCount(21);
item1.setVerifiedRate("75.00");
UnitInvestigationItem item2 = new UnitInvestigationItem();
item2.setRank(2);
item2.setUnitName("上海市分公司");
item2.setIssuedProblemCount(24);
item2.setVerifiedProblemCount(17);
item2.setVerifiedRate("70.83");
UnitInvestigationItem item3 = new UnitInvestigationItem();
item3.setRank(3);
item3.setUnitName("广东省分公司");
item3.setIssuedProblemCount(19);
item3.setVerifiedProblemCount(13);
item3.setVerifiedRate("68.42");
topUnits.add(item1);
topUnits.add(item2);
topUnits.add(item3);
section.setTopUnits(topUnits);
return section;
}
/**
* 业务条线的明细
* @param request
* @param periodStart
* @param periodEnd
* @return
*/
private List<BusinessLineDetailSection> buildBusinessLineDetailSections(NegativeQueryParam request, String periodStart, String periodEnd) {
List<BusinessLineDetailSection> list = new ArrayList<>();
// 第一条
BusinessLineDetailSection section1 = new BusinessLineDetailSection();
section1.setOrderNo("一");
section1.setBusinessLineName("执法监督");
section1.setBusinessFatherLineName("执法办案");
section1.setTotalIssued(12);
section1.setVerifiedTotal(8);
section1.setVerifiedRate(new BigDecimal("66.67"));
section1.setAccountabilityTotal(5);
section1.setAccountabilityRate(new BigDecimal("62.50"));
section1.setPersonalAccountabilityCount(3);
section1.setDepartmentAccountabilityCount(2);
section1.setTopProblemTypes(Arrays.asList(
buildRankItem("执法程序问题", 3, "37.50"),
buildRankItem("案件管理问题", 2, "25.00"),
buildRankItem("执法作风问题", 2, "25.00")
));
section1.setTopUnits(Arrays.asList(
buildRankItem("XX派出所", 2, "25.00"),
buildRankItem("XX大队", 2, "25.00"),
buildRankItem("XX中队", 1, "12.50")
));
section1.setTopPersons(Arrays.asList(
buildPersonRankItem("张三", "XX派出所", "民警", 2, "25.00"),
buildPersonRankItem("李四", "XX大队", "辅警", 1, "12.50"),
buildPersonRankItem("王五", "XX中队", "民警", 1, "12.50")
));
section1.setMomRate(new BigDecimal("20.00"));
section1.setMomTrend(TrendEnum.UP);
section1.setYoyRate(new BigDecimal("10.00"));
section1.setYoyTrend(TrendEnum.DOWN);
list.add(section1);
// 第二条
BusinessLineDetailSection section2 = new BusinessLineDetailSection();
section2.setOrderNo("二");
section2.setBusinessLineName("案件管理");
section2.setBusinessFatherLineName("执法办案");
section2.setTotalIssued(9);
section2.setVerifiedTotal(6);
section2.setVerifiedRate(new BigDecimal("66.67"));
section2.setAccountabilityTotal(4);
section2.setAccountabilityRate(new BigDecimal("50.00"));
section2.setPersonalAccountabilityCount(2);
section2.setDepartmentAccountabilityCount(2);
section2.setTopProblemTypes(Arrays.asList(
buildRankItem("案件审核把关不严", 2, "33.33"),
buildRankItem("卷宗管理不规范", 2, "33.33"),
buildRankItem("系统录入不及时", 1, "16.67")
));
section2.setTopUnits(Arrays.asList(
buildRankItem("XX法制大队", 2, "33.33"),
buildRankItem("XX派出所", 1, "16.67"),
buildRankItem("XX治安大队", 1, "16.67")
));
section2.setTopPersons(Arrays.asList(
buildPersonRankItem("赵六", "XX法制大队", "民警", 2, "33.33"),
buildPersonRankItem("孙七", "XX派出所", "民警", 1, "16.67"),
buildPersonRankItem("周八", "XX治安大队", "辅警", 1, "16.67")
));
section2.setMomRate(new BigDecimal("12.50"));
section2.setMomTrend(TrendEnum.DOWN);
section2.setYoyRate(new BigDecimal("8.00"));
section2.setYoyTrend(TrendEnum.UP);
list.add(section2);
// 第三条
BusinessLineDetailSection section3 = new BusinessLineDetailSection();
section3.setOrderNo("三");
section3.setBusinessLineName("作风建设");
section3.setBusinessFatherLineName("队伍管理");
section3.setTotalIssued(7);
section3.setVerifiedTotal(5);
section3.setVerifiedRate(new BigDecimal("71.43"));
section3.setAccountabilityTotal(3);
section3.setAccountabilityRate(new BigDecimal("60.00"));
section3.setPersonalAccountabilityCount(2);
section3.setDepartmentAccountabilityCount(1);
section3.setTopProblemTypes(Arrays.asList(
buildRankItem("纪律作风问题", 2, "40.00"),
buildRankItem("窗口服务问题", 1, "20.00"),
buildRankItem("值班备勤问题", 1, "20.00")
));
section3.setTopUnits(Arrays.asList(
buildRankItem("XX交警大队", 2, "40.00"),
buildRankItem("XX派出所", 1, "20.00"),
buildRankItem("XX巡特警大队", 1, "20.00")
));
section3.setTopPersons(Arrays.asList(
buildPersonRankItem("吴九", "XX交警大队", "民警", 2, "40.00"),
buildPersonRankItem("郑十", "XX派出所", "辅警", 1, "20.00"),
buildPersonRankItem("钱一", "XX巡特警大队", "民警", 1, "20.00")
));
section3.setMomRate(new BigDecimal("0.00"));
section3.setMomTrend(TrendEnum.STABLE);
section3.setYoyRate(new BigDecimal("15.00"));
section3.setYoyTrend(TrendEnum.UP);
list.add(section3);
return list;
}
private BusinessLineRankItem buildRankItem(String name, Integer count, String rate) {
BusinessLineRankItem item = new BusinessLineRankItem();
item.setName(name);
item.setCount(count);
item.setRate(new BigDecimal(rate));
return item;
}
private BusinessLinePersonRankItem buildPersonRankItem(String personName, String unitName, String identityName, Integer count, String rate) {
BusinessLinePersonRankItem item = new BusinessLinePersonRankItem();
item.setPersonName(personName);
item.setUnitName(unitName);
item.setIdentityName(identityName);
item.setCount(count);
item.setRate(new BigDecimal(rate));
return item;
}
/** /**
* 业务条线的总览 * 业务条线的总览
* @param request * @param request
@ -63,7 +251,7 @@ public class ReportDataServiceImpl implements ReportDataService {
* @param periodEnd * @param periodEnd
* @return * @return
*/ */
private BusinessLineOverviewSection buildbusinessLineOverviewSection(NegativeQueryParam request, String periodStart, String periodEnd) { private BusinessLineOverviewSection buildBusinessLineOverviewSection(NegativeQueryParam request, String periodStart, String periodEnd) {
// 总体数据 // 总体数据
NegativeQueryParam ztNegativeQueryParam = request.newQueryParam(); NegativeQueryParam ztNegativeQueryParam = request.newQueryParam();
List<NegativeQueryVo> ztNegativeList = negativeQueryService.page(ztNegativeQueryParam).getRecords(); List<NegativeQueryVo> ztNegativeList = negativeQueryService.page(ztNegativeQueryParam).getRecords();

BIN
src/main/resources/static/templates/督审一体化平台研判分析报告.docx

Binary file not shown.
Loading…
Cancel
Save