Initial_commit_SecMPS_v2
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
/*
|
||||
*所有关于FormCollectionObject类的业务代码应在此处编写
|
||||
*可使用repository.调用常用方法,获取EF/Dapper等信息
|
||||
*如果需要事务请使用repository.DbContextBeginTransaction
|
||||
*也可使用DBServerProvider.手动获取数据库相关信息
|
||||
*用户信息、权限、角色等使用UserContext.Current操作
|
||||
*FormCollectionObjectService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
|
||||
*/
|
||||
using VolPro.Core.BaseProvider;
|
||||
using VolPro.Core.Extensions.AutofacManager;
|
||||
using VolPro.Entity.DomainModels;
|
||||
using System.Linq;
|
||||
using VolPro.Core.Utilities;
|
||||
using System.Linq.Expressions;
|
||||
using VolPro.Core.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using VolPro.Sys.IRepositories;
|
||||
using System.Collections.Generic;
|
||||
using VolPro.Core.Configuration;
|
||||
using VolPro.Core.Services;
|
||||
using System;
|
||||
using OfficeOpenXml;
|
||||
using System.IO;
|
||||
using OfficeOpenXml.Style;
|
||||
using System.Drawing;
|
||||
using VolPro.Core.DbSqlSugar;
|
||||
|
||||
namespace VolPro.Sys.Services
|
||||
{
|
||||
public partial class FormCollectionObjectService
|
||||
{
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly IFormCollectionObjectRepository _repository;//访问数据库
|
||||
private readonly IFormDesignOptionsRepository _designOptionsRepository;
|
||||
[ActivatorUtilitiesConstructor]
|
||||
public FormCollectionObjectService(
|
||||
IFormCollectionObjectRepository dbRepository,
|
||||
IHttpContextAccessor httpContextAccessor,
|
||||
IFormDesignOptionsRepository designOptionsRepository
|
||||
)
|
||||
: base(dbRepository)
|
||||
{
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_repository = dbRepository;
|
||||
_designOptionsRepository = designOptionsRepository;
|
||||
}
|
||||
|
||||
public override WebResponseContent Export(PageDataOptions pageData)
|
||||
{
|
||||
string path = null;
|
||||
string fileName = null;
|
||||
WebResponseContent webResponse = new WebResponseContent();
|
||||
ExportOnExecuting = (List<FormCollectionObject> list, List<string> columns) =>
|
||||
{
|
||||
var formId = list[0].FormId;
|
||||
var data = _designOptionsRepository.FindAsIQueryable(x => x.FormId == formId)
|
||||
.Select(s => new { s.Title, s.FormConfig }).FirstOrDefault();
|
||||
try
|
||||
{
|
||||
List<FormOptions> formObj = data.FormConfig.DeserializeObject<List<FormOptions>>();
|
||||
List<Dictionary<string, object>> listDic = new List<Dictionary<string, object>>();
|
||||
foreach (var item in list)
|
||||
{
|
||||
Dictionary<string, object> dic = new Dictionary<string, object>();
|
||||
var formData = item.FormData.DeserializeObject<Dictionary<string, string>>();
|
||||
dic.Add("标题", data.Title);
|
||||
|
||||
dic.Add("提交人", item.Creator);
|
||||
dic.Add("提交时间", item.CreateDate.ToString("yyyy-MM-dd HH:mm:sss"));
|
||||
foreach (var obj in formObj)
|
||||
{
|
||||
dic.Add(obj.Title, formData.Where(x => x.Key == obj.Field).Select(s => s.Value).FirstOrDefault());
|
||||
}
|
||||
listDic.Add(dic);
|
||||
}
|
||||
fileName = data.Title + ".xlsx";
|
||||
path = EPPlusHelper.ExportGeneralExcel(listDic, fileName);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.Error($"解析表单出错:{data.Title},表单配置:{data.FormConfig},{ex.Message}");
|
||||
return webResponse.Error("获取表单出错");
|
||||
}
|
||||
webResponse.Code = "-1";
|
||||
return webResponse.OK(null, path.EncryptDES(AppSetting.Secret.ExportFile));
|
||||
};
|
||||
return base.Export(pageData);
|
||||
}
|
||||
}
|
||||
|
||||
public class FormOptions
|
||||
{
|
||||
public string Field { get; set; }
|
||||
|
||||
public string Title { get; set; }
|
||||
|
||||
public string Type { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
*所有关于FormDesignOptions类的业务代码应在此处编写
|
||||
*可使用repository.调用常用方法,获取EF/Dapper等信息
|
||||
*如果需要事务请使用repository.DbContextBeginTransaction
|
||||
*也可使用DBServerProvider.手动获取数据库相关信息
|
||||
*用户信息、权限、角色等使用UserContext.Current操作
|
||||
*FormDesignOptionsService对增、删、改查、导入、导出、审核业务代码扩展参照ServiceFunFilter
|
||||
*/
|
||||
using VolPro.Core.BaseProvider;
|
||||
using VolPro.Core.Extensions.AutofacManager;
|
||||
using VolPro.Entity.DomainModels;
|
||||
using System.Linq;
|
||||
using VolPro.Core.Utilities;
|
||||
using System.Linq.Expressions;
|
||||
using VolPro.Core.Extensions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using VolPro.Sys.IRepositories;
|
||||
|
||||
namespace VolPro.Sys.Services
|
||||
{
|
||||
public partial class FormDesignOptionsService
|
||||
{
|
||||
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||
private readonly IFormDesignOptionsRepository _repository;//访问数据库
|
||||
|
||||
[ActivatorUtilitiesConstructor]
|
||||
public FormDesignOptionsService(
|
||||
IFormDesignOptionsRepository dbRepository,
|
||||
IHttpContextAccessor httpContextAccessor
|
||||
)
|
||||
: base(dbRepository)
|
||||
{
|
||||
_httpContextAccessor = httpContextAccessor;
|
||||
_repository = dbRepository;
|
||||
//多租户会用到这init代码,其他情况可以不用
|
||||
//base.Init(dbRepository);
|
||||
}
|
||||
|
||||
public override PageGridData<FormDesignOptions> GetPageData(PageDataOptions options)
|
||||
{
|
||||
return base.GetPageData(options);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user