diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java new file mode 100644 index 0000000..070160a --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java @@ -0,0 +1,38 @@ +package org.springnewfiber.dataadapter.sswj.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.sswj.service.impl.ExcelPlusServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 13:59 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/ExcelPlus") +@Api(value = "导出数据", tags = "导出数据") +public class ExcelPlusController { + private final ExcelPlusServiceImpl excelPlusService; + + @RequestMapping("/excelDownload") + @ApiOperation(value = "下载excel",produces = "application/octet-stream") + public void excelDownload(@ApiParam(value = "库名称")@RequestParam(defaultValue = "swj") String dataBase,@ApiParam(value = "表名", required = true) @RequestParam String tableName, HttpServletResponse response,@ApiParam(value = "sql拼接") @RequestParam(required = false) String lastSql) { + try { + excelPlusService.exportExcel(dataBase, tableName, response,lastSql); + } catch (IOException e) { + throw new RuntimeException("文件写入失败"); + } + } +} diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java new file mode 100644 index 0000000..070160a --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java @@ -0,0 +1,38 @@ +package org.springnewfiber.dataadapter.sswj.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.sswj.service.impl.ExcelPlusServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 13:59 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/ExcelPlus") +@Api(value = "导出数据", tags = "导出数据") +public class ExcelPlusController { + private final ExcelPlusServiceImpl excelPlusService; + + @RequestMapping("/excelDownload") + @ApiOperation(value = "下载excel",produces = "application/octet-stream") + public void excelDownload(@ApiParam(value = "库名称")@RequestParam(defaultValue = "swj") String dataBase,@ApiParam(value = "表名", required = true) @RequestParam String tableName, HttpServletResponse response,@ApiParam(value = "sql拼接") @RequestParam(required = false) String lastSql) { + try { + excelPlusService.exportExcel(dataBase, tableName, response,lastSql); + } catch (IOException e) { + throw new RuntimeException("文件写入失败"); + } + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4b88007..d0a98f9 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -44,7 +44,7 @@ private final TrsqTjhsRServiceImpl trsqTjhsRService; private final ZgRainDataMapper zgRainDataMapper; - @Scheduled(cron = "0 0/1 * * * ?") +// @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { checkHasRealDate(new BzLive(), bzLiveService); checkHasRealDate(new SqGqR(), sqGqRService); diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java new file mode 100644 index 0000000..070160a --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java @@ -0,0 +1,38 @@ +package org.springnewfiber.dataadapter.sswj.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.sswj.service.impl.ExcelPlusServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 13:59 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/ExcelPlus") +@Api(value = "导出数据", tags = "导出数据") +public class ExcelPlusController { + private final ExcelPlusServiceImpl excelPlusService; + + @RequestMapping("/excelDownload") + @ApiOperation(value = "下载excel",produces = "application/octet-stream") + public void excelDownload(@ApiParam(value = "库名称")@RequestParam(defaultValue = "swj") String dataBase,@ApiParam(value = "表名", required = true) @RequestParam String tableName, HttpServletResponse response,@ApiParam(value = "sql拼接") @RequestParam(required = false) String lastSql) { + try { + excelPlusService.exportExcel(dataBase, tableName, response,lastSql); + } catch (IOException e) { + throw new RuntimeException("文件写入失败"); + } + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4b88007..d0a98f9 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -44,7 +44,7 @@ private final TrsqTjhsRServiceImpl trsqTjhsRService; private final ZgRainDataMapper zgRainDataMapper; - @Scheduled(cron = "0 0/1 * * * ?") +// @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { checkHasRealDate(new BzLive(), bzLiveService); checkHasRealDate(new SqGqR(), sqGqRService); diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java new file mode 100644 index 0000000..eb05b8c --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java @@ -0,0 +1,20 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import lombok.Data; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:17 + **/ +@Data +public class TableColumnInfo { + private String columnName; + private String columnComment; + + public String getCloumnTitle() { + return columnComment.concat(StringPool.LEFT_BRACKET).concat(columnName).concat(StringPool.RIGHT_BRACKET); + } +} diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java new file mode 100644 index 0000000..070160a --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java @@ -0,0 +1,38 @@ +package org.springnewfiber.dataadapter.sswj.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.sswj.service.impl.ExcelPlusServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 13:59 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/ExcelPlus") +@Api(value = "导出数据", tags = "导出数据") +public class ExcelPlusController { + private final ExcelPlusServiceImpl excelPlusService; + + @RequestMapping("/excelDownload") + @ApiOperation(value = "下载excel",produces = "application/octet-stream") + public void excelDownload(@ApiParam(value = "库名称")@RequestParam(defaultValue = "swj") String dataBase,@ApiParam(value = "表名", required = true) @RequestParam String tableName, HttpServletResponse response,@ApiParam(value = "sql拼接") @RequestParam(required = false) String lastSql) { + try { + excelPlusService.exportExcel(dataBase, tableName, response,lastSql); + } catch (IOException e) { + throw new RuntimeException("文件写入失败"); + } + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4b88007..d0a98f9 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -44,7 +44,7 @@ private final TrsqTjhsRServiceImpl trsqTjhsRService; private final ZgRainDataMapper zgRainDataMapper; - @Scheduled(cron = "0 0/1 * * * ?") +// @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { checkHasRealDate(new BzLive(), bzLiveService); checkHasRealDate(new SqGqR(), sqGqRService); diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java new file mode 100644 index 0000000..eb05b8c --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java @@ -0,0 +1,20 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import lombok.Data; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:17 + **/ +@Data +public class TableColumnInfo { + private String columnName; + private String columnComment; + + public String getCloumnTitle() { + return columnComment.concat(StringPool.LEFT_BRACKET).concat(columnName).concat(StringPool.RIGHT_BRACKET); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java new file mode 100644 index 0000000..7d186fb --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java @@ -0,0 +1,23 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springnewfiber.dataadapter.sswj.entity.TableColumnInfo; + +import java.util.List; +import java.util.Map; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:15 + **/ +@Mapper +public interface ExcelPlusMapper { + List selectTableColumn(@Param("dataName") String dataName, @Param("tableName") String tableName); + + String selectTableName(@Param("dataName") String dataName, @Param("tableName") String tableName); + + List selectDataByTableName(@Param("tableName") String tableName, @Param("lastSql") String lastSql); +} diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java new file mode 100644 index 0000000..070160a --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java @@ -0,0 +1,38 @@ +package org.springnewfiber.dataadapter.sswj.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.sswj.service.impl.ExcelPlusServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 13:59 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/ExcelPlus") +@Api(value = "导出数据", tags = "导出数据") +public class ExcelPlusController { + private final ExcelPlusServiceImpl excelPlusService; + + @RequestMapping("/excelDownload") + @ApiOperation(value = "下载excel",produces = "application/octet-stream") + public void excelDownload(@ApiParam(value = "库名称")@RequestParam(defaultValue = "swj") String dataBase,@ApiParam(value = "表名", required = true) @RequestParam String tableName, HttpServletResponse response,@ApiParam(value = "sql拼接") @RequestParam(required = false) String lastSql) { + try { + excelPlusService.exportExcel(dataBase, tableName, response,lastSql); + } catch (IOException e) { + throw new RuntimeException("文件写入失败"); + } + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4b88007..d0a98f9 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -44,7 +44,7 @@ private final TrsqTjhsRServiceImpl trsqTjhsRService; private final ZgRainDataMapper zgRainDataMapper; - @Scheduled(cron = "0 0/1 * * * ?") +// @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { checkHasRealDate(new BzLive(), bzLiveService); checkHasRealDate(new SqGqR(), sqGqRService); diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java new file mode 100644 index 0000000..eb05b8c --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java @@ -0,0 +1,20 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import lombok.Data; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:17 + **/ +@Data +public class TableColumnInfo { + private String columnName; + private String columnComment; + + public String getCloumnTitle() { + return columnComment.concat(StringPool.LEFT_BRACKET).concat(columnName).concat(StringPool.RIGHT_BRACKET); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java new file mode 100644 index 0000000..7d186fb --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java @@ -0,0 +1,23 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springnewfiber.dataadapter.sswj.entity.TableColumnInfo; + +import java.util.List; +import java.util.Map; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:15 + **/ +@Mapper +public interface ExcelPlusMapper { + List selectTableColumn(@Param("dataName") String dataName, @Param("tableName") String tableName); + + String selectTableName(@Param("dataName") String dataName, @Param("tableName") String tableName); + + List selectDataByTableName(@Param("tableName") String tableName, @Param("lastSql") String lastSql); +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml new file mode 100644 index 0000000..61686c8 --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java new file mode 100644 index 0000000..070160a --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java @@ -0,0 +1,38 @@ +package org.springnewfiber.dataadapter.sswj.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.sswj.service.impl.ExcelPlusServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 13:59 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/ExcelPlus") +@Api(value = "导出数据", tags = "导出数据") +public class ExcelPlusController { + private final ExcelPlusServiceImpl excelPlusService; + + @RequestMapping("/excelDownload") + @ApiOperation(value = "下载excel",produces = "application/octet-stream") + public void excelDownload(@ApiParam(value = "库名称")@RequestParam(defaultValue = "swj") String dataBase,@ApiParam(value = "表名", required = true) @RequestParam String tableName, HttpServletResponse response,@ApiParam(value = "sql拼接") @RequestParam(required = false) String lastSql) { + try { + excelPlusService.exportExcel(dataBase, tableName, response,lastSql); + } catch (IOException e) { + throw new RuntimeException("文件写入失败"); + } + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4b88007..d0a98f9 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -44,7 +44,7 @@ private final TrsqTjhsRServiceImpl trsqTjhsRService; private final ZgRainDataMapper zgRainDataMapper; - @Scheduled(cron = "0 0/1 * * * ?") +// @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { checkHasRealDate(new BzLive(), bzLiveService); checkHasRealDate(new SqGqR(), sqGqRService); diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java new file mode 100644 index 0000000..eb05b8c --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java @@ -0,0 +1,20 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import lombok.Data; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:17 + **/ +@Data +public class TableColumnInfo { + private String columnName; + private String columnComment; + + public String getCloumnTitle() { + return columnComment.concat(StringPool.LEFT_BRACKET).concat(columnName).concat(StringPool.RIGHT_BRACKET); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java new file mode 100644 index 0000000..7d186fb --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java @@ -0,0 +1,23 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springnewfiber.dataadapter.sswj.entity.TableColumnInfo; + +import java.util.List; +import java.util.Map; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:15 + **/ +@Mapper +public interface ExcelPlusMapper { + List selectTableColumn(@Param("dataName") String dataName, @Param("tableName") String tableName); + + String selectTableName(@Param("dataName") String dataName, @Param("tableName") String tableName); + + List selectDataByTableName(@Param("tableName") String tableName, @Param("lastSql") String lastSql); +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml new file mode 100644 index 0000000..61686c8 --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/service/impl/ExcelPlusServiceImpl.java b/src/main/java/org/springnewfiber/dataadapter/sswj/service/impl/ExcelPlusServiceImpl.java new file mode 100644 index 0000000..0b3193b --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/service/impl/ExcelPlusServiceImpl.java @@ -0,0 +1,66 @@ +package org.springnewfiber.dataadapter.sswj.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.http.ContentType; +import cn.hutool.http.Header; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springnewfiber.dataadapter.sswj.entity.TableColumnInfo; +import org.springnewfiber.dataadapter.sswj.mapper.ExcelPlusMapper; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:14 + **/ +@Service +@AllArgsConstructor +public class ExcelPlusServiceImpl { + private final ExcelPlusMapper excelPlusMapper; + + public void exportExcel(String dataName, String tableName, HttpServletResponse response, String lastSql) throws IOException { + List columnInfoList = excelPlusMapper.selectTableColumn(dataName, tableName); + String tableNameComment = excelPlusMapper.selectTableName(dataName, tableName); + if (CollUtil.isEmpty(columnInfoList)) { + throw new RuntimeException("数据不存在"); + } + ExcelWriter writer = ExcelUtil.getWriter(); + Map headMap = columnInfoList.stream().collect(Collectors.toMap(TableColumnInfo::getColumnName, TableColumnInfo::getCloumnTitle)); + writer.setHeaderAlias(headMap); + excelPlusMapper.selectDataByTableName(tableName, lastSql).forEach(i -> { + if (writer.getRowCount() == 1) { + writer.writeRow(i, true); + } else { + writer.writeRow(i, false); + } + }); + if (StringUtils.isNotBlank(tableNameComment)) { + writer.renameSheet(tableNameComment.concat(StringPool.DASH).concat(lastSql == null ? StringPool.EMPTY : lastSql)); + } else { + writer.renameSheet(tableName.concat(StringPool.DASH).concat(lastSql == null ? StringPool.EMPTY : lastSql)); + } + response.setContentType(ContentType.MULTIPART.getValue()); + String fileName=new String(URLEncoder.encode(StringUtils.isNotBlank(tableNameComment)?tableNameComment.concat(StringPool.LEFT_SQ_BRACKET).concat(tableName).concat(StringPool.RIGHT_SQ_BRACKET):tableName, "utf-8")); +// response.addHeader(Header.CONTENT_DISPOSITION.getValue(), "attachment;filename=" .concat( URLEncoder.encode(StringUtils.isNotBlank(tableNameComment)?tableNameComment:tableName.concat(".xls"), "utf-8"))); + response.addHeader(Header.CONTENT_DISPOSITION.getValue(), "attachment;filename=" .concat(fileName).concat(".xls")); + ServletOutputStream out = response.getOutputStream(); + writer.flush(out, true); + writer.close(); + IoUtil.close(out); + } +} diff --git a/pom.xml b/pom.xml index 75550ae..02b13bf 100644 --- a/pom.xml +++ b/pom.xml @@ -21,19 +21,24 @@ com.github.xiaoymin - knife4j-aggregation-spring-boot-starter + knife4j-spring-boot-starter 2.0.9 - - io.springfox - springfox-swagger2 - 2.10.5 - - - io.swagger - swagger-models - 1.6.2 - + + + + + + + + + + + + + + + com.baomidou @@ -55,6 +60,12 @@ mybatis-plus-generator ${mybatis.plus.generator.version} + + org.apache.poi + poi-ooxml + 4.1.1 + + @@ -138,6 +149,18 @@ + ${project.name} + + + src/main/resources + + + src/main/java + + **/*.xml + + + org.springframework.boot diff --git a/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java new file mode 100644 index 0000000..652636e --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/config/SwaggerConfig.java @@ -0,0 +1,46 @@ +package org.springnewfiber.dataadapter.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Contact; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 15:50 + **/ +@Configuration +@EnableSwagger2WebMvc +//@EnableKnife4j +//@Import(BeanValidatorPluginsConfiguration.class) +public class SwaggerConfig { + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("org.springnewfiber.dataadapter")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title("adapter- 接口文档") + .description("前端适配器") + .contact(new Contact("Leif Liu", null, "XXXXXX.com")) + .version("v1.0.0") + .build(); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java new file mode 100644 index 0000000..070160a --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/controller/ExcelPlusController.java @@ -0,0 +1,38 @@ +package org.springnewfiber.dataadapter.sswj.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.AllArgsConstructor; +import org.apache.ibatis.annotations.Param; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; +import org.springnewfiber.dataadapter.sswj.service.impl.ExcelPlusServiceImpl; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 13:59 + **/ +@RestController +@AllArgsConstructor +@RequestMapping("/ExcelPlus") +@Api(value = "导出数据", tags = "导出数据") +public class ExcelPlusController { + private final ExcelPlusServiceImpl excelPlusService; + + @RequestMapping("/excelDownload") + @ApiOperation(value = "下载excel",produces = "application/octet-stream") + public void excelDownload(@ApiParam(value = "库名称")@RequestParam(defaultValue = "swj") String dataBase,@ApiParam(value = "表名", required = true) @RequestParam String tableName, HttpServletResponse response,@ApiParam(value = "sql拼接") @RequestParam(required = false) String lastSql) { + try { + excelPlusService.exportExcel(dataBase, tableName, response,lastSql); + } catch (IOException e) { + throw new RuntimeException("文件写入失败"); + } + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java index 4b88007..d0a98f9 100644 --- a/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/core/SswjCoreJob.java @@ -44,7 +44,7 @@ private final TrsqTjhsRServiceImpl trsqTjhsRService; private final ZgRainDataMapper zgRainDataMapper; - @Scheduled(cron = "0 0/1 * * * ?") +// @Scheduled(cron = "0 0/1 * * * ?") public void selectSwj() { checkHasRealDate(new BzLive(), bzLiveService); checkHasRealDate(new SqGqR(), sqGqRService); diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java new file mode 100644 index 0000000..eb05b8c --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/entity/TableColumnInfo.java @@ -0,0 +1,20 @@ +package org.springnewfiber.dataadapter.sswj.entity; + +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import lombok.Data; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:17 + **/ +@Data +public class TableColumnInfo { + private String columnName; + private String columnComment; + + public String getCloumnTitle() { + return columnComment.concat(StringPool.LEFT_BRACKET).concat(columnName).concat(StringPool.RIGHT_BRACKET); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java new file mode 100644 index 0000000..7d186fb --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.java @@ -0,0 +1,23 @@ +package org.springnewfiber.dataadapter.sswj.mapper; + +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springnewfiber.dataadapter.sswj.entity.TableColumnInfo; + +import java.util.List; +import java.util.Map; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:15 + **/ +@Mapper +public interface ExcelPlusMapper { + List selectTableColumn(@Param("dataName") String dataName, @Param("tableName") String tableName); + + String selectTableName(@Param("dataName") String dataName, @Param("tableName") String tableName); + + List selectDataByTableName(@Param("tableName") String tableName, @Param("lastSql") String lastSql); +} diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml new file mode 100644 index 0000000..61686c8 --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/mapper/ExcelPlusMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/org/springnewfiber/dataadapter/sswj/service/impl/ExcelPlusServiceImpl.java b/src/main/java/org/springnewfiber/dataadapter/sswj/service/impl/ExcelPlusServiceImpl.java new file mode 100644 index 0000000..0b3193b --- /dev/null +++ b/src/main/java/org/springnewfiber/dataadapter/sswj/service/impl/ExcelPlusServiceImpl.java @@ -0,0 +1,66 @@ +package org.springnewfiber.dataadapter.sswj.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.io.IoUtil; +import cn.hutool.http.ContentType; +import cn.hutool.http.Header; +import cn.hutool.poi.excel.ExcelUtil; +import cn.hutool.poi.excel.ExcelWriter; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import lombok.AllArgsConstructor; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Service; +import org.springnewfiber.dataadapter.sswj.entity.TableColumnInfo; +import org.springnewfiber.dataadapter.sswj.mapper.ExcelPlusMapper; + +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * @program: newfiber-data-adapter + * @description: + * @author: djt + * @create: 2022-05-18 11:14 + **/ +@Service +@AllArgsConstructor +public class ExcelPlusServiceImpl { + private final ExcelPlusMapper excelPlusMapper; + + public void exportExcel(String dataName, String tableName, HttpServletResponse response, String lastSql) throws IOException { + List columnInfoList = excelPlusMapper.selectTableColumn(dataName, tableName); + String tableNameComment = excelPlusMapper.selectTableName(dataName, tableName); + if (CollUtil.isEmpty(columnInfoList)) { + throw new RuntimeException("数据不存在"); + } + ExcelWriter writer = ExcelUtil.getWriter(); + Map headMap = columnInfoList.stream().collect(Collectors.toMap(TableColumnInfo::getColumnName, TableColumnInfo::getCloumnTitle)); + writer.setHeaderAlias(headMap); + excelPlusMapper.selectDataByTableName(tableName, lastSql).forEach(i -> { + if (writer.getRowCount() == 1) { + writer.writeRow(i, true); + } else { + writer.writeRow(i, false); + } + }); + if (StringUtils.isNotBlank(tableNameComment)) { + writer.renameSheet(tableNameComment.concat(StringPool.DASH).concat(lastSql == null ? StringPool.EMPTY : lastSql)); + } else { + writer.renameSheet(tableName.concat(StringPool.DASH).concat(lastSql == null ? StringPool.EMPTY : lastSql)); + } + response.setContentType(ContentType.MULTIPART.getValue()); + String fileName=new String(URLEncoder.encode(StringUtils.isNotBlank(tableNameComment)?tableNameComment.concat(StringPool.LEFT_SQ_BRACKET).concat(tableName).concat(StringPool.RIGHT_SQ_BRACKET):tableName, "utf-8")); +// response.addHeader(Header.CONTENT_DISPOSITION.getValue(), "attachment;filename=" .concat( URLEncoder.encode(StringUtils.isNotBlank(tableNameComment)?tableNameComment:tableName.concat(".xls"), "utf-8"))); + response.addHeader(Header.CONTENT_DISPOSITION.getValue(), "attachment;filename=" .concat(fileName).concat(".xls")); + ServletOutputStream out = response.getOutputStream(); + writer.flush(out, true); + writer.close(); + IoUtil.close(out); + } +} diff --git a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java index 863a4f0..4623864 100644 --- a/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java +++ b/src/main/java/org/springnewfiber/dataadapter/ziguang/core/ZiGuangDataJob.java @@ -27,7 +27,7 @@ private final HpAction hpAction; private final YlAction ylAction; private final ZsAction zsAction; - @Scheduled(cron = "0 0/1 * * * ?") +// @Scheduled(cron = "0 0/1 * * * ?") public void synchronize() { bzAction.list(); gqAction.list();