182 lines
7.1 KiB
C#
182 lines
7.1 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_USERSCOREDETAIL_BL : IQC_USERSCOREDETAIL_Q
|
|
{
|
|
UserScore_DL userscoreDl = new UserScore_DL();
|
|
|
|
#region 获取单条信息
|
|
/// <summary>
|
|
/// 获取实体
|
|
/// </summary>
|
|
/// <param name="id"></param>
|
|
/// <returns></returns>
|
|
public WX.CRM.Model.Entity.QC_USERSCOREDETAIL GetModel(decimal id)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
WX.CRM.Model.Entity.QC_USERSCOREDETAIL entry = db.QC_USERSCOREDETAIL.FirstOrDefault(m => m.PKID == id);
|
|
return entry;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 获取分页数据列表
|
|
public List<WX.CRM.Model.Entity.QC_USERSCOREDETAIL> GetList(ref Pager pager, string groupId, string inneruserId, decimal? status, DateTime? stime, DateTime? etime)
|
|
{
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
var queryData = db.QC_USERSCOREDETAIL.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 (!string.IsNullOrWhiteSpace(inneruserId))
|
|
{
|
|
decimal userid = Convert.ToDecimal(inneruserId);
|
|
queryData = queryData.Where(m => m.INNERUSERID == userid);
|
|
}
|
|
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 "INNERUSEREID":
|
|
queryData = queryData.OrderByDescending(c => c.INNERUSEREID);
|
|
break;
|
|
case "INNERUSERGROUPNAME":
|
|
queryData = queryData.OrderByDescending(c => c.INNERUSERGROUPNAME);
|
|
break;
|
|
case "SCORENO":
|
|
queryData = queryData.OrderByDescending(c => c.SCORENO);
|
|
break;
|
|
default:
|
|
queryData = queryData.OrderByDescending(c => c.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (pager.sort)
|
|
{
|
|
case "INNERUSEREID":
|
|
queryData = queryData.OrderBy(c => c.INNERUSEREID);
|
|
break;
|
|
case "INNERUSERGROUPNAME":
|
|
queryData = queryData.OrderBy(c => c.INNERUSERGROUPNAME);
|
|
break;
|
|
case "SCORENO":
|
|
queryData = queryData.OrderBy(c => c.SCORENO);
|
|
break;
|
|
default:
|
|
queryData = queryData.OrderBy(c => c.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
queryData = queryData.OrderByDescending(m => m.CTIME);
|
|
PagerUtil.SetPager<WX.CRM.Model.Entity.QC_USERSCOREDETAIL>(ref queryData, ref pager);
|
|
return queryData.ToList();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region 获取汇总数据
|
|
/// <summary>
|
|
/// 获取汇总数据
|
|
/// </summary>
|
|
/// <param name="groupId"></param>
|
|
/// <param name="inneruserId"></param>
|
|
/// <param name="status"></param>
|
|
/// <param name="stime"></param>
|
|
/// <param name="etime"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetUserScoreDetialCount(string groupId, string inneruserId, decimal? status, DateTime? stime, DateTime? etime)
|
|
{
|
|
return userscoreDl.GetUserScoreDetialCount(groupId, inneruserId, status, stime, etime);
|
|
}
|
|
#endregion
|
|
|
|
#region 员工评分汇总表查询
|
|
/// <summary>
|
|
///员工评分汇总表查询
|
|
/// </summary>
|
|
/// <param name="groupId"></param>
|
|
/// <param name="inneruserId"></param>
|
|
/// <param name="status"></param>
|
|
/// <param name="stime"></param>
|
|
/// <param name="etime"></param>
|
|
/// <returns></returns>
|
|
public DataTable GetUserScoreCollect(string groupId, string inneruserId, decimal? status, DateTime? stime, DateTime? etime)
|
|
{
|
|
return userscoreDl.GetUserScoreCollect(groupId, inneruserId, status, stime, etime);
|
|
}
|
|
#endregion
|
|
|
|
#region 修改数据
|
|
public bool UpdateUserScore(List<QC_USERSCOREDETAIL> ListModel)
|
|
{
|
|
try
|
|
{
|
|
|
|
using (var db = new WX.CRM.Model.Entity.crmContext())
|
|
{
|
|
foreach (QC_USERSCOREDETAIL 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;
|
|
QC_USERSCOREDETAIL entry = db.QC_USERSCOREDETAIL.FirstOrDefault(m => m.PKID == model.PKID);
|
|
if (entry != null)
|
|
db.QC_USERSCOREDETAIL.Remove(entry);
|
|
db.QC_USERSCOREDETAIL.Add(model);
|
|
}
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
catch (Exception ex) { throw; }
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
/// <summary>
|
|
/// 删除 员工评分明细 数据
|
|
/// </summary>
|
|
public void DeleteScoreData(DateTime stime, DateTime etime)
|
|
{
|
|
new UserScore_DL().DeleteScoreData("USERSCOREDETAIL", stime, etime);
|
|
}
|
|
}
|
|
}
|