caixiaofeng 10 mesiacov pred
rodič
commit
793f4c9772
20 zmenil súbory, kde vykonal 337 pridanie a 11 odobranie
  1. 13 0
      flow-app/src/main/resources/excel-license.xml
  2. 28 7
      flow-app/src/test/java/com/flow/FlowApplicationTest.java
  3. 0 0
      flow-file/flow-file-biz/lib/aspose-cells-8.5.2.jar
  4. 11 0
      flow-file/flow-file-biz/pom.xml
  5. 43 0
      flow-file/flow-file-biz/src/main/java/com/flow/converter/ExcelToPdfConverter.java
  6. 9 0
      flow-file/flow-file-biz/src/main/java/com/flow/converter/FileConverter.java
  7. 4 0
      flow-report/flow-report-api/src/main/java/com/flow/service/ReportDatasourceService.java
  8. 20 0
      flow-report/flow-report-api/src/main/java/com/flow/service/ReportTemplateService.java
  9. 7 0
      flow-report/flow-report-biz/src/main/java/com/flow/dao/ReportTemplateDao.java
  10. 17 2
      flow-report/flow-report-biz/src/main/java/com/flow/service/impl/ReportDatasourceServiceImpl.java
  11. 51 0
      flow-report/flow-report-biz/src/main/java/com/flow/service/impl/ReportTemplateServiceImpl.java
  12. 8 0
      flow-report/flow-report-controller/src/main/java/com/flow/controller/ReportDatasourceController.java
  13. 49 0
      flow-report/flow-report-controller/src/main/java/com/flow/controller/ReportTemplateController.java
  14. 1 2
      flow-report/flow-report-entity/src/main/java/com/flow/entity/ReportDatasource.java
  15. 20 0
      flow-report/flow-report-entity/src/main/java/com/flow/entity/ReportTemplate.java
  16. 12 0
      flow-report/flow-report-entity/src/main/java/com/flow/mapstruct/ReportDatasourceMapper.java
  17. 12 0
      flow-report/flow-report-entity/src/main/java/com/flow/mapstruct/ReportTemplateMapper.java
  18. 10 0
      flow-report/flow-report-entity/src/main/java/com/flow/model/ExecSql.java
  19. 11 0
      flow-report/flow-report-entity/src/main/java/com/flow/model/ReportDatasourceQuery.java
  20. 11 0
      flow-report/flow-report-entity/src/main/java/com/flow/model/ReportTemplateQuery.java

+ 13 - 0
flow-app/src/main/resources/excel-license.xml

@@ -0,0 +1,13 @@
+<License>
+  <Data>
+    <Products>
+      <Product>Aspose.Total for Java</Product>
+      <Product>Aspose.Words for Java</Product>
+    </Products>
+    <EditionType>Enterprise</EditionType>
+    <SubscriptionExpiry>20991231</SubscriptionExpiry>
+    <LicenseExpiry>20991231</LicenseExpiry>
+    <SerialNumber>8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7</SerialNumber>
+  </Data>
+  <Signature>sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU=</Signature>
+</License>

+ 28 - 7
flow-app/src/test/java/com/flow/FlowApplicationTest.java

@@ -1,6 +1,9 @@
 package com.flow;
 
 
+import com.flow.converter.ExcelToPdfConverter;
+import com.flow.model.ExecSql;
+import com.flow.service.ReportDatasourceService;
 import org.flowable.engine.HistoryService;
 import org.flowable.engine.TaskService;
 import org.flowable.task.api.Task;
@@ -11,7 +14,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.util.List;
+import java.util.Map;
 
 @SpringBootTest(classes = FlowApplication.class)
 @RunWith(SpringRunner.class)
@@ -20,15 +26,30 @@ public class FlowApplicationTest {
     private TaskService taskService;
     @Autowired
     private HistoryService historyService;
+    @Autowired
+    private ReportDatasourceService reportDatasourceService;
+
     @Test
     public void test() {
-        List<HistoricTaskInstance> list = historyService.createHistoricTaskInstanceQuery()
-                .processInstanceId("1774782190855913474")
-                .list();
+        ExecSql execSql = new ExecSql();
+        execSql.setDatasourceId(1L);
+        execSql.setSql("select * from report_datasource");
+        List<Map<String, Object>> list = reportDatasourceService.execSql(execSql);
         System.out.println("list = " + list);
-        List<Task> list1 = taskService.createTaskQuery()
-                .processInstanceId("1774782190855913474")
-                .list();
-        System.out.println("list1 = " + list1);
+    }
+
+    @Test
+    public void testConvert() {
+        String sourceFilePath = "d:/source.xlsx";
+        String desFilePath = "d:/rest.pdf";
+        try (
+                FileInputStream inputStream = new FileInputStream(sourceFilePath);
+                FileOutputStream outputStream = new FileOutputStream(desFilePath)
+        ) {
+            ExcelToPdfConverter excelToPdfConverter = new ExcelToPdfConverter();
+            excelToPdfConverter.convert(inputStream, outputStream);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
     }
 }

+ 0 - 0
flow-file/flow-file-biz/lib/aspose-cells-8.5.2.jar


+ 11 - 0
flow-file/flow-file-biz/pom.xml

@@ -24,6 +24,17 @@
             <artifactId>flow-file-api</artifactId>
             <version>0.0.1-SNAPSHOT</version>
         </dependency>
+
+        <!--
+        mvn install:install-file -Dfile=${project.basedir}/lib/aspose-cells-8.5.2.jar -DgroupId=com.aspose -DartifactId=aspose-cells -Dversion=8.5.2 -Dpackaging=jar
+        -->
+        <dependency>
+            <groupId>com.aspose</groupId>
+            <artifactId>aspose-cells</artifactId>
+            <version>8.5.2</version>
+            <!--<scope>system</scope>
+            <systemPath>${project.basedir}/lib/aspose-cells-8.5.2.jar</systemPath>-->
+        </dependency>
     </dependencies>
 
 </project>

+ 43 - 0
flow-file/flow-file-biz/src/main/java/com/flow/converter/ExcelToPdfConverter.java

@@ -0,0 +1,43 @@
+package com.flow.converter;
+
+import com.aspose.cells.License;
+import com.aspose.cells.PdfSaveOptions;
+import com.aspose.cells.Workbook;
+import com.flow.common.core.exception.BaseException;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class ExcelToPdfConverter implements FileConverter {
+
+    /**
+     * excel转pdf
+     *
+     * @param inputStream
+     * @param outputStream
+     * @throws Exception
+     */
+    public void convert(InputStream inputStream, OutputStream outputStream) throws Exception {
+        this.validateLicense();
+        Workbook wb = new Workbook(inputStream);
+        PdfSaveOptions pdfSaveOptions = new PdfSaveOptions();
+        pdfSaveOptions.setOnePagePerSheet(true);
+        wb.save(outputStream, pdfSaveOptions);
+    }
+
+    /**
+     * 验证许可证,若不验证则转化出的pdf文档会有水印产生
+     */
+    private void validateLicense() {
+        String licenseFilePath = "excel-license.xml";
+        try {
+            InputStream is = ExcelToPdfConverter.class.getClassLoader().getResourceAsStream(licenseFilePath);
+            License license = new License();
+            license.setLicense(is);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new BaseException("许可证验证失败");
+        }
+    }
+
+}

+ 9 - 0
flow-file/flow-file-biz/src/main/java/com/flow/converter/FileConverter.java

@@ -0,0 +1,9 @@
+package com.flow.converter;
+
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public interface FileConverter {
+
+    void convert(InputStream inputStream, OutputStream outputStream) throws Exception;
+}

+ 4 - 0
flow-report/flow-report-api/src/main/java/com/flow/service/ReportDatasourceService.java

@@ -1,8 +1,10 @@
 package com.flow.service;
 
+import com.flow.common.core.model.PageResult;
 import com.flow.common.mybatis.service.BaseService;
 import com.flow.entity.ReportDatasource;
 import com.flow.model.ExecSql;
+import com.flow.model.ReportDatasourceQuery;
 
 import java.util.List;
 import java.util.Map;
@@ -10,6 +12,8 @@ import java.util.Set;
 
 public interface ReportDatasourceService extends BaseService<ReportDatasource> {
 
+    PageResult<ReportDatasource> getList(ReportDatasourceQuery reportDatasourceQuery);
+
     ReportDatasource create(ReportDatasource reportDatasource);
 
     ReportDatasource update(ReportDatasource reportDatasource);

+ 20 - 0
flow-report/flow-report-api/src/main/java/com/flow/service/ReportTemplateService.java

@@ -0,0 +1,20 @@
+package com.flow.service;
+
+import com.flow.common.core.model.PageResult;
+import com.flow.common.mybatis.service.BaseService;
+import com.flow.entity.ReportTemplate;
+import com.flow.model.ReportTemplateQuery;
+
+import java.util.Set;
+
+public interface ReportTemplateService extends BaseService<ReportTemplate> {
+
+    PageResult<ReportTemplate> getList(ReportTemplateQuery reportTemplateQuery);
+
+    ReportTemplate create(ReportTemplate reportTemplate);
+
+    ReportTemplate update(ReportTemplate reportTemplate);
+
+    void delete(Set<Long> ids);
+
+}

+ 7 - 0
flow-report/flow-report-biz/src/main/java/com/flow/dao/ReportTemplateDao.java

@@ -0,0 +1,7 @@
+package com.flow.dao;
+
+import com.flow.common.mybatis.dao.BaseDao;
+import com.flow.entity.ReportTemplate;
+
+public interface ReportTemplateDao extends BaseDao<ReportTemplate> {
+}

+ 17 - 2
flow-report/flow-report-biz/src/main/java/com/flow/service/impl/ReportDatasourceServiceImpl.java

@@ -1,13 +1,16 @@
 package com.flow.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.flow.common.core.exception.BaseException;
+import com.flow.common.core.model.PageResult;
 import com.flow.common.mybatis.service.impl.BaseServiceImpl;
 import com.flow.dao.ReportDatasourceDao;
 import com.flow.entity.ReportDatasource;
+import com.flow.mapstruct.ReportDatasourceMapper;
 import com.flow.model.ExecSql;
+import com.flow.model.ReportDatasourceQuery;
 import com.flow.service.ReportDatasourceService;
-import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
@@ -19,7 +22,19 @@ import java.util.*;
 public class ReportDatasourceServiceImpl extends BaseServiceImpl<ReportDatasourceDao, ReportDatasource> implements ReportDatasourceService {
     @Autowired
     private ReportDatasourceDao reportDatasourceDao;
+    @Autowired
+    private ReportDatasourceMapper reportDatasourceMapper;
 
+    @Override
+    public PageResult<ReportDatasource> getList(ReportDatasourceQuery reportDatasourceQuery) {
+        ReportDatasource reportDatasource = reportDatasourceMapper.toEntity(reportDatasourceQuery);
+        Page<ReportDatasource> page = reportDatasourceDao.lambdaQueryChain()
+                .setEntity(reportDatasource)
+                .page(
+                        new Page<>(reportDatasourceQuery.getPage(), reportDatasourceQuery.getLimit())
+                );
+        return new PageResult<>(page.getTotal(), page.getRecords());
+    }
 
     @Override
     public ReportDatasource create(ReportDatasource reportDatasource) {
@@ -54,7 +69,7 @@ public class ReportDatasourceServiceImpl extends BaseServiceImpl<ReportDatasourc
             throw new BaseException("数据源不存在");
         }
         ReportDatasource reportDatasource = optional.get();
-        DataSource dataSource = reportDatasource.getDataSource();
+        DataSource dataSource = reportDatasource.buildDataSource();
         JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
         return jdbcTemplate.queryForList(sql,execSql.getParams());
     }

+ 51 - 0
flow-report/flow-report-biz/src/main/java/com/flow/service/impl/ReportTemplateServiceImpl.java

@@ -0,0 +1,51 @@
+package com.flow.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.flow.common.core.model.PageResult;
+import com.flow.common.mybatis.service.impl.BaseServiceImpl;
+import com.flow.dao.ReportTemplateDao;
+import com.flow.entity.ReportTemplate;
+import com.flow.mapstruct.ReportTemplateMapper;
+import com.flow.model.ReportTemplateQuery;
+import com.flow.service.ReportTemplateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Set;
+
+@Service
+public class ReportTemplateServiceImpl extends BaseServiceImpl<ReportTemplateDao, ReportTemplate> implements ReportTemplateService {
+    @Autowired
+    private ReportTemplateDao reportTemplateDao;
+    @Autowired
+    private ReportTemplateMapper reportTemplateMapper;
+
+
+    @Override
+    public PageResult<ReportTemplate> getList(ReportTemplateQuery reportTemplateQuery) {
+        ReportTemplate reportTemplate = reportTemplateMapper.toEntity(reportTemplateQuery);
+        Page<ReportTemplate> page = reportTemplateDao.lambdaQueryChain()
+                .setEntity(reportTemplate)
+                .page(
+                        new Page<>(reportTemplateQuery.getPage(), reportTemplateQuery.getLimit())
+                );
+        return new PageResult<>(page.getTotal(), page.getRecords());
+    }
+
+    @Override
+    public ReportTemplate create(ReportTemplate reportTemplate) {
+        reportTemplateDao.insert(reportTemplate);
+        return reportTemplate;
+    }
+
+    @Override
+    public ReportTemplate update(ReportTemplate reportTemplate) {
+        reportTemplateDao.updateById(reportTemplate);
+        return reportTemplate;
+    }
+
+    @Override
+    public void delete(Set<Long> ids) {
+        reportTemplateDao.deleteBatchIds(ids);
+    }
+}

+ 8 - 0
flow-report/flow-report-controller/src/main/java/com/flow/controller/ReportDatasourceController.java

@@ -1,8 +1,10 @@
 package com.flow.controller;
 
+import com.flow.common.core.model.PageResult;
 import com.flow.common.core.model.Result;
 import com.flow.entity.ReportDatasource;
 import com.flow.model.ExecSql;
+import com.flow.model.ReportDatasourceQuery;
 import com.flow.service.ReportDatasourceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -16,6 +18,12 @@ public class ReportDatasourceController {
     @Autowired
     private ReportDatasourceService reportDatasourceService;
 
+    @GetMapping
+    public Result<PageResult<ReportDatasource>> getList(ReportDatasourceQuery reportDatasourceQuery) {
+        PageResult<ReportDatasource> list = reportDatasourceService.getList(reportDatasourceQuery);
+        return Result.success(list);
+    }
+
     @PreAuthorize("hasAnyAuthority('reportDatasource:add')")
     @PostMapping
     public Result<ReportDatasource> create(@RequestBody ReportDatasource reportDatasource) {

+ 49 - 0
flow-report/flow-report-controller/src/main/java/com/flow/controller/ReportTemplateController.java

@@ -0,0 +1,49 @@
+package com.flow.controller;
+
+import com.flow.common.core.model.PageResult;
+import com.flow.common.core.model.Result;
+import com.flow.entity.ReportDatasource;
+import com.flow.entity.ReportTemplate;
+import com.flow.model.ExecSql;
+import com.flow.model.ReportDatasourceQuery;
+import com.flow.model.ReportTemplateQuery;
+import com.flow.service.ReportDatasourceService;
+import com.flow.service.ReportTemplateService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Set;
+
+@RestController
+@RequestMapping("/reportTemplate")
+public class ReportTemplateController {
+    @Autowired
+    private ReportTemplateService reportTemplateService;
+
+    @GetMapping
+    public Result<PageResult<ReportTemplate>> getList(ReportTemplateQuery reportTemplateQuery) {
+        PageResult<ReportTemplate> list = reportTemplateService.getList(reportTemplateQuery);
+        return Result.success(list);
+    }
+
+    @PreAuthorize("hasAnyAuthority('reportTemplate:add')")
+    @PostMapping
+    public Result<ReportTemplate> create(@RequestBody ReportTemplate reportTemplate) {
+        return Result.success(reportTemplateService.create(reportTemplate));
+    }
+
+    @PreAuthorize("hasAnyAuthority('reportTemplate:edit')")
+    @PutMapping
+    public Result<ReportTemplate> update(@RequestBody ReportTemplate reportTemplate) {
+        return Result.success(reportTemplateService.update(reportTemplate));
+    }
+
+    @PreAuthorize("hasAnyAuthority('reportTemplate:del')")
+    @DeleteMapping
+    public Result<?> delete(@RequestBody Set<Long> ids) {
+        reportTemplateService.delete(ids);
+        return Result.success();
+    }
+
+}

+ 1 - 2
flow-report/flow-report-entity/src/main/java/com/flow/entity/ReportDatasource.java

@@ -15,13 +15,12 @@ import javax.sql.DataSource;
 public class ReportDatasource extends BaseEntity {
     @TableField(condition = SqlCondition.LIKE)
     private String name;
-    private Integer type;
     private String url;
     private String driverClass;
     private String username;
     private String password;
 
-    public DataSource getDataSource() {
+    public DataSource buildDataSource() {
         HikariDataSource datasource = new HikariDataSource();
         datasource.setJdbcUrl(url);
         datasource.setDriverClassName(driverClass);

+ 20 - 0
flow-report/flow-report-entity/src/main/java/com/flow/entity/ReportTemplate.java

@@ -0,0 +1,20 @@
+package com.flow.entity;
+import com.baomidou.mybatisplus.annotation.SqlCondition;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.flow.common.mybatis.entity.BaseEntity;
+import com.zaxxer.hikari.HikariDataSource;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import javax.sql.DataSource;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("report_template")
+public class ReportTemplate extends BaseEntity {
+    private String code;
+    @TableField(condition = SqlCondition.LIKE)
+    private String name;
+    private Object data;
+}

+ 12 - 0
flow-report/flow-report-entity/src/main/java/com/flow/mapstruct/ReportDatasourceMapper.java

@@ -0,0 +1,12 @@
+package com.flow.mapstruct;
+
+import com.flow.common.core.model.BaseMapper;
+import com.flow.entity.ReportDatasource;
+import com.flow.model.ReportDatasourceQuery;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+
+@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public interface ReportDatasourceMapper extends BaseMapper<ReportDatasourceQuery, ReportDatasource> {
+
+}

+ 12 - 0
flow-report/flow-report-entity/src/main/java/com/flow/mapstruct/ReportTemplateMapper.java

@@ -0,0 +1,12 @@
+package com.flow.mapstruct;
+
+import com.flow.common.core.model.BaseMapper;
+import com.flow.entity.ReportTemplate;
+import com.flow.model.ReportTemplateQuery;
+import org.mapstruct.Mapper;
+import org.mapstruct.ReportingPolicy;
+
+@Mapper(componentModel = "spring",unmappedTargetPolicy = ReportingPolicy.IGNORE)
+public interface ReportTemplateMapper extends BaseMapper<ReportTemplateQuery, ReportTemplate> {
+
+}

+ 10 - 0
flow-report/flow-report-entity/src/main/java/com/flow/model/ExecSql.java

@@ -0,0 +1,10 @@
+package com.flow.model;
+
+import lombok.Data;
+
+@Data
+public class ExecSql {
+    private Long datasourceId;
+    private String sql;
+    private Object[] params;
+}

+ 11 - 0
flow-report/flow-report-entity/src/main/java/com/flow/model/ReportDatasourceQuery.java

@@ -0,0 +1,11 @@
+package com.flow.model;
+
+import com.flow.common.core.model.Query;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ReportDatasourceQuery  extends Query {
+    private String name;
+}

+ 11 - 0
flow-report/flow-report-entity/src/main/java/com/flow/model/ReportTemplateQuery.java

@@ -0,0 +1,11 @@
+package com.flow.model;
+
+import com.flow.common.core.model.Query;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class ReportTemplateQuery extends Query {
+    private String name;
+}