Exemplo n.º 1
0
 /// <summary>
 /// 更新model
 /// </summary>
 /// <param name="enumStr"></param>
 /// <returns></returns>
 public async Task <bool> UpdateThemeAndApproveModel(ReportThemeModel tModel, ReportApproveModel apModel)
 {
     return(await MySqlHelper.TransactionAsync(async (conn, tran) =>
     {
         if (await conn.UpdateAsync(tModel) < 1)
         {
             return false;
         }
         if (await conn.UpdateAsync(apModel) < 1)
         {
             return false;
         }
         return true;
     }));
 }
Exemplo n.º 2
0
 /// <summary>
 /// 添加申请
 /// </summary>
 /// <param name="enumStr"></param>
 /// <returns></returns>
 public async Task <bool> ApplyCreateReport(ReportThemeModel tModel, ReportApproveModel raModel)
 {
     return(await MySqlHelper.TransactionAsync(async (conn, trans) =>
     {
         if (await conn.InsertAsync <int, ReportThemeModel>(tModel) > 0)
         {
             return false;
         }
         if (await conn.InsertAsync <int, ReportApproveModel>(raModel) > 0)
         {
             return false;
         }
         return true;
     }));
 }
Exemplo n.º 3
0
 /// <summary>
 /// IT写SQL等更新
 /// </summary>
 /// <param name="tModel"></param>
 /// <param name="apModel"></param>
 /// <param name="conditionModelList"></param>
 /// <returns></returns>
 public async Task <bool> UpdateThemeAndApproveModel(ReportThemeModel tModel, ReportApproveModel apModel, List <ReportConditionModel> conditionModelList)
 {
     return(await MySqlHelper.TransactionAsync(async (conn, tran) =>
     {
         if (await conn.UpdateAsync(tModel) < 1)
         {
             return false;
         }
         if (await conn.UpdateAsync(apModel) < 1)
         {
             return false;
         }
         foreach (var model in conditionModelList)
         {
             if (await conn.InsertAsync(model) < 1)
             {
                 return false;
             }
         }
         return true;
     }));
 }
        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));
        }