😎调整行政区划字段名称及增加同步天地图行政区域接口

This commit is contained in:
zuohuaijun 2024-09-10 14:25:03 +08:00
parent a1e3f781ee
commit 95d0d2ba22
11 changed files with 227 additions and 28 deletions

View File

@ -87,13 +87,13 @@ public partial class SysRegion : EntityBaseId
/// 经度
/// </summary>
[SugarColumn(ColumnDescription = "经度")]
public float Lng { get; set; }
public decimal Longitude { get; set; }
/// <summary>
/// 维度
/// </summary>
[SugarColumn(ColumnDescription = "维度")]
public float Lat { get; set; }
public decimal Latitude { get; set; }
/// <summary>
/// 排序

View File

@ -69,4 +69,41 @@ public class GenOrgInput
/// 生成层级
/// </summary>
public int Level { get; set; }
}
public class TiandituInput
{
/// <summary>
/// 规则:只支持单个关键词语搜索
/// 关键词支持:行政区划名称、行政区划编码
/// 例如keyword='北京' 或 keyword = '156110000'
/// 说明:仅行政区划名称支持模糊查询
/// 注keyword只有一个字符时将只返回suggestion字段值不返回district字段值
/// </summary>
public string Keyword { get; set; }
/// <summary>
/// 规则:设置显示下级行政区级数(行政区级别包括:国家、省/直辖市、市、区/县多级数据
/// 可选值0、1、2、3
/// 0不返回下级行政区
/// 1返回下一级行政区
/// 2返回下两级行政区
/// 3返回下三级行政区
/// 需要在此特殊说明,目前部分城市和省直辖县因为没有区县的概念,故在省级下方直接显示区县。
/// 例如:河南-济源
/// </summary>
public string ChildLevel { get; set; }
/// <summary>
/// 是否需要轮廓数据
/// 可选值true、false
/// true返回轮廓数据
/// false不返回轮廓数据
/// </summary>
public bool Extensions { get; set; }
/// <summary>
/// 密钥
/// </summary>
public string Tk { get; set; }
}

View File

@ -276,7 +276,7 @@ public class SysRegionService : IDynamicApiController, ITransient
}
/// <summary>
/// 同步行政区划数据国家地名信息库最多支持2级深度
/// 同步行政区划数据国家地名信息库最多支持2级深度 🔖
/// </summary>
/// <returns></returns>
[DisplayName("同步行政区划数据(国家地名信息库)")]
@ -333,7 +333,23 @@ public class SysRegionService : IDynamicApiController, ITransient
}
/// <summary>
/// 生成组织架构
/// 同步行政区划数据(天地图行政区划) 🔖
/// </summary>
/// <returns></returns>
[DisplayName("同步行政区划数据(天地图行政区划)")]
public async Task<int> SyncRegionTianditu(TiandituInput input)
{
// 接口说明及地址http://lbs.tianditu.gov.cn/server/administrative2.html
var url = $"http://api.tianditu.gov.cn/v2/administrative?keyword={input.Keyword}&childLevel={input.ChildLevel}&extensions={input.Extensions}&tk={input.Tk}";
var areaList = new List<SysRegion>();
await _sysRegionRep.AsDeleteable().ExecuteCommandAsync();
return await _sysRegionRep.AsInsertable(areaList).ExecuteCommandAsync();
}
/// <summary>
/// 生成组织架构 🔖
/// </summary>
/// <param name="input"></param>
/// <returns></returns>

View File

@ -31,7 +31,7 @@ import { LoginPhoneInput } from '../models';
export const SysAuthApiAxiosParamCreator = function (configuration?: Configuration) {
return {
/**
*
* Swagger登录检查
* @summary Swagger登录检查 🔖
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -74,7 +74,7 @@ export const SysAuthApiAxiosParamCreator = function (configuration?: Configurati
};
},
/**
*
* Swagger登录提交
* @summary Swagger登录提交 🔖
* @param {string} [userName]
* @param {string} [password]
@ -473,7 +473,7 @@ export const SysAuthApiAxiosParamCreator = function (configuration?: Configurati
export const SysAuthApiFp = function(configuration?: Configuration) {
return {
/**
*
* Swagger登录检查
* @summary Swagger登录检查 🔖
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -486,7 +486,7 @@ export const SysAuthApiFp = function(configuration?: Configuration) {
};
},
/**
*
* Swagger登录提交
* @summary Swagger登录提交 🔖
* @param {string} [userName]
* @param {string} [password]
@ -605,7 +605,7 @@ export const SysAuthApiFp = function(configuration?: Configuration) {
export const SysAuthApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) {
return {
/**
*
* Swagger登录检查
* @summary Swagger登录检查 🔖
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -614,7 +614,7 @@ export const SysAuthApiFactory = function (configuration?: Configuration, basePa
return SysAuthApiFp(configuration).apiSwaggerCheckUrlPost(options).then((request) => request(axios, basePath));
},
/**
*
* Swagger登录提交
* @summary Swagger登录提交 🔖
* @param {string} [userName]
* @param {string} [password]
@ -702,7 +702,7 @@ export const SysAuthApiFactory = function (configuration?: Configuration, basePa
*/
export class SysAuthApi extends BaseAPI {
/**
*
* Swagger登录检查
* @summary Swagger登录检查 🔖
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -712,7 +712,7 @@ export class SysAuthApi extends BaseAPI {
return SysAuthApiFp(this.configuration).apiSwaggerCheckUrlPost(options).then((request) => request(this.axios, this.basePath));
}
/**
*
* Swagger登录提交
* @summary Swagger登录提交 🔖
* @param {string} [userName]
* @param {string} [password]

View File

@ -26,6 +26,7 @@ import { DeleteRegionInput } from '../models';
import { GenOrgInput } from '../models';
import { PageRegionInput } from '../models';
import { SyncInput } from '../models';
import { TiandituInput } from '../models';
import { UpdateRegionInput } from '../models';
/**
* SysRegionApi - axios parameter creator
@ -131,7 +132,7 @@ export const SysRegionApiAxiosParamCreator = function (configuration?: Configura
},
/**
*
* @summary
* @summary 🔖
* @param {GenOrgInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -279,7 +280,7 @@ export const SysRegionApiAxiosParamCreator = function (configuration?: Configura
},
/**
*
* @summary 2
* @summary 2 🔖
* @param {number} code
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -374,6 +375,54 @@ export const SysRegionApiAxiosParamCreator = function (configuration?: Configura
options: localVarRequestOptions,
};
},
/**
*
* @summary 🔖
* @param {TiandituInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiSysRegionSyncRegionTiandituPost: async (body?: TiandituInput, options: AxiosRequestConfig = {}): Promise<RequestArgs> => {
const localVarPath = `/api/sysRegion/syncRegionTianditu`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, 'https://example.com');
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions :AxiosRequestConfig = { method: 'POST', ...baseOptions, ...options};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
// authentication Bearer required
// http bearer authentication required
if (configuration && configuration.accessToken) {
const accessToken = typeof configuration.accessToken === 'function'
? await configuration.accessToken()
: await configuration.accessToken;
localVarHeaderParameter["Authorization"] = "Bearer " + accessToken;
}
localVarHeaderParameter['Content-Type'] = 'application/json-patch+json';
const query = new URLSearchParams(localVarUrlObj.search);
for (const key in localVarQueryParameter) {
query.set(key, localVarQueryParameter[key]);
}
for (const key in options.params) {
query.set(key, options.params[key]);
}
localVarUrlObj.search = (new URLSearchParams(query)).toString();
let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers};
const needsSerialization = (typeof body !== "string") || localVarRequestOptions.headers['Content-Type'] === 'application/json';
localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
return {
url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
options: localVarRequestOptions,
};
},
/**
*
* @summary 🔖
@ -461,7 +510,7 @@ export const SysRegionApiFp = function(configuration?: Configuration) {
},
/**
*
* @summary
* @summary 🔖
* @param {GenOrgInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -503,7 +552,7 @@ export const SysRegionApiFp = function(configuration?: Configuration) {
},
/**
*
* @summary 2
* @summary 2 🔖
* @param {number} code
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -529,6 +578,20 @@ export const SysRegionApiFp = function(configuration?: Configuration) {
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary 🔖
* @param {TiandituInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysRegionSyncRegionTiandituPost(body?: TiandituInput, options?: AxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => Promise<AxiosResponse<AdminResultInt32>>> {
const localVarAxiosArgs = await SysRegionApiAxiosParamCreator(configuration).apiSysRegionSyncRegionTiandituPost(body, options);
return (axios: AxiosInstance = globalAxios, basePath: string = BASE_PATH) => {
const axiosRequestArgs :AxiosRequestConfig = {...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url};
return axios.request(axiosRequestArgs);
};
},
/**
*
* @summary 🔖
@ -574,7 +637,7 @@ export const SysRegionApiFactory = function (configuration?: Configuration, base
},
/**
*
* @summary
* @summary 🔖
* @param {GenOrgInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -604,7 +667,7 @@ export const SysRegionApiFactory = function (configuration?: Configuration, base
},
/**
*
* @summary 2
* @summary 2 🔖
* @param {number} code
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -622,6 +685,16 @@ export const SysRegionApiFactory = function (configuration?: Configuration, base
async apiSysRegionSyncRegionStatsPost(body?: SyncInput, options?: AxiosRequestConfig): Promise<AxiosResponse<void>> {
return SysRegionApiFp(configuration).apiSysRegionSyncRegionStatsPost(body, options).then((request) => request(axios, basePath));
},
/**
*
* @summary 🔖
* @param {TiandituInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiSysRegionSyncRegionTiandituPost(body?: TiandituInput, options?: AxiosRequestConfig): Promise<AxiosResponse<AdminResultInt32>> {
return SysRegionApiFp(configuration).apiSysRegionSyncRegionTiandituPost(body, options).then((request) => request(axios, basePath));
},
/**
*
* @summary 🔖
@ -666,7 +739,7 @@ export class SysRegionApi extends BaseAPI {
}
/**
*
* @summary
* @summary 🔖
* @param {GenOrgInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -699,7 +772,7 @@ export class SysRegionApi extends BaseAPI {
}
/**
*
* @summary 2
* @summary 2 🔖
* @param {number} code
* @param {*} [options] Override http request option.
* @throws {RequiredError}
@ -719,6 +792,17 @@ export class SysRegionApi extends BaseAPI {
public async apiSysRegionSyncRegionStatsPost(body?: SyncInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<void>> {
return SysRegionApiFp(this.configuration).apiSysRegionSyncRegionStatsPost(body, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary 🔖
* @param {TiandituInput} [body]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
* @memberof SysRegionApi
*/
public async apiSysRegionSyncRegionTiandituPost(body?: TiandituInput, options?: AxiosRequestConfig) : Promise<AxiosResponse<AdminResultInt32>> {
return SysRegionApiFp(this.configuration).apiSysRegionSyncRegionTiandituPost(body, options).then((request) => request(this.axios, this.basePath));
}
/**
*
* @summary 🔖

View File

@ -107,7 +107,7 @@ export interface AddRegionInput {
* @type {number}
* @memberof AddRegionInput
*/
lng?: number;
longitude?: number;
/**
*
@ -115,7 +115,7 @@ export interface AddRegionInput {
* @type {number}
* @memberof AddRegionInput
*/
lat?: number;
latitude?: number;
/**
*

View File

@ -387,6 +387,7 @@ export * from './tenant-output';
export * from './tenant-type-enum';
export * from './tenant-user-input';
export * from './text-info';
export * from './tianditu-input';
export * from './trigger-status';
export * from './type';
export * from './type-attributes';

View File

@ -115,7 +115,7 @@ export interface SysRegion {
* @type {number}
* @memberof SysRegion
*/
lng?: number;
longitude?: number;
/**
*
@ -123,7 +123,7 @@ export interface SysRegion {
* @type {number}
* @memberof SysRegion
*/
lat?: number;
latitude?: number;
/**
*

View File

@ -0,0 +1,54 @@
/* tslint:disable */
/* eslint-disable */
/**
* Admin.NET
* .NET <br/><u><b><font color='FF0000'> 👮</font></b></u>
*
* OpenAPI spec version: 1.0.0
*
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
/**
*
*
* @export
* @interface TiandituInput
*/
export interface TiandituInput {
/**
* keyword='北京' keyword = '156110000' keyword只有一个字符时suggestion字段值district字段值
*
* @type {string}
* @memberof TiandituInput
*/
keyword?: string | null;
/**
* // 0123 0 1 2 3 -
*
* @type {string}
* @memberof TiandituInput
*/
childLevel?: string | null;
/**
* truefalse true false
*
* @type {boolean}
* @memberof TiandituInput
*/
extensions?: boolean;
/**
*
*
* @type {string}
* @memberof TiandituInput
*/
tk?: string | null;
}

View File

@ -107,7 +107,7 @@ export interface UpdateRegionInput {
* @type {number}
* @memberof UpdateRegionInput
*/
lng?: number;
longitude?: number;
/**
*
@ -115,7 +115,7 @@ export interface UpdateRegionInput {
* @type {number}
* @memberof UpdateRegionInput
*/
lat?: number;
latitude?: number;
/**
*

View File

@ -44,6 +44,7 @@
<el-button type="danger" icon="ele-Lightning" @click="syncRegionStats" v-auth="'sysRegion/add'"> 同步国家统计局 </el-button>
<el-button type="danger" icon="ele-Lightning" @click="syncRegionMca" v-auth="'sysRegion/add'"> 同步国家地名信息库 </el-button>
<el-button type="danger" icon="ele-Lightning" @click="syncRegionTianditu" v-auth="'sysRegion/add'"> 同步天地图行政区划 </el-button>
</template>
<template #toolbar_tools> </template>
<template #empty>
@ -232,16 +233,22 @@ const handleNodeChange = async (node: any) => {
//
const syncRegionStats = async () => {
state.title = '同步国家统计局行政区域数据';
state.title = '同步国家统计局';
syncStatsParamRef.value?.openDialog();
};
//
const syncRegionMca = async () => {
state.title = '同步国家地名信息库行政区域数据';
state.title = '同步国家地名信息库';
syncMcaParamRef.value?.openDialog();
};
//
const syncRegionTianditu = async () => {
state.title = '同步天地图行政区划';
// syncTdtParamRef.value?.openDialog();
};
//
const genOrg = (row: any) => {
state.title = '生成/更新系统组织架构';