Bläddra i källkod

1. 解决导入功能的以下bug:
1.1 当具有多个字典型字段时,若某行数据第一个字典值为空,则改行所有字典字段的值均未导入进去
2.2 当没有字典型字段时,有校验问题的数据行仍被错误的导入进去了

hwjmyz 10 månader sedan
förälder
incheckning
5658c5964e
1 ändrade filer med 9 tillägg och 5 borttagningar
  1. 9 5
      Admin.NET/Admin.NET.Web.Entry/wwwroot/template/Service.cs.vm

+ 9 - 5
Admin.NET/Admin.NET.Web.Entry/wwwroot/template/Service.cs.vm

@@ -12,6 +12,7 @@ using Mapster;
 using SqlSugar;
 using System.ComponentModel;
 using System.ComponentModel.DataAnnotations;
+using @(Model.NameSpace).Entity;
 namespace @(Model.NameSpace);
 
 /// <summary>
@@ -328,19 +329,21 @@ public class @(Model.ClassName)Service : IDynamicApiController, ITransient
                     @:
                     @:// 映射字典值
                     @:foreach(var item in pageItems) {
+                        @:System.Text.StringBuilder sbError = new System.Text.StringBuilder();
                         foreach (var column in dictTableField) {
-                        @:if (string.IsNullOrWhiteSpace(item.@(column.ExtendedPropertyName))) continue;
-                        @:item.@(column.PropertyName) = @(column.LowerPropertyName)DictMap.GetValueOrDefault(item.@(column.ExtendedPropertyName));
-                        @:if (item.@(column.PropertyName) == null) item.Error = "@(column.ColumnComment)字典映射失败";
+                        @:if (!string.IsNullOrWhiteSpace(item.@(column.ExtendedPropertyName))) {
+                            @:item.@(column.PropertyName) = @(column.LowerPropertyName)DictMap.GetValueOrDefault(item.@(column.ExtendedPropertyName));
+                            @:if (item.@(column.PropertyName) == null) sbError.AppendLine("@(column.ColumnComment)字典映射失败");
+                        @:}
                         }
+                        @:item.Error = sbError.ToString();
                     @:}
-                    }
 
                     @:
                     @:// 校验并过滤必填基本类型为null的字段
                     @:var rows = pageItems.Where(x => {
-                        foreach (var column in Model.ImportFieldList.Where(x => x.WhetherRequired == "Y" && Regex.IsMatch(x.NetType, "(int|long|double|float|bool|Enum[?]?)"))){
                         @:if (!string.IsNullOrWhiteSpace(x.Error)) return false;
+                        foreach (var column in Model.ImportFieldList.Where(x => x.WhetherRequired == "Y" && Regex.IsMatch(x.NetType, "(int|long|double|float|bool|Enum[?]?)"))){
                         @:if (x.@(column.PropertyName) == null){
                             @:x.Error = "@(column.ColumnComment)不能为空";
                             @:return false;
@@ -394,4 +397,5 @@ public class @(Model.ClassName)Service : IDynamicApiController, ITransient
         @:}
     @:}
     }
+@:}
 }