diff --git a/nflg-wms-admin/pom.xml b/nflg-wms-admin/pom.xml index 63413daf..add938e7 100644 --- a/nflg-wms-admin/pom.xml +++ b/nflg-wms-admin/pom.xml @@ -34,33 +34,6 @@ org.springframework.boot spring-boot-starter-data-ldap - - - - - - - - - - - - - - - - - - - - - - - - - - - org.junit.jupiter junit-jupiter @@ -100,6 +73,16 @@ org.apache.commons commons-lang3 + + tech.powerjob + powerjob-worker-spring-boot-starter + 5.1.1 + + + tech.powerjob + powerjob-client + 5.1.1 + diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/AdminApplication.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/AdminApplication.java index eeb1186b..b69f74aa 100644 --- a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/AdminApplication.java +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/AdminApplication.java @@ -18,16 +18,8 @@ public class AdminApplication { public static void main(String[] args) { SpringApplication.run(AdminApplication.class, args); log.info("【管理端】已启动"); -// log.info("当前日志实现类:" + LoggerFactory.getILoggerFactory().getClass().getName()); log.info("---------------------- Sa-Token SSO 模式二 Client 端启动成功 ----------------------"); log.info("配置信息:" + SaSsoManager.getClientConfig()); - -// LdapService ldapService = new LdapService(); -// ldapService.init("192.168.0.2", 389, "commpub@nflg", "Nflg2019#", "OU=福建南方路面机械有限公司,DC=nflg"); -// LdapDepartmentDTO department = ldapService.getDepartmentTree("OU=产品事业部"); -// System.out.println(JSONUtil.toJsonStr(department)); -// List users = ldapService.getUsers(); -// System.out.println(JSONUtil.toJsonStr(users)); } } \ No newline at end of file diff --git a/nflg-wms-admin/src/main/java/com/nflg/wms/admin/config/PowerJobClientConfig.java b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/config/PowerJobClientConfig.java new file mode 100644 index 00000000..2a5ede9e --- /dev/null +++ b/nflg-wms-admin/src/main/java/com/nflg/wms/admin/config/PowerJobClientConfig.java @@ -0,0 +1,24 @@ +package com.nflg.wms.admin.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import tech.powerjob.client.PowerJobClient; + +@Configuration +public class PowerJobClientConfig { + + @Value("${powerjob.worker.server-address}") + private String serverAddress; + + @Value("${powerjob.worker.app-name}") + private String appName; + + @Value("${powerjob.client.password}") + private String password; + + @Bean + public PowerJobClient initPowerJobClient() { + return new PowerJobClient(serverAddress, appName, password); + } +} diff --git a/nflg-wms-admin/src/main/resources/logback-spring.xml b/nflg-wms-admin/src/main/resources/logback-spring.xml index 6a1d7c59..5f6b9435 100644 --- a/nflg-wms-admin/src/main/resources/logback-spring.xml +++ b/nflg-wms-admin/src/main/resources/logback-spring.xml @@ -32,10 +32,27 @@ + + ${logDir}/powerjob-worker.log + + ${logDir}/powerjob-worker.%d{yyyy-MM-dd}.log + 7 + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + UTF-8 + + true + + + + + + diff --git a/nflg-wms-starter/pom.xml b/nflg-wms-starter/pom.xml index 3adec75c..c1a7ed38 100644 --- a/nflg-wms-starter/pom.xml +++ b/nflg-wms-starter/pom.xml @@ -119,6 +119,11 @@ com.aliyun.oss aliyun-sdk-oss + + io.minio + minio + 8.5.17 + diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/config/MinIOConfig.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/config/MinIOConfig.java new file mode 100644 index 00000000..789ba52a --- /dev/null +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/config/MinIOConfig.java @@ -0,0 +1,53 @@ +package com.nflg.wms.starter.config; + +import io.minio.BucketExistsArgs; +import io.minio.MakeBucketArgs; +import io.minio.MinioClient; +import jakarta.annotation.PreDestroy; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Slf4j +@Configuration +@ConditionalOnProperty(name = "file.upload.type", havingValue = "minio") +public class MinIOConfig { + + @Value("${minio.endpoint}") + private String endpoint; + + @Value("${minio.access-key}") + private String accessKey; + + @Value("${minio.secret-key}") + private String secretKey; + + @Value("${minio.bucket-name}") + private String bucketName; + + private MinioClient client; + + @Bean + public MinioClient initMinioClient() throws Exception{ + client= MinioClient.builder() + .endpoint(endpoint) + .credentials(accessKey, secretKey) + .build(); + // 自动创建 bucket(如果不存在) + if (!client.bucketExists(BucketExistsArgs.builder().bucket(bucketName).build())) { + client.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build()); + } + return client; + } + + @PreDestroy + public void destroy() { + try { + client.close(); + } catch (Exception e) { + log.error("MinIO 销毁出错", e); + } + } +} diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/FileUploadService.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/FileUploadService.java index e6f807a1..867d8f0f 100644 --- a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/FileUploadService.java +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/FileUploadService.java @@ -15,7 +15,7 @@ public interface FileUploadService { * @return 可访问的url * @throws IOException */ - String upload(String filePath, MultipartFile file) throws IOException; + String upload(String filePath, MultipartFile file) throws Exception; /** * 上传文件 @@ -25,6 +25,6 @@ public interface FileUploadService { * @return 可访问的url * @throws IOException */ - String upload(String filePath, InputStream stream) throws IOException; + String upload(String filePath, InputStream stream) throws Exception; } \ No newline at end of file diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/MinIOServiceImpl.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/MinIOServiceImpl.java new file mode 100644 index 00000000..a252cdeb --- /dev/null +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/MinIOServiceImpl.java @@ -0,0 +1,44 @@ +package com.nflg.wms.starter.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.nflg.wms.starter.service.FileUploadService; +import io.minio.MinioClient; +import io.minio.PutObjectArgs; +import jakarta.annotation.Resource; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.InputStream; + +@Slf4j +@Service +@ConditionalOnProperty(name = "file.upload.type", havingValue = "minio") +public class MinIOServiceImpl implements FileUploadService { + + @Value("${minio.bucket-name}") + private String bucketName; + + @Value("${minio.endpoint}") + private String domain; + + @Resource + private MinioClient minioClient; + + @Override + public String upload(String filePath, MultipartFile file) throws Exception { + return upload(filePath, file.getInputStream()); + } + + @Override + public String upload(String filePath, InputStream stream) throws Exception { + minioClient.putObject(PutObjectArgs.builder() + .bucket(bucketName) + .object(filePath) + .stream(stream, stream.available(), -1) + .build()); + return StrUtil.format("{}/{}", domain, filePath); + } +} diff --git a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/OSSFileUploadService.java b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/OSSFileUploadServiceImpl.java similarity index 95% rename from nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/OSSFileUploadService.java rename to nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/OSSFileUploadServiceImpl.java index 563ee0a4..20a2f356 100644 --- a/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/OSSFileUploadService.java +++ b/nflg-wms-starter/src/main/java/com/nflg/wms/starter/service/impl/OSSFileUploadServiceImpl.java @@ -18,7 +18,7 @@ import java.io.InputStream; @Service @ConditionalOnProperty(name = "file.upload.type", havingValue = "oss") @Slf4j -public class OSSFileUploadService implements FileUploadService { +public class OSSFileUploadServiceImpl implements FileUploadService { @Resource private OSS ossClient;