docker-compose.yml
New file @@ -0,0 +1,11 @@ version: '3.1' services: zhbaw: build: . image: zhbaw:latest depends_on: - redis ports: - "81:81" redis: image: "redis:alpine" pom.xml
@@ -279,6 +279,12 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> </dependency> <!--ureport--> <!-- <dependency>--> <!-- <groupId>com.syyai.spring.boot</groupId>--> <!-- <artifactId>ureport-spring-boot-starter</artifactId>--> <!-- <version>2.2.9</version>--> <!-- </dependency>--> </dependencies> <profiles> src/main/java/org/springblade/modules/ureport/config/MySQLProvider.java
New file @@ -0,0 +1,140 @@ //package org.springblade.modules.ureport.config; // //import java.io.ByteArrayInputStream; //import java.io.InputStream; //import java.util.ArrayList; //import java.util.Date; //import java.util.List; //import com.bstek.ureport.provider.report.ReportFile; //import org.springblade.modules.ureport.entity.UReportFile; //import org.springblade.modules.ureport.mapper.ReportFileMappers; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.boot.context.properties.ConfigurationProperties; //import org.springframework.stereotype.Component; //import com.bstek.ureport.provider.report.ReportProvider; //import lombok.Setter; // ///** // * Mysql 报表存储 // * @author zhongrj // * @since 2022-03-21 // * @ConfigurationProperties 该注解可以利用其 prefix属性值 + 类的属性名 在yml中配置属性值 // * 特定前缀,ureport底层会调用 getPrefix 方法来获取报表操作的Provier类 // */ // //@Setter //@Component //@ConfigurationProperties(prefix = "ureport.mysql.provider") //public class MySQLProvider implements ReportProvider{ // // private static final String NAME = "mysql-provider"; // // private String prefix = "mysql:"; // // /** // * 是否禁用 // */ // private boolean disabled; // // @Autowired // private ReportFileMappers reportFileMappers; // // /** // * 加载文件内容 // * @param file // * @return // */ // @Override // public InputStream loadReport(String file) { // UReportFile reportFile = reportFileMappers.queryReportFileEntityByName(getCorrectName(file)); // byte[] content = reportFile.getContent(); // ByteArrayInputStream inputStream = new ByteArrayInputStream(content); // return inputStream; // } // // /** // * 删除 // * @param file // */ // @Override // public void deleteReport(String file) { // reportFileMappers.deleteReportFileByName(getCorrectName(file)); // } // // /** // * 查询 // * @return // */ // @Override // public List<ReportFile> getReportFiles() { // List<UReportFile> list = reportFileMappers.queryReportFileList(); // List<ReportFile> reportList = new ArrayList<>(); // for (UReportFile ureportFileEntity : list) { // reportList.add(new ReportFile(ureportFileEntity.getName(), ureportFileEntity.getUpdateTime())); // } // return reportList; // } // // /** // * 保存 // * @param file // * @param content // */ // @Override // public void saveReport(String file, String content) { // file = getCorrectName(file); // UReportFile reportFile = reportFileMappers.queryReportFileEntityByName(file); // Date currentDate = new Date(); // if(reportFile == null){ // reportFile = new UReportFile(); // reportFile.setName(file); // reportFile.setContent(content.getBytes()); // reportFile.setCreateTime(currentDate); // reportFile.setUpdateTime(currentDate); // reportFileMappers.insertReportFile(reportFile); // }else{ // reportFile.setContent(content.getBytes()); // reportFile.setUpdateTime(currentDate); // reportFileMappers.updateReportFile(reportFile); // } // } // // /** // * 获取name // * @return // */ // @Override // public String getName() { // return NAME; // } // // /** // * 是否禁用 // * @return // */ // @Override // public boolean disabled() { // return disabled; // } // // /** // * 获取前缀 // * @return // */ // @Override // public String getPrefix() { // return prefix; // } // // /** // * 获取没有前缀的文件名 // * @param name // * @return // */ // private String getCorrectName(String name){ // if(name.startsWith(prefix)){ // name = name.substring(prefix.length()); // } // return name; // } //} src/main/java/org/springblade/modules/ureport/config/UreportConfig.java
New file @@ -0,0 +1,56 @@ //package org.springblade.modules.ureport.config; //import com.bstek.ureport.console.UReportServlet; //import com.bstek.ureport.definition.datasource.BuildinDatasource; //import org.springblade.core.log.exception.ServiceException; //import org.springframework.boot.web.servlet.ServletRegistrationBean; //import org.springframework.context.annotation.Bean; //import org.springframework.context.annotation.Configuration; //import org.springframework.context.annotation.ImportResource; // //import javax.annotation.Resource; //import javax.sql.DataSource; //import java.sql.Connection; //import java.sql.SQLException; // ///** // * ureport 配置类 // * @author zhongrj // * @since 2022-03-21 // */ //@ImportResource("classpath:ureport-console-context.xml")//不加项目能够启动但是会导致加载数据源报错或加载不了 //@Configuration //public class UreportConfig implements BuildinDatasource { // // @Resource // DataSource dataSource; // // /** // * 定义ureport的启动servlet // * @return // */ // @Bean // @SuppressWarnings("unchecked") // public ServletRegistrationBean ureportServlet(){ // ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new UReportServlet()); // servletRegistrationBean.addUrlMappings("/ureport/*"); // return servletRegistrationBean; // } // // // @Override // public String name() { // return "智慧保安数据源"; // } // // @Override // public Connection getConnection() { // try { // return dataSource.getConnection(); // } catch (SQLException e) { // new ServiceException("Ureport 数据源 获取连接失败!"); // e.printStackTrace(); // } // return null; // } // //} src/main/java/org/springblade/modules/ureport/controller/ReportFileController.java
New file @@ -0,0 +1,42 @@ //package org.springblade.modules.ureport.controller; // //import com.baomidou.mybatisplus.core.metadata.IPage; //import org.springblade.core.mp.support.Condition; //import org.springblade.core.mp.support.Query; //import org.springblade.core.tool.api.R; //import org.springblade.modules.ureport.entity.UReportFile; //import org.springblade.modules.ureport.service.ReportFileService; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.web.bind.annotation.GetMapping; //import org.springframework.web.bind.annotation.RequestMapping; //import org.springframework.web.bind.annotation.RestController; //import javax.servlet.http.HttpServletResponse; // ///** // * 报表导出控制层 // * @author zhongrj // */ //@RestController //@RequestMapping("/report") ////@AllArgsConstructor //public class ReportFileController { // // @Autowired // private ReportFileService reportFileService; // // // /** // * 导出数据模板列表 // * @param reportFile 对象 // * @param query 查询页码 // * @param response // * @return // */ // @GetMapping("/page") // public R<IPage<UReportFile>> page(UReportFile reportFile, Query query, HttpServletResponse response) { // response.setHeader("Access-Control-Allow-Origin", "*"); // response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); // response.setHeader("Access-Control-Allow-Credentials","true"); // return R.data(reportFileService.selectReportFilePage(Condition.getPage(query), reportFile)); // } //} src/main/java/org/springblade/modules/ureport/entity/UReportFile.java
New file @@ -0,0 +1,66 @@ //package org.springblade.modules.ureport.entity; // //import com.baomidou.mybatisplus.annotation.IdType; //import com.baomidou.mybatisplus.annotation.TableField; //import com.baomidou.mybatisplus.annotation.TableId; //import com.baomidou.mybatisplus.annotation.TableName; //import com.fasterxml.jackson.annotation.JsonFormat; //import lombok.Data; //import lombok.NoArgsConstructor; //import org.springframework.format.annotation.DateTimeFormat; // //import java.util.Date; // ///** // * 报表实体类 // * @author zhongrj // * @since 2022-03-21 // */ //@Data //@TableName("sys_report_file") //public class UReportFile { // // public UReportFile() { // } // // public UReportFile(String name, Date updateTime) { // this.name = name; // this.updateTime = updateTime; // } // // /** // * 主键id // */ // @TableId(value = "id",type = IdType.AUTO) // private Integer id; // // /** // * 文件名 // */ // private String name; // // /** // * 文件内容 // */ // private byte[] content; // // // /** // * 创建时间 // */ // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") // @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // private Date createTime; // // /** // * 更新时间 // */ // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") // @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") // private Date updateTime; // // /** // * 是否删除 0未删除 1 已删除 // */ // private Integer isDeleted; //} src/main/java/org/springblade/modules/ureport/mapper/ReportFileMappers.java
New file @@ -0,0 +1,54 @@ //package org.springblade.modules.ureport.mapper; // //import com.baomidou.mybatisplus.core.mapper.BaseMapper; //import org.springblade.modules.ureport.entity.UReportFile; // //import java.util.List; // ///** // * 报表导出mapper映射层 // * @author zhongrj // */ //public interface ReportFileMappers extends BaseMapper<UReportFile> { // // /** // * 根据报表名称检查报表是否存在 // * @param name 报表名称 // * @return // */ // int checkExistByName(String name); // // /** // * 根据报表名称查询报表 // * @param name 报表名称 // * @return // */ // UReportFile queryReportFileEntityByName(String name); // // /** // * 查询全部报表 // * @return // */ // List<UReportFile> queryReportFileList(); // // /** // * 根据报表名称删除报表 // * @param name // * @return // */ // int deleteReportFileByName(String name); // // // /** // * 保存报表 // */ // int insertReportFile(UReportFile entity); // // /** // * 更新报表 // * @param entity // * @return // */ // int updateReportFile(UReportFile entity); // //} src/main/java/org/springblade/modules/ureport/mapper/ReportFileMappers.xml
New file @@ -0,0 +1,36 @@ <!--<?xml version="1.0" encoding="UTF-8"?>--> <!--<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">--> <!--<mapper namespace="org.springblade.modules.ureport.mapper.ReportFileMappers">--> <!-- <select id="checkExistByName" parameterType="java.lang.String" resultType="java.lang.Integer">--> <!-- select count(*) from sys_report_file where name = #{name}--> <!-- </select>--> <!-- <select id="queryReportFileList" resultType="org.springblade.modules.ureport.entity.UReportFile">--> <!-- select * from sys_report_file--> <!-- </select>--> <!-- <select id="queryReportFileEntityByName" resultType="org.springblade.modules.ureport.entity.UReportFile">--> <!-- select * from sys_report_file where name = #{name}--> <!-- </select>--> <!-- <delete id="deleteReportFileByName" parameterType="java.lang.String">--> <!-- delete from sys_report_file where name = #{name}--> <!-- </delete>--> <!-- <insert id="insertReportFile" parameterType="org.springblade.modules.ureport.entity.UReportFile">--> <!-- insert into sys_report_file (name, content, create_time, update_time) values--> <!-- (#{name}, #{content}, #{createTime}, #{updateTime})--> <!-- </insert>--> <!-- <update id="updateReportFile" parameterType="org.springblade.modules.ureport.entity.UReportFile">--> <!-- update sys_report_file set--> <!-- name = #{name} ,--> <!-- content = #{content},--> <!-- create_time = #{createTime},--> <!-- update_time = #{updateTime}--> <!-- where id = #{id}--> <!-- </update>--> <!--</mapper>--> src/main/java/org/springblade/modules/ureport/service/ReportFileService.java
New file @@ -0,0 +1,21 @@ //package org.springblade.modules.ureport.service; // //import com.baomidou.mybatisplus.core.metadata.IPage; //import com.baomidou.mybatisplus.extension.service.IService; //import org.springblade.modules.ureport.entity.UReportFile; // ///** // * 报表导出服务层 // * @author zhongrj // * @since 2022-03-21 // */ //public interface ReportFileService extends IService<UReportFile> { // // /** // * 导出数据模板列表 // * @param page // * @param reportFile 对象 // * @return // */ // IPage<UReportFile> selectReportFilePage(IPage<UReportFile> page, UReportFile reportFile); //} src/main/java/org/springblade/modules/ureport/service/impl/ReportFilesServiceImpl.java
New file @@ -0,0 +1,35 @@ //package org.springblade.modules.ureport.service.impl; // //import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; //import com.baomidou.mybatisplus.core.metadata.IPage; //import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; //import org.springblade.modules.ureport.entity.UReportFile; //import org.springblade.modules.ureport.mapper.ReportFileMappers; //import org.springblade.modules.ureport.service.ReportFileService; //import org.springframework.stereotype.Service; // // ///** // * 报表导出服务实现层 // * @author zhongrj // */ //@Service //public class ReportFilesServiceImpl extends ServiceImpl<ReportFileMappers, UReportFile> implements ReportFileService { // // /** // * 导出数据模板列表 // * @param page // * @param reportFile 对象 // * @return // */ // @Override // public IPage<UReportFile> selectReportFilePage(IPage<UReportFile> page, UReportFile reportFile) { // QueryWrapper<UReportFile> queryWrapper = new QueryWrapper<>(); // queryWrapper.eq("is_deleted",0); // if (null!=reportFile.getName()) { // queryWrapper.like("name", reportFile.getName()); // } // return page.setRecords(baseMapper.selectList(queryWrapper)); // } // //} src/main/resources/ureport.properties
New file @@ -0,0 +1,8 @@ ## ½«ureport.disableFileProvider¸Ä³Étrue,¼´¿É½ûÓÃĬÈÏÌṩµÄÎļþ´æ´¢»úÖÆ #ureport.disableHttpSessionReportCache= false #ureport.disableFileProvider= false #ureport.fileStoreDir= /WEB-INF/ureportfiles #ureport.debug= true ## ÉèÖ÷ÃÎÊǰ׺ #ureport.mysql.provider.prefix= zhba- #ureport.mysql.provider.disabled= false