ComplianceServer/oldcode/BLL/Quality/QC_USERCHECK_BL.cs

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
}
}