浏览代码

省编号生成修改 优化判断方式 增加编号生成规则 绑定系统配置

田爽 8 月之前
父节点
当前提交
83b3c5c9fd
共有 2 个文件被更改,包括 16 次插入8 次删除
  1. 10 7
      src/Hotline/Orders/OrderDomainService.cs
  2. 6 1
      src/Hotline/Settings/SettingConstants.cs

+ 10 - 7
src/Hotline/Orders/OrderDomainService.cs

@@ -19,6 +19,7 @@ using Hotline.Share.Dtos;
 using Hotline.Settings.Hotspots;
 using Hotline.Share.Dtos.FlowEngine;
 using Microsoft.AspNetCore.Http;
+using Hotline.Settings;
 
 namespace Hotline.Orders;
 
@@ -112,8 +113,8 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         order.Init();
         order.No = GenerateNewOrderNo();
         order.Password = Random.Shared.Next(100000, 1000000).ToString();
-        order.ProvinceNo ??= GenerateNewProvinceNo(order.No, order.SourceChannelCode);
-        return await _orderRepository.AddOrderNavAsync(order, cancellationToken);
+		order.ProvinceNo = string.IsNullOrEmpty(order.ProvinceNo) ? GenerateNewProvinceNo(order.No, order.SourceChannelCode) : order.ProvinceNo;
+		return await _orderRepository.AddOrderNavAsync(order, cancellationToken);
     }
 
     /// <summary>
@@ -434,23 +435,25 @@ public class OrderDomainService : IOrderDomainService, IScopeDependency
         return no;
     }
 
-    private string GenerateNewProvinceNo(string no, string sourceChannelCode)
+    private string GenerateNewProvinceNo(string no, string sourceChannelCode,string areaCode)
     {
         //诉求渠道+成员单位标识+行政区划代码+年月日+流水号
         //成员单位标识  99
         //宜宾市 511500  市级
         var today = DateTime.Today;
-        //var count = no.Substring(no.Length - 5);
+		//var count = no.Substring(no.Length - 5);
+		var setting = _systemSettingCacheManager.GetSetting(SettingConstants.VersionsAreaCode);
+        var versionsAreaCode = setting?.SettingValue[0];
 
-        //todo 双系统并行暂时执行此方案
-        var count = no.Substring(no.Length - 4);
+		//todo 双系统并行暂时执行此方案
+		var count = no.Substring(no.Length - 4);
         count = (Convert.ToInt32(count) + 50000).ToString();
 
         var provinceCodes = new[] { "RGDH", "WX", "WB", "AP", "WZ", "YJ", "SCZWFWW", "XCX", "QT" };
         var prefix = provinceCodes.Any(d => d.Equals(sourceChannelCode))
             ? sourceChannelCode
             : "QT";
-        return $"{prefix}99511500{today:yyMMdd}{count}";
+        return $"{prefix}99{versionsAreaCode}{today:yyMMdd}{count}";
     }
 
 

+ 6 - 1
src/Hotline/Settings/SettingConstants.cs

@@ -379,5 +379,10 @@ namespace Hotline.Settings
         /// 是否开启应急管理局推送业务
         /// </summary>
         public const string IsOpenContingencyManagement = "IsOpenContingencyManagement";
-    }
+
+		/// <summary>
+		/// 系统版本地区
+		/// </summary>
+		public const string VersionsAreaCode = "VersionsAreaCode";
+	}
 }