ComplianceServer/oldcode/BLL/Quality/QC_CUSTOMERCOMPLAIN_BL.cs

335 lines
14 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Quality;
using WX.CRM.Model.Entity;
using WX.CRM.Common;
using WX.CRM.BLL.Base;
using WX.CRM.BLL.Util;
using WX.CRM.Model.MAP;
using WX.CRM.BLL.Application.UserComBox;
namespace WX.CRM.BLL.Quality
{
public class QC_CUSTOMERCOMPLAIN_BL : IQC_CUSTOMERCOMPLAIN, IQC_CUSTOMERCOMPLAIN_Q
{
public bool Create(ref ValidationErrors errors, WX.CRM.Model.Entity.QC_CUSTOMERCOMPLAIN model)
{
try
{
using (crmContext db = new crmContext())
{
var customerModel = db.RES_CUSTOMER.FirstOrDefault(m => m.RESID == model.map_RESID);
if (customerModel == null)
{
errors.Add("请输入正确的客户ID");
return false;
}
//if (!string.IsNullOrWhiteSpace(model.map_TRADECODE))
//{
// //var gjs_CustomerModel = db.GJS_CUSTOMER.FirstOrDefault(m => m.TRADECODE == model.TRADECODE);
// //if(gjs_CustomerModel==null)
// //{
// // errors.Add("请输入正确的交易商代码");
// // return false;
// //}
//}
//model.PKID = new SEQUENCES_BL().Seq_base_get();
db.QC_CUSTOMERCOMPLAIN.Add(model);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
public bool Update(ref ValidationErrors errors, QC_CUSTOMERCOMPLAIN model)
{
try
{
using (var db = new crmContext())
{
QC_CUSTOMERCOMPLAIN entry = db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == model.PKID);
if (entry == null)
{
errors.Add("数据不存在!");
return false;
}
entry.STATUS = model.STATUS;
entry.UTIME = model.UTIME;
entry.COMPLAINLEVEL = model.COMPLAINLEVEL;
db.SaveChanges();
return true;
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
public bool Delete(ref ValidationErrors errors, decimal id)
{
try
{
using (var db = new crmContext())
{
QC_CUSTOMERCOMPLAIN entry = db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == id);
if (entry == null)
{
errors.Add("数据已经被删除!");
return false;
}
db.QC_CUSTOMERCOMPLAIN.Remove(entry);
return db.SaveChanges().GetResult();
}
}
catch (Exception ex) { errors.Add(ex.Message); return false; }
}
public QC_CUSTOMERCOMPLAIN GetModel_CustomerComplain(decimal id)
{
using (var db = new crmContext())
{
return db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == id);
}
}
public QC_CUSTOMERCOMPLAIN GetModel(decimal recordId)
{
using (var db = new crmContext())
{
return db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.RECORDID == recordId);
}
}
public bool Check(ref ValidationErrors errors, WX.CRM.Model.Entity.QC_CUSTOMERCOMPLAIN model)
{
try
{
using (var db = new crmContext())
{
QC_CUSTOMERCOMPLAIN entry = db.QC_CUSTOMERCOMPLAIN.FirstOrDefault(m => m.PKID == model.PKID);
if (entry == null)
{
errors.Add("找不到数据!");
return false;
}
if (entry.STATUS == 1)
{
errors.Add("数据已经是已审核状态!");
return false;
}
entry.UTIME = model.UTIME;
entry.COMPLAINLEVEL = model.COMPLAINLEVEL;
entry.STATUS = model.STATUS;
db.SaveChanges();
return true;
}
}
catch (Exception ex)
{
errors.Add(ex.Message);
return false;
}
}
public List<QC_CUSTOMERCOMPLAIN_Extend> GetList_CustomerComplain(ref Pager pg, string resid, string fromType, string level, decimal? status, DateTime? stime, DateTime? etime, QueryUserComboDto usercomboDto)
{
using (var db = new crmContext())
{
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.HasValue)
data = data.Where(m => m.STATUS == status);
if (usercomboDto.userId.HasValue)
data = data.Where(m => m.SALESID == usercomboDto.userId);
else if (!string.IsNullOrEmpty(usercomboDto.deptId))
{
var depts = OperationUtil.ConvertToDecimal(usercomboDto.deptId.Split(','));
List<decimal> ALLdeptIDS = new List<decimal>();
List<decimal> ALLgidS = new List<decimal>();
UserServices userservices = new UserServices();
foreach (var item in depts)
{
List<decimal> deptIDS = new List<decimal>();
List<decimal> gidS = new List<decimal>();
userservices.GetAllDeptIDOrGidByDeptId(item, ref deptIDS, ref gidS);//获取所有的组别和gid
ALLdeptIDS.AddRange(deptIDS);
ALLgidS.AddRange(gidS);
}
data = (from a in data
join b in db.BAS_INNERUSERGROUP on a.SALESID equals b.INNERUSERID
//join g in db.BAS_INNERGROUP on b.GID equals g.GID
where ALLdeptIDS.Contains(b.DEPTID.Value) || ALLgidS.Contains(b.GID.Value)
select a);
}
else if (usercomboDto.companyId.HasValue)
{
data = (from a in data
join b in db.BAS_INNERUSERGROUP on a.SALESID equals b.INNERUSERID
join g in db.BAS_INNERGROUP on b.GID equals g.GID
join m in db.BAS_SALESDEPARTMENT on g.SALEDEPTID equals m.SALEDEPTID
where m.COMPANYID == usercomboDto.companyId.Value
select a);
}
//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 d in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals d.DICTVALUE
select new QC_CUSTOMERCOMPLAIN_Extend()
{
customerComplain = a,
CUSTOMERNAME = b.CNAME,
FROMTYPENAME = a.FROMTYPE,
LEVELNAME = d.DICTDESC
});
#region
if (pg.order == "asc")
{
switch (pg.sort)
{
case "RESID":
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
break;
case "LEVELNAME":
dataList = dataList.OrderBy(m => m.customerComplain.COMPLAINLEVEL);
break;
case "FROMTYPENAME":
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
break;
default:
dataList = dataList.OrderBy(m => m.customerComplain.CTIME);
break;
}
}
else
{
switch (pg.sort)
{
case "RESID":
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
break;
case "LEVELNAME":
dataList = dataList.OrderByDescending(m => m.customerComplain.COMPLAINLEVEL);
break;
case "FROMTYPENAME":
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
break;
default:
dataList = dataList.OrderByDescending(m => m.customerComplain.CTIME);
break;
}
}
#endregion
PagerUtil.SetPager<QC_CUSTOMERCOMPLAIN_Extend>(ref dataList, ref pg);
return dataList.ToList();
}
}
public List<QC_CUSTOMERCOMPLAIN_Extend> GetList_CustomerComplainByResIds(List<string> resIds)
{
using (var db = new crmContext())
{
var data = db.QC_CUSTOMERCOMPLAIN.Where(m => resIds.Contains(m.RESID)).AsQueryable();
var list = (from a in data
//join b in db.BAS_SUBCOMTYPE on a.COMPLAINLEVEL equals b.SUBTYPECODE
join b in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals b.DICTVALUE
select new QC_CUSTOMERCOMPLAIN_Extend()
{
customerComplain = a,
LEVELNAME = b.DICTDESC
//LEVELNAME = b.DICTCODE
});
return list.OrderByDescending(m => m.customerComplain.CTIME).ToList();
}
}
public List<QC_CUSTOMERCOMPLAIN_Extend> GetList_CustomerComplainByCustomerId(ref Pager pg, string customerId)
{
using (var db = new crmContext())
{
var data = db.QC_CUSTOMERCOMPLAIN.AsQueryable();
var dataList = (from a in data
join e in db.RES_CUSTOMER on a.RESID equals e.RESID
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.BAS_SUBCOMTYPE on a.COMPLAINLEVEL equals d.SUBTYPECODE
join d in db.QC_COMPLAINTDICT on a.COMPLAINLEVEL equals d.DICTVALUE
where e.CUSTOMERID == customerId
select new QC_CUSTOMERCOMPLAIN_Extend()
{
customerComplain = a,
CUSTOMERNAME = b.CNAME,
FROMTYPENAME = c.SUBTYPENAME,
LEVELNAME = d.DICTDESC
});
#region
if (pg.order == "asc")
{
switch (pg.sort)
{
case "RESID":
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
break;
case "LEVELNAME":
dataList = dataList.OrderBy(m => m.customerComplain.COMPLAINLEVEL);
break;
case "FROMTYPENAME":
dataList = dataList.OrderBy(m => m.customerComplain.RESID);
break;
default:
dataList = dataList.OrderBy(m => m.customerComplain.CTIME);
break;
}
}
else
{
switch (pg.sort)
{
case "RESID":
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
break;
case "LEVELNAME":
dataList = dataList.OrderByDescending(m => m.customerComplain.COMPLAINLEVEL);
break;
case "FROMTYPENAME":
dataList = dataList.OrderByDescending(m => m.customerComplain.RESID);
break;
default:
dataList = dataList.OrderByDescending(m => m.customerComplain.CTIME);
break;
}
}
#endregion
PagerUtil.SetPager<QC_CUSTOMERCOMPLAIN_Extend>(ref dataList, ref pg);
return dataList.ToList();
}
}
}
}