Exemplo n.º 1
0
        public async Task <IActionResult> SaveIndicatorWarningLimit([FromBody] CreateIndicatorWarningLimitRequestDto request)
        {
            if (request.Limits.Count <= 0)
            {
                return(Failed(ErrorCode.Empty, "指标项参数未提供,请检查"));
            }

            if (request.Limits.Any(d => string.IsNullOrEmpty(d.OptionGuid)))
            {
                return(Failed(ErrorCode.Empty, "存在指标项为空的参数,请检查"));
            }

            var duplicateOptionExists = request.Limits
                                        .GroupBy(d => d.OptionGuid.Trim())
                                        .Any(g => g.Count() > 1);

            if (duplicateOptionExists)
            {
                return(Failed(ErrorCode.Empty, "存在重复指标项的参数,请检查"));
            }
            if (request.Limits.Any(d => !d.MinValue.HasValue || !d.MaxValue.HasValue))
            {
                return(Failed(ErrorCode.Empty, "存在预警范围为空的参数,请检查"));
            }
            else
            {
                if (request.Limits.Any(d => d.MaxValue.Value < d.MinValue.Value))
                {
                    return(Failed(ErrorCode.Empty, "存在预警低值大于预警高值的参数,请检查"));
                }
            }
            var consumerBiz = new ConsumerBiz();
            var consumer    = await consumerBiz.GetModelAsync(request.ConsumerGuid);

            if (consumer is null || !consumer.Enable)
            {
                return(Failed(ErrorCode.Empty, "指定会员不存在"));
            }

            var warningLimiBiz = new IndicatorWarningLimitBiz();
            var dbLimits       = await warningLimiBiz.GetLimits(request.ConsumerGuid);

            var createModels = new List <IndicatorWarningLimitModel>();
            var updateModels = new List <IndicatorWarningLimitModel>();

            if (dbLimits is null || dbLimits.Count <= 0)
            {
                createModels = request.Limits.Select(d => new IndicatorWarningLimitModel()
                {
                    LimitGuid           = Guid.NewGuid().ToString(),
                    UserGuid            = request.ConsumerGuid,
                    TurnOnWarning       = request.TurnOnWarning,
                    IndicatorOptionGuid = d.OptionGuid,
                    MinValue            = d.MinValue,
                    MaxValue            = d.MaxValue,
                    CreatedBy           = UserID,
                    LastUpdatedBy       = UserID,
                    OrgGuid             = ""
                }).ToList();
            }
Exemplo n.º 2
0
        public async Task <IActionResult> GetIndicatorWarningLimit([FromQuery] GetIndicatorWarningLimitRequestDto request)
        {
            var warningLimitBiz = new IndicatorWarningLimitBiz();

            var limits = await warningLimitBiz.GetIndicatorWarningLimits(request);

            if (limits.Count <= 0)
            {
                return(Failed(ErrorCode.Empty, "指标不存在"));
            }

            var response = new GetIndicatorWarningLimitResponseDto()
            {
                TurnOnWarning = limits.FirstOrDefault().TurnOnWarning,
                Limits        = limits
            };

            return(Success(response));
        }