Exemple #1
0
        private PerformanceEntity AddPerformanceEntity(IPerformanceData data, int locationId, int typeId)
        {
            try
            {
                LocationsEntity location = locationId != -1
                    ? _dbContext.PerformanceLocations.FirstOrDefault(l => l.Id == locationId)
                    : new LocationsEntity {
                    Name = data.Location
                };

                PerformanceTypeEntity type = typeId != -1
                    ? _dbContext.PerformanceTypes.FirstOrDefault(t => t.Id == typeId)
                    : new PerformanceTypeEntity {
                    TypeName = data.Type
                };

                PerformanceEntity performance = new PerformanceEntity
                {
                    Name     = data.Name,
                    Location = location,
                    Type     = type,
                };

                _dbContext.Performances.Add(performance);

                return(performance);
            }
            catch (Exception e)
            {
                Console.WriteLine($"AddPerformanceEntity DbException: {e.Message}");
                throw;
            }
        }
Exemple #2
0
        /// <summary>
        /// 获取个人绩效
        /// </summary>
        /// <param name="userid"></param>
        /// <returns></returns>
        public object PerformanceByuser(string userid, string time, string departmentid)
        {
            //所有数据
            var message = string.Empty;

            try
            {
                List <object> list  = new List <object>();
                var           month = Convert.ToInt32(time);
                for (int i = 12; i >= 1; i--)
                {
                    string getTime = new DateTime(month, i, 1).ToString("yyyy-MM-dd");
                    var    title   = titlebll.getTitle(getTime, departmentid);
                    if (title != null)
                    {
                        //获取数据
                        PerformanceEntity Score = Scorebll.getScoreByuser(getTime, userid);
                        var one = new
                        {
                            title = title.name,
                            score = Score.score,
                            sort  = Score.sort,
                            month = i
                        };
                        list.Add(one);
                    }
                }
                return(new { code = 0, info = message, data = list });
            }
            catch (Exception ex)
            {
                return(new { code = 1, info = ex.Message });
            }
        }
Exemple #3
0
 public void UpdatePerformance(PerformanceEntity entity)
 {
     entity.ATTRIBUTE_   = Attribute;
     entity.EQUATIONNAME = EquationName;
     entity.CRITERIA     = Criteria;
     entity.EQUATION     = Equation;
     entity.SHIFT        = Shift ?? false;
     entity.PIECEWISE    = Piecewise ?? false;
     entity.ISFUNCTION   = IsFunction ?? false;
 }
Exemple #4
0
 public PerformanceLibraryEquationModel(PerformanceEntity entity)
 {
     Id           = entity.PERFORMANCEID.ToString();
     Attribute    = entity.ATTRIBUTE_;
     EquationName = entity.EQUATIONNAME;
     Criteria     = entity.CRITERIA;
     Equation     = entity.EQUATION;
     Shift        = entity.SHIFT ?? false;
     Piecewise    = entity.PIECEWISE ?? false;
     IsFunction   = entity.ISFUNCTION ?? false;
 }
        private void SetPerformance()
        {
            var work = WorkActivityService.GetWork(
                _workEntitis,
                WorkingActivity.GetInstance().ActivityName);

            _performance = new PerformanceEntity(
                WorkingActivity.GetInstance().StartTime,
                WorkingActivity.GetInstance().StopTime,
                work,
                _user);
        }
Exemple #6
0
        public async Task <PlaybillEntity> AddPlaybill(IPerformanceData data)
        {
            try
            {
                int performanceId             = GetPerformanceEntityId(data, out int location, out int type);
                PerformanceEntity performance = -1 == performanceId
                    ? AddPerformanceEntity(data, location, type)
                    : _dbContext.Performances
                                                .Include(p => p.Location)
                                                .Include(p => p.Type)
                                                .FirstOrDefault(p => p.Id == performanceId);

                var playBillEntry = new PlaybillEntity
                {
                    Performance = performance,
                    Url         = data.Url,
                    When        = data.DateTime,
                    Changes     = new List <PlaybillChangeEntity>
                    {
                        new PlaybillChangeEntity
                        {
                            LastUpdate      = DateTime.Now,
                            MinPrice        = data.MinPrice,
                            ReasonOfChanges = (int)ReasonOfChanges.Creation,
                        }
                    }
                };

                _dbContext.Playbill.Add(playBillEntry);
                _dbContext.Add(playBillEntry.Changes.First());

                await _dbContext.SaveChangesAsync();

                if (performance != null)
                {
                    _dbContext.Entry(performance.Location).State = EntityState.Detached;
                    _dbContext.Entry(performance.Type).State     = EntityState.Detached;
                    _dbContext.Entry(performance).State          = EntityState.Detached;
                }

                return(playBillEntry);
            }
            catch (Exception ex)
            {
                Trace.TraceInformation($"AddPlaybill DbException {ex.Message} InnerException {ex.InnerException?.Message}");
            }

            return(null);
        }
Exemple #7
0
        /// <summary>
        /// Executes an upsert/delete operation on a simulation's performance library data
        /// Throws a RowNotInTableException if no simulation is found
        /// </summary>
        /// <param name="model">PerformanceLibraryModel</param>
        /// <param name="db">BridgeCareContext</param>
        /// <returns>PerformanceLibraryModel</returns>
        public PerformanceLibraryModel SaveSimulationPerformanceLibrary(PerformanceLibraryModel model, BridgeCareContext db)
        {
            var id = int.Parse(model.Id);

            if (!db.Simulations.Any(s => s.SIMULATIONID == id))
            {
                throw new RowNotInTableException($"No scenario was found with id {id}");
            }

            var simulation = db.Simulations.Include(s => s.PERFORMANCES).Single(s => s.SIMULATIONID == id);

            if (simulation.PERFORMANCES.Any())
            {
                simulation.PERFORMANCES.ToList().ForEach(performanceEntity =>
                {
                    var performanceModel = model.Equations
                                           .SingleOrDefault(m => m.Id == performanceEntity.PERFORMANCEID.ToString());

                    if (performanceModel == null)
                    {
                        PerformanceEntity.DeleteEntry(performanceEntity, db);
                    }
                    else
                    {
                        performanceModel.matched = true;
                        performanceModel.UpdatePerformance(performanceEntity);
                    }
                });
            }

            if (model.Equations.Any(m => !m.matched))
            {
                db.Performances.AddRange(model.Equations
                                         .Where(performanceModel => !performanceModel.matched)
                                         .Select(performanceModel => new PerformanceEntity(id, performanceModel))
                                         .ToList()
                                         );
            }

            db.SaveChanges();

            return(new PerformanceLibraryModel(simulation));
        }
        public async Task <PerformanceDTO> CreatePerformanceAsync(CreatePerformanceDTO createPerformanceDTO)
        {
            var isBandExist = await _DBContext.Bands.AnyAsync(b => b.Id == createPerformanceDTO.BandId);

            if (!isBandExist)
            {
                throw new ItemNotFoundException($"Band with id {createPerformanceDTO.BandId} not found.");
            }

            var isFestivalExist = await _DBContext.Festivals.AnyAsync(f => f.Id == createPerformanceDTO.FestivalId);

            if (!isFestivalExist)
            {
                throw new ItemNotFoundException($"Festival with id {createPerformanceDTO.FestivalId} not found.");
            }

            await CheckStageExisting(createPerformanceDTO.StageId);

            var performance = new PerformanceEntity
            {
                BeginingTime = createPerformanceDTO.BeginingTime,
                Duration     = createPerformanceDTO.Duration,
                BandId       = createPerformanceDTO.BandId,
                FestivalId   = createPerformanceDTO.FestivalId,
                StageId      = createPerformanceDTO.StageId
            };

            await _DBContext.Performances.AddAsync(performance);

            await _DBContext.SaveChangesAsync();

            performance = await _DBContext.Performances
                          .Include(p => p.Band)
                          .ThenInclude(b => b.BandGenres)
                          .ThenInclude(db => db.Genre)
                          .Include(p => p.Stage)
                          .Include(p => p.Festival)
                          .FirstOrDefaultAsync(p => p.Id == performance.Id);

            var performanceDTO = _mapper.Map <PerformanceDTO>(performance);

            return(performanceDTO);
        }
        public void ActiityChangeSave(PerformanceEntity performance)
        {
            var parameters = new List <SqlParameter>();

            var sql = @"
    insert into
        [KGWS].[dbo].[work_action]
        (
         [block_name]
        ,[section_name]
        ,[activity_name]
        ,[user_id]
        )
    values
        (
         @block_name
        ,@section_name
        ,@activity_name
        ,@user_id
        )
    select SCOPE_IDENTITY() as id
    ";

            parameters.Clear();
            parameters.Add(new SqlParameter("@block_name", performance.WorkEntity.WorkBlockName));
            parameters.Add(new SqlParameter("@section_name", performance.WorkEntity.WorkSectionName));
            parameters.Add(new SqlParameter("@activity_name", performance.WorkEntity.WorkActivityName));
            parameters.Add(new SqlParameter("@user_id", performance.User.UserId));
            var id = 0;

            SQLServerHelper.Query(
                sql,
                parameters.ToArray(),
                reader =>
            {
                id = Convert.ToInt32(reader["id"]);
            });

            sql = @"
    insert into
        [KGWS].[dbo].[Time]
        (
         [start_time]
        ,[end_time]
        ,[action_id]
        ,[milliseconds]
        ,[seconds]
        ,[minutes]
        ,[hours]
        ,[days]
        ,[total_milliseconds]
        ,[total_seconds]
        ,[total_minutes]
        ,[total_hours]
        ,[total_days]
        )
    values
        (
         @start_time
        ,@end_time
        ,@action_id
        ,@milliseconds
        ,@seconds
        ,@minutes
        ,@hours
        ,@days
        ,@total_milliseconds
        ,@total_seconds
        ,@total_minutes
        ,@total_hours
        ,@total_days
        )
    ";
            parameters.Clear();
            parameters.Add(new SqlParameter("@start_time", performance.StartTime));
            parameters.Add(new SqlParameter("@end_time", performance.EndTime));
            parameters.Add(new SqlParameter("@action_id", id));
            parameters.Add(new SqlParameter("@milliseconds", performance.TimeSpanMs));
            parameters.Add(new SqlParameter("@seconds", performance.TimeSpanS));
            parameters.Add(new SqlParameter("@minutes", performance.TimeSpanM));
            parameters.Add(new SqlParameter("@hours", performance.TimeSpanH));
            parameters.Add(new SqlParameter("@days", performance.TimeSpanD));
            parameters.Add(new SqlParameter("@total_milliseconds", performance.TotalTimeMs));
            parameters.Add(new SqlParameter("@total_seconds", performance.TotalTimeS));
            parameters.Add(new SqlParameter("@total_minutes", performance.TotalTimeM));
            parameters.Add(new SqlParameter("@total_hours", performance.TotalTimeH));
            parameters.Add(new SqlParameter("@total_days", performance.TotalTimeD));
            SQLServerHelper.Execute(sql, parameters.ToArray());
        }
Exemple #10
0
        /// <summary>
        ///初始化基础数据
        /// </summary>
        public void BaseDataOperation(List <DepartmentEntity> entity)
        {
            try
            {
                var time    = DateTime.Now;
                var usetime = new DateTime(time.Year, time.Month, 1).ToString("yyyy-MM-dd");
                var dept    = deptbll.GetList();



                foreach (var item in entity)
                {
                    //所有配置
                    var setUp   = service.AllTitle(item.DepartmentId);
                    var sortStr = string.Join(",", setUp.Where(x => x.isuse).Select(x => x.sort));
                    PerformancetitleEntity title = titlebll.getTitle(usetime, item.DepartmentId);

                    if (title != null)
                    {
                        // #region 何明 2019-09-20
                        //// var deptIds = entity.Select(p => p.DepartmentId).ToList();
                        List <PerformanceEntity> allData = new PerformanceBLL().getScore(usetime, item.DepartmentId);
                        var alluserList = new UserBLL().GetUserList().Where(x => x.DepartmentId == item.DepartmentId && x.DeleteMark != 1 && x.EnabledMark == 1).ToList();//所有人员
                        var delData     = new List <PerformanceEntity>();
                        var addData     = new List <PerformanceEntity>();
                        // #endregion

                        // //根据人员,来做对应的数据处理

                        // //检查各部门人员

                        var thisUsers = alluserList.Where(p => p.DepartmentId == item.DepartmentId).Select(x => x.UserId).ToList();
                        // if (Debugger.IsAttached && (thisUsers.Contains("18d4ee5a-e239-49c3-b018-993cb711d0e4") || thisUsers.Contains("d15d843d-85e1-40c7-bcae-02f705855a39")))
                        // {
                        //     //拿用户熊红做测试用
                        //     var a = string.Empty;

                        // }
                        // //找到已经不在本班组的数据,并删除数据
                        var thisDelList = allData.Where(p => p.deparmentid == item.DepartmentId && !thisUsers.Contains(p.userid)).ToList();
                        delData.AddRange(thisDelList);
                        // //找到本班组需要新增的人
                        var addedUsers = allData.Where(p => p.deparmentid == item.DepartmentId).Select(x => x.userid).ToList();
                        var addUsers   = alluserList.Where(p => p.DepartmentId == item.DepartmentId && !addedUsers.Contains(p.UserId)).ToList(); //不在数据内的用户的Id
                                                                                                                                                 //构造新增实体
                        foreach (var user in addUsers)
                        {
                            var one = new PerformanceEntity();
                            one.performanceid = Guid.NewGuid().ToString();
                            one.score         = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0";
                            one.userid        = user.UserId;
                            one.usetime       = usetime;
                            one.deparmentid   = item.DepartmentId;
                            one.titleid       = title.titleid;
                            one.sort          = sortStr;
                            one.deparmentname = item.FullName;
                            one.username      = user.RealName;
                            one.photo         = user.Photo;
                            one.quarters      = user.Quarters;
                            one.planer        = user.Planer;
                            addData.Add(one);
                        }
                        if (addData != null && addData.Count > 0)
                        {
                            Scorebll.Insert(addData);//新增的数据
                            //if (addData.Any(x => x.userid == "d15d843d-85e1-40c7-bcae-02f705855a39"))
                            //{
                            //    var b = "";
                            //}
                        }
                        if (delData != null && delData.Count > 0)
                        {
                            Scorebll.Delete(delData);//删除的数据
                        }
                    }
                    else
                    {
                        if (setUp.Count > 0)
                        {
                            var sort = setUp.Where(x => x.isuse).ToList();
                            PerformancetitleEntity Title = new PerformancetitleEntity();
                            Title.departmentid = item.DepartmentId;
                            Title.name         = string.Join(",", sort.Select(x => x.name));
                            Title.titleid      = Guid.NewGuid().ToString();
                            Title.sort         = sortStr;
                            Title.usetime      = usetime;
                            var userList = pbll.GetListByDept(item.DepartmentId).ToList();
                            List <PerformanceEntity> add = new List <PerformanceEntity>();
                            foreach (var user in userList)
                            {
                                var one = new PerformanceEntity();
                                one.performanceid = Guid.NewGuid().ToString();
                                one.score         = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0";
                                one.userid        = user.ID;
                                one.usetime       = usetime;
                                one.deparmentid   = item.DepartmentId;
                                one.titleid       = Title.titleid;
                                one.sort          = sortStr;
                                one.deparmentname = item.FullName;
                                one.username      = user.Name;
                                one.photo         = user.Photo;
                                one.quarters      = user.Quarters;
                                one.planer        = user.Planer;
                                add.Add(one);
                            }
                            service.operation(new List <PerformancesetupEntity>(), new List <PerformancesetupEntity>(), new List <PerformancesetupEntity>(), Title, add);
                            var up    = new List <PerformanceupEntity>();
                            var oneup = new PerformanceupEntity();
                            oneup.id             = Guid.NewGuid().ToString();
                            oneup.deptcode       = item.EnCode;
                            oneup.titleid        = Title.titleid;
                            oneup.departmentid   = item.DepartmentId;
                            oneup.departmentname = item.FullName;
                            oneup.parentid       = item.ParentId;
                            oneup.parentname     = dept.FirstOrDefault(x => x.DepartmentId == item.ParentId).FullName;
                            oneup.parentcode     = dept.FirstOrDefault(x => x.DepartmentId == item.ParentId).EnCode;
                            oneup.usetime        = usetime;
                            oneup.useyear        = time.Year.ToString();
                            oneup.isup           = false;
                            up.Add(oneup);
                            upbll.add(up);
                        }
                        else
                        {
                            var setup = new List <PerformancesetupEntity>();

                            for (int i = 0; i < 9; i++)
                            {
                                var OneSetUp = new PerformancesetupEntity();
                                OneSetUp.createtime        = time;
                                OneSetUp.performancetypeid = Guid.NewGuid().ToString();
                                OneSetUp.isupdate          = false;
                                OneSetUp.departmentid      = item.DepartmentId;
                                #region  固定类型
                                if (i == 2)
                                {
                                    continue;
                                }
                                switch (i)
                                {
                                case 0:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "绩效金额(元)";
                                    OneSetUp.type  = 1;
                                    OneSetUp.sort  = i;
                                    break;

                                case 1:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "绩效得分";
                                    OneSetUp.type  = 1;
                                    OneSetUp.sort  = i;
                                    break;

                                case 3:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "实际出勤(班次)";
                                    OneSetUp.type  = 2;
                                    OneSetUp.sort  = i;
                                    break;

                                case 4:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "值班(次)";
                                    OneSetUp.type  = 2;
                                    OneSetUp.sort  = i;
                                    break;

                                case 5:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "完成任务数";
                                    OneSetUp.type  = 2;
                                    OneSetUp.sort  = i;
                                    break;

                                case 6:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "任务总分";
                                    OneSetUp.type  = 2;
                                    OneSetUp.sort  = i;
                                    break;

                                case 7:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "奖励(元)";
                                    OneSetUp.type  = 2;
                                    OneSetUp.sort  = i;
                                    break;

                                case 8:
                                    OneSetUp.isuse = true;
                                    OneSetUp.name  = "考核(元)";
                                    OneSetUp.type  = 2;
                                    OneSetUp.sort  = i;
                                    break;
                                }

                                #endregion
                                setup.Add(OneSetUp);
                            }

                            PerformancetitleEntity Title = new PerformancetitleEntity();
                            Title.departmentid = item.DepartmentId;
                            Title.name         = "绩效金额(元),绩效得分,实际出勤(班次),值班(次),完成任务数,任务总分,奖励(元),考核(元)";
                            Title.titleid      = Guid.NewGuid().ToString();
                            Title.usetime      = usetime;
                            Title.sort         = "0,1,3,4,5,6,7,8";
                            var userList = pbll.GetListByDept(item.DepartmentId).ToList();
                            List <PerformanceEntity> add = new List <PerformanceEntity>();
                            foreach (var user in userList)
                            {
                                var one = new PerformanceEntity();
                                one.performanceid = Guid.NewGuid().ToString();
                                one.score         = "0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0";
                                one.userid        = user.ID;
                                one.usetime       = usetime;
                                one.titleid       = Title.titleid;
                                one.deparmentid   = item.DepartmentId;
                                one.sort          = "0,1,3,4,5,6,7,8";
                                one.deparmentname = item.FullName;
                                one.username      = user.Name;
                                one.photo         = user.Photo;
                                one.quarters      = user.Quarters;
                                one.planer        = user.Planer;
                                add.Add(one);
                            }

                            service.operation(setup, new List <PerformancesetupEntity>(), new List <PerformancesetupEntity>(), Title, add);
                            var up    = new List <PerformanceupEntity>();
                            var oneup = new PerformanceupEntity();
                            oneup.id             = Guid.NewGuid().ToString();
                            oneup.deptcode       = item.EnCode;
                            oneup.titleid        = Title.titleid;
                            oneup.departmentid   = item.DepartmentId;
                            oneup.departmentname = item.FullName;
                            oneup.parentid       = item.ParentId;
                            oneup.parentname     = dept.FirstOrDefault(x => x.DepartmentId == item.ParentId).FullName;
                            oneup.parentcode     = dept.FirstOrDefault(x => x.DepartmentId == item.ParentId).EnCode;
                            oneup.usetime        = usetime;
                            oneup.useyear        = time.Year.ToString();
                            oneup.isup           = false;
                            up.Add(oneup);
                            upbll.add(up);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }
        }