TG.WXCRM.V4/BLL/Quality/QC_USERTVCHECK_BL.cs

105 lines
5.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Quality;
using WX.CRM.Model.Entity;
namespace WX.CRM.BLL.Quality
{
public class QC_USERTVCHECK_BL : IQC_USERTVCHECK_Q
{
public List<WX.CRM.Model.Entity.QC_USERTVCHECK_EXTEND> GetUserTVCheck(ref Pager pg, decimal? dismiss, DateTime? dismissStime, DateTime? dismissEtime, DateTime? entryStime, DateTime? entryEtime, DateTime? positveStime, DateTime? positveEtime, DateTime? qualityStime, DateTime? qualityEtime, decimal? status, string groupId, decimal userId)
{
using (crmContext db = new crmContext())
{
var list = db.QC_USERTVCHECK.AsQueryable();
var inneruser_list = db.BAS_INNERUSER.AsQueryable();
list = list.Where(m => m.QUALITYTYPE == 60);
if (userId > 0)
{
inneruser_list = inneruser_list.Where(m => m.PKID == userId);
}
else if (!string.IsNullOrEmpty(groupId))
{
decimal[] _groupids = OperationUtil.ConvertToDecimal(groupId.Split(','));
var userIds = db.BAS_INNERUSERGROUP.Where(m => _groupids.Contains(m.GID.Value)).Select(m => m.INNERUSERID).ToArray<decimal>();
inneruser_list = inneruser_list.Where(m => userIds.Contains(m.PKID));
}
if (dismiss.HasValue)
{
inneruser_list = inneruser_list.Where(m => m.ISDISMISS == dismiss);
}
if (dismissStime.HasValue && dismissEtime.HasValue)
{
inneruser_list = inneruser_list.Where(m => m.DISMISSTIME >= dismissStime && m.DISMISSTIME <= dismissEtime);
}
if (entryStime.HasValue && entryEtime.HasValue)
{
inneruser_list = inneruser_list.Where(m => m.ENTRYDATE >= entryStime && m.ENTRYDATE <= entryEtime);
}
if (positveStime.HasValue && positveEtime.HasValue)
{
inneruser_list = inneruser_list.Where(m => m.POSITIVETIME >= positveStime && m.POSITIVETIME <= positveEtime);
}
if (status.HasValue)
{
list = list.Where(m => m.QUALITYSTATUS == status);
}
if (qualityStime.HasValue && qualityEtime.HasValue)
{
list = list.Where(m => m.QUALITYTIME > qualityStime && m.QUALITYTIME < qualityEtime);
}
var queryDataExt = (from a in list
join b in inneruser_list on a.EID equals b.EID
select new QC_USERTVCHECK_EXTEND()
{
EID = b.EID,
NAME = b.UNAME,
GROUPNAME = a.GROUPNAME,
ENTRYDATE = b.ENTRYDATE,
POSITIVETIME = b.POSITIVETIME,
DISMISSTIME = b.DISMISSTIME,
TVID = a.TVID,
TVTIME = a.TVTIME,
USERNAME = a.USERNAME,
FILENAME = a.FILENAME,
QUALITYTIME = a.QUALITYTIME,
QUALITYSTATUS = a.QUALITYSTATUS,
QUALITYMEMO = a.QUALITYMEMO,
QUALITYADVISE = a.QUALITYADVISE
});
queryDataExt = queryDataExt.OrderByDescending(p => p.QUALITYTIME);
PagerUtil.SetPager<WX.CRM.Model.Entity.QC_USERTVCHECK_EXTEND>(ref queryDataExt, ref pg);
return queryDataExt.ToList();
}
}
#region
public void AddUserChecks(DateTime delCtime, DateTime DelEtime, List<QC_USERTVCHECK> models)
{
using (crmContext db = new crmContext())
{
var deleteModels = db.QC_USERTVCHECK.Where(p => p.CHECKDATE > delCtime && p.CHECKDATE < DelEtime);
foreach (var delModel in deleteModels)
{
db.QC_USERTVCHECK.Attach(delModel);
db.Entry<QC_USERTVCHECK>(delModel).State = EntityState.Deleted;
}
foreach (var model in models)
{
model.QUALITYTIME = DateTime.SpecifyKind(model.QUALITYTIME.Value, DateTimeKind.Utc);
model.CTIME = DateTime.Now;
db.QC_USERTVCHECK.Add(model);
}
db.SaveChanges();
}
}
#endregion
}
}