From ef9eab737f22d9385c03255ffa0a48d9243a4a04 Mon Sep 17 00:00:00 2001 From: b2894lxlx <517289602@qq.com> Date: Fri, 9 Oct 2026 17:07:56 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E4=BC=98=E5=8C=96=E4=B8=BB?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=A0=A1=E9=AA=8C=E4=B8=8E=E8=BF=90=E5=8D=95?= =?UTF-8?q?=E5=AF=BC=E5=85=A5=E7=A9=BA=E5=80=BC=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 电报略码改为选填且填写时唯一;用户支持账号姓名手机模糊查询;合同名称允许重复;项目情况说明扩至1000字;导入运单未填里程费用不再落库-1。 Co-authored-by: Cursor --- .../system/pojo/entity/RailwayStation.java | 2 + .../system/controller/UserController.java | 14 +++--- .../system/excel/RailwayStationExcel.java | 2 +- .../excel/RailwayStationExportExcel.java | 2 +- .../springblade/system/mapper/UserMapper.xml | 12 ++--- .../impl/RailwayStationServiceImpl.java | 23 +++++---- .../system/service/impl/UserServiceImpl.java | 38 +++++++++++++++ .../impl/ContractManageServiceImpl.java | 12 +---- .../service/impl/ProjectApplyServiceImpl.java | 28 +++++++++++ .../impl/WaybillImportBatchServiceImpl.java | 48 +++++++++++++++---- .../service/impl/WaybillServiceImpl.java | 15 +++++- .../transport/wrapper/WaybillWrapper.java | 5 +- doc/sql/bladex/bladex.kingbase.all.create.sql | 2 +- doc/sql/bladex/bladex.mysql.all.create.sql | 2 +- doc/sql/bladex/bladex.postgres.all.create.sql | 2 +- .../bladex/bladex.sqlserver.all.create.sql | 2 +- doc/sql/transport/blade_railway_station.sql | 2 +- ...telegraph_code_nullable_patch_20261009.sql | 5 ++ doc/sql/transport/transport.sql | 2 +- 19 files changed, 164 insertions(+), 54 deletions(-) create mode 100644 doc/sql/transport/blade_railway_station_telegraph_code_nullable_patch_20261009.sql diff --git a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/RailwayStation.java b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/RailwayStation.java index 2afb375e..af31a055 100644 --- a/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/RailwayStation.java +++ b/blade-service-api/blade-system-api/src/main/java/org/springblade/system/pojo/entity/RailwayStation.java @@ -25,6 +25,7 @@ */ package org.springblade.system.pojo.entity; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.v3.oas.annotations.media.Schema; @@ -63,6 +64,7 @@ public class RailwayStation extends BaseEntity { * 电报略码 */ @Schema(description = "电报略码") + @TableField(updateStrategy = FieldStrategy.ALWAYS) private String telegraphCode; /** * 车站名称 diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java index ab5e7820..6aab4608 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/controller/UserController.java @@ -112,11 +112,12 @@ public class UserController { @GetMapping("/list") @BladeView(Views.Admin.class) @Parameters({ - @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), - @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + @Parameter(name = "account", description = "账号名(模糊)", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "realName", description = "姓名(模糊)", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "phone", description = "手机号(模糊)", in = ParameterIn.QUERY, schema = @Schema(type = "string")) }) @ApiOperationSupport(order = 3) - @Operation(summary = "列表", description = "传入account和realName") + @Operation(summary = "列表", description = "传入account、realName、phone,支持模糊搜索") public R> list(@Parameter(hidden = true) @RequestParam Map user, Query query) { return R.data(userService.selectPage(user, query)); } @@ -128,11 +129,12 @@ public class UserController { @GetMapping("/page") @BladeView(Views.Admin.class) @Parameters({ - @Parameter(name = "account", description = "账号名", in = ParameterIn.QUERY, schema = @Schema(type = "string")), - @Parameter(name = "realName", description = "姓名", in = ParameterIn.QUERY, schema = @Schema(type = "string")) + @Parameter(name = "account", description = "账号名(模糊)", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "realName", description = "姓名(模糊)", in = ParameterIn.QUERY, schema = @Schema(type = "string")), + @Parameter(name = "phone", description = "手机号(模糊)", in = ParameterIn.QUERY, schema = @Schema(type = "string")) }) @ApiOperationSupport(order = 4) - @Operation(summary = "列表", description = "传入account和realName") + @Operation(summary = "列表", description = "传入account、realName、phone,支持模糊搜索") public R> page(@Parameter(hidden = true) User user, Query query, Long deptId, BladeUser bladeUser) { IPage pages = userService.selectUserPage(Condition.getPage(query), user, deptId, (AuthUtil.isAdministrator() ? StringPool.EMPTY : bladeUser.getTenantId())); return R.data(UserWrapper.build().pageVO(pages)); diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExcel.java b/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExcel.java index 3da00ca2..a7130e25 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExcel.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExcel.java @@ -54,7 +54,7 @@ public class RailwayStationExcel implements Serializable { @ExcelProperty("TMIS国标编码*") private String tmisCode; - @ExcelProperty("电报略码*") + @ExcelProperty("电报略码") private String telegraphCode; @ExcelProperty("车站名称*") diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExportExcel.java b/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExportExcel.java index ddaf8230..424cc0c9 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExportExcel.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/excel/RailwayStationExportExcel.java @@ -56,7 +56,7 @@ public class RailwayStationExportExcel implements Serializable { @ExcelProperty("TMIS国标编码*") private String tmisCode; - @ExcelProperty("电报略码*") + @ExcelProperty("电报略码") private String telegraphCode; @ExcelProperty("车站名称*") diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml index 79fcb79f..23fff0b7 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml +++ b/blade-service/blade-system/src/main/java/org/springblade/system/mapper/UserMapper.xml @@ -44,16 +44,16 @@ and bu.tenant_id = #{user.tenantId} - and bu.account like concat(concat('%', #{user.account}), '%') + and bu.account like concat('%', #{user.account}, '%') - and bu.real_name like concat(concat('%', #{user.realName}), '%') + and ( + bu.real_name like concat('%', #{user.realName}, '%') + or bu.name like concat('%', #{user.realName}, '%') + ) - and ( - bu.phone like concat(concat('%', #{user.phone}), '%') - or bu.account like concat(concat('%', #{user.phone}), '%') - ) + and bu.phone like concat('%', #{user.phone}, '%') and bu.user_type = #{user.userType} diff --git a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RailwayStationServiceImpl.java b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RailwayStationServiceImpl.java index f2d1b95e..5c475ea4 100644 --- a/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RailwayStationServiceImpl.java +++ b/blade-service/blade-system/src/main/java/org/springblade/system/service/impl/RailwayStationServiceImpl.java @@ -207,7 +207,7 @@ public class RailwayStationServiceImpl extends BaseServiceImpl implement @Override public IPage selectPage(Map user, Query query) { + String account = Func.toStr(user.remove("account")).trim(); + String realName = Func.toStr(user.remove("realName")).trim(); + String phone = Func.toStr(user.remove("phone")).trim(); QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); applyTenantScope(queryWrapper); + applyUserFuzzyFilters(queryWrapper, account, realName, phone); return UserWrapper.build().pageVO(page(Condition.getPage(query), queryWrapper)); } @@ -378,6 +382,7 @@ public class UserServiceImpl extends BaseServiceImpl implement @Override public IPage selectUserPage(IPage page, User user, Long deptId, String tenantId) { + normalizeUserSearch(user); List deptIdList = SysCache.getDeptChildIds(deptId); return page.setRecords(baseMapper.selectUserPage(page, user, deptIdList, tenantId)); } @@ -713,8 +718,12 @@ public class UserServiceImpl extends BaseServiceImpl implement @Override public List exportUser(Map user) { + String account = Func.toStr(user.remove("account")).trim(); + String realName = Func.toStr(user.remove("realName")).trim(); + String phone = Func.toStr(user.remove("phone")).trim(); QueryWrapper queryWrapper = Condition.getQueryWrapper(user, User.class); applyTenantScope(queryWrapper); + applyUserFuzzyFilters(queryWrapper, account, realName, phone); queryWrapper.lambda().eq(User::getIsDeleted, BladeConstant.DB_NOT_DELETED); return exportUser(queryWrapper); } @@ -1127,6 +1136,35 @@ public class UserServiceImpl extends BaseServiceImpl implement } } + /** + * 归一化用户列表搜索条件,避免首尾空格导致模糊匹配失效。 + */ + private void normalizeUserSearch(User user) { + if (user == null) { + return; + } + if (user.getAccount() != null) { + user.setAccount(user.getAccount().trim()); + } + if (user.getRealName() != null) { + user.setRealName(user.getRealName().trim()); + } + if (user.getPhone() != null) { + user.setPhone(user.getPhone().trim()); + } + } + + /** + * 账号名、姓名、手机号统一按模糊匹配过滤。 + */ + private void applyUserFuzzyFilters(QueryWrapper queryWrapper, String account, String realName, String phone) { + queryWrapper.lambda().like(StringUtil.isNotBlank(account), User::getAccount, account); + if (StringUtil.isNotBlank(realName)) { + queryWrapper.lambda().and(wrapper -> wrapper.like(User::getRealName, realName).or().like(User::getName, realName)); + } + queryWrapper.lambda().like(StringUtil.isNotBlank(phone), User::getPhone, phone); + } + @Override public void decryptPhone(IPhone user) { diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ContractManageServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ContractManageServiceImpl.java index 50be61fb..9d2c291f 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ContractManageServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ContractManageServiceImpl.java @@ -670,7 +670,7 @@ public class ContractManageServiceImpl extends BaseServiceImpllambdaQuery() - .eq(ContractManage::getIsDeleted, 0) - .eq(ContractManage::getContractName, contractManage.getContractName()) - .ne(Func.isNotEmpty(contractManage.getId()), ContractManage::getId, contractManage.getId())); - if (count > 0) { - throw new ServiceException("合同名称已存在"); - } - } - private void validateContractPartyCombinationUnique(ContractManage contractManage) { if (Func.isEmpty(contractManage.getContractCategory()) || Func.isEmpty(contractManage.getPartyA()) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java index 01dbd443..080cf984 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ProjectApplyServiceImpl.java @@ -770,6 +770,34 @@ public class ProjectApplyServiceImpl extends BaseServiceImpl situationMap)) { + TransportBusinessSupport.validateLength(situationRemark, 1000, "项目情况说明不能超过1000个字"); + return; + } + Map data = (Map) situationMap; + TransportBusinessSupport.validateLength(Func.toStr(data.get("projectIntro")), 1000, "项目简介不能超过1000个字"); + TransportBusinessSupport.validateLength(Func.toStr(data.get("profitRemark")), 1000, "盈利模式及利润测算情况说明不能超过1000个字"); + TransportBusinessSupport.validateLength(Func.toStr(data.get("riskPoint")), 1000, "项目风险点不能超过1000个字"); + TransportBusinessSupport.validateLength(Func.toStr(data.get("emergencyPlan")), 1000, "风险防范措施及应急预案不能超过1000个字"); } private void validateChange(ProjectApply projectApply, String changeType) { diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillImportBatchServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillImportBatchServiceImpl.java index b1eb6ab9..a37f242a 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillImportBatchServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/WaybillImportBatchServiceImpl.java @@ -455,12 +455,12 @@ public class WaybillImportBatchServiceImpl extends BaseServiceImpl row, String field, String fieldName, String... aliases) { String value = stringValue(row, field, aliases); - if (Func.isEmpty(value)) return null; + if (Func.isEmpty(value) || isImportOptionalNumberEmpty(value)) { + return null; + } try { return new BigDecimal(value); } catch (NumberFormatException exception) { @@ -524,8 +526,32 @@ public class WaybillImportBatchServiceImpl extends BaseServiceImpl row, String field, String fieldName, List errors) { String value = stringValue(row, field, fieldName); - if (Func.isEmpty(value)) { + if (Func.isEmpty(value) || isImportOptionalNumberEmpty(value)) { return; } @@ -836,7 +862,7 @@ public class WaybillImportBatchServiceImpl extends BaseServiceImpl row, List errors) { String freightTotalStr = stringValue(row, "freightTotal", "运费合计"); - if (Func.isEmpty(freightTotalStr)) { + if (Func.isEmpty(freightTotalStr) || isImportOptionalNumberEmpty(freightTotalStr)) { return; } @@ -845,8 +871,10 @@ public class WaybillImportBatchServiceImpl extends BaseServiceImpl } private void putIfNotEmpty(Map map, String key, Object value) { - if (Func.isNotEmpty(value)) { - map.put(key, value); + if (Func.isEmpty(value) || isSentinelMinusOneValue(value)) { + return; } + map.put(key, value); + } + + private boolean isSentinelMinusOneValue(Object value) { + if (value instanceof BigDecimal bigDecimal) { + return isSentinelMinusOne(bigDecimal); + } + if (value instanceof Number number) { + return Double.compare(number.doubleValue(), -1D) == 0; + } + return false; } private synchronized String nextCode() { diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/WaybillWrapper.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/WaybillWrapper.java index 65401f97..1dab5a5b 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/WaybillWrapper.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/wrapper/WaybillWrapper.java @@ -62,7 +62,7 @@ public class WaybillWrapper extends BaseEntityWrapper { waybillVO.setBusinessStatusName(businessStatusName(displayStatus)); waybillVO.setTransportTypeName(transportTypeName(waybill.getTransportType())); waybillVO.setRequireAccept(WaybillProcessSupport.requiresDriverAcceptConfirmation(waybill.getProcessJson())); - // 未维护里程等占位值 -1 对外展示为空 + // 未维护里程/费用等占位值 -1 对外展示为空 if (isSentinelMinusOne(waybillVO.getMileage())) { waybillVO.setMileage(null); } @@ -72,6 +72,9 @@ public class WaybillWrapper extends BaseEntityWrapper { if (isSentinelMinusOne(waybillVO.getUnitPrice())) { waybillVO.setUnitPrice(null); } + if (isSentinelMinusOne(waybillVO.getOtherFeeTotal())) { + waybillVO.setOtherFeeTotal(null); + } // 计划未选时 planId 可能为库内 -1 或序列化占位,统一清空避免前端回显 -1 if (waybillVO.getPlanId() != null && waybillVO.getPlanId() <= 0L) { waybillVO.setPlanId(null); diff --git a/doc/sql/bladex/bladex.kingbase.all.create.sql b/doc/sql/bladex/bladex.kingbase.all.create.sql index b7bf2e51..c1c00b5e 100644 --- a/doc/sql/bladex/bladex.kingbase.all.create.sql +++ b/doc/sql/bladex/bladex.kingbase.all.create.sql @@ -2442,7 +2442,7 @@ CREATE TABLE "blade_railway_station" ( "id" int8 NOT NULL, "code" varchar(20) NOT NULL, "tmis_code" varchar(5) NOT NULL, - "telegraph_code" varchar(3) NOT NULL, + "telegraph_code" varchar(3) NULL, "name" varchar(100) NOT NULL, "railway_line" varchar(100), "province_code" varchar(12), diff --git a/doc/sql/bladex/bladex.mysql.all.create.sql b/doc/sql/bladex/bladex.mysql.all.create.sql index 9da80698..33d15e60 100644 --- a/doc/sql/bladex/bladex.mysql.all.create.sql +++ b/doc/sql/bladex/bladex.mysql.all.create.sql @@ -1550,7 +1550,7 @@ CREATE TABLE `blade_railway_station` ( `id` bigint NOT NULL COMMENT '主键', `code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码', `tmis_code` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'TMIS国标编码', - `telegraph_code` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '电报码', + `telegraph_code` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电报码', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车站名称', `railway_line` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属铁路线路', `province_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份编码', diff --git a/doc/sql/bladex/bladex.postgres.all.create.sql b/doc/sql/bladex/bladex.postgres.all.create.sql index b7bf2e51..c1c00b5e 100644 --- a/doc/sql/bladex/bladex.postgres.all.create.sql +++ b/doc/sql/bladex/bladex.postgres.all.create.sql @@ -2442,7 +2442,7 @@ CREATE TABLE "blade_railway_station" ( "id" int8 NOT NULL, "code" varchar(20) NOT NULL, "tmis_code" varchar(5) NOT NULL, - "telegraph_code" varchar(3) NOT NULL, + "telegraph_code" varchar(3) NULL, "name" varchar(100) NOT NULL, "railway_line" varchar(100), "province_code" varchar(12), diff --git a/doc/sql/bladex/bladex.sqlserver.all.create.sql b/doc/sql/bladex/bladex.sqlserver.all.create.sql index 632f8014..69b7edd4 100644 --- a/doc/sql/bladex/bladex.sqlserver.all.create.sql +++ b/doc/sql/bladex/bladex.sqlserver.all.create.sql @@ -7592,7 +7592,7 @@ CREATE TABLE [dbo].[blade_railway_station] ( [id] bigint NOT NULL, [code] nvarchar(20) NOT NULL, [tmis_code] nvarchar(5) NOT NULL, - [telegraph_code] nvarchar(3) NOT NULL, + [telegraph_code] nvarchar(3) NULL, [name] nvarchar(100) NOT NULL, [railway_line] nvarchar(100) NULL, [province_code] nvarchar(12) NULL, diff --git a/doc/sql/transport/blade_railway_station.sql b/doc/sql/transport/blade_railway_station.sql index 17cf66c5..dc5e4979 100644 --- a/doc/sql/transport/blade_railway_station.sql +++ b/doc/sql/transport/blade_railway_station.sql @@ -6,7 +6,7 @@ CREATE TABLE `blade_railway_station` ( `id` bigint NOT NULL COMMENT '主键', `code` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码', `tmis_code` varchar(5) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'TMIS国标编码', - `telegraph_code` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '电报码', + `telegraph_code` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电报码', `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '车站名称', `railway_line` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属铁路线路', `province_code` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属省份编码', diff --git a/doc/sql/transport/blade_railway_station_telegraph_code_nullable_patch_20261009.sql b/doc/sql/transport/blade_railway_station_telegraph_code_nullable_patch_20261009.sql new file mode 100644 index 00000000..7977f448 --- /dev/null +++ b/doc/sql/transport/blade_railway_station_telegraph_code_nullable_patch_20261009.sql @@ -0,0 +1,5 @@ +-- 铁路车站电报略码改为非必填(有值时仍保持唯一) +-- 执行前请先备份数据库;如字段已是可空,可跳过本脚本。 + +ALTER TABLE `blade_railway_station` + MODIFY COLUMN `telegraph_code` varchar(3) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '电报码'; diff --git a/doc/sql/transport/transport.sql b/doc/sql/transport/transport.sql index e9ba572e..b2d174cd 100644 --- a/doc/sql/transport/transport.sql +++ b/doc/sql/transport/transport.sql @@ -1420,7 +1420,7 @@ CREATE TABLE `blade_railway_station` ( `id` bigint(20) NOT NULL COMMENT '主键', `code` varchar(20) NOT NULL COMMENT '编码', `tmis_code` varchar(5) NOT NULL COMMENT 'TMIS国标编码', - `telegraph_code` varchar(3) NOT NULL COMMENT '电报码', + `telegraph_code` varchar(3) DEFAULT NULL COMMENT '电报码', `name` varchar(100) NOT NULL COMMENT '车站名称', `railway_line` varchar(100) DEFAULT NULL COMMENT '所属铁路线路', `province_code` varchar(12) DEFAULT NULL COMMENT '所属省份编码',