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());
        }