using System; using System.Collections.Generic; using System.Linq; using System.Text; using AutoMapper; using DTO; using IServices; using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.EntityFrameworkCore; using zhengcaioa.Models; namespace Services { public class CooperOrderService: ICooperOrderService { private readonly zhengcaioaContext _context; private readonly IMapper _mapper; public CooperOrderService(zhengcaioaContext context, IMapper mapper) { _context = context; _mapper = mapper; } public ResultEntity save(CooperOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); dto.Id = entity.Id; var datestreing = DateTime.Now.ToString("yyyyMMdd"); var OrderNo = _context.CooperOrders.Where(x => x.OrderNo.Contains(datestreing)).Max(x=>x.OrderNo); if (string.IsNullOrEmpty(OrderNo)) { entity.OrderNo = datestreing+ 1.ToString().PadLeft(3, '0'); } else { entity.OrderNo = datestreing + (int.Parse(OrderNo.Substring(OrderNo.Length - 3))+1).ToString().PadLeft(3, '0'); } //entity.ShouliStatus = ""; //entity.ChedanStatus = ""; //entity.HuifangStatus = ""; //entity.PingjiaStatus = ""; _context.CooperOrders.Add(entity); } else { var updateproject = _context.CooperOrders.Find(entity.Id); //updateproject.XdTime = entity.XdTime; updateproject.OrderNo = entity.OrderNo; updateproject.Khdw = entity.Khdw; updateproject.OrderType = entity.OrderType; updateproject.OrderPro = entity.OrderPro; updateproject.OrderNum = entity.OrderNum; updateproject.Price = entity.Price; updateproject.Money = entity.Money; updateproject.Shr = entity.Shr; updateproject.ShrAddress = entity.ShrAddress; updateproject.ShrTel = entity.ShrTel; updateproject.Remark = entity.Remark; updateproject.OrderType1 = entity.OrderType1; updateproject.OrderType2 = entity.OrderType2; updateproject.ShouliStatus = entity.ShouliStatus; updateproject.Shoulier = entity.Shoulier; updateproject.Shoulitime = entity.Shoulitime; updateproject.Songhuoer = entity.Songhuoer; updateproject.Songhuotime = entity.Songhuotime; updateproject.Wangonger = entity.Wangonger; updateproject.Wangongtime = entity.Wangongtime; updateproject.RecStatus = entity.RecStatus; updateproject.Modifier = entity.Modifier; updateproject.Modifytime = entity.Modifytime; updateproject.SonghuoGongsi = entity.SonghuoGongsi; updateproject.SonghuoDanhao = entity.SonghuoDanhao; updateproject.SonghuoTime1 = entity.SonghuoTime1; updateproject.HuifangJdr = entity.HuifangJdr; updateproject.HuifangKehuyijian = entity.HuifangKehuyijian; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public string GetOrderNo() { string OrderNoback = ""; var datestreing = DateTime.Now.ToString("yyyyMMdd"); var OrderNo = _context.CooperOrders.Where(x => x.OrderNo.Contains(datestreing)).Max(x => x.OrderNo); if (string.IsNullOrEmpty(OrderNo)) { OrderNoback = datestreing + 1.ToString().PadLeft(3, '0'); } else { OrderNoback = datestreing + (int.Parse(OrderNo.Substring(OrderNo.Length - 3)) + 1).ToString().PadLeft(3, '0'); } return OrderNoback; } public CooperOrderDTO Get(string id) { var entity = _context.CooperOrders.Find(id); if (entity.RecStatus != "A") { entity = new CooperOrder(); } var result = _mapper.Map(entity); return result; } public ResultDataEntity SearchByPaging(CooperOrderDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); List list = new List(); var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ); DateTime XdTimestart = DateTime.Now; DateTime XdTimeend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.XdTime)) { string[] XdTimes = searchEntity.XdTime.Split("|"); DateTime.TryParse(XdTimes[0], out XdTimestart); DateTime.TryParse(XdTimes[1], out XdTimeend); XdTimeend = XdTimeend.AddDays(1); } var query = (from a in _context.CooperOrders join b in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "shouli_status") on a.ShouliStatus equals b.CodeSn into bsss from bbb in bsss.DefaultIfEmpty() join c in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "huifang_status") on a.HuifangStatus equals c.CodeSn into csss from ccc in csss.DefaultIfEmpty() join d in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "pingjia_status") on a.PingjiaStatus equals d.CodeSn into dsss from ddd in dsss.DefaultIfEmpty() join e in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.ChedanStatus equals e.CodeSn into esssss from eee in esssss.DefaultIfEmpty() join f in listCode.Where(x => x.CodeTable == "CooperVisit" && x.CodeField == "jtype") on a.OrderType equals f.CodeSn into fsssss from fff in fsssss.DefaultIfEmpty() join g in _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A" ) on a.Khdw equals g.Id into gsss from ggg in gsss.DefaultIfEmpty() join h in _context.Projects.Where(x => x.RecStatus == "A") on a.OrderPro equals h.Id into hsss from hhh in hsss.DefaultIfEmpty() join i in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.WangongStatus equals i.CodeSn into isssss from iii in isssss.DefaultIfEmpty() join j in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.SonghuoStatus equals j.CodeSn into jsssss from jjj in jsssss.DefaultIfEmpty() join k in _context.Oayouhuis.Where(x => x.Recstatus == "A") on a.Id equals k.CooperOrderId into ksssss from kkk in ksssss.DefaultIfEmpty() join l in _context.FiBooks on a.OrderType1 equals l.Id into lsssss from lll in lsssss.DefaultIfEmpty() join m in _context.FiMembers on a.OrderType1 equals m.Id into msssss from mmm in msssss.DefaultIfEmpty() where a.RecStatus == "A" && (string.IsNullOrWhiteSpace(searchEntity.XdTime) || (a.XdTime >= XdTimestart && a.XdTime <= XdTimeend)) && (string.IsNullOrWhiteSpace(searchEntity.Ywjl) || ggg.Ywjl == searchEntity.Ywjl.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.OrderType) || a.OrderType == searchEntity.OrderType.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.OrderNo) || a.OrderNo.Contains(searchEntity.OrderNo.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.KhdwName) || ggg.Name.Contains(searchEntity.KhdwName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Khlx) || ggg.Khlx == searchEntity.Khlx.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.HuifangStatus) || a.HuifangStatus.Contains(searchEntity.HuifangStatus.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.PingjiaStatus) || a.PingjiaStatus.Contains(searchEntity.PingjiaStatus.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Creater) || a.Creater == searchEntity.Creater.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.ShouliStatus) || a.ShouliStatus == searchEntity.ShouliStatus.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.ChedanStatus) || a.ChedanStatus == searchEntity.ChedanStatus.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.WangongStatus) || a.WangongStatus == searchEntity.WangongStatus.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.SonghuoStatus) || a.SonghuoStatus == searchEntity.SonghuoStatus.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.HuifangStatussss) || a.HuifangStatus == searchEntity.HuifangStatussss.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.HuiyuanId) || ggg.HuiyuanId == searchEntity.HuiyuanId.Trim()) select new CooperOrderDTO { Id = a.Id, XdTime = a.XdTime, XdTimeName = a.XdTime.ToString("yyyy-MM-dd"), OrderNo = a.OrderNo, Khdw = a.Khdw, KhdwName = ggg.Name, OrderType = a.OrderType, OrderTypeName = fff.Comments, OrderPro = a.OrderPro, OrderProName = hhh.Name, OrderNum = a.OrderNum, Price = a.Price, Money = a.Money, Shr = a.Shr, ShrAddress = a.ShrAddress, ShrTel = a.ShrTel, Remark = a.Remark, Creater = a.Creater, Createtime = a.Createtime, RecStatus = a.RecStatus, Modifier = a.Modifier, Modifytime = a.Modifytime, ShouliStatus = a.ShouliStatus, ShouliStatusName = bbb.Comments, Shoulier = a.Shoulier, Shoulitime = a.Shoulitime, ChedanStatus = a.ChedanStatus, ChedanStatusName = eee.Comments, Chedaner = a.Chedaner, Chedantime = a.Chedantime, Chedan = a.Chedan, HuifangStatus = a.HuifangStatus, HuifangStatusName = ccc.Comments, Huifanger = a.Huifanger, Huifangtime = a.Huifangtime, Huifangremark = a.Huifangremark, PingjiaStatus = a.PingjiaStatus, PingjiaStatusName = ddd.Comments, Pingjiaer = a.Pingjiaer, Pingjiatime =a.Pingjiatime, Youhui = a.Youhui, Youhuier = a.Youhuier, Youhuitime = a.Youhuitime, SonghuoStatusName = jjj.Comments, SonghuoStatus = a.SonghuoStatus, Songhuoer = a.Songhuoer, Songhuotime = a.Songhuotime, WangongStatusName = iii.Comments, WangongStatus = a.WangongStatus, Wangonger = a.Wangonger, Wangongtime = a.Wangongtime, YouhuiStatus = kkk.Id, OrderType1 = a.OrderType1, OrderType2 = a.OrderType2, OrderType1Name = string.IsNullOrEmpty(lll.BookName)? string.IsNullOrEmpty(mmm.MemberType)? a.OrderType1 : mmm.MemberType : lll.BookName, SonghuoGongsi = a.SonghuoGongsi, SonghuoDanhao = a.SonghuoDanhao, SonghuoTime1 = a.SonghuoTime1, HuifangJdr = a.HuifangJdr, HuifangKehuyijian = a.HuifangKehuyijian, } ).OrderByDescending(x => x.OrderNo).ToList(); //if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); data.LoadData(searchEntity, lianlist); return data; } /// /// 修改主表状态 /// /// 主id /// 用户 /// public ResultEntity ModifyStatus(string id, string userid) { ResultEntity result = new ResultEntity(); result.Result = true; var model = _context.CooperOrders.Find(id); if (model != null) { model.RecStatus = "D"; model.Modifier = userid; model.Modifytime = DateTime.Now; _context.SaveChanges(); } return result; } public ResultEntity shouli(CooperOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var updateproject = _context.CooperOrders.Find(dto.Id); updateproject.ShouliStatus = dto.ShouliStatus; updateproject.Shoulier = dto.Shoulier; updateproject.Shoulitime = dto.Shoulitime; _context.SaveChanges(); resultEntity.ReturnID = dto.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "受理失败,请联系管理员"; } return resultEntity; } public ResultEntity Wangong(CooperOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var updateproject = _context.CooperOrders.Find(dto.Id); updateproject.WangongStatus = dto.WangongStatus; updateproject.Wangonger = dto.Wangonger; updateproject.Wangongtime = dto.Wangongtime; _context.SaveChanges(); resultEntity.ReturnID = dto.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "完工失败,请联系管理员"; } return resultEntity; } public ResultEntity Songhuo(CooperOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var updateproject = _context.CooperOrders.Find(dto.Id); updateproject.SonghuoStatus = dto.SonghuoStatus; updateproject.Songhuoer = dto.Songhuoer; updateproject.Songhuotime = dto.Songhuotime; updateproject.ShouliStatus = dto.ShouliStatus; updateproject.SonghuoTime1 = dto.SonghuoTime1; updateproject.SonghuoDanhao = dto.SonghuoDanhao; updateproject.SonghuoGongsi = dto.SonghuoGongsi; _context.SaveChanges(); resultEntity.ReturnID = dto.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "送货失败,请联系管理员"; } return resultEntity; } public ResultEntity chedan(CooperOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var updateproject = _context.CooperOrders.Find(dto.Id); updateproject.Chedaner = dto.Chedaner; updateproject.Chedantime = dto.Chedantime; updateproject.ChedanStatus = dto.ChedanStatus; updateproject.Chedan = dto.Chedan; updateproject.ShouliStatus = dto.ShouliStatus; _context.SaveChanges(); resultEntity.ReturnID = dto.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "撤单失败,请联系管理员"; } return resultEntity; } public ResultEntity huifang(CooperOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var updateproject = _context.CooperOrders.Find(dto.Id); updateproject.HuifangKehuyijian = dto.HuifangKehuyijian; updateproject.HuifangJdr = dto.HuifangJdr; updateproject.Huifanger = dto.Huifanger; updateproject.Huifangtime = dto.Huifangtime; updateproject.HuifangStatus = dto.HuifangStatus; updateproject.Huifangremark = dto.Huifangremark; updateproject.PingjiaStatus = dto.PingjiaStatus; _context.SaveChanges(); resultEntity.ReturnID = dto.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "撤单失败,请联系管理员"; } return resultEntity; } public ResultEntity pingjia(CooperOrderDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var updateproject = _context.CooperOrders.Find(dto.Id); updateproject.Pingjiaer = dto.Pingjiaer; updateproject.Pingjiatime = dto.Pingjiatime; updateproject.PingjiaStatus = dto.PingjiaStatus; _context.SaveChanges(); resultEntity.ReturnID = dto.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "撤单失败,请联系管理员"; } return resultEntity; } public CooperOrderDTO Getprint(string id) { var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ); var query = (from a in _context.CooperOrders join b in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "shouli_status") on a.ShouliStatus equals b.CodeSn into bsss from bbb in bsss.DefaultIfEmpty() join c in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "huifang_status") on a.HuifangStatus equals c.CodeSn into csss from ccc in csss.DefaultIfEmpty() join d in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "pingjia_status") on a.PingjiaStatus equals d.CodeSn into dsss from ddd in dsss.DefaultIfEmpty() join e in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.ChedanStatus equals e.CodeSn into esssss from eee in esssss.DefaultIfEmpty() join f in listCode.Where(x => x.CodeTable == "CooperVisit" && x.CodeField == "jtype") on a.OrderType equals f.CodeSn into fsssss from fff in fsssss.DefaultIfEmpty() join g in _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A") on a.Khdw equals g.Id into gsss from ggg in gsss.DefaultIfEmpty() join h in _context.Projects.Where(x => x.RecStatus == "A") on a.OrderPro equals h.Id into hsss from hhh in hsss.DefaultIfEmpty() join i in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.WangongStatus equals i.CodeSn into isssss from iii in isssss.DefaultIfEmpty() join j in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.SonghuoStatus equals j.CodeSn into jsssss from jjj in jsssss.DefaultIfEmpty() join k in _context.Oayouhuis.Where(x => x.Recstatus == "A") on a.Id equals k.CooperOrderId into ksssss from kkk in ksssss.DefaultIfEmpty() where a.RecStatus == "A" && a.Id == id select new CooperOrderDTO { Id = a.Id, XdTime = a.XdTime, XdTimeName = a.XdTime.ToString("yyyy-MM-dd"), OrderNo = a.OrderNo, Khdw = a.Khdw, KhdwName = ggg.Name, OrderType = a.OrderType, OrderTypeName = fff.Comments, OrderPro = a.OrderPro, OrderProName = hhh.Name, OrderNum = a.OrderNum, Price = a.Price, Money = a.Money, Shr = a.Shr, ShrAddress = a.ShrAddress, ShrTel = a.ShrTel, Remark = a.Remark, Creater = a.Creater, Createtime = a.Createtime, RecStatus = a.RecStatus, Modifier = a.Modifier, Modifytime = a.Modifytime, ShouliStatus = a.ShouliStatus, ShouliStatusName = bbb.Comments, Shoulier = a.Shoulier, Shoulitime = a.Shoulitime, ChedanStatus = a.ChedanStatus, ChedanStatusName = eee.Comments, Chedaner = a.Chedaner, Chedantime = a.Chedantime, Chedan = a.Chedan, HuifangStatus = a.HuifangStatus, HuifangStatusName = ccc.Comments, Huifanger = a.Huifanger, Huifangtime = a.Huifangtime, Huifangremark = a.Huifangremark, PingjiaStatus = a.PingjiaStatus, PingjiaStatusName = ddd.Comments, Pingjiaer = a.Pingjiaer, Pingjiatime = a.Pingjiatime, Youhui = a.Youhui, Youhuier = a.Youhuier, Youhuitime = a.Youhuitime, SonghuoStatusName = jjj.Comments, SonghuoStatus = a.SonghuoStatus, Songhuoer = a.Songhuoer, Songhuotime = a.Songhuotime, WangongStatusName = iii.Comments, WangongStatus = a.WangongStatus, Wangonger = a.Wangonger, Wangongtime = a.Wangongtime, YouhuiStatus = kkk.Id, OrderType1 = a.OrderType1, OrderType2 = a.OrderType2, } ).FirstOrDefault(); if (query==null|| query.RecStatus != "A") { query = new CooperOrderDTO(); } return query; } public List GetList(string userid, DateTime datemin, DateTime datemax) { var entity = _context.CooperOrders.Where(x => x.RecStatus == "A" && x.ShouliStatus != "0" && x.Creater == userid && x.Createtime >= datemin && x.Createtime < datemax).ToList(); var result = _mapper.Map>(entity); return result; } public List GetListtongji(string userid, DateTime datemin, DateTime datemax) { var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort }); var entity = (from a in _context.CooperOrders.Where(x => x.RecStatus == "A" && x.ShouliStatus != "0" && x.Creater == userid && x.Createtime >= datemin && x.Createtime < datemax) join b in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "shouli_status") on a.ShouliStatus equals b.CodeSn into bsss from bbb in bsss.DefaultIfEmpty() join c in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "huifang_status") on a.HuifangStatus equals c.CodeSn into csss from ccc in csss.DefaultIfEmpty() join d in listCode.Where(x => x.CodeTable == "CooperOrder" && x.CodeField == "pingjia_status") on a.PingjiaStatus equals d.CodeSn into dsss from ddd in dsss.DefaultIfEmpty() join e in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.ChedanStatus equals e.CodeSn into esssss from eee in esssss.DefaultIfEmpty() join f in listCode.Where(x => x.CodeTable == "CooperVisit" && x.CodeField == "jtype") on a.OrderType equals f.CodeSn into fsssss from fff in fsssss.DefaultIfEmpty() join g in _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A") on a.Khdw equals g.Id into gsss from ggg in gsss.DefaultIfEmpty() join h in _context.Projects.Where(x => x.RecStatus == "A") on a.OrderPro equals h.Id into hsss from hhh in hsss.DefaultIfEmpty() join i in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.WangongStatus equals i.CodeSn into isssss from iii in isssss.DefaultIfEmpty() join j in listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou") on a.SonghuoStatus equals j.CodeSn into jsssss from jjj in jsssss.DefaultIfEmpty() join k in _context.Oayouhuis.Where(x => x.Recstatus == "A") on a.Id equals k.CooperOrderId into ksssss from kkk in ksssss.DefaultIfEmpty() join l in _context.FiBooks on a.OrderType1 equals l.Id into lsssss from lll in lsssss.DefaultIfEmpty() join m in _context.FiMembers on a.OrderType1 equals m.Id into msssss from mmm in msssss.DefaultIfEmpty() select new CooperOrderDTO { Id = a.Id, XdTime = a.XdTime, XdTimeName = a.XdTime.ToString("yyyy-MM-dd"), OrderNo = a.OrderNo, Khdw = a.Khdw, KhdwName = ggg.Name, OrderType = a.OrderType, OrderTypeName = fff.Comments, OrderPro = a.OrderPro, OrderProName = hhh.Name, OrderNum = a.OrderNum, Price = a.Price, Money = a.Money, Shr = a.Shr, ShrAddress = a.ShrAddress, ShrTel = a.ShrTel, Remark = a.Remark, Creater = a.Creater, Createtime = a.Createtime, RecStatus = a.RecStatus, Modifier = a.Modifier, Modifytime = a.Modifytime, ShouliStatus = a.ShouliStatus, ShouliStatusName = bbb.Comments, Shoulier = a.Shoulier, Shoulitime = a.Shoulitime, ChedanStatus = a.ChedanStatus, ChedanStatusName = eee.Comments, Chedaner = a.Chedaner, Chedantime = a.Chedantime, Chedan = a.Chedan, HuifangStatus = a.HuifangStatus, HuifangStatusName = ccc.Comments, Huifanger = a.Huifanger, Huifangtime = a.Huifangtime, Huifangremark = a.Huifangremark, PingjiaStatus = a.PingjiaStatus, PingjiaStatusName = ddd.Comments, Pingjiaer = a.Pingjiaer, Pingjiatime = a.Pingjiatime, Youhui = a.Youhui, Youhuier = a.Youhuier, Youhuitime = a.Youhuitime, SonghuoStatusName = jjj.Comments, SonghuoStatus = a.SonghuoStatus, Songhuoer = a.Songhuoer, Songhuotime = a.Songhuotime, WangongStatusName = iii.Comments, WangongStatus = a.WangongStatus, Wangonger = a.Wangonger, Wangongtime = a.Wangongtime, YouhuiStatus = kkk.Id, OrderType1 = a.OrderType1, OrderType2 = a.OrderType2, OrderType1Name = string.IsNullOrEmpty(lll.BookName) ? string.IsNullOrEmpty(mmm.MemberType) ? a.OrderType1 : mmm.MemberType : lll.BookName, SonghuoGongsi = a.SonghuoGongsi, SonghuoDanhao = a.SonghuoDanhao, SonghuoTime1 = a.SonghuoTime1, HuifangJdr = a.HuifangJdr, HuifangKehuyijian = a.HuifangKehuyijian, } ).OrderByDescending(x => x.OrderNo).ToList(); return entity; } public List GetListChallengeletter(string OrderId) { var entity = _context.TChallengeletters.Where(x =>/* x.Status == 1 && */x.OrderId == OrderId).ToList(); var result = _mapper.Map>(entity); var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).Where(x => x.CodeTable == "t_challengeletter" && x.CodeField == "request_info").ToList(); foreach(var challengeletterDTO in result) { var codeDataEntity = listCode.Where(x => x.CodeSn == challengeletterDTO.RequestInfo).FirstOrDefault(); if (codeDataEntity != null) { challengeletterDTO.RequestInfoName = codeDataEntity.Comments; } } return result; } public List GetListChallengeletterChosen() { var query = (from a in _context.TChallengeletters join b in _context.CooperOrders.Where(x => x.RecStatus == "A") on a.OrderId equals b.Id select new TChallengeletterDTO { Id = b.Id, OrderId = b.OrderNo } ).ToList(); return query; } public ResultEntity saveChallengeletter(TChallengeletterDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); dto.Id = entity.Id; _context.TChallengeletters.Add(entity); } else { var updateproject = _context.TChallengeletters.Find(entity.Id); updateproject.PrintNum = entity.PrintNum; updateproject.OrderId = entity.OrderId; updateproject.GysId = entity.GysId; updateproject.GysName = entity.GysName; updateproject.GysAddress = entity.GysAddress; updateproject.GysPostcode = entity.GysPostcode; updateproject.GysContacts = entity.GysContacts; updateproject.GysPhone = entity.GysPhone; updateproject.SqdbId = entity.SqdbId; updateproject.SqdbName = entity.SqdbName; updateproject.SqdbPhone = entity.SqdbPhone; updateproject.SqdbAddress = entity.SqdbAddress; updateproject.SqdbPostcode = entity.SqdbPostcode; updateproject.XmId = entity.XmId; updateproject.XmName = entity.XmName; updateproject.XmCode = entity.XmCode; updateproject.XmPackage = entity.XmPackage; updateproject.PurchaserName = entity.PurchaserName; updateproject.DocumentsDate = entity.DocumentsDate; updateproject.RequestInfo = entity.RequestInfo; updateproject.IsReply = entity.IsReply; updateproject.Status = entity.Status; updateproject.Respondent = entity.Respondent; updateproject.RespondDate = entity.RespondDate; updateproject.RespondInfo = entity.RespondInfo; updateproject.Modifier = entity.Modifier; updateproject.Modifytime = entity.Modifytime; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public List GetListChallengeItem(string ChallengeId) { var entity = _context.TChallengeItems.Where(x => x.ChallengeId == ChallengeId).OrderBy(x => x.Sort).ToList(); var result = _mapper.Map>(entity); var question = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).Where(x => x.CodeTable == "t_challenge_items" && x.CodeField == "question").ToList(); var law = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).Where(x => x.CodeTable == "t_complaint_items" && x.CodeField == "law").ToList(); var falv = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).Where(x => x.CodeTable == "expert_test_topicjiexi" && x.CodeField == "falv").ToList(); foreach (var challengeItemDTO in result) { var codeDataEntity = question.Where(x => x.CodeSn == challengeItemDTO.Question).FirstOrDefault(); if (codeDataEntity != null) { challengeItemDTO.QuestionName = codeDataEntity.Comments; } codeDataEntity = law.Where(x => x.CodeSn == challengeItemDTO.Law).FirstOrDefault(); if (codeDataEntity != null) { challengeItemDTO.LawName = codeDataEntity.Comments; challengeItemDTO.Lawcoment = codeDataEntity.Contents; codeDataEntity = falv.Where(x => x.CodeSn == challengeItemDTO.LawName).FirstOrDefault(); if (codeDataEntity != null) { challengeItemDTO.LawName = codeDataEntity.Comments; } } } return result; } public ResultEntity saveChallengeItem(TChallengeItemDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (entity.Id<=0) { _context.TChallengeItems.Add(entity); } else { var updateproject = _context.TChallengeItems.Find(entity.Id); updateproject.ChallengeId = entity.ChallengeId; updateproject.Question = entity.Question; updateproject.Evidential = entity.Evidential; updateproject.Law = entity.Law; updateproject.Sort = entity.Sort; updateproject.Lawcoment = entity.Lawcoment; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id.ToString(); resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public List GetListComplaintletter(string OrderId) { var entity = _context.TComplaintletters.Where(x => /*x.Status == 1 &&*/ x.OrderId == OrderId).ToList(); var result = _mapper.Map>(entity); var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).ToList(); var request_info = listCode.Where(x => x.CodeTable == "t_challengeletter" && x.CodeField == "request_info").ToList(); var shifou = listCode.Where(x => x.CodeTable == "system" && x.CodeField == "shifou").ToList(); foreach (var complaintletterDTO in result) { var codeDataEntity = request_info.Where(x => x.CodeSn == complaintletterDTO.RequestInfo).FirstOrDefault(); if (codeDataEntity != null) { complaintletterDTO.RequestInfoName = codeDataEntity.Comments; } codeDataEntity = shifou.Where(x => x.CodeSn == complaintletterDTO.IsNotice).FirstOrDefault(); if (codeDataEntity != null) { complaintletterDTO.IsNoticeName = codeDataEntity.Comments; } codeDataEntity = shifou.Where(x => x.CodeSn == complaintletterDTO.IsResultnotice).FirstOrDefault(); if (codeDataEntity != null) { complaintletterDTO.IsResultnoticeName = codeDataEntity.Comments; } } return result; } public ResultEntity saveComplaintletter(TComplaintletterDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (String.IsNullOrEmpty(entity.Id)) { entity.Id = Guid.NewGuid().ToString(); dto.Id = entity.Id; _context.TComplaintletters.Add(entity); } else { var updateproject = _context.TComplaintletters.Find(entity.Id); updateproject.PrintNum = entity.PrintNum; updateproject.OrderId = entity.OrderId; updateproject.TsrId = entity.TsrId; updateproject.TsrName = entity.TsrName; updateproject.TsrAddress = entity.TsrAddress; updateproject.TsrPostcode = entity.TsrPostcode; updateproject.TsrCorporation = entity.TsrCorporation; updateproject.TsrPhone = entity.TsrPhone; updateproject.SqdbId = entity.SqdbId; updateproject.SqdbName = entity.SqdbName; updateproject.SqdbPhone = entity.SqdbPhone; updateproject.SqdbAddress = entity.SqdbAddress; updateproject.SqdbPostcode = entity.SqdbPostcode; updateproject.GysId = entity.GysId; updateproject.GysName = entity.GysName; updateproject.GysAddress = entity.GysAddress; updateproject.GysPostcode = entity.GysPostcode; updateproject.GysContacts = entity.GysContacts; updateproject.GysPhone = entity.GysPhone; updateproject.XmId = entity.XmId; updateproject.XmName = entity.XmName; updateproject.XmCode = entity.XmCode; updateproject.XmPackage = entity.XmPackage; updateproject.PurchaserName = entity.PurchaserName; updateproject.Agency = entity.Agency; updateproject.IsNotice = entity.IsNotice; updateproject.NoticeDate = entity.NoticeDate; updateproject.ChallengeDate = entity.ChallengeDate; updateproject.Questioned = entity.Questioned; updateproject.Respondent = entity.Respondent; updateproject.RespondDate = entity.RespondDate; updateproject.IsResultnotice = entity.IsResultnotice; updateproject.ResultnoticeDate = entity.ResultnoticeDate; updateproject.DocumentsDate = entity.DocumentsDate; updateproject.RequestInfo = entity.RequestInfo; updateproject.Status = entity.Status; updateproject.Modifier = entity.Modifier; updateproject.Modifytime = entity.Modifytime; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id; resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public List GetListComplaintItem(string ComplaintId) { var entity = _context.TComplaintItems.Where(x => x.ComplaintId == ComplaintId).OrderBy(x => x.Sort).ToList(); var result = _mapper.Map>(entity); var question = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).Where(x => x.CodeTable == "t_challenge_items" && x.CodeField == "question").ToList(); var law = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).Where(x => x.CodeTable == "t_complaint_items" && x.CodeField == "law").ToList(); var falv = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ).Where(x => x.CodeTable == "expert_test_topicjiexi" && x.CodeField == "falv").ToList(); foreach (var complaintItemDTO in result) { var codeDataEntity = question.Where(x => x.CodeSn == complaintItemDTO.Question).FirstOrDefault(); if (codeDataEntity != null) { complaintItemDTO.QuestionName = codeDataEntity.Comments; } codeDataEntity = law.Where(x => x.CodeSn == complaintItemDTO.Law).FirstOrDefault(); if (codeDataEntity != null) { complaintItemDTO.LawName = codeDataEntity.Comments; complaintItemDTO.Lawcoment = codeDataEntity.Contents; codeDataEntity = falv.Where(x => x.CodeSn == complaintItemDTO.LawName).FirstOrDefault(); if (codeDataEntity != null) { complaintItemDTO.LawName = codeDataEntity.Comments; } } } return result; } public ResultEntity saveComplaintItem(TComplaintItemDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (entity.Id <= 0) { _context.TComplaintItems.Add(entity); } else { var updateproject = _context.TComplaintItems.Find(entity.Id); updateproject.ComplaintId = entity.ComplaintId; updateproject.Question = entity.Question; updateproject.Evidential = entity.Evidential; updateproject.Law = entity.Law; updateproject.Sort = entity.Sort; updateproject.Lawcoment = entity.Lawcoment; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id.ToString(); resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public List GetListComplaintRespondent(string ComplaintId) { var entity = _context.TComplaintRespondents.Where(x => x.ComplaintId == ComplaintId).OrderBy(x => x.Sort).ToList(); var result = _mapper.Map>(entity); return result; } public ResultEntity saveComplaintRespondent(TComplaintRespondentDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (entity.Id <= 0) { _context.TComplaintRespondents.Add(entity); } else { var updateproject = _context.TComplaintRespondents.Find(entity.Id); updateproject.ComplaintId = entity.ComplaintId; updateproject.Respondent = entity.Respondent; updateproject.Address = entity.Address; updateproject.Postcode = entity.Postcode; updateproject.Contacts = entity.Contacts; updateproject.Phone = entity.Phone; updateproject.Sort = entity.Sort; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id.ToString(); resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public List GetListComplaintGongyingshang(string ComplaintId) { var entity = _context.TComplaintGongyingshangs.Where(x => x.ComplaintId == ComplaintId).OrderBy(x => x.Sort).ToList(); var result = _mapper.Map>(entity); return result; } public ResultEntity saveComplaintGongyingshang(TComplaintGongyingshangDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (entity.Id <= 0) { _context.TComplaintGongyingshangs.Add(entity); } else { var updateproject = _context.TComplaintGongyingshangs.Find(entity.Id); updateproject.ComplaintId = entity.ComplaintId; updateproject.Gongytingshang = entity.Gongytingshang; updateproject.Dizhi = entity.Dizhi; updateproject.Youbian = entity.Youbian; updateproject.Lianxiren = entity.Lianxiren; updateproject.Lianxidianhua = entity.Lianxidianhua; updateproject.Sort = entity.Sort; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id.ToString(); resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } public List GetListComplaintShouquandaibiao(string ComplaintId) { var entity = _context.TComplaintShouquandaibiaos.Where(x => x.ComplaintId == ComplaintId).OrderBy(x=>x.Sort).ToList(); var result = _mapper.Map>(entity); return result; } public ResultEntity saveComplaintShouquandaibiao(TComplaintShouquandaibiaoDTO dto) { ResultEntity resultEntity = new ResultEntity(); try { var entity = _mapper.Map(dto); if (entity.Id <= 0) { _context.TComplaintShouquandaibiaos.Add(entity); } else { var updateproject = _context.TComplaintShouquandaibiaos.Find(entity.Id); updateproject.ComplaintId = entity.ComplaintId; updateproject.Shouquandaibiao = entity.Shouquandaibiao; updateproject.Dizhi = entity.Dizhi; updateproject.Youbian = entity.Youbian; updateproject.Lianxidianhua = entity.Lianxidianhua; updateproject.Sort = entity.Sort; } _context.SaveChanges(); resultEntity.ReturnID = entity.Id.ToString(); resultEntity.Result = true; } catch (Exception ex) { resultEntity.Result = false; resultEntity.Message = "保存失败,请联系管理员"; } return resultEntity; } /// /// 删除质疑函子表 /// /// public ResultEntity deleteChallengeItem(string ChallengeId) { ResultEntity result = new ResultEntity(); result.Result = true; var models = _context.TChallengeItems.Where(x => x.ChallengeId == ChallengeId).ToList(); ; foreach(var challengeItem in models) { _context.TChallengeItems.Remove(challengeItem); } _context.SaveChanges(); return result; } /// /// 删除投诉书子表 /// /// public ResultEntity deleteComplaintItem(string ComplaintId) { ResultEntity result = new ResultEntity(); result.Result = true; var models = _context.TComplaintItems.Where(x => x.ComplaintId == ComplaintId).ToList(); ; foreach (var complaintItem in models) { _context.TComplaintItems.Remove(complaintItem); } _context.SaveChanges(); return result; } /// /// 删除被投诉人子表 /// /// public ResultEntity deleteComplaintRespondent(string ComplaintId) { ResultEntity result = new ResultEntity(); result.Result = true; var models = _context.TComplaintRespondents.Where(x => x.ComplaintId == ComplaintId).ToList(); ; foreach (var complaintRespondent in models) { _context.TComplaintRespondents.Remove(complaintRespondent); } _context.SaveChanges(); return result; } /// /// 删除相关供应商子表 /// /// public ResultEntity deleteComplaintGongyingshang(string ComplaintId) { ResultEntity result = new ResultEntity(); result.Result = true; var models = _context.TComplaintGongyingshangs.Where(x => x.ComplaintId == ComplaintId).ToList(); ; foreach (var complaintGongyingshang in models) { _context.TComplaintGongyingshangs.Remove(complaintGongyingshang); } _context.SaveChanges(); return result; } /// /// 删除相关供应商子表 /// /// public ResultEntity deleteComplaintShouquandaibiao(string ComplaintId) { ResultEntity result = new ResultEntity(); result.Result = true; var models = _context.TComplaintShouquandaibiaos.Where(x => x.ComplaintId == ComplaintId).ToList(); ; foreach (var complaintShouquandaibiao in models) { _context.TComplaintShouquandaibiaos.Remove(complaintShouquandaibiao); } _context.SaveChanges(); return result; } public ResultDataEntity SearchByPagingWenshu(CooperOrderDTOSearch searchEntity) { ResultDataEntity data = new ResultDataEntity(); List list = new List(); var listCode = (from a in _context.SysCodeDtls join b in _context.SysCodes on a.CodeId equals b.Id where a.RecStatus == "A" && b.RecStatus == "A" select new CodeDataEntity() { CodeId = b.Id, CodeTable = b.CodeTable, CodeField = b.CodeField, CodeSn = a.CodeSn, Comments = a.Comments, Contents = a.Contents, RecStatus = a.RecStatus, Sort = a.Sort } ); DateTime XdTimestart = DateTime.Now; DateTime XdTimeend = DateTime.Now; if (!string.IsNullOrWhiteSpace(searchEntity.XdTime)) { string[] XdTimes = searchEntity.XdTime.Split("|"); DateTime.TryParse(XdTimes[0], out XdTimestart); DateTime.TryParse(XdTimes[1], out XdTimeend); XdTimeend = XdTimeend.AddDays(1); } var query2 = (from a in _context.CooperOrders join b in _context.TChallengeletters on a.Id equals b.OrderId join g in _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A") on a.Khdw equals g.Id into gsss from ggg in gsss.DefaultIfEmpty() join l in _context.FiOrderrecievemoneys.Where(x => x.RecStatus == "A").GroupBy(q => new { q.OrderId }).Select(q => new { OrderId = q.Key.OrderId, YishouMoney = q.Sum(x => x.Recievemoney), } ) on a.Id equals l.OrderId into lsss from lll in lsss.DefaultIfEmpty() // join d in listCode.Where(x => x.CodeTable == "t_challengeletter" && x.CodeField == "status") //on b.Status equals int.Parse(d.CodeSn) //into dsss // from ddd in dsss.DefaultIfEmpty() where a.RecStatus == "A" && a.OrderType1 == "代拟质疑函" && (string.IsNullOrWhiteSpace(searchEntity.XdTime) || (b.Createtime >= XdTimestart && b.Createtime <= XdTimeend)) && (string.IsNullOrWhiteSpace(searchEntity.Wenshuleixing) || a.OrderType1 == searchEntity.Wenshuleixing.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.XmName) || b.XmName.Contains(searchEntity.XmName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.XmCode) || b.XmCode.Contains(searchEntity.XmCode.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.PurchaserName) || b.PurchaserName.Contains(searchEntity.PurchaserName.Trim())) //&& (string.IsNullOrWhiteSpace(searchEntity.Agency) || b.Agency.Contains(searchEntity.Agency.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.KhdwName) || ggg.Name.Contains(searchEntity.KhdwName.Trim())) && (searchEntity.Status <= 0 || b.Status == searchEntity.Status) select new CooperOrderDTO { Id = a.Id, XmCode = b.XmCode, XmName = b.XmName, PurchaserName = b.PurchaserName, Agency = "", KhdwName = ggg.Name, XdTime = a.Createtime, XdTimeName = a.Createtime.ToString("yyyy-MM-dd"), YishouMoney = lll.YishouMoney ?? 0, WeishouMoney = (a.Money ?? 0) /*- (a.Youhui ?? 0)*/ - (lll.YishouMoney ?? 0), OrderType1 = a.OrderType1, Status = b.Status.ToString(), Modifytime = b.Modifytime.Value, //StatusName = ddd.Comments } ).ToList(); var query1 =(from a in _context.CooperOrders join b in _context.TComplaintletters on a.Id equals b.OrderId join g in _context.CooperatecustomCustomers.Where(x => x.RecStatus == "A") on a.Khdw equals g.Id into gsss from ggg in gsss.DefaultIfEmpty() join l in _context.FiOrderrecievemoneys.Where(x => x.RecStatus == "A").GroupBy(q => new { q.OrderId }).Select(q => new { OrderId = q.Key.OrderId, YishouMoney = q.Sum(x => x.Recievemoney), } ) on a.Id equals l.OrderId into lsss from lll in lsss.DefaultIfEmpty() where a.RecStatus == "A" && a.OrderType1 == "代拟投诉书" && (string.IsNullOrWhiteSpace(searchEntity.XdTime) || (b.Createtime >= XdTimestart && b.Createtime <= XdTimeend)) && (string.IsNullOrWhiteSpace(searchEntity.Wenshuleixing) || a.OrderType1 == searchEntity.Wenshuleixing.Trim()) && (string.IsNullOrWhiteSpace(searchEntity.XmCode) || b.XmCode.Contains(searchEntity.XmCode.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.XmName) || b.XmName.Contains(searchEntity.XmName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.PurchaserName) || b.PurchaserName.Contains(searchEntity.PurchaserName.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.Agency) || b.Agency.Contains(searchEntity.Agency.Trim())) && (string.IsNullOrWhiteSpace(searchEntity.KhdwName) || ggg.Name.Contains(searchEntity.KhdwName.Trim())) && (searchEntity.Status <= 0 || b.Status == searchEntity.Status) select new CooperOrderDTO { Id = a.Id, XmCode = b.XmCode, XmName = b.XmName, PurchaserName = b.PurchaserName, Agency = b.Agency, KhdwName = ggg.Name, XdTime = b.Createtime.Value, XdTimeName = b.Createtime.Value.ToString("yyyy-MM-dd"), YishouMoney = lll.YishouMoney ?? 0, WeishouMoney = (a.Money ?? 0) /*- (a.Youhui ?? 0)*/ - (lll.YishouMoney ?? 0), OrderType1 = a.OrderType1, Status = b.Status.ToString(), Modifytime = b.Modifytime.Value, } ).ToList(); query2.AddRange(query1); var query = query2.Where(x => x.WeishouMoney <= 0).OrderByDescending(x => x.Modifytime).ToList(); //if (searchEntity.totalrows == 0) searchEntity.totalrows = query.Count(); var lianlist = query.Skip((searchEntity.page - 1) * searchEntity.rows).Take(searchEntity.rows).ToList(); foreach (var cooperOrderDTO in lianlist) { var codeDataEntity = listCode.Where(x => x.CodeTable == "t_challengeletter" && x.CodeField == "status" && x.CodeSn == cooperOrderDTO.Status.ToString()).FirstOrDefault(); if (codeDataEntity != null) { cooperOrderDTO.StatusName = codeDataEntity.Comments; } } data.LoadData(searchEntity, lianlist); return data; } } }