From c606a7210097ca126fcf9fdb123cebf2a964f51d Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期四, 26 十二月 2024 16:51:44 +0800
Subject: [PATCH] 集成获取mdm分发通用数据格式接口集成 日志输出到日志文件中
---
Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 111 insertions(+), 0 deletions(-)
diff --git a/Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java b/Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java
new file mode 100644
index 0000000..2790e2e
--- /dev/null
+++ b/Source/BladeX-Tool/blade-starter-report/src/main/java/org/springblade/core/report/provider/DatabaseProvider.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * Neither the name of the dreamlu.net developer nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ * Author: Chill 搴勯獮 (smallchill@163.com)
+ */
+package org.springblade.core.report.provider;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.bstek.ureport.provider.report.ReportFile;
+import com.bstek.ureport.provider.report.ReportProvider;
+import lombok.AllArgsConstructor;
+import org.springblade.core.tool.constant.BladeConstant;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.report.entity.ReportFileEntity;
+import org.springblade.core.report.props.ReportDatabaseProperties;
+import org.springblade.core.report.service.IReportFileService;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 鏁版嵁搴撴枃浠跺鐞�
+ *
+ * @author Chill
+ */
+@AllArgsConstructor
+public class DatabaseProvider implements ReportProvider {
+
+ private final ReportDatabaseProperties properties;
+ private final IReportFileService service;
+
+ @Override
+ public InputStream loadReport(String file) {
+ ReportFileEntity reportFileEntity = service.getOne(Wrappers.<ReportFileEntity>lambdaQuery().eq(ReportFileEntity::getName, getFileName(file)));
+ byte[] content = reportFileEntity.getContent();
+ return new ByteArrayInputStream(content);
+ }
+
+ @Override
+ public void deleteReport(String file) {
+ service.remove(Wrappers.<ReportFileEntity>lambdaUpdate().eq(ReportFileEntity::getName, getFileName(file)));
+ }
+
+ @Override
+ public List<ReportFile> getReportFiles() {
+ List<ReportFileEntity> list = service.list();
+ List<ReportFile> reportFiles = new ArrayList<>();
+ list.forEach(reportFileEntity -> reportFiles.add(new ReportFile(reportFileEntity.getName(), reportFileEntity.getUpdateTime())));
+ return reportFiles;
+ }
+
+ @Override
+ public void saveReport(String file, String content) {
+ String fileName = getFileName(file);
+ ReportFileEntity reportFileEntity = service.getOne(Wrappers.<ReportFileEntity>lambdaQuery().eq(ReportFileEntity::getName, fileName));
+ Date now = DateUtil.now();
+ if (reportFileEntity == null) {
+ reportFileEntity = new ReportFileEntity();
+ reportFileEntity.setName(fileName);
+ reportFileEntity.setContent(content.getBytes());
+ reportFileEntity.setCreateTime(now);
+ reportFileEntity.setIsDeleted(BladeConstant.DB_NOT_DELETED);
+ } else {
+ reportFileEntity.setContent(content.getBytes());
+ }
+ reportFileEntity.setUpdateTime(now);
+ service.saveOrUpdate(reportFileEntity);
+ }
+
+ @Override
+ public String getName() {
+ return properties.getName();
+ }
+
+ @Override
+ public boolean disabled() {
+ return properties.isDisabled();
+ }
+
+ @Override
+ public String getPrefix() {
+ return properties.getPrefix();
+ }
+
+ /**
+ * 鑾峰彇鏍囧噯鏍煎紡鏂囦欢鍚�
+ *
+ * @param name 鍘熸枃浠跺悕
+ */
+ private String getFileName(String name) {
+ if (name.startsWith(getPrefix())) {
+ name = name.substring(getPrefix().length());
+ }
+ return name;
+ }
+
+}
--
Gitblit v1.9.3