105 lines
5.0 KiB
C#
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
|
|
}
|
|
}
|