656 lines
31 KiB
C#
656 lines
31 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.QH;
|
|
using WX.CRM.Model.Entity;
|
|
|
|
namespace WX.CRM.BLL.QH
|
|
{
|
|
public class QH_PerformanceQuery_BL : IQH_PerformanceQuery_Q
|
|
{
|
|
//员工业绩汇总查询(实时)
|
|
public List<Model.QueryMap.QH_UserPerformanceQuery> QH_UserPerformanceQuery(ref Common.Pager pager, string p_groupId, string p_inneruserId, decimal p_saleEid, DateTime? p_sd1, DateTime? p_sd2, decimal p_isDismiss, string businessType)
|
|
{
|
|
var ds = new WX.CRM.DAL.QH.QH_PerformanceQuery_DAL().QH_UserPerformanceQuery(
|
|
ref pager,
|
|
p_groupId,
|
|
p_inneruserId,
|
|
p_saleEid,
|
|
p_sd1,
|
|
p_sd2,
|
|
p_isDismiss,
|
|
businessType);
|
|
|
|
var list = ds.Tables[1].ToList<Model.QueryMap.QH_UserPerformanceQuery>();
|
|
var model = ds.Tables[2].ToList<Model.QueryMap.QH_UserPerformanceQuery>().FirstOrDefault();
|
|
//model.isDismiss = null;
|
|
pager.totalRows = int.Parse(ds.Tables[0].Rows[0][0].ToString());
|
|
list.Add(model);
|
|
return list;
|
|
}
|
|
|
|
|
|
//组别业绩汇总查询(实时)
|
|
public List<Model.QueryMap.QH_GroupPerformanceQuery> QH_GroupPerformanceQuery(ref Pager pager, string p_deptId, string p_groupId, DateTime? p_sd1, DateTime? p_sd2)
|
|
{
|
|
var ds = new WX.CRM.DAL.QH.QH_PerformanceQuery_DAL().QH_GroupPerformanceQuery(
|
|
ref pager,
|
|
p_deptId,
|
|
p_groupId,
|
|
p_sd1,
|
|
p_sd2);
|
|
var list = ds.Tables[1].ToList<Model.QueryMap.QH_GroupPerformanceQuery>();
|
|
var model = ds.Tables[0].ToList<Model.QueryMap.QH_GroupPerformanceQuery>().FirstOrDefault();
|
|
pager.totalRows = ds.Tables[1].Rows.Count;
|
|
list.Add(model);
|
|
return list;
|
|
}
|
|
|
|
//组别业绩汇总查询(缓存表初始化)
|
|
//public void QH_GroupPerformanceInitCache(string deptid, decimal yearMonth)
|
|
//{
|
|
// new WX.CRM.DAL.QH.QH_PerformanceQuery_DAL().QH_GroupPerformanceInitCache(deptid, yearMonth);
|
|
//}
|
|
|
|
//贵金属员工业绩汇总查询(缓存表查询)
|
|
//public List<Model.QueryMap.QH_UserPerformanceQuery> QH_UserPerformanceQueryCache(
|
|
// ref Pager pager,
|
|
// string p_groupId,
|
|
// string p_innseruserId,
|
|
// decimal p_saleEid,
|
|
// decimal? p_yearMont,
|
|
// decimal p_isDismiss,
|
|
// out DateTime initDate
|
|
// )
|
|
//{
|
|
// var ds = new WX.CRM.DAL.QH.QH_PerformanceQuery_DAL().QH_UserPerformanceQueryCache(
|
|
// ref pager,
|
|
// p_groupId,
|
|
// p_innseruserId,
|
|
// p_saleEid,
|
|
// p_yearMont,
|
|
// p_isDismiss,
|
|
// out initDate);
|
|
|
|
// var list = ds.Tables[1].ToList<Model.QueryMap.QH_UserPerformanceQuery>();
|
|
// foreach (var item in list)
|
|
// {
|
|
// if (null != item.COMMISSIONTOTALENDAMT)
|
|
// item.COMMISSIONTOTALENDAMT2 = item.COMMISSIONTOTALENDAMT.Value.ToString("p");
|
|
// }
|
|
// var model = ds.Tables[2].ToList<Model.QueryMap.QH_UserPerformanceQuery>().FirstOrDefault();
|
|
// pager.totalRows = int.Parse(ds.Tables[0].Rows[0][0].ToString());
|
|
// list.Add(model);
|
|
// return list;
|
|
//}
|
|
|
|
//员工业绩汇总查询(缓存表初始化)
|
|
//public void QH_UserPerformanceInitCache(decimal yearMonth)
|
|
//{
|
|
// new WX.CRM.DAL.QH.QH_PerformanceQuery_DAL().QH_UserPerformanceInitCache(yearMonth);
|
|
//}
|
|
|
|
//组别业绩汇总查询(缓存表查询)
|
|
//public List<Model.QueryMap.QH_GroupPerformanceQuery> QH_GroupPerformanceQueryCache(
|
|
// ref Pager pager,
|
|
// string p_deptId,
|
|
// string p_groupId,
|
|
// decimal? yearMont,
|
|
// out DateTime initDate
|
|
//)
|
|
//{
|
|
// var ds = new WX.CRM.DAL.QH.QH_PerformanceQuery_DAL().QH_GroupPerformanceQueryCache(
|
|
// ref pager,
|
|
// p_deptId,
|
|
// p_groupId,
|
|
// yearMont,
|
|
// out initDate);
|
|
// var list = ds.Tables[1].ToList<Model.QueryMap.QH_GroupPerformanceQuery>();
|
|
// foreach (var item in list)
|
|
// {
|
|
// if (null != item.COMMISSIONTOTALENDAMT)
|
|
// item.COMMISSIONTOTALENDAMT2 = item.COMMISSIONTOTALENDAMT.Value.ToString("p");
|
|
// }
|
|
// var model = ds.Tables[0].ToList<Model.QueryMap.QH_GroupPerformanceQuery>().FirstOrDefault();
|
|
// pager.totalRows = ds.Tables[1].Rows.Count;
|
|
// list.Add(model);
|
|
// return list;
|
|
//}
|
|
|
|
|
|
//员工业绩汇总查询(月结)
|
|
public List<QH_BALANCESALEUSER> QH_MonthlyUserPerformanceQuery(ref Pager pager, decimal p_saleEid, decimal p_isDismiss, string groupId, decimal inneruserId, string checkResult, string month)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var user = db.BAS_INNERUSER.Where(p => p.PKID == inneruserId).FirstOrDefault();
|
|
var data = db.QH_BALANCESALEUSER.AsQueryable();
|
|
DateTime dt2 = DateTime.Now;
|
|
|
|
if (!string.IsNullOrWhiteSpace(month))
|
|
{
|
|
DateTime dt = Convert.ToDateTime(month);
|
|
dt2 = Convert.ToDateTime(month.Substring(0, 4) + "-" + month.Substring(4, 2) + "-01");
|
|
data = data.Where(m => m.MONTH == dt);
|
|
}
|
|
if (p_saleEid > 0)
|
|
data = data.Where(m => m.EID == p_saleEid);
|
|
if (p_isDismiss >= 0)
|
|
data = data.Where(m => m.ISDISMISS == p_isDismiss);
|
|
if (!string.IsNullOrWhiteSpace(checkResult))
|
|
{
|
|
//data = data.Where(m => (m.OPENCOUNT + m.OUTAMT + m.OUTAMTTIMES + m.TRADENUMBER + m.TRADETIMES
|
|
// + m.INAMT + m.INAMTTIMES + m.INOUTAMT + m.INTERVALTRADEUSERCOUNT + m.EXTENDELIVERYAMT
|
|
// + m.CONTRACTCOUNT + m.COMMISSION + m.COMMISSIONTOTAL > 0)
|
|
// && m.ISDISMISS == 1 && m.DISMISSTIME < dt);
|
|
}
|
|
if (inneruserId > 1 && user != null)
|
|
{
|
|
data = data.Where(m => m.EID == user.EID);
|
|
}
|
|
else if (!string.IsNullOrEmpty(groupId))
|
|
{
|
|
|
|
decimal[] _groupids = OperationUtil.ConvertToDecimal(groupId.Split(','));
|
|
var userEIds = db.BAS_MON_INNERUSER.Where(d => (db.BAS_MON_INNERUSERGROUP.Where(m => _groupids.Contains(m.GID) && m.BALANCECODE == dt2).Select(m => m.INNERUSERID)).Contains(d.PKID) && d.BALANCECODE == dt2).Select(p => p.EID).ToArray<decimal>();
|
|
data = data.Where(m => userEIds.Contains(m.EID));
|
|
}
|
|
|
|
|
|
#region 排序
|
|
if (pager.order == "desc")
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "GNAME":
|
|
data = data.OrderByDescending(m => m.GNAME);
|
|
break;
|
|
case "DIXING":
|
|
data = data.OrderByDescending(m => m.DIXING);
|
|
break;
|
|
case "PERFORMANCEAMOUNT":
|
|
data = data.OrderByDescending(m => m.PERFORMANCEAMOUNT);
|
|
break;
|
|
case "COMMISSIONRATIO":
|
|
data = data.OrderByDescending(m => m.COMMISSIONRATIO);
|
|
break;
|
|
case "ORDERCOUNT":
|
|
data = data.OrderByDescending(m => m.ORDERCOUNT);
|
|
break;
|
|
case "ORDERCOUNTRATIO":
|
|
data = data.OrderByDescending(m => m.ORDERCOUNTRATIO);
|
|
break;
|
|
case "ALLRATIO":
|
|
data = data.OrderByDescending(m => m.ALLRATIO);
|
|
break;
|
|
case "YULIU":
|
|
data = data.OrderByDescending(m => m.YULIU);
|
|
break;
|
|
case "FANHUAN":
|
|
data = data.OrderByDescending(m => m.FANHUAN);
|
|
break;
|
|
case "TUIKUAN":
|
|
data = data.OrderByDescending(m => m.TUIKUAN);
|
|
break;
|
|
case "SHISHOU":
|
|
data = data.OrderByDescending(m => m.SHISHOU);
|
|
break;
|
|
default:
|
|
data = data.OrderByDescending(m => m.ALLPERFORMANCEAMOUNT);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "GNAME":
|
|
data = data.OrderBy(m => m.GNAME);
|
|
break;
|
|
case "DIXING":
|
|
data = data.OrderBy(m => m.DIXING);
|
|
break;
|
|
case "PERFORMANCEAMOUNT":
|
|
data = data.OrderBy(m => m.PERFORMANCEAMOUNT);
|
|
break;
|
|
case "COMMISSIONRATIO":
|
|
data = data.OrderBy(m => m.COMMISSIONRATIO);
|
|
break;
|
|
case "ORDERCOUNT":
|
|
data = data.OrderBy(m => m.ORDERCOUNT);
|
|
break;
|
|
case "ORDERCOUNTRATIO":
|
|
data = data.OrderBy(m => m.ORDERCOUNTRATIO);
|
|
break;
|
|
case "ALLRATIO":
|
|
data = data.OrderBy(m => m.ALLRATIO);
|
|
break;
|
|
case "YULIU":
|
|
data = data.OrderBy(m => m.YULIU);
|
|
break;
|
|
case "FANHUAN":
|
|
data = data.OrderBy(m => m.FANHUAN);
|
|
break;
|
|
case "TUIKUAN":
|
|
data = data.OrderBy(m => m.TUIKUAN);
|
|
break;
|
|
case "SHISHOU":
|
|
data = data.OrderBy(m => m.SHISHOU);
|
|
break;
|
|
default:
|
|
data = data.OrderBy(m => m.ALLPERFORMANCEAMOUNT);
|
|
break;
|
|
}
|
|
}
|
|
#endregion
|
|
var model = (from a in data
|
|
group a by 1 into q
|
|
select new
|
|
{
|
|
pkid = -1,
|
|
INNERUSERID = -1,
|
|
EID = -1,
|
|
UNAME = "",
|
|
GID = -1,
|
|
GNAME = "合计",
|
|
DIXING = q.Sum(m => m.DIXING),
|
|
PERFORMANCEAMOUNT = q.Sum(m => m.PERFORMANCEAMOUNT),
|
|
COMMISSIONRATIO = q.Sum(m => m.COMMISSIONRATIO),
|
|
ORDERCOUNT = q.Sum(m => m.ORDERCOUNT),
|
|
ORDERCOUNTRATIO = q.Sum(m => m.ORDERCOUNTRATIO),
|
|
ALLRATIO = q.Sum(m => m.ALLRATIO),
|
|
YINGSHOU = q.Sum(m => m.YINGSHOU),
|
|
YULIU = q.Sum(m => m.YULIU),
|
|
FANHUAN = q.Sum(m => m.FANHUAN),
|
|
TUIKUAN = q.Sum(m => m.TUIKUAN),
|
|
SHISHOU = q.Sum(m => m.SHISHOU),
|
|
// CTIME = q.Select(m => m.CTIME),
|
|
// MONTH = q.Select(m => m.MONTH),
|
|
TOUSU = q.Sum(m => m.TOUSU),
|
|
CHUFA = q.Sum(m => m.CHUFA),
|
|
CHUQIN = q.Sum(m => m.CHUQIN),
|
|
ALLPERFORMANCEAMOUNT = q.Sum(m => m.ALLPERFORMANCEAMOUNT),
|
|
WORKDAY = q.Sum(m => m.WORKDAY),
|
|
DEDUCTIONS = q.Sum(m => m.DEDUCTIONS),
|
|
REWARD = q.Sum(m => m.REWARD),
|
|
|
|
isdismiss = q.Count()
|
|
|
|
}).ToList().Select(m => new QH_BALANCESALEUSER()
|
|
{
|
|
PKID = m.pkid,
|
|
INNERUSERID = m.INNERUSERID,
|
|
EID = m.EID,
|
|
UNAME = m.UNAME,
|
|
GID = m.GID,
|
|
GNAME = m.GNAME,
|
|
DIXING = m.DIXING,
|
|
PERFORMANCEAMOUNT = m.PERFORMANCEAMOUNT,
|
|
COMMISSIONRATIO = m.COMMISSIONRATIO,
|
|
ORDERCOUNT = m.ORDERCOUNT,
|
|
ORDERCOUNTRATIO = m.ORDERCOUNTRATIO,
|
|
ALLRATIO = m.ALLRATIO,
|
|
YINGSHOU = m.YINGSHOU,
|
|
YULIU = m.YULIU,
|
|
FANHUAN = m.FANHUAN,
|
|
TUIKUAN = m.TUIKUAN,
|
|
SHISHOU = m.SHISHOU,
|
|
TOUSU = m.TOUSU,
|
|
CHUFA = m.CHUFA,
|
|
CHUQIN = m.CHUQIN,
|
|
ALLPERFORMANCEAMOUNT = m.ALLPERFORMANCEAMOUNT,
|
|
WORKDAY = m.WORKDAY,
|
|
DEDUCTIONS = m.DEDUCTIONS,
|
|
REWARD = m.REWARD,
|
|
ISDISMISS = m.isdismiss
|
|
}).FirstOrDefault();
|
|
PagerUtil.SetPager<QH_BALANCESALEUSER>(ref data, ref pager);
|
|
var list = data.ToList();
|
|
if (model != null)
|
|
list.Add(model);
|
|
return list;
|
|
}
|
|
}
|
|
|
|
//组别业绩汇总查询(月结)
|
|
public List<QH_BALANCESALEGROUPER> QH_MonthlyGroupPerformanceQuery(ref Pager pager, string groupId, DateTime month)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var data = db.QH_BALANCESALEGROUPER.Where(m => m.MONTH == month).AsQueryable();
|
|
if (!string.IsNullOrEmpty(groupId))
|
|
{
|
|
string[] _groupids = groupId.Split(',');
|
|
List<decimal> c = _groupids.Select(m => Convert.ToDecimal(m)).ToList();
|
|
List<decimal?> groupIds = new List<decimal?>();
|
|
c.ForEach(m => groupIds.Add(m));
|
|
//var groupNames = db.GJS_MON_INNERGROUP.Where(m => _groupids.Contains(m.GID)&&m.BALANCECODE==month).Select(m => m.GNAME).ToArray<string>();
|
|
//data = data.Where(m => groupNames.Contains(m.GROUPNAME));
|
|
data = data.Where(m => groupIds.Contains(m.GID));
|
|
}
|
|
#region 排序
|
|
if (pager.order == "desc")
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "GNAME":
|
|
data = data.OrderByDescending(m => m.GNAME);
|
|
break;
|
|
case "DIXING":
|
|
data = data.OrderByDescending(m => m.DIXING);
|
|
break;
|
|
case "PERFORMANCEAMOUNT":
|
|
data = data.OrderByDescending(m => m.PERFORMANCEAMOUNT);
|
|
break;
|
|
case "COMMISSIONRATIO":
|
|
data = data.OrderByDescending(m => m.COMMISSIONRATIO);
|
|
break;
|
|
case "ORDERCOUNT":
|
|
data = data.OrderByDescending(m => m.ORDERCOUNT);
|
|
break;
|
|
case "ORDERCOUNTRATIO":
|
|
data = data.OrderByDescending(m => m.ORDERCOUNTRATIO);
|
|
break;
|
|
case "ALLRATIO":
|
|
data = data.OrderByDescending(m => m.ALLRATIO);
|
|
break;
|
|
case "YINGSHOU":
|
|
data = data.OrderByDescending(m => m.YINGSHOU);
|
|
break;
|
|
case "YULIU":
|
|
data = data.OrderByDescending(m => m.YULIU);
|
|
break;
|
|
case "FANHUAN":
|
|
data = data.OrderByDescending(m => m.FANHUAN);
|
|
break;
|
|
case "TUIKUAN":
|
|
data = data.OrderByDescending(m => m.TUIKUAN);
|
|
break;
|
|
case "SHISHOU":
|
|
data = data.OrderByDescending(m => m.SHISHOU);
|
|
break;
|
|
case "ORDERRATE":
|
|
data = data.OrderByDescending(m => m.ORDERRATE);
|
|
break;
|
|
default:
|
|
data = data.OrderByDescending(m => m.ALLPERFORMANCEAMOUNT);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "GNAME":
|
|
data = data.OrderBy(m => m.GNAME);
|
|
break;
|
|
case "DIXING":
|
|
data = data.OrderBy(m => m.DIXING);
|
|
break;
|
|
case "PERFORMANCEAMOUNT":
|
|
data = data.OrderBy(m => m.PERFORMANCEAMOUNT);
|
|
break;
|
|
case "COMMISSIONRATIO":
|
|
data = data.OrderBy(m => m.COMMISSIONRATIO);
|
|
break;
|
|
case "ORDERCOUNT":
|
|
data = data.OrderBy(m => m.ORDERCOUNT);
|
|
break;
|
|
case "ORDERCOUNTRATIO":
|
|
data = data.OrderBy(m => m.ORDERCOUNTRATIO);
|
|
break;
|
|
case "ALLRATIO":
|
|
data = data.OrderBy(m => m.ALLRATIO);
|
|
break;
|
|
case "YINGSHOU":
|
|
data = data.OrderBy(m => m.YINGSHOU);
|
|
break;
|
|
case "YULIU":
|
|
data = data.OrderBy(m => m.YULIU);
|
|
break;
|
|
case "FANHUAN":
|
|
data = data.OrderBy(m => m.FANHUAN);
|
|
break;
|
|
case "TUIKUAN":
|
|
data = data.OrderBy(m => m.TUIKUAN);
|
|
break;
|
|
case "SHISHOU":
|
|
data = data.OrderBy(m => m.SHISHOU);
|
|
break;
|
|
case "ORDERRATE":
|
|
data = data.OrderBy(m => m.ORDERRATE);
|
|
break;
|
|
default:
|
|
data = data.OrderBy(m => m.ALLPERFORMANCEAMOUNT);
|
|
break;
|
|
}
|
|
}
|
|
#endregion
|
|
var model = (from a in data
|
|
group a by 1 into q
|
|
select new
|
|
{
|
|
pkid = -1,
|
|
GNAME = "合计",
|
|
DIXING = q.Sum(m => m.DIXING),
|
|
PERFORMANCEAMOUNT = q.Sum(m => m.PERFORMANCEAMOUNT),
|
|
COMMISSIONRATIO = q.Sum(m => m.COMMISSIONRATIO),
|
|
ORDERCOUNT = q.Sum(m => m.ORDERCOUNT),
|
|
ORDERCOUNTRATIO = q.Sum(m => m.ORDERCOUNTRATIO),
|
|
ALLRATIO = q.Sum(m => m.ALLRATIO),
|
|
YINGSHOU = q.Sum(m => m.YINGSHOU),
|
|
YULIU = q.Sum(m => m.YULIU),
|
|
FANHUAN = q.Sum(m => m.FANHUAN),
|
|
TUIKUAN = q.Sum(m => m.TUIKUAN),
|
|
SHISHOU = q.Sum(m => m.SHISHOU)
|
|
}).ToList().Select(m => new QH_BALANCESALEGROUPER()
|
|
{
|
|
PKID = m.pkid,
|
|
GNAME = m.GNAME,
|
|
DIXING = m.DIXING,
|
|
PERFORMANCEAMOUNT = m.PERFORMANCEAMOUNT,
|
|
COMMISSIONRATIO = m.COMMISSIONRATIO,
|
|
ORDERCOUNT = m.ORDERCOUNT,
|
|
ORDERCOUNTRATIO = m.ORDERCOUNTRATIO,
|
|
ALLRATIO = m.ALLRATIO,
|
|
YINGSHOU = m.YINGSHOU,
|
|
YULIU = m.YULIU,
|
|
FANHUAN = m.FANHUAN,
|
|
TUIKUAN = m.TUIKUAN,
|
|
SHISHOU = m.SHISHOU
|
|
}).FirstOrDefault();
|
|
PagerUtil.SetPager<QH_BALANCESALEGROUPER>(ref data, ref pager);
|
|
var list = data.ToList();
|
|
if (model != null)
|
|
list.Add(model);
|
|
return list;
|
|
}
|
|
}
|
|
|
|
//组别业绩时间段汇总查询(月结)
|
|
public List<QH_BALANCESALEGROUPER> QH_MonthlyGroupPerformanceCollectQuery(ref Pager pager, DateTime monthStart, DateTime month)
|
|
{
|
|
using (var db = new crmContext())
|
|
{
|
|
var data = db.QH_BALANCESALEGROUPER.Where(m => m.MONTH >= monthStart && m.MONTH <= month).AsQueryable();
|
|
|
|
var dataGroup = (from a in data
|
|
group a by a.GNAME into q
|
|
select new
|
|
{
|
|
pkid = -1,
|
|
GNAME = "合计",
|
|
DIXING = q.Sum(m => m.DIXING),
|
|
PERFORMANCEAMOUNT = q.Sum(m => m.PERFORMANCEAMOUNT),
|
|
COMMISSIONRATIO = q.Sum(m => m.COMMISSIONRATIO),
|
|
ORDERCOUNT = q.Sum(m => m.ORDERCOUNT),
|
|
ORDERCOUNTRATIO = q.Sum(m => m.ORDERCOUNTRATIO),
|
|
ALLRATIO = q.Sum(m => m.ALLRATIO),
|
|
YINGSHOU = q.Sum(m => m.YINGSHOU),
|
|
YULIU = q.Sum(m => m.YULIU),
|
|
FANHUAN = q.Sum(m => m.FANHUAN),
|
|
TUIKUAN = q.Sum(m => m.TUIKUAN),
|
|
SHISHOU = q.Sum(m => m.SHISHOU)
|
|
}).ToList().Select(m => new QH_BALANCESALEGROUPER()
|
|
{
|
|
PKID = m.pkid,
|
|
GNAME = m.GNAME,
|
|
DIXING = m.DIXING,
|
|
PERFORMANCEAMOUNT = m.PERFORMANCEAMOUNT,
|
|
COMMISSIONRATIO = m.COMMISSIONRATIO,
|
|
ORDERCOUNT = m.ORDERCOUNT,
|
|
ORDERCOUNTRATIO = m.ORDERCOUNTRATIO,
|
|
ALLRATIO = m.ALLRATIO,
|
|
YINGSHOU = m.YINGSHOU,
|
|
YULIU = m.YULIU,
|
|
FANHUAN = m.FANHUAN,
|
|
TUIKUAN = m.TUIKUAN,
|
|
SHISHOU = m.SHISHOU
|
|
}).AsQueryable();
|
|
|
|
#region 排序
|
|
if (pager.order == "desc")
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "GNAME":
|
|
data = data.OrderByDescending(m => m.GNAME);
|
|
break;
|
|
case "DIXING":
|
|
data = data.OrderByDescending(m => m.DIXING);
|
|
break;
|
|
case "PERFORMANCEAMOUNT":
|
|
data = data.OrderByDescending(m => m.PERFORMANCEAMOUNT);
|
|
break;
|
|
case "COMMISSIONRATIO":
|
|
data = data.OrderByDescending(m => m.COMMISSIONRATIO);
|
|
break;
|
|
case "ORDERCOUNT":
|
|
data = data.OrderByDescending(m => m.ORDERCOUNT);
|
|
break;
|
|
case "ORDERCOUNTRATIO":
|
|
data = data.OrderByDescending(m => m.ORDERCOUNTRATIO);
|
|
break;
|
|
case "ALLRATIO":
|
|
data = data.OrderByDescending(m => m.ALLRATIO);
|
|
break;
|
|
case "YINGSHOU":
|
|
data = data.OrderByDescending(m => m.YINGSHOU);
|
|
break;
|
|
case "YULIU":
|
|
data = data.OrderByDescending(m => m.YULIU);
|
|
break;
|
|
case "FANHUAN":
|
|
data = data.OrderByDescending(m => m.FANHUAN);
|
|
break;
|
|
case "TUIKUAN":
|
|
data = data.OrderByDescending(m => m.TUIKUAN);
|
|
break;
|
|
case "SHISHOU":
|
|
data = data.OrderByDescending(m => m.SHISHOU);
|
|
break;
|
|
case "ORDERRATE":
|
|
data = data.OrderByDescending(m => m.ORDERRATE);
|
|
break;
|
|
default:
|
|
data = data.OrderByDescending(m => m.ALLPERFORMANCEAMOUNT);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "GNAME":
|
|
data = data.OrderBy(m => m.GNAME);
|
|
break;
|
|
case "DIXING":
|
|
data = data.OrderBy(m => m.DIXING);
|
|
break;
|
|
case "PERFORMANCEAMOUNT":
|
|
data = data.OrderBy(m => m.PERFORMANCEAMOUNT);
|
|
break;
|
|
case "COMMISSIONRATIO":
|
|
data = data.OrderBy(m => m.COMMISSIONRATIO);
|
|
break;
|
|
case "ORDERCOUNT":
|
|
data = data.OrderBy(m => m.ORDERCOUNT);
|
|
break;
|
|
case "ORDERCOUNTRATIO":
|
|
data = data.OrderBy(m => m.ORDERCOUNTRATIO);
|
|
break;
|
|
case "ALLRATIO":
|
|
data = data.OrderBy(m => m.ALLRATIO);
|
|
break;
|
|
case "YINGSHOU":
|
|
data = data.OrderBy(m => m.YINGSHOU);
|
|
break;
|
|
case "YULIU":
|
|
data = data.OrderBy(m => m.YULIU);
|
|
break;
|
|
case "FANHUAN":
|
|
data = data.OrderBy(m => m.FANHUAN);
|
|
break;
|
|
case "TUIKUAN":
|
|
data = data.OrderBy(m => m.TUIKUAN);
|
|
break;
|
|
case "SHISHOU":
|
|
data = data.OrderBy(m => m.SHISHOU);
|
|
break;
|
|
case "ORDERRATE":
|
|
data = data.OrderBy(m => m.ORDERRATE);
|
|
break;
|
|
default:
|
|
data = data.OrderBy(m => m.ALLPERFORMANCEAMOUNT);
|
|
break;
|
|
}
|
|
}
|
|
#endregion
|
|
var model = (from a in dataGroup
|
|
group a by 1 into q
|
|
select new
|
|
{
|
|
pkid = -1,
|
|
GNAME = "合计",
|
|
DIXING = q.Sum(m => m.DIXING),
|
|
PERFORMANCEAMOUNT = q.Sum(m => m.PERFORMANCEAMOUNT),
|
|
COMMISSIONRATIO = q.Sum(m => m.COMMISSIONRATIO),
|
|
ORDERCOUNT = q.Sum(m => m.ORDERCOUNT),
|
|
ORDERCOUNTRATIO = q.Sum(m => m.ORDERCOUNTRATIO),
|
|
ALLRATIO = q.Sum(m => m.ALLRATIO),
|
|
YINGSHOU = q.Sum(m => m.YINGSHOU),
|
|
YULIU = q.Sum(m => m.YULIU),
|
|
FANHUAN = q.Sum(m => m.FANHUAN),
|
|
TUIKUAN = q.Sum(m => m.TUIKUAN),
|
|
SHISHOU = q.Sum(m => m.SHISHOU)
|
|
}).ToList().Select(m => new QH_BALANCESALEGROUPER()
|
|
{
|
|
PKID = m.pkid,
|
|
GNAME = m.GNAME,
|
|
DIXING = m.DIXING,
|
|
PERFORMANCEAMOUNT = m.PERFORMANCEAMOUNT,
|
|
COMMISSIONRATIO = m.COMMISSIONRATIO,
|
|
ORDERCOUNT = m.ORDERCOUNT,
|
|
ORDERCOUNTRATIO = m.ORDERCOUNTRATIO,
|
|
ALLRATIO = m.ALLRATIO,
|
|
YINGSHOU = m.YINGSHOU,
|
|
YULIU = m.YULIU,
|
|
FANHUAN = m.FANHUAN,
|
|
TUIKUAN = m.TUIKUAN,
|
|
SHISHOU = m.SHISHOU
|
|
}).FirstOrDefault();
|
|
PagerUtil.SetPager<QH_BALANCESALEGROUPER>(ref dataGroup, ref pager);
|
|
var list = dataGroup.ToList();
|
|
if (model != null)
|
|
list.Add(model);
|
|
return list;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|