Ver Fonte

新增包装机服务文件监听

赵冬冬 há 3 anos atrás
pai
commit
2c2d5a8966

+ 2 - 0
pom.xml

@@ -24,6 +24,7 @@
     </properties>
 
     <dependencies>
+
         <dependency>
             <groupId>commons-io</groupId>
             <artifactId>commons-io</artifactId>
@@ -76,6 +77,7 @@
             <artifactId>log4j</artifactId>
             <version>1.2.17</version>
         </dependency>
+
     </dependencies>
     <build>
         <plugins>

+ 1 - 4
src/main/java/com/hw/admin/PackerServiceApplication.java

@@ -21,8 +21,5 @@ public class PackerServiceApplication {
         SpringApplication.run(PackerServiceApplication.class, args);
     }
 
-    @Bean
-    public FileMonitor fileMonitor() {
-        return new FileMonitor("D:\\project\\delivery_project\\远程制药\\后台\\ycpharmacy_excel_service\\excel\\");
-    }
+
 }

+ 9 - 0
src/main/java/com/hw/admin/model/domain/PageHelperForm.java

@@ -0,0 +1,9 @@
+package com.hw.admin.model.domain;
+
+import lombok.Data;
+
+@Data
+public class PageHelperForm {
+    private int pageNum = 1;
+    private int pageSize = 10;
+}

+ 1 - 1
src/main/java/com/hw/admin/model/domain/WorkPacker.java

@@ -15,7 +15,7 @@ import java.util.Date;
 @ToString(callSuper = true)
 @Accessors(chain = true)
 @TableName("work_packer")
-public class WorkPacker {
+public class WorkPacker extends PageHelperForm{
     /**
      * id
      * 列名:id 类型:BIGINT(19) 允许空:false 缺省值:null

+ 2 - 1
src/main/java/com/hw/admin/model/mapper/WorkPackerMapper.java

@@ -3,10 +3,11 @@ package com.hw.admin.model.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.hw.admin.model.domain.WorkPacker;
+import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
-
+@Mapper
 public interface WorkPackerMapper extends BaseMapper<WorkPacker> {
 
     int inserList(@Param("data") List<WorkPacker> workPacker);

+ 31 - 3
src/main/java/com/hw/admin/model/service/impl/WorkPackerServiceImpl.java

@@ -8,7 +8,7 @@ import com.hw.admin.model.mapper.WorkPackerMapper;
 import com.hw.admin.model.service.WorkPackerService;
 import com.hw.admin.system.listener.WorkPackerListener;
 import com.hw.admin.system.utils.DateExUtils;
-import com.hw.admin.system.utils.Sequence;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -17,9 +17,12 @@ import org.springframework.util.StringUtils;
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 @Service
+@Slf4j
 public class WorkPackerServiceImpl implements WorkPackerService {
 
     @Value("${file.path}")
@@ -53,6 +56,7 @@ public class WorkPackerServiceImpl implements WorkPackerService {
         //return workPackerMapper.inserList(list);
     }
 
+
     @Override
     public void task(String time) {
         // 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去
@@ -86,8 +90,32 @@ public class WorkPackerServiceImpl implements WorkPackerService {
 
     @Override
     public int update(WorkPacker workPacker) {
-        checkData(workPacker.getId());
-        return workPackerMapper.updateById(workPacker);
+        Set<String> files = new HashSet<>();
+        files.addAll(getFile(filepath));
+        return 0;
+    }
+
+    // 给定目录的绝对路径,获取该目录下的所有文件(子目录的文件也可递归得到)
+    public static List<String> getFile(String path) {
+        List<String> files = new ArrayList<>();
+        // File对象 可以是文件或者目录
+        File file = new File(path);
+        File[] array = file.listFiles();
+
+        for (int i = 0; i < array.length; i++) {
+            if (array[i].isFile()) {
+                // only take file name
+                log.info("^^^^^" + array[i].getName());
+                // take file path and name
+                log.info("#####" + array[i]);
+                // take file path and name
+                log.info("*****" + array[i].getPath());
+                files.add(array[i].getPath());
+            } else if (array[i].isDirectory()) {
+                getFile(array[i].getPath());
+            }
+        }
+        return files;
     }
 
     @Override

+ 17 - 0
src/main/java/com/hw/admin/system/config/FilePathListenerConfig.java

@@ -0,0 +1,17 @@
+package com.hw.admin.system.config;
+
+import com.hw.admin.system.listener.FileMonitor;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class FilePathListenerConfig {
+    @Value("${file.path}")
+    private String filepath;
+
+    @Bean
+    public FileMonitor fileMonitor() {
+        return new FileMonitor(filepath);
+    }
+}

+ 2 - 0
src/main/java/com/hw/admin/system/listener/WorkPackerListener.java

@@ -13,6 +13,7 @@ import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
 
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 // 有个很重要的点 DemoDataListener 不能被spring管理,要每次读取excel都要new,然后里面用到spring可以构造方法传进去
@@ -59,6 +60,7 @@ public class WorkPackerListener extends AnalysisEventListener<WorkPackerExcel> {
         String s = DateExUtils.commonDatePathStr();
         workPacker.setInsertTime(s);
         workPacker.setFilePath(filePath);
+        workPacker.setCreateTime(new Date());
         list.add(workPacker);
         // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
         if (list.size() >= BATCH_COUNT) {

+ 28 - 0
src/main/resources/application-dev.yml

@@ -0,0 +1,28 @@
+file:
+  path: D:\project\delivery_project\远程制药\后台\ycpharmacy_excel_service\excel
+spring:
+  jackson:
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://172.16.90.201:3306/ycpharmacy_db?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
+    username: root
+    password: 123456
+  druid:
+    initial-size: 5
+    min-idle: 5
+    maxActive: 20
+    maxWait: 60000
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    validationQuery: SELECT 1 FROM DUAL
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+    maxPoolPreparedStatementPerConnectionSize: 20
+    connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+    filters: stat,slf4j
+
+

+ 26 - 0
src/main/resources/application-pro.yml

@@ -0,0 +1,26 @@
+file:
+  path: D:\project\delivery_project\远程制药\后台\ycpharmacy_excel_service\excel
+spring:
+  jackson:
+    date-format: yyyy-MM-dd HH:mm:ss
+    time-zone: GMT+8
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: jdbc:mysql://172.16.90.201:3306/ycpharmacy_db?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
+    username: root
+    password: 123456
+  druid:
+    initial-size: 5
+    min-idle: 5
+    maxActive: 20
+    maxWait: 60000
+    timeBetweenEvictionRunsMillis: 60000
+    minEvictableIdleTimeMillis: 300000
+    validationQuery: SELECT 1 FROM DUAL
+    testWhileIdle: true
+    testOnBorrow: false
+    testOnReturn: false
+    poolPreparedStatements: true
+    maxPoolPreparedStatementPerConnectionSize: 20
+    connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+    filters: stat,slf4j

+ 6 - 35
src/main/resources/application.yml

@@ -1,18 +1,10 @@
-file:
-  path: D:\project\delivery_project\远程制药\后台\ycpharmacy_excel_service\excel
-
 server:
   port: 8080
-logging:
-  level:
-    com.chz.mapper: info
-#mybatis-plus:
-  #configuration:
-    #map-underscore-to-camel-case: true
-    #cache-enabled: true
-    #lazy-loading-enabled: true
+
+mybatis-plus:
+  configuration:
     #log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
-    #log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
+    log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
 
 # MyBatis配置
 mybatis:
@@ -22,29 +14,8 @@ mybatis:
     map-underscore-to-camel-case: true
     call-setters-on-nulls: false #返回null字段
 spring:
-  jackson:
-    date-format: yyyy-MM-dd HH:mm:ss
-    time-zone: GMT+8
-  datasource:
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://172.16.90.201:3306/ycpharmacy_db?autoReconnect=true&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=Asia/Shanghai&tinyInt1isBit=false
-    username: root
-    password: 123456
-  druid:
-    initial-size: 5
-    min-idle: 5
-    maxActive: 20
-    maxWait: 60000
-    timeBetweenEvictionRunsMillis: 60000
-    minEvictableIdleTimeMillis: 300000
-    validationQuery: SELECT 1 FROM DUAL
-    testWhileIdle: true
-    testOnBorrow: false
-    testOnReturn: false
-    poolPreparedStatements: true
-    maxPoolPreparedStatementPerConnectionSize: 20
-    connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
-    filters: stat,slf4j
+  profiles:
+    active: dev
 
 
 

+ 2 - 16
src/main/resources/mapper/WorkPackerMapper.xml

@@ -16,15 +16,8 @@
         operator,
         remark,
         file_path,
-        insert_time,
-        create_by,
-        create_user_id,
         create_time,
-        update_by,
-        update_user_id,
-        update_time,
-        data_scope,
-        del_flag
+        insert_time
         )
         VALUES
         <foreach collection="data" item="item" separator=",">
@@ -41,15 +34,8 @@
             #{item.operator},
             #{item.remark},
             #{item.filePath},
-            #{item.insertTime},
-            #{item.createBy},
-            #{item.createUserId},
             #{item.createTime},
-            #{item.updateBy},
-            #{item.updateUserId},
-            #{item.updateTime},
-            #{item.dataScope},
-            #{item.delFlag}
+            #{item.insertTime}
             )
         </foreach>