180 lines
7.5 KiB
C#
180 lines
7.5 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.DAL.Qc;
|
|
using WX.CRM.IBLL.Qc;
|
|
using WX.CRM.Model.Entity;
|
|
|
|
namespace WX.CRM.BLL.Qc
|
|
{
|
|
public class QC_GROUPERSCOREDETAIL_BL : IQC_GROUPERSCOREDETAIL_Q
|
|
{
|
|
UserScore_DL userscoreDl = new UserScore_DL();
|
|
#region 获取分页数据列表
|
|
public List<WX.CRM.Model.Entity.QC_GROUPERSCOREDETAIL> GetList(ref Pager pager, string groupId, decimal? grouperEid, decimal? eid, decimal? scoreNo, decimal? status, DateTime? stime, DateTime? etime)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var queryData = db.QC_GROUPERSCOREDETAIL.AsQueryable();
|
|
if (status.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.STATUS == status);
|
|
}
|
|
if (stime.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.CTIME >= stime.Value);
|
|
}
|
|
if (etime.HasValue)
|
|
{
|
|
etime = etime.Value.AddDays(1);
|
|
queryData = queryData.Where(m => m.CTIME < etime.Value);
|
|
}
|
|
if (scoreNo.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.SCORENO == scoreNo.Value);
|
|
}
|
|
if (grouperEid.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.GROUPEREID == grouperEid.Value);
|
|
}
|
|
if (eid.HasValue)
|
|
{
|
|
queryData = queryData.Where(m => m.INNERUSEREID == eid.Value);
|
|
}
|
|
else if (!string.IsNullOrWhiteSpace(groupId))
|
|
{
|
|
decimal[] _groupIds = OperationUtil.ConvertToDecimal(groupId.Split(','));
|
|
var userids = db.BAS_INNERUSERGROUP.Where(m => _groupIds.Contains(m.GID.Value)).Select(m => m.INNERUSERID);
|
|
queryData = queryData.Where(m => userids.Contains(m.INNERUSERID));
|
|
}
|
|
if (pager != null)
|
|
{
|
|
if (pager.order == "desc")
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "CTIME":
|
|
queryData = queryData.OrderByDescending(c => c.CTIME);
|
|
break;
|
|
case "INNERUSERGROUPNAME":
|
|
queryData = queryData.OrderByDescending(c => c.INNERUSERGROUPNAME);
|
|
break;
|
|
case "SCORENO":
|
|
queryData = queryData.OrderByDescending(c => c.SCORENO);
|
|
break;
|
|
default:
|
|
queryData = queryData.OrderByDescending(m => m.INNERUSERGROUPNAME).OrderByDescending(m => m.SCORENO).OrderByDescending(m => m.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "CTIME":
|
|
queryData = queryData.OrderBy(c => c.CTIME);
|
|
break;
|
|
case "INNERUSERGROUPNAME":
|
|
queryData = queryData.OrderBy(c => c.INNERUSERGROUPNAME);
|
|
break;
|
|
case "SCORENO":
|
|
queryData = queryData.OrderBy(c => c.SCORENO);
|
|
break;
|
|
default:
|
|
queryData = queryData.OrderBy(m => m.INNERUSERGROUPNAME).OrderBy(m => m.SCORENO).OrderBy(m => m.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
queryData = queryData.OrderByDescending(m => m.INNERUSERGROUPNAME).OrderByDescending(m => m.SCORENO).OrderByDescending(m => m.CTIME);
|
|
PagerUtil.SetPager<WX.CRM.Model.Entity.QC_GROUPERSCOREDETAIL>(ref queryData, ref pager);
|
|
return queryData.ToList();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 获取汇总数据
|
|
/// <summary>
|
|
/// 获取汇总数据
|
|
/// </summary>
|
|
/// <param name="groupId"></param>
|
|
/// <param name="grouperEid"></param>
|
|
/// <param name="userEId"></param>
|
|
/// <param name="scoreNo"></param>
|
|
/// <param name="status"></param>
|
|
/// <param name="stime"></param>
|
|
/// <param name="etime"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGrouperScoreDetialCount(string groupId, decimal? grouperEid, decimal? userEId, decimal? scoreNo, decimal? status, DateTime? stime, DateTime? etime)
|
|
{
|
|
return userscoreDl.GetGrouperScoreDetialCount(groupId, grouperEid, userEId, scoreNo, status, stime, etime);
|
|
}
|
|
#endregion
|
|
|
|
#region 主管评分汇总
|
|
/// <summary>
|
|
/// 主管评分汇总
|
|
/// </summary>
|
|
/// <param name="groupId"></param>
|
|
/// <param name="grouperEid"></param>
|
|
/// <param name="userEId"></param>
|
|
/// <param name="scoreNo"></param>
|
|
/// <param name="status"></param>
|
|
/// <param name="stime"></param>
|
|
/// <param name="etime"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetGrouperScoreCollect(string groupId, decimal? grouperEid, decimal? status, DateTime? stime, DateTime? etime)
|
|
{
|
|
return userscoreDl.GetGrouperScoreCollect(groupId, grouperEid, status, stime, etime);
|
|
}
|
|
#endregion
|
|
|
|
#region 修改数据
|
|
public bool UpdateGrouperScore(List<QC_GROUPERSCOREDETAIL> ListModel)
|
|
{
|
|
try
|
|
{
|
|
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
foreach (QC_GROUPERSCOREDETAIL model in ListModel)
|
|
{
|
|
BAS_INNERUSER userModel = db.BAS_INNERUSER.FirstOrDefault(m => m.EID == model.INNERUSEREID);
|
|
if (userModel != null)
|
|
model.INNERUSERID = userModel.PKID;
|
|
BAS_INNERGROUP groupModel = db.BAS_INNERGROUP.FirstOrDefault(m => m.GNAME == model.INNERUSERGROUPNAME);
|
|
if (groupModel != null)
|
|
model.INNERUSERGROUPID = groupModel.GID;
|
|
BAS_INNERUSER grouperModel = db.BAS_INNERUSER.FirstOrDefault(m => m.EID == model.GROUPEREID);
|
|
if (userModel != null)
|
|
model.GROUPERID = userModel.PKID;
|
|
|
|
|
|
QC_GROUPERSCOREDETAIL entry = db.QC_GROUPERSCOREDETAIL.FirstOrDefault(m => m.PKID == model.PKID);
|
|
if (entry != null)
|
|
db.QC_GROUPERSCOREDETAIL.Remove(entry);
|
|
db.QC_GROUPERSCOREDETAIL.Add(model);
|
|
|
|
}
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
catch (Exception ex) { throw; }
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 删除 员工评分明细 数据
|
|
/// </summary>
|
|
public void DeleteScoreData(DateTime stime, DateTime etime)
|
|
{
|
|
new UserScore_DL().DeleteScoreData("GROUPERSCOREDETAIL", stime, etime);
|
|
}
|
|
}
|
|
}
|