| 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 ItemRemarkFrom Bus_ConfItemList as bcil With(Nolock) Inner Join Bus_ConfItem as bci With(Nolock) On bcil.Id=bci.ConfListIdInner Join Res_ItemDetail as rid With(Nolock) On bci.ItemId=rid.IdInner Join Res_ItemType as rit With(Nolock) On rid.ItemTypeId=rit.IdInner Join Res_ItemVendor as riv With(nolock) On rid.VendorId=riv.IdWhere 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;        }    }}
 |