Commit 56e8a06b authored by KeYong's avatar KeYong

Merge branch 'develop_dl_plan6' of http://39.98.45.134:8090/moa/amos-boot-biz into develop_dl_plan6

parents 95eb629a a10da251
package com.yeejoin.equipmanage.common.dto;
import com.yeejoin.equipmanage.common.entity.AnalysisReportLog;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AnalysisReportLogDto extends AnalysisReportLog{
private static final long serialVersionUID = 214456306850625504L;
@ApiModelProperty(value = "主键")
String reportName;
@ApiModelProperty(value = "主键")
String stationName;
@ApiModelProperty(value = "主键")
String reportTypeName;
}
package com.yeejoin.equipmanage.controller; package com.yeejoin.equipmanage.controller;
import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.ServletRequestDataBinder;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.InitBinder;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import com.yeejoin.equipmanage.service.IFirePatrolReportService; import com.yeejoin.equipmanage.service.IFirePatrolReportService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
...@@ -47,4 +46,13 @@ public class FirePatrolReportController { ...@@ -47,4 +46,13 @@ public class FirePatrolReportController {
@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, code, startDate, endDate); iFirePatrolReportService.download(request, response, code, startDate, endDate);
} }
@ApiOperation(value = "所有站查询列表", notes = "所有站查询列表")
@GetMapping(value = "/all-page")
@TycloudOperation(ApiLevel = UserType.PUBLIC, needAuth = false)
public IPage<AnalysisReportLogDto> allPage(Page page, @RequestParam Integer reportType,
@ApiParam(value = "开始日期", required = false) @RequestParam @DateTimeFormat(pattern="yyyy-MM-dd")Date startDate,
@ApiParam(value = "结束日期", required = false) @RequestParam @DateTimeFormat(pattern="yyyy-MM-dd")Date endDate) {
return iFirePatrolReportService.allPage(page,reportType, startDate, endDate);
}
} }
package com.yeejoin.equipmanage.mapper; package com.yeejoin.equipmanage.mapper;
import java.util.Date;
import org.apache.ibatis.annotations.Param;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import com.yeejoin.equipmanage.common.entity.AnalysisReportLog; import com.yeejoin.equipmanage.common.entity.AnalysisReportLog;
/** /**
...@@ -11,4 +18,6 @@ import com.yeejoin.equipmanage.common.entity.AnalysisReportLog; ...@@ -11,4 +18,6 @@ import com.yeejoin.equipmanage.common.entity.AnalysisReportLog;
*/ */
public interface AnalysisReportLogMapper extends BaseMapper<AnalysisReportLog> { public interface AnalysisReportLogMapper extends BaseMapper<AnalysisReportLog> {
IPage<AnalysisReportLogDto> allPage(Page<AnalysisReportLogDto> page, @Param("analysisReportLog")AnalysisReportLog analysisReportLog);
} }
...@@ -5,7 +5,16 @@ import java.util.Date; ...@@ -5,7 +5,16 @@ import java.util.Date;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import com.yeejoin.equipmanage.common.entity.AnalysisReportLog;
public interface IFirePatrolReportService { public interface IFirePatrolReportService {
void download(HttpServletRequest request, HttpServletResponse response,String code,Date startDate,Date endDate); void download(HttpServletRequest request, HttpServletResponse response,String code,Date startDate,Date endDate);
IPage<AnalysisReportLogDto> allPage(Page<AnalysisReportLogDto> page, Integer reportType,Date startDate,Date endDate);
} }
package com.yeejoin.equipmanage.service.impl; package com.yeejoin.equipmanage.service.impl;
import java.awt.Color;
import java.awt.Font; import java.awt.Font;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -19,19 +21,32 @@ import javax.servlet.http.HttpServletResponse; ...@@ -19,19 +21,32 @@ import javax.servlet.http.HttpServletResponse;
import org.jfree.chart.ChartFactory; import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities; import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart; import org.jfree.chart.JFreeChart;
import org.jfree.chart.StandardChartTheme;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot; import org.jfree.chart.plot.PiePlot;
import org.jfree.data.general.DefaultPieDataset; 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.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.xiaoymin.knife4j.core.util.StrUtil;
import com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto;
import com.yeejoin.equipmanage.common.entity.AnalysisReportLog;
import com.yeejoin.equipmanage.common.enums.WordTemplateTypeEum; import com.yeejoin.equipmanage.common.enums.WordTemplateTypeEum;
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.service.IFirePatrolReportService; import com.yeejoin.equipmanage.service.IFirePatrolReportService;
@Service @Service
public class FilePatrolReportServiceImpl implements IFirePatrolReportService { public class FilePatrolReportServiceImpl implements IFirePatrolReportService {
@Autowired
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) {
...@@ -100,13 +115,13 @@ public class FilePatrolReportServiceImpl implements IFirePatrolReportService { ...@@ -100,13 +115,13 @@ public class FilePatrolReportServiceImpl implements IFirePatrolReportService {
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);
// 设备巡查饼图 // 设备巡查饼图
DefaultPieDataset pds2 = new DefaultPieDataset(); DefaultPieDataset pds2 = new DefaultPieDataset();
pds.setValue("已查询设备", checked_equipment_count); pds2.setValue("已查询设备", checked_equipment_count);
pds.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", "消防巡查");
...@@ -140,22 +155,51 @@ public class FilePatrolReportServiceImpl implements IFirePatrolReportService { ...@@ -140,22 +155,51 @@ public class FilePatrolReportServiceImpl implements IFirePatrolReportService {
} }
/** /**
* 生成主题
*
* @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字符串 * 获取饼图base64字符串
* @param pds * @param pds
* @return * @return
*/ */
private String getChartString(DefaultPieDataset pds) { private String getChartString(DefaultPieDataset pds,String title) {
JFreeChart chart = ChartFactory.createPieChart("测试", pds, false, false, true); //设置主题 要不会乱码
ChartFactory.setChartTheme(createChartTheme("微软雅黑"));
JFreeChart chart = ChartFactory.createPieChart(title, pds, true, false, true);
chart.getLegend().setPosition(RectangleEdge.BOTTOM);
RectangleInsets padding = new RectangleInsets(20,20,20,20);
chart.setPadding(padding);
// 如果不使用Font,中文将显示不出来 // 如果不使用Font,中文将显示不出来
Font font = new Font("宋体", Font.BOLD, 12); Font font = new Font("微软雅黑", Font.BOLD, 16);
// 设置图片标题的字体 // 设置图片标题的字体
chart.getTitle().setFont(font); chart.getTitle().setFont(font);
// 得到图块,准备设置标签的字体 // 得到图块,准备设置标签的字体
PiePlot plot = (PiePlot) chart.getPlot(); PiePlot plot = (PiePlot) chart.getPlot();
// 设置标签字体 // 设置标签字体
plot.setLabelFont(font); plot.setLabelFont(font);
plot.setStartAngle(new Float(3.14f / 2f)); plot.setStartAngle(180);
//plot.setSectionPaint((Comparable) Color.BLUE,Color.RED); // 考虑自定义设置颜色——我不会 plot.setSectionPaint(pds.getKey(0),Color.RED);
plot.setSectionPaint(pds.getKey(1),Color.BLUE);
// 设置plot的前景色透明度 // 设置plot的前景色透明度
plot.setForegroundAlpha(0.7f); plot.setForegroundAlpha(0.7f);
// 设置plot的背景色透明度 // 设置plot的背景色透明度
...@@ -173,4 +217,13 @@ public class FilePatrolReportServiceImpl implements IFirePatrolReportService { ...@@ -173,4 +217,13 @@ public class FilePatrolReportServiceImpl implements IFirePatrolReportService {
String base64 = Base64.getEncoder().encodeToString(bytes); String base64 = Base64.getEncoder().encodeToString(bytes);
return base64; return base64;
} }
@Override
public IPage<AnalysisReportLogDto> allPage(Page<AnalysisReportLogDto> page, Integer reportType, Date startDate, Date endDate) {
AnalysisReportLog analysisReportLog = new AnalysisReportLog();
analysisReportLog.setStartDate(startDate);
analysisReportLog.setEndDate(endDate);
analysisReportLog.setReportType(reportType);
return analysisReportLogMapper.allPage(page, analysisReportLog);
}
} }
...@@ -40,7 +40,7 @@ spring.redis.lettuce.pool.max-active=200 ...@@ -40,7 +40,7 @@ spring.redis.lettuce.pool.max-active=200
spring.redis.lettuce.pool.max-wait=-1 spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=10 spring.redis.lettuce.pool.max-idle=10
spring.redis.lettuce.pool.min-idle=0 spring.redis.lettuce.pool.min-idle=0
spring.redis.expire.time=300 spring.redis.expire.time=30000
## emqx ## emqx
emqx.clean-session=true emqx.clean-session=true
......
...@@ -2823,4 +2823,43 @@ ...@@ -2823,4 +2823,43 @@
REPLACE INTO `wl_form_group_column`(`id`, `field_name`, `field_label`, `data_type`, `group_id`, `query_strategy`, `not_null`, `group_code`, `creator_id`, `create_date`) VALUES (133000000347, 'inwhichBuild', '所在建筑', 'String', 132828674824, 'eq', b'0', 'r_tank', 2581805, '2022-04-18 11:29:34'); REPLACE INTO `wl_form_group_column`(`id`, `field_name`, `field_label`, `data_type`, `group_id`, `query_strategy`, `not_null`, `group_code`, `creator_id`, `create_date`) VALUES (133000000347, 'inwhichBuild', '所在建筑', 'String', 132828674824, 'eq', b'0', 'r_tank', 2581805, '2022-04-18 11:29:34');
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="wujiang" id="2022-05-05-1" runAlways="true">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="cb_org_usr"/>
</not>
</preConditions>
<comment>add cb_org_usr</comment>
<sql>
CREATE TABLE `cb_org_usr` (
`sequence_nbr` bigint(32) NOT NULL,
`biz_org_name` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '机构/部门名称',
`biz_org_code` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '机构编码',
`amos_org_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'amos中公司/部门ID',
`amos_org_code` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT 'amos中公司/部门编码',
`biz_org_type` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '机构类型(部门:DEPARTMENT,单位:COMPANY,人员:PERSON)',
`build_name` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '所属建筑名称',
`build_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '所属建筑ID',
`parent_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '归属机构/部门/人员',
`org_expand_attr1` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '扩展属性1',
`org_expand_attr2` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '扩展属性2',
`org_expand_attr3` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '扩展属性3',
`org_expand_attr4` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '扩展属性4',
`org_expand_attr5` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`org_expand_attr6` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`org_expand_attr7` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`org_expand_attr8` varchar(104) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`rec_user_name` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人',
`rec_user_id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '更新人ID',
`rec_date` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`is_delete` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否已被删除(0:未背删除,1:已删除)',
`parent_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '归属机构/部门/人员名称',
`code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '唯一编号 : 临时用',
`pcz_code` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '测试字段 稍后删除',
`pcz_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '测试字段 稍后删除',
PRIMARY KEY (`sequence_nbr`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='机构/部门/人员表';
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
\ No newline at end of file
...@@ -2,4 +2,30 @@ ...@@ -2,4 +2,30 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yeejoin.equipmanage.mapper.AnalysisReportLogMapper"> <mapper namespace="com.yeejoin.equipmanage.mapper.AnalysisReportLogMapper">
<select id="allPage" resultType="com.yeejoin.equipmanage.common.dto.AnalysisReportLogDto">
SELECT
*,
'消防巡查报表' AS reportName,
cb_org_usr.biz_org_name AS stationName,
(CASE wl_analysis_report_log.report_type
WHEN 0 THEN '日报表'
WHEN 1 THEN '周报表'
ELSE '月报表'
END) reportTypeName
FROM
wl_analysis_report_log,cb_org_usr
<where>
cb_org_usr.biz_org_type = 'COMPANY' AND parent_id IS NOT NULL
<if test="analysisReportLog.reportType != null and analysisReportLog.reportType != ''">
AND wl_analysis_report_log.report_type = #{analysisReportLog.reportType}
</if>
<if test="analysisReportLog.startDate != null">
AND DATE_FORMAT(wl_analysis_report_log.start_date, '%Y-%m-%d') &gt;= DATE_FORMAT(#{analysisReportLog.startDate}, '%Y-%m-%d')
</if>
<if test="analysisReportLog.endDate != null">
AND DATE_FORMAT(wl_analysis_report_log.end_date, '%Y-%m-%d') &lt;= DATE_FORMAT(#{analysisReportLog.endDate}, '%Y-%m-%d')
</if>
</where>
</select>
</mapper> </mapper>
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