1、调整基础配置模块
2、调整车船务模块
This commit is contained in:
@@ -195,6 +195,7 @@ Entity 基类的选择**直接决定** Service 和 ServiceImpl 的继承方式
|
|||||||
- 简单查询使用 `LambdaQueryWrapper`,复杂查询写在 Mapper XML 中
|
- 简单查询使用 `LambdaQueryWrapper`,复杂查询写在 Mapper XML 中
|
||||||
- Mapper XML 与接口**同包**放置(`src/main/java` 下)
|
- Mapper XML 与接口**同包**放置(`src/main/java` 下)
|
||||||
- 分页统一使用 `Condition.getPage(query)` + `Condition.getQueryWrapper()`
|
- 分页统一使用 `Condition.getPage(query)` + `Condition.getQueryWrapper()`
|
||||||
|
- 表格的排序默认按照创建时间降序;后端分页 SQL 或 QueryWrapper 应默认使用 `create_time DESC` / `orderByDesc(Xxx::getCreateTime)`,除非用户明确要求业务字段优先排序。
|
||||||
- 禁止 JDBC 直连查询
|
- 禁止 JDBC 直连查询
|
||||||
|
|
||||||
### 6.9 审计字段展示
|
### 6.9 审计字段展示
|
||||||
@@ -204,7 +205,13 @@ Entity 基类的选择**直接决定** Service 和 ServiceImpl 的继承方式
|
|||||||
- Entity → VO 转换统一在 `XxxWrapper` 中完成;审计人姓名通过 `UserCache.getUserRealName(userId)` 获取,优先返回用户真实姓名,缓存未命中时兜底返回用户 ID。
|
- Entity → VO 转换统一在 `XxxWrapper` 中完成;审计人姓名通过 `UserCache.getUserRealName(userId)` 获取,优先返回用户真实姓名,缓存未命中时兜底返回用户 ID。
|
||||||
- Controller 不应在列表、详情方法中重复编写审计人翻译逻辑,避免各模块显示规则不一致。
|
- Controller 不应在列表、详情方法中重复编写审计人翻译逻辑,避免各模块显示规则不一致。
|
||||||
|
|
||||||
### 6.10 日志
|
### 6.10 导出数据格式
|
||||||
|
|
||||||
|
- 导出 Excel、CSV 等文件时,金额类字段必须保留 2 位小数;即使原始数据为整数,也应导出为 `0.00` 形式。
|
||||||
|
- 导出经度、纬度字段时必须保留 6 位小数;导出前仍需遵守经度 `-180 ~ 180`、纬度 `-90 ~ 90` 的有效范围约束。
|
||||||
|
- 精度格式化应在导出 DTO/Excel 模型、导出组装逻辑或专用格式化工具中完成,禁止只依赖前端展示格式。
|
||||||
|
|
||||||
|
### 6.11 日志
|
||||||
|
|
||||||
- 使用 `@Slf4j`,占位符传参(禁止字符串拼接)
|
- 使用 `@Slf4j`,占位符传参(禁止字符串拼接)
|
||||||
- 包含关键业务标识,异常必须携带堆栈,禁止打印敏感信息
|
- 包含关键业务标识,异常必须携带堆栈,禁止打印敏感信息
|
||||||
@@ -344,4 +351,4 @@ id parent_id code name alias path source sort category action is_open component
|
|||||||
2075431753298714626 2075431169720033282 airport_master_status 修改状态 airport_master_status 1 2 0 1 0
|
2075431753298714626 2075431169720033282 airport_master_status 修改状态 airport_master_status 1 2 0 1 0
|
||||||
2075431820189474818 2075431169720033282 airport_master_add 新增 airport_master_add 1 2 0 1 0
|
2075431820189474818 2075431169720033282 airport_master_add 新增 airport_master_add 1 2 0 1 0
|
||||||
```
|
```
|
||||||
2.生成的表、字段的排序规则要使用utf8mb4_general_ci
|
2.生成的表、字段的排序规则要使用utf8mb4_general_ci
|
||||||
|
|||||||
+12
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.springblade.system.pojo.entity;
|
package org.springblade.system.pojo.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -93,9 +94,20 @@ public class AirportMaster extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
@Schema(description = "所属城市")
|
@Schema(description = "所属城市")
|
||||||
private String cityName;
|
private String cityName;
|
||||||
|
/**
|
||||||
|
* 所属区县编码
|
||||||
|
*/
|
||||||
|
@Schema(description = "所属区县编码")
|
||||||
|
private String districtCode;
|
||||||
|
/**
|
||||||
|
* 所属区县
|
||||||
|
*/
|
||||||
|
@Schema(description = "所属区县")
|
||||||
|
private String districtName;
|
||||||
/**
|
/**
|
||||||
* 行政区划编码
|
* 行政区划编码
|
||||||
*/
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
@Schema(description = "行政区划编码")
|
@Schema(description = "行政区划编码")
|
||||||
private String regionCode;
|
private String regionCode;
|
||||||
/**
|
/**
|
||||||
|
|||||||
+1
@@ -95,6 +95,7 @@ public class Currency extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 是否本位币
|
* 是否本位币
|
||||||
*/
|
*/
|
||||||
|
@TableField("is_base_currency")
|
||||||
@Schema(description = "是否本位币")
|
@Schema(description = "是否本位币")
|
||||||
private Integer baseCurrency;
|
private Integer baseCurrency;
|
||||||
/**
|
/**
|
||||||
|
|||||||
+9
-4
@@ -48,14 +48,19 @@ public class FeeItem extends BaseEntity {
|
|||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 中文名称
|
* 费用类型
|
||||||
*/
|
*/
|
||||||
@Schema(description = "中文名称")
|
@Schema(description = "费用类型")
|
||||||
|
private String feeCategory;
|
||||||
|
/**
|
||||||
|
* 费用项
|
||||||
|
*/
|
||||||
|
@Schema(description = "费用项")
|
||||||
private String name;
|
private String name;
|
||||||
/**
|
/**
|
||||||
* 英文名称
|
* 费用项代码
|
||||||
*/
|
*/
|
||||||
@Schema(description = "英文名称")
|
@Schema(description = "费用项代码")
|
||||||
private String englishName;
|
private String englishName;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+12
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.springblade.system.pojo.entity;
|
package org.springblade.system.pojo.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -88,9 +89,20 @@ public class PortTerminal extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
@Schema(description = "城市")
|
@Schema(description = "城市")
|
||||||
private String city;
|
private String city;
|
||||||
|
/**
|
||||||
|
* 区县编码
|
||||||
|
*/
|
||||||
|
@Schema(description = "区县编码")
|
||||||
|
private String districtCode;
|
||||||
|
/**
|
||||||
|
* 区县
|
||||||
|
*/
|
||||||
|
@Schema(description = "区县")
|
||||||
|
private String districtName;
|
||||||
/**
|
/**
|
||||||
* 行政区划编码
|
* 行政区划编码
|
||||||
*/
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
@Schema(description = "行政区划编码")
|
@Schema(description = "行政区划编码")
|
||||||
private String regionCode;
|
private String regionCode;
|
||||||
/**
|
/**
|
||||||
|
|||||||
+12
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.springblade.system.pojo.entity;
|
package org.springblade.system.pojo.entity;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -93,9 +94,20 @@ public class RailwayStation extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
@Schema(description = "所属城市")
|
@Schema(description = "所属城市")
|
||||||
private String cityName;
|
private String cityName;
|
||||||
|
/**
|
||||||
|
* 所属区县编码
|
||||||
|
*/
|
||||||
|
@Schema(description = "所属区县编码")
|
||||||
|
private String districtCode;
|
||||||
|
/**
|
||||||
|
* 所属区县
|
||||||
|
*/
|
||||||
|
@Schema(description = "所属区县")
|
||||||
|
private String districtName;
|
||||||
/**
|
/**
|
||||||
* 行政区划编码
|
* 行政区划编码
|
||||||
*/
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
@Schema(description = "行政区划编码")
|
@Schema(description = "行政区划编码")
|
||||||
private String regionCode;
|
private String regionCode;
|
||||||
/**
|
/**
|
||||||
|
|||||||
+8
@@ -27,6 +27,7 @@ package org.springblade.system.pojo.entity;
|
|||||||
|
|
||||||
import com.baomidou.mybatisplus.annotation.IdType;
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -134,5 +135,12 @@ public class Region implements Serializable {
|
|||||||
@Schema(description = "备注")
|
@Schema(description = "备注")
|
||||||
private String remark;
|
private String remark;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 原区划编号
|
||||||
|
*/
|
||||||
|
@TableField(exist = false)
|
||||||
|
@Schema(description = "原区划编号")
|
||||||
|
private String originalCode;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -172,6 +172,7 @@ public class AirportMasterController extends BladeController {
|
|||||||
airportMaster.remove("Blade-Auth");
|
airportMaster.remove("Blade-Auth");
|
||||||
airportMaster.remove("Authorization");
|
airportMaster.remove("Authorization");
|
||||||
airportMaster.remove("access_token");
|
airportMaster.remove("access_token");
|
||||||
|
normalizeRegionCodeCondition(airportMaster);
|
||||||
QueryWrapper<AirportMaster> queryWrapper = Condition.getQueryWrapper(airportMaster, AirportMaster.class);
|
QueryWrapper<AirportMaster> queryWrapper = Condition.getQueryWrapper(airportMaster, AirportMaster.class);
|
||||||
if (Func.isNotEmpty(ids)) {
|
if (Func.isNotEmpty(ids)) {
|
||||||
queryWrapper.lambda().in(AirportMaster::getId, Func.toLongList(ids.toString()));
|
queryWrapper.lambda().in(AirportMaster::getId, Func.toLongList(ids.toString()));
|
||||||
@@ -207,4 +208,11 @@ public class AirportMasterController extends BladeController {
|
|||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void normalizeRegionCodeCondition(Map<String, Object> params) {
|
||||||
|
Object regionCode = params.remove("regionCode");
|
||||||
|
if (Func.isNotEmpty(regionCode) && Func.isEmpty(params.get("districtCode"))) {
|
||||||
|
params.put("districtCode", regionCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+8
@@ -184,6 +184,7 @@ public class PortTerminalController extends BladeController {
|
|||||||
portTerminal.remove("Blade-Auth");
|
portTerminal.remove("Blade-Auth");
|
||||||
portTerminal.remove("Authorization");
|
portTerminal.remove("Authorization");
|
||||||
portTerminal.remove("access_token");
|
portTerminal.remove("access_token");
|
||||||
|
normalizeRegionCodeCondition(portTerminal);
|
||||||
QueryWrapper<PortTerminal> queryWrapper = Condition.getQueryWrapper(portTerminal, PortTerminal.class);
|
QueryWrapper<PortTerminal> queryWrapper = Condition.getQueryWrapper(portTerminal, PortTerminal.class);
|
||||||
applyDataSourceCondition(queryWrapper, dataSource);
|
applyDataSourceCondition(queryWrapper, dataSource);
|
||||||
if (Func.isNotEmpty(ids)) {
|
if (Func.isNotEmpty(ids)) {
|
||||||
@@ -220,6 +221,13 @@ public class PortTerminalController extends BladeController {
|
|||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void normalizeRegionCodeCondition(Map<String, Object> params) {
|
||||||
|
Object regionCode = params.remove("regionCode");
|
||||||
|
if (Func.isNotEmpty(regionCode) && Func.isEmpty(params.get("districtCode"))) {
|
||||||
|
params.put("districtCode", regionCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void applyDataSourceCondition(QueryWrapper<PortTerminal> queryWrapper, Object dataSource) {
|
private void applyDataSourceCondition(QueryWrapper<PortTerminal> queryWrapper, Object dataSource) {
|
||||||
String value = Func.toStrWithEmpty(dataSource, "");
|
String value = Func.toStrWithEmpty(dataSource, "");
|
||||||
if (Func.isEmpty(value)) {
|
if (Func.isEmpty(value)) {
|
||||||
|
|||||||
+8
@@ -176,6 +176,7 @@ public class RailwayStationController extends BladeController {
|
|||||||
railwayStation.remove("Blade-Auth");
|
railwayStation.remove("Blade-Auth");
|
||||||
railwayStation.remove("Authorization");
|
railwayStation.remove("Authorization");
|
||||||
railwayStation.remove("access_token");
|
railwayStation.remove("access_token");
|
||||||
|
normalizeRegionCodeCondition(railwayStation);
|
||||||
QueryWrapper<RailwayStation> queryWrapper = Condition.getQueryWrapper(railwayStation, RailwayStation.class);
|
QueryWrapper<RailwayStation> queryWrapper = Condition.getQueryWrapper(railwayStation, RailwayStation.class);
|
||||||
applyDataSourceCondition(queryWrapper, dataSource);
|
applyDataSourceCondition(queryWrapper, dataSource);
|
||||||
if (Func.isNotEmpty(ids)) {
|
if (Func.isNotEmpty(ids)) {
|
||||||
@@ -212,6 +213,13 @@ public class RailwayStationController extends BladeController {
|
|||||||
return query;
|
return query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void normalizeRegionCodeCondition(Map<String, Object> params) {
|
||||||
|
Object regionCode = params.remove("regionCode");
|
||||||
|
if (Func.isNotEmpty(regionCode) && Func.isEmpty(params.get("districtCode"))) {
|
||||||
|
params.put("districtCode", regionCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void applyDataSourceCondition(QueryWrapper<RailwayStation> queryWrapper, Object dataSource) {
|
private void applyDataSourceCondition(QueryWrapper<RailwayStation> queryWrapper, Object dataSource) {
|
||||||
String value = Func.toStrWithEmpty(dataSource, "");
|
String value = Func.toStrWithEmpty(dataSource, "");
|
||||||
if (Func.isEmpty(value)) {
|
if (Func.isEmpty(value)) {
|
||||||
|
|||||||
+7
-3
@@ -133,7 +133,7 @@ public class RegionController extends BladeController {
|
|||||||
@ApiOperationSupport(order = 5)
|
@ApiOperationSupport(order = 5)
|
||||||
@Operation(summary = "新增", description = "传入region")
|
@Operation(summary = "新增", description = "传入region")
|
||||||
public R save(@Valid @RequestBody Region region) {
|
public R save(@Valid @RequestBody Region region) {
|
||||||
return R.status(regionService.save(region));
|
return R.status(regionService.submit(region));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -143,7 +143,8 @@ public class RegionController extends BladeController {
|
|||||||
@ApiOperationSupport(order = 6)
|
@ApiOperationSupport(order = 6)
|
||||||
@Operation(summary = "修改", description = "传入region")
|
@Operation(summary = "修改", description = "传入region")
|
||||||
public R update(@Valid @RequestBody Region region) {
|
public R update(@Valid @RequestBody Region region) {
|
||||||
return R.status(regionService.updateById(region));
|
region.setOriginalCode(region.getCode());
|
||||||
|
return R.status(regionService.submit(region));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -174,7 +175,10 @@ public class RegionController extends BladeController {
|
|||||||
@ApiOperationSupport(order = 9)
|
@ApiOperationSupport(order = 9)
|
||||||
@Operation(summary = "下拉数据源", description = "传入tenant")
|
@Operation(summary = "下拉数据源", description = "传入tenant")
|
||||||
public R<List<Region>> select(@RequestParam(required = false, defaultValue = "+86") String code) {
|
public R<List<Region>> select(@RequestParam(required = false, defaultValue = "+86") String code) {
|
||||||
List<Region> list = regionService.list(Wrappers.<Region>query().lambda().eq(Region::getParentCode, code));
|
List<Region> list = regionService.list(Wrappers.<Region>lambdaQuery()
|
||||||
|
.eq(Region::getParentCode, code)
|
||||||
|
.orderByAsc(Region::getSort)
|
||||||
|
.orderByAsc(Region::getCode));
|
||||||
return R.data(list);
|
return R.data(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
@@ -74,6 +74,9 @@ public class AirportMasterExcel implements Serializable {
|
|||||||
@ExcelProperty("所属城市")
|
@ExcelProperty("所属城市")
|
||||||
private String cityName;
|
private String cityName;
|
||||||
|
|
||||||
|
@ExcelProperty("所属区县")
|
||||||
|
private String districtName;
|
||||||
|
|
||||||
@ExcelProperty("行政区划")
|
@ExcelProperty("行政区划")
|
||||||
private String regionName;
|
private String regionName;
|
||||||
|
|
||||||
|
|||||||
+6
@@ -27,6 +27,7 @@ package org.springblade.system.excel;
|
|||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelIgnore;
|
import cn.idev.excel.annotation.ExcelIgnore;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
|
import cn.idev.excel.annotation.format.NumberFormat;
|
||||||
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
||||||
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
||||||
@@ -73,6 +74,9 @@ public class PortTerminalExcel implements Serializable {
|
|||||||
@ExcelProperty("城市")
|
@ExcelProperty("城市")
|
||||||
private String city;
|
private String city;
|
||||||
|
|
||||||
|
@ExcelProperty("区县")
|
||||||
|
private String districtName;
|
||||||
|
|
||||||
@ExcelProperty("行政区划编码")
|
@ExcelProperty("行政区划编码")
|
||||||
private String regionCode;
|
private String regionCode;
|
||||||
|
|
||||||
@@ -80,9 +84,11 @@ public class PortTerminalExcel implements Serializable {
|
|||||||
private String detailAddress;
|
private String detailAddress;
|
||||||
|
|
||||||
@ExcelProperty("经度")
|
@ExcelProperty("经度")
|
||||||
|
@NumberFormat("0.000000")
|
||||||
private BigDecimal longitude;
|
private BigDecimal longitude;
|
||||||
|
|
||||||
@ExcelProperty("纬度")
|
@ExcelProperty("纬度")
|
||||||
|
@NumberFormat("0.000000")
|
||||||
private BigDecimal latitude;
|
private BigDecimal latitude;
|
||||||
|
|
||||||
@ExcelProperty("数据来源")
|
@ExcelProperty("数据来源")
|
||||||
|
|||||||
+5
-6
@@ -27,7 +27,6 @@ package org.springblade.system.excel;
|
|||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelIgnore;
|
import cn.idev.excel.annotation.ExcelIgnore;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
import cn.idev.excel.annotation.format.NumberFormat;
|
|
||||||
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
||||||
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
||||||
@@ -35,7 +34,6 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 铁路车站主数据 Excel
|
* 铁路车站主数据 Excel
|
||||||
@@ -74,6 +72,9 @@ public class RailwayStationExcel implements Serializable {
|
|||||||
@ExcelProperty("所属城市")
|
@ExcelProperty("所属城市")
|
||||||
private String cityName;
|
private String cityName;
|
||||||
|
|
||||||
|
@ExcelProperty("所属区县")
|
||||||
|
private String districtName;
|
||||||
|
|
||||||
@ExcelProperty("行政区划")
|
@ExcelProperty("行政区划")
|
||||||
private String regionName;
|
private String regionName;
|
||||||
|
|
||||||
@@ -81,12 +82,10 @@ public class RailwayStationExcel implements Serializable {
|
|||||||
private String detailAddress;
|
private String detailAddress;
|
||||||
|
|
||||||
@ExcelProperty("经度")
|
@ExcelProperty("经度")
|
||||||
@NumberFormat("0.000000")
|
private String longitude;
|
||||||
private BigDecimal longitude;
|
|
||||||
|
|
||||||
@ExcelProperty("纬度")
|
@ExcelProperty("纬度")
|
||||||
@NumberFormat("0.000000")
|
private String latitude;
|
||||||
private BigDecimal latitude;
|
|
||||||
|
|
||||||
@ExcelProperty("数据来源")
|
@ExcelProperty("数据来源")
|
||||||
private String dataSource;
|
private String dataSource;
|
||||||
|
|||||||
+14
-4
@@ -21,7 +21,9 @@
|
|||||||
<result column="province_name" property="provinceName"/>
|
<result column="province_name" property="provinceName"/>
|
||||||
<result column="city_code" property="cityCode"/>
|
<result column="city_code" property="cityCode"/>
|
||||||
<result column="city_name" property="cityName"/>
|
<result column="city_name" property="cityName"/>
|
||||||
<result column="region_code" property="regionCode"/>
|
<result column="district_code" property="districtCode"/>
|
||||||
|
<result column="district_name" property="districtName"/>
|
||||||
|
<result column="district_code" property="regionCode"/>
|
||||||
<result column="region_name" property="regionName"/>
|
<result column="region_name" property="regionName"/>
|
||||||
<result column="detail_address" property="detailAddress"/>
|
<result column="detail_address" property="detailAddress"/>
|
||||||
<result column="longitude" property="longitude"/>
|
<result column="longitude" property="longitude"/>
|
||||||
@@ -50,7 +52,8 @@
|
|||||||
am.province_name,
|
am.province_name,
|
||||||
am.city_code,
|
am.city_code,
|
||||||
am.city_name,
|
am.city_name,
|
||||||
am.region_code,
|
am.district_code,
|
||||||
|
am.district_name,
|
||||||
am.region_name,
|
am.region_name,
|
||||||
am.detail_address,
|
am.detail_address,
|
||||||
am.longitude,
|
am.longitude,
|
||||||
@@ -77,7 +80,14 @@
|
|||||||
AND am.icao_code = #{airportMaster.icaoCode}
|
AND am.icao_code = #{airportMaster.icaoCode}
|
||||||
</if>
|
</if>
|
||||||
<if test="airportMaster.regionCode != null and airportMaster.regionCode != ''">
|
<if test="airportMaster.regionCode != null and airportMaster.regionCode != ''">
|
||||||
AND am.region_code = #{airportMaster.regionCode}
|
AND am.district_code = #{airportMaster.regionCode}
|
||||||
|
</if>
|
||||||
|
<if test="airportMaster.districtCode != null and airportMaster.districtCode != ''">
|
||||||
|
AND am.district_code = #{airportMaster.districtCode}
|
||||||
|
</if>
|
||||||
|
<if test="airportMaster.districtName != null and airportMaster.districtName != ''">
|
||||||
|
<bind name="districtNameLike" value="'%' + airportMaster.districtName + '%'"/>
|
||||||
|
AND am.district_name LIKE #{districtNameLike}
|
||||||
</if>
|
</if>
|
||||||
<if test="airportMaster.regionName != null and airportMaster.regionName != ''">
|
<if test="airportMaster.regionName != null and airportMaster.regionName != ''">
|
||||||
<bind name="regionNameLike" value="'%' + airportMaster.regionName + '%'"/>
|
<bind name="regionNameLike" value="'%' + airportMaster.regionName + '%'"/>
|
||||||
@@ -100,7 +110,7 @@
|
|||||||
<if test="airportMaster.status != null">
|
<if test="airportMaster.status != null">
|
||||||
AND am.status = #{airportMaster.status}
|
AND am.status = #{airportMaster.status}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY am.update_time DESC, am.create_time DESC
|
ORDER BY am.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+1
-1
@@ -91,7 +91,7 @@
|
|||||||
<if test="currency.updateTimeEnd != null">
|
<if test="currency.updateTimeEnd != null">
|
||||||
AND bc.update_time <= #{currency.updateTimeEnd}
|
AND bc.update_time <= #{currency.updateTimeEnd}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY bc.code ASC, bc.effective_date DESC, bc.create_time DESC
|
ORDER BY bc.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+1
-1
@@ -33,7 +33,7 @@
|
|||||||
<if test="customerType.status != null">
|
<if test="customerType.status != null">
|
||||||
AND status = #{customerType.status}
|
AND status = #{customerType.status}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY update_time DESC, create_time DESC
|
ORDER BY create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+5
-1
@@ -11,6 +11,7 @@
|
|||||||
<result column="update_time" property="updateTime"/>
|
<result column="update_time" property="updateTime"/>
|
||||||
<result column="status" property="status"/>
|
<result column="status" property="status"/>
|
||||||
<result column="is_deleted" property="isDeleted"/>
|
<result column="is_deleted" property="isDeleted"/>
|
||||||
|
<result column="fee_category" property="feeCategory"/>
|
||||||
<result column="name" property="name"/>
|
<result column="name" property="name"/>
|
||||||
<result column="english_name" property="englishName"/>
|
<result column="english_name" property="englishName"/>
|
||||||
</resultMap>
|
</resultMap>
|
||||||
@@ -22,6 +23,9 @@
|
|||||||
blade_fee_item
|
blade_fee_item
|
||||||
WHERE
|
WHERE
|
||||||
is_deleted = 0
|
is_deleted = 0
|
||||||
|
<if test="feeItem.feeCategory != null and feeItem.feeCategory != ''">
|
||||||
|
AND fee_category = #{feeItem.feeCategory}
|
||||||
|
</if>
|
||||||
<if test="feeItem.name != null and feeItem.name != ''">
|
<if test="feeItem.name != null and feeItem.name != ''">
|
||||||
<bind name="nameLike" value="'%' + feeItem.name + '%'"/>
|
<bind name="nameLike" value="'%' + feeItem.name + '%'"/>
|
||||||
AND name LIKE #{nameLike}
|
AND name LIKE #{nameLike}
|
||||||
@@ -33,7 +37,7 @@
|
|||||||
<if test="feeItem.status != null">
|
<if test="feeItem.status != null">
|
||||||
AND status = #{feeItem.status}
|
AND status = #{feeItem.status}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY update_time DESC, create_time DESC
|
ORDER BY create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+14
-4
@@ -20,7 +20,9 @@
|
|||||||
<result column="parent_name" property="parentName"/>
|
<result column="parent_name" property="parentName"/>
|
||||||
<result column="country" property="country"/>
|
<result column="country" property="country"/>
|
||||||
<result column="city" property="city"/>
|
<result column="city" property="city"/>
|
||||||
<result column="region_code" property="regionCode"/>
|
<result column="district_code" property="districtCode"/>
|
||||||
|
<result column="district_name" property="districtName"/>
|
||||||
|
<result column="district_code" property="regionCode"/>
|
||||||
<result column="detail_address" property="detailAddress"/>
|
<result column="detail_address" property="detailAddress"/>
|
||||||
<result column="longitude" property="longitude"/>
|
<result column="longitude" property="longitude"/>
|
||||||
<result column="latitude" property="latitude"/>
|
<result column="latitude" property="latitude"/>
|
||||||
@@ -47,7 +49,8 @@
|
|||||||
pt.parent_name,
|
pt.parent_name,
|
||||||
pt.country,
|
pt.country,
|
||||||
pt.city,
|
pt.city,
|
||||||
pt.region_code,
|
pt.district_code,
|
||||||
|
pt.district_name,
|
||||||
pt.detail_address,
|
pt.detail_address,
|
||||||
CASE WHEN pt.longitude BETWEEN -180 AND 180 THEN pt.longitude ELSE NULL END AS longitude,
|
CASE WHEN pt.longitude BETWEEN -180 AND 180 THEN pt.longitude ELSE NULL END AS longitude,
|
||||||
CASE WHEN pt.latitude BETWEEN -90 AND 90 THEN pt.latitude ELSE NULL END AS latitude,
|
CASE WHEN pt.latitude BETWEEN -90 AND 90 THEN pt.latitude ELSE NULL END AS latitude,
|
||||||
@@ -82,8 +85,15 @@
|
|||||||
<if test="portTerminal.city != null and portTerminal.city != ''">
|
<if test="portTerminal.city != null and portTerminal.city != ''">
|
||||||
AND pt.city = #{portTerminal.city}
|
AND pt.city = #{portTerminal.city}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="portTerminal.districtCode != null and portTerminal.districtCode != ''">
|
||||||
|
AND pt.district_code = #{portTerminal.districtCode}
|
||||||
|
</if>
|
||||||
|
<if test="portTerminal.districtName != null and portTerminal.districtName != ''">
|
||||||
|
<bind name="districtNameLike" value="'%' + portTerminal.districtName + '%'"/>
|
||||||
|
AND pt.district_name LIKE #{districtNameLike}
|
||||||
|
</if>
|
||||||
<if test="portTerminal.regionCode != null and portTerminal.regionCode != ''">
|
<if test="portTerminal.regionCode != null and portTerminal.regionCode != ''">
|
||||||
AND pt.region_code = #{portTerminal.regionCode}
|
AND pt.district_code = #{portTerminal.regionCode}
|
||||||
</if>
|
</if>
|
||||||
<if test="portTerminal.detailAddress != null and portTerminal.detailAddress != ''">
|
<if test="portTerminal.detailAddress != null and portTerminal.detailAddress != ''">
|
||||||
<bind name="detailAddressLike" value="'%' + portTerminal.detailAddress + '%'"/>
|
<bind name="detailAddressLike" value="'%' + portTerminal.detailAddress + '%'"/>
|
||||||
@@ -95,7 +105,7 @@
|
|||||||
<if test="portTerminal.status != null">
|
<if test="portTerminal.status != null">
|
||||||
AND pt.status = #{portTerminal.status}
|
AND pt.status = #{portTerminal.status}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY pt.update_time DESC, pt.create_time DESC
|
ORDER BY pt.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+14
-4
@@ -21,7 +21,9 @@
|
|||||||
<result column="province_name" property="provinceName"/>
|
<result column="province_name" property="provinceName"/>
|
||||||
<result column="city_code" property="cityCode"/>
|
<result column="city_code" property="cityCode"/>
|
||||||
<result column="city_name" property="cityName"/>
|
<result column="city_name" property="cityName"/>
|
||||||
<result column="region_code" property="regionCode"/>
|
<result column="district_code" property="districtCode"/>
|
||||||
|
<result column="district_name" property="districtName"/>
|
||||||
|
<result column="district_code" property="regionCode"/>
|
||||||
<result column="region_name" property="regionName"/>
|
<result column="region_name" property="regionName"/>
|
||||||
<result column="detail_address" property="detailAddress"/>
|
<result column="detail_address" property="detailAddress"/>
|
||||||
<result column="longitude" property="longitude"/>
|
<result column="longitude" property="longitude"/>
|
||||||
@@ -50,7 +52,8 @@
|
|||||||
rs.province_name,
|
rs.province_name,
|
||||||
rs.city_code,
|
rs.city_code,
|
||||||
rs.city_name,
|
rs.city_name,
|
||||||
rs.region_code,
|
rs.district_code,
|
||||||
|
rs.district_name,
|
||||||
rs.region_name,
|
rs.region_name,
|
||||||
rs.detail_address,
|
rs.detail_address,
|
||||||
rs.longitude,
|
rs.longitude,
|
||||||
@@ -82,7 +85,14 @@
|
|||||||
AND rs.telegraph_code = #{railwayStation.telegraphCode}
|
AND rs.telegraph_code = #{railwayStation.telegraphCode}
|
||||||
</if>
|
</if>
|
||||||
<if test="railwayStation.regionCode != null and railwayStation.regionCode != ''">
|
<if test="railwayStation.regionCode != null and railwayStation.regionCode != ''">
|
||||||
AND rs.region_code = #{railwayStation.regionCode}
|
AND rs.district_code = #{railwayStation.regionCode}
|
||||||
|
</if>
|
||||||
|
<if test="railwayStation.districtCode != null and railwayStation.districtCode != ''">
|
||||||
|
AND rs.district_code = #{railwayStation.districtCode}
|
||||||
|
</if>
|
||||||
|
<if test="railwayStation.districtName != null and railwayStation.districtName != ''">
|
||||||
|
<bind name="districtNameLike" value="'%' + railwayStation.districtName + '%'"/>
|
||||||
|
AND rs.district_name LIKE #{districtNameLike}
|
||||||
</if>
|
</if>
|
||||||
<if test="railwayStation.regionName != null and railwayStation.regionName != ''">
|
<if test="railwayStation.regionName != null and railwayStation.regionName != ''">
|
||||||
<bind name="regionNameLike" value="'%' + railwayStation.regionName + '%'"/>
|
<bind name="regionNameLike" value="'%' + railwayStation.regionName + '%'"/>
|
||||||
@@ -111,7 +121,7 @@
|
|||||||
<if test="railwayStation.status != null">
|
<if test="railwayStation.status != null">
|
||||||
AND rs.status = #{railwayStation.status}
|
AND rs.status = #{railwayStation.status}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY rs.update_time DESC, rs.create_time DESC
|
ORDER BY rs.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+2
-1
@@ -72,6 +72,7 @@
|
|||||||
and region.name like concat(concat('%', #{param2.name}),'%')
|
and region.name like concat(concat('%', #{param2.name}),'%')
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
|
ORDER BY region.sort ASC, region.code ASC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="lazyTree" resultType="java.util.HashMap">
|
<select id="lazyTree" resultType="java.util.HashMap">
|
||||||
@@ -95,7 +96,7 @@
|
|||||||
and region.name like concat(concat('%', #{param2.name}),'%')
|
and region.name like concat(concat('%', #{param2.name}),'%')
|
||||||
</if>
|
</if>
|
||||||
</where>
|
</where>
|
||||||
ORDER BY region.code
|
ORDER BY region.sort ASC, region.code ASC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="exportRegion" resultType="org.springblade.system.excel.RegionExcel">
|
<select id="exportRegion" resultType="org.springblade.system.excel.RegionExcel">
|
||||||
|
|||||||
+31
-4
@@ -173,8 +173,16 @@ public class AirportMasterServiceImpl extends BaseServiceImpl<AirportMasterMappe
|
|||||||
airportMaster.setProvinceName(trimToNull(airportMaster.getProvinceName()));
|
airportMaster.setProvinceName(trimToNull(airportMaster.getProvinceName()));
|
||||||
airportMaster.setCityCode(trimToNull(airportMaster.getCityCode()));
|
airportMaster.setCityCode(trimToNull(airportMaster.getCityCode()));
|
||||||
airportMaster.setCityName(trimToNull(airportMaster.getCityName()));
|
airportMaster.setCityName(trimToNull(airportMaster.getCityName()));
|
||||||
|
airportMaster.setDistrictCode(trimToNull(airportMaster.getDistrictCode()));
|
||||||
|
airportMaster.setDistrictName(trimToNull(airportMaster.getDistrictName()));
|
||||||
airportMaster.setRegionCode(trimToNull(airportMaster.getRegionCode()));
|
airportMaster.setRegionCode(trimToNull(airportMaster.getRegionCode()));
|
||||||
airportMaster.setRegionName(trimToNull(airportMaster.getRegionName()));
|
airportMaster.setRegionName(trimToNull(airportMaster.getRegionName()));
|
||||||
|
if (Func.isEmpty(airportMaster.getDistrictCode()) && Func.isNotEmpty(airportMaster.getRegionCode())) {
|
||||||
|
airportMaster.setDistrictCode(airportMaster.getRegionCode());
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(airportMaster.getDistrictName()) && Func.isNotEmpty(airportMaster.getRegionName())) {
|
||||||
|
airportMaster.setDistrictName(airportMaster.getRegionName());
|
||||||
|
}
|
||||||
airportMaster.setDetailAddress(trimToNull(airportMaster.getDetailAddress()));
|
airportMaster.setDetailAddress(trimToNull(airportMaster.getDetailAddress()));
|
||||||
airportMaster.setRemark(trimToNull(airportMaster.getRemark()));
|
airportMaster.setRemark(trimToNull(airportMaster.getRemark()));
|
||||||
airportMaster.setDataSource(normalizeDataSource(Func.toStrWithEmpty(airportMaster.getDataSource(), defaultDataSource)));
|
airportMaster.setDataSource(normalizeDataSource(Func.toStrWithEmpty(airportMaster.getDataSource(), defaultDataSource)));
|
||||||
@@ -205,12 +213,13 @@ public class AirportMasterServiceImpl extends BaseServiceImpl<AirportMasterMappe
|
|||||||
validateLength(airportMaster.getShortName(), SHORT_NAME_MAX_LENGTH, "机场简称不能超过100字");
|
validateLength(airportMaster.getShortName(), SHORT_NAME_MAX_LENGTH, "机场简称不能超过100字");
|
||||||
validateLength(airportMaster.getProvinceName(), REGION_NAME_MAX_LENGTH, "所属省份不能超过128字");
|
validateLength(airportMaster.getProvinceName(), REGION_NAME_MAX_LENGTH, "所属省份不能超过128字");
|
||||||
validateLength(airportMaster.getCityName(), REGION_NAME_MAX_LENGTH, "所属城市不能超过128字");
|
validateLength(airportMaster.getCityName(), REGION_NAME_MAX_LENGTH, "所属城市不能超过128字");
|
||||||
|
validateLength(airportMaster.getDistrictName(), REGION_NAME_MAX_LENGTH, "所属区县不能超过128字");
|
||||||
validateLength(airportMaster.getRegionCode(), REGION_CODE_MAX_LENGTH, "行政区划编码不能超过32字");
|
validateLength(airportMaster.getRegionCode(), REGION_CODE_MAX_LENGTH, "行政区划编码不能超过32字");
|
||||||
validateLength(airportMaster.getRegionName(), REGION_NAME_MAX_LENGTH, "行政区划不能超过128字");
|
validateLength(airportMaster.getRegionName(), REGION_NAME_MAX_LENGTH, "行政区划不能超过128字");
|
||||||
validateLength(airportMaster.getDetailAddress(), DETAIL_ADDRESS_MAX_LENGTH, "详细地址不能超过255字");
|
validateLength(airportMaster.getDetailAddress(), DETAIL_ADDRESS_MAX_LENGTH, "详细地址不能超过255字");
|
||||||
validateLength(airportMaster.getRemark(), REMARK_MAX_LENGTH, "备注不能超过200字");
|
validateLength(airportMaster.getRemark(), REMARK_MAX_LENGTH, "备注不能超过200字");
|
||||||
if (Func.isEmpty(airportMaster.getProvinceCode()) || Func.isEmpty(airportMaster.getCityCode())) {
|
if (Func.isEmpty(airportMaster.getProvinceCode()) || Func.isEmpty(airportMaster.getCityCode()) || Func.isEmpty(airportMaster.getDistrictCode())) {
|
||||||
throw new ServiceException("请选择省份和城市");
|
throw new ServiceException("请选择省份、城市和区县");
|
||||||
}
|
}
|
||||||
validateCoordinate(airportMaster.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE, "经度");
|
validateCoordinate(airportMaster.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE, "经度");
|
||||||
validateCoordinate(airportMaster.getLatitude(), MIN_LATITUDE, MAX_LATITUDE, "纬度");
|
validateCoordinate(airportMaster.getLatitude(), MIN_LATITUDE, MAX_LATITUDE, "纬度");
|
||||||
@@ -254,8 +263,26 @@ public class AirportMasterServiceImpl extends BaseServiceImpl<AirportMasterMappe
|
|||||||
airportMaster.setProvinceName(province.getName());
|
airportMaster.setProvinceName(province.getName());
|
||||||
airportMaster.setCityCode(city.getCode());
|
airportMaster.setCityCode(city.getCode());
|
||||||
airportMaster.setCityName(city.getName());
|
airportMaster.setCityName(city.getName());
|
||||||
airportMaster.setRegionCode(city.getCode());
|
|
||||||
airportMaster.setRegionName(city.getName());
|
Region district = null;
|
||||||
|
if (Func.isNotEmpty(airportMaster.getDistrictCode())) {
|
||||||
|
district = regionService.getById(airportMaster.getDistrictCode());
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(district) && Func.isNotEmpty(airportMaster.getDistrictName())) {
|
||||||
|
district = regionService.getOne(Wrappers.<Region>lambdaQuery()
|
||||||
|
.eq(Region::getParentCode, city.getCode())
|
||||||
|
.eq(Region::getName, airportMaster.getDistrictName()), false);
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(district)) {
|
||||||
|
throw new ServiceException("请选择区县");
|
||||||
|
}
|
||||||
|
if (!Objects.equals(district.getParentCode(), city.getCode())) {
|
||||||
|
throw new ServiceException("所属区县与所属城市不匹配");
|
||||||
|
}
|
||||||
|
airportMaster.setDistrictCode(district.getCode());
|
||||||
|
airportMaster.setDistrictName(district.getName());
|
||||||
|
airportMaster.setRegionCode(district.getCode());
|
||||||
|
airportMaster.setRegionName(district.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateCoordinate(BigDecimal value, BigDecimal min, BigDecimal max, String name) {
|
private void validateCoordinate(BigDecimal value, BigDecimal min, BigDecimal max, String name) {
|
||||||
|
|||||||
+12
-8
@@ -81,6 +81,11 @@ public class CurrencyServiceImpl extends BaseServiceImpl<CurrencyMapper, Currenc
|
|||||||
prepare(currency, SOURCE_MANUAL);
|
prepare(currency, SOURCE_MANUAL);
|
||||||
validate(currency);
|
validate(currency);
|
||||||
boolean result = saveOrUpdate(currency);
|
boolean result = saveOrUpdate(currency);
|
||||||
|
if (Func.isNotEmpty(currency.getId()) && Func.isEmpty(currency.getExchangeRate())) {
|
||||||
|
update(Wrappers.<Currency>lambdaUpdate()
|
||||||
|
.set(Currency::getExchangeRate, null)
|
||||||
|
.eq(Currency::getId, currency.getId()));
|
||||||
|
}
|
||||||
rebuildEnabledValidity(currency.getCode());
|
rebuildEnabledValidity(currency.getCode());
|
||||||
if (oldCurrency != null && !Objects.equals(oldCurrency.getCode(), currency.getCode())) {
|
if (oldCurrency != null && !Objects.equals(oldCurrency.getCode(), currency.getCode())) {
|
||||||
rebuildEnabledValidity(oldCurrency.getCode());
|
rebuildEnabledValidity(oldCurrency.getCode());
|
||||||
@@ -205,14 +210,13 @@ public class CurrencyServiceImpl extends BaseServiceImpl<CurrencyMapper, Currenc
|
|||||||
if (currency.getDecimalPlaces() < MIN_DECIMAL_PLACES || currency.getDecimalPlaces() > MAX_DECIMAL_PLACES) {
|
if (currency.getDecimalPlaces() < MIN_DECIMAL_PLACES || currency.getDecimalPlaces() > MAX_DECIMAL_PLACES) {
|
||||||
throw new ServiceException("小数位数范围为0到8");
|
throw new ServiceException("小数位数范围为0到8");
|
||||||
}
|
}
|
||||||
if (Func.isEmpty(currency.getExchangeRate())) {
|
if (Func.isNotEmpty(currency.getExchangeRate())) {
|
||||||
throw new ServiceException("汇率不能为空");
|
if (currency.getExchangeRate().compareTo(BigDecimal.ZERO) <= 0) {
|
||||||
}
|
throw new ServiceException("汇率必须大于0");
|
||||||
if (currency.getExchangeRate().compareTo(BigDecimal.ZERO) <= 0) {
|
}
|
||||||
throw new ServiceException("汇率必须大于0");
|
if (currency.getExchangeRate().stripTrailingZeros().scale() > EXCHANGE_RATE_SCALE) {
|
||||||
}
|
throw new ServiceException("汇率最多保留6位小数");
|
||||||
if (currency.getExchangeRate().stripTrailingZeros().scale() > EXCHANGE_RATE_SCALE) {
|
}
|
||||||
throw new ServiceException("汇率最多保留6位小数");
|
|
||||||
}
|
}
|
||||||
if (Func.isEmpty(currency.getEffectiveDate())) {
|
if (Func.isEmpty(currency.getEffectiveDate())) {
|
||||||
throw new ServiceException("生效日期不能为空");
|
throw new ServiceException("生效日期不能为空");
|
||||||
|
|||||||
+12
-4
@@ -50,6 +50,7 @@ public class FeeItemServiceImpl extends BaseServiceImpl<FeeItemMapper, FeeItem>
|
|||||||
|
|
||||||
private static final int STATUS_ENABLED = 1;
|
private static final int STATUS_ENABLED = 1;
|
||||||
private static final int STATUS_DISABLED = 2;
|
private static final int STATUS_DISABLED = 2;
|
||||||
|
private static final int FEE_CATEGORY_MAX_LENGTH = 50;
|
||||||
private static final int NAME_MAX_LENGTH = 50;
|
private static final int NAME_MAX_LENGTH = 50;
|
||||||
private static final int ENGLISH_NAME_MAX_LENGTH = 100;
|
private static final int ENGLISH_NAME_MAX_LENGTH = 100;
|
||||||
|
|
||||||
@@ -86,6 +87,7 @@ public class FeeItemServiceImpl extends BaseServiceImpl<FeeItemMapper, FeeItem>
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void prepare(FeeItem feeItem) {
|
private void prepare(FeeItem feeItem) {
|
||||||
|
feeItem.setFeeCategory(trimToEmpty(feeItem.getFeeCategory()));
|
||||||
feeItem.setName(trimToEmpty(feeItem.getName()));
|
feeItem.setName(trimToEmpty(feeItem.getName()));
|
||||||
feeItem.setEnglishName(trimToNull(feeItem.getEnglishName()));
|
feeItem.setEnglishName(trimToNull(feeItem.getEnglishName()));
|
||||||
if (Func.isEmpty(feeItem.getStatus())) {
|
if (Func.isEmpty(feeItem.getStatus())) {
|
||||||
@@ -94,14 +96,20 @@ public class FeeItemServiceImpl extends BaseServiceImpl<FeeItemMapper, FeeItem>
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void validate(FeeItem feeItem) {
|
private void validate(FeeItem feeItem) {
|
||||||
|
if (Func.isEmpty(feeItem.getFeeCategory())) {
|
||||||
|
throw new ServiceException("费用类型不能为空");
|
||||||
|
}
|
||||||
|
if (feeItem.getFeeCategory().length() > FEE_CATEGORY_MAX_LENGTH) {
|
||||||
|
throw new ServiceException("费用类型不能超过50字");
|
||||||
|
}
|
||||||
if (Func.isEmpty(feeItem.getName())) {
|
if (Func.isEmpty(feeItem.getName())) {
|
||||||
throw new ServiceException("中文名称不能为空");
|
throw new ServiceException("费用项不能为空");
|
||||||
}
|
}
|
||||||
if (feeItem.getName().length() > NAME_MAX_LENGTH) {
|
if (feeItem.getName().length() > NAME_MAX_LENGTH) {
|
||||||
throw new ServiceException("中文名称不能超过50字");
|
throw new ServiceException("费用项不能超过50字");
|
||||||
}
|
}
|
||||||
if (Func.isNotEmpty(feeItem.getEnglishName()) && feeItem.getEnglishName().length() > ENGLISH_NAME_MAX_LENGTH) {
|
if (Func.isNotEmpty(feeItem.getEnglishName()) && feeItem.getEnglishName().length() > ENGLISH_NAME_MAX_LENGTH) {
|
||||||
throw new ServiceException("英文名称不能超过100字");
|
throw new ServiceException("费用项代码不能超过100字");
|
||||||
}
|
}
|
||||||
validateUniqueName(feeItem);
|
validateUniqueName(feeItem);
|
||||||
}
|
}
|
||||||
@@ -114,7 +122,7 @@ public class FeeItemServiceImpl extends BaseServiceImpl<FeeItemMapper, FeeItem>
|
|||||||
queryWrapper.ne(FeeItem::getId, feeItem.getId());
|
queryWrapper.ne(FeeItem::getId, feeItem.getId());
|
||||||
}
|
}
|
||||||
if (count(queryWrapper) > 0L) {
|
if (count(queryWrapper) > 0L) {
|
||||||
throw new ServiceException("该中文名称已存在");
|
throw new ServiceException("该费用项已存在");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+61
-1
@@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import org.springblade.core.log.exception.ServiceException;
|
import org.springblade.core.log.exception.ServiceException;
|
||||||
import org.springblade.core.mp.base.BaseServiceImpl;
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
||||||
import org.springblade.core.tool.utils.BeanUtil;
|
import org.springblade.core.tool.utils.BeanUtil;
|
||||||
@@ -36,8 +37,10 @@ import org.springblade.core.tool.utils.Func;
|
|||||||
import org.springblade.system.excel.PortTerminalExcel;
|
import org.springblade.system.excel.PortTerminalExcel;
|
||||||
import org.springblade.system.mapper.PortTerminalMapper;
|
import org.springblade.system.mapper.PortTerminalMapper;
|
||||||
import org.springblade.system.pojo.entity.PortTerminal;
|
import org.springblade.system.pojo.entity.PortTerminal;
|
||||||
|
import org.springblade.system.pojo.entity.Region;
|
||||||
import org.springblade.system.pojo.vo.PortTerminalVO;
|
import org.springblade.system.pojo.vo.PortTerminalVO;
|
||||||
import org.springblade.system.service.IPortTerminalService;
|
import org.springblade.system.service.IPortTerminalService;
|
||||||
|
import org.springblade.system.service.IRegionService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -55,6 +58,7 @@ import java.util.regex.Pattern;
|
|||||||
* @author Chill
|
* @author Chill
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@AllArgsConstructor
|
||||||
public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper, PortTerminal> implements IPortTerminalService {
|
public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper, PortTerminal> implements IPortTerminalService {
|
||||||
|
|
||||||
private static final String CATEGORY_PORT = "港口";
|
private static final String CATEGORY_PORT = "港口";
|
||||||
@@ -78,6 +82,8 @@ public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper,
|
|||||||
private static final Pattern PORT_CODE_PATTERN = Pattern.compile("^[A-Z]{5}$");
|
private static final Pattern PORT_CODE_PATTERN = Pattern.compile("^[A-Z]{5}$");
|
||||||
private static final Pattern TERMINAL_CODE_PATTERN = Pattern.compile("^[A-Z]{5}-[A-Z0-9]+$");
|
private static final Pattern TERMINAL_CODE_PATTERN = Pattern.compile("^[A-Z]{5}-[A-Z0-9]+$");
|
||||||
|
|
||||||
|
private final IRegionService regionService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<PortTerminalVO> selectPortTerminalPage(IPage<PortTerminalVO> page, PortTerminalVO portTerminal) {
|
public IPage<PortTerminalVO> selectPortTerminalPage(IPage<PortTerminalVO> page, PortTerminalVO portTerminal) {
|
||||||
return page.setRecords(baseMapper.selectPortTerminalPage(page, portTerminal));
|
return page.setRecords(baseMapper.selectPortTerminalPage(page, portTerminal));
|
||||||
@@ -152,6 +158,7 @@ public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper,
|
|||||||
List<PortTerminal> portTerminalList = list(queryWrapper);
|
List<PortTerminal> portTerminalList = list(queryWrapper);
|
||||||
return portTerminalList.stream().map(portTerminal -> {
|
return portTerminalList.stream().map(portTerminal -> {
|
||||||
PortTerminalExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(portTerminal, PortTerminalExcel.class));
|
PortTerminalExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(portTerminal, PortTerminalExcel.class));
|
||||||
|
excel.setRegionCode(portTerminal.getDistrictCode());
|
||||||
excel.setLongitude(scaleCoordinate(portTerminal.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE));
|
excel.setLongitude(scaleCoordinate(portTerminal.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE));
|
||||||
excel.setLatitude(scaleCoordinate(portTerminal.getLatitude(), MIN_LATITUDE, MAX_LATITUDE));
|
excel.setLatitude(scaleCoordinate(portTerminal.getLatitude(), MIN_LATITUDE, MAX_LATITUDE));
|
||||||
excel.setDataSource(normalizeDataSource(portTerminal.getDataSource()));
|
excel.setDataSource(normalizeDataSource(portTerminal.getDataSource()));
|
||||||
@@ -173,7 +180,12 @@ public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper,
|
|||||||
portTerminal.setName(trimToEmpty(portTerminal.getName()));
|
portTerminal.setName(trimToEmpty(portTerminal.getName()));
|
||||||
portTerminal.setCountry(trimToEmpty(portTerminal.getCountry()));
|
portTerminal.setCountry(trimToEmpty(portTerminal.getCountry()));
|
||||||
portTerminal.setCity(trimToEmpty(portTerminal.getCity()));
|
portTerminal.setCity(trimToEmpty(portTerminal.getCity()));
|
||||||
|
portTerminal.setDistrictCode(trimToNull(portTerminal.getDistrictCode()));
|
||||||
|
portTerminal.setDistrictName(trimToNull(portTerminal.getDistrictName()));
|
||||||
portTerminal.setRegionCode(trimToNull(portTerminal.getRegionCode()));
|
portTerminal.setRegionCode(trimToNull(portTerminal.getRegionCode()));
|
||||||
|
if (Func.isEmpty(portTerminal.getDistrictCode()) && Func.isNotEmpty(portTerminal.getRegionCode())) {
|
||||||
|
portTerminal.setDistrictCode(portTerminal.getRegionCode());
|
||||||
|
}
|
||||||
portTerminal.setDetailAddress(trimToNull(portTerminal.getDetailAddress()));
|
portTerminal.setDetailAddress(trimToNull(portTerminal.getDetailAddress()));
|
||||||
portTerminal.setRemark(trimToNull(portTerminal.getRemark()));
|
portTerminal.setRemark(trimToNull(portTerminal.getRemark()));
|
||||||
portTerminal.setDataSource(normalizeDataSource(Func.toStrWithEmpty(portTerminal.getDataSource(), defaultDataSource)));
|
portTerminal.setDataSource(normalizeDataSource(Func.toStrWithEmpty(portTerminal.getDataSource(), defaultDataSource)));
|
||||||
@@ -181,6 +193,7 @@ public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper,
|
|||||||
portTerminal.setStatus(STATUS_ENABLED);
|
portTerminal.setStatus(STATUS_ENABLED);
|
||||||
}
|
}
|
||||||
if (CATEGORY_PORT.equals(portTerminal.getCategory())) {
|
if (CATEGORY_PORT.equals(portTerminal.getCategory())) {
|
||||||
|
fillRegion(portTerminal);
|
||||||
portTerminal.setParentId(null);
|
portTerminal.setParentId(null);
|
||||||
portTerminal.setParentCode(null);
|
portTerminal.setParentCode(null);
|
||||||
portTerminal.setParentName(null);
|
portTerminal.setParentName(null);
|
||||||
@@ -211,7 +224,50 @@ public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper,
|
|||||||
portTerminal.setParentName(parent.getName());
|
portTerminal.setParentName(parent.getName());
|
||||||
portTerminal.setCountry(parent.getCountry());
|
portTerminal.setCountry(parent.getCountry());
|
||||||
portTerminal.setCity(parent.getCity());
|
portTerminal.setCity(parent.getCity());
|
||||||
portTerminal.setRegionCode(parent.getRegionCode());
|
portTerminal.setDistrictCode(parent.getDistrictCode());
|
||||||
|
portTerminal.setDistrictName(parent.getDistrictName());
|
||||||
|
portTerminal.setRegionCode(parent.getDistrictCode());
|
||||||
|
}
|
||||||
|
|
||||||
|
private void fillRegion(PortTerminal portTerminal) {
|
||||||
|
Region district = null;
|
||||||
|
if (Func.isNotEmpty(portTerminal.getDistrictCode())) {
|
||||||
|
district = regionService.getById(portTerminal.getDistrictCode());
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(district) && Func.isNotEmpty(portTerminal.getDistrictName())) {
|
||||||
|
if (Func.isNotEmpty(portTerminal.getCity())) {
|
||||||
|
List<Region> cityList = regionService.list(Wrappers.<Region>lambdaQuery()
|
||||||
|
.eq(Region::getName, portTerminal.getCity())
|
||||||
|
.eq(Region::getRegionLevel, 2));
|
||||||
|
for (Region city : cityList) {
|
||||||
|
district = regionService.getOne(Wrappers.<Region>lambdaQuery()
|
||||||
|
.eq(Region::getParentCode, city.getCode())
|
||||||
|
.eq(Region::getName, portTerminal.getDistrictName()), false);
|
||||||
|
if (Func.isNotEmpty(district)) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(district)) {
|
||||||
|
district = regionService.getOne(Wrappers.<Region>lambdaQuery()
|
||||||
|
.eq(Region::getName, portTerminal.getDistrictName())
|
||||||
|
.eq(Region::getRegionLevel, 3), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(district)) {
|
||||||
|
throw new ServiceException("请选择区县");
|
||||||
|
}
|
||||||
|
Region city = regionService.getById(district.getParentCode());
|
||||||
|
if (Func.isEmpty(city)) {
|
||||||
|
throw new ServiceException("区县所属城市不存在");
|
||||||
|
}
|
||||||
|
if (Func.isNotEmpty(portTerminal.getCity()) && !Objects.equals(portTerminal.getCity(), city.getName())) {
|
||||||
|
throw new ServiceException("区县与城市不匹配");
|
||||||
|
}
|
||||||
|
portTerminal.setCity(city.getName());
|
||||||
|
portTerminal.setDistrictCode(district.getCode());
|
||||||
|
portTerminal.setDistrictName(district.getName());
|
||||||
|
portTerminal.setRegionCode(district.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validate(PortTerminal portTerminal) {
|
private void validate(PortTerminal portTerminal) {
|
||||||
@@ -228,6 +284,7 @@ public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper,
|
|||||||
validateLength(portTerminal.getName(), NAME_MAX_LENGTH, "港口/码头名称不能超过100字");
|
validateLength(portTerminal.getName(), NAME_MAX_LENGTH, "港口/码头名称不能超过100字");
|
||||||
validateLength(portTerminal.getCountry(), REGION_MAX_LENGTH, "国家不能超过50字");
|
validateLength(portTerminal.getCountry(), REGION_MAX_LENGTH, "国家不能超过50字");
|
||||||
validateLength(portTerminal.getCity(), REGION_MAX_LENGTH, "城市不能超过50字");
|
validateLength(portTerminal.getCity(), REGION_MAX_LENGTH, "城市不能超过50字");
|
||||||
|
validateLength(portTerminal.getDistrictName(), REGION_MAX_LENGTH, "区县不能超过50字");
|
||||||
validateLength(portTerminal.getRegionCode(), REGION_CODE_MAX_LENGTH, "行政区划编码不能超过32字");
|
validateLength(portTerminal.getRegionCode(), REGION_CODE_MAX_LENGTH, "行政区划编码不能超过32字");
|
||||||
validateLength(portTerminal.getDetailAddress(), DETAIL_ADDRESS_MAX_LENGTH, "详细地址不能超过255字");
|
validateLength(portTerminal.getDetailAddress(), DETAIL_ADDRESS_MAX_LENGTH, "详细地址不能超过255字");
|
||||||
validateLength(portTerminal.getRemark(), REMARK_MAX_LENGTH, "备注不能超过200个字");
|
validateLength(portTerminal.getRemark(), REMARK_MAX_LENGTH, "备注不能超过200个字");
|
||||||
@@ -246,6 +303,9 @@ public class PortTerminalServiceImpl extends BaseServiceImpl<PortTerminalMapper,
|
|||||||
if (Func.isEmpty(portTerminal.getCity())) {
|
if (Func.isEmpty(portTerminal.getCity())) {
|
||||||
throw new ServiceException("城市不能为空");
|
throw new ServiceException("城市不能为空");
|
||||||
}
|
}
|
||||||
|
if (Func.isEmpty(portTerminal.getDistrictCode())) {
|
||||||
|
throw new ServiceException("区县不能为空");
|
||||||
|
}
|
||||||
validateDataSource(portTerminal.getDataSource());
|
validateDataSource(portTerminal.getDataSource());
|
||||||
validateStatus(portTerminal.getStatus());
|
validateStatus(portTerminal.getStatus());
|
||||||
validateRange(portTerminal.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE, "经度范围为 -180 到 180");
|
validateRange(portTerminal.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE, "经度范围为 -180 到 180");
|
||||||
|
|||||||
+49
-8
@@ -131,6 +131,8 @@ public class RailwayStationServiceImpl extends BaseServiceImpl<RailwayStationMap
|
|||||||
RailwayStationExcel excel = data.get(index);
|
RailwayStationExcel excel = data.get(index);
|
||||||
try {
|
try {
|
||||||
RailwayStation railwayStation = Objects.requireNonNull(BeanUtil.copyProperties(excel, RailwayStation.class));
|
RailwayStation railwayStation = Objects.requireNonNull(BeanUtil.copyProperties(excel, RailwayStation.class));
|
||||||
|
railwayStation.setLongitude(parseCoordinate(excel.getLongitude(), "经度"));
|
||||||
|
railwayStation.setLatitude(parseCoordinate(excel.getLatitude(), "纬度"));
|
||||||
railwayStation.setDataSource(SOURCE_BATCH);
|
railwayStation.setDataSource(SOURCE_BATCH);
|
||||||
railwayStation.setStatus(STATUS_ENABLED);
|
railwayStation.setStatus(STATUS_ENABLED);
|
||||||
prepare(railwayStation, SOURCE_BATCH);
|
prepare(railwayStation, SOURCE_BATCH);
|
||||||
@@ -151,19 +153,31 @@ public class RailwayStationServiceImpl extends BaseServiceImpl<RailwayStationMap
|
|||||||
List<RailwayStation> railwayStationList = list(queryWrapper);
|
List<RailwayStation> railwayStationList = list(queryWrapper);
|
||||||
return railwayStationList.stream().map(railwayStation -> {
|
return railwayStationList.stream().map(railwayStation -> {
|
||||||
RailwayStationExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(railwayStation, RailwayStationExcel.class));
|
RailwayStationExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(railwayStation, RailwayStationExcel.class));
|
||||||
excel.setLongitude(scaleCoordinate(railwayStation.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE));
|
excel.setLongitude(formatCoordinate(railwayStation.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE));
|
||||||
excel.setLatitude(scaleCoordinate(railwayStation.getLatitude(), MIN_LATITUDE, MAX_LATITUDE));
|
excel.setLatitude(formatCoordinate(railwayStation.getLatitude(), MIN_LATITUDE, MAX_LATITUDE));
|
||||||
excel.setDataSource(normalizeDataSource(railwayStation.getDataSource()));
|
excel.setDataSource(normalizeDataSource(railwayStation.getDataSource()));
|
||||||
excel.setStatusName(Objects.equals(railwayStation.getStatus(), STATUS_ENABLED) ? "启用" : "停用");
|
excel.setStatusName(Objects.equals(railwayStation.getStatus(), STATUS_ENABLED) ? "启用" : "停用");
|
||||||
return excel;
|
return excel;
|
||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal scaleCoordinate(BigDecimal value, BigDecimal min, BigDecimal max) {
|
private String formatCoordinate(BigDecimal value, BigDecimal min, BigDecimal max) {
|
||||||
if (Func.isEmpty(value)) {
|
if (Func.isEmpty(value)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return validRange(value, min, max) ? value.setScale(6, RoundingMode.HALF_UP) : null;
|
return validRange(value, min, max) ? value.setScale(6, RoundingMode.HALF_UP).toPlainString() : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BigDecimal parseCoordinate(String value, String name) {
|
||||||
|
String trimValue = trimToEmpty(value);
|
||||||
|
if (trimValue.isEmpty()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
return new BigDecimal(trimValue);
|
||||||
|
} catch (NumberFormatException exception) {
|
||||||
|
throw new ServiceException(name + "格式不正确");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void prepare(RailwayStation railwayStation, String defaultDataSource) {
|
private void prepare(RailwayStation railwayStation, String defaultDataSource) {
|
||||||
@@ -176,8 +190,16 @@ public class RailwayStationServiceImpl extends BaseServiceImpl<RailwayStationMap
|
|||||||
railwayStation.setProvinceName(trimToNull(railwayStation.getProvinceName()));
|
railwayStation.setProvinceName(trimToNull(railwayStation.getProvinceName()));
|
||||||
railwayStation.setCityCode(trimToNull(railwayStation.getCityCode()));
|
railwayStation.setCityCode(trimToNull(railwayStation.getCityCode()));
|
||||||
railwayStation.setCityName(trimToNull(railwayStation.getCityName()));
|
railwayStation.setCityName(trimToNull(railwayStation.getCityName()));
|
||||||
|
railwayStation.setDistrictCode(trimToNull(railwayStation.getDistrictCode()));
|
||||||
|
railwayStation.setDistrictName(trimToNull(railwayStation.getDistrictName()));
|
||||||
railwayStation.setRegionCode(trimToNull(railwayStation.getRegionCode()));
|
railwayStation.setRegionCode(trimToNull(railwayStation.getRegionCode()));
|
||||||
railwayStation.setRegionName(trimToNull(railwayStation.getRegionName()));
|
railwayStation.setRegionName(trimToNull(railwayStation.getRegionName()));
|
||||||
|
if (Func.isEmpty(railwayStation.getDistrictCode()) && Func.isNotEmpty(railwayStation.getRegionCode())) {
|
||||||
|
railwayStation.setDistrictCode(railwayStation.getRegionCode());
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(railwayStation.getDistrictName()) && Func.isNotEmpty(railwayStation.getRegionName())) {
|
||||||
|
railwayStation.setDistrictName(railwayStation.getRegionName());
|
||||||
|
}
|
||||||
railwayStation.setDetailAddress(trimToNull(railwayStation.getDetailAddress()));
|
railwayStation.setDetailAddress(trimToNull(railwayStation.getDetailAddress()));
|
||||||
railwayStation.setRemark(trimToNull(railwayStation.getRemark()));
|
railwayStation.setRemark(trimToNull(railwayStation.getRemark()));
|
||||||
railwayStation.setDataSource(normalizeDataSource(Func.toStrWithEmpty(railwayStation.getDataSource(), defaultDataSource)));
|
railwayStation.setDataSource(normalizeDataSource(Func.toStrWithEmpty(railwayStation.getDataSource(), defaultDataSource)));
|
||||||
@@ -208,12 +230,13 @@ public class RailwayStationServiceImpl extends BaseServiceImpl<RailwayStationMap
|
|||||||
// validateLength(railwayStation.getRailwayLine(), RAILWAY_LINE_MAX_LENGTH, "所属铁路线路不能超过100字");
|
// validateLength(railwayStation.getRailwayLine(), RAILWAY_LINE_MAX_LENGTH, "所属铁路线路不能超过100字");
|
||||||
validateLength(railwayStation.getProvinceName(), REGION_NAME_MAX_LENGTH, "所属省份不能超过128字");
|
validateLength(railwayStation.getProvinceName(), REGION_NAME_MAX_LENGTH, "所属省份不能超过128字");
|
||||||
validateLength(railwayStation.getCityName(), REGION_NAME_MAX_LENGTH, "所属城市不能超过128字");
|
validateLength(railwayStation.getCityName(), REGION_NAME_MAX_LENGTH, "所属城市不能超过128字");
|
||||||
|
validateLength(railwayStation.getDistrictName(), REGION_NAME_MAX_LENGTH, "所属区县不能超过128字");
|
||||||
validateLength(railwayStation.getRegionCode(), REGION_CODE_MAX_LENGTH, "行政区划编码不能超过32字");
|
validateLength(railwayStation.getRegionCode(), REGION_CODE_MAX_LENGTH, "行政区划编码不能超过32字");
|
||||||
validateLength(railwayStation.getRegionName(), REGION_NAME_MAX_LENGTH, "行政区划不能超过128字");
|
validateLength(railwayStation.getRegionName(), REGION_NAME_MAX_LENGTH, "行政区划不能超过128字");
|
||||||
validateLength(railwayStation.getDetailAddress(), DETAIL_ADDRESS_MAX_LENGTH, "详细地址不能超过255字");
|
validateLength(railwayStation.getDetailAddress(), DETAIL_ADDRESS_MAX_LENGTH, "详细地址不能超过255字");
|
||||||
validateLength(railwayStation.getRemark(), REMARK_MAX_LENGTH, "备注不能超过200字");
|
validateLength(railwayStation.getRemark(), REMARK_MAX_LENGTH, "备注不能超过200字");
|
||||||
if (Func.isEmpty(railwayStation.getProvinceCode()) || Func.isEmpty(railwayStation.getCityCode())) {
|
if (Func.isEmpty(railwayStation.getProvinceCode()) || Func.isEmpty(railwayStation.getCityCode()) || Func.isEmpty(railwayStation.getDistrictCode())) {
|
||||||
throw new ServiceException("请选择省份和城市");
|
throw new ServiceException("请选择省份、城市和区县");
|
||||||
}
|
}
|
||||||
validateCoordinate(railwayStation.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE, "经度");
|
validateCoordinate(railwayStation.getLongitude(), MIN_LONGITUDE, MAX_LONGITUDE, "经度");
|
||||||
validateCoordinate(railwayStation.getLatitude(), MIN_LATITUDE, MAX_LATITUDE, "纬度");
|
validateCoordinate(railwayStation.getLatitude(), MIN_LATITUDE, MAX_LATITUDE, "纬度");
|
||||||
@@ -257,8 +280,26 @@ public class RailwayStationServiceImpl extends BaseServiceImpl<RailwayStationMap
|
|||||||
railwayStation.setProvinceName(province.getName());
|
railwayStation.setProvinceName(province.getName());
|
||||||
railwayStation.setCityCode(city.getCode());
|
railwayStation.setCityCode(city.getCode());
|
||||||
railwayStation.setCityName(city.getName());
|
railwayStation.setCityName(city.getName());
|
||||||
railwayStation.setRegionCode(city.getCode());
|
|
||||||
railwayStation.setRegionName(city.getName());
|
Region district = null;
|
||||||
|
if (Func.isNotEmpty(railwayStation.getDistrictCode())) {
|
||||||
|
district = regionService.getById(railwayStation.getDistrictCode());
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(district) && Func.isNotEmpty(railwayStation.getDistrictName())) {
|
||||||
|
district = regionService.getOne(Wrappers.<Region>lambdaQuery()
|
||||||
|
.eq(Region::getParentCode, city.getCode())
|
||||||
|
.eq(Region::getName, railwayStation.getDistrictName()), false);
|
||||||
|
}
|
||||||
|
if (Func.isEmpty(district)) {
|
||||||
|
throw new ServiceException("请选择区县");
|
||||||
|
}
|
||||||
|
if (!Objects.equals(district.getParentCode(), city.getCode())) {
|
||||||
|
throw new ServiceException("所属区县与所属城市不匹配");
|
||||||
|
}
|
||||||
|
railwayStation.setDistrictCode(district.getCode());
|
||||||
|
railwayStation.setDistrictName(district.getName());
|
||||||
|
railwayStation.setRegionCode(district.getCode());
|
||||||
|
railwayStation.setRegionName(district.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateCoordinate(BigDecimal value, BigDecimal min, BigDecimal max, String name) {
|
private void validateCoordinate(BigDecimal value, BigDecimal min, BigDecimal max, String name) {
|
||||||
|
|||||||
+17
-6
@@ -76,11 +76,7 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
|
|||||||
region.setCode(StringUtil.removePrefix(region.getCode(), MAIN_CODE));
|
region.setCode(StringUtil.removePrefix(region.getCode(), MAIN_CODE));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 查询是否已存在
|
validateUniqueCode(region);
|
||||||
Long cnt = baseMapper.selectCount(Wrappers.<Region>query().lambda().eq(Region::getCode, region.getCode()));
|
|
||||||
if (cnt > 0L) {
|
|
||||||
return this.updateById(region);
|
|
||||||
}
|
|
||||||
// 设置祖区划编号
|
// 设置祖区划编号
|
||||||
Region parent = getByCode(region.getParentCode());
|
Region parent = getByCode(region.getParentCode());
|
||||||
if (Func.isNotEmpty(parent) && Func.isNotEmpty(parent.getCode())) {
|
if (Func.isNotEmpty(parent) && Func.isNotEmpty(parent.getCode())) {
|
||||||
@@ -110,7 +106,22 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
|
|||||||
region.setVillageCode(code);
|
region.setVillageCode(code);
|
||||||
region.setVillageName(name);
|
region.setVillageName(name);
|
||||||
}
|
}
|
||||||
return this.save(region);
|
return StringUtil.isNotBlank(region.getOriginalCode()) ? this.updateById(region) : this.save(region);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateUniqueCode(Region region) {
|
||||||
|
String originalCode = region.getOriginalCode();
|
||||||
|
String code = region.getCode();
|
||||||
|
Region existRegion = this.getById(code);
|
||||||
|
if (Func.isEmpty(existRegion)) {
|
||||||
|
if (StringUtil.isNotBlank(originalCode) && !StringUtil.equals(code, originalCode)) {
|
||||||
|
throw new ServiceException("区划编号不允许修改");
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (StringUtil.isBlank(originalCode) || !StringUtil.equals(code, originalCode)) {
|
||||||
|
throw new ServiceException("该区划编号已存在");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+1
@@ -47,6 +47,7 @@ public class AirportMasterWrapper extends BaseEntityWrapper<AirportMaster, Airpo
|
|||||||
@Override
|
@Override
|
||||||
public AirportMasterVO entityVO(AirportMaster airportMaster) {
|
public AirportMasterVO entityVO(AirportMaster airportMaster) {
|
||||||
AirportMasterVO airportMasterVO = Objects.requireNonNull(BeanUtil.copyProperties(airportMaster, AirportMasterVO.class));
|
AirportMasterVO airportMasterVO = Objects.requireNonNull(BeanUtil.copyProperties(airportMaster, AirportMasterVO.class));
|
||||||
|
airportMasterVO.setRegionCode(airportMaster.getDistrictCode());
|
||||||
airportMasterVO.setUpdateUserName(UserCache.getUserRealName(airportMaster.getUpdateUser()));
|
airportMasterVO.setUpdateUserName(UserCache.getUserRealName(airportMaster.getUpdateUser()));
|
||||||
return airportMasterVO;
|
return airportMasterVO;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -47,6 +47,7 @@ public class PortTerminalWrapper extends BaseEntityWrapper<PortTerminal, PortTer
|
|||||||
@Override
|
@Override
|
||||||
public PortTerminalVO entityVO(PortTerminal portTerminal) {
|
public PortTerminalVO entityVO(PortTerminal portTerminal) {
|
||||||
PortTerminalVO portTerminalVO = Objects.requireNonNull(BeanUtil.copyProperties(portTerminal, PortTerminalVO.class));
|
PortTerminalVO portTerminalVO = Objects.requireNonNull(BeanUtil.copyProperties(portTerminal, PortTerminalVO.class));
|
||||||
|
portTerminalVO.setRegionCode(portTerminal.getDistrictCode());
|
||||||
portTerminalVO.setUpdateUserName(UserCache.getUserRealName(portTerminal.getUpdateUser()));
|
portTerminalVO.setUpdateUserName(UserCache.getUserRealName(portTerminal.getUpdateUser()));
|
||||||
return portTerminalVO;
|
return portTerminalVO;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -47,6 +47,7 @@ public class RailwayStationWrapper extends BaseEntityWrapper<RailwayStation, Rai
|
|||||||
@Override
|
@Override
|
||||||
public RailwayStationVO entityVO(RailwayStation railwayStation) {
|
public RailwayStationVO entityVO(RailwayStation railwayStation) {
|
||||||
RailwayStationVO railwayStationVO = Objects.requireNonNull(BeanUtil.copyProperties(railwayStation, RailwayStationVO.class));
|
RailwayStationVO railwayStationVO = Objects.requireNonNull(BeanUtil.copyProperties(railwayStation, RailwayStationVO.class));
|
||||||
|
railwayStationVO.setRegionCode(railwayStation.getDistrictCode());
|
||||||
railwayStationVO.setUpdateUserName(UserCache.getUserRealName(railwayStation.getUpdateUser()));
|
railwayStationVO.setUpdateUserName(UserCache.getUserRealName(railwayStation.getUpdateUser()));
|
||||||
return railwayStationVO;
|
return railwayStationVO;
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -27,6 +27,7 @@ package org.springblade.transport.excel;
|
|||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelIgnore;
|
import cn.idev.excel.annotation.ExcelIgnore;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
|
import cn.idev.excel.annotation.format.NumberFormat;
|
||||||
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
||||||
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
||||||
@@ -72,9 +73,11 @@ public class AccidentRecordExcel implements Serializable {
|
|||||||
private String accidentResponsibility;
|
private String accidentResponsibility;
|
||||||
|
|
||||||
@ExcelProperty("直接经济损失")
|
@ExcelProperty("直接经济损失")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal directEconomicLoss;
|
private BigDecimal directEconomicLoss;
|
||||||
|
|
||||||
@ExcelProperty("保险理赔金额")
|
@ExcelProperty("保险理赔金额")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal insuranceClaimAmount;
|
private BigDecimal insuranceClaimAmount;
|
||||||
|
|
||||||
@ExcelProperty("事故原因及损坏情况")
|
@ExcelProperty("事故原因及损坏情况")
|
||||||
|
|||||||
+2
@@ -27,6 +27,7 @@ package org.springblade.transport.excel;
|
|||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelIgnore;
|
import cn.idev.excel.annotation.ExcelIgnore;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
|
import cn.idev.excel.annotation.format.NumberFormat;
|
||||||
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
||||||
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
||||||
@@ -75,6 +76,7 @@ public class MaintenancePlanExcel implements Serializable {
|
|||||||
private String maintenanceItem;
|
private String maintenanceItem;
|
||||||
|
|
||||||
@ExcelProperty("费用")
|
@ExcelProperty("费用")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal cost;
|
private BigDecimal cost;
|
||||||
|
|
||||||
@ExcelProperty("店名")
|
@ExcelProperty("店名")
|
||||||
|
|||||||
+3
@@ -27,6 +27,7 @@ package org.springblade.transport.excel;
|
|||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelIgnore;
|
import cn.idev.excel.annotation.ExcelIgnore;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
|
import cn.idev.excel.annotation.format.NumberFormat;
|
||||||
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
||||||
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
||||||
@@ -72,6 +73,7 @@ public class MaintenanceRecordExcel implements Serializable {
|
|||||||
private String replacedPart;
|
private String replacedPart;
|
||||||
|
|
||||||
@ExcelProperty("费用")
|
@ExcelProperty("费用")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal cost;
|
private BigDecimal cost;
|
||||||
|
|
||||||
@ExcelProperty("维修单位")
|
@ExcelProperty("维修单位")
|
||||||
@@ -87,6 +89,7 @@ public class MaintenanceRecordExcel implements Serializable {
|
|||||||
private LocalDateTime factoryTime;
|
private LocalDateTime factoryTime;
|
||||||
|
|
||||||
@ExcelProperty("里程/航程数")
|
@ExcelProperty("里程/航程数")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal mileage;
|
private BigDecimal mileage;
|
||||||
|
|
||||||
@ExcelProperty("里程单位")
|
@ExcelProperty("里程单位")
|
||||||
|
|||||||
+5
@@ -27,6 +27,7 @@ package org.springblade.transport.excel;
|
|||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelIgnore;
|
import cn.idev.excel.annotation.ExcelIgnore;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
|
import cn.idev.excel.annotation.format.NumberFormat;
|
||||||
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
||||||
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
||||||
@@ -59,15 +60,19 @@ public class MileageRecordExcel implements Serializable {
|
|||||||
private String vehicleNo;
|
private String vehicleNo;
|
||||||
|
|
||||||
@ExcelProperty("上月统计里程")
|
@ExcelProperty("上月统计里程")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal previousMonthMileage;
|
private BigDecimal previousMonthMileage;
|
||||||
|
|
||||||
@ExcelProperty("本月统计里程")
|
@ExcelProperty("本月统计里程")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal currentMonthMileage;
|
private BigDecimal currentMonthMileage;
|
||||||
|
|
||||||
@ExcelProperty("本月行驶里程")
|
@ExcelProperty("本月行驶里程")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal monthlyMileage;
|
private BigDecimal monthlyMileage;
|
||||||
|
|
||||||
@ExcelProperty("累计行驶里程")
|
@ExcelProperty("累计行驶里程")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal totalMileage;
|
private BigDecimal totalMileage;
|
||||||
|
|
||||||
@ExcelProperty("里程单位")
|
@ExcelProperty("里程单位")
|
||||||
|
|||||||
+2
@@ -27,6 +27,7 @@ package org.springblade.transport.excel;
|
|||||||
|
|
||||||
import cn.idev.excel.annotation.ExcelIgnore;
|
import cn.idev.excel.annotation.ExcelIgnore;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
|
import cn.idev.excel.annotation.format.NumberFormat;
|
||||||
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
import cn.idev.excel.annotation.write.style.ColumnWidth;
|
||||||
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
import cn.idev.excel.annotation.write.style.ContentRowHeight;
|
||||||
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
import cn.idev.excel.annotation.write.style.HeadRowHeight;
|
||||||
@@ -69,6 +70,7 @@ public class TireReplacementRecordExcel implements Serializable {
|
|||||||
private Integer tireQuantity;
|
private Integer tireQuantity;
|
||||||
|
|
||||||
@ExcelProperty("换胎费用")
|
@ExcelProperty("换胎费用")
|
||||||
|
@NumberFormat("0.00")
|
||||||
private BigDecimal replacementCost;
|
private BigDecimal replacementCost;
|
||||||
|
|
||||||
@ExcelProperty("换胎说明")
|
@ExcelProperty("换胎说明")
|
||||||
|
|||||||
+1
-1
@@ -60,7 +60,7 @@
|
|||||||
<bind name="etcCardNoLike" value="'%' + etcRecord.etcCardNo + '%'"/>
|
<bind name="etcCardNoLike" value="'%' + etcRecord.etcCardNo + '%'"/>
|
||||||
AND etc_card_no LIKE #{etcCardNoLike}
|
AND etc_card_no LIKE #{etcCardNoLike}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY exit_time DESC, create_time DESC
|
ORDER BY create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+1
-1
@@ -90,7 +90,7 @@
|
|||||||
<if test="oilElectricRecord.createTimeEnd != null and oilElectricRecord.createTimeEnd != ''">
|
<if test="oilElectricRecord.createTimeEnd != null and oilElectricRecord.createTimeEnd != ''">
|
||||||
AND create_time <= #{oilElectricRecord.createTimeEnd}
|
AND create_time <= #{oilElectricRecord.createTimeEnd}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY transaction_time DESC, create_time DESC
|
ORDER BY create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+1
-1
@@ -70,7 +70,7 @@
|
|||||||
<if test="otherExpenseRecord.createTimeEnd != null and otherExpenseRecord.createTimeEnd != ''">
|
<if test="otherExpenseRecord.createTimeEnd != null and otherExpenseRecord.createTimeEnd != ''">
|
||||||
AND create_time <= #{otherExpenseRecord.createTimeEnd}
|
AND create_time <= #{otherExpenseRecord.createTimeEnd}
|
||||||
</if>
|
</if>
|
||||||
ORDER BY expense_date DESC, create_time DESC
|
ORDER BY create_time DESC
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
+7
-1
@@ -40,6 +40,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -96,7 +97,8 @@ public class MaintenanceRecordServiceImpl extends BaseServiceImpl<MaintenanceRec
|
|||||||
public List<MaintenanceRecordExcel> exportMaintenanceRecord(Wrapper<MaintenanceRecord> queryWrapper) {
|
public List<MaintenanceRecordExcel> exportMaintenanceRecord(Wrapper<MaintenanceRecord> queryWrapper) {
|
||||||
return list(queryWrapper).stream().map(maintenanceRecord -> {
|
return list(queryWrapper).stream().map(maintenanceRecord -> {
|
||||||
MaintenanceRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(maintenanceRecord, MaintenanceRecordExcel.class));
|
MaintenanceRecordExcel excel = Objects.requireNonNull(BeanUtil.copyProperties(maintenanceRecord, MaintenanceRecordExcel.class));
|
||||||
excel.setMileage(nonNegative(maintenanceRecord.getMileage()));
|
excel.setCost(scaleAmount(maintenanceRecord.getCost()));
|
||||||
|
excel.setMileage(scaleAmount(nonNegative(maintenanceRecord.getMileage())));
|
||||||
if (Func.isEmpty(excel.getMileageUnit())) {
|
if (Func.isEmpty(excel.getMileageUnit())) {
|
||||||
excel.setMileageUnit(defaultMileageUnit(maintenanceRecord.getVehicleType()));
|
excel.setMileageUnit(defaultMileageUnit(maintenanceRecord.getVehicleType()));
|
||||||
}
|
}
|
||||||
@@ -167,6 +169,10 @@ public class MaintenanceRecordServiceImpl extends BaseServiceImpl<MaintenanceRec
|
|||||||
return BigDecimal.ZERO;
|
return BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private BigDecimal scaleAmount(BigDecimal value) {
|
||||||
|
return Func.isEmpty(value) ? null : value.setScale(2, RoundingMode.HALF_UP);
|
||||||
|
}
|
||||||
|
|
||||||
private String defaultMileageUnit(String vehicleType) {
|
private String defaultMileageUnit(String vehicleType) {
|
||||||
return "船舶".equals(vehicleType) ? "海里" : "公里";
|
return "船舶".equals(vehicleType) ? "海里" : "公里";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2413,7 +2413,8 @@ CREATE TABLE "blade_port_terminal" (
|
|||||||
"parent_name" varchar(100),
|
"parent_name" varchar(100),
|
||||||
"country" varchar(50),
|
"country" varchar(50),
|
||||||
"city" varchar(50),
|
"city" varchar(50),
|
||||||
"region_code" varchar(32),
|
"district_code" varchar(12),
|
||||||
|
"district_name" varchar(50),
|
||||||
"detail_address" varchar(255),
|
"detail_address" varchar(255),
|
||||||
"longitude" numeric(12,6),
|
"longitude" numeric(12,6),
|
||||||
"latitude" numeric(12,6),
|
"latitude" numeric(12,6),
|
||||||
@@ -2448,6 +2449,9 @@ CREATE TABLE "blade_railway_station" (
|
|||||||
"province_name" varchar(128),
|
"province_name" varchar(128),
|
||||||
"city_code" varchar(12),
|
"city_code" varchar(12),
|
||||||
"city_name" varchar(128),
|
"city_name" varchar(128),
|
||||||
|
"district_code" varchar(12),
|
||||||
|
"district_name" varchar(128),
|
||||||
|
"region_name" varchar(128),
|
||||||
"longitude" numeric(12,6),
|
"longitude" numeric(12,6),
|
||||||
"latitude" numeric(12,6),
|
"latitude" numeric(12,6),
|
||||||
"data_source" varchar(20) DEFAULT '手工导入',
|
"data_source" varchar(20) DEFAULT '手工导入',
|
||||||
@@ -2482,6 +2486,9 @@ CREATE TABLE "blade_airport_master" (
|
|||||||
"province_name" varchar(128),
|
"province_name" varchar(128),
|
||||||
"city_code" varchar(12),
|
"city_code" varchar(12),
|
||||||
"city_name" varchar(128),
|
"city_name" varchar(128),
|
||||||
|
"district_code" varchar(12),
|
||||||
|
"district_name" varchar(128),
|
||||||
|
"region_name" varchar(128),
|
||||||
"longitude" numeric(12,6),
|
"longitude" numeric(12,6),
|
||||||
"latitude" numeric(12,6),
|
"latitude" numeric(12,6),
|
||||||
"data_source" varchar(20) DEFAULT '手工导入',
|
"data_source" varchar(20) DEFAULT '手工导入',
|
||||||
|
|||||||
@@ -1481,7 +1481,8 @@ CREATE TABLE `blade_port_terminal` (
|
|||||||
`parent_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '上级港口名称',
|
`parent_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '上级港口名称',
|
||||||
`country` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国家',
|
`country` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国家',
|
||||||
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
|
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
|
||||||
`region_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行政区划编码',
|
`district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区县编码',
|
||||||
|
`district_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区县',
|
||||||
`detail_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址',
|
`detail_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址',
|
||||||
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
||||||
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
||||||
@@ -1530,6 +1531,9 @@ CREATE TABLE `blade_railway_station` (
|
|||||||
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
||||||
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
||||||
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
||||||
|
`district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县编码',
|
||||||
|
`district_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县',
|
||||||
|
`region_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行政区划',
|
||||||
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
||||||
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
||||||
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动' COMMENT '数据来源',
|
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动' COMMENT '数据来源',
|
||||||
@@ -1578,6 +1582,9 @@ CREATE TABLE `blade_airport_master` (
|
|||||||
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
||||||
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
||||||
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
||||||
|
`district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县编码',
|
||||||
|
`district_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县',
|
||||||
|
`region_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行政区划',
|
||||||
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
||||||
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
||||||
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动录入' COMMENT '数据来源',
|
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动录入' COMMENT '数据来源',
|
||||||
|
|||||||
@@ -2413,7 +2413,8 @@ CREATE TABLE "blade_port_terminal" (
|
|||||||
"parent_name" varchar(100),
|
"parent_name" varchar(100),
|
||||||
"country" varchar(50),
|
"country" varchar(50),
|
||||||
"city" varchar(50),
|
"city" varchar(50),
|
||||||
"region_code" varchar(32),
|
"district_code" varchar(12),
|
||||||
|
"district_name" varchar(50),
|
||||||
"detail_address" varchar(255),
|
"detail_address" varchar(255),
|
||||||
"longitude" numeric(12,6),
|
"longitude" numeric(12,6),
|
||||||
"latitude" numeric(12,6),
|
"latitude" numeric(12,6),
|
||||||
@@ -2448,6 +2449,9 @@ CREATE TABLE "blade_railway_station" (
|
|||||||
"province_name" varchar(128),
|
"province_name" varchar(128),
|
||||||
"city_code" varchar(12),
|
"city_code" varchar(12),
|
||||||
"city_name" varchar(128),
|
"city_name" varchar(128),
|
||||||
|
"district_code" varchar(12),
|
||||||
|
"district_name" varchar(128),
|
||||||
|
"region_name" varchar(128),
|
||||||
"longitude" numeric(12,6),
|
"longitude" numeric(12,6),
|
||||||
"latitude" numeric(12,6),
|
"latitude" numeric(12,6),
|
||||||
"data_source" varchar(20) DEFAULT '手工导入',
|
"data_source" varchar(20) DEFAULT '手工导入',
|
||||||
@@ -2482,6 +2486,9 @@ CREATE TABLE "blade_airport_master" (
|
|||||||
"province_name" varchar(128),
|
"province_name" varchar(128),
|
||||||
"city_code" varchar(12),
|
"city_code" varchar(12),
|
||||||
"city_name" varchar(128),
|
"city_name" varchar(128),
|
||||||
|
"district_code" varchar(12),
|
||||||
|
"district_name" varchar(128),
|
||||||
|
"region_name" varchar(128),
|
||||||
"longitude" numeric(12,6),
|
"longitude" numeric(12,6),
|
||||||
"latitude" numeric(12,6),
|
"latitude" numeric(12,6),
|
||||||
"data_source" varchar(20) DEFAULT '手工导入',
|
"data_source" varchar(20) DEFAULT '手工导入',
|
||||||
|
|||||||
@@ -7558,7 +7558,8 @@ CREATE TABLE [dbo].[blade_port_terminal] (
|
|||||||
[parent_name] nvarchar(100) NULL,
|
[parent_name] nvarchar(100) NULL,
|
||||||
[country] nvarchar(50) NULL,
|
[country] nvarchar(50) NULL,
|
||||||
[city] nvarchar(50) NULL,
|
[city] nvarchar(50) NULL,
|
||||||
[region_code] nvarchar(32) NULL,
|
[district_code] nvarchar(12) NULL,
|
||||||
|
[district_name] nvarchar(50) NULL,
|
||||||
[detail_address] nvarchar(255) NULL,
|
[detail_address] nvarchar(255) NULL,
|
||||||
[longitude] decimal(12,6) NULL,
|
[longitude] decimal(12,6) NULL,
|
||||||
[latitude] decimal(12,6) NULL,
|
[latitude] decimal(12,6) NULL,
|
||||||
@@ -7598,6 +7599,9 @@ CREATE TABLE [dbo].[blade_railway_station] (
|
|||||||
[province_name] nvarchar(128) NULL,
|
[province_name] nvarchar(128) NULL,
|
||||||
[city_code] nvarchar(12) NULL,
|
[city_code] nvarchar(12) NULL,
|
||||||
[city_name] nvarchar(128) NULL,
|
[city_name] nvarchar(128) NULL,
|
||||||
|
[district_code] nvarchar(12) NULL,
|
||||||
|
[district_name] nvarchar(128) NULL,
|
||||||
|
[region_name] nvarchar(128) NULL,
|
||||||
[longitude] decimal(12,6) NULL,
|
[longitude] decimal(12,6) NULL,
|
||||||
[latitude] decimal(12,6) NULL,
|
[latitude] decimal(12,6) NULL,
|
||||||
[data_source] nvarchar(20) DEFAULT '手工导入' NULL,
|
[data_source] nvarchar(20) DEFAULT '手工导入' NULL,
|
||||||
@@ -7636,6 +7640,9 @@ CREATE TABLE [dbo].[blade_airport_master] (
|
|||||||
[province_name] nvarchar(128) NULL,
|
[province_name] nvarchar(128) NULL,
|
||||||
[city_code] nvarchar(12) NULL,
|
[city_code] nvarchar(12) NULL,
|
||||||
[city_name] nvarchar(128) NULL,
|
[city_name] nvarchar(128) NULL,
|
||||||
|
[district_code] nvarchar(12) NULL,
|
||||||
|
[district_name] nvarchar(128) NULL,
|
||||||
|
[region_name] nvarchar(128) NULL,
|
||||||
[longitude] decimal(12,6) NULL,
|
[longitude] decimal(12,6) NULL,
|
||||||
[latitude] decimal(12,6) NULL,
|
[latitude] decimal(12,6) NULL,
|
||||||
[data_source] nvarchar(20) DEFAULT '手工导入' NULL,
|
[data_source] nvarchar(20) DEFAULT '手工导入' NULL,
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ CREATE TABLE `blade_airport_master` (
|
|||||||
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
||||||
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
||||||
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
||||||
|
`district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县编码',
|
||||||
|
`district_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县',
|
||||||
|
`region_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行政区划',
|
||||||
|
`detail_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址',
|
||||||
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
||||||
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
||||||
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动录入' COMMENT '数据来源',
|
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动录入' COMMENT '数据来源',
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
DROP TABLE IF EXISTS `blade_fee_item`;
|
DROP TABLE IF EXISTS `blade_fee_item`;
|
||||||
CREATE TABLE `blade_fee_item` (
|
CREATE TABLE `blade_fee_item` (
|
||||||
`id` bigint NOT NULL COMMENT '主键',
|
`id` bigint NOT NULL COMMENT '主键',
|
||||||
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '中文名称',
|
`fee_category` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '费用类型',
|
||||||
`english_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '英文名称',
|
`name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '费用项',
|
||||||
|
`english_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '费用项代码',
|
||||||
`create_user` bigint NULL DEFAULT NULL COMMENT '创建人',
|
`create_user` bigint NULL DEFAULT NULL COMMENT '创建人',
|
||||||
`create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门',
|
`create_dept` bigint NULL DEFAULT NULL COMMENT '创建部门',
|
||||||
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
|
||||||
@@ -15,6 +16,7 @@ CREATE TABLE `blade_fee_item` (
|
|||||||
`is_deleted` int NULL DEFAULT 0 COMMENT '是否已删除',
|
`is_deleted` int NULL DEFAULT 0 COMMENT '是否已删除',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE INDEX `uk_fee_item_name`(`name`) USING BTREE,
|
UNIQUE INDEX `uk_fee_item_name`(`name`) USING BTREE,
|
||||||
|
INDEX `idx_fee_item_category`(`fee_category`) USING BTREE,
|
||||||
INDEX `idx_fee_item_status`(`status`) USING BTREE
|
INDEX `idx_fee_item_status`(`status`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '费用项';
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '费用项';
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
-- 费用项补充费用类型字段
|
||||||
|
-- 执行前请先备份数据库;如字段已存在,请跳过对应 ALTER。
|
||||||
|
|
||||||
|
ALTER TABLE `blade_fee_item`
|
||||||
|
ADD COLUMN `fee_category` varchar(50) DEFAULT NULL COMMENT '费用类型' AFTER `id`;
|
||||||
|
|
||||||
|
CREATE INDEX `idx_fee_item_category` ON `blade_fee_item` (`fee_category`);
|
||||||
@@ -12,7 +12,8 @@ CREATE TABLE `blade_port_terminal` (
|
|||||||
`parent_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '上级港口名称',
|
`parent_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '上级港口名称',
|
||||||
`country` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国家',
|
`country` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '国家',
|
||||||
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
|
`city` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '城市',
|
||||||
`region_code` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行政区划编码',
|
`district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区县编码',
|
||||||
|
`district_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '区县',
|
||||||
`detail_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址',
|
`detail_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址',
|
||||||
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
||||||
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
-- 港口码头主数据补充行政区划编码与详细地址字段
|
-- 港口码头主数据补充详细地址字段
|
||||||
-- 执行前请先备份数据库;如字段已存在,请跳过对应 ALTER。
|
-- 执行前请先备份数据库;如字段已存在,请跳过对应 ALTER。
|
||||||
|
|
||||||
ALTER TABLE `blade_port_terminal`
|
ALTER TABLE `blade_port_terminal`
|
||||||
ADD COLUMN `region_code` varchar(32) DEFAULT NULL COMMENT '行政区划编码' AFTER `city`,
|
ADD COLUMN `detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址' AFTER `district_name`;
|
||||||
ADD COLUMN `detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址' AFTER `region_code`;
|
|
||||||
|
|||||||
@@ -13,6 +13,10 @@ CREATE TABLE `blade_railway_station` (
|
|||||||
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
`province_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份',
|
||||||
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
`city_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市编码',
|
||||||
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
`city_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属城市',
|
||||||
|
`district_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县编码',
|
||||||
|
`district_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属区县',
|
||||||
|
`region_name` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '行政区划',
|
||||||
|
`detail_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '详细地址',
|
||||||
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) NULL DEFAULT NULL COMMENT '经度',
|
||||||
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
`latitude` decimal(12,6) NULL DEFAULT NULL COMMENT '纬度',
|
||||||
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动' COMMENT '数据来源',
|
`data_source` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '手动' COMMENT '数据来源',
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
-- 基础资料区县字段补充
|
||||||
|
-- 执行前请先备份数据库;如字段已存在,请跳过对应 ALTER。
|
||||||
|
|
||||||
|
ALTER TABLE `blade_airport_master`
|
||||||
|
ADD COLUMN `district_code` varchar(12) DEFAULT NULL COMMENT '所属区县编码' AFTER `city_name`,
|
||||||
|
ADD COLUMN `district_name` varchar(128) DEFAULT NULL COMMENT '所属区县' AFTER `district_code`;
|
||||||
|
|
||||||
|
ALTER TABLE `blade_railway_station`
|
||||||
|
ADD COLUMN `district_code` varchar(12) DEFAULT NULL COMMENT '所属区县编码' AFTER `city_name`,
|
||||||
|
ADD COLUMN `district_name` varchar(128) DEFAULT NULL COMMENT '所属区县' AFTER `district_code`;
|
||||||
|
|
||||||
|
ALTER TABLE `blade_port_terminal`
|
||||||
|
ADD COLUMN `district_code` varchar(12) DEFAULT NULL COMMENT '区县编码' AFTER `city`,
|
||||||
|
ADD COLUMN `district_name` varchar(50) DEFAULT NULL COMMENT '区县' AFTER `district_code`;
|
||||||
@@ -1,12 +1,10 @@
|
|||||||
-- 铁路车站、空港机场补充行政区划与详细地址字段
|
-- 铁路车站、空港机场补充行政区划名称与详细地址字段
|
||||||
-- 执行前请先备份数据库;如字段已存在,请跳过对应 ALTER。
|
-- 执行前请先备份数据库;如字段已存在,请跳过对应 ALTER。
|
||||||
|
|
||||||
ALTER TABLE `blade_railway_station`
|
ALTER TABLE `blade_railway_station`
|
||||||
ADD COLUMN `region_code` varchar(32) DEFAULT NULL COMMENT '行政区划编码' AFTER `city_name`,
|
ADD COLUMN `region_name` varchar(128) DEFAULT NULL COMMENT '行政区划' AFTER `district_name`,
|
||||||
ADD COLUMN `region_name` varchar(128) DEFAULT NULL COMMENT '行政区划' AFTER `region_code`,
|
|
||||||
ADD COLUMN `detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址' AFTER `region_name`;
|
ADD COLUMN `detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址' AFTER `region_name`;
|
||||||
|
|
||||||
ALTER TABLE `blade_airport_master`
|
ALTER TABLE `blade_airport_master`
|
||||||
ADD COLUMN `region_code` varchar(32) DEFAULT NULL COMMENT '行政区划编码' AFTER `city_name`,
|
ADD COLUMN `region_name` varchar(128) DEFAULT NULL COMMENT '行政区划' AFTER `district_name`,
|
||||||
ADD COLUMN `region_name` varchar(128) DEFAULT NULL COMMENT '行政区划' AFTER `region_code`,
|
|
||||||
ADD COLUMN `detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址' AFTER `region_name`;
|
ADD COLUMN `detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址' AFTER `region_name`;
|
||||||
|
|||||||
@@ -32,7 +32,8 @@ CREATE TABLE `blade_airport_master` (
|
|||||||
`province_name` varchar(128) DEFAULT NULL COMMENT '所属省份',
|
`province_name` varchar(128) DEFAULT NULL COMMENT '所属省份',
|
||||||
`city_code` varchar(12) DEFAULT NULL COMMENT '所属城市编码',
|
`city_code` varchar(12) DEFAULT NULL COMMENT '所属城市编码',
|
||||||
`city_name` varchar(128) DEFAULT NULL COMMENT '所属城市',
|
`city_name` varchar(128) DEFAULT NULL COMMENT '所属城市',
|
||||||
`region_code` varchar(32) DEFAULT NULL COMMENT '行政区划编码',
|
`district_code` varchar(12) DEFAULT NULL COMMENT '所属区县编码',
|
||||||
|
`district_name` varchar(128) DEFAULT NULL COMMENT '所属区县',
|
||||||
`region_name` varchar(128) DEFAULT NULL COMMENT '行政区划',
|
`region_name` varchar(128) DEFAULT NULL COMMENT '行政区划',
|
||||||
`detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址',
|
`detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址',
|
||||||
`longitude` decimal(12,6) DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) DEFAULT NULL COMMENT '经度',
|
||||||
@@ -130,8 +131,9 @@ COMMIT;
|
|||||||
DROP TABLE IF EXISTS `blade_fee_item`;
|
DROP TABLE IF EXISTS `blade_fee_item`;
|
||||||
CREATE TABLE `blade_fee_item` (
|
CREATE TABLE `blade_fee_item` (
|
||||||
`id` bigint(20) NOT NULL COMMENT '主键',
|
`id` bigint(20) NOT NULL COMMENT '主键',
|
||||||
`name` varchar(50) NOT NULL COMMENT '中文名称',
|
`fee_category` varchar(50) NOT NULL COMMENT '费用类型',
|
||||||
`english_name` varchar(100) DEFAULT NULL COMMENT '英文名称',
|
`name` varchar(50) NOT NULL COMMENT '费用项',
|
||||||
|
`english_name` varchar(100) DEFAULT NULL COMMENT '费用项代码',
|
||||||
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
|
`create_user` bigint(20) DEFAULT NULL COMMENT '创建人',
|
||||||
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
`create_dept` bigint(20) DEFAULT NULL COMMENT '创建部门',
|
||||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||||
@@ -141,6 +143,7 @@ CREATE TABLE `blade_fee_item` (
|
|||||||
`is_deleted` int(11) DEFAULT '0' COMMENT '是否已删除',
|
`is_deleted` int(11) DEFAULT '0' COMMENT '是否已删除',
|
||||||
PRIMARY KEY (`id`) USING BTREE,
|
PRIMARY KEY (`id`) USING BTREE,
|
||||||
UNIQUE KEY `uk_fee_item_name` (`name`) USING BTREE,
|
UNIQUE KEY `uk_fee_item_name` (`name`) USING BTREE,
|
||||||
|
KEY `idx_fee_item_category` (`fee_category`) USING BTREE,
|
||||||
KEY `idx_fee_item_status` (`status`) USING BTREE
|
KEY `idx_fee_item_status` (`status`) USING BTREE
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='费用项';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='费用项';
|
||||||
|
|
||||||
@@ -1312,7 +1315,8 @@ CREATE TABLE `blade_port_terminal` (
|
|||||||
`parent_name` varchar(100) DEFAULT NULL COMMENT '上级港口名称',
|
`parent_name` varchar(100) DEFAULT NULL COMMENT '上级港口名称',
|
||||||
`country` varchar(50) DEFAULT NULL COMMENT '国家',
|
`country` varchar(50) DEFAULT NULL COMMENT '国家',
|
||||||
`city` varchar(50) DEFAULT NULL COMMENT '城市',
|
`city` varchar(50) DEFAULT NULL COMMENT '城市',
|
||||||
`region_code` varchar(32) DEFAULT NULL COMMENT '行政区划编码',
|
`district_code` varchar(12) DEFAULT NULL COMMENT '区县编码',
|
||||||
|
`district_name` varchar(50) DEFAULT NULL COMMENT '区县',
|
||||||
`detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址',
|
`detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址',
|
||||||
`longitude` decimal(12,6) DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) DEFAULT NULL COMMENT '经度',
|
||||||
`latitude` decimal(12,6) DEFAULT NULL COMMENT '纬度',
|
`latitude` decimal(12,6) DEFAULT NULL COMMENT '纬度',
|
||||||
@@ -1419,7 +1423,8 @@ CREATE TABLE `blade_railway_station` (
|
|||||||
`province_name` varchar(128) DEFAULT NULL COMMENT '所属省份',
|
`province_name` varchar(128) DEFAULT NULL COMMENT '所属省份',
|
||||||
`city_code` varchar(12) DEFAULT NULL COMMENT '所属城市编码',
|
`city_code` varchar(12) DEFAULT NULL COMMENT '所属城市编码',
|
||||||
`city_name` varchar(128) DEFAULT NULL COMMENT '所属城市',
|
`city_name` varchar(128) DEFAULT NULL COMMENT '所属城市',
|
||||||
`region_code` varchar(32) DEFAULT NULL COMMENT '行政区划编码',
|
`district_code` varchar(12) DEFAULT NULL COMMENT '所属区县编码',
|
||||||
|
`district_name` varchar(128) DEFAULT NULL COMMENT '所属区县',
|
||||||
`region_name` varchar(128) DEFAULT NULL COMMENT '行政区划',
|
`region_name` varchar(128) DEFAULT NULL COMMENT '行政区划',
|
||||||
`detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址',
|
`detail_address` varchar(255) DEFAULT NULL COMMENT '详细地址',
|
||||||
`longitude` decimal(12,6) DEFAULT NULL COMMENT '经度',
|
`longitude` decimal(12,6) DEFAULT NULL COMMENT '经度',
|
||||||
|
|||||||
Reference in New Issue
Block a user