Commit 11c91ca0 authored by suhuiguang's avatar suhuiguang

1.实现类复制错误

parent 3baf70fc
...@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,6 +4,7 @@ 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.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto; import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import com.yeejoin.equipmanage.service.IFireAutoSysManageReportService;
import com.yeejoin.equipmanage.service.IFirePatrolReportService; import com.yeejoin.equipmanage.service.IFirePatrolReportService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -33,7 +34,7 @@ import java.util.Date; ...@@ -33,7 +34,7 @@ import java.util.Date;
public class FireAutoSysManageReportController extends BaseController { public class FireAutoSysManageReportController extends BaseController {
@Autowired @Autowired
IFirePatrolReportService iFirePatrolReportService; IFireAutoSysManageReportService iFireAutoSysManageReportService;
@ApiOperation(value = "下载报表", notes = "下载报表") @ApiOperation(value = "下载报表", notes = "下载报表")
@GetMapping(value = "/download") @GetMapping(value = "/download")
...@@ -42,7 +43,7 @@ public class FireAutoSysManageReportController extends BaseController { ...@@ -42,7 +43,7 @@ public class FireAutoSysManageReportController extends BaseController {
@ApiParam(value = "换流站编码", required = true) @RequestParam String stationCode, @ApiParam(value = "换流站编码", required = true) @RequestParam String stationCode,
@ApiParam(value = "开始日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @ApiParam(value = "开始日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@ApiParam(value = "结束日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) { @ApiParam(value = "结束日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
iFirePatrolReportService.download(request, response, stationCode, startDate, endDate); iFireAutoSysManageReportService.download(request, response, stationCode, startDate, endDate);
} }
@ApiOperation(value = "预览报表", notes = "预览报表") @ApiOperation(value = "预览报表", notes = "预览报表")
...@@ -52,7 +53,7 @@ public class FireAutoSysManageReportController extends BaseController { ...@@ -52,7 +53,7 @@ public class FireAutoSysManageReportController extends BaseController {
@ApiParam(value = "换流站编码", required = true) @RequestParam String stationCode, @ApiParam(value = "换流站编码", required = true) @RequestParam String stationCode,
@ApiParam(value = "开始日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @ApiParam(value = "开始日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@ApiParam(value = "结束日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) { @ApiParam(value = "结束日期", required = true) @RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate) {
return iFirePatrolReportService.preview(stationCode, startDate, endDate); return iFireAutoSysManageReportService.preview(stationCode, startDate, endDate);
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
...@@ -63,7 +64,7 @@ public class FireAutoSysManageReportController extends BaseController { ...@@ -63,7 +64,7 @@ public class FireAutoSysManageReportController extends BaseController {
@ApiParam(value = "开始日期") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate, @ApiParam(value = "开始日期") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
@ApiParam(value = "结束日期") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate, @ApiParam(value = "结束日期") @RequestParam(required = false) @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate,
@ApiParam(value = "换流站编码") @RequestParam(required = false) String stationCode) { @ApiParam(value = "换流站编码") @RequestParam(required = false) String stationCode) {
return iFirePatrolReportService.allPage(page, reportType, startDate, endDate, stationCode); return iFireAutoSysManageReportService.allPage(page, reportType, startDate, endDate, stationCode);
} }
} }
...@@ -2,418 +2,289 @@ package com.yeejoin.equipmanage.service.impl; ...@@ -2,418 +2,289 @@ package com.yeejoin.equipmanage.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.github.xiaoymin.knife4j.core.util.StrUtil;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.systemctl.Systemctl; import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto; import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import com.yeejoin.equipmanage.common.entity.MyByteArrayMultipartFile; import com.yeejoin.equipmanage.common.entity.MyByteArrayMultipartFile;
import com.yeejoin.equipmanage.common.enums.WordTemplateTypeEum; import com.yeejoin.equipmanage.common.enums.WordTemplateTypeEum;
import com.yeejoin.equipmanage.common.exception.BaseException;
import com.yeejoin.equipmanage.common.exception.CommonException; import com.yeejoin.equipmanage.common.exception.CommonException;
import com.yeejoin.equipmanage.common.utils.WordTemplateUtils; import com.yeejoin.equipmanage.common.utils.WordTemplateUtils;
import com.yeejoin.equipmanage.mapper.AnalysisReportLogMapper; import com.yeejoin.equipmanage.mapper.AnalysisReportLogMapper;
import com.yeejoin.equipmanage.service.IFirePatrolReportService; import com.yeejoin.equipmanage.service.IFireAutoSysManageReportService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot;
import org.jfree.chart.title.LegendTitle;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.ui.RectangleEdge;
import org.jfree.ui.RectangleInsets;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal; import java.util.Date;
import java.text.NumberFormat; import java.util.HashMap;
import java.text.SimpleDateFormat; import java.util.Map;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.*;
@Slf4j @Slf4j
@Service @Service
public class FireAutoSysManageReportServiceImpl implements IFirePatrolReportService { public class FireAutoSysManageReportServiceImpl implements IFireAutoSysManageReportService {
@Autowired @Autowired
AnalysisReportLogMapper analysisReportLogMapper; AnalysisReportLogMapper analysisReportLogMapper;
@Override @Override
public void download(HttpServletRequest request, HttpServletResponse response, String code, Date startDate, public void download(HttpServletRequest request, HttpServletResponse response, String code, Date startDate,
Date endDate) { Date endDate) {
WordTemplateUtils instance = WordTemplateUtils.getInstance(); WordTemplateUtils instance = WordTemplateUtils.getInstance();
Map<String, Object> map = getWordMap(code, startDate, endDate); Map<String, Object> map = getWordMap(code, startDate, endDate);
try { try {
instance.exportMillCertificateWord(request, response, map, (String) map.get("document_name"), instance.exportMillCertificateWord(request, response, map, (String) map.get("document_name"),
WordTemplateTypeEum.firePatrolReport.getTemplateFile()); WordTemplateTypeEum.firePatrolReport.getTemplateFile());
} catch (IOException e) { } catch (IOException e) {
throw new CommonException(0, "下载装备巡查报表失败"); throw new CommonException(0, "下载消防自动化综合管理报表 失败");
} }
} }
private Map<String, Object> getWordMap(String code, Date startDate, private Map<String, Object> getWordMap(String code, Date startDate,
Date endDate) Date endDate) {
{ Map<String, Object> map = new HashMap<String, Object>();
Map<String, Object> map = new HashMap<String, Object>(); // // 查询换流站
// 查询换流站 // Map<String, Object> station = analysisReportLogMapper.getStation(code);
Map<String, Object> station = analysisReportLogMapper.getStation(code); // if(station==null||station.isEmpty())
if(station==null||station.isEmpty()) // {
{ // throw new BaseException("换流站编码不存在");
throw new BaseException("换流站编码不存在"); // }
} // AnalysisReportLogDto analysisReportLog = new AnalysisReportLogDto();
AnalysisReportLogDto analysisReportLog = new AnalysisReportLogDto(); // analysisReportLog.setStationCode(code);
analysisReportLog.setStationCode(code); // analysisReportLog.setStartDate(startDate);
analysisReportLog.setStartDate(startDate); // analysisReportLog.setEndDate(endDate);
analysisReportLog.setEndDate(endDate); // Map<String, Object> report = analysisReportLogMapper.getReport(analysisReportLog);
Map<String, Object> report = analysisReportLogMapper.getReport(analysisReportLog); // SimpleDateFormat dateStat = new SimpleDateFormat("yyyy年MM月dd日");
SimpleDateFormat dateStat = new SimpleDateFormat("yyyy年MM月dd日"); // // 文档编号
// 文档编号 // String timeStr1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"));
String timeStr1 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss")); // String documentNumber = "ZD-XFSBXC" + timeStr1;
String documentNumber = "ZD-XFSBXC" + timeStr1; // String documentNameTime = dateStat.format(startDate);
String documentNameTime = dateStat.format(startDate); // map.put("document_number", documentNumber);
map.put("document_number", documentNumber); // // 设置文档文件名
// 设置文档文件名 // map.put("document_name", "消防巡查报表" + documentNameTime);
map.put("document_name", "消防巡查报表" + documentNameTime); // // 换流站名称
// 换流站名称 // String stationName=(String) station.get("biz_org_name");
String stationName=(String) station.get("biz_org_name"); // map.put("station_name", stationName);
map.put("station_name", stationName); // // 统计时间
// 统计时间 // String statisticalTime = dateStat.format(startDate) + "-" + dateStat.format(endDate);
String statisticalTime = dateStat.format(startDate) + "-" + dateStat.format(endDate); // if (statisticalTime.contains("年0")) {
if (statisticalTime.contains("年0")) { // statisticalTime = statisticalTime.replaceAll("年0", "年");
statisticalTime = statisticalTime.replaceAll("年0", "年"); // }
} // map.put("statistical_time", statisticalTime);
map.put("statistical_time", statisticalTime); // // 生成日期
// 生成日期 // String timeStr2 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日"));
String timeStr2 = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy年MM月dd日")); // if (timeStr2.contains("年0")) {
if (timeStr2.contains("年0")) { // timeStr2 = timeStr2.replaceAll("年0", "年");
timeStr2 = timeStr2.replaceAll("年0", "年"); // }
} // NumberFormat nf = NumberFormat.getNumberInstance();
NumberFormat nf = NumberFormat.getNumberInstance(); // nf.setMaximumFractionDigits(0);
nf.setMaximumFractionDigits(0); // SimpleDateFormat dateFm = new SimpleDateFormat("EEEE", Locale.SIMPLIFIED_CHINESE);
SimpleDateFormat dateFm = new SimpleDateFormat("EEEE", Locale.SIMPLIFIED_CHINESE); // String currSun = dateFm.format(new Date());
String currSun = dateFm.format(new Date()); // map.put("create_date", timeStr2 + currSun);
map.put("create_date", timeStr2 + currSun); // map.put("create_date2", timeStr2);
map.put("create_date2", timeStr2); // // 统计时间2
// 统计时间2 // map.put("statistical_time2", statisticalTime.replaceAll("-", "至"));
map.put("statistical_time2", statisticalTime.replaceAll("-", "至")); // // 合格数
// 合格数 // int qualified = 0;
int qualified = 0; // // 未合格数
// 未合格数 // int no_qualified = 0;
int no_qualified = 0; // // 巡查任务数
// 巡查任务数 // int task_count = ((BigDecimal) report.get("task_count")).intValue();
int task_count = ((BigDecimal) report.get("task_count")).intValue(); // map.put("task_count", task_count);
map.put("task_count", task_count); // // 完成任务数
// 完成任务数 // int complete_task_count = ((BigDecimal) report.get("complete_task_count")).intValue();
int complete_task_count = ((BigDecimal) report.get("complete_task_count")).intValue(); // map.put("complete_task_count", complete_task_count);
map.put("complete_task_count", complete_task_count); // int uncomplete_task_count = task_count - complete_task_count;
int uncomplete_task_count = task_count - complete_task_count; // // 未完成任务数
// 未完成任务数 // map.put("uncomplete_task_count", uncomplete_task_count);
map.put("uncomplete_task_count", uncomplete_task_count); // double complete_task_percent;
double complete_task_percent; // if (0 == task_count) {
if (0 == task_count) { // complete_task_percent = 0.0;
complete_task_percent = 0.0; // log.error("-----------------------------当天巡检计划总数是 0,请检查同步服务!-----------------------------");
log.error("-----------------------------当天巡检计划总数是 0,请检查同步服务!-----------------------------"); // } else {
} else { // complete_task_percent = (complete_task_count/task_count)*100;
complete_task_percent = (complete_task_count/task_count)*100; // }
} // // 任务完成率
// 任务完成率 // map.put("complete_task_percent", nf.format(complete_task_percent)+"%");
map.put("complete_task_percent", nf.format(complete_task_percent)+"%"); // // 任务合格
// 任务合格 // map.put("task_qualified", uncomplete_task_count!=0?"不合格":"合格");
map.put("task_qualified", uncomplete_task_count!=0?"不合格":"合格"); // if(uncomplete_task_count!=0)
if(uncomplete_task_count!=0) // {
{ // no_qualified++;
no_qualified++; // }else
}else // {
{ // qualified++;
qualified++; // }
} // // 任务完成率合格
// 任务完成率合格 // map.put("task_percent_qualified", complete_task_percent!=100?"不合格":"合格");
map.put("task_percent_qualified", complete_task_percent!=100?"不合格":"合格"); // if(complete_task_percent!=100 )
if(complete_task_percent!=100 ) // {
{ // no_qualified++;
no_qualified++; // }else
}else // {
{ // qualified++;
qualified++; // }
} // // 巡查人员数
// 巡查人员数 // int person_count = ((BigDecimal) report.get("person_count")).intValue();
int person_count = ((BigDecimal) report.get("person_count")).intValue(); // map.put("person_count", person_count);
map.put("person_count", person_count); // int certified_person_count = ((BigDecimal) report.get("certified_person_count")).intValue();
int certified_person_count = ((BigDecimal) report.get("certified_person_count")).intValue(); // // 持证人员数
// 持证人员数 // map.put("certified_person_count", certified_person_count);
map.put("certified_person_count", certified_person_count); //
// double certified_percent;
double certified_percent; // if (0 == person_count) {
if (0 == person_count) { // certified_percent = 0.0;
certified_percent = 0.0; // log.error("-----------------------------人员总数是 0,请检查同步服务!-----------------------------");
log.error("-----------------------------人员总数是 0,请检查同步服务!-----------------------------"); // } else {
} else { // certified_percent = (certified_person_count/person_count)*100;
certified_percent = (certified_person_count/person_count)*100; // }
} // // 持证率
// 持证率 // map.put("certified_percent", nf.format(certified_percent)+"%");
map.put("certified_percent", nf.format(certified_percent)+"%"); // // 人员合格
// 人员合格 // map.put("person_qualified", certified_percent!=100?"不合格":"合格");
map.put("person_qualified", certified_percent!=100?"不合格":"合格"); // if(certified_percent!=100 )
if(certified_percent!=100 ) // {
{ // no_qualified++;
no_qualified++; // }else
}else // {
{ // qualified++;
qualified++; // }
} // // 应巡查设备总数
// 应巡查设备总数 // int equipment_count = ((BigDecimal) report.get("equipment_count")).intValue();
int equipment_count = ((BigDecimal) report.get("equipment_count")).intValue(); // map.put("equipment_count", equipment_count);
map.put("equipment_count", equipment_count); // int checked_equipment_count = ((BigDecimal) report.get("checked_equipment_count")).intValue();
int checked_equipment_count = ((BigDecimal) report.get("checked_equipment_count")).intValue(); // // 实际巡查设备总数
// 实际巡查设备总数 // map.put("checked_equipment_count", checked_equipment_count);
map.put("checked_equipment_count", checked_equipment_count); // // 实际巡查设备总数-合格
// 实际巡查设备总数-合格 // map.put("checked_equipment_qualified", checked_equipment_count!=equipment_count?"不合格":"合格");
map.put("checked_equipment_qualified", checked_equipment_count!=equipment_count?"不合格":"合格"); // if(checked_equipment_count!=equipment_count )
if(checked_equipment_count!=equipment_count ) // {
{ // no_qualified++;
no_qualified++; // }else
}else // {
{ // qualified++;
qualified++; // }
} // // 漏查设备总数
// 漏查设备总数 // int unchecked_equipment_count = ((BigDecimal) report.get("unchecked_equipment_count")).intValue();
int unchecked_equipment_count = ((BigDecimal) report.get("unchecked_equipment_count")).intValue(); // map.put("unchecked_equipment_count", unchecked_equipment_count);
map.put("unchecked_equipment_count", unchecked_equipment_count); // // 漏查设备总数-合格
// 漏查设备总数-合格 // map.put("unchecked_equipment_qualified", unchecked_equipment_count>0?"不合格":"合格");
map.put("unchecked_equipment_qualified", unchecked_equipment_count>0?"不合格":"合格"); // if(unchecked_equipment_count>0)
if(unchecked_equipment_count>0) // {
{ // no_qualified++;
no_qualified++; // }else
}else // {
{ // qualified++;
qualified++; // }
} // // 发现问题总数
// 发现问题总数 // int problem_count = ((BigDecimal) report.get("problem_count")).intValue();
int problem_count = ((BigDecimal) report.get("problem_count")).intValue(); // map.put("problem_count", problem_count);
map.put("problem_count", problem_count); // // 修复问题总数
// 修复问题总数 // int fixed_problem_count = ((BigDecimal) report.get("fixed_problem_count")).intValue();
int fixed_problem_count = ((BigDecimal) report.get("fixed_problem_count")).intValue(); // map.put("fixed_problem_count", fixed_problem_count);
map.put("fixed_problem_count", fixed_problem_count); // // 未修复问题总数
// 未修复问题总数 // int unfixed_problem_count = problem_count-fixed_problem_count;
int unfixed_problem_count = problem_count-fixed_problem_count; // map.put("unfixed_problem_count", unfixed_problem_count);
map.put("unfixed_problem_count", unfixed_problem_count); // // 巡查点位数
// 巡查点位数 // int checked_point_count = ((BigDecimal) report.get("checked_point_count")).intValue();
int checked_point_count = ((BigDecimal) report.get("checked_point_count")).intValue(); // map.put("checked_point_count", checked_point_count);
map.put("checked_point_count", checked_point_count); // // 合格饼图
// 合格饼图 // DefaultPieDataset pds = new DefaultPieDataset();
DefaultPieDataset pds = new DefaultPieDataset(); // pds.setValue("合格", qualified);
pds.setValue("合格", qualified); // pds.setValue("不合格", no_qualified);
pds.setValue("不合格", no_qualified); // String qualified_pie_chart = getChartString(pds, "合格情况占比");
String qualified_pie_chart = getChartString(pds, "合格情况占比"); // map.put("qualified_pie_chart", qualified_pie_chart);
map.put("qualified_pie_chart", qualified_pie_chart); // // 设备巡查饼图
// 设备巡查饼图 // if (!(checked_equipment_count == 0 && unchecked_equipment_count == 0)) {
if (!(checked_equipment_count == 0 && unchecked_equipment_count == 0)) { // DefaultPieDataset pds2 = new DefaultPieDataset();
DefaultPieDataset pds2 = new DefaultPieDataset(); // pds2.setValue("已查询设备", checked_equipment_count);
pds2.setValue("已查询设备", checked_equipment_count); // pds2.setValue("漏查设备", unchecked_equipment_count);
pds2.setValue("漏查设备", unchecked_equipment_count); // String equip_pie_chart = getChartString(pds2, "设备巡查占比");
String equip_pie_chart = getChartString(pds2, "设备巡查占比"); // map.put("equip_pie_chart", equip_pie_chart);
map.put("equip_pie_chart", equip_pie_chart); // }
} // // 业务主题
// 业务主题 // map.put("business_title", "消防巡查");
map.put("business_title", "消防巡查"); // // 缺陷清单
// 缺陷清单 // List<Map<String, Object>> defect_list = analysisReportLogMapper.getDefect(analysisReportLog);
List<Map<String, Object>> defect_list = analysisReportLogMapper.getDefect(analysisReportLog); // // 缺陷总数
// 缺陷总数 // map.put("defect_count", defect_list.size());
map.put("defect_count", defect_list.size()); // defect_list.forEach(i->{
defect_list.forEach(i->{ // i.put("defect_location", i.get("danger_position"));
i.put("defect_location", i.get("danger_position")); // i.put("defect_description", i.get("problem_description"));
i.put("defect_description", i.get("problem_description")); // i.put("rectified_progress", i.get("danger_state"));
i.put("rectified_progress", i.get("danger_state")); // i.put("remark", i.get("remark"));
i.put("remark", i.get("remark")); // });
}); //// Map<String, Object> defectMap = new HashMap<>();
// Map<String, Object> defectMap = new HashMap<>(); //// defectMap.put("defect_location", "主控楼一层");
// defectMap.put("defect_location", "主控楼一层"); //// defectMap.put("defect_description", "仅有一条疏散通道,存在重大火灾隐患,不满足规范要求。");
// defectMap.put("defect_description", "仅有一条疏散通道,存在重大火灾隐患,不满足规范要求。"); //// defectMap.put("rectified_progress", "待评审");
// defectMap.put("rectified_progress", "待评审"); //// defectMap.put("remark", "无法整改");
// defectMap.put("remark", "无法整改"); //// defect_list.add(defectMap);
// defect_list.add(defectMap); //// Map<String, Object> defectMap2 = new HashMap<>();
// Map<String, Object> defectMap2 = new HashMap<>(); //// defectMap2.put("defect_location", "主控楼一层");
// defectMap2.put("defect_location", "主控楼一层"); //// defectMap2.put("defect_description", "防火卷帘门故障;11个水泵接合器存在问题;");
// defectMap2.put("defect_description", "防火卷帘门故障;11个水泵接合器存在问题;"); //// defectMap2.put("rectified_progress", "待治理");
// defectMap2.put("rectified_progress", "待治理"); //// defectMap2.put("remark", "防火卷帘已完成维修,水泵接合器未整改");
// defectMap2.put("remark", "防火卷帘已完成维修,水泵接合器未整改"); //// defect_list.add(defectMap2);
// defect_list.add(defectMap2); //// Map<String, Object> defectMap3 = new HashMap<>();
// Map<String, Object> defectMap3 = new HashMap<>(); //// defectMap3.put("defect_location", "主控楼一层库房区域");
// defectMap3.put("defect_location", "主控楼一层库房区域"); //// defectMap3.put("defect_description", "将办公用房作为库房使用,使用性质与原设计不符,耐火等级和相应消防设施不满足规范要求。");
// defectMap3.put("defect_description", "将办公用房作为库房使用,使用性质与原设计不符,耐火等级和相应消防设施不满足规范要求。"); //// defectMap3.put("rectified_progress", "治理完毕");
// defectMap3.put("rectified_progress", "治理完毕"); //// defectMap3.put("remark", "");
// defectMap3.put("remark", ""); //// defect_list.add(defectMap3);
// defect_list.add(defectMap3); // map.put("defect_list", defect_list);
map.put("defect_list", defect_list); return map;
return map; }
}
/**
* 生成主题
*
* @param fontName 字体名称(默认为宋体)
* @return
*/
public static StandardChartTheme createChartTheme(String fontName) {
StandardChartTheme theme = new StandardChartTheme("unicode") {
public void apply(JFreeChart chart) {
chart.getRenderingHints().put(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_OFF);
super.apply(chart);
}
};
fontName = StrUtil.isBlank(fontName) ? "宋体" : fontName;
theme.setExtraLargeFont(new Font(fontName, Font.PLAIN, 20));
theme.setLargeFont(new Font(fontName, Font.PLAIN, 14));
theme.setRegularFont(new Font(fontName, Font.PLAIN, 12));
theme.setSmallFont(new Font(fontName, Font.PLAIN, 10));
return theme;
}
/**
* 获取饼图base64字符串
*
* @param pds
* @return
*/
private String getChartString(DefaultPieDataset pds, String title) {
// 设置主题 要不会乱码
ChartFactory.setChartTheme(createChartTheme("微软雅黑"));
JFreeChart chart = ChartFactory.createPieChart(title, pds, true, false, true);
// 设置图例
LegendTitle legend = chart.getLegend();
legend.setPosition(RectangleEdge.BOTTOM);
// 设置图例边框
legend.setBorder(0, 0, 0, 0);
legend.setItemFont(new Font("微软雅黑", Font.PLAIN, 16));
// 设置最外层边框
chart.setBorderVisible(false);
RectangleInsets padding = new RectangleInsets(40, 40, 40, 40);
chart.setPadding(padding);
// 如果不使用Font,中文将显示不出来
// 设置图片标题的字体
chart.getTitle().setFont(new Font("微软雅黑", Font.BOLD, 24));
// 得到图块,准备设置标签的字体
PiePlot plot = (PiePlot) chart.getPlot();
// 设置饼图阴影
plot.setShadowPaint(Color.WHITE);
plot.setAutoPopulateSectionOutlinePaint(true);
// 设置饼图边框
plot.setOutlineVisible(false);
// 设置饼图一定是正圆
plot.setCircular(true);
// 设置起始角度
plot.setStartAngle(90);
// 设置饼图颜色
plot.setSectionPaint(pds.getKey(0), Color.RED);
plot.setSectionPaint(pds.getKey(1), Color.BLUE);
// 设置饼图边框颜色
// 设置plot的前景色透明度
plot.setForegroundAlpha(0.7f);
// 设置plot的背景色透明度
plot.setBackgroundAlpha(0.0f);
// 设置标签字体
plot.setLabelFont(new Font("微软雅黑", Font.PLAIN, 16));
// 设置分类标签字体颜色
// plot.setLabelPaint(Color.RED);
//plot.setLabelLinkPaint(Color.RED);
// 设置分类标签背景颜色
plot.setLabelBackgroundPaint(Color.WHITE);
// 设置分类标签边框颜色
plot.setLabelOutlinePaint(Color.WHITE);
plot.setLabelShadowPaint(Color.WHITE);
// 设置标签生成器(默认{0})
// {0}:key {1}:value {2}:百分比 {3}:sum
StandardPieSectionLabelGenerator labelGenerator = new StandardPieSectionLabelGenerator("{0}\n{2}");
plot.setLabelGenerator(labelGenerator);
BufferedImage image = chart.createBufferedImage(600,350);
byte[] bytes = null;
try {
bytes = ChartUtilities.encodeAsPNG(image);
} catch (IOException e1) {
throw new CommonException(0, "生成饼图失败");
}
String base64 = Base64.getEncoder().encodeToString(bytes);
return base64;
}
@Override @Override
public IPage<AnalysisReportLogDto> allPage(Page<AnalysisReportLogDto> page, Integer reportType, Date startDate, public IPage<AnalysisReportLogDto> allPage(Page<AnalysisReportLogDto> page, Integer reportType, Date startDate,
Date endDate, String stationCode) { Date endDate, String stationCode) {
AnalysisReportLogDto analysisReportLog = new AnalysisReportLogDto(); AnalysisReportLogDto analysisReportLog = new AnalysisReportLogDto();
analysisReportLog.setStartDate(startDate); analysisReportLog.setStartDate(startDate);
analysisReportLog.setEndDate(endDate); analysisReportLog.setEndDate(endDate);
analysisReportLog.setReportType(reportType); analysisReportLog.setReportType(reportType);
analysisReportLog.setStationCode(stationCode); analysisReportLog.setStationCode(stationCode);
Long rootParentId = Long.valueOf(String.valueOf(analysisReportLogMapper.getRootOrgUsr().get("sequence_nbr"))); Long rootParentId = Long.valueOf(String.valueOf(analysisReportLogMapper.getRootOrgUsr().get("sequence_nbr")));
return analysisReportLogMapper.allPage(page, analysisReportLog, rootParentId); return analysisReportLogMapper.allPage(page, analysisReportLog, rootParentId);
} }
@Override @Override
public String preview(String code, Date startDate, Date endDate) { public String preview(String code, Date startDate, Date endDate) {
WordTemplateUtils instance = WordTemplateUtils.getInstance(); WordTemplateUtils instance = WordTemplateUtils.getInstance();
Map<String, Object> map = getWordMap(code, startDate, endDate); Map<String, Object> map = getWordMap(code, startDate, endDate);
String urlString=""; String urlString = "";
try { try {
//instance.pdfCreate(map, (String) map.get("document_number"), WordTemplateTypeEum.firePatrolReport.getTemplateFile()); File filePdf = instance.getWordFileItem(map, (String) map.get("document_number"), WordTemplateTypeEum.fireAutoSysManageReport.getTemplateFile());
File filepdf = instance.getWordFileItem(map,(String) map.get("document_number"), WordTemplateTypeEum.firePatrolReport.getTemplateFile()); MultipartFile multipartFile = new MyByteArrayMultipartFile("file", "file.pdf", "application/pdf", file2byte(filePdf));
//MultipartFile multipartFile = new CommonsMultipartFile(item); FeignClientResult<Map<String, String>> result = Systemctl.fileStorageClient.updateCommonFile(multipartFile);
filepdf.getAbsolutePath(); if (result != null) {
// File file = new File("F:\\application-dev.yml"); for (String s : result.getResult().keySet()) {
// FileInputStream input = new FileInputStream(filepdf); urlString = s;
MultipartFile multipartFile = new MyByteArrayMultipartFile("file","file.pdf","application/pdf",file2byte(filepdf)); }
FeignClientResult<Map<String, String>> result = Systemctl.fileStorageClient.updateCommonFile(multipartFile); }
if (result != null) { } catch (IOException e) {
Iterator<String> it = result.getResult().keySet().iterator(); e.printStackTrace();
while (it.hasNext()) { }
urlString=it.next(); return urlString;
} }
}
} catch (IOException e) {
e.printStackTrace();
}
return urlString;
}
public static byte[] file2byte(File file)
{
try {
FileInputStream in =new FileInputStream(file);
//当文件没有结束时,每次读取一个字节显示
byte[] data=new byte[in.available()];
in.read(data);
in.close();
return data;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
// @Override public static byte[] file2byte(File file) {
// public IPage<AnalysisReportLogDto> listPage(Page<AnalysisReportLogDto> page, Integer reportType, Date startDate, try {
// Date endDate,String stationCode) { FileInputStream in = new FileInputStream(file);
// AnalysisReportLogDto analysisReportLog = new AnalysisReportLogDto(); //当文件没有结束时,每次读取一个字节显示
// analysisReportLog.setReportType(reportType); byte[] data = new byte[in.available()];
// analysisReportLog.setStationCode(stationCode); in.read(data);
// analysisReportLog.setEndDate(startDate); in.close();
// analysisReportLog.setStartDate(endDate); return data;
// return analysisReportLogMapper.allPage(page, analysisReportLog); } catch (Exception e) {
// } e.printStackTrace();
return null;
}
}
} }
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