public async Task <IActionResult> PublishOneReport([FromBody] PublishOneReportRequest request) { var commonReportBiz = new CommonReportThemeBiz(); var model = await commonReportBiz.GetAsync(request.ThemeGuid); if (model == null) { return(Failed(ErrorCode.DataBaseError, "ID有误,请检查!")); } model.RecordStatus = 2; var result = await commonReportBiz.UpdateAsync(model); return(Success(result)); }
public async Task <IActionResult> PreviewResultInSqlAsync([FromBody] PreviewResultInSqlStrRequest request) { var commonReportBiz = new CommonReportThemeBiz(); var themeModel = await commonReportBiz.GetAsync(request.ThemeGuid); if (themeModel == null || string.IsNullOrWhiteSpace(themeModel.SQLStr)) { return(Failed(ErrorCode.DataBaseError, "主题SQL语句为空,请检查!")); } foreach (var item in request.PreviewConditionInfoList) { if (item.Required && string.IsNullOrWhiteSpace(item.FieldValue)) { return(Failed(ErrorCode.DataBaseError, $" {item.FieldCode} 的值不能为空!请检查!")); } } if (!IsRightPreviewSql(themeModel.SQLStr)) { return(Failed(ErrorCode.DataBaseError, "SQL语句有误,请检查!")); } var conditionOrColumnList = await commonReportBiz.GetModelListAsyncByThemeGuid(request.ThemeGuid); if (conditionOrColumnList == null || conditionOrColumnList.Count < 1) { return(Failed(ErrorCode.DataBaseError, "未读取到条件与列信息,请检查!")); } var condictionModelList = conditionOrColumnList.Where(a => a.RecordType.Equals(RecordTypeEnum.Condition.ToString())).ToList(); var columnModelList = conditionOrColumnList.Where(a => a.RecordType.Equals(RecordTypeEnum.Column.ToString())).ToList(); try { var(CurrentPage, Total) = await commonReportBiz.PreviewResultListAsync(request, themeModel, condictionModelList, columnModelList); var response = new PreviewResultInSqlResponseDto { CurrentPage = CurrentPage, Total = Total }; return(Success(response)); } catch (Exception ex) { Logger.Info($"报表预览SQL执行报错=>Error: {ex.Message}"); return(Failed(ErrorCode.DataBaseError, "SQL语句执行错误,请检查!")); } }
public async Task <IActionResult> UpdateOneReport([FromBody] UpdateOneReportRequest requestDto) { //简单过滤SqlStr 格式必须是 select @ColumnStr from table if (!IsRightPreviewSql(requestDto.Sqlstr)) { return(Failed(ErrorCode.DataBaseError, "SQL格式有误,请检查!")); } var commonReportBiz = new CommonReportThemeBiz(); var themeModel = await commonReportBiz.GetAsync(requestDto.ThemeGuid); themeModel.ApplyUserName = requestDto.ApplyUserName; themeModel.Name = requestDto.ReportName; themeModel.Demand = requestDto.Demand; themeModel.SQLStr = requestDto.Sqlstr; themeModel.RecordStatus = requestDto.RecordStatus; themeModel.Sort = requestDto.Sort; themeModel.CreatedBy = UserID; themeModel.LastUpdatedBy = UserID; themeModel.LastUpdatedDate = DateTime.Now; var conditionAndColumnList = new List <ReportConditionModel>(); foreach (var item in requestDto.CreateConditionInfoList) { var conditionModel = new ReportConditionModel() { ConditionGuid = Guid.NewGuid().ToString("N"), ThemeGuid = themeModel.ThemeGuid, Name = item.ConditionName, FieldCode = item.FieldCode, FieldValueSql = string.Empty, IsRightSql = true, ValueType = item.ValueType, ValueRange = string.IsNullOrWhiteSpace(item.ValueRange) ? "{}" : item.ValueRange, ExtensionField = string.Empty, CreatedBy = UserID, CreationDate = DateTime.Now, LastUpdatedBy = UserID, LastUpdatedDate = DateTime.Now, RecordType = RecordTypeEnum.Condition.ToString(), Required = item.Required, Sort = item.Sort, OrgGuid = string.Empty, Enable = true }; conditionAndColumnList.Add(conditionModel); } foreach (var item in requestDto.CreateColumnInfoList) { var conditionModel = new ReportConditionModel() { ConditionGuid = Guid.NewGuid().ToString("N"), ThemeGuid = themeModel.ThemeGuid, Name = item.ColumnName, FieldCode = item.FieldCode, FieldValueSql = string.Empty, IsRightSql = true, ValueType = item.ValueType, ValueRange = string.IsNullOrWhiteSpace(item.ValueRange) ? "{}" : item.ValueRange, ExtensionField = string.Empty, CreatedBy = UserID, CreationDate = DateTime.Now, LastUpdatedBy = UserID, LastUpdatedDate = DateTime.Now, RecordType = RecordTypeEnum.Column.ToString(), Required = item.Required, Sort = item.Sort, OrgGuid = string.Empty, Enable = true }; conditionAndColumnList.Add(conditionModel); } var result = await commonReportBiz.UpdateOneReportAsync(themeModel, conditionAndColumnList); return(Success()); }