浏览代码

新增导入导出excel,修复bug若干

周浩 9 年之前
父节点
当前提交
05ef72b26f

+ 8 - 3
hsweb-web-concurrent/hsweb-web-concurrent-cache/src/main/java/org/hsweb/concureent/cache/ConcurrentMapCacheManagerAutoConfig.java

@@ -1,6 +1,5 @@
 package org.hsweb.concureent.cache;
 
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingClass;
 import org.springframework.cache.Cache;
 import org.springframework.cache.CacheManager;
@@ -13,6 +12,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import java.util.HashSet;
+import java.util.concurrent.ConcurrentHashMap;
 
 @EnableCaching
 @Configuration
@@ -35,10 +35,15 @@ public class ConcurrentMapCacheManagerAutoConfig extends CachingConfigurerSuppor
     @Bean
     public CacheManager cacheManager() {
         SimpleCacheManager cacheManager = new SimpleCacheManager() {
-
             @Override
             protected Cache getMissingCache(String name) {
-                return new ConcurrentMapCache(name);
+                return new ConcurrentMapCache(name, false) {
+                    @Override
+                    public void put(Object key, Object value) {
+                        if (key == null || value == null) return;
+                        super.put(key, value);
+                    }
+                };
             }
         };
         cacheManager.setCaches(new HashSet<>());

+ 5 - 0
hsweb-web-service-impl-common/pom.xml

@@ -36,6 +36,11 @@
             <scope>test</scope>
         </dependency>
 
+        <dependency>
+            <groupId>org.webbuilder</groupId>
+            <artifactId>wb-office</artifactId>
+        </dependency>
+
         <dependency>
             <groupId>org.codehaus.groovy</groupId>
             <artifactId>groovy-all</artifactId>

+ 9 - 2
hsweb-web-service-impl-common/src/main/java/org/hsweb/web/service/impl/resource/FileServiceImpl.java

@@ -29,10 +29,17 @@ public class FileServiceImpl implements FileService {
     @Resource
     protected ResourcesService resourcesService;
 
-    protected String getFileBasePath() {
+    public String getFileBasePath() {
         return configService.get("upload", "basePath", "./upload").trim();
     }
 
+    @Override
+    public InputStream readResources(String resourceId) throws Exception {
+        Resources resources = resourcesService.selectByPk(resourceId);
+        if (resources == null) throw new NotFoundException("文件不存在");
+        return readResources(resources);
+    }
+
     @Override
     public InputStream readResources(Resources resources) throws Exception {
         String fileBasePath = getFileBasePath();
@@ -45,7 +52,7 @@ public class FileServiceImpl implements FileService {
 
     @Override
     public void writeResources(Resources resources, OutputStream outputStream) throws Exception {
-        try(InputStream inputStream=readResources(resources)){
+        try (InputStream inputStream = readResources(resources)) {
             byte b[] = new byte[2048 * 10];
             while ((inputStream.read(b)) != -1) {
                 outputStream.write(b);

+ 7 - 5
hsweb-web-service-impl-common/src/test/java/org/hsweb/web/service/impl/form/FormServiceImplTest.java

@@ -18,6 +18,7 @@ import org.webbuilder.sql.param.insert.InsertParam;
 import org.webbuilder.sql.param.query.QueryParam;
 import org.webbuilder.sql.param.update.UpdateParam;
 import org.webbuilder.sql.support.executor.SqlExecutor;
+import org.webbuilder.utils.file.FileUtils;
 
 import javax.annotation.Resource;
 import java.util.Date;
@@ -49,13 +50,13 @@ public class FormServiceImplTest extends AbstractTestCase {
             "{" +
                     "\"id1\":[" +
                     "{\"key\":\"name\",\"value\":\"u_id\",\"describe\":\"名称\"}," +
-                    "{\"key\":\"comment\",\"value\":\"ID\",\"describe\":\"字段描述\"}," +
+                    "{\"key\":\"comment\",\"value\":\"ID\",\"describe\":\"ID\"}," +
                     "{\"key\":\"javaType\",\"value\":\"string\",\"describe\":\"java类型\"}," +
                     "{\"key\":\"dataType\",\"value\":\"varchar2(32)\",\"describe\":\"数据库类型\"}" +
                     "]" +
                     ",\"id2\":[" +
                     "{\"key\":\"name\",\"value\":\"name\",\"describe\":\"名称\"}," +
-                    "{\"key\":\"comment\",\"value\":\"test\",\"describe\":\"字段描述\"}," +
+                    "{\"key\":\"comment\",\"value\":\"姓名\",\"describe\":\"姓名\"}," +
                     "{\"key\":\"javaType\",\"value\":\"string\",\"describe\":\"java类型\"}," +
                     "{\"key\":\"validator-list\",\"value\":\"[{\\\"validator\\\":\\\"NotNull\\\"}]\",,\"describe\":\"java类型\"}," +
                     "{\"key\":\"dataType\",\"value\":\"varchar2(32)\",\"describe\":\"数据库类型\"}" +
@@ -64,19 +65,19 @@ public class FormServiceImplTest extends AbstractTestCase {
             "{" +
                     "\"id1\":[" +
                     "{\"key\":\"name\",\"value\":\"u_id\",\"describe\":\"名称\"}," +
-                    "{\"key\":\"comment\",\"value\":\"ID\",\"describe\":\"字段描述\"}," +
+                    "{\"key\":\"comment\",\"value\":\"ID\",\"describe\":\"ID\"}," +
                     "{\"key\":\"javaType\",\"value\":\"string\",\"describe\":\"java类型\"}," +
                     "{\"key\":\"dataType\",\"value\":\"varchar2(32)\",\"describe\":\"数据库类型\"}" +
                     "]" +
                     ",\"id2\":[" +
                     "{\"key\":\"name\",\"value\":\"name\",\"describe\":\"名称\"}," +
-                    "{\"key\":\"comment\",\"value\":\"test\",\"describe\":\"字段描述\"}," +
+                    "{\"key\":\"comment\",\"value\":\"姓名\",\"describe\":\"字段描述\"}," +
                     "{\"key\":\"javaType\",\"value\":\"string\",\"describe\":\"java类型\"}," +
                     "{\"key\":\"dataType\",\"value\":\"varchar2(32)\",\"describe\":\"数据库类型\"}" +
                     "]" +
                     ",\"id3\":[" +
                     "{\"key\":\"name\",\"value\":\"sex\",\"describe\":\"名称\"}," +
-                    "{\"key\":\"comment\",\"value\":\"test\",\"describe\":\"性别\"}," +
+                    "{\"key\":\"comment\",\"value\":\"性别\",\"describe\":\"性别\"}," +
                     "{\"key\":\"javaType\",\"value\":\"string\",\"describe\":\"java类型\"}," +
                     "{\"key\":\"dataType\",\"value\":\"varchar2(32)\",\"describe\":\"数据库类型\"}" +
                     "]" +
@@ -115,6 +116,7 @@ public class FormServiceImplTest extends AbstractTestCase {
         formService.deploy(form.getId());
 
         formService.selectLatestList(new org.hsweb.web.bean.common.QueryParam());
+        dynamicFormService.importExcel("test_form", FileUtils.getResourceAsStream("test.xlsx"));
     }
 
 

二进制
hsweb-web-service-impl-common/src/test/resources/test.xlsx


+ 5 - 0
hsweb-web-service-interface/src/main/java/org/hsweb/web/service/resource/FileService.java

@@ -22,6 +22,11 @@ public interface FileService {
 
     InputStream readResources(Resources resources) throws Exception;
 
+    InputStream readResources(String resourceId) throws Exception;
+
     void writeResources(Resources resources, OutputStream outputStream) throws Exception;
 
+    String getFileBasePath();
+
+
 }

+ 5 - 1
pom.xml

@@ -135,7 +135,11 @@
                 <artifactId>wb-utils</artifactId>
                 <version>${webbuilder.version}</version>
             </dependency>
-
+            <dependency>
+                <groupId>org.webbuilder</groupId>
+                <artifactId>wb-office</artifactId>
+                <version>${webbuilder.version}</version>
+            </dependency>
             <!--<dependency>-->
             <!--<groupId>com.vaadin</groupId>-->
             <!--<artifactId>vaadin-bom</artifactId>-->