IdleResources
冉成楼 2025-04-23 13:26:10 +08:00
parent e9f4bf050a
commit 0eab749014
3 changed files with 40 additions and 8 deletions

View File

@ -35,6 +35,7 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<PackageReference Include="Moq" Version="4.13.1" />
<PackageReference Include="Npgsql.NetTopologySuite" Version="5.0.7" />
<PackageReference Include="NPinyin.Core" Version="3.0.0" />
<PackageReference Include="NPOI" Version="2.5.6" />
<PackageReference Include="NUnit" Version="3.13.1" />
<PackageReference Include="NUnit3TestAdapter" Version="3.17.0" />

View File

@ -12,6 +12,8 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NPinyin;
using Microsoft.International.Converters.PinYinConverter;
namespace OpenAuth.App
{
@ -139,16 +141,16 @@ namespace OpenAuth.App
public async Task<string> GetSequenceGen(decimal lat, decimal lng, string prefix)
{
var sql = $" SELECT bsm FROM shp_drone_community where ST_Within(st_geomfromtext('POINT({lng} {lat})',4326), geom) = 't'";
var sql = $" SELECT zldwdmid FROM shp_drone_community where ST_Within(st_geomfromtext('POINT({lng} {lat})',4326), geom) = 't'";
var model = await client.SqlQueryable<dynamic>(sql).FirstAsync();
string bizCode = "";
if (model != null)
{
string bsm = model.bsm;
var org = await client.Queryable<SysOrg>().FirstAsync(a => a.Id.ToString() == bsm);
string zldwdmid = model.zldwdmid;
var org = await client.Queryable<SysOrg>().FirstAsync(a => a.Id.ToString() == zldwdmid);
if (org != null)
{
bizCode = org.BizCode;
bizCode = org.BizCode+"-";
}
else
{
@ -161,11 +163,39 @@ namespace OpenAuth.App
bizCode = "";
}
var orderNumber = await _sequenceGenerator.NextAsync(
prefix,
$"{prefix}-{{0:00000}}");
var typeList = prefix.Split('-');
return bizCode + "-" + orderNumber;
var typeUper = "";
foreach (var type in typeList)
{
typeUper += GetPinyinFirstLetters(type) + "-";
}
//var orderNumber = await _sequenceGenerator.NextAsync(
// prefix,
// $"{prefix}-{{0:00000}}");
var orderNumber = await _sequenceGenerator.NextAsync(
typeUper,
$"{typeUper}{{0:00000}}");
return bizCode + orderNumber;
}
public static string GetPinyinFirstLetters(string chineseString)
{
StringBuilder sb = new StringBuilder();
foreach (var character in chineseString)
{
if (ChineseChar.IsValidChar(character)) // 检查是否为汉字
{
string fullPinyin = Pinyin.GetPinyin(character);
sb.Append(fullPinyin[0].ToString().ToUpper());
}
}
return sb.ToString();
}
}
}

View File

@ -125,6 +125,7 @@ namespace OpenAuth.WebApi.Controllers
/// <param name="prefix">前置类型</param>
/// <returns></returns>
[HttpGet]
[AllowAnonymous]
public async Task<Response<string>> GetSequenceGen(decimal lat, decimal lng,string prefix)
{
var result = new Response<string>();