public async Task <IActionResult> ITSubmitSqlOrRefuseDemand([FromBody] ITSubmitSqlOrRefuseDemandRequest requestDto) { //var currentUserGuid = "942c0c1db7794095ac9e2abfe6bde264";//zhiliang 942c0c1db7794095ac9e2abfe6bde264 //if (!UserID.Equals(currentUserGuid)) //{ // return Failed(ErrorCode.DataBaseError, "您不是SQL撰写人,无法操作!"); //} var commonReportBiz = new CommonReportThemeBiz(); var approveModel = await commonReportBiz.GetReportApproveModelByGuid(requestDto.ApproveGuid); if (approveModel == null) { return(Failed(ErrorCode.DataBaseError, "无审批数据,请检查!")); } var themeModel = await commonReportBiz.GetReportThemeModelByThemeGuid(approveModel.ThemeGuid); if (themeModel == null) { return(Failed(ErrorCode.DataBaseError, "无主题数据,请检查!")); } if (IsITRightStatusForOperation(approveModel)) { approveModel.ApprovedReason = requestDto.ApprovedReason; approveModel.ApprovedDatetime = DateTime.Now; approveModel.SQLWriterGuid = UserID; approveModel.LastUpdatedBy = UserID; approveModel.LastUpdatedDate = DateTime.Now; var result = false; if (requestDto.ApproveStatus.ToString().Equals(ReportApproveStatusEnum.Adopt.ToString())) { if (!IsRightSQLStr(requestDto.Sqlstr)) { return(Failed(ErrorCode.UserData, "SQL有误,请检查!")); } themeModel.SQLStr = requestDto.Sqlstr; themeModel.LastUpdatedBy = UserID; themeModel.LastUpdatedDate = DateTime.Now; approveModel.ApproveScheduleEnum = ReportApproveScheduleEnums.SqlWrite.ToString(); approveModel.ApproveStatus = ReportApproveStatusEnum.Pending.ToString(); var conditionModelList = new List <ReportConditionModel>(); foreach (var item in requestDto.ConditionInfoList) { if (!IsRightConditionSQLStr(item.FieldValueSql)) { return(Failed(ErrorCode.UserData, "条件SQL有误,请检查!")); } var model = new ReportConditionModel { ConditionGuid = Guid.NewGuid().ToString("N"), ThemeGuid = approveModel.ThemeGuid, Name = item.Name, FieldCode = item.FieldCode, FieldValueSql = item.FieldValueSql,//需要加验证 IsRightSql = item.IsRightSql, ValueType = item.ValueType, ValueRange = item.ValueRange, ExtensionField = "", Sort = item.Sort, CreatedBy = UserID, CreationDate = DateTime.Now, LastUpdatedBy = UserID, LastUpdatedDate = DateTime.Now, OrgGuid = "..", Enable = true }; conditionModelList.Add(model); } result = await commonReportBiz.UpdateThemeAndApproveModel(themeModel, approveModel, conditionModelList); } if (requestDto.ApproveStatus.ToString().Equals(ReportApproveStatusEnum.Reject.ToString())) { if (string.IsNullOrWhiteSpace(requestDto.ApprovedReason)) { return(Failed(ErrorCode.UserData, "审核驳回,原因不能为空!")); } approveModel.ApproveScheduleEnum = ReportApproveScheduleEnums.Apply.ToString(); approveModel.ApproveStatus = ReportApproveStatusEnum.Reject.ToString(); result = await commonReportBiz.UpdateApproveModel(approveModel); } return(Success(result)); } else { return(Failed(ErrorCode.DataBaseError, "该申请状态不是可审批状态,请检查!")); } }
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)); }