using Infrastructure.Attribute; using Microsoft.AspNetCore.Http; using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Infrastructure; using ARW.Model; using ARW.Repository; using ARW.Repository.Business.TableDataManage.TableDatas; using ARW.Service.Business.IBusinessService.TableDataManage.TableDatas; using ARW.Model.Dto.Business.TableDataManage.TableDatas; using ARW.Model.Models.Business.TableDataManage.TableDatas; using ARW.Model.Vo.Business.TableDataManage.TableDatas; namespace ARW.Service.Business.BusinessService.TableDataManage.TableDatas { /// /// 表格数据接口实现类 /// /// @author lwh /// @date 2023-11-22 /// [AppService(ServiceType = typeof(ITableDataService), ServiceLifetime = LifeTime.Transient)] public class TableDataServiceImpl : BaseService, ITableDataService { private readonly TableDataRepository _TableDataRepository; public TableDataServiceImpl(TableDataRepository TableDataRepository) { this._TableDataRepository = TableDataRepository; } #region 业务逻辑代码 /// /// 查询表格数据分页列表 /// public async Task> GetTableDataList(TableDataQueryDto parm) { //开始拼装查询条件d var predicate = Expressionable.Create(); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.TableDataProcurementContent), s => s.TableDataProcurementContent.Contains(parm.TableDataProcurementContent)); predicate = predicate.AndIF(!string.IsNullOrEmpty(parm.TableDataProcurementUnit), s => s.TableDataProcurementUnit.Contains(parm.TableDataProcurementUnit)); predicate = predicate.AndIF(parm.BeginTime != null && parm.EndTime != null, it => it.TableDataDate >= parm.BeginTime && it.TableDataDate <= parm.EndTime); predicate = predicate.AndIF(parm.BeginTime != null && parm.EndTime != null, it => it.TableDataDeadline >= parm.BeginTime && it.TableDataDeadline <= parm.EndTime); var query = _TableDataRepository .Queryable() .Where(predicate.ToExpression()) .OrderBy(s => s.TableDataSort,OrderByType.Asc) .Select(s => new TableDataVo { TableDataId = s.TableDataId, TableDataGuid = s.TableDataGuid, TableDataProcurementContent = s.TableDataProcurementContent, TableDataProcurementUnit = s.TableDataProcurementUnit, TableDataProcurementMethod = s.TableDataProcurementMethod, TableDataSupplierName = s.TableDataSupplierName, TableDataSupplierOffer = s.TableDataSupplierOffer, TableDataProjectPricingForm = s.TableDataProjectPricingForm, TableDataLink = s.TableDataLink, TableDataDate = s.TableDataDate, TableDataDeadline = s.TableDataDeadline, TableDataWinningBidde = s.TableDataWinningBidde, TableDataBidWinningPrice = s.TableDataBidWinningPrice, TableDataIsBidAnnouncement = s.TableDataIsBidAnnouncement, TableDataIsHumanResourcePoolOrFrameworkAgreement = s.TableDataIsHumanResourcePoolOrFrameworkAgreement, TableDataIsMultiple = s.TableDataIsMultiple, TableDataIsOnlyBidder = s.TableDataIsOnlyBidder, TableDataSingleSource = s.TableDataSingleSource, TableDataDetails = s.TableDataDetails, TableDataSort = s.TableDataSort, }); return await query.ToPageAsync(parm); } /// /// 添加或修改表格数据 /// public async Task AddOrUpdateTableData(TableData model) { if (model.TableDataId != 0) { var response = await _TableDataRepository.UpdateAsync(model); return "修改成功!"; } else { var response = await _TableDataRepository.InsertReturnSnowflakeIdAsync(model); return "添加成功!"; } } #region Excel处理 /// /// 数据导入处理 /// public async Task HandleImportData(TableDataVo TableData) { return TableData; } /// /// Excel导入 /// public async Task ImportExcel(TableData TableData,int index,bool isUpdateSupport,string user) { try { // 空值判断 // if (TableData.TableDataId == null) throw new CustomException("表格数据不能为空"); if (isUpdateSupport) { // 判断唯一值 var model = await GetFirstAsync(s => s.TableDataId == TableData.TableDataId); // 如果为空就新增数据 if (model == null) { // 开启事务 var res = await UseTranAsync(async () => { var addRes = await AddOrUpdateTableData(TableData); }); var addStr = $"第 {index} 行 => 表格数据:【{TableData.TableDataId}】新增成功!
"; return addStr; } else { // 如果有数据就进行修改 // 开启事务 await UseTranAsync(async () => { TableData.TableDataId = model.TableDataId; TableData.TableDataGuid = model.TableDataGuid; TableData.Update_by = user; TableData.Update_time = DateTime.Now; var editRes = await AddOrUpdateTableData(TableData); }); var editStr = $"第 {index} 行 => 表格数据:【{TableData.TableDataId}】更新成功!
"; return editStr; } } else{ // 开启事务 var res = await UseTranAsync(async () => { var addRes = await AddOrUpdateTableData(TableData); }); //Console.WriteLine(res.IsSuccess); var addStr = $"第 {index} 行 => 表格数据:【{TableData.TableDataId}】新增成功!
"; return addStr; } } catch (Exception ex) { var errorRes = $"第 {index} 行 => 表格数据:【{TableData.TableDataId}】导入失败!{ex.Message}
"; return errorRes; throw; } } /// /// Excel数据导出处理 /// public async Task> HandleExportData(List data) { return data; } #endregion #endregion } }