146 lines
6.3 KiB
C#
146 lines
6.3 KiB
C#
using CRM.Core.BLL.Util;
|
|
using CRM.Core.Common.Layui;
|
|
using CRM.Core.Model.Entity;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using WX.CRM.Common;
|
|
|
|
namespace CRM.Core.BLL.Quality
|
|
{
|
|
public class QC_CUSTOMERCOMPLAIN_BL : DbContextRepository<QC_CUSTOMERCOMPLAIN>
|
|
{
|
|
|
|
|
|
|
|
public QC_CUSTOMERCOMPLAIN GetModel_CustomerComplain(decimal id)
|
|
{
|
|
using (var db = new zxdContext())
|
|
{
|
|
return db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == id);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public List<QC_CUSTOMERCOMPLAIN_Extend> GetList_CustomerComplain(ref Laypage pg, string resid, string fromType, string level, decimal status, DateTime? stime, DateTime? etime)
|
|
{
|
|
using (var db = new zxdContext())
|
|
{
|
|
var data = db.QC_CUSTOMERCOMPLAIN.AsQueryable();
|
|
if (!string.IsNullOrWhiteSpace(resid))
|
|
data = data.Where(m => m.RESID.Contains(resid));
|
|
if (!string.IsNullOrWhiteSpace(fromType))
|
|
data = data.Where(m => m.FROMTYPE == fromType);
|
|
if (!string.IsNullOrWhiteSpace(level))
|
|
data = data.Where(m => m.COMPLAINLEVEL.Contains(level));
|
|
if (stime.HasValue)
|
|
data = data.Where(m => m.CTIME >= stime);
|
|
if (etime.HasValue)
|
|
data = data.Where(m => m.CTIME < etime);
|
|
//if (status >= 0)
|
|
data = data.Where(m => m.STATUS == status);
|
|
//if (userId > 0)
|
|
// data = data.Where(m => m.SALESID == 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);
|
|
// data = data.Where(m => userids.Contains(m.SALESID));
|
|
//}
|
|
|
|
var dataList = (from a in data
|
|
//join b in db.RES_CUSTOMERDETAIL on a.RESID equals b.RESID
|
|
//join c in db.BAS_SUBCOMTYPE on a.FROMTYPE equals c.SUBTYPECODE
|
|
join d in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals d.DICTVALUE
|
|
join e in db.QC_COMPLAIN_SERVICEMEMO on a.PKID equals e.COMPLAINID into tmp1
|
|
from ae in tmp1.DefaultIfEmpty()
|
|
select new QC_CUSTOMERCOMPLAIN_Extend()
|
|
{
|
|
PKID = a.PKID,
|
|
RESID = a.RESID,
|
|
SALESID = a.SALESID,
|
|
REASON = a.REASON,
|
|
STATUS = a.STATUS,
|
|
FROMTYPE = a.FROMTYPE,
|
|
COMPLAINLEVEL = a.COMPLAINLEVEL,
|
|
CTIME = a.CTIME,
|
|
UTIME = a.UTIME,
|
|
DEPTAUDITPKID = a.DEPTAUDITPKID,
|
|
COMPLIANGUID = a.COMPLIANGUID,
|
|
UNHANDLEWARNTIME = a.UNHANDLEWARNTIME,
|
|
HANDLEWARNTIME = a.HANDLEWARNTIME,
|
|
COMPANYCODE = a.COMPANYCODE,
|
|
SERVICEMEMO = ae.MEMO,
|
|
SERVICEMEMOID = ae.MEMOID,
|
|
SERVICERECORDID = ae.RECORDID,
|
|
RECOMPLAINLEVEL = ae.RECOMPLAINLEVEL,
|
|
//CUSTOMERNAME=b.CNAME,
|
|
//FROMTYPENAME = c.SUBTYPENAME,
|
|
LEVELNAME = d.DICTDESC
|
|
});
|
|
#region 排序
|
|
if (pg.order == "asc")
|
|
{
|
|
switch (pg.sort)
|
|
{
|
|
case "RESID":
|
|
dataList = dataList.OrderBy(m => m.RESID);
|
|
break;
|
|
case "LEVELNAME":
|
|
dataList = dataList.OrderBy(m => m.COMPLAINLEVEL);
|
|
break;
|
|
case "FROMTYPENAME":
|
|
dataList = dataList.OrderBy(m => m.RESID);
|
|
break;
|
|
default:
|
|
dataList = dataList.OrderBy(m => m.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
switch (pg.sort)
|
|
{
|
|
case "RESID":
|
|
dataList = dataList.OrderByDescending(m => m.RESID);
|
|
break;
|
|
case "LEVELNAME":
|
|
dataList = dataList.OrderByDescending(m => m.COMPLAINLEVEL);
|
|
break;
|
|
case "FROMTYPENAME":
|
|
dataList = dataList.OrderByDescending(m => m.RESID);
|
|
break;
|
|
default:
|
|
dataList = dataList.OrderByDescending(m => m.CTIME);
|
|
break;
|
|
}
|
|
}
|
|
#endregion
|
|
PagerUtil.SetPager<QC_CUSTOMERCOMPLAIN_Extend>(ref dataList, ref pg);
|
|
return dataList.ToList();
|
|
}
|
|
}
|
|
|
|
public List<QC_CUSTOMERCOMPLAIN> GetUnHandleList()
|
|
{
|
|
using (var db = new zxdContext())
|
|
{
|
|
var query = db.QC_CUSTOMERCOMPLAIN.AsQueryable();
|
|
query = query.Where(m => m.STATUS == -1 && m.UNHANDLEWARNTIME < DateTime.Now);
|
|
return query.ToList();
|
|
}
|
|
}
|
|
public List<QC_CUSTOMERCOMPLAIN> GetHandleingList()
|
|
{
|
|
using (var db = new zxdContext())
|
|
{
|
|
var query = db.QC_CUSTOMERCOMPLAIN.AsQueryable();
|
|
query = query.Where(m => m.STATUS == 0 && m.HANDLEWARNTIME < DateTime.Now);
|
|
return query.ToList();
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|