Пример #1
0
        /// <summary>
        /// 初始化月度指标明细
        /// 目前直接把权重当作指标分数来看待
        /// </summary>
        /// <param name="month"></param>
        /// <param name="monthTargetId"></param>
        /// <param name="monthBillId"></param>
        /// <param name="target"></param>
        /// <param name="managerList"></param>
        private void InitMonthTargetDetail(string month, long monthTargetId, long monthBillId, Target target, List <Manager> managerList, List <District> districtList)
        {
            if (target.TargetTagId == 1)//区县指标
            {
                if (districtList != null && districtList.Count > 0)
                {
                    MonthLog(monthBillId, "  →批量给指标生成区县指标明细开始");
                    foreach (var dis in districtList)
                    {
                        double?tval = 0;
                        var    tvs  = target.TargetValue.Where(p => p.DistrictId == dis.Id && p.YearMonth == month.Substring(0, 4)).ToList();
                        if (tvs != null && tvs.Count > 0)
                        {
                            tval = tvs[0].TValue;
                        }
                        MonthTargetDetail detail = NewTargetDetail(month, monthBillId, target, monthTargetId);
                        detail.DistrictId = dis.Id;                                          //区县id
                        detail.TValue     = tval * Convert.ToInt16(month.Substring(4)) / 12; //区县的目标值根据年度比例得出
                        _MonthTargetDetailCase.InsertAndGetIdAsync(detail);
                    }
                    MonthLog(monthBillId, "  ←批量给指标生成区县指标明细完成");
                }
            }
            else if (target.TargetTagId == 2)//客户经理
            {
                if (managerList != null && managerList.Count > 0)
                {
                    MonthLog(monthBillId, "  →批量给指标生成客户经理指标明细开始");
                    foreach (var man in managerList)
                    {
                        double?tval = 0;

                        if (man.DistrictId != null)
                        {
                            //var tvs = target.TargetValue.Where(p => p.ManagerNo==man.ManagerNo && p.YearMonth == month).ToList();
                            //if (tvs != null && tvs.Count > 0)
                            //{
                            //    tval = tvs[0].TValue;
                            //}
                            MonthTargetDetail detail = NewTargetDetail(month, monthBillId, target, monthTargetId);
                            detail.ManagerNo   = man.ManagerNo;   //客户经理
                            detail.ManagerName = man.ManagerName; //客户经理名
                            detail.DistrictId  = man.DistrictId;  //客户经理归属区县
                            detail.TValue      = tval;
                            _MonthTargetDetailCase.InsertAndGetIdAsync(detail);
                        }
                    }
                    MonthLog(monthBillId, "  ←批量给指标生成客户经理指标明细完成");
                }
            }
        }
Пример #2
0
        private MonthTargetDetail NewTargetDetail(string month, long monthBillId, Target target, long monthTargetId)
        {
            MonthTargetDetail detail = new MonthTargetDetail
            {
                Id            = 0,
                Month         = month,
                MonthBillId   = monthBillId,//固化单
                MonthTargetId = monthTargetId,
                TargetTagId   = target.TargetTagId,
                TargetTypeId  = target.TargetTypeId,
                TargetId      = target.Id,
                EndTable      = target.EndTable,
                MainField     = target.MainField,
                Weight        = target.Weight,
                CrisisValue   = target.CrisisValue//计分门槛值
            };

            return(detail);
        }