Compare commits

..

8 Commits

Author SHA1 Message Date
9722a4ccf0 fix(address): 强化行政区划及坐标字段非空校验
- 将region_name、longitude、latitude字段设为非空
- 在SQL映射中添加region_code字段支持
- 修改实体类及服务逻辑,新增region_code字段赋值
- 增加对region_name、longitude、latitude字段的非空校验
- 新增region_code长度校验,完善字段长度限制
- 更新数据库表定义,调整相关字段约束
2026-07-20 21:06:34 +08:00
03a4fab114 fix(address): 强化行政区划及坐标字段非空校验
- 将region_name、longitude、latitude字段设为非空
- 在SQL映射中添加region_code字段支持
- 修改实体类及服务逻辑,新增region_code字段赋值
- 增加对region_name、longitude、latitude字段的非空校验
- 新增region_code长度校验,完善字段长度限制
- 更新数据库表定义,调整相关字段约束
2026-07-20 16:16:50 +08:00
f13963f5b8 1、调整IAM权限
2、新增常用地址模块
2026-07-17 18:23:56 +08:00
31c68a857a 1、调整币种汇率模块
2、新增保险记录模块
3、新增违章记录模块
4、新增换胎记录模块
5、新增事故记录模块
6、新增年检记录模块
7、新增里程记录模块
8、新增变更记录模块
9、新增油电记录模块
10、新增ETC记录模块
11、新增其他费用记录模块
2026-07-17 15:32:00 +08:00
34ee6e6269 菜单新增是否显示字段 2026-07-16 19:45:12 +08:00
0eba4ca98d 1、新增评分量化表
2、新增费用项
3、新增币种
4、新增客商类型
5、其他bug修复
2026-07-16 17:04:46 +08:00
29bbd5144d fix bug 2026-07-16 11:47:51 +08:00
3363628b7d fix bug 2026-07-16 11:39:53 +08:00
270 changed files with 23501 additions and 13 deletions

View File

@@ -197,7 +197,14 @@ Entity 基类的选择**直接决定** Service 和 ServiceImpl 的继承方式
- 分页统一使用 `Condition.getPage(query)` + `Condition.getQueryWrapper()`
- 禁止 JDBC 直连查询
### 6.9 日志
### 6.9 审计字段展示
- `create_user``update_user` 等审计字段只保存用户 ID禁止为了展示姓名改变表结构或覆盖审计 ID。
- 面向前端的 VO 应额外提供 `createUserName``updateUserName` 等展示字段,并使用 `@TableField(exist = false)` 标记。
- Entity → VO 转换统一在 `XxxWrapper` 中完成;审计人姓名通过 `UserCache.getUserRealName(userId)` 获取,优先返回用户真实姓名,缓存未命中时兜底返回用户 ID。
- Controller 不应在列表、详情方法中重复编写审计人翻译逻辑,避免各模块显示规则不一致。
### 6.10 日志
- 使用 `@Slf4j`,占位符传参(禁止字符串拼接)
- 包含关键业务标识,异常必须携带堆栈,禁止打印敏感信息

View File

@@ -0,0 +1,79 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.auth.endpoint;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor;
import org.springblade.core.oauth2.endpoint.OAuth2TokenEndPoint;
import org.springblade.core.oauth2.provider.OAuth2Response;
import org.springblade.core.tool.support.Kv;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
/**
* IAM统一身份认证端点
*
* @author Chill
*/
@RestController
@AllArgsConstructor
@RequestMapping("/iam/sso")
@Tag(name = "IAM统一身份认证", description = "IAM统一身份认证端点")
public class IamSsoEndpoint {
private static final String GRANT_TYPE = "iam_sso";
private final OAuth2TokenEndPoint tokenEndPoint;
/**
* IAM统一身份认证登录
*
* @param request 请求信息
* @return token
*/
@RequestMapping(value = "/token", method = {RequestMethod.GET, RequestMethod.POST})
@Operation(summary = "IAM统一身份认证登录", description = "使用IAM授权码换取本系统Token")
public ResponseEntity<Kv> token(HttpServletRequest request) {
String grantType = request.getParameter("grant_type");
if (!StringUtil.equals(GRANT_TYPE, grantType)) {
return ResponseEntity.ok(
OAuth2Response.create().ofFailure(400, "IAM统一身份认证接口仅支持iam_sso授权类型")
);
}
if (StringUtil.isBlank(request.getParameter("code"))) {
return ResponseEntity.ok(
OAuth2Response.create().ofFailure(400, "IAM统一身份认证授权码不能为空")
);
}
return tokenEndPoint.token();
}
}

View File

@@ -0,0 +1,143 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.auth.granter;
import org.springblade.core.oauth2.granter.TokenGranter;
import org.springblade.core.oauth2.granter.TokenGranterEnhancer;
import org.springblade.core.oauth2.granter.TokenGranterFactory;
import org.springblade.core.oauth2.props.OAuth2Properties;
import org.springblade.core.oauth2.provider.OAuth2Request;
import org.springblade.core.oauth2.provider.OAuth2Token;
import org.springblade.core.oauth2.service.OAuth2Client;
import org.springblade.core.oauth2.service.OAuth2User;
import java.util.List;
/**
* IAM统一身份认证授权器工厂
*
* @author Chill
*/
public class IamAwareTokenGranterFactory extends TokenGranterFactory {
private static final String AUTHORIZATION_CODE = "authorization_code";
private static final String IAM_SSO = "iam_sso";
private final IamSsoTokenGranter iamSsoTokenGranter;
private final TokenGranter authorizationCodeGranter;
private final List<TokenGranterEnhancer> tokenGranterEnhancers;
public IamAwareTokenGranterFactory(List<TokenGranter> tokenGranters,
List<TokenGranterEnhancer> tokenGranterEnhancers,
OAuth2Properties properties) {
super(tokenGranters, tokenGranterEnhancers, properties);
this.iamSsoTokenGranter = tokenGranters.stream()
.filter(IamSsoTokenGranter.class::isInstance)
.map(IamSsoTokenGranter.class::cast)
.findFirst()
.orElse(null);
this.authorizationCodeGranter = tokenGranters.stream()
.filter(tokenGranter -> AUTHORIZATION_CODE.equals(tokenGranter.type()))
.filter(tokenGranter -> !(tokenGranter instanceof IamSsoTokenGranter))
.findFirst()
.orElse(null);
this.tokenGranterEnhancers = tokenGranterEnhancers;
}
@Override
public TokenGranter create(String grantType) {
if (IAM_SSO.equals(grantType) && iamSsoTokenGranter != null) {
applyEnhancer(grantType, iamSsoTokenGranter);
return iamSsoTokenGranter;
}
if (AUTHORIZATION_CODE.equals(grantType) && iamSsoTokenGranter != null && authorizationCodeGranter != null) {
applyEnhancer(grantType, authorizationCodeGranter);
applyEnhancer(IAM_SSO, iamSsoTokenGranter);
return new IamAwareAuthorizationCodeGranter(iamSsoTokenGranter, authorizationCodeGranter);
}
return super.create(grantType);
}
private void applyEnhancer(String grantType, TokenGranter tokenGranter) {
tokenGranterEnhancers.stream()
.filter(enhancer -> grantType.equals(enhancer.type()))
.findFirst()
.ifPresent(tokenGranter::enhancer);
}
/**
* IAM授权码与本系统授权码分流
*
* @author Chill
*/
private static class IamAwareAuthorizationCodeGranter implements TokenGranter {
private final IamSsoTokenGranter iamSsoTokenGranter;
private final TokenGranter authorizationCodeGranter;
private final ThreadLocal<TokenGranter> currentGranter = new ThreadLocal<>();
private IamAwareAuthorizationCodeGranter(IamSsoTokenGranter iamSsoTokenGranter, TokenGranter authorizationCodeGranter) {
this.iamSsoTokenGranter = iamSsoTokenGranter;
this.authorizationCodeGranter = authorizationCodeGranter;
}
@Override
public String type() {
return AUTHORIZATION_CODE;
}
@Override
public OAuth2Client client(OAuth2Request request) {
return resolveGranter(request).client(request);
}
@Override
public OAuth2User user(OAuth2Request request) {
TokenGranter tokenGranter = resolveGranter(request);
currentGranter.set(tokenGranter);
return tokenGranter.user(request);
}
@Override
public OAuth2Token token(OAuth2User user, OAuth2Request request) {
try {
return currentGranter.get().token(user, request);
} finally {
currentGranter.remove();
}
}
@Override
public void enhancer(TokenGranterEnhancer enhancer) {
authorizationCodeGranter.enhancer(enhancer);
}
private TokenGranter resolveGranter(OAuth2Request request) {
return iamSsoTokenGranter.supports(request) ? iamSsoTokenGranter : authorizationCodeGranter;
}
}
}

View File

@@ -81,6 +81,7 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
private static final String GRANT_TYPE = "iam_sso";
private static final String IAM_GRANT_TYPE = "authorization_code";
private static final String IAM_TOKEN_URI = "/iam/sso/token";
private static final String BEARER_PREFIX = "Bearer ";
private static final String BASIC_PREFIX = "Basic ";
@@ -112,8 +113,8 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
@Override
public OAuth2Client client(OAuth2Request request) {
String clientId = request.getClientId();
String clientSecret = request.getClientSecret();
String clientId = StringUtil.isBlank(request.getClientId()) ? properties.getSystemClientId() : request.getClientId();
String clientSecret = StringUtil.isBlank(request.getClientSecret()) ? properties.getSystemClientSecret() : request.getClientSecret();
OAuth2Client client = clientService.loadByClientId(clientId);
if (!clientService.validateClient(client, clientId, clientSecret)) {
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
@@ -123,6 +124,9 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
@Override
public OAuth2User user(OAuth2Request request) {
if (!isDedicatedIamEndpoint(request)) {
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
}
if (!isIamRequest(request, true)) {
throw new UserInvalidException(OAuth2TokenConstant.TOKEN_NOT_CORRECT);
}
@@ -196,6 +200,11 @@ public class IamSsoTokenGranter extends AuthorizationCodeGranter {
return isIamRequest(request, false);
}
private boolean isDedicatedIamEndpoint(OAuth2Request request) {
return request.getHttpRequest() != null
&& request.getHttpRequest().getRequestURI().endsWith(IAM_TOKEN_URI);
}
private boolean isIamRequest(OAuth2Request request, boolean logMiss) {
String redirectUri = normalizeRedirectUri(request.getRedirectUri());
boolean iamRequest = StringUtil.isNotBlank(properties.getRedirectUri())

View File

@@ -57,6 +57,16 @@ public class IamSsoProperties {
*/
private String clientSecret;
/**
* 本系统发放Token使用的客户端ID。IAM回调入口不要求请求携带客户端认证时使用。
*/
private String systemClientId = "saber3";
/**
* 本系统发放Token使用的客户端密钥。IAM回调入口不要求请求携带客户端认证时使用。
*/
private String systemClientSecret = "saber3_secret";
/**
* IAM回调地址
*/

View File

@@ -71,6 +71,8 @@ iam:
profile-url: http://172.16.204.83:38000/gwzh/IAM/IAM_SSO_PROFILE
client-id: f0b52f23f71b1649c468
client-secret: 5b3d8575f0899946623ab86523ac3dd8ee98
system-client-id: saber3
system-client-secret: saber3_secret
redirect-uri: http://172.16.203.228:8000/callback
authorization: Z3d6aF90bXMtOVJJU0RVN1U6YW0yYkcwWnBJZ0RQZmtrSjNaZkZjUDBSaGFuSEtxQng=
profile-authorization: Z3d6aF90bXMtOVJJU0RVN1U6YW0yYkcwWnBJZ0RQZmtrSjNaZkZjUDBSaGFuSEtxQng=

View File

@@ -52,6 +52,9 @@ public class AuthProvider {
DEFAULT_SKIP_URL.add("/oauth/callback/**");
DEFAULT_SKIP_URL.add("/oauth/revoke/**");
DEFAULT_SKIP_URL.add("/oauth/refresh/**");
DEFAULT_SKIP_URL.add("/iam/sso/token/**");
DEFAULT_SKIP_URL.add("/blade-auth/iam/sso/token/**");
DEFAULT_SKIP_URL.add("/api/blade-auth/iam/sso/token/**");
DEFAULT_SKIP_URL.add("/token/**");
DEFAULT_SKIP_URL.add("/actuator/**");
DEFAULT_SKIP_URL.add("/v3/api-docs/**");

View File

@@ -0,0 +1,111 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 币种汇率实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_currency")
@Schema(description = "币种汇率")
public class Currency extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 币种代码
*/
@Schema(description = "币种代码")
private String code;
/**
* 币种中文名称
*/
@Schema(description = "币种中文名称")
private String name;
/**
* 币种英文名称
*/
@Schema(description = "币种英文名称")
private String englishName;
/**
* 货币符号
*/
@Schema(description = "货币符号")
private String symbol;
/**
* 小数位数
*/
@Schema(description = "小数位数")
private Integer decimalPlaces;
/**
* 汇率
*/
@Schema(description = "汇率")
private BigDecimal exchangeRate;
/**
* 生效日期
*/
@Schema(description = "生效日期")
private LocalDate effectiveDate;
/**
* 失效日期
*/
@TableField(updateStrategy = FieldStrategy.ALWAYS)
@Schema(description = "失效日期")
private LocalDate expiryDate;
/**
* 是否本位币
*/
@Schema(description = "是否本位币")
private Integer baseCurrency;
/**
* 数据来源
*/
@Schema(description = "数据来源")
private String dataSource;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,61 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
/**
* 客商类型实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_type")
@Schema(description = "客商类型")
public class CustomerType extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 中文名称
*/
@Schema(description = "中文名称")
private String name;
/**
* 英文名称
*/
@Schema(description = "英文名称")
private String englishName;
}

View File

@@ -0,0 +1,61 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
/**
* 费用项实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_fee_item")
@Schema(description = "费用项")
public class FeeItem extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 中文名称
*/
@Schema(description = "中文名称")
private String name;
/**
* 英文名称
*/
@Schema(description = "英文名称")
private String englishName;
}

View File

@@ -127,6 +127,12 @@ public class Menu implements Serializable {
@Schema(description = "是否打开新页面")
private Integer isOpen;
/**
* 是否显示
*/
@Schema(description = "是否显示")
private Integer isDisplay;
/**
* 备注
*/

View File

@@ -52,4 +52,11 @@ public class AirportMasterVO extends AirportMaster {
@Schema(description = "导入错误信息")
private String errorMessage;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,93 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.system.pojo.entity.Currency;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 币种汇率视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "币种汇率")
public class CurrencyVO extends Currency {
@Serial
private static final long serialVersionUID = 1L;
/**
* 导入错误信息
*/
@TableField(exist = false)
@Schema(description = "导入错误信息")
private String errorMessage;
@TableField(exist = false)
@Schema(description = "业务日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate businessDate;
@TableField(exist = false)
@Schema(description = "生效日期开始")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate effectiveDateStart;
@TableField(exist = false)
@Schema(description = "生效日期结束")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate effectiveDateEnd;
@TableField(exist = false)
@Schema(description = "失效日期开始")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate expiryDateStart;
@TableField(exist = false)
@Schema(description = "失效日期结束")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate expiryDateEnd;
@TableField(exist = false)
@Schema(description = "更新时间开始")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTimeStart;
@TableField(exist = false)
@Schema(description = "更新时间结束")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTimeEnd;
}

View File

@@ -0,0 +1,47 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.system.pojo.entity.CustomerType;
import java.io.Serial;
/**
* 客商类型视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商类型")
public class CustomerTypeVO extends CustomerType {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,47 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.system.pojo.entity.FeeItem;
import java.io.Serial;
/**
* 费用项视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "费用项")
public class FeeItemVO extends FeeItem {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -101,4 +101,9 @@ public class MenuVO extends Menu implements INode<MenuVO> {
* 是否新窗口打开
*/
private String isOpenName;
/**
* 是否显示
*/
private String isDisplayName;
}

View File

@@ -52,4 +52,11 @@ public class PortTerminalVO extends PortTerminal {
@Schema(description = "导入错误信息")
private String errorMessage;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -52,4 +52,11 @@ public class RailwayStationVO extends RailwayStation {
@Schema(description = "导入错误信息")
private String errorMessage;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,108 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 事故记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_accident_record")
@Schema(description = "事故记录")
public class AccidentRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 车船类型
*/
@Schema(description = "车船类型")
private String vehicleType;
/**
* 车牌号/船号
*/
@Schema(description = "车牌号/船号")
private String vehicleNo;
/**
* 事故发生日期
*/
@Schema(description = "事故发生日期")
private LocalDate accidentDate;
/**
* 事故发生地点
*/
@Schema(description = "事故发生地点")
private String accidentLocation;
/**
* 事故性质
*/
@Schema(description = "事故性质")
private String accidentNature;
/**
* 事故责任
*/
@Schema(description = "事故责任")
private String accidentResponsibility;
/**
* 直接经济损失
*/
@Schema(description = "直接经济损失")
private BigDecimal directEconomicLoss;
/**
* 保险理赔金额
*/
@Schema(description = "保险理赔金额")
private BigDecimal insuranceClaimAmount;
/**
* 事故原因及损坏情况
*/
@Schema(description = "事故原因及损坏情况")
private String accidentReasonDamage;
/**
* 附件
*/
@Schema(description = "附件")
private String attachments;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,88 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 年检记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_annual_inspection_record")
@Schema(description = "年检记录")
public class AnnualInspectionRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "车船类型")
private String vehicleType;
@Schema(description = "车牌号/船号")
private String vehicleNo;
@Schema(description = "检测评定日期")
private LocalDate inspectionAssessmentDate;
@Schema(description = "车辆技术等级")
private String vehicleTechnicalLevel;
@Schema(description = "船舶检验类型")
private String shipInspectionType;
@Schema(description = "有效期截止日")
private LocalDate validUntilDate;
@Schema(description = "客车类型及等级")
private String passengerTypeLevel;
@Schema(description = "检测评定单位")
private String inspectionUnit;
@Schema(description = "费用")
private BigDecimal fee;
@Schema(description = "评定(复核)单位")
private String assessmentUnit;
@Schema(description = "附件")
private String attachments;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,93 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 常用地址实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_common_address")
@Schema(description = "常用地址")
public class CommonAddress extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "地址编号")
private String addressCode;
@Schema(description = "地址名称")
private String addressName;
@Schema(description = "地址类型")
private String addressType;
@Schema(description = "来源主数据ID")
private Long sourceId;
@Schema(description = "站点编码")
private String siteCode;
@Schema(description = "详细地址")
private String detailAddress;
@Schema(description = "行政区划编码")
private String regionCode;
@Schema(description = "行政区划")
private String regionName;
@Schema(description = "经度")
private BigDecimal longitude;
@Schema(description = "纬度")
private BigDecimal latitude;
@Schema(description = "所属组织ID")
private Long deptId;
@Schema(description = "所属组织")
private String deptName;
@Schema(description = "联系人")
private String contactName;
@Schema(description = "联系方式")
private String contactPhone;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,105 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 信用等级评估标准实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_credit_rating_standard")
@Schema(description = "信用等级评估标准")
public class CreditRatingStandard extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 评分量化表ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分量化表ID")
private Long quantificationId;
/**
* 信用等级
*/
@Schema(description = "信用等级")
private String creditLevel;
/**
* 得分率下限
*/
@Schema(description = "得分率下限")
private Integer scoreRateLower;
/**
* 得分率上限
*/
@Schema(description = "得分率上限")
private Integer scoreRateUpper;
/**
* 得分率每增加
*/
@Schema(description = "得分率每增加")
private Integer scoreRateIncrease;
/**
* 最大资金使用额度下限
*/
@Schema(description = "最大资金使用额度下限")
private BigDecimal creditLimitLower;
/**
* 最大资金使用额度上限
*/
@Schema(description = "最大资金使用额度上限")
private BigDecimal creditLimitUpper;
/**
* 额度增加
*/
@Schema(description = "额度增加")
private BigDecimal creditLimitIncrease;
/**
* 标准说明
*/
@Schema(description = "标准说明")
private String standardDescription;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sort;
}

View File

@@ -0,0 +1,74 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 评分分类实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_credit_score_category")
@Schema(description = "评分分类")
public class CreditScoreCategory extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 评分量化表ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分量化表ID")
private Long quantificationId;
/**
* 分类编码
*/
@Schema(description = "分类编码")
private String categoryCode;
/**
* 分类名称
*/
@Schema(description = "分类名称")
private String categoryName;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sort;
}

View File

@@ -0,0 +1,90 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 评分项目实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_credit_score_item")
@Schema(description = "评分项目")
public class CreditScoreItem extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 评分量化表ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分量化表ID")
private Long quantificationId;
/**
* 评分分类ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分分类ID")
private Long categoryId;
/**
* 分类编码
*/
@Schema(description = "分类编码")
private String categoryCode;
/**
* 评分项目
*/
@Schema(description = "评分项目")
private String itemName;
/**
* 得分说明
*/
@Schema(description = "得分说明")
private String scoreDescription;
/**
* 选项描述
*/
@Schema(description = "选项描述")
private String optionDescription;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sort;
}

View File

@@ -0,0 +1,81 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 评分项目选项实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_credit_score_item_option")
@Schema(description = "评分项目选项")
public class CreditScoreItemOption extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 评分量化表ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分量化表ID")
private Long quantificationId;
/**
* 评分项目ID
*/
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分项目ID")
private Long itemId;
/**
* 选项描述
*/
@Schema(description = "选项描述")
private String optionName;
/**
* 分值
*/
@Schema(description = "分值")
private BigDecimal score;
/**
* 排序
*/
@Schema(description = "排序")
private Integer sort;
}

View File

@@ -0,0 +1,66 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 评分量化表实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_credit_score_quantification")
@Schema(description = "评分量化表")
public class CreditScoreQuantification extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 评定表名称
*/
@Schema(description = "评定表名称")
private String name;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
/**
* 标准说明
*/
@Schema(description = "标准说明")
private String standardDescription;
}

View File

@@ -0,0 +1,137 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 客商档案实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_archive")
@Schema(description = "客商档案")
public class CustomerArchive extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "客商编号")
private String customerCode;
@Schema(description = "客商简称")
private String shortName;
@Schema(description = "客商全称")
private String fullName;
@Schema(description = "客商性质")
private String customerNature;
@Schema(description = "统一社会信用代码")
private String unifiedCreditCode;
@Schema(description = "客商类型")
private String customerType;
@Schema(description = "所属项目")
private String projectName;
@Schema(description = "注册/实际经营地址")
private String registeredAddress;
@Schema(description = "法人/负责人")
private String legalPerson;
@Schema(description = "联系电话")
private String contactPhone;
@Schema(description = "所属组织ID")
private Long deptId;
@Schema(description = "所属组织")
private String deptName;
@Schema(description = "开票税点")
private BigDecimal invoiceTaxRate;
@Schema(description = "经营范围")
private String businessScope;
@Schema(description = "营业期限类型")
private String businessTermType;
@Schema(description = "营业期限截止日")
private LocalDate businessEndDate;
@Schema(description = "注册资金(万元)")
private BigDecimal registeredCapital;
@Schema(description = "客商负责人")
private String principal;
@Schema(description = "助记码")
private String mnemonicCode;
@Schema(description = "客户等级")
private String customerLevel;
@Schema(description = "最大资金使用额度(万元)")
private BigDecimal maxCreditLimit;
@Schema(description = "申请总资金使用额度(万元)")
private BigDecimal applyCreditLimit;
@Schema(description = "备注")
private String remark;
@Schema(description = "资质附件JSON")
private String qualificationAttachments;
@Schema(description = "准入类型temporary/formal")
private String accessType;
@Schema(description = "审批状态draft/reviewing/approved/rejected")
private String approvalStatus;
@Schema(description = "当前节点")
private String currentNode;
@Schema(description = "当前处理人")
private String currentProcessor;
@Schema(description = "审核通过时间")
private LocalDateTime approvedTime;
}

View File

@@ -0,0 +1,63 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.time.LocalDateTime;
/**
* 客商变更记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_change_record")
@Schema(description = "客商变更记录")
public class CustomerChangeRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "客商ID")
private Long customerId;
@Schema(description = "变更日期")
private LocalDateTime changeTime;
@Schema(description = "变更内容")
private String changeContent;
@Schema(description = "变更账号")
private String changeUserName;
}

View File

@@ -0,0 +1,71 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 客商联系人实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_contact")
@Schema(description = "客商联系人")
public class CustomerContact extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "客商ID")
private Long customerId;
@Schema(description = "联系人姓名")
private String contactName;
@Schema(description = "联系电话")
private String contactPhone;
@Schema(description = "邮箱")
private String email;
@Schema(description = "职务")
private String positionName;
@Schema(description = "是否默认")
private Integer isDefault;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,92 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 客商评分记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_credit_score")
@Schema(description = "客商评分记录")
public class CustomerCreditScore extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "客商ID")
private Long customerId;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分量化表ID")
private Long quantificationId;
@Schema(description = "评分日期")
private LocalDate scoreDate;
@Schema(description = "自评得分")
private BigDecimal selfScore;
@Schema(description = "复评得分")
private BigDecimal reviewScore;
@Schema(description = "最终得分")
private BigDecimal finalScore;
@Schema(description = "信用等级")
private String creditLevel;
@Schema(description = "最大资金使用额度(万元)")
private BigDecimal maxCreditLimit;
@Schema(description = "拟申请总资金使用额度(万元)")
private BigDecimal applyCreditLimit;
@Schema(description = "自评状态")
private String selfStatus;
@Schema(description = "复评状态")
private String reviewStatus;
@Schema(description = "备注")
private String remark;
@Schema(description = "证明材料JSON")
private String proofAttachments;
}

View File

@@ -0,0 +1,92 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 客商评分明细实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_credit_score_detail")
@Schema(description = "客商评分明细")
public class CustomerCreditScoreDetail extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分记录ID")
private Long scoreId;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分量化表ID")
private Long quantificationId;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "评分项目ID")
private Long itemId;
@Schema(description = "评分分类编码")
private String categoryCode;
@Schema(description = "评分分类名称")
private String categoryName;
@Schema(description = "评分项目")
private String itemName;
@Schema(description = "评分标准")
private String optionDescription;
@Schema(description = "选项JSON")
private String optionsJson;
@Schema(description = "已选选项")
private String selectedOption;
@Schema(description = "得分说明")
private String scoreDescription;
@Schema(description = "自评得分")
private BigDecimal selfScore;
@Schema(description = "复评得分")
private BigDecimal reviewScore;
@Schema(description = "排序")
private Integer sort;
}

View File

@@ -0,0 +1,86 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 客商发票信息实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_invoice_info")
@Schema(description = "客商发票信息")
public class CustomerInvoiceInfo extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "客商ID")
private Long customerId;
@Schema(description = "受票方名称")
private String invoiceTitle;
@Schema(description = "纳税人识别号")
private String taxNo;
@Schema(description = "开户行名称")
private String bankName;
@Schema(description = "注册电话")
private String registeredPhone;
@Schema(description = "银行账号")
private String bankAccount;
@Schema(description = "注册地址")
private String registeredAddress;
@Schema(description = "邮箱")
private String email;
@Schema(description = "收件人姓名")
private String receiverName;
@Schema(description = "收件人电话")
private String receiverPhone;
@Schema(description = "收件人地址")
private String receiverAddress;
@Schema(description = "是否默认")
private Integer isDefault;
}

View File

@@ -0,0 +1,74 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 客商收款信息实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_customer_receipt_account")
@Schema(description = "客商收款信息")
public class CustomerReceiptAccount extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@JsonSerialize(using = ToStringSerializer.class)
@Schema(description = "客商ID")
private Long customerId;
@Schema(description = "收款方名称")
private String accountName;
@Schema(description = "开户行名称")
private String bankName;
@Schema(description = "银行账号")
private String bankAccount;
@Schema(description = "注册电话")
private String registeredPhone;
@Schema(description = "注册地址")
private String registeredAddress;
@Schema(description = "纳税人识别号")
private String taxNo;
@Schema(description = "是否默认")
private Integer isDefault;
}

View File

@@ -0,0 +1,212 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.time.LocalDate;
/**
* 司机管理实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_transport_driver")
@Schema(description = "司机管理")
public class Driver extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 司机姓名
*/
@Schema(description = "司机姓名")
private String driverName;
/**
* 身份证号
*/
@Schema(description = "身份证号")
private String idCardNo;
/**
* 出生年月
*/
@Schema(description = "出生年月")
private LocalDate birthday;
/**
* 性别
*/
@Schema(description = "性别")
private String gender;
/**
* 民族
*/
@Schema(description = "民族")
private String nation;
/**
* 学历
*/
@Schema(description = "学历")
private String education;
/**
* 地址区划
*/
@Schema(description = "地址区划")
private String addressRegion;
/**
* 详细地址
*/
@Schema(description = "详细地址")
private String address;
/**
* 岗位,多个使用逗号分隔
*/
@Schema(description = "岗位,多个使用逗号分隔")
private String posts;
/**
* 身份证正面照
*/
@Schema(description = "身份证正面照")
private String idCardFront;
/**
* 身份证反面照
*/
@Schema(description = "身份证反面照")
private String idCardBack;
/**
* 大头照
*/
@Schema(description = "大头照")
private String headPhoto;
/**
* 准驾车型
*/
@Schema(description = "准驾车型")
private String drivingType;
/**
* 驾驶证档案编号
*/
@Schema(description = "驾驶证档案编号")
private String drivingLicenseNo;
/**
* 驾驶证有效期起
*/
@Schema(description = "驾驶证有效期起")
private LocalDate drivingLicenseStartDate;
/**
* 驾驶证有效期止
*/
@Schema(description = "驾驶证有效期止")
private LocalDate drivingLicenseEndDate;
/**
* 驾驶证长期有效
*/
@Schema(description = "驾驶证长期有效")
private Integer drivingLicenseLongTerm;
/**
* 驾驶证主页
*/
@Schema(description = "驾驶证主页")
private String drivingLicenseFront;
/**
* 驾驶证副页
*/
@Schema(description = "驾驶证副页")
private String drivingLicenseBack;
/**
* 从业资格证类型
*/
@Schema(description = "从业资格证类型")
private String qualificationType;
/**
* 资格证号
*/
@Schema(description = "资格证号")
private String qualificationNo;
/**
* 从业资格证有效期止
*/
@Schema(description = "从业资格证有效期止")
private LocalDate qualificationEndDate;
/**
* 从业资格证长期有效
*/
@Schema(description = "从业资格证长期有效")
private Integer qualificationLongTerm;
/**
* 从业资格证封面页
*/
@Schema(description = "从业资格证封面页")
private String qualificationFront;
/**
* 从业资格证内容页
*/
@Schema(description = "从业资格证内容页")
private String qualificationBack;
/**
* 司机类型
*/
@Schema(description = "司机类型")
private String driverType;
/**
* 手机号
*/
@Schema(description = "手机号")
private String mobile;
/**
* 与联系人关系
*/
@Schema(description = "与联系人关系")
private String contactRelation;
/**
* 所属组织
*/
@Schema(description = "所属组织")
private String organizationName;
/**
* 紧急联系人姓名
*/
@Schema(description = "紧急联系人姓名")
private String emergencyContactName;
/**
* 紧急联系人手机号
*/
@Schema(description = "紧急联系人手机号")
private String emergencyContactMobile;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,63 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* ETC记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_etc_record")
@Schema(description = "ETC记录")
public class EtcRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "ETC卡号")
private String etcCardNo;
@Schema(description = "入口时间")
private LocalDateTime entryTime;
@Schema(description = "出口时间")
private LocalDateTime exitTime;
@Schema(description = "入口站")
private String entryStation;
@Schema(description = "出口站")
private String exitStation;
@Schema(description = "数据来源")
private String dataSource;
@Schema(description = "交易金额")
private BigDecimal transactionAmount;
@Schema(description = "附件")
private String attachments;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,118 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 保险记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_insurance_record")
@Schema(description = "保险记录")
public class InsuranceRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 车船类型
*/
@Schema(description = "车船类型")
private String vehicleType;
/**
* 车牌号/船号
*/
@Schema(description = "车牌号/船号")
private String vehicleNo;
/**
* 保险类型
*/
@Schema(description = "保险类型")
private String insuranceType;
/**
* 保单号
*/
@Schema(description = "保单号")
private String policyNo;
/**
* 开始日期
*/
@Schema(description = "开始日期")
private LocalDate startDate;
/**
* 结束日期
*/
@Schema(description = "结束日期")
private LocalDate endDate;
/**
* 保额
*/
@Schema(description = "保额")
private BigDecimal insuredAmount;
/**
* 保费
*/
@Schema(description = "保费")
private BigDecimal premium;
/**
* 发票号
*/
@Schema(description = "发票号")
private String invoiceNo;
/**
* 开票日期
*/
@Schema(description = "开票日期")
private LocalDate invoiceDate;
/**
* OCR识别模板
*/
@Schema(description = "OCR识别模板")
private String ocrTemplate;
/**
* 保单附件
*/
@Schema(description = "保单附件")
private String policyFile;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,72 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 里程记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_mileage_record")
@Schema(description = "里程记录")
public class MileageRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "车牌号")
private String vehicleNo;
@Schema(description = "上月统计里程")
private BigDecimal previousMonthMileage;
@Schema(description = "本月统计里程")
private BigDecimal currentMonthMileage;
@Schema(description = "本月行驶里程")
private BigDecimal monthlyMileage;
@Schema(description = "累计行驶里程")
private BigDecimal totalMileage;
@Schema(description = "附件")
private String attachments;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,97 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 油电记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_oil_electric_record")
@Schema(description = "油电记录")
public class OilElectricRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "卡号")
private String cardNo;
@Schema(description = "交易时间")
private LocalDateTime transactionTime;
@Schema(description = "车船类型")
private String vehicleType;
@Schema(description = "费用类型")
private String feeType;
@Schema(description = "油品")
private String oilProduct;
@Schema(description = "车牌号/船号")
private String vehicleNo;
@Schema(description = "持卡人")
private String cardHolder;
@Schema(description = "数据来源")
private String dataSource;
@Schema(description = "数量")
private BigDecimal quantity;
@Schema(description = "单价")
private BigDecimal unitPrice;
@Schema(description = "交易金额")
private BigDecimal transactionAmount;
@Schema(description = "余额")
private BigDecimal balance;
@Schema(description = "站点")
private String station;
@Schema(description = "附件")
private String attachments;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,57 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 其他费用记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_other_expense_record")
@Schema(description = "其他费用记录")
public class OtherExpenseRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "费用日期")
private LocalDate expenseDate;
@Schema(description = "其他费用类型")
private String expenseType;
@Schema(description = "车船类型")
private String vehicleType;
@Schema(description = "车牌号/船号")
private String vehicleNo;
@Schema(description = "数据来源")
private String dataSource;
@Schema(description = "金额")
private BigDecimal amount;
@Schema(description = "附件")
private String attachments;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,98 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 换胎记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_tire_replacement_record")
@Schema(description = "换胎记录")
public class TireReplacementRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 车牌号
*/
@Schema(description = "车牌号")
private String vehicleNo;
/**
* 处理人
*/
@Schema(description = "处理人")
private String handler;
/**
* 换胎时间
*/
@Schema(description = "换胎时间")
private LocalDate replacementTime;
/**
* 轮胎品牌
*/
@Schema(description = "轮胎品牌")
private String tireBrand;
/**
* 换胎数量
*/
@Schema(description = "换胎数量")
private Integer tireQuantity;
/**
* 换胎费用
*/
@Schema(description = "换胎费用")
private BigDecimal replacementCost;
/**
* 换胎说明
*/
@Schema(description = "换胎说明")
private String replacementDescription;
/**
* 附件
*/
@Schema(description = "附件")
private String attachments;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,68 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
/**
* 变更记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_transport_change_record")
@Schema(description = "变更记录")
public class TransportChangeRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "车船类型")
private String vehicleType;
@Schema(description = "车牌号/船号")
private String vehicleNo;
@Schema(description = "变更事项")
private String changeItem;
@Schema(description = "变更内容")
private String changeContent;
@Schema(description = "附件")
private String attachments;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,105 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.time.LocalDate;
/**
* 船舶管理实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_transport_ship")
@Schema(description = "船舶管理")
public class TransportShip extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "船舶名")
private String shipName;
@Schema(description = "船舶识别号")
private String shipIdentifierNo;
@Schema(description = "所属组织")
private String organizationName;
@Schema(description = "船检登记号")
private String shipInspectionNo;
@Schema(description = "船舶类型")
private String shipType;
@Schema(description = "国籍证有效期至")
private LocalDate nationalityCertEndDate;
@Schema(description = "国籍证长期有效")
private Integer nationalityCertLongTerm;
@Schema(description = "国籍证图片")
private String nationalityCertImage;
@Schema(description = "最低安全配员证书有效期至")
private LocalDate safeManningCertEndDate;
@Schema(description = "最低安全配员证书长期有效")
private Integer safeManningCertLongTerm;
@Schema(description = "最低安全配员证书图片")
private String safeManningCertImage;
@Schema(description = "营业运输证有效期至")
private LocalDate businessTransportCertEndDate;
@Schema(description = "营业运输证长期有效")
private Integer businessTransportCertLongTerm;
@Schema(description = "营业运输证图片")
private String businessTransportCertImage;
@Schema(description = "承租有效期至")
private LocalDate leaseEndDate;
@Schema(description = "承租长期有效")
private Integer leaseLongTerm;
@Schema(description = "承租合同图片")
private String leaseContractImage;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,197 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.time.LocalDate;
/**
* 车辆管理实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_transport_vehicle")
@Schema(description = "车辆管理")
public class TransportVehicle extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 所属组织
*/
@Schema(description = "所属组织")
private String organizationName;
/**
* 车牌号
*/
@Schema(description = "车牌号")
private String plateNo;
/**
* 车辆类型
*/
@Schema(description = "车辆类型")
private String vehicleType;
/**
* 外廓长度,毫米
*/
@Schema(description = "外廓长度,毫米")
private Integer outerLength;
/**
* 外廓宽度,毫米
*/
@Schema(description = "外廓宽度,毫米")
private Integer outerWidth;
/**
* 外廓高度,毫米
*/
@Schema(description = "外廓高度,毫米")
private Integer outerHeight;
/**
* 核定载质量KG
*/
@Schema(description = "核定载质量KG")
private Integer approvedLoadKg;
/**
* 准牵引总质量KG
*/
@Schema(description = "准牵引总质量KG")
private Integer tractionMassKg;
/**
* 业务关系
*/
@Schema(description = "业务关系")
private String businessRelation;
/**
* 能源类型
*/
@Schema(description = "能源类型")
private String energyType;
/**
* 强制报废日期
*/
@Schema(description = "强制报废日期")
private LocalDate compulsoryScrapDate;
/**
* 强制报废长期有效
*/
@Schema(description = "强制报废长期有效")
private Integer compulsoryScrapLongTerm;
/**
* 海关备案号
*/
@Schema(description = "海关备案号")
private String customsRecordNo;
/**
* 行驶证档案编号
*/
@Schema(description = "行驶证档案编号")
private String drivingLicenseNo;
/**
* 行驶证有效期起
*/
@Schema(description = "行驶证有效期起")
private LocalDate drivingLicenseStartDate;
/**
* 行驶证有效期止
*/
@Schema(description = "行驶证有效期止")
private LocalDate drivingLicenseEndDate;
/**
* 行驶证长期有效
*/
@Schema(description = "行驶证长期有效")
private Integer drivingLicenseLongTerm;
/**
* 行驶证图片
*/
@Schema(description = "行驶证图片")
private String drivingLicenseImage;
/**
* 道路运输证号
*/
@Schema(description = "道路运输证号")
private String roadTransportCertNo;
/**
* 道路运输证有效期起
*/
@Schema(description = "道路运输证有效期起")
private LocalDate roadTransportCertStartDate;
/**
* 道路运输证有效期止
*/
@Schema(description = "道路运输证有效期止")
private LocalDate roadTransportCertEndDate;
/**
* 道路运输证长期有效
*/
@Schema(description = "道路运输证长期有效")
private Integer roadTransportCertLongTerm;
/**
* 道路运输证图片
*/
@Schema(description = "道路运输证图片")
private String roadTransportCertImage;
/**
* 道路运输年审有效期
*/
@Schema(description = "道路运输年审有效期")
private LocalDate annualReviewEndDate;
/**
* 道路运输年审长期有效
*/
@Schema(description = "道路运输年审长期有效")
private Integer annualReviewLongTerm;
/**
* 机动车登记编号
*/
@Schema(description = "机动车登记编号")
private String registrationNo;
/**
* 机动车登记日期
*/
@Schema(description = "机动车登记日期")
private LocalDate registrationDate;
/**
* 机动车登记本图片
*/
@Schema(description = "机动车登记本图片")
private String registrationImage;
/**
* 备注
*/
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,123 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 违章记录实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_violation_record")
@Schema(description = "违章记录")
public class ViolationRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 车船类型
*/
@Schema(description = "车船类型")
private String vehicleType;
/**
* 车牌号/船号
*/
@Schema(description = "车牌号/船号")
private String vehicleNo;
/**
* 驾驶人/船长
*/
@Schema(description = "驾驶人/船长")
private String driverName;
/**
* 类型
*/
@Schema(description = "类型")
private String violationType;
/**
* 事项
*/
@Schema(description = "事项")
private String violationItem;
/**
* 违章时间
*/
@Schema(description = "违章时间")
private LocalDateTime violationTime;
/**
* 地点
*/
@Schema(description = "地点")
private String location;
/**
* 被罚金额
*/
@Schema(description = "被罚金额")
private BigDecimal fineAmount;
/**
* 被扣分数
*/
@Schema(description = "被扣分数")
private Integer deductPoints;
/**
* 被罚单位
*/
@Schema(description = "被罚单位")
private String penaltyUnit;
/**
* 处理状态
*/
@Schema(description = "处理状态")
private String processStatus;
/**
* 过程描述
*/
@Schema(description = "过程描述")
private String processDescription;
/**
* 处理结果
*/
@Schema(description = "处理结果")
private String processResult;
/**
* 附件
*/
@Schema(description = "附件")
private String attachments;
}

View File

@@ -0,0 +1,90 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.AccidentRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 事故记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "事故记录")
public class AccidentRecordVO extends AccidentRecord {
@Serial
private static final long serialVersionUID = 1L;
/**
* 事故评定开始日期
*/
@TableField(exist = false)
@Schema(description = "事故评定开始日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate accidentAssessmentDateStart;
/**
* 事故评定结束日期
*/
@TableField(exist = false)
@Schema(description = "事故评定结束日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate accidentAssessmentDateEnd;
/**
* 创建开始时间
*/
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
/**
* 创建结束时间
*/
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,75 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.AnnualInspectionRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 年检记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "年检记录")
public class AnnualInspectionRecordVO extends AnnualInspectionRecord {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "检测评定开始日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate inspectionAssessmentDateStart;
@TableField(exist = false)
@Schema(description = "检测评定结束日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate inspectionAssessmentDateEnd;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,54 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 常用地址删除结果
*
* @author Chill
*/
@Data
@Schema(description = "常用地址删除结果")
public class CommonAddressRemoveResultVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "成功删除条数")
private Integer successCount = 0;
@Schema(description = "引用跳过条数")
private Integer skippedCount = 0;
@Schema(description = "跳过地址编号")
private List<String> skippedAddressCodes = new ArrayList<>();
}

View File

@@ -0,0 +1,66 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CommonAddress;
import java.io.Serial;
/**
* 常用地址视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "常用地址")
public class CommonAddressVO extends CommonAddress {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "站点编码展示值")
private String siteCodeDisplay;
@TableField(exist = false)
@Schema(description = "是否只读")
private Boolean readonly;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
@TableField(exist = false)
@Schema(description = "创建人姓名")
private String createUserName;
@TableField(exist = false)
@Schema(description = "是否查看全部组织")
private Integer allDept;
}

View File

@@ -0,0 +1,48 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CreditRatingStandard;
import java.io.Serial;
/**
* 信用等级评估标准视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "信用等级评估标准")
public class CreditRatingStandardVO extends CreditRatingStandard {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,55 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CreditScoreCategory;
import java.io.Serial;
import java.util.ArrayList;
import java.util.List;
/**
* 评分分类视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "评分分类")
public class CreditScoreCategoryVO extends CreditScoreCategory {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "评分项目")
private List<CreditScoreItemVO> items = new ArrayList<>();
}

View File

@@ -0,0 +1,48 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CreditScoreItemOption;
import java.io.Serial;
/**
* 评分项目选项视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "评分项目选项")
public class CreditScoreItemOptionVO extends CreditScoreItemOption {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,55 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CreditScoreItem;
import java.io.Serial;
import java.util.ArrayList;
import java.util.List;
/**
* 评分项目视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "评分项目")
public class CreditScoreItemVO extends CreditScoreItem {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "选项明细")
private List<CreditScoreItemOptionVO> options = new ArrayList<>();
}

View File

@@ -0,0 +1,71 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CreditScoreQuantification;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* 评分量化表视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "评分量化表")
public class CreditScoreQuantificationVO extends CreditScoreQuantification {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@TableField(exist = false)
@Schema(description = "评分分类")
private List<CreditScoreCategoryVO> categories = new ArrayList<>();
@TableField(exist = false)
@Schema(description = "评估标准")
private List<CreditRatingStandardVO> standards = new ArrayList<>();
}

View File

@@ -0,0 +1,80 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CustomerArchive;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
/**
* 客商档案视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商档案")
public class CustomerArchiveVO extends CustomerArchive {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@TableField(exist = false)
@Schema(description = "联系人")
private List<CustomerContactVO> contacts = new ArrayList<>();
@TableField(exist = false)
@Schema(description = "收款信息")
private List<CustomerReceiptAccountVO> receiptAccounts = new ArrayList<>();
@TableField(exist = false)
@Schema(description = "发票信息")
private List<CustomerInvoiceInfoVO> invoices = new ArrayList<>();
@TableField(exist = false)
@Schema(description = "评分记录")
private List<CustomerCreditScoreVO> scores = new ArrayList<>();
@TableField(exist = false)
@Schema(description = "变更记录")
private List<CustomerChangeRecordVO> changeRecords = new ArrayList<>();
}

View File

@@ -0,0 +1,45 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CustomerChangeRecord;
import java.io.Serial;
/**
* 客商变更记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商变更记录")
public class CustomerChangeRecordVO extends CustomerChangeRecord {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,45 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CustomerContact;
import java.io.Serial;
/**
* 客商联系人视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商联系人")
public class CustomerContactVO extends CustomerContact {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,45 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CustomerCreditScoreDetail;
import java.io.Serial;
/**
* 客商评分明细视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商评分明细")
public class CustomerCreditScoreDetailVO extends CustomerCreditScoreDetail {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,52 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CustomerCreditScore;
import java.io.Serial;
import java.util.ArrayList;
import java.util.List;
/**
* 客商评分记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商评分记录")
public class CustomerCreditScoreVO extends CustomerCreditScore {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "评分明细")
private List<CustomerCreditScoreDetailVO> details = new ArrayList<>();
}

View File

@@ -0,0 +1,45 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CustomerInvoiceInfo;
import java.io.Serial;
/**
* 客商发票信息视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商发票信息")
public class CustomerInvoiceInfoVO extends CustomerInvoiceInfo {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,45 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.CustomerReceiptAccount;
import java.io.Serial;
/**
* 客商收款信息视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "客商收款信息")
public class CustomerReceiptAccountVO extends CustomerReceiptAccount {
@Serial
private static final long serialVersionUID = 1L;
}

View File

@@ -0,0 +1,55 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 司机证件有效期统计
*
* @author Chill
*/
@Data
@Schema(description = "司机证件有效期统计")
public class DriverExpiryStatVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "全部")
private Long total;
@Schema(description = "30天内到期")
private Long within30;
@Schema(description = "已到期")
private Long expired;
}

View File

@@ -0,0 +1,72 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.Driver;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
/**
* 司机管理视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "司机管理")
public class DriverVO extends Driver {
@Serial
private static final long serialVersionUID = 1L;
/**
* 证件有效期状态within30-30天内到期expired-已到期
*/
@TableField(exist = false)
@Schema(description = "证件有效期状态")
private String expireStatus;
/**
* 当前日期
*/
@TableField(exist = false)
@Schema(description = "当前日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate today;
/**
* 预警日期
*/
@TableField(exist = false)
@Schema(description = "预警日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate warningDate;
}

View File

@@ -0,0 +1,33 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.EtcRecord;
import java.io.Serial;
/**
* ETC记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "ETC记录")
public class EtcRecordVO extends EtcRecord {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,73 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.InsuranceRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDateTime;
/**
* 保险记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "保险记录")
public class InsuranceRecordVO extends InsuranceRecord {
@Serial
private static final long serialVersionUID = 1L;
/**
* 创建开始时间
*/
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
/**
* 创建结束时间
*/
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -62,4 +62,11 @@ public class MaintenancePlanVO extends MaintenancePlan {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -62,4 +62,11 @@ public class MaintenanceRecordVO extends MaintenanceRecord {
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,73 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.MileageRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 里程记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "里程记录")
public class MileageRecordVO extends MileageRecord {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "累计行驶里程开始值")
private BigDecimal totalMileageStart;
@TableField(exist = false)
@Schema(description = "累计行驶里程结束值")
private BigDecimal totalMileageEnd;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,83 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.OilElectricRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 油电记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "油电记录")
public class OilElectricRecordVO extends OilElectricRecord {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "交易开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime transactionTimeStart;
@TableField(exist = false)
@Schema(description = "交易结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime transactionTimeEnd;
@TableField(exist = false)
@Schema(description = "消费金额开始值")
private BigDecimal transactionAmountStart;
@TableField(exist = false)
@Schema(description = "消费金额结束值")
private BigDecimal transactionAmountEnd;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,56 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.OtherExpenseRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
import java.time.LocalDateTime;
/**
* 其他费用记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "其他费用记录")
public class OtherExpenseRecordVO extends OtherExpenseRecord {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "费用开始日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate expenseDateStart;
@TableField(exist = false)
@Schema(description = "费用结束日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate expenseDateEnd;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,73 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.TireReplacementRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDateTime;
/**
* 换胎记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "换胎记录")
public class TireReplacementRecordVO extends TireReplacementRecord {
@Serial
private static final long serialVersionUID = 1L;
/**
* 创建开始时间
*/
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
/**
* 创建结束时间
*/
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,64 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.TransportChangeRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDateTime;
/**
* 变更记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "变更记录")
public class TransportChangeRecordVO extends TransportChangeRecord {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -0,0 +1,55 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 船舶证件有效期统计
*
* @author Chill
*/
@Data
@Schema(description = "船舶证件有效期统计")
public class TransportShipExpiryStatVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "全部")
private Long total;
@Schema(description = "30天内到期")
private Long within30;
@Schema(description = "已到期")
private Long expired;
}

View File

@@ -0,0 +1,65 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.TransportShip;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
/**
* 船舶管理视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "船舶管理")
public class TransportShipVO extends TransportShip {
@Serial
private static final long serialVersionUID = 1L;
@TableField(exist = false)
@Schema(description = "证件有效期状态")
private String expireStatus;
@TableField(exist = false)
@Schema(description = "当前日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate today;
@TableField(exist = false)
@Schema(description = "预警日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate warningDate;
}

View File

@@ -0,0 +1,55 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 车辆证件有效期统计
*
* @author Chill
*/
@Data
@Schema(description = "车辆证件有效期统计")
public class TransportVehicleExpiryStatVO implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@Schema(description = "全部")
private Long total;
@Schema(description = "30天内到期")
private Long within30;
@Schema(description = "已到期")
private Long expired;
}

View File

@@ -0,0 +1,72 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.TransportVehicle;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDate;
/**
* 车辆管理视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "车辆管理")
public class TransportVehicleVO extends TransportVehicle {
@Serial
private static final long serialVersionUID = 1L;
/**
* 证件有效期状态within30-30天内到期expired-已到期
*/
@TableField(exist = false)
@Schema(description = "证件有效期状态")
private String expireStatus;
/**
* 当前日期
*/
@TableField(exist = false)
@Schema(description = "当前日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate today;
/**
* 预警日期
*/
@TableField(exist = false)
@Schema(description = "预警日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private LocalDate warningDate;
}

View File

@@ -0,0 +1,73 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.transport.pojo.entity.ViolationRecord;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
import java.time.LocalDateTime;
/**
* 违章记录视图实体类
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Schema(description = "违章记录")
public class ViolationRecordVO extends ViolationRecord {
@Serial
private static final long serialVersionUID = 1L;
/**
* 创建开始时间
*/
@TableField(exist = false)
@Schema(description = "创建开始时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeStart;
/**
* 创建结束时间
*/
@TableField(exist = false)
@Schema(description = "创建结束时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTimeEnd;
/**
* 更新人姓名
*/
@TableField(exist = false)
@Schema(description = "更新人姓名")
private String updateUserName;
}

View File

@@ -79,6 +79,32 @@ public class UserCache {
});
}
/**
* 获取用户姓名
*
* @param userId 用户id
* @return 用户姓名
*/
public static String getUserRealName(Long userId) {
if (userId == null) {
return StringPool.EMPTY;
}
User user = getUser(userId);
if (user == null) {
return Func.toStr(userId);
}
if (StringUtil.isNotBlank(user.getRealName())) {
return user.getRealName();
}
if (StringUtil.isNotBlank(user.getName())) {
return user.getName();
}
if (StringUtil.isNotBlank(user.getAccount())) {
return user.getAccount();
}
return Func.toStr(userId);
}
/**
* 获取用户
*

View File

@@ -0,0 +1,225 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.excel.CurrencyExcel;
import org.springblade.system.excel.CurrencyImporter;
import org.springblade.system.pojo.entity.Currency;
import org.springblade.system.pojo.vo.CurrencyVO;
import org.springblade.system.service.ICurrencyService;
import org.springblade.system.wrapper.CurrencyWrapper;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
/**
* 币种汇率 控制器
*
* @author Chill
*/
@NonDS
@RestController
@AllArgsConstructor
@PreAuth(menu = "currency")
@RequestMapping("/currency")
@Tag(name = "币种汇率", description = "币种汇率")
public class CurrencyController extends BladeController {
private final ICurrencyService currencyService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入currency")
public R<CurrencyVO> detail(Currency currency) {
Currency detail = currencyService.getOne(Condition.getQueryWrapper(currency));
return R.data(CurrencyWrapper.build().entityVO(detail));
}
/**
* 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入currency")
public R<IPage<CurrencyVO>> list(CurrencyVO currency, Query query) {
IPage<CurrencyVO> pages = currencyService.selectCurrencyPage(Condition.getPage(query), currency);
return R.data(pages);
}
/**
* 有效汇率查询
*/
@GetMapping("/rate")
@ApiOperationSupport(order = 3)
@Operation(summary = "有效汇率查询", description = "根据币种编码和业务日期查询有效汇率")
public R<CurrencyVO> rate(@Parameter(description = "币种编码", required = true) @RequestParam String code,
@Parameter(description = "业务日期") @DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam(required = false) LocalDate businessDate) {
return R.data(currencyService.getEffectiveRate(code, businessDate));
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 4)
@Operation(summary = "新增或修改", description = "传入currency")
public R submit(@Valid @RequestBody Currency currency) {
return R.status(currencyService.submit(currency));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 5)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(currencyService.deleteLogic(Func.toLongList(ids)));
}
/**
* 启用或停用
*/
@PostMapping("/status")
@ApiOperationSupport(order = 6)
@Operation(summary = "启用或停用", description = "传入id和status")
public R status(@Parameter(description = "主键", required = true) @RequestParam Long id,
@Parameter(description = "状态", required = true) @RequestParam Integer status) {
return R.status(currencyService.changeStatus(id, status));
}
/**
* 导入币种汇率
*/
@PostMapping("/import-currency")
@ApiOperationSupport(order = 7)
@Operation(summary = "导入币种汇率", description = "传入excel")
public R importCurrency(MultipartFile file) {
CurrencyImporter currencyImporter = new CurrencyImporter(currencyService);
ExcelUtil.save(file, currencyImporter, CurrencyExcel.class);
return R.success("操作成功");
}
/**
* 导出币种汇率
*/
@GetMapping("/export-currency")
@ApiOperationSupport(order = 8)
@Operation(summary = "导出币种汇率")
public void exportCurrency(CurrencyVO currency,
@RequestParam(required = false) String ids,
HttpServletResponse response) {
List<CurrencyExcel> list = currencyService.exportCurrency(buildExportQuery(currency, ids));
ExcelUtil.export(response, "币种汇率" + DateUtil.time(), "币种汇率表", list, CurrencyExcel.class);
}
/**
* 导出模板
*/
@GetMapping("/export-template")
@ApiOperationSupport(order = 9)
@Operation(summary = "导出模板")
public void exportTemplate(HttpServletResponse response) {
List<CurrencyExcel> list = new ArrayList<>();
ExcelUtil.export(response, "币种汇率模板", "币种汇率表", list, CurrencyExcel.class);
}
private LambdaQueryWrapper<Currency> buildExportQuery(CurrencyVO currency, String ids) {
LambdaQueryWrapper<Currency> queryWrapper = Wrappers.<Currency>lambdaQuery()
.eq(Currency::getIsDeleted, 0)
.orderByAsc(Currency::getCode)
.orderByDesc(Currency::getEffectiveDate);
if (Func.isNotEmpty(ids)) {
queryWrapper.in(Currency::getId, Func.toLongList(ids));
}
if (Func.isNotEmpty(currency.getCode())) {
queryWrapper.like(Currency::getCode, currency.getCode());
}
if (Func.isNotEmpty(currency.getName())) {
queryWrapper.like(Currency::getName, currency.getName());
}
if (Func.isNotEmpty(currency.getStatus())) {
queryWrapper.eq(Currency::getStatus, currency.getStatus());
}
if (Func.isNotEmpty(currency.getExchangeRate())) {
queryWrapper.eq(Currency::getExchangeRate, currency.getExchangeRate());
}
if (Func.isNotEmpty(currency.getDataSource())) {
queryWrapper.eq(Currency::getDataSource, currency.getDataSource());
}
if (Func.isNotEmpty(currency.getEffectiveDateStart())) {
queryWrapper.ge(Currency::getEffectiveDate, currency.getEffectiveDateStart());
}
if (Func.isNotEmpty(currency.getEffectiveDateEnd())) {
queryWrapper.le(Currency::getEffectiveDate, currency.getEffectiveDateEnd());
}
if (Func.isNotEmpty(currency.getExpiryDateStart())) {
queryWrapper.ge(Currency::getExpiryDate, currency.getExpiryDateStart());
}
if (Func.isNotEmpty(currency.getExpiryDateEnd())) {
queryWrapper.le(Currency::getExpiryDate, currency.getExpiryDateEnd());
}
if (Func.isNotEmpty(currency.getUpdateTimeStart())) {
queryWrapper.ge(Currency::getUpdateTime, currency.getUpdateTimeStart());
}
if (Func.isNotEmpty(currency.getUpdateTimeEnd())) {
queryWrapper.le(Currency::getUpdateTime, currency.getUpdateTimeEnd());
}
return queryWrapper;
}
}

View File

@@ -0,0 +1,121 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.pojo.entity.CustomerType;
import org.springblade.system.pojo.vo.CustomerTypeVO;
import org.springblade.system.service.ICustomerTypeService;
import org.springblade.system.wrapper.CustomerTypeWrapper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 客商类型 控制器
*
* @author Chill
*/
@NonDS
@RestController
@AllArgsConstructor
@PreAuth(menu = "customer_type")
@RequestMapping("/customer-type")
@Tag(name = "客商类型", description = "客商类型")
public class CustomerTypeController extends BladeController {
private final ICustomerTypeService customerTypeService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入customerType")
public R<CustomerTypeVO> detail(CustomerType customerType) {
CustomerType detail = customerTypeService.getOne(Condition.getQueryWrapper(customerType));
return R.data(CustomerTypeWrapper.build().entityVO(detail));
}
/**
* 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入customerType")
public R<IPage<CustomerTypeVO>> list(CustomerTypeVO customerType, Query query) {
IPage<CustomerTypeVO> pages = customerTypeService.selectCustomerTypePage(Condition.getPage(query), customerType);
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 3)
@Operation(summary = "新增或修改", description = "传入customerType")
public R submit(@Valid @RequestBody CustomerType customerType) {
return R.status(customerTypeService.submit(customerType));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 4)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(customerTypeService.deleteLogic(Func.toLongList(ids)));
}
/**
* 启用或停用
*/
@PostMapping("/status")
@ApiOperationSupport(order = 5)
@Operation(summary = "启用或停用", description = "传入id和status")
public R status(@Parameter(description = "主键", required = true) @RequestParam Long id,
@Parameter(description = "状态", required = true) @RequestParam Integer status) {
return R.status(customerTypeService.changeStatus(id, status));
}
}

View File

@@ -0,0 +1,121 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.annotation.PreAuth;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.pojo.entity.FeeItem;
import org.springblade.system.pojo.vo.FeeItemVO;
import org.springblade.system.service.IFeeItemService;
import org.springblade.system.wrapper.FeeItemWrapper;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 费用项 控制器
*
* @author Chill
*/
@NonDS
@RestController
@AllArgsConstructor
@PreAuth(menu = "fee_item")
@RequestMapping("/fee-item")
@Tag(name = "费用项", description = "费用项")
public class FeeItemController extends BladeController {
private final IFeeItemService feeItemService;
/**
* 详情
*/
@GetMapping("/detail")
@ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入feeItem")
public R<FeeItemVO> detail(FeeItem feeItem) {
FeeItem detail = feeItemService.getOne(Condition.getQueryWrapper(feeItem));
return R.data(FeeItemWrapper.build().entityVO(detail));
}
/**
* 分页
*/
@GetMapping("/list")
@ApiOperationSupport(order = 2)
@Operation(summary = "分页", description = "传入feeItem")
public R<IPage<FeeItemVO>> list(FeeItemVO feeItem, Query query) {
IPage<FeeItemVO> pages = feeItemService.selectFeeItemPage(Condition.getPage(query), feeItem);
return R.data(pages);
}
/**
* 新增或修改
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 3)
@Operation(summary = "新增或修改", description = "传入feeItem")
public R submit(@Valid @RequestBody FeeItem feeItem) {
return R.status(feeItemService.submit(feeItem));
}
/**
* 删除
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 4)
@Operation(summary = "逻辑删除", description = "传入ids")
public R remove(@Parameter(description = "主键集合", required = true) @RequestParam String ids) {
return R.status(feeItemService.deleteLogic(Func.toLongList(ids)));
}
/**
* 启用或停用
*/
@PostMapping("/status")
@ApiOperationSupport(order = 5)
@Operation(summary = "启用或停用", description = "传入id和status")
public R status(@Parameter(description = "主键", required = true) @RequestParam Long id,
@Parameter(description = "状态", required = true) @RequestParam Integer status) {
return R.status(feeItemService.changeStatus(id, status));
}
}

View File

@@ -0,0 +1,83 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.excel;
import cn.idev.excel.annotation.ExcelIgnore;
import cn.idev.excel.annotation.ExcelProperty;
import cn.idev.excel.annotation.write.style.ColumnWidth;
import cn.idev.excel.annotation.write.style.ContentRowHeight;
import cn.idev.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
/**
* 币种汇率 Excel
*
* @author Chill
*/
@Data
@ColumnWidth(18)
@HeadRowHeight(20)
@ContentRowHeight(18)
public class CurrencyExcel implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@ExcelIgnore
private Long id;
@ExcelProperty("币种代码")
private String code;
@ExcelProperty("币种中文名称")
private String name;
@ExcelProperty("汇率")
private BigDecimal exchangeRate;
@ExcelProperty("生效日期")
private LocalDate effectiveDate;
@ExcelProperty("状态")
private String statusName;
@ExcelProperty("来源")
private String dataSource;
@ExcelProperty("失效日期")
private LocalDate expiryDate;
@ExcelProperty("备注")
private String remark;
@ExcelProperty("报错文案")
private String errorMessage;
}

View File

@@ -0,0 +1,49 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.excel;
import lombok.RequiredArgsConstructor;
import org.springblade.core.excel.support.ExcelImporter;
import org.springblade.system.service.ICurrencyService;
import java.util.List;
/**
* 币种汇率导入类
*
* @author Chill
*/
@RequiredArgsConstructor
public class CurrencyImporter implements ExcelImporter<CurrencyExcel> {
private final ICurrencyService service;
@Override
public void save(List<CurrencyExcel> data) {
service.importCurrency(data);
}
}

View File

@@ -0,0 +1,52 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.system.pojo.entity.Currency;
import org.springblade.system.pojo.vo.CurrencyVO;
import java.util.List;
/**
* 币种主数据 Mapper 接口
*
* @author Chill
*/
public interface CurrencyMapper extends BaseMapper<Currency> {
/**
* 自定义分页
*
* @param page 分页参数
* @param currency 查询参数
* @return 币种分页
*/
List<CurrencyVO> selectCurrencyPage(IPage<CurrencyVO> page, @Param("currency") CurrencyVO currency);
}

View File

@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.system.mapper.CurrencyMapper">
<resultMap id="currencyResultMap" type="org.springblade.system.pojo.vo.CurrencyVO">
<result column="id" property="id"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="code" property="code"/>
<result column="name" property="name"/>
<result column="english_name" property="englishName"/>
<result column="symbol" property="symbol"/>
<result column="decimal_places" property="decimalPlaces"/>
<result column="exchange_rate" property="exchangeRate"/>
<result column="effective_date" property="effectiveDate"/>
<result column="expiry_date" property="expiryDate"/>
<result column="is_base_currency" property="baseCurrency"/>
<result column="data_source" property="dataSource"/>
<result column="remark" property="remark"/>
</resultMap>
<select id="selectCurrencyPage" resultMap="currencyResultMap">
SELECT
*
FROM
blade_currency
WHERE
is_deleted = 0
<if test="currency.code != null and currency.code != ''">
<bind name="codeLike" value="'%' + currency.code + '%'"/>
AND code LIKE #{codeLike}
</if>
<if test="currency.name != null and currency.name != ''">
<bind name="nameLike" value="'%' + currency.name + '%'"/>
AND name LIKE #{nameLike}
</if>
<if test="currency.englishName != null and currency.englishName != ''">
<bind name="englishNameLike" value="'%' + currency.englishName + '%'"/>
AND english_name LIKE #{englishNameLike}
</if>
<if test="currency.status != null">
AND status = #{currency.status}
</if>
<if test="currency.exchangeRate != null">
AND exchange_rate = #{currency.exchangeRate}
</if>
<if test="currency.dataSource != null and currency.dataSource != ''">
AND data_source = #{currency.dataSource}
</if>
<if test="currency.effectiveDateStart != null">
AND effective_date &gt;= #{currency.effectiveDateStart}
</if>
<if test="currency.effectiveDateEnd != null">
AND effective_date &lt;= #{currency.effectiveDateEnd}
</if>
<if test="currency.expiryDateStart != null">
AND expiry_date &gt;= #{currency.expiryDateStart}
</if>
<if test="currency.expiryDateEnd != null">
AND expiry_date &lt;= #{currency.expiryDateEnd}
</if>
<if test="currency.updateTimeStart != null">
AND update_time &gt;= #{currency.updateTimeStart}
</if>
<if test="currency.updateTimeEnd != null">
AND update_time &lt;= #{currency.updateTimeEnd}
</if>
ORDER BY code ASC, effective_date DESC, create_time DESC
</select>
</mapper>

View File

@@ -0,0 +1,52 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.system.pojo.entity.CustomerType;
import org.springblade.system.pojo.vo.CustomerTypeVO;
import java.util.List;
/**
* 客商类型 Mapper 接口
*
* @author Chill
*/
public interface CustomerTypeMapper extends BaseMapper<CustomerType> {
/**
* 自定义分页
*
* @param page 分页参数
* @param customerType 查询参数
* @return 客商类型分页
*/
List<CustomerTypeVO> selectCustomerTypePage(IPage<CustomerTypeVO> page, @Param("customerType") CustomerTypeVO customerType);
}

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.system.mapper.CustomerTypeMapper">
<resultMap id="customerTypeResultMap" type="org.springblade.system.pojo.vo.CustomerTypeVO">
<result column="id" property="id"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="name" property="name"/>
<result column="english_name" property="englishName"/>
</resultMap>
<select id="selectCustomerTypePage" resultMap="customerTypeResultMap">
SELECT
*
FROM
blade_customer_type
WHERE
is_deleted = 0
<if test="customerType.name != null and customerType.name != ''">
<bind name="nameLike" value="'%' + customerType.name + '%'"/>
AND name LIKE #{nameLike}
</if>
<if test="customerType.englishName != null and customerType.englishName != ''">
<bind name="englishNameLike" value="'%' + customerType.englishName + '%'"/>
AND english_name LIKE #{englishNameLike}
</if>
<if test="customerType.status != null">
AND status = #{customerType.status}
</if>
ORDER BY update_time DESC, create_time DESC
</select>
</mapper>

View File

@@ -0,0 +1,52 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.system.pojo.entity.FeeItem;
import org.springblade.system.pojo.vo.FeeItemVO;
import java.util.List;
/**
* 费用项 Mapper 接口
*
* @author Chill
*/
public interface FeeItemMapper extends BaseMapper<FeeItem> {
/**
* 自定义分页
*
* @param page 分页参数
* @param feeItem 查询参数
* @return 费用项分页
*/
List<FeeItemVO> selectFeeItemPage(IPage<FeeItemVO> page, @Param("feeItem") FeeItemVO feeItem);
}

View File

@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.system.mapper.FeeItemMapper">
<resultMap id="feeItemResultMap" type="org.springblade.system.pojo.vo.FeeItemVO">
<result column="id" property="id"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="status" property="status"/>
<result column="is_deleted" property="isDeleted"/>
<result column="name" property="name"/>
<result column="english_name" property="englishName"/>
</resultMap>
<select id="selectFeeItemPage" resultMap="feeItemResultMap">
SELECT
*
FROM
blade_fee_item
WHERE
is_deleted = 0
<if test="feeItem.name != null and feeItem.name != ''">
<bind name="nameLike" value="'%' + feeItem.name + '%'"/>
AND name LIKE #{nameLike}
</if>
<if test="feeItem.englishName != null and feeItem.englishName != ''">
<bind name="englishNameLike" value="'%' + feeItem.englishName + '%'"/>
AND english_name LIKE #{englishNameLike}
</if>
<if test="feeItem.status != null">
AND status = #{feeItem.status}
</if>
ORDER BY update_time DESC, create_time DESC
</select>
</mapper>

View File

@@ -15,6 +15,7 @@
<result column="category" property="category"/>
<result column="action" property="action"/>
<result column="is_open" property="isOpen"/>
<result column="is_display" property="isDisplay"/>
<result column="remark" property="remark"/>
<result column="is_deleted" property="isDeleted"/>
</resultMap>
@@ -31,6 +32,7 @@
<result column="category" property="category"/>
<result column="action" property="action"/>
<result column="is_open" property="isOpen"/>
<result column="is_display" property="isDisplay"/>
<result column="remark" property="remark"/>
<result column="is_deleted" property="isDeleted"/>
<result column="has_children" property="hasChildren"/>

View File

@@ -0,0 +1,95 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.system.excel.CurrencyExcel;
import org.springblade.system.pojo.entity.Currency;
import org.springblade.system.pojo.vo.CurrencyVO;
import java.time.LocalDate;
import java.util.List;
/**
* 币种汇率 服务类
*
* @author Chill
*/
public interface ICurrencyService extends BaseService<Currency> {
/**
* 自定义分页
*
* @param page 分页参数
* @param currency 查询参数
* @return 币种分页
*/
IPage<CurrencyVO> selectCurrencyPage(IPage<CurrencyVO> page, CurrencyVO currency);
/**
* 新增或修改币种汇率
*
* @param currency 币种汇率
* @return 是否成功
*/
boolean submit(Currency currency);
/**
* 启用或停用
*
* @param id 主键
* @param status 状态
* @return 是否成功
*/
boolean changeStatus(Long id, Integer status);
/**
* 导入币种汇率
*
* @param data 导入数据
*/
void importCurrency(List<CurrencyExcel> data);
/**
* 导出币种汇率
*
* @param queryWrapper 查询条件
* @return 导出数据
*/
List<CurrencyExcel> exportCurrency(Wrapper<Currency> queryWrapper);
/**
* 查询有效汇率
*
* @param code 币种编码
* @param businessDate 业务日期
* @return 有效汇率
*/
CurrencyVO getEffectiveRate(String code, LocalDate businessDate);
}

View File

@@ -0,0 +1,66 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.system.pojo.entity.CustomerType;
import org.springblade.system.pojo.vo.CustomerTypeVO;
/**
* 客商类型 服务类
*
* @author Chill
*/
public interface ICustomerTypeService extends BaseService<CustomerType> {
/**
* 自定义分页
*
* @param page 分页参数
* @param customerType 查询参数
* @return 客商类型分页
*/
IPage<CustomerTypeVO> selectCustomerTypePage(IPage<CustomerTypeVO> page, CustomerTypeVO customerType);
/**
* 新增或修改客商类型
*
* @param customerType 客商类型
* @return 是否成功
*/
boolean submit(CustomerType customerType);
/**
* 启用或停用
*
* @param id 主键
* @param status 状态
* @return 是否成功
*/
boolean changeStatus(Long id, Integer status);
}

View File

@@ -0,0 +1,66 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.system.pojo.entity.FeeItem;
import org.springblade.system.pojo.vo.FeeItemVO;
/**
* 费用项 服务类
*
* @author Chill
*/
public interface IFeeItemService extends BaseService<FeeItem> {
/**
* 自定义分页
*
* @param page 分页参数
* @param feeItem 查询参数
* @return 费用项分页
*/
IPage<FeeItemVO> selectFeeItemPage(IPage<FeeItemVO> page, FeeItemVO feeItem);
/**
* 新增或修改费用项
*
* @param feeItem 费用项
* @return 是否成功
*/
boolean submit(FeeItem feeItem);
/**
* 启用或停用
*
* @param id 主键
* @param status 状态
* @return 是否成功
*/
boolean changeStatus(Long id, Integer status);
}

View File

@@ -0,0 +1,285 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.excel.CurrencyExcel;
import org.springblade.system.mapper.CurrencyMapper;
import org.springblade.system.pojo.entity.Currency;
import org.springblade.system.pojo.vo.CurrencyVO;
import org.springblade.system.service.ICurrencyService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.Objects;
import java.util.regex.Pattern;
/**
* 币种汇率 服务实现类
*
* @author Chill
*/
@Service
public class CurrencyServiceImpl extends BaseServiceImpl<CurrencyMapper, Currency> implements ICurrencyService {
private static final String SOURCE_BATCH = "批量导入";
private static final String SOURCE_MANUAL = "手工录入";
private static final int STATUS_ENABLED = 1;
private static final int STATUS_DISABLED = 2;
private static final int YES = 1;
private static final int NO = 0;
private static final int REMARK_MAX_LENGTH = 200;
private static final int MIN_DECIMAL_PLACES = 0;
private static final int MAX_DECIMAL_PLACES = 8;
private static final int EXCHANGE_RATE_SCALE = 6;
private static final Pattern CURRENCY_CODE_PATTERN = Pattern.compile("^[A-Z]{3}$");
@Override
public IPage<CurrencyVO> selectCurrencyPage(IPage<CurrencyVO> page, CurrencyVO currency) {
return page.setRecords(baseMapper.selectCurrencyPage(page, currency));
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean submit(Currency currency) {
Currency oldCurrency = Func.isNotEmpty(currency.getId()) ? getById(currency.getId()) : null;
prepare(currency, SOURCE_MANUAL);
validate(currency);
boolean result = saveOrUpdate(currency);
rebuildEnabledValidity(currency.getCode());
if (oldCurrency != null && !Objects.equals(oldCurrency.getCode(), currency.getCode())) {
rebuildEnabledValidity(oldCurrency.getCode());
}
return result;
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean changeStatus(Long id, Integer status) {
if (Func.isEmpty(id)) {
throw new ServiceException("主键不能为空");
}
Currency currency = getById(id);
if (Func.isEmpty(currency)) {
throw new ServiceException("币种不存在");
}
if (!Objects.equals(status, STATUS_ENABLED) && !Objects.equals(status, STATUS_DISABLED)) {
throw new ServiceException("启停状态不正确");
}
Currency update = new Currency();
update.setId(id);
update.setStatus(status);
boolean result = updateById(update);
rebuildEnabledValidity(currency.getCode());
return result;
}
@Override
public void importCurrency(List<CurrencyExcel> data) {
if (Func.isEmpty(data)) {
throw new ServiceException("导入数据不能为空");
}
List<String> errorList = new ArrayList<>();
int successCount = 0;
for (int index = 0; index < data.size(); index++) {
CurrencyExcel excel = data.get(index);
try {
Currency currency = Objects.requireNonNull(BeanUtil.copyProperties(excel, Currency.class));
currency.setDataSource(SOURCE_BATCH);
currency.setStatus(STATUS_ENABLED);
prepare(currency, SOURCE_BATCH);
validate(currency);
save(currency);
rebuildEnabledValidity(currency.getCode());
successCount++;
} catch (Exception exception) {
String message = exception instanceof ServiceException ? exception.getMessage() : "导入失败";
errorList.add("" + (index + 2) + "行:" + message);
}
}
if (Func.isNotEmpty(errorList)) {
throw new ServiceException("导入成功" + successCount + "条,失败" + errorList.size() + "条:" + String.join("", errorList));
}
}
@Override
public List<CurrencyExcel> exportCurrency(Wrapper<Currency> queryWrapper) {
List<Currency> currencyList = list(queryWrapper);
return currencyList.stream().map(currency -> {
CurrencyExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(currency, CurrencyExcel.class));
excel.setStatusName(Objects.equals(currency.getStatus(), STATUS_ENABLED) ? "启用" : "停用");
return excel;
}).toList();
}
@Override
public CurrencyVO getEffectiveRate(String code, LocalDate businessDate) {
String currencyCode = trimToEmpty(code).toUpperCase(Locale.ROOT);
if (!CURRENCY_CODE_PATTERN.matcher(currencyCode).matches()) {
throw new ServiceException("币种代码为3位大写字母");
}
if (count(Wrappers.<Currency>lambdaQuery()
.eq(Currency::getCode, currencyCode)
.eq(Currency::getIsDeleted, 0)) <= 0L) {
throw new ServiceException("币种不存在");
}
LocalDate queryDate = businessDate == null ? LocalDate.now() : businessDate;
Currency currency = getOne(Wrappers.<Currency>lambdaQuery()
.eq(Currency::getCode, currencyCode)
.eq(Currency::getStatus, STATUS_ENABLED)
.eq(Currency::getIsDeleted, 0)
.le(Currency::getEffectiveDate, queryDate)
.and(wrapper -> wrapper.isNull(Currency::getExpiryDate).or().gt(Currency::getExpiryDate, queryDate))
.orderByDesc(Currency::getEffectiveDate)
.last("limit 1"));
if (currency == null) {
throw new ServiceException("未找到有效汇率");
}
return Objects.requireNonNull(BeanUtil.copyProperties(currency, CurrencyVO.class));
}
private void prepare(Currency currency, String defaultDataSource) {
currency.setCode(trimToEmpty(currency.getCode()).toUpperCase(Locale.ROOT));
currency.setName(trimToEmpty(currency.getName()));
currency.setEnglishName(trimToNull(currency.getEnglishName()));
currency.setSymbol(trimToNull(currency.getSymbol()));
currency.setRemark(trimToNull(currency.getRemark()));
currency.setDataSource(Func.toStrWithEmpty(currency.getDataSource(), defaultDataSource));
currency.setExpiryDate(null);
if (Func.isEmpty(currency.getDecimalPlaces())) {
currency.setDecimalPlaces(2);
}
if (Func.isEmpty(currency.getBaseCurrency())) {
currency.setBaseCurrency(NO);
}
if (Func.isEmpty(currency.getStatus())) {
currency.setStatus(STATUS_ENABLED);
}
}
private void validate(Currency currency) {
if (Func.isEmpty(currency.getCode())) {
throw new ServiceException("币种代码不能为空");
}
if (!CURRENCY_CODE_PATTERN.matcher(currency.getCode()).matches()) {
throw new ServiceException("币种代码为3位大写字母");
}
if (Func.isEmpty(currency.getName())) {
throw new ServiceException("币种名称不能为空");
}
if (currency.getDecimalPlaces() < MIN_DECIMAL_PLACES || currency.getDecimalPlaces() > MAX_DECIMAL_PLACES) {
throw new ServiceException("小数位数范围为0到8");
}
if (Func.isEmpty(currency.getExchangeRate())) {
throw new ServiceException("汇率不能为空");
}
if (currency.getExchangeRate().compareTo(BigDecimal.ZERO) <= 0) {
throw new ServiceException("汇率必须大于0");
}
if (currency.getExchangeRate().stripTrailingZeros().scale() > EXCHANGE_RATE_SCALE) {
throw new ServiceException("汇率最多保留6位小数");
}
if (Func.isEmpty(currency.getEffectiveDate())) {
throw new ServiceException("生效日期不能为空");
}
if (!Objects.equals(currency.getBaseCurrency(), YES) && !Objects.equals(currency.getBaseCurrency(), NO)) {
throw new ServiceException("是否本位币取值不正确");
}
if (Func.isNotEmpty(currency.getRemark()) && currency.getRemark().length() > REMARK_MAX_LENGTH) {
throw new ServiceException("备注不能超过200字");
}
validateCodeName(currency);
validateUniqueEffectiveDate(currency);
}
private void validateUniqueEffectiveDate(Currency currency) {
LambdaQueryWrapper<Currency> queryWrapper = Wrappers.<Currency>lambdaQuery()
.eq(Currency::getCode, currency.getCode())
.eq(Currency::getEffectiveDate, currency.getEffectiveDate())
.eq(Currency::getIsDeleted, 0);
if (Func.isNotEmpty(currency.getId())) {
queryWrapper.ne(Currency::getId, currency.getId());
}
if (count(queryWrapper) > 0L) {
throw new ServiceException("同币种同生效日期已存在");
}
}
private void validateCodeName(Currency currency) {
LambdaQueryWrapper<Currency> queryWrapper = Wrappers.<Currency>lambdaQuery()
.eq(Currency::getCode, currency.getCode())
.eq(Currency::getIsDeleted, 0);
if (Func.isNotEmpty(currency.getId())) {
queryWrapper.ne(Currency::getId, currency.getId());
}
Currency exists = getOne(queryWrapper.last("limit 1"));
if (exists != null && !Objects.equals(exists.getName(), currency.getName())) {
throw new ServiceException("同一币种编码的币种名称必须一致");
}
}
private void rebuildEnabledValidity(String code) {
String currencyCode = trimToEmpty(code).toUpperCase(Locale.ROOT);
if (Func.isEmpty(currencyCode)) {
return;
}
List<Currency> enabledRecords = list(Wrappers.<Currency>lambdaQuery()
.eq(Currency::getCode, currencyCode)
.eq(Currency::getStatus, STATUS_ENABLED)
.eq(Currency::getIsDeleted, 0)
.orderByAsc(Currency::getEffectiveDate)
.orderByAsc(Currency::getCreateTime));
for (int index = 0; index < enabledRecords.size(); index++) {
Currency record = enabledRecords.get(index);
Currency update = new Currency();
update.setId(record.getId());
update.setExpiryDate(index + 1 < enabledRecords.size() ? enabledRecords.get(index + 1).getEffectiveDate() : null);
updateById(update);
}
}
private String trimToEmpty(String value) {
return value == null ? "" : value.trim();
}
private String trimToNull(String value) {
String trimValue = trimToEmpty(value);
return trimValue.isEmpty() ? null : trimValue;
}
}

View File

@@ -0,0 +1,130 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.mapper.CustomerTypeMapper;
import org.springblade.system.pojo.entity.CustomerType;
import org.springblade.system.pojo.vo.CustomerTypeVO;
import org.springblade.system.service.ICustomerTypeService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Objects;
/**
* 客商类型 服务实现类
*
* @author Chill
*/
@Service
public class CustomerTypeServiceImpl extends BaseServiceImpl<CustomerTypeMapper, CustomerType> implements ICustomerTypeService {
private static final int STATUS_ENABLED = 1;
private static final int STATUS_DISABLED = 2;
private static final int NAME_MAX_LENGTH = 50;
private static final int ENGLISH_NAME_MAX_LENGTH = 100;
@Override
public IPage<CustomerTypeVO> selectCustomerTypePage(IPage<CustomerTypeVO> page, CustomerTypeVO customerType) {
return page.setRecords(baseMapper.selectCustomerTypePage(page, customerType));
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean submit(CustomerType customerType) {
prepare(customerType);
validate(customerType);
return saveOrUpdate(customerType);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean changeStatus(Long id, Integer status) {
if (Func.isEmpty(id)) {
throw new ServiceException("主键不能为空");
}
CustomerType customerType = getById(id);
if (Func.isEmpty(customerType)) {
throw new ServiceException("客商类型不存在");
}
if (!Objects.equals(status, STATUS_ENABLED) && !Objects.equals(status, STATUS_DISABLED)) {
throw new ServiceException("启停状态不正确");
}
CustomerType update = new CustomerType();
update.setId(id);
update.setStatus(status);
return updateById(update);
}
private void prepare(CustomerType customerType) {
customerType.setName(trimToEmpty(customerType.getName()));
customerType.setEnglishName(trimToNull(customerType.getEnglishName()));
if (Func.isEmpty(customerType.getStatus())) {
customerType.setStatus(STATUS_ENABLED);
}
}
private void validate(CustomerType customerType) {
if (Func.isEmpty(customerType.getName())) {
throw new ServiceException("中文名称不能为空");
}
if (customerType.getName().length() > NAME_MAX_LENGTH) {
throw new ServiceException("中文名称不能超过50字");
}
if (Func.isNotEmpty(customerType.getEnglishName()) && customerType.getEnglishName().length() > ENGLISH_NAME_MAX_LENGTH) {
throw new ServiceException("英文名称不能超过100字");
}
validateUniqueName(customerType);
}
private void validateUniqueName(CustomerType customerType) {
LambdaQueryWrapper<CustomerType> queryWrapper = Wrappers.<CustomerType>lambdaQuery()
.eq(CustomerType::getName, customerType.getName())
.eq(CustomerType::getIsDeleted, 0);
if (Func.isNotEmpty(customerType.getId())) {
queryWrapper.ne(CustomerType::getId, customerType.getId());
}
if (count(queryWrapper) > 0L) {
throw new ServiceException("该中文名称已存在");
}
}
private String trimToEmpty(String value) {
return value == null ? "" : value.trim();
}
private String trimToNull(String value) {
String trimValue = trimToEmpty(value);
return trimValue.isEmpty() ? null : trimValue;
}
}

View File

@@ -0,0 +1,130 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.Func;
import org.springblade.system.mapper.FeeItemMapper;
import org.springblade.system.pojo.entity.FeeItem;
import org.springblade.system.pojo.vo.FeeItemVO;
import org.springblade.system.service.IFeeItemService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Objects;
/**
* 费用项 服务实现类
*
* @author Chill
*/
@Service
public class FeeItemServiceImpl extends BaseServiceImpl<FeeItemMapper, FeeItem> implements IFeeItemService {
private static final int STATUS_ENABLED = 1;
private static final int STATUS_DISABLED = 2;
private static final int NAME_MAX_LENGTH = 50;
private static final int ENGLISH_NAME_MAX_LENGTH = 100;
@Override
public IPage<FeeItemVO> selectFeeItemPage(IPage<FeeItemVO> page, FeeItemVO feeItem) {
return page.setRecords(baseMapper.selectFeeItemPage(page, feeItem));
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean submit(FeeItem feeItem) {
prepare(feeItem);
validate(feeItem);
return saveOrUpdate(feeItem);
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean changeStatus(Long id, Integer status) {
if (Func.isEmpty(id)) {
throw new ServiceException("主键不能为空");
}
FeeItem feeItem = getById(id);
if (Func.isEmpty(feeItem)) {
throw new ServiceException("费用项不存在");
}
if (!Objects.equals(status, STATUS_ENABLED) && !Objects.equals(status, STATUS_DISABLED)) {
throw new ServiceException("启停状态不正确");
}
FeeItem update = new FeeItem();
update.setId(id);
update.setStatus(status);
return updateById(update);
}
private void prepare(FeeItem feeItem) {
feeItem.setName(trimToEmpty(feeItem.getName()));
feeItem.setEnglishName(trimToNull(feeItem.getEnglishName()));
if (Func.isEmpty(feeItem.getStatus())) {
feeItem.setStatus(STATUS_ENABLED);
}
}
private void validate(FeeItem feeItem) {
if (Func.isEmpty(feeItem.getName())) {
throw new ServiceException("中文名称不能为空");
}
if (feeItem.getName().length() > NAME_MAX_LENGTH) {
throw new ServiceException("中文名称不能超过50字");
}
if (Func.isNotEmpty(feeItem.getEnglishName()) && feeItem.getEnglishName().length() > ENGLISH_NAME_MAX_LENGTH) {
throw new ServiceException("英文名称不能超过100字");
}
validateUniqueName(feeItem);
}
private void validateUniqueName(FeeItem feeItem) {
LambdaQueryWrapper<FeeItem> queryWrapper = Wrappers.<FeeItem>lambdaQuery()
.eq(FeeItem::getName, feeItem.getName())
.eq(FeeItem::getIsDeleted, 0);
if (Func.isNotEmpty(feeItem.getId())) {
queryWrapper.ne(FeeItem::getId, feeItem.getId());
}
if (count(queryWrapper) > 0L) {
throw new ServiceException("该中文名称已存在");
}
}
private String trimToEmpty(String value) {
return value == null ? "" : value.trim();
}
private String trimToNull(String value) {
String trimValue = trimToEmpty(value);
return trimValue.isEmpty() ? null : trimValue;
}
}

View File

@@ -72,6 +72,7 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
private final ITopMenuSettingService topMenuSettingService;
private final static String PARENT_ID = "parentId";
private final static Integer MENU_CATEGORY = 1;
private final static Integer MENU_DISPLAY = 1;
@Override
public List<MenuVO> lazyList(Long parentId, Map<String, Object> param) {
@@ -132,10 +133,22 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
roleMenus.forEach(roleMenu -> recursion(allMenus, routes, roleMenu));
routes.sort(Comparator.comparing(Menu::getSort));
MenuWrapper menuWrapper = new MenuWrapper();
List<Menu> collect = routes.stream().filter(x -> Func.equals(x.getCategory(), 1)).collect(Collectors.toList());
Map<Long, Menu> routeMap = routes.stream().collect(Collectors.toMap(Menu::getId, x -> x, (left, right) -> left));
List<Menu> collect = routes.stream()
.filter(x -> Func.equals(x.getCategory(), 1))
.filter(x -> isDisplayMenu(x, routeMap))
.collect(Collectors.toList());
return menuWrapper.listNodeVO(collect);
}
private boolean isDisplayMenu(Menu menu, Map<Long, Menu> routeMap) {
if (!Func.equals(Func.toInt(menu.getIsDisplay(), MENU_DISPLAY), MENU_DISPLAY)) {
return false;
}
Menu parentMenu = routeMap.get(menu.getParentId());
return parentMenu == null || isDisplayMenu(parentMenu, routeMap);
}
private void recursion(List<Menu> allMenus, List<Menu> routes, Menu roleMenu) {
Optional<Menu> menu = allMenus.stream().filter(x -> Func.equals(x.getId(), roleMenu.getParentId())).findFirst();
if (menu.isPresent() && !routes.contains(menu.get())) {
@@ -306,6 +319,9 @@ public class MenuServiceImpl extends ServiceImpl<MenuMapper, Menu> implements IM
if (menu.getParentId() == null) {
menu.setParentId(BladeConstant.TOP_PARENT_ID);
}
if (menu.getIsDisplay() == null) {
menu.setIsDisplay(MENU_DISPLAY);
}
// 验证父节点类型(新增或父节点变更时)
if (isNewMenu || menu.getParentId() != null) {

View File

@@ -27,6 +27,7 @@ package org.springblade.system.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.AirportMaster;
import org.springblade.system.pojo.vo.AirportMasterVO;
@@ -45,7 +46,9 @@ public class AirportMasterWrapper extends BaseEntityWrapper<AirportMaster, Airpo
@Override
public AirportMasterVO entityVO(AirportMaster airportMaster) {
return Objects.requireNonNull(BeanUtil.copyProperties(airportMaster, AirportMasterVO.class));
AirportMasterVO airportMasterVO = Objects.requireNonNull(BeanUtil.copyProperties(airportMaster, AirportMasterVO.class));
airportMasterVO.setUpdateUserName(UserCache.getUserRealName(airportMaster.getUpdateUser()));
return airportMasterVO;
}
}

View File

@@ -0,0 +1,51 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.system.pojo.entity.Currency;
import org.springblade.system.pojo.vo.CurrencyVO;
import java.util.Objects;
/**
* 币种主数据包装类
*
* @author Chill
*/
public class CurrencyWrapper extends BaseEntityWrapper<Currency, CurrencyVO> {
public static CurrencyWrapper build() {
return new CurrencyWrapper();
}
@Override
public CurrencyVO entityVO(Currency currency) {
return Objects.requireNonNull(BeanUtil.copyProperties(currency, CurrencyVO.class));
}
}

View File

@@ -0,0 +1,51 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.system.pojo.entity.CustomerType;
import org.springblade.system.pojo.vo.CustomerTypeVO;
import java.util.Objects;
/**
* 客商类型包装类
*
* @author Chill
*/
public class CustomerTypeWrapper extends BaseEntityWrapper<CustomerType, CustomerTypeVO> {
public static CustomerTypeWrapper build() {
return new CustomerTypeWrapper();
}
@Override
public CustomerTypeVO entityVO(CustomerType customerType) {
return Objects.requireNonNull(BeanUtil.copyProperties(customerType, CustomerTypeVO.class));
}
}

View File

@@ -0,0 +1,51 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.system.wrapper;
import org.springblade.core.mp.support.BaseEntityWrapper;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.system.pojo.entity.FeeItem;
import org.springblade.system.pojo.vo.FeeItemVO;
import java.util.Objects;
/**
* 费用项包装类
*
* @author Chill
*/
public class FeeItemWrapper extends BaseEntityWrapper<FeeItem, FeeItemVO> {
public static FeeItemWrapper build() {
return new FeeItemWrapper();
}
@Override
public FeeItemVO entityVO(FeeItem feeItem) {
return Objects.requireNonNull(BeanUtil.copyProperties(feeItem, FeeItemVO.class));
}
}

Some files were not shown because too many files have changed in this diff Show More