1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- using Aspose.Cells;
- using OASystem.Domain.Entities.Business;
- using OASystem.Domain.Entities.Groups;
- using OASystem.Domain.ViewModels.Business;
- using OASystem.Infrastructure.Repositories.Business;
- using System.Web;
- namespace OASystem.API.OAMethodLib.ExcelOutput
- {
- public class Excel_BusConfItemList
- {
- private CommonBusRepository _busRep;
- private string url;
- private string path;
- public Excel_BusConfItemList()
- {
- _busRep = AutofacIocManager.Instance.GetService<CommonBusRepository>();
- url = AppSettingsHelper.Get("ExcelBaseUrl");
- path = AppSettingsHelper.Get("ExcelBasePath");
- if (!System.IO.Directory.Exists(path))
- {
- System.IO.Directory.CreateDirectory(path);//不存在就创建文件夹
- }
- }
- public string Excel(Bus_ConfItemListInfo _entity)
- {
- if (!string.IsNullOrEmpty(_entity.ExcelPath))
- {
- if (System.IO.File.Exists(_entity.ExcelPath))
- {
- //存在
- string fileUrl = url + path + _entity.ExcelPath;
- return fileUrl;
- }
- else
- {
- //不存在
- return CreateExcel(_entity);
- }
- }
- else
- {
- return CreateExcel(_entity);
- }
- return "";
- }
- private string CreateExcel(Bus_ConfItemListInfo _entity)
- {
- string sql = string.Format(@" Select * From(
- Select ROW_NUMBER() Over(order By Id desc) as RowNumber,riv.FullName as VendorName,rid.ItemName
- ,rit.TypeName as ItemTypeName,bci.[Count],bci.CurrCost as Price,bci.OpRemark as ItemRemark
- From Bus_ConfItemList as bcil With(Nolock)
- Inner Join Bus_ConfItem as bci With(Nolock) On bcil.Id=bci.ConfListId
- Inner Join Res_ItemDetail as rid With(Nolock) On bci.ItemId=rid.Id
- Inner Join Res_ItemType as rit With(Nolock) On rid.ItemTypeId=rit.Id
- Inner Join Res_ItemVendor as riv With(nolock) On rid.VendorId=riv.Id
- Where bcil.Id={0}
- ) as tb ", _entity.Id);
- List<Bus_ConfItemExportView> _confItemList = _busRep._sqlSugar.SqlQueryable<Bus_ConfItemExportView>(sql).ToList();
- Grp_DelegationInfo _DelegationInfo = _busRep.Query<Grp_DelegationInfo>(s => s.Id == _entity.Diid).First();
- string diName = _DelegationInfo != null ? _DelegationInfo.TeamName : "未知团组" + _entity.Diid;
- WorkbookDesigner designer = new WorkbookDesigner();
- designer.Workbook = new Workbook(AppSettingsHelper.Get("ExcelBasePath") + "Template/会务物料清单模板.xlsx");
- designer.SetDataSource("Export", _confItemList);
- designer.SetDataSource("ExportDiName", diName);
- designer.SetDataSource("ExportOutputDt", DateTime.Now.ToString("yyyy-MM-dd"));
- designer.SetDataSource("ExportListRemark", _entity.Remark);
- designer.Process();
- string fileName = "ConfItemList/" + HttpUtility.UrlEncode("会务物料清单") + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".xlsx";
- designer.Workbook.Save(path + fileName);
- designer = null;
- _entity.ExcelPath = AppSettingsHelper.Get("ExcelFtpPath") + fileName;
- _busRep._sqlSugar.Updateable<Bus_ConfItemListInfo>()
- .Where(s => s.Id == _entity.Id)
- .UpdateColumns(s => s.ExcelPath)
- .ExecuteCommand();
- string fileUrl = url + _entity.ExcelPath;
- return fileUrl;
- }
- }
- }
|