diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
index 54dd860f..f869a0d6 100644
--- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
+++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml
@@ -6207,6 +6207,20 @@
+
+
+ 合并属性
+
+
+
+
+
+
+ 按450个字开始分组
+
+
+
+
上传文件
diff --git a/src/WMS.Web.Domain/Services/Public/SendMessageService.cs b/src/WMS.Web.Domain/Services/Public/SendMessageService.cs
index 36bf59da..650bcdbe 100644
--- a/src/WMS.Web.Domain/Services/Public/SendMessageService.cs
+++ b/src/WMS.Web.Domain/Services/Public/SendMessageService.cs
@@ -265,7 +265,16 @@ namespace WMS.Web.Domain.Services
if (!sms_result.IsSuccess && sms_result.Message == "isv.PARAM_LENGTH_LIMIT")
{
//分段发送:以字数480长度分段
- var contentParts = this.SplitContent(content, 480);
+ //var contentParts = this.SplitContent(content, 480);
+ //foreach (var partContent in contentParts)
+ //{
+ // this.SendSms(item.PhoneNumbers, partContent);
+ //}
+
+ //1.先合并属性:规格和数量
+ var materials= this.MergeProperties(item.Details);
+ //2.按450个字分组成多个字符串集合
+ var contentParts = this.MergeStrings(materials);
foreach (var partContent in contentParts)
{
this.SendSms(item.PhoneNumbers, partContent);
@@ -313,5 +322,51 @@ namespace WMS.Web.Domain.Services
}
return parts;
}
+
+ ///
+ /// 合并属性
+ ///
+ ///
+ ///
+ public List MergeProperties(List details)
+ {
+ List result = new List();
+ foreach (var det in details)
+ {
+ result.Add($"{det.Specifications} 数量{Convert.ToInt32(det.Qty)}");
+ }
+ return result;
+ }
+
+ ///
+ /// 按450个字开始分组
+ ///
+ ///
+ ///
+ public List MergeStrings(List strings)
+ {
+ List result = new List();
+ StringBuilder currentGroup = new StringBuilder();
+
+ foreach (var str in strings)
+ {
+ if (currentGroup.Length + str.Length > 450)
+ {
+ // 当前字符串超过50个字符,将当前分组加入结果集并重置currentGroup
+ result.Add(currentGroup.ToString());
+ currentGroup.Clear();
+ }
+
+ // 添加当前字符串到当前分组
+ currentGroup.Append(str);
+ }
+
+ // 添加最后一个分组
+ if (currentGroup.Length > 0)
+ {
+ result.Add(currentGroup.ToString());
+ }
+ return result;
+ }
}
}