diff --git a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs
index d5b1fd21..869fd269 100644
--- a/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs
+++ b/ds-wms-service/DS.Module.Core/Constants/MultiLanguageConst.cs
@@ -275,6 +275,8 @@ public static class MultiLanguageConst
[Description("表单设置已存在")]
public const string FormSetExist = "Form_Set_Exist";
+ [Description("列表字段设置已存在")]
+ public const string ColumnSetExist = "Column_Set_Exist";
[Description("表单复制字段设置已存在")]
public const string FormCopyExist = "Form_Copy_Exist";
diff --git a/ds-wms-service/DS.Module.ExcelModule/DS.Module.ExcelModule.csproj b/ds-wms-service/DS.Module.ExcelModule/DS.Module.ExcelModule.csproj
new file mode 100644
index 00000000..b3971ede
--- /dev/null
+++ b/ds-wms-service/DS.Module.ExcelModule/DS.Module.ExcelModule.csproj
@@ -0,0 +1,14 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+
+
+
+
+
+
+
diff --git a/ds-wms-service/DS.Module.ExcelModule/ExcelModuleInstall.cs b/ds-wms-service/DS.Module.ExcelModule/ExcelModuleInstall.cs
new file mode 100644
index 00000000..32c825b7
--- /dev/null
+++ b/ds-wms-service/DS.Module.ExcelModule/ExcelModuleInstall.cs
@@ -0,0 +1,27 @@
+using Microsoft.Extensions.DependencyInjection;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.Module.ExcelModule
+{
+ ///
+ /// 注入Excel服务
+ ///
+ public static class ExcelModuleInstall
+ {
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static void AddExcelModuleInstall(this IServiceCollection services)
+ {
+ if (services == null) throw new ArgumentNullException(nameof(services));
+
+ services.AddScoped();
+ }
+ }
+}
diff --git a/ds-wms-service/DS.Module.ExcelModule/ExcelService.cs b/ds-wms-service/DS.Module.ExcelModule/ExcelService.cs
new file mode 100644
index 00000000..901e2131
--- /dev/null
+++ b/ds-wms-service/DS.Module.ExcelModule/ExcelService.cs
@@ -0,0 +1,82 @@
+using DS.Module.Core;
+using DS.Module.ExcelModule.Model;
+using LanguageExt.ClassInstances;
+using LanguageExt;
+using Microsoft.AspNet.SignalR.Hubs;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.DependencyInjection;
+using MiniExcelLibs;
+using Newtonsoft.Json.Linq;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.Module.ExcelModule
+{
+ public class ExcelService : IExcelService
+ {
+ private readonly IServiceProvider _serviceProvider;
+ private readonly ISqlSugarClient db;
+
+ ///
+ /// 构造函数
+ ///
+ ///
+ public ExcelService(IServiceProvider serviceProvider)
+ {
+ _serviceProvider = serviceProvider;
+ db = _serviceProvider.GetRequiredService();
+
+ }
+ public DataResult ExportExcelByColumn(ExportByColumnReq req)
+ {
+ var filename = Guid.NewGuid() + ".xlsx";
+ //var path = Path.Combine(_environment.WebRootPath, "export/" + filename);
+ var path = Path.Combine("", "wwwroot/export/" + filename);
+ var data = JArray.Parse(req.JsonDataStr);
+
+ var values = new List>();
+
+ for (int i = 0; i < data.Count; i++)
+ {
+ var temp = data[i];
+ var info = new Dictionary();
+ for (int n = 0; n < req.ColumnSets.Count; n++)
+ {
+ var columnSet = req.ColumnSets[n];
+ var key = columnSet.DataIndex;
+ // var info = new Dictionary
+ //{
+ // { columnSet.Title, temp[key] },
+ //};
+ info.Add(columnSet.Title, temp[key]);
+ }
+ values.Add(info);
+ }
+ MiniExcel.SaveAs(path, values);
+ return DataResult.Success(path);
+ //var memoryStream = new MemoryStream();
+ //memoryStream.SaveAs(values);
+ //memoryStream.Seek(0, SeekOrigin.Begin);
+ //return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+ //{
+ // FileDownloadName = filename
+ //};
+ //using (var memoryStream = new MemoryStream())
+ //{
+ // memoryStream.SaveAs(values);
+ // memoryStream.Seek(0, SeekOrigin.Begin);
+ // return new FileStreamResult(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
+ // {
+ // FileDownloadName = filename
+ // };
+ //}
+ //MiniExcel.SaveAs(path, values);
+
+ //throw new NotImplementedException();
+ }
+ }
+}
diff --git a/ds-wms-service/DS.Module.ExcelModule/IExcelService.cs b/ds-wms-service/DS.Module.ExcelModule/IExcelService.cs
new file mode 100644
index 00000000..a0bf8f7a
--- /dev/null
+++ b/ds-wms-service/DS.Module.ExcelModule/IExcelService.cs
@@ -0,0 +1,21 @@
+using DS.Module.Core;
+using DS.Module.ExcelModule.Model;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.Module.ExcelModule
+{
+ public interface IExcelService
+ {
+ ///
+ /// 根据用户列导出Excel数据
+ ///
+ /// 请求数据
+ ///
+ public DataResult ExportExcelByColumn(ExportByColumnReq req);
+ }
+}
diff --git a/ds-wms-service/DS.Module.ExcelModule/Model/ExportByColumnReq.cs b/ds-wms-service/DS.Module.ExcelModule/Model/ExportByColumnReq.cs
new file mode 100644
index 00000000..ce38e5b1
--- /dev/null
+++ b/ds-wms-service/DS.Module.ExcelModule/Model/ExportByColumnReq.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.Module.ExcelModule.Model
+{
+ ///
+ /// 按自定义列导出Excel
+ ///
+ public class ExportByColumnReq
+ {
+ ///
+ /// 用户自定义列设置
+ ///
+ public List ColumnSets { get; set; }
+
+
+ ///
+ /// Json数据
+ ///
+ public string JsonDataStr { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.Module.ExcelModule/Model/UserColumnSet.cs b/ds-wms-service/DS.Module.ExcelModule/Model/UserColumnSet.cs
new file mode 100644
index 00000000..3c38f24b
--- /dev/null
+++ b/ds-wms-service/DS.Module.ExcelModule/Model/UserColumnSet.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.Module.ExcelModule.Model
+{
+ ///
+ /// 用户自定义列设置
+ ///
+ public class UserColumnSet
+ {
+ ///
+ /// 列头显示文字
+ ///
+ public string Title { get; set; }
+
+ ///
+ /// 列头显示文字- 英文
+ ///
+ public string EnTitle { get; set; }
+
+ ///
+ /// 数据索引
+ ///
+ public string DataIndex { get; set; }
+ ///
+ /// 是否可见
+ ///
+
+ public bool Visible { get; set; }
+
+ }
+}
diff --git a/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj b/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj
index 6c205832..806eee11 100644
--- a/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj
+++ b/ds-wms-service/DS.Module.Nuget/DS.Module.Nuget.csproj
@@ -22,6 +22,7 @@
+
diff --git a/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormCopyReq.cs b/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormCopyReq.cs
index e0e3f907..4c3d462c 100644
--- a/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormCopyReq.cs
+++ b/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormCopyReq.cs
@@ -26,6 +26,10 @@ public class CodeFormCopyReq
///
public string Content { get; set; }
///
+ /// 是否公共标识
+ ///
+ public bool IsPublic { get; set; } = false;
+ ///
/// 模板名称
///
public string TemplateName { get; set; }
diff --git a/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetReq.cs b/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetReq.cs
index 3312229a..1cf09190 100644
--- a/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetReq.cs
+++ b/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetReq.cs
@@ -25,15 +25,14 @@ public class CodeFormSetReq
/// 模板名称
///
public string TemplateName { get; set; }
+ /////
+ ///// 中文视图名
+ /////
+ //public string ColumnView { get; set; }
///
- /// 中文视图名
+ /// 表单序号
///
- public string ColumnView { get; set; }
- ///
- /// 是否公共标识
- ///
- public bool IsPublic { get; set; } = false;
-
+ public int FormNo { get; set; } = 0;
///
/// 表单设置
///
diff --git a/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetRes.cs b/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetRes.cs
index 769f9932..e4cc974c 100644
--- a/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetRes.cs
+++ b/ds-wms-service/DS.WMS.Core/Code/Dtos/CodeFormSetRes.cs
@@ -7,12 +7,11 @@ namespace DS.WMS.Core.Code.Dtos;
/// 租户表单设置返回实体
///
public class CodeFormSetRes
-{
-
+{
///
/// 主键Id
///
- public long Id { get; set; }
+ public long Id { get; set; }
///
/// 权限Id
///
@@ -21,12 +20,20 @@ public class CodeFormSetRes
/// 权限模块名称
///
public string PermissionName { get; set; }
+ /////
+ ///// 中文视图名
+ /////
+ //public string ColumnView { get; set; }
///
- /// 中文视图名
+ /// 表单序号
///
- public string ColumnView { get; set; }
+ public int FormNo { get; set; } = 0;
///
- /// 字段设置
+ /// 表单默认设置
+ ///
+ public string DefaultContent { get; set; }
+ ///
+ /// 表单设置
///
public string Content { get; set; }
///
diff --git a/ds-wms-service/DS.WMS.Core/Code/Dtos/ColumnSetReq.cs b/ds-wms-service/DS.WMS.Core/Code/Dtos/ColumnSetReq.cs
new file mode 100644
index 00000000..be7927fc
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Code/Dtos/ColumnSetReq.cs
@@ -0,0 +1,76 @@
+using DS.Module.Core;
+using FluentValidation;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Code.Dtos
+{
+ ///
+ /// 列表字段设置请求
+ ///
+ public class ColumnSetReq
+ {
+ ///
+ /// 主键Id
+ ///
+ public long Id { get; set; }
+
+ ///
+ /// 权限Id
+ ///
+ public long? PermissionId { get; set; }
+ ///
+ /// 列表序号
+ ///
+ public int ColumnNo { get; set; } = 0;
+ ///
+ /// 权限模块名称
+ ///
+ public string PermissionName { get; set; }
+ ///
+ /// 模板名称
+ ///
+ public string TemplateName { get; set; }
+
+ ///
+ /// 列表设置
+ ///
+ public string Content { get; set; }
+
+
+ ///
+ /// 排序
+ ///
+ public int? OrderNo { get; set; } = 100;
+ ///
+ /// 状态 0 启用 1 禁用
+ ///
+ public StatusEnum? Status { get; set; } = StatusEnum.Enable;
+ ///
+ /// 备注
+ ///
+ public string Note { get; set; } = "";
+ }
+ ///
+ /// 验证
+ ///
+ public class ColumnSetReqValidator : AbstractValidator
+ {
+ ///
+ /// 构造函数
+ ///
+ public ColumnSetReqValidator()
+ {
+ this.RuleFor(o => o.PermissionId)
+ .NotEmpty().WithName("权限模块Id");
+ this.RuleFor(o => o.TemplateName)
+ .NotEmpty().WithName("模板名称");
+ this.RuleFor(o => o.Content)
+ .NotEmpty().WithName("列表设置");
+ }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Code/Dtos/ColumnSetRes.cs b/ds-wms-service/DS.WMS.Core/Code/Dtos/ColumnSetRes.cs
new file mode 100644
index 00000000..554b7bfe
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Code/Dtos/ColumnSetRes.cs
@@ -0,0 +1,65 @@
+using DS.Module.Core;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace DS.WMS.Core.Code.Dtos
+{
+ ///
+ /// 列表字段设置返回
+ ///
+ public class ColumnSetRes
+ {
+ ///
+ /// 主键Id
+ ///
+ public long Id { get; set; }
+
+ ///
+ /// 权限Id
+ ///
+ public long? PermissionId { get; set; }
+ ///
+ /// 列表序号
+ ///
+ public int ColumnNo { get; set; } = 0;
+ ///
+ /// 权限模块名称
+ ///
+ public string PermissionName { get; set; }
+ ///
+ /// 模板名称
+ ///
+ public string TemplateName { get; set; }
+
+ ///
+ /// 列表默认设置
+ ///
+ public string DefaultContent { get; set; }
+
+ ///
+ /// 列表设置
+ ///
+ public string Content { get; set; }
+
+
+ ///
+ /// 排序
+ ///
+ public int? OrderNo { get; set; } = 100;
+ ///
+ /// 状态 0 启用 1 禁用
+ ///
+ public StatusEnum? Status { get; set; } = StatusEnum.Enable;
+ ///
+ /// 备注
+ ///
+ public string Note { get; set; } = "";
+ ///
+ /// 创建时间
+ ///
+ public DateTime CreateTime { get; set; }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.Core/Code/Entity/CodeColumnSet.cs b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeColumnSet.cs
new file mode 100644
index 00000000..4b32f209
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeColumnSet.cs
@@ -0,0 +1,57 @@
+using DS.Module.Core;
+using DS.Module.Core.Data;
+using SqlSugar;
+
+namespace DS.WMS.Core.Code.Entity;
+
+///
+/// 租户列表字段设置
+///
+[SqlSugar.SugarTable("op_code_column_set", "租户列表字段设置")]
+public class CodeColumnSet : BaseOrgModel
+{
+ ///
+ /// 权限Id
+ ///
+ [SugarColumn(ColumnDescription = "权限Id", IsNullable = false)]
+ public long? PermissionId { get; set; }
+ ///
+ /// 列表序号
+ ///
+ [SugarColumn(ColumnDescription = "列表序号", IsNullable = false, DefaultValue = "0")]
+ public int ColumnNo { get; set; } = 0;
+ ///
+ /// 权限模块名称
+ ///
+ [SugarColumn(ColumnDescription = "权限模块名称", IsNullable = false, Length = 50)]
+ public string PermissionName { get; set; }
+
+ ///
+ /// 模板名称
+ ///
+ [SugarColumn(ColumnDescription = "模板名称", IsNullable = false, Length = 50)]
+ public string TemplateName { get; set; }
+
+ ///
+ /// 列表字段默认设置
+ ///
+ [SugarColumn(ColumnDescription = "列表字段默认设置", IsNullable = true, ColumnDataType = StaticConfig.CodeFirst_BigString)]
+ public string DefaultContent { get; set; }
+ ///
+ /// 列表字段设置
+ ///
+ [SugarColumn(ColumnDescription = "列表字段设置", IsNullable = true, ColumnDataType=StaticConfig.CodeFirst_BigString)]
+ public string Content { get; set; }
+
+
+ ///
+ /// 排序号
+ ///
+ [SugarColumn(ColumnDescription = "排序号", IsNullable = true, DefaultValue = "100")]
+ public int? OrderNo { get; set; } = 100;
+ ///
+ /// 状态
+ ///
+ [SqlSugar.SugarColumn(ColumnDescription = "状态")]
+ public StatusEnum? Status { get; set; } = StatusEnum.Enable;
+}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs
index 574f0c87..8ba6e709 100644
--- a/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs
+++ b/ds-wms-service/DS.WMS.Core/Code/Entity/CodeFormSet.cs
@@ -20,18 +20,27 @@ public class CodeFormSet : BaseOrgModel
///
[SugarColumn(ColumnDescription = "权限模块名称", IsNullable = false,Length = 50)]
public string PermissionName { get; set; }
-
///
- /// 中文视图名
+ /// 表单序号
///
- [SugarColumn(ColumnDescription = "中文视图名", IsNullable = false, Length = 100)]
- public string ColumnView { get; set; }
+ [SugarColumn(ColumnDescription = "表单序号", IsNullable = false, DefaultValue = "0")]
+ public int FormNo { get; set; } = 0;
+ /////
+ ///// 中文视图名
+ /////
+ //[SugarColumn(ColumnDescription = "中文视图名", IsNullable = false, Length = 100)]
+ //public string ColumnView { get; set; }
///
/// 模板名称
///
[SugarColumn(ColumnDescription = "模板名称", IsNullable = false, Length = 50)]
public string TemplateName { get; set; }
///
+ /// 表单默认设置
+ ///
+ [SugarColumn(ColumnDescription = "表单默认设置", IsNullable = true, ColumnDataType = StaticConfig.CodeFirst_BigString)]
+ public string DefaultContent { get; set; }
+ ///
/// 表单设置
///
[SugarColumn(ColumnDescription = "表单设置", IsNullable = true, ColumnDataType=StaticConfig.CodeFirst_BigString)]
diff --git a/ds-wms-service/DS.WMS.Core/Code/Interface/IColumnSetService.cs b/ds-wms-service/DS.WMS.Core/Code/Interface/IColumnSetService.cs
new file mode 100644
index 00000000..1bde25c1
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Code/Interface/IColumnSetService.cs
@@ -0,0 +1,42 @@
+using DS.Module.Core;
+using DS.WMS.Core.Code.Dtos;
+using DS.WMS.Core.System.Dtos;
+
+namespace DS.WMS.Core.Code.Interface;
+
+///
+///
+///
+public interface IColumnSetService
+{
+ ///
+ /// 列表
+ ///
+ ///
+ ///
+ DataResult> GetListByPage(PageRequest request);
+
+
+ ///
+ /// 编辑
+ ///
+ ///
+ ///
+ DataResult EditColumnSet(ColumnSetReq model);
+
+ ///
+ /// 获取详情
+ ///
+ ///
+ ///
+ DataResult GetColumnSetInfo(string id);
+
+ ///
+ /// 按模块获取列表设置详情
+ ///
+ /// 权限模块id
+ /// 列表序号
+ ///
+ DataResult GetColumnSetInfoByModule(string permissionId,int columnNo = 0);
+
+}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs b/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs
index ea981d4a..93c2e713 100644
--- a/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs
+++ b/ds-wms-service/DS.WMS.Core/Code/Interface/IFormSetService.cs
@@ -31,6 +31,14 @@ public interface IFormSetService
///
DataResult GetFormSetInfo(string id);
+ ///
+ /// 根据权限模块和表单序号获取详情
+ ///
+ /// 权限模块id
+ /// 表单序号
+ ///
+
+ public DataResult GetFormSetInfoByModule(string permissionId, int formNo = 0);
+
-
}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs b/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs
index 5ba92dbc..e6287fe5 100644
--- a/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs
+++ b/ds-wms-service/DS.WMS.Core/Code/Method/CodeFormSetService.cs
@@ -14,6 +14,9 @@ using SqlSugar;
namespace DS.WMS.Core.Code.Method;
+///
+///
+///
public class CodeFormSetService : IFormSetService
{
private readonly IServiceProvider _serviceProvider;
@@ -60,13 +63,13 @@ public class CodeFormSetService : IFormSetService
if (req.Id == 0)
{
if (tenantDb.Queryable()
- .Where(x => x.OrgId == user.GetOrgId() && x.PermissionId == req.PermissionId).Any())
+ .Where(x => x.OrgId == user.GetOrgId() && x.PermissionId == req.PermissionId && x.FormNo == req.FormNo).Any())
{
return DataResult.Failed("表单设置已存在!", MultiLanguageConst.FormSetExist);
}
var data = req.Adapt();
-
+ data.DefaultContent = req.Content;
var entity = tenantDb.Insertable(data).ExecuteReturnEntity();
return DataResult.Successed("添加成功!", entity.Id, MultiLanguageConst.DataCreateSuccess);
@@ -77,7 +80,7 @@ public class CodeFormSetService : IFormSetService
info = req.Adapt(info);
- tenantDb.Updateable(info).IgnoreColumns(ignoreAllNullColumns: true).EnableDiffLogEvent().ExecuteCommand();
+ tenantDb.Updateable(info).IgnoreColumns("DefaultContent").IgnoreColumns(ignoreAllNullColumns: true).EnableDiffLogEvent().ExecuteCommand();
return DataResult.Successed("更新成功!", MultiLanguageConst.DataUpdateSuccess);
}
}
@@ -91,10 +94,27 @@ public class CodeFormSetService : IFormSetService
{
var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
var data = tenantDb.Queryable()
- .Where(x => x.Id == long.Parse(id))
+ .Where(x => x.Id == long.Parse(id) && x.Status == StatusEnum.Enable)
+ .Select()
+ .First();
+ return DataResult.Success(data, MultiLanguageConst.DataQuerySuccess);
+ }
+
+ ///
+ /// 根据权限模块和表单序号获取详情
+ ///
+ ///
+ ///
+ ///
+
+ public DataResult GetFormSetInfoByModule(string permissionId, int formNo = 0)
+ {
+ var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
+ var data = tenantDb.Queryable()
+ .Where(x => x.PermissionId == long.Parse(permissionId) && x.FormNo == formNo && x.Status == StatusEnum.Enable)
.Select()
.First();
return DataResult.Success(data, MultiLanguageConst.DataQuerySuccess);
}
-
+
}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.Core/Code/Method/ColumnSetService.cs b/ds-wms-service/DS.WMS.Core/Code/Method/ColumnSetService.cs
new file mode 100644
index 00000000..899d2200
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Core/Code/Method/ColumnSetService.cs
@@ -0,0 +1,112 @@
+using DS.Module.Core;
+using DS.Module.Core.Extensions;
+using DS.Module.SqlSugar;
+using DS.Module.UserModule;
+using DS.WMS.Core.Code.Dtos;
+using DS.WMS.Core.Code.Entity;
+using DS.WMS.Core.Code.Interface;
+using Mapster;
+using Microsoft.Extensions.DependencyInjection;
+using SqlSugar;
+namespace DS.WMS.Core.Code.Method
+{
+ ///
+ ///
+ ///
+ public class ColumnSetService : IColumnSetService
+ {
+ private readonly IServiceProvider _serviceProvider;
+ private readonly ISqlSugarClient db;
+ private readonly IUser user;
+ private readonly ISaasDbService saasService;
+ ///
+ ///
+ ///
+ ///
+ public ColumnSetService(IServiceProvider serviceProvider)
+ {
+ _serviceProvider = serviceProvider;
+ db = _serviceProvider.GetRequiredService();
+ user = _serviceProvider.GetRequiredService();
+ saasService = _serviceProvider.GetRequiredService();
+ }
+ ///
+ /// 编辑
+ ///
+ ///
+ ///
+ public DataResult EditColumnSet(ColumnSetReq req)
+ {
+ var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
+ //var orgId = user.GetOrgId();
+ if (req.Id == 0)
+ {
+ if (tenantDb.Queryable()
+ .Where(x => x.ColumnNo == req.ColumnNo && x.PermissionId == req.PermissionId).Any())
+ {
+ return DataResult.Failed("列表字段设置已存在!", MultiLanguageConst.ColumnSetExist);
+ }
+
+ var data = req.Adapt();
+ data.DefaultContent = req.Content;
+
+ var entity = tenantDb.Insertable(data).ExecuteReturnEntity();
+
+ return DataResult.Successed("添加成功!", entity.Id, MultiLanguageConst.DataCreateSuccess);
+ }
+ else
+ {
+ var info = tenantDb.Queryable().Where(x => x.Id == req.Id).First();
+
+ info = req.Adapt(info);
+
+ tenantDb.Updateable(info).IgnoreColumns("DefaultContent").IgnoreColumns(ignoreAllNullColumns: true).EnableDiffLogEvent().ExecuteCommand();
+ return DataResult.Successed("更新成功!", MultiLanguageConst.DataUpdateSuccess);
+ }
+ }
+ ///
+ /// 详情
+ ///
+ ///
+ ///
+ public DataResult GetColumnSetInfo(string id)
+ {
+ var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
+ var data = tenantDb.Queryable()
+ .Where(x => x.Id == long.Parse(id) && x.Status == StatusEnum.Enable)
+ .Select()
+ .First();
+ return DataResult.Success(data, MultiLanguageConst.DataQuerySuccess);
+ }
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public DataResult GetColumnSetInfoByModule(string permissionId, int columnNo = 0)
+ {
+ var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
+ var data = tenantDb.Queryable()
+ .Where(x => x.PermissionId == long.Parse(permissionId) && x.ColumnNo == columnNo && x.Status == StatusEnum.Enable)
+ .Select()
+ .First();
+ return DataResult.Success(data, MultiLanguageConst.DataQuerySuccess);
+ }
+ ///
+ /// 列表
+ ///
+ ///
+ ///
+ public DataResult> GetListByPage(PageRequest request)
+ {
+ var tenantDb = saasService.GetBizDbScopeById(user.TenantId);
+ //序列化查询条件
+ var whereList = db.ConfigQuery.Context.Utilities.JsonToConditionalModels(request.QueryCondition);
+ var data = tenantDb.Queryable()
+ .Where(whereList)
+ .Select().ToQueryPage(request.PageCondition);
+ return data;
+ }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/ColumnSetController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/ColumnSetController.cs
new file mode 100644
index 00000000..859ce73b
--- /dev/null
+++ b/ds-wms-service/DS.WMS.MainApi/Controllers/ColumnSetController.cs
@@ -0,0 +1,78 @@
+using DS.Module.Core;
+using DS.WMS.Core.Code.Dtos;
+using DS.WMS.Core.Code.Interface;
+using DS.WMS.Core.System.Dtos;
+using DS.WMS.Core.System.Interface;
+using Microsoft.AspNetCore.Mvc;
+
+namespace DS.WMS.MainApi.Controllers;
+
+///
+/// 列表字段设置 模块
+///
+public class ColumnSetController : ApiController
+{
+ private readonly IColumnSetService _invokeService;
+
+ ///
+ /// 构造函数
+ ///
+ ///
+ public ColumnSetController(IColumnSetService invokeService)
+ {
+ _invokeService = invokeService;
+ }
+
+ ///
+ /// 列表
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("GetColumnSetList")]
+ public DataResult> GetColumnSetList([FromBody] PageRequest request)
+ {
+ var res = _invokeService.GetListByPage(request);
+ return res;
+ }
+
+ ///
+ /// 编辑
+ ///
+ ///
+ ///
+ [HttpPost]
+ [Route("EditColumnSet")]
+ public DataResult EditColumnSet([FromBody] ColumnSetReq req)
+ {
+ var res = _invokeService.EditColumnSet(req);
+ return res;
+ }
+
+ ///
+ /// 详情
+ ///
+ /// Id
+ ///
+ [HttpGet]
+ [Route("GetColumnSetInfo")]
+ public DataResult GetColumnSetInfo([FromQuery] string id)
+ {
+ var res = _invokeService.GetColumnSetInfo(id);
+ return res;
+ }
+ ///
+ /// 按模块获取列表设置详情
+ ///
+ /// 权限模块id
+ /// 列表序号
+ ///
+ [HttpGet]
+ [Route("GetColumnSetInfoByModule")]
+ public DataResult GetColumnSetInfoByModule([FromQuery] string permissionId, int columnNo = 0)
+ {
+ var res = _invokeService.GetColumnSetInfoByModule(permissionId, columnNo);
+ return res;
+ }
+
+}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/ExcelController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/ExcelController.cs
new file mode 100644
index 00000000..e89fd00a
--- /dev/null
+++ b/ds-wms-service/DS.WMS.MainApi/Controllers/ExcelController.cs
@@ -0,0 +1,38 @@
+using DS.Module.Core;
+using DS.Module.ExcelModule;
+using DS.Module.ExcelModule.Model;
+using DS.WMS.Core.Code.Interface;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+
+namespace DS.WMS.MainApi.Controllers
+{
+ ///
+ /// Excel服务 模块
+ ///
+ public class ExcelController : ApiController
+ {
+ private readonly IExcelService _invokeService;
+
+ ///
+ /// 构造函数
+ ///
+ ///
+ public ExcelController(IExcelService invokeService)
+ {
+ _invokeService = invokeService;
+ }
+
+ ///
+ /// 根据用户列导出Excel数据
+ ///
+ /// 请求数据
+ ///
+ [HttpPost]
+ [Route("ExportExcelByColumn")]
+ public DataResult ExportExcelByColumn([FromBody] ExportByColumnReq req)
+ {
+ return _invokeService.ExportExcelByColumn(req);
+ }
+ }
+}
diff --git a/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs b/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs
index ae8c521a..059e61ae 100644
--- a/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs
+++ b/ds-wms-service/DS.WMS.MainApi/Controllers/FormSetController.cs
@@ -61,6 +61,18 @@ public class FormSetController : ApiController
var res = _invokeService.GetFormSetInfo(id);
return res;
}
+ ///
+ /// 按模块获取表单设置详情
+ ///
+ /// 权限模块id
+ /// 表单序号
+ ///
+ [HttpGet]
+ [Route("GetFormSetInfoByModule")]
+ public DataResult GetFormSetInfoByModule([FromQuery] string permissionId, int formNo = 0)
+ {
+ var res = _invokeService.GetFormSetInfoByModule(permissionId, formNo);
+ return res;
+ }
-
}
\ No newline at end of file
diff --git a/ds-wms-service/DS.WMS.MainApi/DS.WMS.MainApi.csproj b/ds-wms-service/DS.WMS.MainApi/DS.WMS.MainApi.csproj
index 4459e722..56c0d7a0 100644
--- a/ds-wms-service/DS.WMS.MainApi/DS.WMS.MainApi.csproj
+++ b/ds-wms-service/DS.WMS.MainApi/DS.WMS.MainApi.csproj
@@ -30,6 +30,7 @@
+
@@ -38,4 +39,8 @@
+
+
+
+
diff --git a/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt b/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt
index b18ea192..f24ca8e5 100644
--- a/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt
+++ b/ds-wms-service/DS.WMS.MainApi/Logs/internal-nlog.txt
@@ -1132,3 +1132,59 @@
2024-04-08 17:44:13.6177 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
2024-04-08 17:44:13.6281 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
2024-04-08 17:44:13.6504 Info Configuration initialized.
+2024-04-11 14:26:33.5328 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-11 14:26:33.5589 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-11 14:26:33.5589 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-11 14:26:33.5861 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-11 14:26:33.5993 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-11 14:26:33.6058 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-11 14:26:33.6058 Info Configuration initialized.
+2024-04-11 17:35:17.4896 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-11 17:35:17.5158 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-11 17:35:17.5158 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-11 17:35:17.5395 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-11 17:35:17.5513 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-11 17:35:17.5513 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-11 17:35:17.5673 Info Configuration initialized.
+2024-04-12 15:12:59.6633 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-12 15:12:59.6949 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-12 15:12:59.7054 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-12 15:12:59.7414 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-12 15:12:59.7735 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-12 15:12:59.7847 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-12 15:12:59.8149 Info Configuration initialized.
+2024-04-12 15:31:48.7130 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-12 15:31:48.7653 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-12 15:31:48.7768 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-12 15:31:48.8098 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-12 15:31:48.8364 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-12 15:31:48.8459 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-12 15:31:48.8646 Info Configuration initialized.
+2024-04-12 15:53:18.3766 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-12 15:53:18.4282 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-12 15:53:18.4485 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-12 15:53:18.4940 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-12 15:53:18.5243 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-12 15:53:18.5426 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-12 15:53:18.5739 Info Configuration initialized.
+2024-04-12 16:01:47.4413 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-12 16:01:47.4813 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-12 16:01:47.4950 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-12 16:01:47.5266 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-12 16:01:47.5482 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-12 16:01:47.5482 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-12 16:01:47.5841 Info Configuration initialized.
+2024-04-12 16:17:59.7553 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-12 16:17:59.8108 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-12 16:17:59.8214 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-12 16:17:59.8484 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-12 16:17:59.8753 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-12 16:17:59.8898 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-12 16:17:59.9141 Info Configuration initialized.
+2024-04-12 16:21:31.4610 Info Registered target NLog.Targets.FileTarget(Name=allfile)
+2024-04-12 16:21:31.5101 Info Registered target NLog.Targets.FileTarget(Name=ownFile-web)
+2024-04-12 16:21:31.5288 Info Registered target NLog.Targets.ColoredConsoleTarget(Name=console)
+2024-04-12 16:21:31.5843 Info NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c. File version: 5.2.8.2366. Product version: 5.2.8+f586f1341c46fa38aaaff4c641e7f0fa7e813943. GlobalAssemblyCache: False
+2024-04-12 16:21:31.6323 Info Validating config: TargetNames=console, ownFile-web, ConfigItems=54, FilePath=D:\Code\DS\ds8-solution\ds-wms-service\DS.WMS.MainApi\bin\Debug\net8.0\nlog.config
+2024-04-12 16:21:31.6622 Warn Unused target detected. Add a rule for this target to the configuration. TargetName: allfile
+2024-04-12 16:21:31.7061 Info Configuration initialized.
diff --git a/ds-wms-service/DS.WMS.MainApi/Program.cs b/ds-wms-service/DS.WMS.MainApi/Program.cs
index bd4f573c..30032043 100644
--- a/ds-wms-service/DS.WMS.MainApi/Program.cs
+++ b/ds-wms-service/DS.WMS.MainApi/Program.cs
@@ -4,6 +4,7 @@ using DS.Module.AutofacModule;
using DS.Module.Core;
using DS.Module.Core.Extensions;
using DS.Module.Core.ServiceExtensions;
+using DS.Module.ExcelModule;
using DS.Module.Jwt;
using DS.Module.Middleware;
using DS.Module.MultiLanguage;
@@ -39,7 +40,7 @@ builder.Services.AddSwaggerInstall();
builder.Services.AddJwtInstall();
builder.Services.AddSaasDbInstall();//分库服务
builder.Services.AddMultiLanguageInstall();//多语言服务
-
+builder.Services.AddExcelModuleInstall();//Excel服务
// builder.Services.AddEndpointsApiExplorer();
// builder.Services.AddSwaggerGen();
diff --git a/ds-wms-service/DS.WMS.MainApi/wwwroot/export/b83d38dd-ba06-4fda-96d8-378628745343.xlsx b/ds-wms-service/DS.WMS.MainApi/wwwroot/export/b83d38dd-ba06-4fda-96d8-378628745343.xlsx
new file mode 100644
index 00000000..336355c0
Binary files /dev/null and b/ds-wms-service/DS.WMS.MainApi/wwwroot/export/b83d38dd-ba06-4fda-96d8-378628745343.xlsx differ
diff --git a/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj b/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj
index cae785ad..0cae444a 100644
--- a/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj
+++ b/ds-wms-service/DS.WMS.Test/DS.WMS.Test.csproj
@@ -27,6 +27,7 @@
+
diff --git a/ds-wms-service/DS.WMS.Test/ExcelTest.cs b/ds-wms-service/DS.WMS.Test/ExcelTest.cs
new file mode 100644
index 00000000..454bb148
--- /dev/null
+++ b/ds-wms-service/DS.WMS.Test/ExcelTest.cs
@@ -0,0 +1,70 @@
+using System.Reflection;
+using DS.Module.Core;
+using DS.Module.Core.Extensions;
+using DS.Module.ExcelModule.Model;
+using DS.Module.SqlSugar;
+using DS.WMS.Core.Code.Interface;
+using DS.WMS.Core.System.Entity;
+using DS.WMS.Core.System.Interface;
+using Microsoft.Extensions.DependencyInjection;
+using Newtonsoft.Json.Linq;
+using SqlSugar;
+using SqlSugar.IOC;
+using Xunit;
+
+namespace Ds.WMS.Test;
+
+public class ExcelTest
+{
+ private readonly IServiceProvider _serviceProvider;
+ private readonly SqlSugarScope db;
+ private readonly ISaasDbService saasService;
+ //private readonly IExcelService _ExcelService;
+ public ExcelTest(IServiceProvider serviceProvider)
+ {
+ _serviceProvider = serviceProvider;
+ db = (SqlSugarScope)_serviceProvider.GetRequiredService();
+ saasService = _serviceProvider.GetRequiredService();
+ //_ExcelService = _serviceProvider.GetRequiredService();
+ }
+
+
+ ///
+ /// ȡJsonӡϢ
+ ///
+ [Fact]
+ public void GetExportExcleInfo()
+ {
+ List set = new List();
+ set.Add(new UserColumnSet
+ {
+ DataIndex = "stlCode",
+ Title = "㷽ʽ",
+ });
+ set.Add(new UserColumnSet
+ {
+ DataIndex = "stlName",
+ Title = "㷽ʽ",
+ });
+ string JsonDataStr = "[{\"id\":\"1767428411736854528\",\"stlCode\":\"1\",\"stlName\":\"֧Ʊ\",\"enName\":\"Check\",\"financeSoftCode\":\"01\",\"status\":0,\"note\":\"\",\"createTime\":\"2024-03-12 13:52:25\"},{\"id\":\"1767428557304369152\",\"stlCode\":\"2\",\"stlName\":\"\",\"enName\":\"Remittance\",\"financeSoftCode\":\"02\",\"status\":0,\"note\":\"\",\"createTime\":\"2024-03-12 13:53:00\"}]";
+ var values = new List>();
+ var data = JArray.Parse(JsonDataStr);
+ for (int i = 0; i < data.Count; i++)
+ {
+ var temp = data[i];
+ for (int n = 0; n < set.Count; n++)
+ {
+ var columnSet = set[n];
+ var key = columnSet.DataIndex;
+ var info = new Dictionary
+ {
+ { columnSet.Title, temp[key] },
+ };
+ values.Add(info);
+ }
+ }
+ Console.WriteLine(values);
+ Assert.True(true);
+ }
+
+}
\ No newline at end of file
diff --git a/ds-wms-service/ds-wms-service.sln b/ds-wms-service/ds-wms-service.sln
index 89c929e5..7d8b7b74 100644
--- a/ds-wms-service/ds-wms-service.sln
+++ b/ds-wms-service/ds-wms-service.sln
@@ -35,8 +35,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ds.Module.DynamicApi", "Ds.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ds.Module.SignalR", "Ds.Module.SignalR\Ds.Module.SignalR.csproj", "{AF52EFD8-D42B-4420-B65B-BDC02C841BBD}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.TestResult", "DS.TestResult\DS.TestResult.csproj", "{47A9FC9F-0A3F-4A14-B60E-1B70C414DBEA}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Ds.Module.ResultFilter", "Ds.Module.ResultFilter\Ds.Module.ResultFilter.csproj", "{C1FD8E3A-980C-4227-B3D7-824C1529697C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.Module.Nuget", "DS.Module.Nuget\DS.Module.Nuget.csproj", "{B2CA3885-C3D5-4A67-AA1C-18EF0B80F3B6}"
@@ -69,7 +67,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.Module.Log", "DS.Module.
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.Module.Middleware", "DS.Module.Middleware\DS.Module.Middleware.csproj", "{B0351554-748F-4DF8-8C22-152646937EFE}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.Module.PrintModule", "DS.Module.PrintModule\DS.Module.PrintModule.csproj", "{F7ACC016-4181-4B26-9550-FB18A2053503}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DS.Module.PrintModule", "DS.Module.PrintModule\DS.Module.PrintModule.csproj", "{F7ACC016-4181-4B26-9550-FB18A2053503}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DS.Module.ExcelModule", "DS.Module.ExcelModule\DS.Module.ExcelModule.csproj", "{B4F32D53-749E-4019-BB41-DE64FC803C86}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -129,10 +129,6 @@ Global
{AF52EFD8-D42B-4420-B65B-BDC02C841BBD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AF52EFD8-D42B-4420-B65B-BDC02C841BBD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AF52EFD8-D42B-4420-B65B-BDC02C841BBD}.Release|Any CPU.Build.0 = Release|Any CPU
- {47A9FC9F-0A3F-4A14-B60E-1B70C414DBEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {47A9FC9F-0A3F-4A14-B60E-1B70C414DBEA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {47A9FC9F-0A3F-4A14-B60E-1B70C414DBEA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {47A9FC9F-0A3F-4A14-B60E-1B70C414DBEA}.Release|Any CPU.Build.0 = Release|Any CPU
{C1FD8E3A-980C-4227-B3D7-824C1529697C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C1FD8E3A-980C-4227-B3D7-824C1529697C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C1FD8E3A-980C-4227-B3D7-824C1529697C}.Release|Any CPU.ActiveCfg = Release|Any CPU
@@ -197,6 +193,10 @@ Global
{F7ACC016-4181-4B26-9550-FB18A2053503}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F7ACC016-4181-4B26-9550-FB18A2053503}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F7ACC016-4181-4B26-9550-FB18A2053503}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B4F32D53-749E-4019-BB41-DE64FC803C86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B4F32D53-749E-4019-BB41-DE64FC803C86}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B4F32D53-749E-4019-BB41-DE64FC803C86}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B4F32D53-749E-4019-BB41-DE64FC803C86}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -215,7 +215,6 @@ Global
{47195E8A-8E39-4575-AC53-8901710CB6CC} = {65D75DB2-12D5-4D1F-893D-9750905CE5E4}
{BC74BBAF-8959-4872-924A-D45B743ABDF2} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
{AF52EFD8-D42B-4420-B65B-BDC02C841BBD} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
- {47A9FC9F-0A3F-4A14-B60E-1B70C414DBEA} = {EB351D25-8071-4AE1-B981-EA52B5C2C06E}
{C1FD8E3A-980C-4227-B3D7-824C1529697C} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
{B2CA3885-C3D5-4A67-AA1C-18EF0B80F3B6} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
{5E1D485F-6569-4311-9D60-755D0BFB4CF7} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
@@ -232,6 +231,7 @@ Global
{739899DE-D41F-4083-94E1-EDA349344ECC} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
{B0351554-748F-4DF8-8C22-152646937EFE} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
{F7ACC016-4181-4B26-9550-FB18A2053503} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
+ {B4F32D53-749E-4019-BB41-DE64FC803C86} = {518DB9B5-80A8-4B2C-8570-52BD406458DE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {66115F23-94B4-43C0-838E-33B5CF77F788}