public async Task <IActionResult> ApplyCreateReport([FromBody] ApplyCreateReportRequest requestDto) { var result = false; var commonReportBiz = new CommonReportThemeBiz(); if (string.IsNullOrWhiteSpace(requestDto.ApproveGuid)) { //新申请 var themeModel = new ReportThemeModel() { ThemeGuid = Guid.NewGuid().ToString("N"), Name = requestDto.Name, Demand = requestDto.Demand, //ConditionDemand = requestDto.ConditionDemand, CreatedBy = UserID, CreationDate = DateTime.Now, LastUpdatedBy = UserID, LastUpdatedDate = DateTime.Now, //PlatformType = requestDto.PlatformType, Enable = true }; var approveModel = new ReportApproveModel() { ApproveGuid = Guid.NewGuid().ToString("N"), ThemeGuid = themeModel.ThemeGuid, ApplyUserGuid = UserID,//申请提交人 //SQLWriterGuid = "",//需求审批人 //SQLApproverGuid = "",//sql审核人 //ListApproverGuid="",//列表审核人 //ApprovedReason= null, //ApprovedDatetime = null, ApproveScheduleEnum = ReportApproveScheduleEnums.Apply.ToString(), ApproveStatus = ReportApproveStatusEnum.Pending.ToString(), CreatedBy = UserID, CreationDate = DateTime.Now, LastUpdatedBy = UserID, LastUpdatedDate = DateTime.Now, OrgGuid = "test", Enable = true }; result = await commonReportBiz.ApplyCreateReport(themeModel, approveModel); } else { //重新申请 var approveModel = await commonReportBiz.GetReportApproveModelByGuid(requestDto.ApproveGuid); if (approveModel == null) { return(Failed(ErrorCode.DataBaseError, "审批记录为空!")); } //驳回状态才可重新申请 if (!approveModel.ApproveStatus.Equals(ReportApproveStatusEnum.Reject.ToString())) { return(Failed(ErrorCode.DataBaseError, "该审批没有被驳回!")); } var themeModel = await commonReportBiz.GetReportThemeModelByThemeGuid(approveModel.ThemeGuid); if (approveModel == null) { return(Failed(ErrorCode.DataBaseError, "查询不到该审批记录的申请信息!")); } themeModel.Name = requestDto.Name; themeModel.Demand = requestDto.Demand; //themeModel.ConditionDemand = requestDto.ConditionDemand; themeModel.LastUpdatedBy = UserID; themeModel.LastUpdatedDate = DateTime.Now; approveModel.ApproveScheduleEnum = ReportApproveScheduleEnums.Apply.ToString(); approveModel.ApproveStatus = ReportApproveStatusEnum.Pending.ToString(); approveModel.LastUpdatedBy = UserID; approveModel.LastUpdatedDate = DateTime.Now; result = await commonReportBiz.UpdateThemeAndApproveModel(themeModel, approveModel); } return(Success(result)); }
public async Task <IActionResult> CreateReport([FromBody] CreateReportRequest requestDto) { //简单过滤SqlStr 格式必须是 select @ColumnStr from table if (!IsRightPreviewSql(requestDto.Sqlstr)) { return(Failed(ErrorCode.DataBaseError, "SQL格式有误,请检查!")); } var result = false; var commonReportBiz = new CommonReportThemeBiz(); //新申请 var themeModel = new ReportThemeModel() { ThemeGuid = Guid.NewGuid().ToString("N"), ApplyUserName = requestDto.ApplyUserName, Name = requestDto.ReportName, Demand = requestDto.Demand, SQLStr = requestDto.Sqlstr, RecordStatus = requestDto.RecordStatus, Sort = requestDto.Sort, CreatedBy = UserID, CreationDate = DateTime.Now, LastUpdatedBy = UserID, LastUpdatedDate = DateTime.Now, PlatformType = string.IsNullOrWhiteSpace(requestDto.PlatformType) ? "CloudDoctor" : requestDto.PlatformType, OrgGuid = string.Empty, Enable = true }; 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); } result = await commonReportBiz.ApplyCreateReport(themeModel, conditionAndColumnList); return(Success(result)); }