118 lines
5.6 KiB
C#
118 lines
5.6 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_USERCHECK_BL : IQC_USERCHECK_Q
|
|
{
|
|
|
|
public List<WX.CRM.Model.Entity.QC_USERCHECK_EXTEND> GetUserCheck(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_USERCHECKMASTER.AsQueryable();
|
|
var list2 = db.QC_USERCHECKDETAIL.AsQueryable();
|
|
var inneruser_list = db.BAS_INNERUSER.AsQueryable();
|
|
list = list.Where(m => m.QUALITYTYPE == 50);
|
|
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)
|
|
{
|
|
list2 = list2.Where(m => m.QUALITYSTATUS == status);
|
|
}
|
|
if (qualityStime.HasValue && qualityEtime.HasValue)
|
|
{
|
|
list2 = list2.Where(m => m.QUALITYTIME > qualityStime && m.QUALITYTIME < qualityEtime);
|
|
}
|
|
var queryDataExt = (from a in list
|
|
join b in list2 on a.MASTERID equals b.MASTERID
|
|
join c in inneruser_list on a.EID equals c.EID
|
|
select new QC_USERCHECK_EXTEND()
|
|
{
|
|
EID = c.EID,
|
|
USERNAME = c.UNAME,
|
|
GROUPNAME = b.GROUPNAME,
|
|
ENTRYDATE = c.ENTRYDATE,
|
|
POSITIVETIME = c.POSITIVETIME,
|
|
DISMISSTIME = c.DISMISSTIME,
|
|
QUALITYTIME = b.QUALITYTIME,
|
|
QUALITYSTATUS = b.QUALITYSTATUS,
|
|
QUALITYMEMO = b.QUALITYMEMO,
|
|
QUALITYADVISE = b.QUALITYADVISE
|
|
});
|
|
queryDataExt = queryDataExt.OrderByDescending(p => p.QUALITYTIME);
|
|
PagerUtil.SetPager<WX.CRM.Model.Entity.QC_USERCHECK_EXTEND>(ref queryDataExt, ref pg);
|
|
return queryDataExt.ToList();
|
|
}
|
|
}
|
|
#region 质检数据更新
|
|
public void AddUserChecks(DateTime delCtime, DateTime DelEtime, List<QC_USERCHECKMASTER> masterModels, List<QC_USERCHECKDETAIL> detailModels)
|
|
{
|
|
using (crmContext db = new crmContext())
|
|
{
|
|
var delMasterModels = db.QC_USERCHECKMASTER.Where(p => p.CHECKDATE > delCtime && p.CHECKDATE < DelEtime);
|
|
var delDetailModels = db.QC_USERCHECKDETAIL.Where(p => p.CHECKDATE > delCtime && p.CHECKDATE < DelEtime);
|
|
foreach (var delModel in delMasterModels)
|
|
{
|
|
db.QC_USERCHECKMASTER.Attach(delModel);
|
|
db.Entry<QC_USERCHECKMASTER>(delModel).State = EntityState.Deleted;
|
|
}
|
|
|
|
foreach (var delModel in delDetailModels)
|
|
{
|
|
db.QC_USERCHECKDETAIL.Attach(delModel);
|
|
db.Entry<QC_USERCHECKDETAIL>(delModel).State = EntityState.Deleted;
|
|
}
|
|
|
|
foreach (var model in masterModels)
|
|
{
|
|
model.QUALITYTIME = DateTime.SpecifyKind(model.QUALITYTIME, DateTimeKind.Utc);
|
|
model.CTIME = DateTime.Now;
|
|
db.QC_USERCHECKMASTER.Add(model);
|
|
}
|
|
|
|
foreach (var model in detailModels)
|
|
{
|
|
model.QUALITYTIME = DateTime.SpecifyKind(model.QUALITYTIME, DateTimeKind.Utc);
|
|
model.CTIME = DateTime.Now;
|
|
db.QC_USERCHECKDETAIL.Add(model);
|
|
}
|
|
db.SaveChanges();
|
|
}
|
|
}
|
|
#endregion
|
|
}
|
|
}
|