amazon
This commit is contained in:
commit
578a0edefc
18
.editorconfig
Normal file
18
.editorconfig
Normal file
@ -0,0 +1,18 @@
|
||||
# http://editorconfig.org
|
||||
root = true
|
||||
|
||||
# 空格替代Tab缩进在各种编辑工具下效果一致
|
||||
[*]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[*.{json,yml,yaml}]
|
||||
indent_size = 2
|
||||
|
||||
[*.md]
|
||||
insert_final_newline = false
|
||||
trim_trailing_whitespace = false
|
51
.gitignore
vendored
Normal file
51
.gitignore
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
######################################################################
|
||||
# Build Tools
|
||||
|
||||
.gradle
|
||||
/build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
/docker/
|
||||
/logs/
|
||||
|
||||
target/
|
||||
!.mvn/wrapper/maven-wrapper.jar
|
||||
|
||||
######################################################################
|
||||
# IDE
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
|
||||
### JRebel ###
|
||||
rebel.xml
|
||||
### NetBeans ###
|
||||
nbproject/private/
|
||||
build/*
|
||||
nbbuild/
|
||||
nbdist/
|
||||
.nb-gradle/
|
||||
|
||||
######################################################################
|
||||
# Others
|
||||
*.log
|
||||
*.xml.versionsBackup
|
||||
*.swp
|
||||
|
||||
!*/build/*.java
|
||||
!*/build/*.html
|
||||
!*/build/*.xml
|
||||
|
||||
.flattened-pom.xml
|
||||
|
||||
.lingma
|
23
.run/asinkj-auth.run.xml
Normal file
23
.run/asinkj-auth.run.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-auth" type="docker-deploy" factoryName="dockerfile" server-name="阿里云">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-auth:2.2.2" />
|
||||
<option name="containerName" value="asinkj-auth" />
|
||||
<option name="portBindings">
|
||||
<list>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="9210" />
|
||||
<option name="hostPort" value="9210" />
|
||||
</DockerPortBindingImpl>
|
||||
</list>
|
||||
</option>
|
||||
<option name="commandLineOptions" value="--network 1panel-network" />
|
||||
<option name="sourceFilePath" value="asinkj-auth/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2">
|
||||
<option name="Maven.BeforeRunTask" enabled="true" file="F:\Asinkj-Cloud\asinkj-auth/pom.xml" goal="package" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
23
.run/asinkj-gateway.run.xml
Normal file
23
.run/asinkj-gateway.run.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-gateway" type="docker-deploy" factoryName="dockerfile" server-name="阿里云">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-gateway:2.2.2" />
|
||||
<option name="containerName" value="asinkj-gateway" />
|
||||
<option name="portBindings">
|
||||
<list>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="8080" />
|
||||
<option name="hostPort" value="8080" />
|
||||
</DockerPortBindingImpl>
|
||||
</list>
|
||||
</option>
|
||||
<option name="commandLineOptions" value="--network 1panel-network" />
|
||||
<option name="sourceFilePath" value="asinkj-gateway/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2">
|
||||
<option name="Maven.BeforeRunTask" enabled="true" file="F:\Asinkj-Cloud\asinkj-gateway/pom.xml" goal="package" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
12
.run/asinkj-gen.run.xml
Normal file
12
.run/asinkj-gen.run.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-gen" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-gen:2.2.2" />
|
||||
<option name="buildOnly" value="true" />
|
||||
<option name="sourceFilePath" value="asinkj-modules/asinkj-gen/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
23
.run/asinkj-job.run.xml
Normal file
23
.run/asinkj-job.run.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-job" type="docker-deploy" factoryName="dockerfile" server-name="阿里云">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-job:2.2.2" />
|
||||
<option name="containerName" value="asinkj-job" />
|
||||
<option name="portBindings">
|
||||
<list>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="9203" />
|
||||
<option name="hostPort" value="9203" />
|
||||
</DockerPortBindingImpl>
|
||||
</list>
|
||||
</option>
|
||||
<option name="commandLineOptions" value="--network 1panel-network" />
|
||||
<option name="sourceFilePath" value="asinkj-modules/asinkj-job/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2">
|
||||
<option name="Maven.BeforeRunTask" enabled="true" file="$PROJECT_DIR$/asinkj-modules/asinkj-job/pom.xml" goal="package -Pprod" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
12
.run/asinkj-monitor.run.xml
Normal file
12
.run/asinkj-monitor.run.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-monitor" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-monitor:2.2.2" />
|
||||
<option name="buildOnly" value="true" />
|
||||
<option name="sourceFilePath" value="asinkj-visual/asinkj-monitor/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
27
.run/asinkj-nacos.run.xml
Normal file
27
.run/asinkj-nacos.run.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-nacos" type="docker-deploy" factoryName="dockerfile" server-name="阿里云">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-nacos:2.2.2" />
|
||||
<option name="containerName" value="asinkj-nacos" />
|
||||
<option name="portBindings">
|
||||
<list>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="8848" />
|
||||
<option name="hostPort" value="8848" />
|
||||
</DockerPortBindingImpl>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="9848" />
|
||||
<option name="hostPort" value="9848" />
|
||||
</DockerPortBindingImpl>
|
||||
</list>
|
||||
</option>
|
||||
<option name="commandLineOptions" value="--network 1panel-network" />
|
||||
<option name="sourceFilePath" value="asinkj-visual/asinkj-nacos/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2">
|
||||
<option name="Maven.BeforeRunTask" enabled="true" file="F:\Asinkj-Cloud-Plus\asinkj-visual\asinkj-nacos/pom.xml" goal="package" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
23
.run/asinkj-resource.run.xml
Normal file
23
.run/asinkj-resource.run.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-resource" type="docker-deploy" factoryName="dockerfile" server-name="阿里云">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-resource:2.2.2" />
|
||||
<option name="containerName" value="asinkj-resource" />
|
||||
<option name="portBindings">
|
||||
<list>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="9204" />
|
||||
<option name="hostPort" value="9204" />
|
||||
</DockerPortBindingImpl>
|
||||
</list>
|
||||
</option>
|
||||
<option name="commandLineOptions" value="--network 1panel-network" />
|
||||
<option name="sourceFilePath" value="asinkj-modules/asinkj-resource/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2">
|
||||
<option name="Maven.BeforeRunTask" enabled="true" file="F:\Asinkj-Cloud\asinkj-modules\asinkj-resource/pom.xml" goal="package" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
12
.run/asinkj-seata-server.run.xml
Normal file
12
.run/asinkj-seata-server.run.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-seata-server" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-seata-server:2.2.2" />
|
||||
<option name="buildOnly" value="true" />
|
||||
<option name="sourceFilePath" value="asinkj-visual/asinkj-seata-server/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
12
.run/asinkj-sentinel-dashboard.run.xml
Normal file
12
.run/asinkj-sentinel-dashboard.run.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-sentinel-dashboard" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-sentinel-dashboard:2.2.2" />
|
||||
<option name="buildOnly" value="true" />
|
||||
<option name="sourceFilePath" value="asinkj-visual/asinkj-sentinel-dashboard/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
27
.run/asinkj-snailjob-server.run.xml
Normal file
27
.run/asinkj-snailjob-server.run.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-snailjob-server" type="docker-deploy" factoryName="dockerfile" server-name="阿里云">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-snailjob-server:2.2.2" />
|
||||
<option name="containerName" value="asinkj-snailjob-server" />
|
||||
<option name="portBindings">
|
||||
<list>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="8800" />
|
||||
<option name="hostPort" value="8800" />
|
||||
</DockerPortBindingImpl>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="17888" />
|
||||
<option name="hostPort" value="17888" />
|
||||
</DockerPortBindingImpl>
|
||||
</list>
|
||||
</option>
|
||||
<option name="commandLineOptions" value="--network 1panel-network" />
|
||||
<option name="sourceFilePath" value="asinkj-visual/asinkj-snailjob-server/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2">
|
||||
<option name="Maven.BeforeRunTask" enabled="true" file="F:\Asinkj-Cloud\asinkj-visual\asinkj-snailjob-server/pom.xml" goal="package" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
23
.run/asinkj-system.run.xml
Normal file
23
.run/asinkj-system.run.xml
Normal file
@ -0,0 +1,23 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-system" type="docker-deploy" factoryName="dockerfile" server-name="阿里云">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-system:2.2.2" />
|
||||
<option name="containerName" value="asinkj-system" />
|
||||
<option name="portBindings">
|
||||
<list>
|
||||
<DockerPortBindingImpl>
|
||||
<option name="containerPort" value="9201" />
|
||||
<option name="hostPort" value="9201" />
|
||||
</DockerPortBindingImpl>
|
||||
</list>
|
||||
</option>
|
||||
<option name="commandLineOptions" value="--network 1panel-network" />
|
||||
<option name="sourceFilePath" value="asinkj-modules/asinkj-system/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2">
|
||||
<option name="Maven.BeforeRunTask" enabled="true" file="F:\Asinkj-Cloud\asinkj-modules\asinkj-system/pom.xml" goal="package" />
|
||||
</method>
|
||||
</configuration>
|
||||
</component>
|
12
.run/asinkj-workflow.run.xml
Normal file
12
.run/asinkj-workflow.run.xml
Normal file
@ -0,0 +1,12 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="asinkj-workflow" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
|
||||
<deployment type="dockerfile">
|
||||
<settings>
|
||||
<option name="imageTag" value="asinkj/asinkj-workflow:2.2.2" />
|
||||
<option name="buildOnly" value="true" />
|
||||
<option name="sourceFilePath" value="asinkj-modules/asinkj-workflow/Dockerfile" />
|
||||
</settings>
|
||||
</deployment>
|
||||
<method v="2" />
|
||||
</configuration>
|
||||
</component>
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 AsinKj-Cloud-Plus
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
27
asinkj-api/asinkj-api-amz/pom.xml
Normal file
27
asinkj-api/asinkj-api-amz/pom.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>asinkj-api-amz</artifactId>
|
||||
|
||||
<description>
|
||||
asinkj-api-amz amz服务接口模块
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- AsinKj Common Core-->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</project>
|
@ -0,0 +1,18 @@
|
||||
package org.asinkj.amz.api;
|
||||
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public interface RemoteFBADataService {
|
||||
void pullAmzFbaDataToken(String startDate, String endDate) throws Exception;
|
||||
|
||||
void updateAmzFbaDataToken() throws Exception;
|
||||
|
||||
void pullPurchaseOrderData(String startDate, String endDate) throws Exception;
|
||||
|
||||
void updatePurchaseOrderSeller(String startDate, String endDate) throws Exception;
|
||||
|
||||
void quoteReminder() throws Exception;
|
||||
|
||||
void updateRemaind();
|
||||
}
|
52
asinkj-api/asinkj-api-bom/pom.xml
Normal file
52
asinkj-api/asinkj-api-bom/pom.xml
Normal file
@ -0,0 +1,52 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-bom</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<version>${revision}</version>
|
||||
|
||||
<description>
|
||||
asinkj-api-bom api依赖项
|
||||
</description>
|
||||
|
||||
<properties>
|
||||
<revision>2.2.2</revision>
|
||||
</properties>
|
||||
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<!-- 系统接口 -->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-system</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 资源服务接口 -->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-resource</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- workflow接口 -->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-workflow</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-amz</artifactId>
|
||||
<version>${revision}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
</project>
|
28
asinkj-api/asinkj-api-resource/pom.xml
Normal file
28
asinkj-api/asinkj-api-resource/pom.xml
Normal file
@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>asinkj-api-resource</artifactId>
|
||||
|
||||
<description>
|
||||
asinkj-api-resource 资源服务接口模块
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- AsinKj Common Core-->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,38 @@
|
||||
package org.asinkj.resource.api;
|
||||
|
||||
import org.asinkj.common.core.exception.ServiceException;
|
||||
import org.asinkj.resource.api.domain.RemoteFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 文件服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteFileService {
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param file 文件信息
|
||||
* @return 结果
|
||||
*/
|
||||
RemoteFile upload(String name, String originalFilename, String contentType, byte[] file) throws ServiceException;
|
||||
|
||||
/**
|
||||
* 通过ossId查询对应的url
|
||||
*
|
||||
* @param ossIds ossId串逗号分隔
|
||||
* @return url串逗号分隔
|
||||
*/
|
||||
String selectUrlByIds(String ossIds);
|
||||
|
||||
/**
|
||||
* 通过ossId查询列表
|
||||
*
|
||||
* @param ossIds ossId串逗号分隔
|
||||
* @return 列表
|
||||
*/
|
||||
List<RemoteFile> selectByIds(String ossIds);
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package org.asinkj.resource.api;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.asinkj.common.core.utils.StringUtils;
|
||||
import org.asinkj.resource.api.domain.RemoteFile;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 文件服务(降级处理)
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
@Slf4j
|
||||
public class RemoteFileServiceMock implements RemoteFileService {
|
||||
|
||||
/**
|
||||
* 上传文件
|
||||
*
|
||||
* @param file 文件信息
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public RemoteFile upload(String name, String originalFilename, String contentType, byte[] file) {
|
||||
log.warn("服务调用异常 -> 降级处理");
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过ossId查询对应的url
|
||||
*
|
||||
* @param ossIds ossId串逗号分隔
|
||||
* @return url串逗号分隔
|
||||
*/
|
||||
@Override
|
||||
public String selectUrlByIds(String ossIds) {
|
||||
log.warn("服务调用异常 -> 降级处理");
|
||||
return StringUtils.EMPTY;
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过ossId查询列表
|
||||
*
|
||||
* @param ossIds ossId串逗号分隔
|
||||
* @return 列表
|
||||
*/
|
||||
@Override
|
||||
public List<RemoteFile> selectByIds(String ossIds) {
|
||||
log.warn("服务调用异常 -> 降级处理");
|
||||
return List.of();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
package org.asinkj.resource.api;
|
||||
|
||||
import org.asinkj.common.core.exception.ServiceException;
|
||||
|
||||
/**
|
||||
* 邮件服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteMailService {
|
||||
|
||||
/**
|
||||
* 发送邮件
|
||||
*
|
||||
* @param to 接收人
|
||||
* @param subject 标题
|
||||
* @param text 内容
|
||||
*/
|
||||
void send(String to, String subject, String text) throws ServiceException;
|
||||
|
||||
}
|
@ -0,0 +1,24 @@
|
||||
package org.asinkj.resource.api;
|
||||
|
||||
/**
|
||||
* 消息服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteMessageService {
|
||||
|
||||
/**
|
||||
* 发送消息
|
||||
*
|
||||
* @param sessionKey session主键 一般为用户id
|
||||
* @param message 消息文本
|
||||
*/
|
||||
void publishMessage(Long sessionKey, String message);
|
||||
|
||||
/**
|
||||
* 发布订阅的消息(群发)
|
||||
*
|
||||
* @param message 消息内容
|
||||
*/
|
||||
void publishAll(String message);
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package org.asinkj.resource.api;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 消息服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class RemoteMessageServiceStub implements RemoteMessageService {
|
||||
|
||||
private final RemoteMessageService remoteMessageService;
|
||||
|
||||
/**
|
||||
* 发送消息
|
||||
*
|
||||
* @param sessionKey session主键 一般为用户id
|
||||
* @param message 消息文本
|
||||
*/
|
||||
@Override
|
||||
public void publishMessage(Long sessionKey, String message) {
|
||||
try {
|
||||
remoteMessageService.publishMessage(sessionKey, message);
|
||||
} catch (Exception e) {
|
||||
log.warn("推送功能未开启或服务未找到");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发布订阅的消息(群发)
|
||||
*
|
||||
* @param message 消息内容
|
||||
*/
|
||||
@Override
|
||||
public void publishAll(String message) {
|
||||
try {
|
||||
remoteMessageService.publishAll(message);
|
||||
} catch (Exception e) {
|
||||
log.warn("推送功能未开启或服务未找到");
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,145 @@
|
||||
package org.asinkj.resource.api;
|
||||
|
||||
import org.asinkj.resource.api.domain.RemoteSms;
|
||||
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 短信服务
|
||||
*
|
||||
* @author Feng
|
||||
*/
|
||||
public interface RemoteSmsService {
|
||||
|
||||
/**
|
||||
* 同步方法:发送固定消息模板短信
|
||||
*
|
||||
* @param phone 目标手机号
|
||||
* @param message 短信内容
|
||||
* @return 封装了短信发送结果的 RemoteSms 对象
|
||||
*/
|
||||
RemoteSms sendMessage(String phone, String message);
|
||||
|
||||
/**
|
||||
* 同步方法:发送固定消息模板多模板参数短信
|
||||
*
|
||||
* @param phone 目标手机号
|
||||
* @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序
|
||||
* @return 封装了短信发送结果的 RemoteSms 对象
|
||||
*/
|
||||
RemoteSms sendMessage(String phone, LinkedHashMap<String, String> messages);
|
||||
|
||||
/**
|
||||
* 同步方法:使用自定义模板发送短信
|
||||
*
|
||||
* @param phone 目标手机号
|
||||
* @param templateId 短信模板ID
|
||||
* @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序
|
||||
* @return 封装了短信发送结果的 RemoteSms 对象
|
||||
*/
|
||||
RemoteSms sendMessage(String phone, String templateId, LinkedHashMap<String, String> messages);
|
||||
|
||||
/**
|
||||
* 同步方法:群发固定模板短信
|
||||
*
|
||||
* @param phones 目标手机号列表(1~1000)
|
||||
* @param message 短信内容
|
||||
* @return 封装了短信发送结果的 RemoteSms 对象
|
||||
*/
|
||||
RemoteSms messageTexting(List<String> phones, String message);
|
||||
|
||||
/**
|
||||
* 同步方法:使用自定义模板群发短信
|
||||
*
|
||||
* @param phones 目标手机号列表(1~1000)(1~1000)
|
||||
* @param templateId 短信模板ID
|
||||
* @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序
|
||||
* @return 封装了短信发送结果的 RemoteSms 对象
|
||||
*/
|
||||
RemoteSms messageTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages);
|
||||
|
||||
/**
|
||||
* 异步方法:发送固定消息模板短信
|
||||
*
|
||||
* @param phone 目标手机号
|
||||
* @param message 短信内容
|
||||
*/
|
||||
void sendMessageAsync(String phone, String message);
|
||||
|
||||
/**
|
||||
* 异步方法:使用自定义模板发送短信
|
||||
*
|
||||
* @param phone 目标手机号
|
||||
* @param templateId 短信模板ID
|
||||
* @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序
|
||||
*/
|
||||
void sendMessageAsync(String phone, String templateId, LinkedHashMap<String, String> messages);
|
||||
|
||||
/**
|
||||
* 延迟发送:发送固定消息模板短信
|
||||
*
|
||||
* @param phone 目标手机号
|
||||
* @param message 短信内容
|
||||
* @param delayedTime 延迟发送时间(毫秒)
|
||||
*/
|
||||
void delayMessage(String phone, String message, Long delayedTime);
|
||||
|
||||
/**
|
||||
* 延迟发送:使用自定义模板发送定时短信
|
||||
*
|
||||
* @param phone 目标手机号
|
||||
* @param templateId 短信模板ID
|
||||
* @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序
|
||||
* @param delayedTime 延迟发送时间(毫秒)
|
||||
*/
|
||||
void delayMessage(String phone, String templateId, LinkedHashMap<String, String> messages, Long delayedTime);
|
||||
|
||||
/**
|
||||
* 延迟群发:群发延迟短信
|
||||
*
|
||||
* @param phones 目标手机号列表(1~1000)
|
||||
* @param message 短信内容
|
||||
* @param delayedTime 延迟发送时间(毫秒)
|
||||
*/
|
||||
void delayMessageTexting(List<String> phones, String message, Long delayedTime);
|
||||
|
||||
/**
|
||||
* 延迟群发:使用自定义模板发送群体延迟短信
|
||||
*
|
||||
* @param phones 目标手机号列表(1~1000)
|
||||
* @param templateId 短信模板ID
|
||||
* @param messages 短信模板参数,使用 LinkedHashMap 以保持参数顺序
|
||||
* @param delayedTime 延迟发送时间(毫秒)
|
||||
*/
|
||||
void delayMessageTexting(List<String> phones, String templateId, LinkedHashMap<String, String> messages, Long delayedTime);
|
||||
|
||||
/**
|
||||
* 加入黑名单
|
||||
*
|
||||
* @param phone 手机号
|
||||
*/
|
||||
void addBlacklist(String phone);
|
||||
|
||||
/**
|
||||
* 加入黑名单
|
||||
*
|
||||
* @param phones 手机号列表
|
||||
*/
|
||||
void addBlacklist(List<String> phones);
|
||||
|
||||
/**
|
||||
* 移除黑名单
|
||||
*
|
||||
* @param phone 手机号
|
||||
*/
|
||||
void removeBlacklist(String phone);
|
||||
|
||||
/**
|
||||
* 移除黑名单
|
||||
*
|
||||
* @param phones 手机号
|
||||
*/
|
||||
void removeBlacklist(List<String> phones);
|
||||
|
||||
}
|
@ -0,0 +1,44 @@
|
||||
package org.asinkj.resource.api.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 文件信息
|
||||
*
|
||||
* @author asinkj
|
||||
*/
|
||||
@Data
|
||||
public class RemoteFile implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* oss主键
|
||||
*/
|
||||
private Long ossId;
|
||||
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 文件地址
|
||||
*/
|
||||
private String url;
|
||||
|
||||
/**
|
||||
* 原名
|
||||
*/
|
||||
private String originalName;
|
||||
|
||||
/**
|
||||
* 文件后缀名
|
||||
*/
|
||||
private String fileSuffix;
|
||||
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package org.asinkj.resource.api.domain;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 文件信息
|
||||
*
|
||||
* @author asinkj
|
||||
*/
|
||||
@Data
|
||||
public class RemoteSms implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 是否成功
|
||||
*/
|
||||
private Boolean success;
|
||||
|
||||
/**
|
||||
* 配置标识名 如未配置取对应渠道名例如 Alibaba
|
||||
*/
|
||||
private String configId;
|
||||
|
||||
/**
|
||||
* 厂商原返回体
|
||||
* <p>
|
||||
* 可自行转换为 SDK 对应的 SendSmsResponse
|
||||
*/
|
||||
private String response;
|
||||
|
||||
}
|
33
asinkj-api/asinkj-api-system/pom.xml
Normal file
33
asinkj-api/asinkj-api-system/pom.xml
Normal file
@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>asinkj-api-system</artifactId>
|
||||
|
||||
<description>
|
||||
asinkj-api-system系统接口模块
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- AsinKj Common Core-->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-core</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-excel</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,20 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
import org.asinkj.system.api.domain.vo.RemoteClientVo;
|
||||
|
||||
/**
|
||||
* 客户端服务
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
public interface RemoteClientService {
|
||||
|
||||
/**
|
||||
* 根据客户端id获取客户端详情
|
||||
*
|
||||
* @param clientId 客户端id
|
||||
* @return 客户端对象
|
||||
*/
|
||||
RemoteClientVo queryByClientId(String clientId);
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
/**
|
||||
* 配置服务
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
public interface RemoteConfigService {
|
||||
|
||||
/**
|
||||
* 获取注册开关
|
||||
* @param tenantId 租户id
|
||||
* @return true开启,false关闭
|
||||
*/
|
||||
boolean selectRegisterEnabled(String tenantId);
|
||||
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
/**
|
||||
* 数据权限服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteDataScopeService {
|
||||
|
||||
/**
|
||||
* 获取角色自定义权限语句
|
||||
*
|
||||
* @param roleId 角色ID
|
||||
* @return 返回角色的自定义权限语句,如果没有找到则返回 null
|
||||
*/
|
||||
String getRoleCustom(Long roleId);
|
||||
|
||||
/**
|
||||
* 获取部门和下级权限语句
|
||||
*
|
||||
* @param deptId 部门ID
|
||||
* @return 返回部门及其下级的权限语句,如果没有找到则返回 null
|
||||
*/
|
||||
String getDeptAndChild(Long deptId);
|
||||
|
||||
}
|
@ -0,0 +1,18 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
/**
|
||||
* 部门服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteDeptService {
|
||||
|
||||
/**
|
||||
* 通过部门ID查询部门名称
|
||||
*
|
||||
* @param deptIds 部门ID串逗号分隔
|
||||
* @return 部门名称串逗号分隔
|
||||
*/
|
||||
String selectDeptNameByIds(String deptIds);
|
||||
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
import org.asinkj.system.api.domain.vo.RemoteDictDataVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 字典服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteDictService {
|
||||
|
||||
/**
|
||||
* 根据字典类型查询字典数据
|
||||
*
|
||||
* @param dictType 字典类型
|
||||
* @return 字典数据集合信息
|
||||
*/
|
||||
List<RemoteDictDataVo> selectDictDataByType(String dictType);
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
import org.asinkj.system.api.domain.bo.RemoteLogininforBo;
|
||||
import org.asinkj.system.api.domain.bo.RemoteOperLogBo;
|
||||
|
||||
/**
|
||||
* 日志服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteLogService {
|
||||
|
||||
/**
|
||||
* 保存系统日志
|
||||
*
|
||||
* @param sysOperLog 日志实体
|
||||
*/
|
||||
void saveLog(RemoteOperLogBo sysOperLog);
|
||||
|
||||
/**
|
||||
* 保存访问记录
|
||||
*
|
||||
* @param sysLogininfor 访问实体
|
||||
*/
|
||||
void saveLogininfor(RemoteLogininforBo sysLogininfor);
|
||||
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
import org.asinkj.system.api.domain.bo.RemoteSocialBo;
|
||||
import org.asinkj.system.api.domain.vo.RemoteSocialVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 社会化关系服务
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
public interface RemoteSocialService {
|
||||
|
||||
/**
|
||||
* 根据 authId 查询用户授权信息
|
||||
*
|
||||
* @param authId 认证id
|
||||
* @return 授权信息
|
||||
*/
|
||||
List<RemoteSocialVo> selectByAuthId(String authId);
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
* @param bo 社会化关系业务对象
|
||||
*/
|
||||
List<RemoteSocialVo> queryList(RemoteSocialBo bo);
|
||||
|
||||
/**
|
||||
* 保存社会化关系
|
||||
*
|
||||
* @param bo 社会化关系业务对象
|
||||
*/
|
||||
void insertByBo(RemoteSocialBo bo);
|
||||
|
||||
/**
|
||||
* 更新社会化关系
|
||||
*
|
||||
* @param bo 社会化关系业务对象
|
||||
*/
|
||||
void updateByBo(RemoteSocialBo bo);
|
||||
|
||||
/**
|
||||
* 删除社会化关系
|
||||
*
|
||||
* @param socialId 社会化关系ID
|
||||
* @return 结果
|
||||
*/
|
||||
Boolean deleteWithValidById(Long socialId);
|
||||
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
|
||||
import org.asinkj.system.api.domain.vo.RemoteTenantVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 租户服务
|
||||
*
|
||||
* @author zhujie
|
||||
*/
|
||||
public interface RemoteTenantService {
|
||||
|
||||
/**
|
||||
* 根据租户id获取租户详情
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
RemoteTenantVo queryByTenantId(String tenantId);
|
||||
|
||||
/**
|
||||
* 获取租户列表
|
||||
* @return 结果
|
||||
*/
|
||||
List<RemoteTenantVo> queryList();
|
||||
|
||||
}
|
@ -0,0 +1,156 @@
|
||||
package org.asinkj.system.api;
|
||||
|
||||
import org.asinkj.common.core.exception.ServiceException;
|
||||
import org.asinkj.common.core.exception.user.UserException;
|
||||
import org.asinkj.system.api.domain.bo.RemoteUserBo;
|
||||
import org.asinkj.system.api.domain.vo.RemoteUserVo;
|
||||
import org.asinkj.system.api.model.LoginUser;
|
||||
import org.asinkj.system.api.model.XcxLoginUser;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户服务
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
public interface RemoteUserService {
|
||||
|
||||
/**
|
||||
* 通过用户名查询用户信息
|
||||
*
|
||||
* @param username 用户名
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
LoginUser getUserInfo(String username, String tenantId) throws UserException;
|
||||
|
||||
LoginUser getUserInfoWithNickName(String nickName) throws UserException;
|
||||
|
||||
/**
|
||||
* 通过用户id查询用户信息
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
LoginUser getUserInfo(Long userId, String tenantId) throws UserException;
|
||||
|
||||
/**
|
||||
* 通过手机号查询用户信息
|
||||
*
|
||||
* @param phonenumber 手机号
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
LoginUser getUserInfoByPhonenumber(String phonenumber, String tenantId) throws UserException;
|
||||
|
||||
/**
|
||||
* 通过邮箱查询用户信息
|
||||
*
|
||||
* @param email 邮箱
|
||||
* @param tenantId 租户id
|
||||
* @return 结果
|
||||
*/
|
||||
LoginUser getUserInfoByEmail(String email, String tenantId) throws UserException;
|
||||
|
||||
/**
|
||||
* 通过openid查询用户信息
|
||||
*
|
||||
* @param openid openid
|
||||
* @return 结果
|
||||
*/
|
||||
XcxLoginUser getUserInfoByOpenid(String openid) throws UserException;
|
||||
|
||||
/**
|
||||
* 注册用户信息
|
||||
*
|
||||
* @param remoteUserBo 用户信息
|
||||
* @return 结果
|
||||
*/
|
||||
Boolean registerUserInfo(RemoteUserBo remoteUserBo) throws UserException, ServiceException;
|
||||
|
||||
/**
|
||||
* 通过userId查询用户账户
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return 结果
|
||||
*/
|
||||
String selectUserNameById(Long userId);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户昵称
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return 结果
|
||||
*/
|
||||
String selectNicknameById(Long userId);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户账户
|
||||
*
|
||||
* @param userIds 用户ID 多个用逗号隔开
|
||||
* @return 用户名称
|
||||
*/
|
||||
String selectNicknameByIds(String userIds);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户手机号
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return 用户手机号
|
||||
*/
|
||||
String selectPhonenumberById(Long userId);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户邮箱
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return 用户邮箱
|
||||
*/
|
||||
String selectEmailById(Long userId);
|
||||
|
||||
/**
|
||||
* 更新用户信息
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param ip IP地址
|
||||
*/
|
||||
void recordLoginInfo(Long userId, String ip);
|
||||
|
||||
|
||||
/**
|
||||
* 更新用户信息
|
||||
*
|
||||
* @param userId 用户ID
|
||||
* @param openId openId
|
||||
*/
|
||||
void recordOpenId(Long userId, String openId);
|
||||
|
||||
/**
|
||||
* 通过用户ID查询用户列表
|
||||
*
|
||||
* @param userIds 用户ids
|
||||
* @return 用户列表
|
||||
*/
|
||||
List<RemoteUserVo> selectListByIds(List<Long> userIds);
|
||||
|
||||
/**
|
||||
* 通过角色ID查询用户ID
|
||||
*
|
||||
* @param roleIds 角色ids
|
||||
* @return 用户ids
|
||||
*/
|
||||
List<Long> selectUserIdsByRoleIds(List<Long> roleIds);
|
||||
|
||||
|
||||
/**
|
||||
* 通过角色ID查询用户ID
|
||||
*
|
||||
* @param roleIds 角色ids
|
||||
* @return 用户ids
|
||||
*/
|
||||
List<String> selectUserOpenIdsByRoleIds(List<Long> roleIds);
|
||||
|
||||
List<RemoteUserVo> selectUserByRoleIds(List<Long> roleIds);
|
||||
}
|
@ -0,0 +1,71 @@
|
||||
package org.asinkj.system.api.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 当前在线会话
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class SysUserOnline implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 会话编号
|
||||
*/
|
||||
private String tokenId;
|
||||
|
||||
/**
|
||||
* 部门名称
|
||||
*/
|
||||
private String deptName;
|
||||
|
||||
/**
|
||||
* 用户名称
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 客户端
|
||||
*/
|
||||
private String clientKey;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceType;
|
||||
|
||||
/**
|
||||
* 登录IP地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 登录地址
|
||||
*/
|
||||
private String loginLocation;
|
||||
|
||||
/**
|
||||
* 浏览器类型
|
||||
*/
|
||||
private String browser;
|
||||
|
||||
/**
|
||||
* 操作系统
|
||||
*/
|
||||
private String os;
|
||||
|
||||
/**
|
||||
* 登录时间
|
||||
*/
|
||||
private Long loginTime;
|
||||
|
||||
}
|
@ -0,0 +1,89 @@
|
||||
package org.asinkj.system.api.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 系统访问记录表 sys_logininfor
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class RemoteLogininforBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 访问ID
|
||||
*/
|
||||
private Long infoId;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 用户账号
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 客户端
|
||||
*/
|
||||
private String clientKey;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceType;
|
||||
|
||||
/**
|
||||
* 登录IP地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 登录地点
|
||||
*/
|
||||
private String loginLocation;
|
||||
|
||||
/**
|
||||
* 浏览器类型
|
||||
*/
|
||||
private String browser;
|
||||
|
||||
/**
|
||||
* 操作系统
|
||||
*/
|
||||
private String os;
|
||||
|
||||
/**
|
||||
* 登录状态(0成功 1失败)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 提示消息
|
||||
*/
|
||||
private String msg;
|
||||
|
||||
/**
|
||||
* 访问时间
|
||||
*/
|
||||
private Date loginTime;
|
||||
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
private Map<String, Object> params = new HashMap<>();
|
||||
|
||||
}
|
@ -0,0 +1,119 @@
|
||||
package org.asinkj.system.api.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 操作日志记录表 oper_log
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class RemoteOperLogBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 日志主键
|
||||
*/
|
||||
private Long operId;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 模块标题
|
||||
*/
|
||||
private String title;
|
||||
|
||||
/**
|
||||
* 业务类型(0其它 1新增 2修改 3删除)
|
||||
*/
|
||||
private Integer businessType;
|
||||
|
||||
/**
|
||||
* 方法名称
|
||||
*/
|
||||
private String method;
|
||||
|
||||
/**
|
||||
* 请求方式
|
||||
*/
|
||||
private String requestMethod;
|
||||
|
||||
/**
|
||||
* 操作类别(0其它 1后台用户 2手机端用户)
|
||||
*/
|
||||
private Integer operatorType;
|
||||
|
||||
/**
|
||||
* 操作人员
|
||||
*/
|
||||
private String operName;
|
||||
|
||||
/**
|
||||
* 部门名称
|
||||
*/
|
||||
private String deptName;
|
||||
|
||||
/**
|
||||
* 请求URL
|
||||
*/
|
||||
private String operUrl;
|
||||
|
||||
/**
|
||||
* 主机地址
|
||||
*/
|
||||
private String operIp;
|
||||
|
||||
/**
|
||||
* 操作地点
|
||||
*/
|
||||
private String operLocation;
|
||||
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
private String operParam;
|
||||
|
||||
/**
|
||||
* 返回参数
|
||||
*/
|
||||
private String jsonResult;
|
||||
|
||||
/**
|
||||
* 操作状态(0正常 1异常)
|
||||
*/
|
||||
private Integer status;
|
||||
|
||||
/**
|
||||
* 错误消息
|
||||
*/
|
||||
private String errorMsg;
|
||||
|
||||
/**
|
||||
* 操作时间
|
||||
*/
|
||||
private Date operTime;
|
||||
|
||||
/**
|
||||
* 消耗时间
|
||||
*/
|
||||
private Long costTime;
|
||||
|
||||
/**
|
||||
* 请求参数
|
||||
*/
|
||||
private Map<String, Object> params = new HashMap<>();
|
||||
|
||||
}
|
@ -0,0 +1,129 @@
|
||||
package org.asinkj.system.api.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 社会化关系业务对象 sys_social
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class RemoteSocialBo implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 的唯一ID
|
||||
*/
|
||||
private String authId;
|
||||
|
||||
/**
|
||||
* 用户来源
|
||||
*/
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 用户的授权令牌
|
||||
*/
|
||||
private String accessToken;
|
||||
|
||||
/**
|
||||
* 用户的授权令牌的有效期,部分平台可能没有
|
||||
*/
|
||||
private int expireIn;
|
||||
|
||||
/**
|
||||
* 刷新令牌,部分平台可能没有
|
||||
*/
|
||||
private String refreshToken;
|
||||
|
||||
/**
|
||||
* 平台唯一id
|
||||
*/
|
||||
private String openId;
|
||||
|
||||
/**
|
||||
* 用户的 ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 平台的授权信息,部分平台可能没有
|
||||
*/
|
||||
private String accessCode;
|
||||
|
||||
/**
|
||||
* 用户的 unionid
|
||||
*/
|
||||
private String unionId;
|
||||
|
||||
/**
|
||||
* 授予的权限,部分平台可能没有
|
||||
*/
|
||||
private String scope;
|
||||
|
||||
/**
|
||||
* 授权的第三方账号
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 授权的第三方昵称
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 授权的第三方邮箱
|
||||
*/
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 授权的第三方头像地址
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
/**
|
||||
* 个别平台的授权信息,部分平台可能没有
|
||||
*/
|
||||
private String tokenType;
|
||||
|
||||
/**
|
||||
* id token,部分平台可能没有
|
||||
*/
|
||||
private String idToken;
|
||||
|
||||
/**
|
||||
* 小米平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String macAlgorithm;
|
||||
|
||||
/**
|
||||
* 小米平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String macKey;
|
||||
|
||||
/**
|
||||
* 用户的授权code,部分平台可能没有
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* Twitter平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String oauthToken;
|
||||
|
||||
/**
|
||||
* Twitter平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String oauthTokenSecret;
|
||||
|
||||
}
|
@ -0,0 +1,124 @@
|
||||
package org.asinkj.system.api.domain.bo;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.asinkj.common.core.constant.UserConstants;
|
||||
import org.asinkj.common.core.xss.Xss;
|
||||
|
||||
import jakarta.validation.constraints.Email;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.Size;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 用户信息业务对象 sys_user
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class RemoteUserBo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 部门ID
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 用户账号
|
||||
*/
|
||||
@Xss(message = "用户账号不能包含脚本字符")
|
||||
@NotBlank(message = "用户账号不能为空")
|
||||
@Size(min = 0, max = 30, message = "用户账号长度不能超过{max}个字符")
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 用户昵称
|
||||
*/
|
||||
@Xss(message = "用户昵称不能包含脚本字符")
|
||||
@Size(min = 0, max = 30, message = "用户昵称长度不能超过{max}个字符")
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 用户类型(sys_user系统用户)
|
||||
*/
|
||||
private String userType;
|
||||
|
||||
/**
|
||||
* 用户邮箱
|
||||
*/
|
||||
@Email(message = "邮箱格式不正确")
|
||||
@Size(min = 0, max = 50, message = "邮箱长度不能超过{max}个字符")
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 手机号码
|
||||
*/
|
||||
private String phonenumber;
|
||||
|
||||
/**
|
||||
* 用户性别(0男 1女 2未知)
|
||||
*/
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 头像地址
|
||||
*/
|
||||
private Long avatar;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
|
||||
/**
|
||||
* 帐号状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 最后登录IP
|
||||
*/
|
||||
private String loginIp;
|
||||
|
||||
/**
|
||||
* 最后登录时间
|
||||
*/
|
||||
private Date loginDate;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 数据权限 当前角色ID
|
||||
*/
|
||||
private Long roleId;
|
||||
|
||||
public RemoteUserBo(Long userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public boolean isSuperAdmin() {
|
||||
return UserConstants.SUPER_ADMIN_ID.equals(this.userId);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,70 @@
|
||||
package org.asinkj.system.api.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* 授权管理视图对象 sys_client
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
@Data
|
||||
public class RemoteClientVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 客户端id
|
||||
*/
|
||||
private String clientId;
|
||||
|
||||
/**
|
||||
* 客户端key
|
||||
*/
|
||||
private String clientKey;
|
||||
|
||||
/**
|
||||
* 客户端秘钥
|
||||
*/
|
||||
private String clientSecret;
|
||||
|
||||
/**
|
||||
* 授权类型
|
||||
*/
|
||||
private List<String> grantTypeList;
|
||||
|
||||
/**
|
||||
* 授权类型
|
||||
*/
|
||||
private String grantType;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceType;
|
||||
|
||||
/**
|
||||
* token活跃超时时间
|
||||
*/
|
||||
private Long activeTimeout;
|
||||
|
||||
/**
|
||||
* token固定超时时间
|
||||
*/
|
||||
private Long timeout;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
package org.asinkj.system.api.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 字典数据视图对象 sys_dict_data
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
@Data
|
||||
public class RemoteDictDataVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 字典编码
|
||||
*/
|
||||
private Long dictCode;
|
||||
|
||||
/**
|
||||
* 字典排序
|
||||
*/
|
||||
private Integer dictSort;
|
||||
|
||||
/**
|
||||
* 字典标签
|
||||
*/
|
||||
private String dictLabel;
|
||||
|
||||
/**
|
||||
* 字典键值
|
||||
*/
|
||||
private String dictValue;
|
||||
|
||||
/**
|
||||
* 字典类型
|
||||
*/
|
||||
private String dictType;
|
||||
|
||||
/**
|
||||
* 样式属性(其他样式扩展)
|
||||
*/
|
||||
private String cssClass;
|
||||
|
||||
/**
|
||||
* 表格回显样式
|
||||
*/
|
||||
private String listClass;
|
||||
|
||||
/**
|
||||
* 是否默认(Y是 N否)
|
||||
*/
|
||||
private String isDefault;
|
||||
|
||||
/**
|
||||
* 状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
}
|
@ -0,0 +1,135 @@
|
||||
package org.asinkj.system.api.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
|
||||
/**
|
||||
* 社会化关系视图对象 sys_social
|
||||
*
|
||||
* @author thiszhc
|
||||
*/
|
||||
@Data
|
||||
public class RemoteSocialVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 认证唯一ID
|
||||
*/
|
||||
private String authId;
|
||||
|
||||
/**
|
||||
* 用户来源
|
||||
*/
|
||||
private String source;
|
||||
|
||||
/**
|
||||
* 用户的授权令牌
|
||||
*/
|
||||
private String accessToken;
|
||||
|
||||
/**
|
||||
* 用户的授权令牌的有效期,部分平台可能没有
|
||||
*/
|
||||
private int expireIn;
|
||||
|
||||
/**
|
||||
* 刷新令牌,部分平台可能没有
|
||||
*/
|
||||
private String refreshToken;
|
||||
|
||||
/**
|
||||
* 用户的 open id
|
||||
*/
|
||||
private String openId;
|
||||
|
||||
/**
|
||||
* 授权的第三方账号
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 授权的第三方昵称
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 授权的第三方邮箱
|
||||
*/
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 授权的第三方头像地址
|
||||
*/
|
||||
private String avatar;
|
||||
|
||||
|
||||
/**
|
||||
* 平台的授权信息,部分平台可能没有
|
||||
*/
|
||||
private String accessCode;
|
||||
|
||||
/**
|
||||
* 用户的 unionid
|
||||
*/
|
||||
private String unionId;
|
||||
|
||||
/**
|
||||
* 授予的权限,部分平台可能没有
|
||||
*/
|
||||
private String scope;
|
||||
|
||||
/**
|
||||
* 个别平台的授权信息,部分平台可能没有
|
||||
*/
|
||||
private String tokenType;
|
||||
|
||||
/**
|
||||
* id token,部分平台可能没有
|
||||
*/
|
||||
private String idToken;
|
||||
|
||||
/**
|
||||
* 小米平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String macAlgorithm;
|
||||
|
||||
/**
|
||||
* 小米平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String macKey;
|
||||
|
||||
/**
|
||||
* 用户的授权code,部分平台可能没有
|
||||
*/
|
||||
private String code;
|
||||
|
||||
/**
|
||||
* Twitter平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String oauthToken;
|
||||
|
||||
/**
|
||||
* Twitter平台用户的附带属性,部分平台可能没有
|
||||
*/
|
||||
private String oauthTokenSecret;
|
||||
|
||||
}
|
@ -0,0 +1,91 @@
|
||||
package org.asinkj.system.api.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 租户视图对象
|
||||
*
|
||||
* @author zhujie
|
||||
*/
|
||||
@Data
|
||||
public class RemoteTenantVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 租户编号
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 联系人
|
||||
*/
|
||||
private String contactUserName;
|
||||
|
||||
/**
|
||||
* 联系电话
|
||||
*/
|
||||
private String contactPhone;
|
||||
|
||||
/**
|
||||
* 企业名称
|
||||
*/
|
||||
private String companyName;
|
||||
|
||||
/**
|
||||
* 统一社会信用代码
|
||||
*/
|
||||
private String licenseNumber;
|
||||
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
private String address;
|
||||
|
||||
/**
|
||||
* 域名
|
||||
*/
|
||||
private String domain;
|
||||
|
||||
/**
|
||||
* 企业简介
|
||||
*/
|
||||
private String intro;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 租户套餐编号
|
||||
*/
|
||||
private Long packageId;
|
||||
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
private Date expireTime;
|
||||
|
||||
/**
|
||||
* 用户数量(-1不限制)
|
||||
*/
|
||||
private Long accountCount;
|
||||
|
||||
/**
|
||||
* 租户状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
package org.asinkj.system.api.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
/**
|
||||
* 用户
|
||||
*
|
||||
* @author Michelle.Chung
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class RemoteUserVo implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 部门ID
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 用户账号
|
||||
*/
|
||||
private String userName;
|
||||
|
||||
/**
|
||||
* 用户昵称
|
||||
*/
|
||||
private String nickName;
|
||||
|
||||
/**
|
||||
* 用户类型(sys_user系统用户)
|
||||
*/
|
||||
private String userType;
|
||||
|
||||
/**
|
||||
* 用户邮箱
|
||||
*/
|
||||
private String email;
|
||||
|
||||
/**
|
||||
* 手机号码
|
||||
*/
|
||||
private String phonenumber;
|
||||
|
||||
/**
|
||||
* 用户性别(0男 1女 2未知)
|
||||
*/
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 帐号状态(0正常 1停用)
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
|
||||
private String address;
|
||||
|
||||
}
|
@ -0,0 +1,148 @@
|
||||
package org.asinkj.system.api.model;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
*
|
||||
* @author asinkj
|
||||
*/
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class LoginUser implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 用户ID
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 部门ID
|
||||
*/
|
||||
private Long deptId;
|
||||
|
||||
/**
|
||||
* 部门类别编码
|
||||
*/
|
||||
private String deptCategory;
|
||||
|
||||
/**
|
||||
* 部门名
|
||||
*/
|
||||
private String deptName;
|
||||
|
||||
/**
|
||||
* 用户唯一标识
|
||||
*/
|
||||
private String token;
|
||||
|
||||
/**
|
||||
* 用户类型
|
||||
*/
|
||||
private String userType;
|
||||
|
||||
/**
|
||||
* 登录时间
|
||||
*/
|
||||
private Long loginTime;
|
||||
|
||||
/**
|
||||
* 过期时间
|
||||
*/
|
||||
private Long expireTime;
|
||||
|
||||
/**
|
||||
* 登录IP地址
|
||||
*/
|
||||
private String ipaddr;
|
||||
|
||||
/**
|
||||
* 登录地点
|
||||
*/
|
||||
private String loginLocation;
|
||||
|
||||
/**
|
||||
* 浏览器类型
|
||||
*/
|
||||
private String browser;
|
||||
|
||||
/**
|
||||
* 操作系统
|
||||
*/
|
||||
private String os;
|
||||
|
||||
/**
|
||||
* 菜单权限
|
||||
*/
|
||||
private Set<String> menuPermission;
|
||||
|
||||
/**
|
||||
* 角色权限
|
||||
*/
|
||||
private Set<String> rolePermission;
|
||||
|
||||
/**
|
||||
* 用户名
|
||||
*/
|
||||
private String username;
|
||||
|
||||
/**
|
||||
* 用户昵称
|
||||
*/
|
||||
private String nickname;
|
||||
|
||||
/**
|
||||
* 密码
|
||||
*/
|
||||
private String password;
|
||||
|
||||
private String openId;
|
||||
|
||||
/**
|
||||
* 角色对象
|
||||
*/
|
||||
private List<RoleDTO> roles;
|
||||
|
||||
/**
|
||||
* 数据权限 当前角色ID
|
||||
*/
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 客户端
|
||||
*/
|
||||
private String clientKey;
|
||||
|
||||
/**
|
||||
* 设备类型
|
||||
*/
|
||||
private String deviceType;
|
||||
|
||||
/**
|
||||
* 获取登录id
|
||||
*/
|
||||
public String getLoginId() {
|
||||
if (userType == null) {
|
||||
throw new IllegalArgumentException("用户类型不能为空");
|
||||
}
|
||||
if (userId == null) {
|
||||
throw new IllegalArgumentException("用户ID不能为空");
|
||||
}
|
||||
return userType + ":" + userId;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package org.asinkj.system.api.model;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 角色
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
public class RoleDTO implements Serializable {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 角色ID
|
||||
*/
|
||||
private Long roleId;
|
||||
|
||||
/**
|
||||
* 角色名称
|
||||
*/
|
||||
private String roleName;
|
||||
|
||||
/**
|
||||
* 角色权限
|
||||
*/
|
||||
private String roleKey;
|
||||
|
||||
/**
|
||||
* 数据范围(1:所有数据权限;2:自定义数据权限;3:本部门数据权限;4:本部门及以下数据权限;5:仅本人数据权限)
|
||||
*/
|
||||
private String dataScope;
|
||||
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
package org.asinkj.system.api.model;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 小程序登录用户身份权限
|
||||
*
|
||||
* @author Shuo Hu
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@NoArgsConstructor
|
||||
public class XcxLoginUser extends LoginUser {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* openid
|
||||
*/
|
||||
private String openid;
|
||||
|
||||
}
|
32
asinkj-api/asinkj-api-workflow/pom.xml
Normal file
32
asinkj-api/asinkj-api-workflow/pom.xml
Normal file
@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>asinkj-api-workflow</artifactId>
|
||||
|
||||
<description>
|
||||
asinkj-api-workflow 工作流接口模块
|
||||
</description>
|
||||
|
||||
<dependencies>
|
||||
|
||||
<!-- AsinKj Common Core-->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-bus</artifactId>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
@ -0,0 +1,78 @@
|
||||
package org.asinkj.workflow.api.domain;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 通用 工作流服务
|
||||
*
|
||||
* @Author ZETA
|
||||
* @Date 2024/6/3
|
||||
*/
|
||||
public interface RemoteWorkflowService {
|
||||
|
||||
/**
|
||||
* 运行中的实例 删除程实例,删除历史记录,删除业务与流程关联信息
|
||||
*
|
||||
* @param businessKeys 业务id
|
||||
* @return 结果
|
||||
*/
|
||||
boolean deleteRunAndHisInstance(List<String> businessKeys);
|
||||
|
||||
/**
|
||||
* 获取当前流程状态
|
||||
*
|
||||
* @param taskId 任务id
|
||||
*/
|
||||
String getBusinessStatusByTaskId(String taskId);
|
||||
|
||||
/**
|
||||
* 获取当前流程状态
|
||||
*
|
||||
* @param businessKey 业务id
|
||||
*/
|
||||
String getBusinessStatus(String businessKey);
|
||||
|
||||
/**
|
||||
* 设置流程变量(全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variableName 变量名称
|
||||
* @param value 变量值
|
||||
*/
|
||||
void setVariable(String taskId, String variableName, Object value);
|
||||
|
||||
/**
|
||||
* 设置流程变量(全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variables 流程变量
|
||||
*/
|
||||
void setVariables(String taskId, Map<String, Object> variables);
|
||||
|
||||
/**
|
||||
* 设置流程变量(本地变量,非全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variableName 变量名称
|
||||
* @param value 变量值
|
||||
*/
|
||||
void setVariableLocal(String taskId, String variableName, Object value);
|
||||
|
||||
/**
|
||||
* 设置流程变量(本地变量,非全局变量)
|
||||
*
|
||||
* @param taskId 任务id
|
||||
* @param variables 流程变量
|
||||
*/
|
||||
void setVariablesLocal(String taskId, Map<String, Object> variables);
|
||||
|
||||
/**
|
||||
* 按照业务id查询流程实例id
|
||||
*
|
||||
* @param businessKey 业务id
|
||||
* @return 结果
|
||||
*/
|
||||
String getInstanceIdByBusinessKey(String businessKey);
|
||||
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package org.asinkj.workflow.api.domain.event;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.asinkj.common.core.utils.SpringUtils;
|
||||
import org.springframework.cloud.bus.event.RemoteApplicationEvent;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 总体流程监听
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ProcessEvent extends RemoteApplicationEvent {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 流程定义key
|
||||
*/
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 业务id
|
||||
*/
|
||||
private String businessKey;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 当为true时为申请人节点办理
|
||||
*/
|
||||
private boolean submit;
|
||||
|
||||
public ProcessEvent() {
|
||||
super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null));
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package org.asinkj.workflow.api.domain.event;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.asinkj.common.core.utils.SpringUtils;
|
||||
import org.springframework.cloud.bus.event.RemoteApplicationEvent;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 流程办理监听
|
||||
*
|
||||
* @author may
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
public class ProcessTaskEvent extends RemoteApplicationEvent {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 流程定义key
|
||||
*/
|
||||
private String key;
|
||||
|
||||
/**
|
||||
* 审批节点key
|
||||
*/
|
||||
private String taskDefinitionKey;
|
||||
|
||||
/**
|
||||
* 任务id
|
||||
*/
|
||||
private String taskId;
|
||||
|
||||
/**
|
||||
* 业务id
|
||||
*/
|
||||
private String businessKey;
|
||||
|
||||
public ProcessTaskEvent() {
|
||||
super(new Object(), SpringUtils.getApplicationName(), DEFAULT_DESTINATION_FACTORY.getDestination(null));
|
||||
}
|
||||
}
|
26
asinkj-api/pom.xml
Normal file
26
asinkj-api/pom.xml
Normal file
@ -0,0 +1,26 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-cloud-plus</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<modules>
|
||||
<module>asinkj-api-bom</module>
|
||||
<module>asinkj-api-system</module>
|
||||
<module>asinkj-api-resource</module>
|
||||
<module>asinkj-api-workflow</module>
|
||||
<module>asinkj-api-amz</module>
|
||||
</modules>
|
||||
|
||||
<artifactId>asinkj-api</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<description>
|
||||
asinkj-api系统接口
|
||||
</description>
|
||||
|
||||
</project>
|
29
asinkj-biz/asinkj-amz/Dockerfile
Normal file
29
asinkj-biz/asinkj-amz/Dockerfile
Normal file
@ -0,0 +1,29 @@
|
||||
# 贝尔实验室 Spring 官方推荐镜像 JDK下载地址 https://bell-sw.com/pages/downloads/
|
||||
#FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
|
||||
#FROM bellsoft/liberica-openjdk-debian:21.0.3-cds
|
||||
#FROM findepi/graalvm:java17-native
|
||||
FROM amazoncorretto:17.0.14
|
||||
|
||||
ENV TZ=Asia/Shanghai
|
||||
|
||||
LABEL maintainer="Shuo Hu "
|
||||
|
||||
RUN mkdir -p /asinkj/amz/logs \
|
||||
/asinkj/amz/temp \
|
||||
/asinkj/skywalking/agent
|
||||
|
||||
WORKDIR /asinkj/amz
|
||||
|
||||
ENV SERVER_PORT=9404 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
|
||||
|
||||
EXPOSE ${SERVER_PORT}
|
||||
|
||||
ADD ./target/asinkj-amz.jar ./app.jar
|
||||
|
||||
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
|
||||
-Dspring.profiles.active="prod" \
|
||||
#-Dskywalking.agent.service_name=asinkj-auth \
|
||||
#-javaagent:/asinkj/skywalking/agent/skywalking-agent.jar \
|
||||
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
|
||||
-jar app.jar
|
||||
|
137
asinkj-biz/asinkj-amz/pom.xml
Normal file
137
asinkj-biz/asinkj-amz/pom.xml
Normal file
@ -0,0 +1,137 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<parent>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-biz</artifactId>
|
||||
<version>${revision}</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>asinkj-amz</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-nacos</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-sentinel</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- AsinKj Common Log -->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-log</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-dict</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-doc</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-mybatis</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-wp</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-dubbo</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-seata</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-idempotent</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-tenant</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-security</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-translation</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-sensitive</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-common-encrypt</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- AsinKj Api System -->
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-system</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-resource</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.asinkj</groupId>
|
||||
<artifactId>asinkj-api-amz</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.squareup.okhttp3</groupId>
|
||||
<artifactId>okhttp</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>${spring-boot.version}</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
@ -0,0 +1,17 @@
|
||||
package org.asinkj;
|
||||
|
||||
import com.alibaba.dubbo.config.spring.context.annotation.EnableDubbo;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
|
||||
|
||||
@EnableDubbo
|
||||
@SpringBootApplication
|
||||
public class AsinKjAmzApplication {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication application = new SpringApplication(AsinKjAmzApplication.class);
|
||||
application.setApplicationStartup(new BufferingApplicationStartup(2048));
|
||||
application.run(args);
|
||||
System.out.println("(♥◠‿◠)ノ゙ 亚马逊模块启动成功 ლ(´ڡ`ლ)゙ ");
|
||||
}
|
||||
}
|
@ -0,0 +1,114 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizInquiryBlacklistVo;
|
||||
import org.asinkj.amz.domain.bo.BizInquiryBlacklistBo;
|
||||
import org.asinkj.amz.service.IBizInquiryBlacklistService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物流询价屏蔽记录
|
||||
* 前端访问路由地址为:/amz/inquiryBlacklist
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-04-22
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/inquiryBlacklist")
|
||||
public class BizInquiryBlacklistController extends BaseController {
|
||||
|
||||
private final IBizInquiryBlacklistService bizInquiryBlacklistService;
|
||||
|
||||
/**
|
||||
* 查询物流询价屏蔽记录列表
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryBlacklist:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizInquiryBlacklistVo> list(BizInquiryBlacklistBo bo, PageQuery pageQuery) {
|
||||
return bizInquiryBlacklistService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物流询价屏蔽记录列表
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryBlacklist:export")
|
||||
@Log(title = "物流询价屏蔽记录", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizInquiryBlacklistBo bo, HttpServletResponse response) {
|
||||
List<BizInquiryBlacklistVo> list = bizInquiryBlacklistService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流询价屏蔽记录", BizInquiryBlacklistVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流询价屏蔽记录详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryBlacklist:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizInquiryBlacklistVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizInquiryBlacklistService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流询价屏蔽记录
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryBlacklist:add")
|
||||
@Log(title = "物流询价屏蔽记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizInquiryBlacklistBo bo) {
|
||||
return toAjax(bizInquiryBlacklistService.insertByBo(bo));
|
||||
}
|
||||
|
||||
@Log(title = "物流询价屏蔽记录", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/insert")
|
||||
public R<Void> insert( @RequestBody List<Long> list) {
|
||||
bizInquiryBlacklistService.insertByList(list);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流询价屏蔽记录
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryBlacklist:edit")
|
||||
@Log(title = "物流询价屏蔽记录", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizInquiryBlacklistBo bo) {
|
||||
return toAjax(bizInquiryBlacklistService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物流询价屏蔽记录
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryBlacklist:remove")
|
||||
@Log(title = "物流询价屏蔽记录", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizInquiryBlacklistService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,157 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.asinkj.amz.domain.vo.InquiryRequestItemVo;
|
||||
import org.asinkj.common.wp.handler.WxMessagesManager;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizInquiryRequestVo;
|
||||
import org.asinkj.amz.domain.bo.BizInquiryRequestBo;
|
||||
import org.asinkj.amz.service.IBizInquiryRequestService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 物流询价
|
||||
* 前端访问路由地址为:/amz/inquiryRequest
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-21
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/inquiryRequest")
|
||||
public class BizInquiryRequestController extends BaseController {
|
||||
|
||||
private final IBizInquiryRequestService bizInquiryRequestService;
|
||||
|
||||
/**
|
||||
* 查询物流询价列表
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryRequest:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizInquiryRequestVo> list(BizInquiryRequestBo bo, PageQuery pageQuery) {
|
||||
return bizInquiryRequestService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据目的地仓库和渠道查询物流询价单
|
||||
*/
|
||||
// @SaCheckPermission("amz:inquiryRequest:list")
|
||||
@SaCheckPermission("amz:shipmentPlan:edit")
|
||||
@GetMapping("/query/{destination}/{channelId}/{date}")
|
||||
public TableDataInfo<BizInquiryRequestVo> queryWithDesAndChannel(@PathVariable("destination") @NotNull(message = "目的地不能为空") String destination,
|
||||
@PathVariable("channelId") @NotNull(message = "渠道不能为空") String channelId,
|
||||
@PathVariable("date") @NotNull(message = "日期不能为空") String date) {
|
||||
return bizInquiryRequestService.queryWithDesAndChannel(destination, channelId, date);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 根据目的地仓库和渠道创建物流询价单
|
||||
*/
|
||||
// @SaCheckPermission("amz:inquiryRequest:list")
|
||||
@SaCheckPermission("amz:shipmentPlan:edit")
|
||||
@GetMapping("/create/{destination}/{channelId}/{date}")
|
||||
public R<String> createWithDesAndChannel(@PathVariable("destination") @NotNull(message = "目的地不能为空") String destination,
|
||||
@PathVariable("channelId") @NotNull(message = "渠道不能为空") String channelId,
|
||||
@PathVariable("date") @NotNull(message = "日期不能为空") String date) {
|
||||
return bizInquiryRequestService.createWithDesAndChannel(destination, channelId, date);
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:edit")
|
||||
@PostMapping("/create/batch")
|
||||
@RepeatSubmit
|
||||
public R<String> batchCreateWithItems(@RequestBody List<InquiryRequestItemVo> items) {
|
||||
return bizInquiryRequestService.batchCreateWithItems(items);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物流询价列表
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryRequest:export")
|
||||
@Log(title = "物流询价", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizInquiryRequestBo bo, HttpServletResponse response) {
|
||||
List<BizInquiryRequestVo> list = bizInquiryRequestService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流询价", BizInquiryRequestVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流询价详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryRequest:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizInquiryRequestVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizInquiryRequestService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流询价
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryRequest:add")
|
||||
@Log(title = "物流询价", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizInquiryRequestBo bo) {
|
||||
return toAjax(bizInquiryRequestService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流询价
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryRequest:edit")
|
||||
@Log(title = "物流询价", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizInquiryRequestBo bo) {
|
||||
return toAjax(bizInquiryRequestService.updateByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 删除物流询价
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:inquiryRequest:remove")
|
||||
@Log(title = "物流询价", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizInquiryRequestService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/message/test/{key1}/{key2}/{openId}")
|
||||
public R<Void> test(
|
||||
@PathVariable("key1") String key1,
|
||||
@PathVariable("key2") String key2,
|
||||
@PathVariable("openId") String openId
|
||||
) throws Exception {
|
||||
WxMessagesManager.sendWechatTempMessage(key1, key2, openId);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,112 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizLogisticsChannelVo;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsChannelBo;
|
||||
import org.asinkj.amz.service.IBizLogisticsChannelService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物流商渠道
|
||||
* 前端访问路由地址为:/amz/logisticsChannel
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/logisticsChannel")
|
||||
public class BizLogisticsChannelController extends BaseController {
|
||||
|
||||
private final IBizLogisticsChannelService bizLogisticsChannelService;
|
||||
|
||||
/**
|
||||
* 查询物流商渠道列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsChannel:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizLogisticsChannelVo> list(BizLogisticsChannelBo bo, PageQuery pageQuery) {
|
||||
return bizLogisticsChannelService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
// @SaCheckPermission("amz:logisticsChannel:list")
|
||||
@GetMapping("/list/all")
|
||||
public TableDataInfo<BizLogisticsChannelVo> listAll() {
|
||||
return bizLogisticsChannelService.queryListAll();
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物流商渠道列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsChannel:export")
|
||||
@Log(title = "物流商渠道", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizLogisticsChannelBo bo, HttpServletResponse response) {
|
||||
List<BizLogisticsChannelVo> list = bizLogisticsChannelService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流商渠道", BizLogisticsChannelVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流商渠道详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsChannel:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizLogisticsChannelVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizLogisticsChannelService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流商渠道
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsChannel:add")
|
||||
@Log(title = "物流商渠道", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizLogisticsChannelBo bo) {
|
||||
return toAjax(bizLogisticsChannelService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流商渠道
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsChannel:edit")
|
||||
@Log(title = "物流商渠道", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizLogisticsChannelBo bo) {
|
||||
return toAjax(bizLogisticsChannelService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物流商渠道
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsChannel:remove")
|
||||
@Log(title = "物流商渠道", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizLogisticsChannelService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,167 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import io.seata.spring.annotation.GlobalTransactional;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.asinkj.amz.domain.BizLogisticsOrder;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsCreateOrderBo;
|
||||
import org.asinkj.common.core.utils.StringUtils;
|
||||
import org.asinkj.common.core.utils.file.MimeTypeUtils;
|
||||
import org.asinkj.common.satoken.utils.LoginHelper;
|
||||
import org.asinkj.resource.api.RemoteFileService;
|
||||
import org.asinkj.resource.api.domain.RemoteFile;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizLogisticsOrderVo;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsOrderBo;
|
||||
import org.asinkj.amz.service.IBizLogisticsOrderService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 物流订单
|
||||
* 前端访问路由地址为:/amz/logisticsOrder
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-24
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/logisticsOrder")
|
||||
public class BizLogisticsOrderController extends BaseController {
|
||||
|
||||
private static final Logger log = LoggerFactory.getLogger(BizLogisticsOrderController.class);
|
||||
private final IBizLogisticsOrderService bizLogisticsOrderService;
|
||||
|
||||
@DubboReference
|
||||
private RemoteFileService remoteFileService;
|
||||
|
||||
/**
|
||||
* 查询物流订单列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrder:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizLogisticsOrderVo> list(BizLogisticsOrderBo bo, PageQuery pageQuery) {
|
||||
return bizLogisticsOrderService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物流订单列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrder:export")
|
||||
@Log(title = "物流订单", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizLogisticsOrderBo bo, HttpServletResponse response) {
|
||||
List<BizLogisticsOrderVo> list = bizLogisticsOrderService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流订单", BizLogisticsOrderVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流订单详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrder:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizLogisticsOrderVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
|
||||
return R.ok(bizLogisticsOrderService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流订单
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrder:add")
|
||||
@Log(title = "物流订单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizLogisticsOrderBo bo) {
|
||||
return toAjax(bizLogisticsOrderService.insertByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 新增物流订单
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:add")
|
||||
@Log(title = "物流订单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/createOrder")
|
||||
public R<Void> createOrder(@Validated(AddGroup.class) @RequestBody BizLogisticsCreateOrderBo bo) {
|
||||
bizLogisticsOrderService.createByBo(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@RepeatSubmit
|
||||
@GlobalTransactional(rollbackFor = Exception.class)
|
||||
@PostMapping(value = "/uploadPod", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> uploadPod(@RequestPart("file") MultipartFile file, @RequestParam String order) throws IOException {
|
||||
if (!file.isEmpty()) {
|
||||
// String extension = FileUtil.extName(file.getOriginalFilename());
|
||||
// if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) {
|
||||
// return R.fail("文件格式不正确,请上传" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "格式");
|
||||
// }
|
||||
RemoteFile oss = remoteFileService.upload(file.getName(), file.getOriginalFilename(), file.getContentType(), file.getBytes());
|
||||
log.info("url" + oss.getUrl());
|
||||
log.info("order" + order);
|
||||
log.info("oss" + oss.toString());
|
||||
|
||||
BizLogisticsOrderBo bizLogisticsOrderBo = new BizLogisticsOrderBo();
|
||||
bizLogisticsOrderBo.setOrderId(order);
|
||||
bizLogisticsOrderBo.setPodUrl(oss.getUrl());
|
||||
bizLogisticsOrderService.updateByOrderId(bizLogisticsOrderBo);
|
||||
return R.ok();
|
||||
}
|
||||
return R.fail("上传图片异常,请联系管理员");
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流订单
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrder:edit")
|
||||
@Log(title = "物流订单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizLogisticsOrderBo bo) {
|
||||
return toAjax(bizLogisticsOrderService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物流订单
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrder:remove")
|
||||
@Log(title = "物流订单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) {
|
||||
return toAjax(bizLogisticsOrderService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
@GetMapping("/query")
|
||||
public R<List<BizLogisticsOrder>> query() {
|
||||
return R.ok(bizLogisticsOrderService.selectOrdersByUserId());
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,134 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.asinkj.common.excel.core.ExcelResult;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizLogisticsOrderDetailVo;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsOrderDetailBo;
|
||||
import org.asinkj.amz.service.IBizLogisticsOrderDetailService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 物流订单明细(按箱子维度存储)
|
||||
* 前端访问路由地址为:/amz/logisticsOrderDetail
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-24
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/logisticsOrderDetail")
|
||||
public class BizLogisticsOrderDetailController extends BaseController {
|
||||
|
||||
private final IBizLogisticsOrderDetailService bizLogisticsOrderDetailService;
|
||||
|
||||
/**
|
||||
* 查询物流订单明细(按箱子维度存储)列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizLogisticsOrderDetailVo> list(BizLogisticsOrderDetailBo bo, PageQuery pageQuery) {
|
||||
return bizLogisticsOrderDetailService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物流订单明细(按箱子维度存储)列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:export")
|
||||
@Log(title = "物流订单明细(按箱子维度存储)", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizLogisticsOrderDetailBo bo, HttpServletResponse response) {
|
||||
List<BizLogisticsOrderDetailVo> list = bizLogisticsOrderDetailService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流订单明细(按箱子维度存储)", BizLogisticsOrderDetailVo.class, response);
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:export")
|
||||
@Log(title = "物流订单明细(按箱子维度存储)", businessType = BusinessType.EXPORT)
|
||||
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
|
||||
bizLogisticsOrderDetailService.importExcel(file.getInputStream());
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流订单明细(按箱子维度存储)详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizLogisticsOrderDetailVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizLogisticsOrderDetailService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流订单明细(按箱子维度存储)
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:add")
|
||||
@Log(title = "物流订单明细(按箱子维度存储)", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizLogisticsOrderDetailBo bo) {
|
||||
return toAjax(bizLogisticsOrderDetailService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流订单明细(按箱子维度存储)
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:edit")
|
||||
@Log(title = "物流订单明细(按箱子维度存储)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizLogisticsOrderDetailBo bo) {
|
||||
return toAjax(bizLogisticsOrderDetailService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物流订单明细(按箱子维度存储)
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:remove")
|
||||
@Log(title = "物流订单明细(按箱子维度存储)", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizLogisticsOrderDetailService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流订单明细(按箱子维度存储)
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderDetail:edit")
|
||||
@Log(title = "批量更新物流订单明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/updateList")
|
||||
public R<Void> updateList(@Validated(AddGroup.class) @RequestBody List<BizLogisticsOrderDetailBo> list) {
|
||||
bizLogisticsOrderDetailService.updateList(list);
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,113 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizLogisticsOrderQuotationVo;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsOrderQuotationBo;
|
||||
import org.asinkj.amz.service.IBizLogisticsOrderQuotationService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物流订单确认
|
||||
* 前端访问路由地址为:/amz/logisticsOrderQuotation
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-04-21
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/logisticsOrderQuotation")
|
||||
public class BizLogisticsOrderQuotationController extends BaseController {
|
||||
|
||||
private final IBizLogisticsOrderQuotationService bizLogisticsOrderQuotationService;
|
||||
|
||||
/**
|
||||
* 查询物流订单确认列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderQuotation:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizLogisticsOrderQuotationVo> list(BizLogisticsOrderQuotationBo bo, PageQuery pageQuery) {
|
||||
return bizLogisticsOrderQuotationService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物流订单确认列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderQuotation:export")
|
||||
@Log(title = "物流订单确认", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizLogisticsOrderQuotationBo bo, HttpServletResponse response) {
|
||||
List<BizLogisticsOrderQuotationVo> list = bizLogisticsOrderQuotationService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流订单确认", BizLogisticsOrderQuotationVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流订单确认详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderQuotation:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizLogisticsOrderQuotationVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizLogisticsOrderQuotationService.queryById(id));
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:logisticsOrderQuotation:query")
|
||||
@PostMapping("/quotationOrder")
|
||||
public R<Void> quotationOrder(@RequestBody BizLogisticsOrderQuotationBo bo) {
|
||||
bizLogisticsOrderQuotationService.quotationOrder(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流订单确认
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderQuotation:add")
|
||||
@Log(title = "物流订单确认", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizLogisticsOrderQuotationBo bo) {
|
||||
return toAjax(bizLogisticsOrderQuotationService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流订单确认
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderQuotation:edit")
|
||||
@Log(title = "物流订单确认", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizLogisticsOrderQuotationBo bo) {
|
||||
return toAjax(bizLogisticsOrderQuotationService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物流订单确认
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsOrderQuotation:remove")
|
||||
@Log(title = "物流订单确认", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizLogisticsOrderQuotationService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,179 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsQuoteMostBo;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsQuoteReportBo;
|
||||
import org.asinkj.amz.domain.vo.InquiryQuoteStatusDTO;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizLogisticsQuoteVo;
|
||||
import org.asinkj.amz.domain.bo.BizLogisticsQuoteBo;
|
||||
import org.asinkj.amz.service.IBizLogisticsQuoteService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物流报价
|
||||
* 前端访问路由地址为:/amz/logisticsQuote
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/logisticsQuote")
|
||||
public class BizLogisticsQuoteController extends BaseController {
|
||||
|
||||
private final IBizLogisticsQuoteService bizLogisticsQuoteService;
|
||||
|
||||
/**
|
||||
* 查询物流报价列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsQuote:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizLogisticsQuoteVo> list(BizLogisticsQuoteBo bo, PageQuery pageQuery) {
|
||||
return bizLogisticsQuoteService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据目的地仓库和渠道查询物流报价列表
|
||||
*/
|
||||
// @SaCheckPermission("amz:logisticsQuote:list")
|
||||
@SaCheckPermission("amz:shipmentPlan:edit")
|
||||
@GetMapping("/query/{destination}/{channelId}/{date}")
|
||||
public TableDataInfo<BizLogisticsQuoteVo> queryWithDesAndChannel(@PathVariable("destination") @NotNull(message = "目的地不能为空") String destination,
|
||||
@PathVariable("channelId") @NotNull(message = "渠道不能为空") String channelId,
|
||||
@PathVariable("date") @NotNull(message = "日期不能为空") String date) {
|
||||
return bizLogisticsQuoteService.listWithDesAndChannel(destination, channelId, date);
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:edit")
|
||||
@GetMapping("/queryWithDes/{destination}/{date}/{shipmentId}")
|
||||
public TableDataInfo<BizLogisticsQuoteVo> queryWithDes(@PathVariable("destination") @NotNull(message = "目的地不能为空") String destination,
|
||||
@PathVariable("date") @NotNull(message = "日期不能为空") String date,
|
||||
@PathVariable("shipmentId") @NotNull(message = "fba货件编号不能为空") String shipmentId) {
|
||||
return bizLogisticsQuoteService.listWithDes(destination, date,shipmentId);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 导出物流报价列表
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsQuote:export")
|
||||
@Log(title = "物流报价", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizLogisticsQuoteBo bo, HttpServletResponse response) {
|
||||
List<BizLogisticsQuoteVo> list = bizLogisticsQuoteService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流报价", BizLogisticsQuoteVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流报价详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsQuote:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizLogisticsQuoteVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizLogisticsQuoteService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流报价
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsQuote:add")
|
||||
@Log(title = "物流报价", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizLogisticsQuoteBo bo) {
|
||||
return toAjax(bizLogisticsQuoteService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流报价
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsQuote:add")
|
||||
@Log(title = "生成多日期的物流报价", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/most")
|
||||
public R<Void> addMostQuote(@Validated(AddGroup.class) @RequestBody BizLogisticsQuoteMostBo bo) {
|
||||
bizLogisticsQuoteService.insertMostQuoteByBo(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("amz:logisticsQuote:add")
|
||||
@Log(title = "生成报价建议", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/check-quote-price")
|
||||
public R<Boolean> checkQuotePrice(@Validated(AddGroup.class) @RequestBody BizLogisticsQuoteMostBo bo) {
|
||||
|
||||
return R.ok(bizLogisticsQuoteService.checkPriceQuoteByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/today-quote-status")
|
||||
@RepeatSubmit()
|
||||
public R<List<InquiryQuoteStatusDTO>> getTodayQuoteStatus() {
|
||||
List<InquiryQuoteStatusDTO> statusList = bizLogisticsQuoteService.getTodayQuoteStatus();
|
||||
return R.ok(statusList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流报价
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsQuote:edit")
|
||||
@Log(title = "物流报价", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizLogisticsQuoteBo bo) {
|
||||
return toAjax(bizLogisticsQuoteService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物流报价
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:logisticsQuote:remove")
|
||||
@Log(title = "物流报价", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizLogisticsQuoteService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询报表
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@SaCheckRole(value = {"superadmin", "yunying"}, mode = SaMode.OR)
|
||||
@PostMapping("/report")
|
||||
public R<List<Map<String, Object>>> getInfo(@Valid @RequestBody BizLogisticsQuoteReportBo bo) {
|
||||
List<Map<String, Object>> maps = bizLogisticsQuoteService.generateReport(bo);
|
||||
return R.ok(maps);
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizOrderOutItemVo;
|
||||
import org.asinkj.amz.domain.bo.BizOrderOutItemBo;
|
||||
import org.asinkj.amz.service.IBizOrderOutItemService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 采购订单明细
|
||||
* 前端访问路由地址为:/amz/orderOutItem
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/orderOutItem")
|
||||
public class BizOrderOutItemController extends BaseController {
|
||||
|
||||
private final IBizOrderOutItemService bizOrderOutItemService;
|
||||
|
||||
/**
|
||||
* 查询采购订单明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:orderOutItem:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizOrderOutItemVo> list(BizOrderOutItemBo bo, PageQuery pageQuery) {
|
||||
return bizOrderOutItemService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出采购订单明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:orderOutItem:export")
|
||||
@Log(title = "采购订单明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizOrderOutItemBo bo, HttpServletResponse response) {
|
||||
List<BizOrderOutItemVo> list = bizOrderOutItemService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "采购订单明细", BizOrderOutItemVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取采购订单明细详细信息
|
||||
*
|
||||
* @param tenantId 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:orderOutItem:query")
|
||||
@GetMapping("/{tenantId}")
|
||||
public R<BizOrderOutItemVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable String tenantId) {
|
||||
return R.ok(bizOrderOutItemService.queryById(tenantId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增采购订单明细
|
||||
*/
|
||||
@SaCheckPermission("amz:orderOutItem:add")
|
||||
@Log(title = "采购订单明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizOrderOutItemBo bo) {
|
||||
return toAjax(bizOrderOutItemService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改采购订单明细
|
||||
*/
|
||||
@SaCheckPermission("amz:orderOutItem:edit")
|
||||
@Log(title = "采购订单明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizOrderOutItemBo bo) {
|
||||
return toAjax(bizOrderOutItemService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除采购订单明细
|
||||
*
|
||||
* @param tenantIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:orderOutItem:remove")
|
||||
@Log(title = "采购订单明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{tenantIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable String[] tenantIds) {
|
||||
return toAjax(bizOrderOutItemService.deleteWithValidByIds(List.of(tenantIds), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizPackingSpecsVo;
|
||||
import org.asinkj.amz.domain.bo.BizPackingSpecsBo;
|
||||
import org.asinkj.amz.service.IBizPackingSpecsService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 产品装箱规格
|
||||
* 前端访问路由地址为:/amz/packingSpecs
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-17
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/packingSpecs")
|
||||
public class BizPackingSpecsController extends BaseController {
|
||||
|
||||
private final IBizPackingSpecsService bizPackingSpecsService;
|
||||
|
||||
/**
|
||||
* 查询产品装箱规格列表
|
||||
*/
|
||||
@SaCheckPermission("amz:packingSpecs:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizPackingSpecsVo> list(BizPackingSpecsBo bo, PageQuery pageQuery) {
|
||||
return bizPackingSpecsService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出产品装箱规格列表
|
||||
*/
|
||||
@SaCheckPermission("amz:packingSpecs:export")
|
||||
@Log(title = "产品装箱规格", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizPackingSpecsBo bo, HttpServletResponse response) {
|
||||
List<BizPackingSpecsVo> list = bizPackingSpecsService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "产品装箱规格", BizPackingSpecsVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取产品装箱规格详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:packingSpecs:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizPackingSpecsVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizPackingSpecsService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增产品装箱规格
|
||||
*/
|
||||
@SaCheckPermission("amz:packingSpecs:add")
|
||||
@Log(title = "产品装箱规格", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizPackingSpecsBo bo) {
|
||||
return toAjax(bizPackingSpecsService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改产品装箱规格
|
||||
*/
|
||||
@SaCheckPermission("amz:packingSpecs:edit")
|
||||
@Log(title = "产品装箱规格", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizPackingSpecsBo bo) {
|
||||
return toAjax(bizPackingSpecsService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除产品装箱规格
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:packingSpecs:remove")
|
||||
@Log(title = "产品装箱规格", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizPackingSpecsService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,147 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.asinkj.amz.service.IBizPurchaseOrderItemService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizPurchaseOrderVo;
|
||||
import org.asinkj.amz.domain.bo.BizPurchaseOrderBo;
|
||||
import org.asinkj.amz.service.IBizPurchaseOrderService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 采购单主
|
||||
* 前端访问路由地址为:/amz/purchaseOrder
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-10
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/purchaseOrder")
|
||||
public class BizPurchaseOrderController extends BaseController {
|
||||
|
||||
private final IBizPurchaseOrderService bizPurchaseOrderService;
|
||||
|
||||
|
||||
/**
|
||||
* 查询采购单主列表
|
||||
*/
|
||||
// @SaCheckPermission("amz:purchaseOrder:list")
|
||||
@SaCheckRole(value = {"gongying", "gengdan", "superadmin", "yunying"}, mode = SaMode.OR)
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizPurchaseOrderVo> list(BizPurchaseOrderBo bo, PageQuery pageQuery) {
|
||||
return bizPurchaseOrderService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出采购单主列表
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrder:export")
|
||||
@Log(title = "采购单主", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizPurchaseOrderBo bo, HttpServletResponse response) {
|
||||
List<BizPurchaseOrderVo> list = bizPurchaseOrderService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "采购单主", BizPurchaseOrderVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取采购单主详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrder:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizPurchaseOrderVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizPurchaseOrderService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增采购单主
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrder:add")
|
||||
@Log(title = "采购单主", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizPurchaseOrderBo bo) {
|
||||
return toAjax(bizPurchaseOrderService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改采购单主
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrder:edit")
|
||||
@Log(title = "采购单主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizPurchaseOrderBo bo) {
|
||||
return toAjax(bizPurchaseOrderService.updateByBo(bo));
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:purchaseOrder:edit")
|
||||
@Log(title = "采购单主", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/confirm")
|
||||
public R<Void> confirm(@Validated(EditGroup.class) @RequestBody BizPurchaseOrderBo bo) {
|
||||
return toAjax(bizPurchaseOrderService.confirmByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除采购单主
|
||||
*
|
||||
* @param orderSns 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrder:remove")
|
||||
@Log(title = "采购单主", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{orderSns}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable String[] orderSns) {
|
||||
return toAjax(bizPurchaseOrderService.deleteWithValidByIds(List.of(orderSns), true));
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:query")
|
||||
@GetMapping("/take-today-purchase-order")
|
||||
public R<Void> takeTodayPurchaseOrder() throws Exception {
|
||||
bizPurchaseOrderService.takeTodayPurchaseOrder();
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:query")
|
||||
@GetMapping("/update-today-purchase-order")
|
||||
public R<Void> updateTodayPurchaseOrder() throws Exception {
|
||||
bizPurchaseOrderService.updateTodayPurchaseOrder();
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/send-message-to-supplier/{message}/{supplier}")
|
||||
public R<Void> sendMessageToSupplier(@PathVariable String message, @PathVariable String supplier) throws Exception {
|
||||
bizPurchaseOrderService.sendMessageToSupplier(message, supplier);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizPurchaseOrderItemVo;
|
||||
import org.asinkj.amz.domain.bo.BizPurchaseOrderItemBo;
|
||||
import org.asinkj.amz.service.IBizPurchaseOrderItemService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 供应商订单产品明细
|
||||
* 前端访问路由地址为:/amz/purchaseOrderItem
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-10
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/purchaseOrderItem")
|
||||
public class BizPurchaseOrderItemController extends BaseController {
|
||||
|
||||
private final IBizPurchaseOrderItemService bizPurchaseOrderItemService;
|
||||
|
||||
/**
|
||||
* 查询供应商订单产品明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrderItem:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizPurchaseOrderItemVo> list(BizPurchaseOrderItemBo bo, PageQuery pageQuery) {
|
||||
return bizPurchaseOrderItemService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出供应商订单产品明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrderItem:export")
|
||||
@Log(title = "供应商订单产品明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizPurchaseOrderItemBo bo, HttpServletResponse response) {
|
||||
List<BizPurchaseOrderItemVo> list = bizPurchaseOrderItemService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "供应商订单产品明细", BizPurchaseOrderItemVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取供应商订单产品明细详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrderItem:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizPurchaseOrderItemVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizPurchaseOrderItemService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增供应商订单产品明细
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrderItem:add")
|
||||
@Log(title = "供应商订单产品明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizPurchaseOrderItemBo bo) {
|
||||
return toAjax(bizPurchaseOrderItemService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应商订单产品明细
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrderItem:edit")
|
||||
@Log(title = "供应商订单产品明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizPurchaseOrderItemBo bo) {
|
||||
return toAjax(bizPurchaseOrderItemService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除供应商订单产品明细
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOrderItem:remove")
|
||||
@Log(title = "供应商订单产品明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizPurchaseOrderItemService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,122 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizPurchaseOutOrderVo;
|
||||
import org.asinkj.amz.domain.bo.BizPurchaseOutOrderBo;
|
||||
import org.asinkj.amz.service.IBizPurchaseOutOrderService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 组合订单
|
||||
* 前端访问路由地址为:/amz/purchaseOutOrder
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/purchaseOutOrder")
|
||||
public class BizPurchaseOutOrderController extends BaseController {
|
||||
|
||||
private final IBizPurchaseOutOrderService bizPurchaseOutOrderService;
|
||||
|
||||
/**
|
||||
* 查询组合订单列表
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOutOrder:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizPurchaseOutOrderVo> list(BizPurchaseOutOrderBo bo, PageQuery pageQuery) {
|
||||
return bizPurchaseOutOrderService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出组合订单列表
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOutOrder:export")
|
||||
@Log(title = "组合订单", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizPurchaseOutOrderBo bo, HttpServletResponse response) {
|
||||
List<BizPurchaseOutOrderVo> list = bizPurchaseOutOrderService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "组合订单", BizPurchaseOutOrderVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取组合订单详细信息
|
||||
*
|
||||
* @param tenantId 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOutOrder:query")
|
||||
@GetMapping("/{tenantId}")
|
||||
public R<BizPurchaseOutOrderVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable String tenantId) {
|
||||
return R.ok(bizPurchaseOutOrderService.queryByPurchaseId(tenantId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增组合订单
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOutOrder:add")
|
||||
@Log(title = "组合订单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizPurchaseOutOrderBo bo) {
|
||||
return toAjax(bizPurchaseOutOrderService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改组合订单
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOutOrder:edit")
|
||||
@Log(title = "组合订单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizPurchaseOutOrderBo bo) {
|
||||
return toAjax(bizPurchaseOutOrderService.updateByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 删除组合订单
|
||||
*
|
||||
* @param tenantIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:purchaseOutOrder:remove")
|
||||
@Log(title = "组合订单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{tenantIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable String[] tenantIds) {
|
||||
return toAjax(bizPurchaseOutOrderService.deleteWithValidByIds(List.of(tenantIds), true));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@SaCheckPermission("amz:purchaseOutOrder:edit")
|
||||
@Log(title = "创建发货订单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("submit")
|
||||
public R<Void> submit(@Validated(EditGroup.class) @RequestBody BizPurchaseOutOrderBo bo) {
|
||||
bizPurchaseOutOrderService.createSendOrderByBo(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,127 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizSendOrderVo;
|
||||
import org.asinkj.amz.domain.bo.BizSendOrderBo;
|
||||
import org.asinkj.amz.service.IBizSendOrderService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 供应商创建的发货单
|
||||
* 前端访问路由地址为:/amz/sendOrder
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-14
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/sendOrder")
|
||||
public class BizSendOrderController extends BaseController {
|
||||
|
||||
private final IBizSendOrderService bizSendOrderService;
|
||||
|
||||
/**
|
||||
* 查询供应商创建的发货单列表
|
||||
*/
|
||||
@SaCheckRole(value = {"gongying", "gengdan", "superadmin", "yunying"}, mode = SaMode.OR)
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizSendOrderVo> list(BizSendOrderBo bo, PageQuery pageQuery) {
|
||||
return bizSendOrderService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出供应商创建的发货单列表
|
||||
*/
|
||||
@SaCheckRole(value = {"gongying", "gengdan", "superadmin"}, mode = SaMode.OR)
|
||||
@Log(title = "供应商创建的发货单", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizSendOrderBo bo, HttpServletResponse response) {
|
||||
List<BizSendOrderVo> list = bizSendOrderService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "供应商创建的发货单", BizSendOrderVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取供应商创建的发货单详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckRole(value = {"gongying", "gengdan", "superadmin", "yunying"}, mode = SaMode.OR)
|
||||
@GetMapping("/{id}")
|
||||
public R<BizSendOrderVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizSendOrderService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增供应商创建的发货单
|
||||
*/
|
||||
@SaCheckRole(value = {"gongying", "superadmin", "gengdan"}, mode = SaMode.OR)
|
||||
@Log(title = "供应商创建的发货单", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizSendOrderBo bo) {
|
||||
return toAjax(bizSendOrderService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应商创建的发货单
|
||||
*/
|
||||
@SaCheckRole(value = {"gongying", "gengdan", "superadmin", "yunying"}, mode = SaMode.OR)
|
||||
@Log(title = "供应商创建的发货单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizSendOrderBo bo) {
|
||||
return toAjax(bizSendOrderService.updateByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
@SaCheckRole(value = {"gongying", "gengdan", "superadmin", "yunying"}, mode = SaMode.OR)
|
||||
@Log(title = "供应商创建的发货单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/data")
|
||||
public R<Void> setData(@Validated(EditGroup.class) @RequestBody BizSendOrderBo bo) {
|
||||
return toAjax(bizSendOrderService.updateDataByBo(bo));
|
||||
}
|
||||
|
||||
|
||||
@SaCheckRole(value = {"gongying", "gengdan", "superadmin"}, mode = SaMode.OR)
|
||||
@Log(title = "供应商创建的发货单", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/link")
|
||||
public R<Void> link(@Validated(EditGroup.class) @RequestBody BizSendOrderBo bo) {
|
||||
bizSendOrderService.linkByBo(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除供应商创建的发货单
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:sendOrder:remove")
|
||||
@Log(title = "供应商创建的发货单", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizSendOrderService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizSendOrderItemVo;
|
||||
import org.asinkj.amz.domain.bo.BizSendOrderItemBo;
|
||||
import org.asinkj.amz.service.IBizSendOrderItemService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 供应商创建的发货单明细
|
||||
* 前端访问路由地址为:/amz/sendOrderItem
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-24
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/sendOrderItem")
|
||||
public class BizSendOrderItemController extends BaseController {
|
||||
|
||||
private final IBizSendOrderItemService bizSendOrderItemService;
|
||||
|
||||
/**
|
||||
* 查询供应商创建的发货单明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:sendOrderItem:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizSendOrderItemVo> list(BizSendOrderItemBo bo, PageQuery pageQuery) {
|
||||
return bizSendOrderItemService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出供应商创建的发货单明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:sendOrderItem:export")
|
||||
@Log(title = "供应商创建的发货单明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizSendOrderItemBo bo, HttpServletResponse response) {
|
||||
List<BizSendOrderItemVo> list = bizSendOrderItemService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "供应商创建的发货单明细", BizSendOrderItemVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取供应商创建的发货单明细详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:sendOrderItem:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizSendOrderItemVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizSendOrderItemService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增供应商创建的发货单明细
|
||||
*/
|
||||
@SaCheckPermission("amz:sendOrderItem:add")
|
||||
@Log(title = "供应商创建的发货单明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizSendOrderItemBo bo) {
|
||||
return toAjax(bizSendOrderItemService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改供应商创建的发货单明细
|
||||
*/
|
||||
@SaCheckPermission("amz:sendOrderItem:edit")
|
||||
@Log(title = "供应商创建的发货单明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizSendOrderItemBo bo) {
|
||||
return toAjax(bizSendOrderItemService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除供应商创建的发货单明细
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:sendOrderItem:remove")
|
||||
@Log(title = "供应商创建的发货单明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizSendOrderItemService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,117 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import jakarta.validation.Valid;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.asinkj.amz.domain.bo.BatchRelDTO;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizSendShipmentRelVo;
|
||||
import org.asinkj.amz.domain.bo.BizSendShipmentRelBo;
|
||||
import org.asinkj.amz.service.IBizSendShipmentRelService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 发货单与货运计划多对多关联
|
||||
* 前端访问路由地址为:/amz/sendShipmentRel
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-06-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/sendShipmentRel")
|
||||
public class BizSendShipmentRelController extends BaseController {
|
||||
|
||||
private final IBizSendShipmentRelService bizSendShipmentRelService;
|
||||
|
||||
/**
|
||||
* 查询发货单与货运计划多对多关联列表
|
||||
*/
|
||||
@SaCheckPermission("amz:sendShipmentRel:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizSendShipmentRelVo> list(BizSendShipmentRelBo bo, PageQuery pageQuery) {
|
||||
return bizSendShipmentRelService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出发货单与货运计划多对多关联列表
|
||||
*/
|
||||
@SaCheckPermission("amz:sendShipmentRel:export")
|
||||
@Log(title = "发货单与货运计划多对多关联", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizSendShipmentRelBo bo, HttpServletResponse response) {
|
||||
List<BizSendShipmentRelVo> list = bizSendShipmentRelService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "发货单与货运计划多对多关联", BizSendShipmentRelVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取发货单与货运计划多对多关联详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:sendShipmentRel:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizSendShipmentRelVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizSendShipmentRelService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增发货单与货运计划多对多关联
|
||||
*/
|
||||
@SaCheckPermission("amz:sendShipmentRel:add")
|
||||
@Log(title = "发货单与货运计划多对多关联", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizSendShipmentRelBo bo) {
|
||||
return toAjax(bizSendShipmentRelService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改发货单与货运计划多对多关联
|
||||
*/
|
||||
@SaCheckPermission("amz:sendShipmentRel:edit")
|
||||
@Log(title = "发货单与货运计划多对多关联", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizSendShipmentRelBo bo) {
|
||||
return toAjax(bizSendShipmentRelService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除发货单与货运计划多对多关联
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:sendShipmentRel:remove")
|
||||
@Log(title = "发货单与货运计划多对多关联", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizSendShipmentRelService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PostMapping("/createBatchRelations")
|
||||
public R<Void> createBatchRelations(
|
||||
@Valid @RequestBody BatchRelDTO dto) {
|
||||
bizSendShipmentRelService.batchCreateRelations(dto);
|
||||
return R.ok();
|
||||
}
|
||||
}
|
@ -0,0 +1,118 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import cn.dev33.satoken.annotation.SaMode;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizShipForwardVo;
|
||||
import org.asinkj.amz.domain.bo.BizShipForwardBo;
|
||||
import org.asinkj.amz.service.IBizShipForwardService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 货件转发
|
||||
* 前端访问路由地址为:/amz/shipForward
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-13
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/shipForward")
|
||||
public class BizShipForwardController extends BaseController {
|
||||
|
||||
private final IBizShipForwardService bizShipForwardService;
|
||||
|
||||
/**
|
||||
* 查询货件转发列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipForward:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizShipForwardVo> list(BizShipForwardBo bo, PageQuery pageQuery) {
|
||||
return bizShipForwardService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出货件转发列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipForward:export")
|
||||
@Log(title = "货件转发", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizShipForwardBo bo, HttpServletResponse response) {
|
||||
List<BizShipForwardVo> list = bizShipForwardService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "货件转发", BizShipForwardVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取货件转发详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckRole(value = {"gengdan", "gongying", "superadmin"}, mode = SaMode.OR)
|
||||
@GetMapping("/{id}")
|
||||
public R<BizShipForwardVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizShipForwardService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增货件转发
|
||||
*/
|
||||
@SaCheckPermission("amz:shipForward:add")
|
||||
@SaCheckRole(value = {"gengdan", "superadmin"}, mode = SaMode.OR)
|
||||
@Log(title = "货件转发", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizShipForwardBo bo) {
|
||||
return toAjax(bizShipForwardService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改货件转发
|
||||
*/
|
||||
@SaCheckRole(value = {"gengdan", "gongying", "superadmin"}, mode = SaMode.OR)
|
||||
@Log(title = "货件转发", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizShipForwardBo bo) {
|
||||
return toAjax(bizShipForwardService.updateByBo(bo));
|
||||
}
|
||||
|
||||
@SaCheckRole(value = {"gengdan", "gongying", "superadmin"}, mode = SaMode.OR)
|
||||
@Log(title = "货件转发", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping("/sendUpdate")
|
||||
public R<Void> sendUpdate(@Validated(EditGroup.class) @RequestBody BizShipForwardBo bo) {
|
||||
bizShipForwardService.sendUpdateByBo(bo);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除货件转发
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:shipForward:remove")
|
||||
@Log(title = "货件转发", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizShipForwardService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizShipmentItemVo;
|
||||
import org.asinkj.amz.domain.bo.BizShipmentItemBo;
|
||||
import org.asinkj.amz.service.IBizShipmentItemService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 货品明细
|
||||
* 前端访问路由地址为:/amz/shipmentItem
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/shipmentItem")
|
||||
public class BizShipmentItemController extends BaseController {
|
||||
|
||||
private final IBizShipmentItemService bizShipmentItemService;
|
||||
|
||||
/**
|
||||
* 查询货品明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentItem:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizShipmentItemVo> list(BizShipmentItemBo bo, PageQuery pageQuery) {
|
||||
return bizShipmentItemService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出货品明细列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentItem:export")
|
||||
@Log(title = "货品明细", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizShipmentItemBo bo, HttpServletResponse response) {
|
||||
List<BizShipmentItemVo> list = bizShipmentItemService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "货品明细", BizShipmentItemVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取货品明细详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentItem:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizShipmentItemVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizShipmentItemService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增货品明细
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentItem:add")
|
||||
@Log(title = "货品明细", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizShipmentItemBo bo) {
|
||||
return toAjax(bizShipmentItemService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改货品明细
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentItem:edit")
|
||||
@Log(title = "货品明细", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizShipmentItemBo bo) {
|
||||
return toAjax(bizShipmentItemService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除货品明细
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentItem:remove")
|
||||
@Log(title = "货品明细", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizShipmentItemService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,181 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckRole;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.asinkj.amz.domain.vo.BizLogisticsQuoteVo;
|
||||
import org.asinkj.amz.domain.vo.BizShipmentPlanOrderVo;
|
||||
import org.springframework.http.MediaType;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizShipmentPlanVo;
|
||||
import org.asinkj.amz.domain.bo.BizShipmentPlanBo;
|
||||
import org.asinkj.amz.service.IBizShipmentPlanService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 货件计划
|
||||
* 前端访问路由地址为:/amz/shipmentPlan
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-19
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/shipmentPlan")
|
||||
public class BizShipmentPlanController extends BaseController {
|
||||
|
||||
private final IBizShipmentPlanService bizShipmentPlanService;
|
||||
|
||||
/**
|
||||
* 查询货件计划列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizShipmentPlanVo> list(BizShipmentPlanBo bo, PageQuery pageQuery) {
|
||||
return bizShipmentPlanService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:list")
|
||||
@GetMapping("/list/order")
|
||||
public TableDataInfo<BizShipmentPlanOrderVo> listOrder(BizShipmentPlanBo bo, PageQuery pageQuery) {
|
||||
return bizShipmentPlanService.queryPageListOrder(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出货件计划列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:export")
|
||||
@Log(title = "货件计划", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizShipmentPlanBo bo, HttpServletResponse response) {
|
||||
List<BizShipmentPlanVo> list = bizShipmentPlanService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "货件计划", BizShipmentPlanVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取货件计划详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizShipmentPlanVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizShipmentPlanService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增货件计划
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:add")
|
||||
@Log(title = "货件计划", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizShipmentPlanBo bo) {
|
||||
return toAjax(bizShipmentPlanService.insertByBo(bo));
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:add")
|
||||
@Log(title = "货件计划", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/update/list/{status}")
|
||||
public R<Void> updateList( @RequestBody List<String> list, @PathVariable String status) {
|
||||
|
||||
bizShipmentPlanService.updateList(list, status);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改货件计划
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:edit")
|
||||
@Log(title = "货件计划", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizShipmentPlanBo bo) {
|
||||
return toAjax(bizShipmentPlanService.updateByBo(bo));
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:edit")
|
||||
@Log(title = "货件计划", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping("link")
|
||||
public R<Void> link(@Validated(EditGroup.class) @RequestBody BizShipmentPlanBo bo) {
|
||||
return toAjax(bizShipmentPlanService.linkByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除货件计划
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:remove")
|
||||
@Log(title = "货件计划", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizShipmentPlanService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
|
||||
@SaCheckPermission("amz:shipmentPlan:remove")
|
||||
@Log(title = "删除货件计划发货单关系", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("delete/{shipmentPlanId}/{sendOrderId}")
|
||||
public R<Integer> deleteRelation(
|
||||
@NotNull(message = "计划ID不能为空") @PathVariable Long shipmentPlanId, @NotNull(message = "发货单ID不能为空") @PathVariable Long sendOrderId) {
|
||||
return R.ok(bizShipmentPlanService.deleteBySendOrderShipmentPlan(shipmentPlanId, sendOrderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取货件计划详细信息
|
||||
*
|
||||
*
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:query")
|
||||
@GetMapping("/quote/{destination}/{channel}")
|
||||
public R<List<BizLogisticsQuoteVo>> getQuote(@NotNull(message = "主键不能为空")
|
||||
@PathVariable String destination,
|
||||
@PathVariable String channel) {
|
||||
return R.ok(bizShipmentPlanService.getQuote(destination,channel));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取货件计划详细信息
|
||||
*
|
||||
*
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentPlan:query")
|
||||
@GetMapping("/take-today-amz-plan-data")
|
||||
public R<Void> takeTodayAmzPlanData() {
|
||||
bizShipmentPlanService.takeTodayAmzPlanData();
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@SaCheckRole("yunying")
|
||||
@Log(title = "更新货件信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping(value = "/importData", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<Void> importData(@RequestPart("file") MultipartFile file) throws Exception {
|
||||
bizShipmentPlanService.importExcel(file.getInputStream());
|
||||
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.BizShipmentTrackingVo;
|
||||
import org.asinkj.amz.domain.bo.BizShipmentTrackingBo;
|
||||
import org.asinkj.amz.service.IBizShipmentTrackingService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 物流追踪
|
||||
* 前端访问路由地址为:/amz/shipmentTracking
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-04-03
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/shipmentTracking")
|
||||
public class BizShipmentTrackingController extends BaseController {
|
||||
|
||||
private final IBizShipmentTrackingService bizShipmentTrackingService;
|
||||
|
||||
/**
|
||||
* 查询物流追踪列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentTracking:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<BizShipmentTrackingVo> list(BizShipmentTrackingBo bo, PageQuery pageQuery) {
|
||||
return bizShipmentTrackingService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出物流追踪列表
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentTracking:export")
|
||||
@Log(title = "物流追踪", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(BizShipmentTrackingBo bo, HttpServletResponse response) {
|
||||
List<BizShipmentTrackingVo> list = bizShipmentTrackingService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "物流追踪", BizShipmentTrackingVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取物流追踪详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentTracking:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<BizShipmentTrackingVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(bizShipmentTrackingService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增物流追踪
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentTracking:add")
|
||||
@Log(title = "物流追踪", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody BizShipmentTrackingBo bo) {
|
||||
return toAjax(bizShipmentTrackingService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改物流追踪
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentTracking:edit")
|
||||
@Log(title = "物流追踪", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody BizShipmentTrackingBo bo) {
|
||||
return toAjax(bizShipmentTrackingService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除物流追踪
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:shipmentTracking:remove")
|
||||
@Log(title = "物流追踪", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(bizShipmentTrackingService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,250 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.asinkj.amz.api.RemoteFBADataService;
|
||||
import org.asinkj.amz.service.LingxinCallback;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.SysAmazonStoreVo;
|
||||
import org.asinkj.amz.domain.bo.SysAmazonStoreBo;
|
||||
import org.asinkj.amz.service.ISysAmazonStoreService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* 亚马逊店铺信息
|
||||
* 前端访问路由地址为:/amz/amazonStore
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-17
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/amazonStore")
|
||||
public class SysAmazonStoreController extends BaseController {
|
||||
|
||||
private final ISysAmazonStoreService sysAmazonStoreService;
|
||||
|
||||
/**
|
||||
* 查询亚马逊店铺信息列表
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SysAmazonStoreVo> list(SysAmazonStoreBo bo, PageQuery pageQuery) {
|
||||
return sysAmazonStoreService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出亚马逊店铺信息列表
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:export")
|
||||
@Log(title = "亚马逊店铺信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SysAmazonStoreBo bo, HttpServletResponse response) {
|
||||
List<SysAmazonStoreVo> list = sysAmazonStoreService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "亚马逊店铺信息", SysAmazonStoreVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取亚马逊店铺信息详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:query")
|
||||
@GetMapping("/{id}")
|
||||
public R<SysAmazonStoreVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(sysAmazonStoreService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增亚马逊店铺信息
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:add")
|
||||
@Log(title = "亚马逊店铺信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysAmazonStoreBo bo) {
|
||||
return toAjax(sysAmazonStoreService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改亚马逊店铺信息
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:edit")
|
||||
@Log(title = "亚马逊店铺信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysAmazonStoreBo bo) {
|
||||
return toAjax(sysAmazonStoreService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除亚马逊店铺信息
|
||||
*
|
||||
* @param ids 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:remove")
|
||||
@Log(title = "亚马逊店铺信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] ids) {
|
||||
return toAjax(sysAmazonStoreService.deleteWithValidByIds(List.of(ids), true));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 亚马逊api
|
||||
*
|
||||
*
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:remove")
|
||||
@Log(title = "获取亚马逊店铺数据", businessType = BusinessType.OTHER)
|
||||
@GetMapping("/amz-store")
|
||||
public R<Void> getAmzApiToken() {
|
||||
sysAmazonStoreService.collectAmzStoreData();
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* 亚马逊api
|
||||
*
|
||||
*
|
||||
*/
|
||||
@SaCheckPermission("amz:amazonStore:remove")
|
||||
@Log(title = "亚马逊FBA", businessType = BusinessType.OTHER)
|
||||
@GetMapping("/amz-fba/{startDate}/{endDate}")
|
||||
public R<Void> getAmzFbaToken(@PathVariable String startDate, @PathVariable String endDate) {
|
||||
try {
|
||||
sysAmazonStoreService.pullAmzFBAData(startDate,endDate);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:amazonStore:remove")
|
||||
@Log(title = "亚马逊STA", businessType = BusinessType.OTHER)
|
||||
@GetMapping("/amz-sta/{startDate}/{endDate}")
|
||||
public R<Void> getAmzStaToken(@PathVariable String startDate, @PathVariable String endDate) {
|
||||
try {
|
||||
sysAmazonStoreService.pullAmzStaData(startDate, endDate, new LingxinCallback() {
|
||||
@Override
|
||||
public void onFinished(String result, int status) {
|
||||
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@GetMapping("/purchase/{startDate}/{endDate}")
|
||||
public R<Void> pullPurchaseOrderData(@PathVariable String startDate, @PathVariable String endDate) {
|
||||
try {
|
||||
sysAmazonStoreService.pullPurchaseOrderData(startDate, endDate, new LingxinCallback() {
|
||||
@Override
|
||||
public void onFinished(String result, int status) {
|
||||
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@GetMapping("/purchaseOut/{startDate}/{endDate}")
|
||||
public R<Void> updatePurchaseOrderSeller(@PathVariable String startDate, @PathVariable String endDate) {
|
||||
try {
|
||||
sysAmazonStoreService.updatePurchaseOrderSeller(startDate, endDate, new LingxinCallback() {
|
||||
@Override
|
||||
public void onFinished(String result, int status) {
|
||||
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取委外组合订单
|
||||
* @param startDate
|
||||
* @param endDate
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/purchaseOrderOut/{startDate}/{endDate}")
|
||||
public R<Void> updatePurchaseOrderOutSeller(@PathVariable String startDate, @PathVariable String endDate) {
|
||||
try {
|
||||
sysAmazonStoreService.pullPurchaseOutOrderData(startDate, endDate, new LingxinCallback() {
|
||||
@Override
|
||||
public void onFinished(String result, int status) {
|
||||
|
||||
}
|
||||
});
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:amazonStore:remove")
|
||||
@Log(title = "亚马逊FBAtest", businessType = BusinessType.OTHER)
|
||||
@GetMapping("/test")
|
||||
public R<Void> testAmzFbaToken() {
|
||||
try {
|
||||
sysAmazonStoreService.pullAmzBoxData2();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@SaCheckPermission("amz:amazonStore:remove")
|
||||
@Log(title = "亚马逊FBAtest", businessType = BusinessType.OTHER)
|
||||
@GetMapping("/test2")
|
||||
public R<Void> testAmzFbaToken2() {
|
||||
try {
|
||||
sysAmazonStoreService.testAmazonData2();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@Resource
|
||||
private RemoteFBADataService remoteFBADataService;
|
||||
@GetMapping("/test3")
|
||||
public R<Void> testRmaind() {
|
||||
try {
|
||||
remoteFBADataService.updateRemaind();
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.SysStatusHistoryVo;
|
||||
import org.asinkj.amz.domain.bo.SysStatusHistoryBo;
|
||||
import org.asinkj.amz.service.ISysStatusHistoryService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 状态历史
|
||||
* 前端访问路由地址为:/amz/statusHistory
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-06-09
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/statusHistory")
|
||||
public class SysStatusHistoryController extends BaseController {
|
||||
|
||||
private final ISysStatusHistoryService sysStatusHistoryService;
|
||||
|
||||
/**
|
||||
* 查询状态历史列表
|
||||
*/
|
||||
@SaCheckPermission("amz:statusHistory:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SysStatusHistoryVo> list(SysStatusHistoryBo bo, PageQuery pageQuery) {
|
||||
return sysStatusHistoryService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出状态历史列表
|
||||
*/
|
||||
@SaCheckPermission("amz:statusHistory:export")
|
||||
@Log(title = "状态历史", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SysStatusHistoryBo bo, HttpServletResponse response) {
|
||||
List<SysStatusHistoryVo> list = sysStatusHistoryService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "状态历史", SysStatusHistoryVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取状态历史详细信息
|
||||
*
|
||||
* @param historyId 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:statusHistory:query")
|
||||
@GetMapping("/{historyId}")
|
||||
public R<SysStatusHistoryVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long historyId) {
|
||||
return R.ok(sysStatusHistoryService.queryById(historyId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增状态历史
|
||||
*/
|
||||
@SaCheckPermission("amz:statusHistory:add")
|
||||
@Log(title = "状态历史", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysStatusHistoryBo bo) {
|
||||
return toAjax(sysStatusHistoryService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改状态历史
|
||||
*/
|
||||
@SaCheckPermission("amz:statusHistory:edit")
|
||||
@Log(title = "状态历史", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysStatusHistoryBo bo) {
|
||||
return toAjax(sysStatusHistoryService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除状态历史
|
||||
*
|
||||
* @param historyIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:statusHistory:remove")
|
||||
@Log(title = "状态历史", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{historyIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] historyIds) {
|
||||
return toAjax(sysStatusHistoryService.deleteWithValidByIds(List.of(historyIds), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,106 @@
|
||||
package org.asinkj.amz.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.asinkj.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.asinkj.common.log.annotation.Log;
|
||||
import org.asinkj.common.web.core.BaseController;
|
||||
import org.asinkj.common.mybatis.core.page.PageQuery;
|
||||
import org.asinkj.common.core.domain.R;
|
||||
import org.asinkj.common.core.validate.AddGroup;
|
||||
import org.asinkj.common.core.validate.EditGroup;
|
||||
import org.asinkj.common.log.enums.BusinessType;
|
||||
import org.asinkj.common.excel.utils.ExcelUtil;
|
||||
import org.asinkj.amz.domain.vo.SysUserVo;
|
||||
import org.asinkj.amz.domain.bo.SysUserBo;
|
||||
import org.asinkj.amz.service.ISysUserService;
|
||||
import org.asinkj.common.mybatis.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 用户信息
|
||||
* 前端访问路由地址为:/amz/user
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-06-17
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
public class SysUserController extends BaseController {
|
||||
|
||||
private final ISysUserService sysUserService;
|
||||
|
||||
/**
|
||||
* 查询用户信息列表
|
||||
*/
|
||||
@SaCheckPermission("amz:user:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<SysUserVo> list(SysUserBo bo, PageQuery pageQuery) {
|
||||
return sysUserService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出用户信息列表
|
||||
*/
|
||||
@SaCheckPermission("amz:user:export")
|
||||
@Log(title = "用户信息", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(SysUserBo bo, HttpServletResponse response) {
|
||||
List<SysUserVo> list = sysUserService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "用户信息", SysUserVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息详细信息
|
||||
*
|
||||
* @param userId 主键
|
||||
*/
|
||||
@SaCheckPermission("amz:user:query")
|
||||
@GetMapping("/{userId}")
|
||||
public R<SysUserVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long userId) {
|
||||
return R.ok(sysUserService.queryById(userId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增用户信息
|
||||
*/
|
||||
@SaCheckPermission("amz:user:add")
|
||||
@Log(title = "用户信息", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody SysUserBo bo) {
|
||||
return toAjax(sysUserService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户信息
|
||||
*/
|
||||
@SaCheckPermission("amz:user:edit")
|
||||
@Log(title = "用户信息", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SysUserBo bo) {
|
||||
return toAjax(sysUserService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户信息
|
||||
*
|
||||
* @param userIds 主键串
|
||||
*/
|
||||
@SaCheckPermission("amz:user:remove")
|
||||
@Log(title = "用户信息", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{userIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] userIds) {
|
||||
return toAjax(sysUserService.deleteWithValidByIds(List.of(userIds), true));
|
||||
}
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物流询价屏蔽记录对象 biz_inquiry_blacklist
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-04-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_inquiry_blacklist")
|
||||
public class BizInquiryBlacklist extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 自增主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联的询价单ID(外键)
|
||||
*/
|
||||
private Long inquiryId;
|
||||
|
||||
/**
|
||||
* 物流商ID(外键)
|
||||
*/
|
||||
private Long providerId;
|
||||
|
||||
/**
|
||||
* 屏蔽状态标识:0=正常显示,1=已屏蔽
|
||||
*/
|
||||
private String isBlocked;
|
||||
|
||||
/**
|
||||
* 逻辑删除标记:0=有效数据,1=已删除
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,118 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.asinking.entity.FbaShipmentApiResponse;
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物流询价对象 biz_inquiry_request
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-21
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_inquiry_request")
|
||||
public class BizInquiryRequest extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID(自增序列)
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 询价单号(规则:INQ+年月+6位序列)
|
||||
*/
|
||||
private String inquiryNo;
|
||||
|
||||
/**
|
||||
* 发起人id
|
||||
*/
|
||||
private Long requesterId;
|
||||
|
||||
/**
|
||||
* 发起人名称
|
||||
*/
|
||||
private String requesterName;
|
||||
|
||||
/**
|
||||
* 目标物流商ID列表(JSON数组格式,示例:[101,202,303])
|
||||
*/
|
||||
private String targetProviders;
|
||||
|
||||
/**
|
||||
* 目的地(存储四级行政编码,如CN310115)
|
||||
*/
|
||||
private String destination;
|
||||
|
||||
/**
|
||||
* 运输方式(枚举值:AIR-空运/SEA-海运/LAND-公路/RAIL-铁路)
|
||||
*/
|
||||
private String transportChannel;
|
||||
|
||||
/**
|
||||
* 询价状态(状态机:OPEN-开放中/CLOSED-已关闭/COMPLETED-已完成)
|
||||
*/
|
||||
private String inquiryStatus;
|
||||
|
||||
/**
|
||||
* 报价截止时间(超过此时限自动关闭询价)
|
||||
*/
|
||||
private LocalDateTime deadline;
|
||||
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 渠道ID(system=dict_code,custom=自定义渠道ID)
|
||||
*/
|
||||
private Long channelId;
|
||||
|
||||
/**
|
||||
* 渠道名称
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 报价有效的开始日期
|
||||
*/
|
||||
private Date effectiveStartTime;
|
||||
|
||||
/**
|
||||
* 报价有效的结束日期
|
||||
*/
|
||||
private Date effectiveEndTime;
|
||||
|
||||
private String customsFlag;
|
||||
|
||||
/**
|
||||
* 报价目标日期
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date quoteDate;
|
||||
|
||||
|
||||
private FbaShipmentApiResponse.Address shipToAddress;
|
||||
|
||||
private String type;
|
||||
|
||||
private String shipmentId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物流商渠道对象 biz_logistics_channel
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_logistics_channel")
|
||||
public class BizLogisticsChannel extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 渠道ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 物流商用户ID(关联sys_user)
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 渠道名称
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 渠道描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 渠道类型(system=系统/custom=自定义)
|
||||
*/
|
||||
private String channelType;
|
||||
|
||||
/**
|
||||
* 国家
|
||||
*/
|
||||
private String country;
|
||||
|
||||
/**
|
||||
* 运输方式
|
||||
*/
|
||||
private String shippingMethod;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,51 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物流商自定义渠道对象 biz_logistics_custom_channel
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_logistics_channel")
|
||||
public class BizLogisticsCustomChannel extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 渠道ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 物流商用户ID(关联sys_user)
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 渠道名称
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 渠道描述
|
||||
*/
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,104 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 物流订单对象 biz_logistics_order
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-24
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_logistics_order")
|
||||
public class BizLogisticsOrder extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键(应用层生成的全局唯一ID,如雪花算法)
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* FBA货件编号(亚马逊系统生成的唯一标识)
|
||||
*/
|
||||
private String fbaShipmentId;
|
||||
|
||||
/**
|
||||
* 订单编号(应用层生成的唯一业务流水号)
|
||||
*/
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 物流商ID(关联物流商信息表)
|
||||
*/
|
||||
private Long logisticsProviderId;
|
||||
|
||||
/**
|
||||
* 物流商名称(冗余存储,避免高频联表查询)
|
||||
*/
|
||||
private String logisticsProviderName;
|
||||
|
||||
/**
|
||||
* 物流渠道(如空运/海运/快递等)
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 目的地仓库名称或编码
|
||||
*/
|
||||
private String destination;
|
||||
|
||||
/**
|
||||
* 总箱子数量(此订单包含的箱子总数)
|
||||
*/
|
||||
private Long boxQuantity;
|
||||
|
||||
/**
|
||||
* 总货件数量(商品件数总和)
|
||||
*/
|
||||
private Long shipmentQuantity;
|
||||
|
||||
/**
|
||||
* 亚马逊仓库实际上架日期
|
||||
*/
|
||||
private Date amazonShelfDate;
|
||||
|
||||
/**
|
||||
* 上架时效(单位:天,从发货到上架的总天数)
|
||||
*/
|
||||
private Long shelfTimeliness;
|
||||
|
||||
|
||||
/**
|
||||
* 根据哪个报价单生成的报价单
|
||||
*/
|
||||
private Long quoteOrderId;
|
||||
|
||||
/**
|
||||
* 删除标记(0=正常,1=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private String podUrl;
|
||||
|
||||
|
||||
private String status;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<BizLogisticsOrderDetail> details;
|
||||
|
||||
}
|
@ -0,0 +1,191 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物流订单明细(按箱子维度存储)对象 biz_logistics_order_detail
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-24
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_logistics_order_detail")
|
||||
public class BizLogisticsOrderDetail extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键(应用层生成的全局唯一ID)
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联主表ID(biz_logistics_order.id)
|
||||
*/
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* FBA货件编号(冗余存储,避免联表查询)
|
||||
*/
|
||||
private String fbaShipmentId;
|
||||
|
||||
|
||||
/**
|
||||
* FBA箱号(亚马逊系统中箱子的唯一标识)
|
||||
*/
|
||||
private String fbaBoxNumber;
|
||||
|
||||
/**
|
||||
* 物流商ID(冗余存储)
|
||||
*/
|
||||
private Long logisticsProviderId;
|
||||
|
||||
/**
|
||||
* 物流商名称(冗余存储)
|
||||
*/
|
||||
private String logisticsProviderName;
|
||||
|
||||
/**
|
||||
* 物流渠道(与主表一致)
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 目的地仓库(冗余存储)
|
||||
*/
|
||||
private String destination;
|
||||
|
||||
/**
|
||||
* 计划数量(该箱子预计装载的商品数量)
|
||||
*/
|
||||
private Long plannedQuantity;
|
||||
|
||||
/**
|
||||
* 实际货件数量(该箱子实际装载的商品数量)
|
||||
*/
|
||||
private Long shipmentQuantity;
|
||||
|
||||
/**
|
||||
* 物流追踪号(物流商提供的唯一包裹标识)
|
||||
*/
|
||||
private String trackingNumber;
|
||||
|
||||
/**
|
||||
* 供应商称重(单位:KG,由供应商提供)
|
||||
*/
|
||||
private Long supplierWeight;
|
||||
|
||||
/**
|
||||
* 物流商计重(单位:KG,物流商实际测量值)
|
||||
*/
|
||||
private Long logisticsWeight;
|
||||
|
||||
/**
|
||||
* 称重差异(应用层计算:物流商计重 - 供应商称重)
|
||||
*/
|
||||
private Long weightDiff;
|
||||
|
||||
/**
|
||||
* 物流单价(单位:元/KG,由合同或报价确定)
|
||||
*/
|
||||
private Long pricePerKg;
|
||||
|
||||
/**
|
||||
* 物流计价重量(应用层根据业务规则计算)
|
||||
*/
|
||||
private Long logisticsCalculationPrice;
|
||||
|
||||
/**
|
||||
* 其他物流费用(如报关费、保险费等)
|
||||
*/
|
||||
private Long otherFee;
|
||||
|
||||
/**
|
||||
* 费用合计(应用层计算:物流计价 + 其他费用)
|
||||
*/
|
||||
private Long totalFee;
|
||||
|
||||
/**
|
||||
* 物流状态(pending:待发运/in_transit:运输中/delivered:已签收)
|
||||
*/
|
||||
private String logisticsStatus;
|
||||
|
||||
/**
|
||||
* 预计签收日期(物流商提供的预估日期)
|
||||
*/
|
||||
private Date estimatedDeliveryDate;
|
||||
|
||||
/**
|
||||
* 实际签收日期(物流商回传的实际日期)
|
||||
*/
|
||||
private Date actualDeliveryDate;
|
||||
|
||||
/**
|
||||
* 运输时效(单位:天,实际签收日期 - 发货日期)
|
||||
*/
|
||||
private Long timeliness;
|
||||
|
||||
/**
|
||||
* 删除标记(0=正常,1=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 物流商确认接收时间
|
||||
*/
|
||||
private Date carrierConfirmTime;
|
||||
|
||||
/**
|
||||
* 已提货时间
|
||||
*/
|
||||
private Date goodsReceiptTime;
|
||||
|
||||
/**
|
||||
* 转运开始时间
|
||||
*/
|
||||
private Date transferStartTime;
|
||||
|
||||
/**
|
||||
* 最终签收时间
|
||||
*/
|
||||
private Date signedTime;
|
||||
|
||||
/**
|
||||
* 排仓时间
|
||||
*/
|
||||
private Date scheduleTime;
|
||||
|
||||
/**
|
||||
* 船舶离港时间
|
||||
*/
|
||||
private Date vesselDepartTime;
|
||||
|
||||
/**
|
||||
* 目的港到达时间
|
||||
*/
|
||||
private Date portArrivalTime;
|
||||
|
||||
/**
|
||||
* 查验开始时间
|
||||
*/
|
||||
private Date inspectionTime;
|
||||
|
||||
/**
|
||||
* 末端提取时间
|
||||
*/
|
||||
private Date deliveryPickupTime;
|
||||
|
||||
private Long quoteOrderId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物流订单确认对象 biz_logistics_order_quotation
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-04-21
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_logistics_order_quotation")
|
||||
public class BizLogisticsOrderQuotation extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键(应用层生成的全局唯一ID,如雪花算法)
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* FBA货件编号(亚马逊系统生成的唯一标识)
|
||||
*/
|
||||
private String fbaShipmentId;
|
||||
|
||||
/**
|
||||
* 订单编号(应用层生成的唯一业务流水号)
|
||||
*/
|
||||
private String orderId;
|
||||
|
||||
/**
|
||||
* 物流商ID(关联物流商信息表)
|
||||
*/
|
||||
private Long logisticsProviderId;
|
||||
|
||||
/**
|
||||
* 物流商名称(冗余存储,避免高频联表查询)
|
||||
*/
|
||||
private String logisticsProviderName;
|
||||
|
||||
/**
|
||||
* 物流渠道(如空运/海运/快递等)
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 目的地仓库名称或编码
|
||||
*/
|
||||
private String destination;
|
||||
|
||||
/**
|
||||
* 总箱子数量(此订单包含的箱子总数)
|
||||
*/
|
||||
private Long boxQuantity;
|
||||
|
||||
/**
|
||||
* 总货件数量(商品件数总和)
|
||||
*/
|
||||
private Long shipmentQuantity;
|
||||
|
||||
/**
|
||||
* 删除标记(0=正常,1=删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
|
||||
private String confirm;
|
||||
|
||||
/**
|
||||
* 根据哪个报价单生成的订单
|
||||
*/
|
||||
private Long quoteOrderId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,129 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 物流报价对象 biz_logistics_quote
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_logistics_quote")
|
||||
public class BizLogisticsQuote extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 物流商用户ID(关联sys_user表)
|
||||
*/
|
||||
private Long userId;
|
||||
/**
|
||||
* 物流商
|
||||
*/
|
||||
private String logisticsName;
|
||||
|
||||
/**
|
||||
* 目的地(建议使用ISO国家代码如CN/US/GB)
|
||||
*/
|
||||
private String destination;
|
||||
|
||||
/**
|
||||
* 渠道名称(冗余存储,保证查询效率)
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 基础价格
|
||||
*/
|
||||
private BigDecimal price;
|
||||
|
||||
/**
|
||||
* 时效(单位:天)
|
||||
*/
|
||||
private Long leadTime;
|
||||
|
||||
private Long minLeadTime;
|
||||
|
||||
|
||||
/**
|
||||
* 附加费
|
||||
*/
|
||||
private Long surcharge;
|
||||
|
||||
/**
|
||||
* 报价生效日期
|
||||
*/
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private Date quoteDate;
|
||||
|
||||
/**
|
||||
* 提交状态(Y已提交 N未提交)
|
||||
*/
|
||||
private String isSubmitted;
|
||||
|
||||
/**
|
||||
* 报价备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 渠道类型(system=系统/custom=自定义)
|
||||
*/
|
||||
private String channelType;
|
||||
|
||||
/**
|
||||
* 渠道ID(system=dict_code,custom=自定义渠道ID)
|
||||
*/
|
||||
private Long channelId;
|
||||
|
||||
/**
|
||||
* 是否双清包税(N不是 Y是)
|
||||
*/
|
||||
private String isDdp;
|
||||
|
||||
/**
|
||||
* 单位
|
||||
*/
|
||||
private String unit;
|
||||
|
||||
private Long inquiryId;
|
||||
|
||||
private String customsFlag;
|
||||
|
||||
/**
|
||||
* 后端物流类型
|
||||
*/
|
||||
private String backLogisticsType;
|
||||
|
||||
private String type;
|
||||
|
||||
private String shipmentId;
|
||||
|
||||
private BigDecimal totalPrice;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,100 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import io.github.linpeilie.annotations.AutoMapping;
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 采购订单明细对象 biz_order_out_item
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_order_out_item")
|
||||
public class BizOrderOutItem extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private String purchaseOrderSn;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 明细项自增主键
|
||||
*/
|
||||
@TableId(value = "item_id", type = IdType.ASSIGN_ID)
|
||||
private Long itemId;
|
||||
|
||||
/**
|
||||
* 关联采购订单号 (外键)
|
||||
*/
|
||||
private String outOrderSn;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* SKU编码
|
||||
*/
|
||||
private String sku;
|
||||
|
||||
/**
|
||||
* 采购需求数量
|
||||
*/
|
||||
private Long quantityRequire;
|
||||
|
||||
/**
|
||||
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date bizCreateTime;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
*/
|
||||
private String createRealname;
|
||||
|
||||
/**
|
||||
* 预计到达时间
|
||||
*/
|
||||
private String expectArriveTime;
|
||||
|
||||
/**
|
||||
* 仓库名称
|
||||
*/
|
||||
private String warehouseName;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
private String supplierName;
|
||||
|
||||
/**
|
||||
* 实际到货数量
|
||||
*/
|
||||
private Long quantityReal;
|
||||
|
||||
/**
|
||||
* 已入库数量
|
||||
*/
|
||||
private Long quantityEntry;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,76 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 产品装箱规格对象 biz_packing_specs
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-17
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_packing_specs")
|
||||
public class BizPackingSpecs extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 规格ID(主键)
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联采购单明细项ID
|
||||
*/
|
||||
private Long sendOrderId;
|
||||
|
||||
/**
|
||||
* 规格名称(如规格A)
|
||||
*/
|
||||
private String specName;
|
||||
|
||||
/**
|
||||
* 箱数(单位:箱)
|
||||
*/
|
||||
private Long cartonCount;
|
||||
|
||||
/**
|
||||
* 每箱件数(单位:件)
|
||||
*/
|
||||
private Long piecesPerCarton;
|
||||
|
||||
/**
|
||||
* 箱子长度(单位:厘米)
|
||||
*/
|
||||
private Long length;
|
||||
|
||||
/**
|
||||
* 箱子宽度(单位:厘米)
|
||||
*/
|
||||
private Long width;
|
||||
|
||||
/**
|
||||
* 箱子高度(单位:厘米)
|
||||
*/
|
||||
private Long height;
|
||||
|
||||
/**
|
||||
* 单箱重量(单位:千克)
|
||||
*/
|
||||
private Long weight;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,302 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapping;
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 采购单主对象 biz_purchase_order
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_purchase_order")
|
||||
public class BizPurchaseOrder extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 采购单号
|
||||
*/
|
||||
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
|
||||
private String orderSn;
|
||||
|
||||
/**
|
||||
* 自定义单号
|
||||
*/
|
||||
private String customOrderSn;
|
||||
|
||||
/**
|
||||
* 供应商ID
|
||||
*/
|
||||
private Long supplierId;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
private String supplierName;
|
||||
|
||||
/**
|
||||
* 采购员ID
|
||||
*/
|
||||
private Long optUid;
|
||||
|
||||
/**
|
||||
* 审核人姓名
|
||||
*/
|
||||
private String auditorRealname;
|
||||
|
||||
/**
|
||||
* 操作人姓名
|
||||
*/
|
||||
private String optRealname;
|
||||
|
||||
/**
|
||||
* 最后操作人姓名
|
||||
*/
|
||||
private String lastRealname;
|
||||
|
||||
/**
|
||||
* 下单时间
|
||||
*/
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date orderTime;
|
||||
|
||||
/**
|
||||
* 应付货款(手工)
|
||||
*/
|
||||
private String payment;
|
||||
|
||||
/**
|
||||
* 审核人员ID
|
||||
*/
|
||||
private Long auditorUid;
|
||||
|
||||
/**
|
||||
* 审核时间
|
||||
*/
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date auditorTime;
|
||||
|
||||
/**
|
||||
* 最后操作人员ID
|
||||
*/
|
||||
private Long lastUid;
|
||||
|
||||
/**
|
||||
* 最后操作时间
|
||||
*/
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date lastTime;
|
||||
|
||||
/**
|
||||
* 作废原因
|
||||
*/
|
||||
private String reason;
|
||||
|
||||
/**
|
||||
* 是否含税:0 否,1 是
|
||||
*/
|
||||
private Long isTax;
|
||||
|
||||
/**
|
||||
* 采购单状态:-1 作废, 3 待提交, 1 待下单, 2 待签收, 9 完成, 121 待审核, 122 驳回, 124 作废
|
||||
*/
|
||||
private Long status;
|
||||
|
||||
/**
|
||||
* 状态说明
|
||||
*/
|
||||
private String statusText;
|
||||
|
||||
/**
|
||||
* 支付状态说明
|
||||
*/
|
||||
private String payStatusText;
|
||||
|
||||
/**
|
||||
* 到货状态:1 未到货, 2 部分到货, 3 全部到货
|
||||
*/
|
||||
private Long statusShipped;
|
||||
|
||||
/**
|
||||
* 到货状态说明
|
||||
*/
|
||||
private String statusShippedText;
|
||||
|
||||
/**
|
||||
* 货物总价
|
||||
*/
|
||||
private Long amountTotal;
|
||||
|
||||
/**
|
||||
* 总金额
|
||||
*/
|
||||
private Long totalPrice;
|
||||
|
||||
/**
|
||||
* 币种符号
|
||||
*/
|
||||
private String icon;
|
||||
|
||||
/**
|
||||
* 付款状态:0 未申请, 1 已申请, 2 部分付款, 3 已付款
|
||||
*/
|
||||
private Long payStatus;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 其他费用
|
||||
*/
|
||||
private Long otherFee;
|
||||
|
||||
/**
|
||||
* 其他费用币种
|
||||
*/
|
||||
private String otherCurrency;
|
||||
|
||||
/**
|
||||
* 费用分摊方式:0 不分摊, 1 按金额, 2 按数量
|
||||
*/
|
||||
private Long feePartType;
|
||||
|
||||
/**
|
||||
* 运费
|
||||
*/
|
||||
private Long shippingPrice;
|
||||
|
||||
/**
|
||||
* 运费币种
|
||||
*/
|
||||
private String shippingCurrency;
|
||||
|
||||
/**
|
||||
* 采购币种
|
||||
*/
|
||||
private String purchaseCurrency;
|
||||
|
||||
/**
|
||||
* 采购汇率
|
||||
*/
|
||||
private Long purchaseRate;
|
||||
|
||||
/**
|
||||
* 采购总量
|
||||
*/
|
||||
private Long quantityTotal;
|
||||
|
||||
/**
|
||||
* 仓库ID
|
||||
*/
|
||||
private Long wid;
|
||||
|
||||
/**
|
||||
* 仓库名称
|
||||
*/
|
||||
private String wareHouseName;
|
||||
|
||||
/**
|
||||
* 仓库名(备份)
|
||||
*/
|
||||
private String wareHouseBakName;
|
||||
|
||||
/**
|
||||
* 入库量
|
||||
*/
|
||||
private Long quantityEntry;
|
||||
|
||||
/**
|
||||
* 实际采购量
|
||||
*/
|
||||
private Long quantityReal;
|
||||
|
||||
/**
|
||||
* 待到货量
|
||||
*/
|
||||
private Long quantityReceive;
|
||||
|
||||
/**
|
||||
* 采购方ID
|
||||
*/
|
||||
private Long purchaserId;
|
||||
|
||||
/**
|
||||
* 联系人
|
||||
*/
|
||||
private String contactPerson;
|
||||
|
||||
/**
|
||||
* 联系方式
|
||||
*/
|
||||
private String contactNumber;
|
||||
|
||||
/**
|
||||
* 结算方式:7 现结, 8 月结
|
||||
*/
|
||||
private Long settlementMethod;
|
||||
|
||||
/**
|
||||
* 结算描述
|
||||
*/
|
||||
private String settlementDescription;
|
||||
|
||||
/**
|
||||
* 支付方式
|
||||
*/
|
||||
private Long paymentMethod;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 交货天数
|
||||
*/
|
||||
private Long estDlvDays;
|
||||
|
||||
/**
|
||||
* 订单状态
|
||||
*/
|
||||
private String orderStatus;
|
||||
|
||||
/**
|
||||
* 交货时间
|
||||
*/
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date deliveryTime;
|
||||
|
||||
/**
|
||||
* 订单交付变动天数
|
||||
*/
|
||||
private Long dlvTimeVar;
|
||||
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date divTime;
|
||||
|
||||
|
||||
private String storeName;
|
||||
|
||||
private String type;
|
||||
|
||||
}
|
@ -0,0 +1,199 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapping;
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 供应商订单产品明细对象 biz_purchase_order_item
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-10
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_purchase_order_item")
|
||||
public class BizPurchaseOrderItem extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 采购单子项ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联采购单号
|
||||
*/
|
||||
private String orderSn;
|
||||
|
||||
/**
|
||||
* 仓库ID
|
||||
*/
|
||||
private Long wid;
|
||||
|
||||
/**
|
||||
* 仓库名称
|
||||
*/
|
||||
private String wareHouseName;
|
||||
|
||||
/**
|
||||
* 采购计划号
|
||||
*/
|
||||
private String planSn;
|
||||
|
||||
/**
|
||||
* 本地产品ID
|
||||
*/
|
||||
private Long productId;
|
||||
|
||||
/**
|
||||
* 品名
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* SKU
|
||||
*/
|
||||
private String sku;
|
||||
|
||||
/**
|
||||
* FNSKU
|
||||
*/
|
||||
private String fnsku;
|
||||
|
||||
/**
|
||||
* 店铺ID
|
||||
*/
|
||||
private Long sid;
|
||||
|
||||
/**
|
||||
* 型号
|
||||
*/
|
||||
private String model;
|
||||
|
||||
/**
|
||||
* 含税单价
|
||||
*/
|
||||
private Long price;
|
||||
|
||||
/**
|
||||
* 价税合计
|
||||
*/
|
||||
private Long amount;
|
||||
|
||||
/**
|
||||
* 计划采购量
|
||||
*/
|
||||
private Long quantityPlan;
|
||||
|
||||
/**
|
||||
* 实际采购量
|
||||
*/
|
||||
private Long quantityReal;
|
||||
|
||||
/**
|
||||
* 到货入库量
|
||||
*/
|
||||
private Long quantityEntry;
|
||||
|
||||
/**
|
||||
* 待到货量
|
||||
*/
|
||||
private Long quantityReceive;
|
||||
|
||||
/**
|
||||
* 退货数
|
||||
*/
|
||||
private Long quantityReturn;
|
||||
|
||||
/**
|
||||
* 换货量
|
||||
*/
|
||||
private Long quantityExchange;
|
||||
|
||||
/**
|
||||
* 质检量
|
||||
*/
|
||||
private Long quantityQc;
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 待质检量
|
||||
*/
|
||||
private Long quantityQcPrepare;
|
||||
|
||||
/**
|
||||
* 期待到货时间
|
||||
*/
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date expectArriveTime;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 箱数
|
||||
*/
|
||||
private Long casesNum;
|
||||
|
||||
/**
|
||||
* 单箱数量
|
||||
*/
|
||||
private Long quantityPerCase;
|
||||
|
||||
/**
|
||||
* 是否删除:0 否,1 是
|
||||
*/
|
||||
private Long isDelete;
|
||||
|
||||
/**
|
||||
* 税率
|
||||
*/
|
||||
private String taxRate;
|
||||
|
||||
/**
|
||||
* SPU
|
||||
*/
|
||||
private String spu;
|
||||
|
||||
/**
|
||||
* 款名
|
||||
*/
|
||||
private String spuName;
|
||||
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date confirmTime;
|
||||
|
||||
private Long confirmBy;
|
||||
private String confirmOpenId;
|
||||
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
private Long sfgAvlQty;
|
||||
private String orderStatus;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,121 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import io.github.linpeilie.annotations.AutoMapping;
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 组合订单对象 biz_purchase_out_order
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_purchase_out_order")
|
||||
public class BizPurchaseOutOrder extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 订单唯一编号
|
||||
*/
|
||||
private String orderSn;
|
||||
|
||||
/**
|
||||
* 仓库名称
|
||||
*/
|
||||
private String warehouseName;
|
||||
|
||||
/**
|
||||
* 外包仓库名称
|
||||
*/
|
||||
private String outsourceWarehouseName;
|
||||
|
||||
/**
|
||||
* 供应商名称
|
||||
*/
|
||||
private String supplierName;
|
||||
|
||||
/**
|
||||
* 业务创建时间 (Jackson格式: yyyy-MM-dd HH:mm:ss)
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@AutoMapping(dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date bizCreateTime;
|
||||
|
||||
/**
|
||||
* 状态文本描述
|
||||
*/
|
||||
private String statusText;
|
||||
|
||||
/**
|
||||
* 创建人姓名
|
||||
*/
|
||||
private String createRealname;
|
||||
|
||||
/**
|
||||
* PTP流水号
|
||||
*/
|
||||
private String ptpSn;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 标准SKU编码
|
||||
*/
|
||||
private String sku;
|
||||
|
||||
/**
|
||||
* FNSKU编码
|
||||
*/
|
||||
private String fnsku;
|
||||
|
||||
/**
|
||||
* 外包数量
|
||||
*/
|
||||
private Long outsourceQuantity;
|
||||
|
||||
/**
|
||||
* 实收数量
|
||||
*/
|
||||
private Long receiveQuantity;
|
||||
|
||||
/**
|
||||
* 预计到达时间
|
||||
*/
|
||||
private String expectArriveTime;
|
||||
|
||||
/**
|
||||
* MSKU编码列表 (数组存储)
|
||||
*/
|
||||
private String msku;
|
||||
|
||||
/**
|
||||
* 关联计划单号列表 (数组存储)
|
||||
*/
|
||||
private String planSn;
|
||||
|
||||
/**
|
||||
* 销售商名称
|
||||
*/
|
||||
private String sellerName;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,119 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 供应商创建的发货单对象 biz_send_order
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-14
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_send_order")
|
||||
public class BizSendOrder extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
@TableId
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 采购单号
|
||||
*/
|
||||
private String orderSn;
|
||||
|
||||
|
||||
private Long orderDetailId;
|
||||
|
||||
|
||||
/**
|
||||
* 发货日期
|
||||
*/
|
||||
private Date sendDate;
|
||||
|
||||
/**
|
||||
* 采购店铺
|
||||
*/
|
||||
private String storeName;
|
||||
|
||||
/**
|
||||
* 产品名称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 发货数量
|
||||
*/
|
||||
private Long quantitySend;
|
||||
|
||||
/**
|
||||
* 单箱产品数量
|
||||
*/
|
||||
private Long quantityPerBox;
|
||||
|
||||
/**
|
||||
* 箱数
|
||||
*/
|
||||
private Long boxCount;
|
||||
|
||||
/**
|
||||
* 箱子尺寸
|
||||
*/
|
||||
private String boxDimensions;
|
||||
|
||||
/**
|
||||
* 单箱重量
|
||||
*/
|
||||
private Long weightPerBox;
|
||||
|
||||
/**
|
||||
* 实际采购店铺
|
||||
*/
|
||||
private String realStoreName;
|
||||
|
||||
/**
|
||||
* 发货状态(pending=未发货,confirm=确认发货, processing=发货中,completed=发货完成)
|
||||
*/
|
||||
private String sendStatus;
|
||||
|
||||
private Long sendId;
|
||||
|
||||
private String sendName;
|
||||
|
||||
|
||||
private String sendDetail;
|
||||
|
||||
private String logisticsProviderName;
|
||||
|
||||
private Long logisticsProviderId;
|
||||
|
||||
private String shipmentId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String shipmentIdKey;
|
||||
|
||||
private String type;
|
||||
|
||||
private String createName;
|
||||
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 供应商创建的发货单明细对象 biz_send_order_item
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-07-24
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_send_order_item")
|
||||
public class BizSendOrderItem extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 删除标志(0正常 2删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 采购单号
|
||||
*/
|
||||
private String orderSn;
|
||||
|
||||
/**
|
||||
* 发货日期
|
||||
*/
|
||||
private Date sendDate;
|
||||
|
||||
/**
|
||||
* 发货日期
|
||||
*/
|
||||
private String storeName;
|
||||
|
||||
/**
|
||||
* 发货日期
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
private String sku;
|
||||
|
||||
/**
|
||||
* 发货日期
|
||||
*/
|
||||
private Long quantitySend;
|
||||
|
||||
private Long mainOrderSn;
|
||||
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.mybatis.core.domain.BaseEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 发货单与货运计划多对多关联对象 biz_send_shipment_rel
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-06-20
|
||||
*/
|
||||
@Data
|
||||
//@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_send_shipment_rel")
|
||||
public class BizSendShipmentRel {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 发货单ID
|
||||
*/
|
||||
private Long sendOrderId;
|
||||
|
||||
/**
|
||||
* 货运计划ID
|
||||
*/
|
||||
private Long shipmentPlanId;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,140 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 货件转发对象 biz_ship_forward
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-05-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_ship_forward")
|
||||
public class BizShipForward extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 采购单号
|
||||
*/
|
||||
private String orderSn;
|
||||
|
||||
private String inOrderSn;
|
||||
|
||||
/**
|
||||
* 采购店铺名称
|
||||
*/
|
||||
private String storeName;
|
||||
|
||||
/**
|
||||
* 产品唯一标识码
|
||||
*/
|
||||
private String sku;
|
||||
|
||||
/**
|
||||
* 产品全称
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
/**
|
||||
* 实际发货数量
|
||||
*/
|
||||
private Long quantitySend;
|
||||
|
||||
/**
|
||||
* 发货供应商名称
|
||||
*/
|
||||
private String outSupplierName;
|
||||
|
||||
/**
|
||||
* 发货供应商系统ID
|
||||
*/
|
||||
private Long outSupplierId;
|
||||
|
||||
/**
|
||||
* 收货供应商名称
|
||||
*/
|
||||
private String inSupplierName;
|
||||
|
||||
/**
|
||||
* 收货供应商系统ID
|
||||
*/
|
||||
private Long inSupplierId;
|
||||
|
||||
/**
|
||||
* 计划发货起始时间
|
||||
*/
|
||||
private Date shipmentStart;
|
||||
|
||||
/**
|
||||
* 计划发货截止时间
|
||||
*/
|
||||
private Date shipmentEnd;
|
||||
|
||||
/**
|
||||
* 订单跟进人姓名
|
||||
*/
|
||||
private String trackerName;
|
||||
|
||||
/**
|
||||
* 订单跟进人系统ID
|
||||
*/
|
||||
private Long trackerId;
|
||||
|
||||
/**
|
||||
* 软删除标记(0-正常,2-删除)
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* 转发状态(pending=未转发,processing=转发中,completed=转发完成)
|
||||
*/
|
||||
private String fwdStatus;
|
||||
|
||||
/**
|
||||
* 发货时间
|
||||
*/
|
||||
private Date sendTime;
|
||||
|
||||
/**
|
||||
* 采购单子项ID
|
||||
*/
|
||||
private Long orderDetailId;
|
||||
|
||||
/**
|
||||
* 预计到达时间
|
||||
*/
|
||||
private Date expDeliveryDate;
|
||||
|
||||
|
||||
/**
|
||||
* 实际到达日期
|
||||
*/
|
||||
private Date deliveryDate;
|
||||
|
||||
/**
|
||||
* 箱数
|
||||
*/
|
||||
private Long boxNum;
|
||||
|
||||
private Long totalPrice;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 货品明细对象 biz_shipment_item
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-20
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_shipment_item")
|
||||
public class BizShipmentItem extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联货件ID
|
||||
*/
|
||||
private String shipmentId;
|
||||
|
||||
/**
|
||||
* 商家SKU
|
||||
*/
|
||||
private String msku;
|
||||
|
||||
/**
|
||||
* 仓储编码
|
||||
*/
|
||||
private String fnsku;
|
||||
|
||||
/**
|
||||
* 发货量
|
||||
*/
|
||||
private Long quantityShipped;
|
||||
|
||||
/**
|
||||
* 收货量
|
||||
*/
|
||||
private Long quantityReceived;
|
||||
|
||||
/**
|
||||
* 预处理说明
|
||||
*/
|
||||
private String prepInstruction;
|
||||
|
||||
/**
|
||||
* 责任方
|
||||
*/
|
||||
private String prepOwner;
|
||||
|
||||
/**
|
||||
* 商品SKU
|
||||
*/
|
||||
private String sku;
|
||||
|
||||
/**
|
||||
* 品名
|
||||
*/
|
||||
private String productName;
|
||||
|
||||
private String asin;
|
||||
|
||||
/**
|
||||
* 有效期
|
||||
*/
|
||||
private Date expiration;
|
||||
|
||||
/**
|
||||
* $column.columnComment
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,198 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import org.asinkj.amz.hanlder.AddressTypeHandler;
|
||||
import org.asinkj.asinking.entity.FbaShipmentApiResponse;
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
import java.io.Serial;
|
||||
|
||||
/**
|
||||
* 货件计划对象 biz_shipment_plan
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_shipment_plan")
|
||||
public class BizShipmentPlan extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* 主键ID
|
||||
*/
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 关联系统ID
|
||||
*/
|
||||
private Long sid;
|
||||
|
||||
/**
|
||||
* 货件编号
|
||||
*/
|
||||
private String shipmentId;
|
||||
|
||||
/**
|
||||
* 货件唯一编号
|
||||
*/
|
||||
private String shipmentUniqueId;
|
||||
|
||||
/**
|
||||
* 货件名称
|
||||
*/
|
||||
private String shipmentName;
|
||||
|
||||
/**
|
||||
* 是否关闭
|
||||
*/
|
||||
private String isClosed;
|
||||
|
||||
/**
|
||||
* 货件状态
|
||||
*/
|
||||
private String shipmentStatus;
|
||||
|
||||
/**
|
||||
* 物流中心编码
|
||||
*/
|
||||
private String destination;
|
||||
|
||||
/**
|
||||
* 运输模式
|
||||
*/
|
||||
private String shippingMode;
|
||||
|
||||
/**
|
||||
* 运输方案
|
||||
*/
|
||||
private String shippingSolution;
|
||||
|
||||
/**
|
||||
* 最后更新时间
|
||||
*/
|
||||
private Date gmtModified;
|
||||
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date gmtCreate;
|
||||
|
||||
/**
|
||||
* 同步时间
|
||||
*/
|
||||
private Date receivingTime;
|
||||
|
||||
/**
|
||||
* 计划发货日期
|
||||
*/
|
||||
private Date staShipmentDate;
|
||||
|
||||
/**
|
||||
* 预计到货开始日
|
||||
*/
|
||||
private Date staDeliveryStartDate;
|
||||
|
||||
/**
|
||||
* 预计到货截止日
|
||||
*/
|
||||
private Date staDeliveryEndDate;
|
||||
|
||||
/**
|
||||
* 发货地址
|
||||
*/
|
||||
@TableField(typeHandler = AddressTypeHandler.class)
|
||||
private FbaShipmentApiResponse.Address shipFromAddress;
|
||||
|
||||
/**
|
||||
* 收货地址
|
||||
*/
|
||||
@TableField(typeHandler = AddressTypeHandler.class)
|
||||
private FbaShipmentApiResponse.Address shipToAddress;
|
||||
|
||||
/**
|
||||
* 参考编号
|
||||
*/
|
||||
private String referenceId;
|
||||
|
||||
/**
|
||||
* 入库计划ID
|
||||
*/
|
||||
private String staInboundPlanId;
|
||||
|
||||
/**
|
||||
* 是否STA计划
|
||||
*/
|
||||
private String isSta;
|
||||
|
||||
/**
|
||||
* 运营操作货件状态
|
||||
*/
|
||||
private String fbaStatus;
|
||||
|
||||
/**
|
||||
* 总箱子数量
|
||||
*/
|
||||
private Long boxQuantity;
|
||||
|
||||
/**
|
||||
* 箱子尺寸
|
||||
*/
|
||||
private String boxSize;
|
||||
|
||||
/**
|
||||
* 供应商称重
|
||||
*/
|
||||
private Long vendorWeight;
|
||||
|
||||
/**
|
||||
* 套数(系统中的申报量)
|
||||
*/
|
||||
private Long setTotal;
|
||||
|
||||
/**
|
||||
* 渠道ID
|
||||
*/
|
||||
private Long channelId;
|
||||
|
||||
/**
|
||||
* 物流渠道
|
||||
*/
|
||||
private String channelName;
|
||||
|
||||
/**
|
||||
* 删除标记
|
||||
*/
|
||||
@TableLogic
|
||||
private String delFlag;
|
||||
|
||||
/**
|
||||
* sta 计划ID
|
||||
*/
|
||||
private String inboundPlanId;
|
||||
|
||||
/**
|
||||
* 供应商发货单id
|
||||
*/
|
||||
private Long sendOrderId;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String logisticsProviderName;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String address;
|
||||
|
||||
|
||||
private Long itemCount;
|
||||
|
||||
|
||||
|
||||
}
|
@ -0,0 +1,63 @@
|
||||
package org.asinkj.amz.domain;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.asinkj.amz.hanlder.AddressTypeHandler;
|
||||
import org.asinkj.asinking.entity.FbaShipmentApiResponse;
|
||||
import org.asinkj.common.tenant.core.TenantEntity;
|
||||
|
||||
import java.io.Serial;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 货件计划对象 biz_shipment_plan
|
||||
*
|
||||
* @author shuo hu
|
||||
* @date 2025-03-19
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@TableName("biz_shipment_plan")
|
||||
public class BizShipmentPlanFileData extends TenantEntity {
|
||||
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
/**
|
||||
* 货件编号
|
||||
*/
|
||||
@ExcelProperty(value = "货件编号")
|
||||
private String shipmentId;
|
||||
|
||||
|
||||
/**
|
||||
* 总箱子数量
|
||||
*/
|
||||
@ExcelProperty(value = "总箱子数量")
|
||||
private Long boxQuantity;
|
||||
|
||||
/**
|
||||
* 箱子尺寸
|
||||
*/
|
||||
@ExcelProperty(value = "箱子尺寸")
|
||||
private String boxSize;
|
||||
|
||||
/**
|
||||
* 总的物流商计重(单位:KG,物流商实际测量值)
|
||||
*/
|
||||
@ExcelProperty(value = "总的物流商计重")
|
||||
private Long vendorWeight;
|
||||
|
||||
/**
|
||||
* 套数(系统中的申报量)
|
||||
*/
|
||||
@ExcelProperty(value = "套数")
|
||||
private Long setTotal;
|
||||
|
||||
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user