Commit b3261d75 authored by lisong's avatar lisong

监管统计导出接口

parent 3fa49ad7
package com.yeejoin.amos.boot.module.tcm.api.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import lombok.Data;
@Data
public class TzsTwoStaffingExportVo {
/**
* 监管单位名称
*/
@ColumnWidth(30)
@ExcelProperty(value = "监管单位名称", index = 0)
private String supervisoryUnitName;
/**
* 单位数
*/
@ExcelProperty(value = "单位数", index = 1)
private Integer numberOfUnits;
/**
* 已完成单位数
*/
@ExcelProperty(value = "已完成单位数", index = 2)
private Integer numberOfCompletedUnits;
/**
* 完成比例
*/
@ExcelProperty(value = "完成比例", index = 3)
private String completionRatio;
/**
* 已配备主要负责人单位数
*/
@ExcelProperty(value = "已配备主要负责人单位数", index = 4)
private Integer responsibleUnitsAllocateNumber;
/**
* 占比
*/
@ExcelProperty(value = "占比", index = 5)
private String proportion;
}
package com.yeejoin.amos.boot.module.tcm.biz.controller;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzsEquipListDto;
import com.yeejoin.amos.boot.biz.common.excel.ExcelUtil;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzsTwoStaffingCompanyDto;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.tcm.api.entity.TzsTwoStaffing;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzsTwoStaffingService;
import com.yeejoin.amos.boot.module.tcm.api.vo.TzsTwoStaffingExportVo;
import com.yeejoin.amos.boot.module.tcm.biz.service.impl.TzsUserInfoServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -74,12 +79,32 @@ public class TzsTwoStaffingController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getStatisticsMessage")
@ApiOperation(httpMethod = "GET", value = "监管单位统计信息", notes = "监管单位统计信息")
public ResponseModel<Object> getGroupAndPersonInfo(@RequestParam("sequenceNbr") String sequenceNbr,
public ResponseModel<Object> getStatisticsMessage(@RequestParam("sequenceNbr") String sequenceNbr,
@RequestParam("type") String type) {
List<LinkedHashMap> data = (List<LinkedHashMap>) redisUtils.get(REGULATOR_UNIT_TREE);
ArrayList<LinkedHashMap> result = new ArrayList<>();
List<LinkedHashMap> list = tzsUserInfoServiceImpl.screenData(result, data, sequenceNbr);
return ResponseHelper.buildResponse(tzsTwoStaffingService.getStatisticsMessage(list, type));
Page<TzsTwoStaffing> tzsTwoStaffingPage = new Page<>();
tzsTwoStaffingPage.setRecords(tzsTwoStaffingService.getStatisticsMessage(list, type));
return ResponseHelper.buildResponse(tzsTwoStaffingPage);
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/exportData")
@ApiOperation(httpMethod = "GET", value = "监管单位统计信息导出", notes = "监管单位统计信息导出")
public void exportData(HttpServletResponse response,
@RequestParam("sequenceNbr") String sequenceNbr,
@RequestParam("type") String type) {
List<LinkedHashMap> data = (List<LinkedHashMap>) redisUtils.get(REGULATOR_UNIT_TREE);
ArrayList<LinkedHashMap> result = new ArrayList<>();
List<LinkedHashMap> list = tzsUserInfoServiceImpl.screenData(result, data, sequenceNbr);
List<TzsTwoStaffing> statisticsMessage = tzsTwoStaffingService.getStatisticsMessage(list, type);
ArrayList<TzsTwoStaffingExportVo> exportVos = new ArrayList<>();
for (TzsTwoStaffing tzsTwoStaffing : statisticsMessage) {
TzsTwoStaffingExportVo vo = new TzsTwoStaffingExportVo();
BeanUtil.copyProperties(tzsTwoStaffing, vo);
exportVos.add(vo);
}
ExcelUtil.createTemplate(response, "监管单位统计信息", type, exportVos, TzsTwoStaffingExportVo.class, null, false);
}
}
......@@ -14,6 +14,8 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
......@@ -50,33 +52,47 @@ public class TzsTwoStaffingServiceImpl extends BaseService<TzsTwoStaffingDto, Tz
public List<TzsTwoStaffing> getStatisticsMessage(List<LinkedHashMap> list, String type) {
String orgCode = null;
String nextLevel = null;
SupervisoryEnum enumByLevel = null;
if (!ObjectUtils.isEmpty(list) && !ObjectUtils.isEmpty(list.get(0))) {
orgCode = String.valueOf(list.get(0).get("orgCode"));
SupervisoryEnum enumByLevel = SupervisoryEnum.getEnumByLevel(String.valueOf(list.get(0).get("level")));
enumByLevel = SupervisoryEnum.getEnumByLevel(String.valueOf(list.get(0).get("level")));
nextLevel = !ObjectUtils.isEmpty(enumByLevel) ? enumByLevel.getNextLevel() : null;
}
DecimalFormat decimalFormat = new DecimalFormat("0.00");
if (!ObjectUtils.isEmpty(orgCode)) {
if ("50*56".equals(orgCode)){
nextLevel = "organization";
}
List<TzsTwoStaffing> listByOrgCode = this.getBaseMapper().getListByOrgCode(orgCode, type, nextLevel);
if (ObjectUtils.isEmpty(listByOrgCode)){
listByOrgCode = this.getBaseMapper().getListByOrgCode(orgCode, type, enumByLevel.getLevel());
}
TzsTwoStaffing tzsTwoStaffing = new TzsTwoStaffing();
tzsTwoStaffing.setSupervisoryUnitName("汇总");
listByOrgCode.stream().forEach(item -> {
tzsTwoStaffing.setNumberOfUnits(!ObjectUtils.isEmpty(tzsTwoStaffing.getNumberOfUnits()) ? tzsTwoStaffing.getNumberOfUnits() : 0);
tzsTwoStaffing.setNumberOfCompletedUnits(item.getNumberOfCompletedUnits() + (!ObjectUtils.isEmpty(tzsTwoStaffing.getNumberOfCompletedUnits()) ? tzsTwoStaffing.getNumberOfCompletedUnits() : 0));
tzsTwoStaffing.setResponsibleUnitsAllocateNumber(item.getResponsibleUnitsAllocateNumber() + (!ObjectUtils.isEmpty(tzsTwoStaffing.getResponsibleUnitsAllocateNumber()) ? tzsTwoStaffing.getResponsibleUnitsAllocateNumber() : 0));
listByOrgCode.forEach(item -> {
tzsTwoStaffing.setNumberOfUnits(!ObjectUtils.isEmpty(tzsTwoStaffing.getNumberOfUnits()) ? +tzsTwoStaffing.getNumberOfUnits() + item.getNumberOfUnits() : item.getNumberOfUnits());
tzsTwoStaffing.setNumberOfCompletedUnits(!ObjectUtils.isEmpty(tzsTwoStaffing.getNumberOfCompletedUnits()) ? tzsTwoStaffing.getNumberOfCompletedUnits() + item.getNumberOfCompletedUnits() : item.getNumberOfCompletedUnits());
tzsTwoStaffing.setResponsibleUnitsAllocateNumber(!ObjectUtils.isEmpty(tzsTwoStaffing.getResponsibleUnitsAllocateNumber()) ? tzsTwoStaffing.getResponsibleUnitsAllocateNumber() + item.getResponsibleUnitsAllocateNumber() : item.getResponsibleUnitsAllocateNumber());
});
if (ObjectUtils.isEmpty(tzsTwoStaffing.getNumberOfCompletedUnits()) || ObjectUtils.isEmpty(tzsTwoStaffing.getNumberOfUnits()) || tzsTwoStaffing.getNumberOfUnits() == 0 || tzsTwoStaffing.getNumberOfCompletedUnits() == 0) {
tzsTwoStaffing.setCompletionRatio("0");
tzsTwoStaffing.setCompletionRatio("0%");
} else {
tzsTwoStaffing.setCompletionRatio(String.valueOf(tzsTwoStaffing.getNumberOfCompletedUnits() / tzsTwoStaffing.getNumberOfUnits()));
BigDecimal bigDecimal = new BigDecimal(tzsTwoStaffing.getNumberOfCompletedUnits().toString());
BigDecimal bigDecimal1 = new BigDecimal(tzsTwoStaffing.getNumberOfUnits().toString());
BigDecimal divide = bigDecimal.divide(bigDecimal1, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
tzsTwoStaffing.setCompletionRatio(decimalFormat.format(divide) + "%");
}
if (ObjectUtils.isEmpty(tzsTwoStaffing.getResponsiblePersonsNumber()) || tzsTwoStaffing.getResponsiblePersonsNumber() == 0
|| ObjectUtils.isEmpty(tzsTwoStaffing.getNumberOfUnits()) || tzsTwoStaffing.getNumberOfUnits() == 0) {
tzsTwoStaffing.setProportion("0");
tzsTwoStaffing.setProportion("0%");
} else {
tzsTwoStaffing.setProportion(String.valueOf(tzsTwoStaffing.getResponsiblePersonsNumber() / tzsTwoStaffing.getNumberOfUnits()));
BigDecimal bigDecimal = new BigDecimal(tzsTwoStaffing.getResponsiblePersonsNumber().toString());
BigDecimal bigDecimal1 = new BigDecimal(tzsTwoStaffing.getNumberOfUnits().toString());
BigDecimal divide = bigDecimal.divide(bigDecimal1, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal("100"));
tzsTwoStaffing.setProportion(decimalFormat.format(divide) + "%");
}
listByOrgCode.add(tzsTwoStaffing);
......
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