using com.sun.org.apache.xalan.@internal.xsltc.runtime; using Elight.Entity; using Elight.Entity.SystemModel; using Elight.Logic; using Elight.Utility; using Elight.Utility.Code; using Elight.Utility.Extensions; using Elight.Utility.logs; using java.util; using javax.xml.crypto; using jdk.nashorn.@internal.ir; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Quartz.Logging; using SqlSugar; using System.Drawing.Printing; using System.Security.AccessControl; using static com.sun.tools.@internal.xjc.reader.xmlschema.bindinfo.BIConversion; using User = Elight.Utility.User; namespace _24Hour.Controllers.Common { /// /// 通用接口 /// [Authorize] [ApiController] [Route("api/Common")] public class CommonController : Controller { #region Identity private readonly SqlSugarClient _db;//数据库 private readonly WriteSysLog _logs;//操作日志 private readonly WebSocketController _SocketCon;//WebSocket发送 App_Sys_UserModel _userdata = new App_Sys_UserModel();//当前用户 private readonly List _Unitdata;//当前用户 private readonly ILogger _logger;//日志 DateTime unixStartTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); Result result = new Result(); public CommonController(ILogger logger, SqlSugarClient db, WriteSysLog logs, User user, WebSocketController SocketCon) { _logger = logger; _db = db; _logs = logs; _userdata = user.Userdata(); _SocketCon = SocketCon; _Unitdata = _db.Queryable().Where(q => q.IsDelete == 0).ToList(); } #endregion #region 最近待办--我的待办---我的预约 /// /// 系统---根据当前登录人单位获取所有预约信息 /// [HttpPost] [Route("queryreunit")] public async Task queryreunit(Commonpage Commondata) { try { RefAsync totalNumber = 0;//总数据 var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.usertype == 0 ).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 ).ToListAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.matter, state = q.state, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, username = q.createusername, handleId = q.receptionuser, handleuser = q.receptionusername, operatorId = q.operatorId, operatorName = q.operatorName, annex = q.annex }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.name, sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime, username = q.createusername, handleId = q.meetwitId, handleuser = q.meetwitname, operatorId = q.operatorId, operatorName = q.operatorName, annex = "" }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.matter, sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime, username = q.createusername, handleId = q.meetwitId, handleuser = q.meetwitname, operatorId = q.operatorId, operatorName = q.operatorName, annex = "" }); }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 6, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.matter, sttime = q.sttime, ettime = "", state = q.state, creationtime = q.creationtime, username = q.createusername, handleId = q.meetwitId, handleuser = q.meetwitname, operatorId = q.operatorId, operatorName = q.operatorName, annex = "" }); }); //获取听证预约记录 var Hearingdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, matter = q.witnessrequest, sttime = q.reservationtime, ettime = "", state = q.state, creationtime = q.creationtime, username = q.lawyeruser, handleId = q.receptionuser, handleuser = q.receptionusername, operatorId = q.operatorId, operatorName = q.operatorName, annex = "" }); }); //条件查询 list = list.WhereIF(Commondata.username.NotNull(), x => $"{x.username}".Contains(Commondata.username)) .WhereIF(Commondata.handleuser.NotNull(), x => $"{x.handleuser}".Contains(Commondata.handleuser)) .WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.creationtime >= Commondata.StartTime && q.creationtime < Commondata.EndTime.Value.AddDays(1)).ToList(); Commondata.RowsCount = list.Count(); list = list.OrderByDescending(q => q.creationtime).ToList() .Skip(Commondata.PageSize * (Commondata.PageIndex - 1)).Take(Commondata.PageSize).ToList(); result.IsSucceed = true; result.result = new { Paging = Commondata, Data = list.ToList() }; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } /// /// 系统---根据预约Id 查询预约信息 /// /// 预约Id /// 类型 /// [HttpGet] [Route("queryreunitId")] public async Task queryreunitId(string? Id, int type) { try { switch (type) { case 0: //获取律师服务预约记录 var list = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); if (list.Count>0) { var unitdal = _Unitdata.Where(q => q.unitCode == list.FirstOrDefault().unitCode).FirstOrDefault(); if (unitdal!= null) { list.FirstOrDefault().unitCode = unitdal.unitname; } result.result = list.FirstOrDefault(); } else { result.result =null; } break; case 1: //获取远程会见预约记录 var Remotedata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); if (Remotedata.Count>0) { var unitdatote = _Unitdata.Where(q => q.unitCode == Remotedata.FirstOrDefault().unitCode).FirstOrDefault(); if (unitdatote!= null) Remotedata.FirstOrDefault().unitCode = unitdatote.unitname; result.result = Remotedata.FirstOrDefault(); } break; case 2: //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); if (Receptiondata.Count>0) { var unitdatR = _Unitdata.Where(q => q.unitCode == Receptiondata.FirstOrDefault().unitCode).FirstOrDefault(); if (unitdatR!= null) Receptiondata.FirstOrDefault().unitCode = unitdatR.unitname; result.result = Receptiondata.FirstOrDefault(); } break; case 3: //获取听证预约记录 var Hearingdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); if (Hearingdata.Count>0) { var unitdata = _Unitdata.Where(q => q.unitCode == Hearingdata.FirstOrDefault().unitCode).FirstOrDefault(); if (unitdata!= null) Hearingdata.FirstOrDefault().unitCode = unitdata.unitname; result.result = Hearingdata.FirstOrDefault(); } break; case 4: //获取文书签收记录 var Documentdata = await _db.Queryable() .Where(q => q.Id == Id).ToListAsync(); if (Documentdata.Count>0) { var unitda = _Unitdata.Where(q => q.unitCode == Documentdata.FirstOrDefault().dwbm).FirstOrDefault(); if (unitda!= null) Documentdata.FirstOrDefault().dwbm = unitda.unitname; result.result = Documentdata.FirstOrDefault(); } break; case 5: //获取云柜记录 var CloudCabinetdata = await _db.Queryable() .Where(q => q.Id == Id).ToListAsync(); if (CloudCabinetdata.Count>0) { var unitdat = _Unitdata.Where(q => q.unitCode == CloudCabinetdata.FirstOrDefault().dwbm).FirstOrDefault(); CloudCabinetdata.FirstOrDefault().dwbm = unitdat.unitname; result.result = CloudCabinetdata.FirstOrDefault(); } break; case 6: //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.Id == Id).ToListAsync(); if (Confessiondata.Count>0) result.result = Confessiondata.FirstOrDefault(); break; } result.IsSucceed = true; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "通过Id查询预约信息", result, _db); return result; } /// /// app---根据当前登录人获取所有预约信息--type类型为:0律师服务,1远程会见,2远程接待 /// [HttpPost] [Route("queryreservation")] public async Task queryreservation(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, daId = da?.Id, Unitname = Unitdata?.unitname, unitCode = Unitdata?.unitCode, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = q.objectstr,//访问对象(案件名称) lawyerunit = "", location = "", courtname = "", casetype = "", operatorId = q.operatorId, operatorName = q.operatorName, state = q.state, reason = q.reason, sttime = q.receptiontime, ettime = "", qrsj = q.acceptancetime, creationtime = q.creationtime, receptionuser = q.receptionuser, receive = q.createuserId, username = userda?.name, notes = q.notes, annex = q.annex }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, unitCode = Unitdata?.unitCode, Unitname = Unitdata?.unitname, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) lawyerunit = "", location = "", courtname = "", casetype = "", operatorId = q.operatorId, operatorName = q.operatorName, Code = q.Code, state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, qrsj = q.acceptancetime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, receive = q.createuserId, notes = q.notes, appurl = q.appurl, annex = "" }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, Unitname = Unitdata?.unitname, unitCode = Unitdata?.unitCode, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", lawyerunit = "", location = "", courtname = "", casetype = "", operatorId = q.operatorId, operatorName = q.operatorName, qrsj = q.acceptancetime, state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, receive = q.createuserId, notes = q.notes, appurl = "", annex = "" }); }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 6, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, Unitname = Unitdata?.unitname, unitCode = Unitdata?.unitCode, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", lawyerunit = "", location = "", courtname = "", casetype = "", operatorId = q.operatorId, operatorName = q.operatorName, qrsj = q.acceptancetime, state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = "", creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, receive = q.createuserId, notes = q.notes, appurl = "", annex = "" }); }); //获取听证预约记录 var Hearingdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .Where(q => q.IsDeleted == 0 && q.createuserId == _userdata.Id).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, Unitname = Unitdata?.unitname, unitCode = Unitdata?.unitCode, name = q.lawyeruser,//律师律师名称 lawyerunit = q.lawyerunit,//律师事务所 location = q.location,//预约地点 operatorId = q.operatorId, operatorName = q.operatorName, qrsj = q.acceptancetime, phone = q.contact,//联系方式 matter = q.witnessrequest,//事由 objectstr = "",//访问对象(案件名称) Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.reservationtime,//预约时间 ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser,//办理人Id username = userda?.name,//办理人名称 receive = q.createuserId,//办接收人 notes = q.notes, appurl = "", annex = "" }); }); //分页查询--如有预约类型--reservationId可筛选预约类型,预约信息Id--可筛选预约信息 list = list.Where(q => q.daId != null).WhereIF(Commondata.matter.NotNull(), x => x.matter.Contains(Commondata.matter) || x.title.Contains(Commondata.matter) || x.name.Contains(Commondata.matter) || x.objectstr.Contains(Commondata.matter) || x.lawyerunit.Contains(Commondata.matter)).OrderByDescending(q => q.creationtime).ToList(); Commondata.RowsCount = list.Count(); list = list.Skip(Commondata.PageSize * (Commondata.PageIndex - 1)).Take(Commondata.PageSize).ToList(); result.IsSucceed = true; result.result = new { Paging = Commondata, Data = list.ToList() }; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } /// /// app---根据登录人获取所有预约办理信息 /// [HttpPost] [Route("queryreservationjc")] public async Task queryreservationjc(Commonpage Commondata) { try { var list = new List(); if (string.IsNullOrEmpty(_userdata.department)) { result.IsSucceed = true; result.result = list; return result; } //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() //.WhereIF(Commondata.state != null && Commondata.state != 0, x => x.state == Commondata.state) //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser == _userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id||x.operatorId ==null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = q.objectstr,//访问对象(案件名称) handleId = q.receptionuser, handleuser = q.receptionusername, operatorId = q.operatorId, operatorName = q.operatorName, lawyerunit = "", location = "", courtname = "", casetype = "", qrsj = q.acceptancetime, state = q.state, reason = q.reason, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, receive = q.createuserId, username = userda?.name, yyname = q.createusername,//预约人名称 notes = q.notes, annex = q.annex }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() //.WhereIF(Commondata.state != null && Commondata.state != 0, x => x.state == Commondata.state) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId==_userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) operatorId = q.operatorId, operatorName = q.operatorName, lawyerunit = "", location = "", courtname = "", casetype = "", qrsj = q.acceptancetime, Code = q.Code, state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, receive = q.createuserId, yyname = q.createusername,//预约人名称 notes = q.notes, appurl = q.appurl, annex = "" }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() //.WhereIF(Commondata.state != null && Commondata.state != 0, x => x.state == Commondata.state) //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId==_userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) operatorId = q.operatorId, operatorName = q.operatorName, lawyerunit = "", location = "", courtname = "", casetype = "", qrsj = q.acceptancetime, Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, receive = q.createuserId, username = q.meetwitname, yyname = q.createusername,//预约人名称 notes = q.notes, appurl = "", annex = "" }); }); //获取听证服务预约记录 var Hearingdata = await _db.Queryable() //.WhereIF(Commondata.state != null && Commondata.state != 0, x => x.state == Commondata.state) //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) // .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser==_userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.lawyeruser,//律师律师名称 handleId = q.receptionuser, handleuser = q.receptionusername, operatorId = q.operatorId, operatorName = q.operatorName, lawyerunit = q.lawyerunit,//律师事务所 location = q.location,//预约地点 qrsj = q.acceptancetime, phone = q.contact,//联系方式 matter = q.witnessrequest,//事由 objectstr = "",//访问对象(案件名称) Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.reservationtime,//预约时间 ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser,//办理人Id username = userda?.name,//办理人名称 receive = q.receptionuser,//办接收人 notes = q.notes, yyname = q.createusername,//预约人名称 appurl = "", annex = "" }); }); //获取文书签收记录 var Documentdata = await _db.Queryable() .WhereIF(Commondata.state != null && Commondata.state == 0, x => x.zt.Contains("03")) .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.zt.Contains("1000")) .WhereIF(Commondata.state != null && Commondata.state == 2, x => x.zt.Contains("99") || x.zt.Contains("04")) .Where(q => q.zjhm.Contains(_userdata.cardId)).ToArrayAsync(); Documentdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 4, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.wsmc,//文书名称 lawyerunit = Unitdata?.unitname,//单位 location = "",//预约地点 phone = "",//联系方式 matter = q.ajmc,//案件名称 objectstr = "",//访问对象(案件名称) Code = "", state = q.zt,//状态 reason = "",//原因 sttime = unixStartTime.AddMilliseconds(long.Parse(q.zhxgsj)),//时间 ettime = "", creationtime = unixStartTime.AddMilliseconds(long.Parse(q.zhxgsj)),//最新时间 receptionuser = "",//办理人Id username = "",//办理人名称 receive = "",//办接收人 notes = "", appurl = "", yyname = "", annex = "" }); }); //获取云柜记录 var CloudCabinetdata = await _db.Queryable() .WhereIF(Commondata.state != null && Commondata.state == 0, x => x.zt.Contains("00")) .WhereIF(Commondata.state != null && Commondata.state == 1, x => x.zt.Contains("1000")) .WhereIF(Commondata.state != null && Commondata.state == 2, x => x.zt.Contains("99")) .Where(q => (q.sfzh.Contains(_userdata.cardId) || q.lxhm == _userdata.phone)).ToArrayAsync(); CloudCabinetdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 5, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = $"{q.cljs}",//材料件数 lawyerunit = Unitdata?.unitname,// location = "",// phone = q.lxhm,//联系方式 matter = !string.IsNullOrEmpty(q.gjkqmm) ? q.gjkqmm : q.wbkqmm,//取件码 objectstr = "",//干警取件码 Code = "", state = q.zt,//状态 reason = "", sttime = q.cjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.cjsj)).ToString("yyyy-MM-dd HH:mm"),//创建时间 ettime = q.qjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.qjsj)).ToString("yyyy-MM-dd HH:mm"),//取件时间 creationtime = q.cjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.cjsj)).ToString("yyyy-MM-dd HH:mm"),//创建时间 receptionuser = "", username = "", receive = "", notes = "", appurl = "", yyname = "", annex = "" }); }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() //.WhereIF(Commondata.state != null && Commondata.state != 0, x => x.state == Commondata.state) //.WhereIF(Commondata.state != null && Commondata.state == 0, x => x.state == Commondata.state || x.state == 1) .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId==_userdata.department) .WhereIF(Commondata.state != 0, x => x.operatorId == _userdata.Id || x.operatorId == null) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId)).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 6, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) operatorId = q.operatorId, operatorName = q.operatorName, lawyerunit = "", location = "", courtname = "", casetype = "", qrsj = q.acceptancetime, Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = "", creationtime = q.creationtime, receptionuser = q.meetwitId, receive = q.createuserId, username = q.meetwitname, notes = q.notes, yyname = q.createusername,//预约人名称 appurl = "", annex = "" }); }); list = list .WhereIF(Commondata.matter.NotNull(), x => x?.matter.Contains(Commondata.matter) || x?.title.Contains(Commondata.matter) || x?.name.Contains(Commondata.matter) || x?.objectstr.Contains(Commondata.matter) || x?.lawyerunit.Contains(Commondata.matter)).OrderByDescending(q => q.creationtime).ToList(); Commondata.RowsCount = list.Count(); list = list.Skip(Commondata.PageSize * (Commondata.PageIndex - 1)).Take(Commondata.PageSize).ToList(); result.IsSucceed = true; result.result = new { Paging = Commondata, Data = list.ToList() }; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } /// /// app---根据登录人获取所有预约办理信息--首页 /// [HttpPost] [Route("queryhandle")] public async Task queryhandle(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.IsDeleted == 0 && q.usertype == 0).ToArrayAsync(); if (string.IsNullOrEmpty(_userdata.department)) { result.IsSucceed = true; result.result=list; return result; } //获取律师服务预约记录 var Lawyerdata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser==_userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser) && q.state != 2 && q.state != 3).ToArrayAsync(); // .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) lawyerunit = "", location = "", courtname = "", casetype = "", qrsj = q.acceptancetime, state = q.state, reason = q.reason, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, receive = q.createuserId, username = userda?.name, yyname = q.createusername,//预约人名称 notes = q.notes, operatorId = q.operatorId, operatorName = q.operatorName }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) qrsj = q.acceptancetime, lawyerunit = "", location = "", courtname = "", casetype = "", operatorId = q.operatorId, operatorName = q.operatorName, Code = q.Code, state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, receive = q.createuserId, yyname = q.createusername,//预约人名称 notes = q.notes, appurl = q.appurl }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); // .Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) qrsj = q.acceptancetime, lawyerunit = "", location = "", courtname = "", casetype = "", operatorId = q.operatorId, operatorName = q.operatorName, Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, receive = q.createuserId, username = q.meetwitname, yyname = q.createusername,//预约人名称 notes = q.notes, appurl = "" }); }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.meetwitId == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.meetwitId) && q.state != 2 && q.state != 3).ToArrayAsync(); //.Where(q => q.IsDeleted == 0 && q.meetwitId == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 6, Id = q.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) qrsj = q.acceptancetime, lawyerunit = "", location = "", courtname = "", casetype = "", operatorId = q.operatorId, operatorName = q.operatorName, Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = "", creationtime = q.creationtime, receptionuser = q.meetwitId, receive = q.createuserId, username = q.meetwitname, yyname = q.createusername,//预约人名称 notes = q.notes, appurl = "" }); }); //获取听证服务预约记录 var Hearingdata = await _db.Queryable().WhereIF(!string.IsNullOrEmpty(_userdata.department), x => x.receptionuser == _userdata.department && (x.operatorId == _userdata.Id || x.operatorId == null)) .Where(q => q.IsDeleted == 0 && !string.IsNullOrEmpty(q.receptionuser) && q.state != 2 && q.state != 3).ToArrayAsync(); // .Where(q => q.IsDeleted == 0 && q.receptionuser == _userdata.department && q.state != 2 && q.state != 3).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.lawyeruser,//律师律师名称 qrsj = q.acceptancetime, lawyerunit = q.lawyerunit,//律师事务所 location = q.location,//预约地点 operatorId = q.operatorId, operatorName = q.operatorName, phone = q.contact,//联系方式 matter = q.witnessrequest,//事由 objectstr = "",//访问对象(案件名称) Code = "", state = q.state,//状态 reason = q.reason,//原因 sttime = q.reservationtime,//预约时间 ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser,//办理人Id username = userda?.name,//办理人名称 receive = q.receptionuser,//办接收人 yyname = q.createusername,//预约人名称 notes = q.notes, appurl = "" }); }); //获取文书签收记录 var Documentdata = await _db.Queryable() .Where(q => q.zjhm.Contains(_userdata.cardId) && q.zt.Contains("03")).ToArrayAsync(); Documentdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 4, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.wsmc,//律师律师名称 lawyerunit = Unitdata?.unitname,//律师事务所 location = "",//预约地点 phone = "",//联系方式 matter = q.ajmc,//事由 objectstr = "",//访问对象(案件名称) Code = "", state = q.zt,//状态 reason = "",//原因 sttime = unixStartTime.AddMilliseconds(long.Parse(q.zhxgsj)),//预约时间 ettime = "", creationtime = unixStartTime.AddMilliseconds(long.Parse(q.zhxgsj)), receptionuser = "",//办理人Id username = "",//办理人名称 receive = "",//办接收人 notes = "", appurl = "", yyname = "" }); }); //获取云柜记录 var CloudCabinetdata = await _db.Queryable() .Where(q => q.sfzh.Contains(_userdata.cardId) || q.lxhm == _userdata.phone && q.zt.Contains("00")).ToArrayAsync(); CloudCabinetdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 5, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.cljs,//材料件数 lawyerunit = Unitdata?.unitname,// location = "",// phone = q.lxhm,//联系方式 matter = !string.IsNullOrEmpty(q.gjkqmm) ? q.gjkqmm : q.wbkqmm,//取件码 objectstr = "", Code = "", state = q.zt,//状态 reason = "", sttime = q.cjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.cjsj)).ToString("yyyy-MM-dd HH:mm"),//创建时间 ettime = q.qjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.qjsj)).ToString("yyyy-MM-dd HH:mm"),//取件时间 creationtime = q.cjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.cjsj)).ToString("yyyy-MM-dd HH:mm"),//创建时间 receptionuser = "", username = "", receive = "", notes = "", appurl = "", yyname = "" }); }); list = list.OrderByDescending(q => q.creationtime).ToList(); result.IsSucceed = true; result.result = new { count = list.ToList().Count(), list = list.Take(10).ToList() }; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } /// /// 根据Id分配办理人 /// /// 预约信息Id /// 办理人Id /// 办理人 /// [HttpPost] [Route("Updateuser")] public async Task Updateuser(UpdateuserDto dto) { try { var newmodel = _userdata; if (dto == null) { result.IsSucceed = false; result.result = "接受参数失败"; return result; } if (string.IsNullOrEmpty(dto.Id)) { result.IsSucceed = false; result.result = "编号不能为空"; return result; } if (dto.Type == null) { result.IsSucceed = false; result.result = "确认时间不能为空"; return result; } //if (string.IsNullOrEmpty(dto.userId)) //{ // result.IsSucceed = false; // result.result = "用户编号不能为空"; // return result; //} //if (dto.time== null) //{ // result.IsSucceed = false; // result.result = "确认时间不能为空"; // return result; //} //if (dto.state==false && string.IsNullOrEmpty(dto.reason)) //{ // result.IsSucceed = false; // result.result = "拒绝原因不能为空"; // return result; //} //律师服务 var Lawyerbol = await _db.Queryable().Where(q => q.Id == dto.Id).ToListAsync(); if (Lawyerbol.Count() > 0) { if (dto.Type == 1) { //if (Lawyerbol.FirstOrDefault().operatorId!=null) //{ // result.IsSucceed = false; // result.result = "预约已受理"; // return result; //} Lawyerbol.FirstOrDefault().acceptancetime = dto.time; Lawyerbol.FirstOrDefault().reason = dto.reason; Lawyerbol.FirstOrDefault().state = Convert.ToInt32(dto.state); Lawyerbol.FirstOrDefault().operatorId =newmodel.Id; Lawyerbol.FirstOrDefault().operatorName = newmodel.name; } else { Lawyerbol.FirstOrDefault().receptionuser = dto.userId; Lawyerbol.FirstOrDefault().receptionusername = dto.username; } _db.BeginTran(); var num = await _db.Updateable(Lawyerbol.FirstOrDefault()).UpdateColumns(it => new { it.receptionuser, it.receptionusername, it.acceptancetime, it.reason, it.state, it.operatorId, it.operatorName }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { _SocketCon.system(dto.userId); result.IsSucceed = true; result.result = "修改成功"; } } //远程会见 var RemoteModelbol = await _db.Queryable().Where(q => q.Id == dto.Id).ToListAsync(); if (RemoteModelbol.Count() > 0) { if (dto.Type == 1) { //if (RemoteModelbol.FirstOrDefault().operatorId != null) //{ // result.IsSucceed = false; // result.result = "预约已受理"; // return result; //} RemoteModelbol.FirstOrDefault().acceptancetime = dto.time; RemoteModelbol.FirstOrDefault().reason = dto.reason; RemoteModelbol.FirstOrDefault().state = Convert.ToInt32(dto.state); RemoteModelbol.FirstOrDefault().operatorId =newmodel.Id; RemoteModelbol.FirstOrDefault().operatorName = newmodel.name; } else { RemoteModelbol.FirstOrDefault().meetwitId = dto.userId; RemoteModelbol.FirstOrDefault().meetwitname = dto.username; } _db.BeginTran(); var num = await _db.Updateable(RemoteModelbol.FirstOrDefault()).UpdateColumns(it => new { it.meetwitId, it.meetwitname, it.acceptancetime, it.reason, it.state, it.operatorId, it.operatorName }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "修改成功"; } } //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.Id == dto.Id).ToArrayAsync(); if (Receptiondata.Count() > 0) { if (dto.Type == 1) { //if (Receptiondata.FirstOrDefault().operatorId != null) //{ // result.IsSucceed = false; // result.result = "预约已受理"; // return result; //} Receptiondata.FirstOrDefault().acceptancetime = dto.time; Receptiondata.FirstOrDefault().reason = dto.reason; Receptiondata.FirstOrDefault().state = Convert.ToInt32(dto.state); Receptiondata.FirstOrDefault().operatorId =newmodel.Id; Receptiondata.FirstOrDefault().operatorName = newmodel.name; } else { Receptiondata.FirstOrDefault().meetwitId = dto.userId; Receptiondata.FirstOrDefault().meetwitname = dto.username; } _db.BeginTran(); var num = await _db.Updateable(Receptiondata.FirstOrDefault()).UpdateColumns(it => new { it.meetwitId, it.meetwitname, it.acceptancetime, it.reason, it.state, it.operatorId, it.operatorName }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "修改成功"; } } //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .Where(q => q.Id == dto.Id).ToArrayAsync(); if (Confessiondata.Count() > 0) { if (dto.Type == 1) { //if (Confessiondata.FirstOrDefault().operatorId != null) //{ // result.IsSucceed = false; // result.result = "预约已受理"; // return result; //} Confessiondata.FirstOrDefault().acceptancetime = dto.time; Confessiondata.FirstOrDefault().reason = dto.reason; Confessiondata.FirstOrDefault().state =Convert.ToInt32(dto.state); Confessiondata.FirstOrDefault().operatorId =newmodel.Id; Confessiondata.FirstOrDefault().operatorName = newmodel.name; } else { Confessiondata.FirstOrDefault().meetwitId = dto.userId; Confessiondata.FirstOrDefault().meetwitname = dto.username; } _db.BeginTran(); var num = await _db.Updateable(Confessiondata.FirstOrDefault()).UpdateColumns(it => new { it.meetwitId, it.meetwitname, it.acceptancetime, it.reason, it.state, it.operatorId, it.operatorName }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "修改成功"; } } //获取听证预约记录 var Hearingdata = await _db.Queryable() .Where(q => q.Id == dto.Id).ToArrayAsync(); if (Hearingdata.Count() > 0) { if (dto.Type == 1) { //if (Hearingdata.FirstOrDefault().operatorId != null) //{ // result.IsSucceed = false; // result.result = "预约已受理"; // return result; //} Hearingdata.FirstOrDefault().acceptancetime = dto.time; Hearingdata.FirstOrDefault().reason = dto.reason; Hearingdata.FirstOrDefault().state = Convert.ToInt32(dto.state); Hearingdata.FirstOrDefault().operatorId =newmodel.Id; Hearingdata.FirstOrDefault().operatorName = newmodel.name; } else { Hearingdata.FirstOrDefault().receptionuser = dto.userId; Hearingdata.FirstOrDefault().receptionusername = dto.username; } _db.BeginTran(); var num = await _db.Updateable(Hearingdata.FirstOrDefault()).UpdateColumns(it => new { it.receptionuser, it.receptionusername, it.acceptancetime, it.reason, it.state, it.operatorId, it.operatorName }).ExecuteCommandAsync(); _db.CommitTran(); if (num > 0) { result.IsSucceed = true; result.result = "修改成功"; } } } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; LogService.WriteLog(ex, "修改分配办理人"); } _logs.WriteSysLogadd("分配办理人", "修改分配办理人", result, _db); return result; } #endregion #region 自主查询 /// /// app---根据当前登录人查询预约信息--自主查询 /// [HttpPost] [Route("querylist")] public async Task querylist(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); //获取律师服务预约记录--判断单位,查询不同数据信息 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .WhereIF(Commondata.unitId.NotNull(), x => x.receptionuser == _userdata.department) .WhereIF(Commondata.unitId.NotNull(), x => x.operatorId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, objectstr = q.objectstr, matter = q.matter, state = q.state, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime }); }); //获取远程会见预约记录--判断单位,查询不同数据信息 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .WhereIF(Commondata.unitId.NotNull(), x => x.meetwitId == _userdata.department) .WhereIF(Commondata.unitId.NotNull(), x => x.operatorId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.name, objectstr = "", sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime }); }); //获取远程接待预约记录--判断单位,查询不同数据信息 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .WhereIF(Commondata.unitId.NotNull(), x => x.meetwitId == _userdata.department) .WhereIF(Commondata.unitId.NotNull(), x => x.operatorId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.matter, objectstr = "", sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime }); }); //获取认罪认罚预约记录--判断单位,查询不同数据信息 var Confessiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .WhereIF(Commondata.unitId.NotNull(), x => x.meetwitId == _userdata.department) .WhereIF(Commondata.unitId.NotNull(), x => x.operatorId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 6, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.matter, objectstr = "", sttime = q.sttime, ettime = "", state = q.state, creationtime = q.creationtime }); }); //获取听证预约记录 var Hearingdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(!Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .WhereIF(Commondata.unitId.NotNull(), x => x.receptionuser == _userdata.department) .WhereIF(Commondata.unitId.NotNull(), x => x.operatorId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.witnessrequest, objectstr = "", sttime = q.reservationtime, ettime = "", state = q.state, creationtime = q.creationtime }); }); //获取文书签收记录 var Documentdata = await _db.Queryable() .Where(q => q.zjhm.Contains(_userdata.cardId)).ToArrayAsync(); Documentdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 4, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.wsmc, objectstr = q.ajmc, sttime = "", ettime = "", state = q.zt, creationtime = unixStartTime.AddMilliseconds(long.Parse(q.zhxgsj)),//最新时间 }); }); //获取云柜记录 var CloudCabinetdata = await _db.Queryable() .Where(q => q.sfzh.Contains(_userdata.cardId) || q.lxhm == _userdata.phone).ToArrayAsync(); CloudCabinetdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 5, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = !string.IsNullOrEmpty(q.gjkqmm) ? q.gjkqmm : q.wbkqmm,//取件码 objectstr = "", sttime = "", ettime = "", state = q.zt, creationtime = q.cjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.cjsj)).ToString("yyyy-MM-dd HH:mm"),//创建时间 }); }); //查询 list = list.ToList().WhereIF(Commondata.matter.NotNull(), q => q.matter.Contains(Commondata.matter) || q.objectstr.Contains(Commondata.matter) || q.title.Contains(Commondata.matter)).ToList(); result.IsSucceed = true; result.result = list.ToList().OrderByDescending(q => q.creationtime).ToList(); } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } #endregion #region 自主查询一体机 /// /// app---根据当前登录人查询预约信息--自主查询---一体机 /// [HttpPost] [Route("querylistytj")] public async Task querylistytj(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); //获取律师服务预约记录--判断单位,查询不同数据信息 var Lawyerdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(Commondata.unitId.NotNull(), x => x.unitCode.Contains(Commondata.unitId)) .WhereIF(Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, objectstr = q.objectstr, matter = q.matter, state = q.state, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime }); }); //获取远程会见预约记录--判断单位,查询不同数据信息 var Remotedata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(Commondata.unitId.NotNull(), x => x.unitCode.Contains(Commondata.unitId)) .WhereIF(Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.name, objectstr = "", sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime }); }); //获取远程接待预约记录--判断单位,查询不同数据信息 var Receptiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(Commondata.unitId.NotNull(), x => x.unitCode.Contains(Commondata.unitId)) .WhereIF(Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.matter, objectstr = "", sttime = q.sttime, ettime = q.ettime, state = q.state, creationtime = q.creationtime }); }); //获取认罪认罚预约记录--判断单位,查询不同数据信息 var Confessiondata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(Commondata.unitId.NotNull(), x => x.unitCode.Contains(Commondata.unitId)) .WhereIF(Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 6, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.matter, objectstr = "", sttime = q.sttime, ettime = "", state = q.state, creationtime = q.creationtime }); }); //获取听证预约记录 var Hearingdata = await _db.Queryable() .WhereIF(Commondata.state != null, x => x.state == Commondata.state) .WhereIF(Commondata.unitId.NotNull(), x => x.unitCode.Contains(Commondata.unitId)) .WhereIF(Commondata.unitId.NotNull(), x => x.createuserId == _userdata.Id) .Where(q => q.IsDeleted == 0).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.unitCode).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.witnessrequest, objectstr = "", sttime = q.reservationtime, ettime = "", state = q.state, creationtime = q.creationtime }); }); //获取文书签收记录 var Documentdata = await _db.Queryable() .WhereIF(Commondata.unitId.NotNull(), x => x.dwbm.Contains(Commondata.unitId)) .Where(q => q.zjhm.Contains(_userdata.cardId)).ToArrayAsync(); Documentdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 4, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = q.wsmc, objectstr = q.ajmc, sttime = "", ettime = "", state = q.zt, creationtime = unixStartTime.AddMilliseconds(long.Parse(q.zhxgsj)),//最新时间 }); }); //获取云柜记录 var CloudCabinetdata = await _db.Queryable() .WhereIF(Commondata.unitId.NotNull(), x => x.dwbm.Contains(Commondata.unitId)) .Where(q => q.sfzh.Contains(_userdata.cardId) || q.lxhm == _userdata.phone).ToArrayAsync(); CloudCabinetdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var Unitdata = _Unitdata.Where(x => x.unitCode == q.dwbm).FirstOrDefault(); list.Add(new { type = 5, Id = q.Id, Unitname = Unitdata?.unitname, title = da?.title, path = da?.path, color = da?.color, icon = da?.icon, matter = !string.IsNullOrEmpty(q.gjkqmm) ? q.gjkqmm : q.wbkqmm,//取件码 objectstr = "", sttime = "", ettime = "", state = q.zt, creationtime = q.cjsj == null ? "" : unixStartTime.AddMilliseconds(long.Parse(q.cjsj)).ToString("yyyy-MM-dd HH:mm"),//创建时间 }); }); //查询 list = list.ToList().WhereIF(Commondata.matter.NotNull(), q => q.matter.Contains(Commondata.matter) || q.objectstr.Contains(Commondata.matter) || q.title.Contains(Commondata.matter)).ToList(); result.IsSucceed = true; result.result = list.ToList().OrderByDescending(q => q.creationtime).ToList(); } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("所有预约信息", "所有预约信息", result, _db); return result; } #endregion #region 数据统计 /// /// 预约数据统计---GroupBy预约类型 ---datetme时间 ---satseGroupBy预约状态 /// [HttpPost] [Route("querystatistics")] public async Task querystatistics(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.receptionuser).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) statetype = $"{q.state}", reason = q.reason, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = userda?.name, notes = q.notes }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) Code = q.Code, statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = q.appurl }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = "", creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取听证预约记录 var Hearingdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); list.Add(new { type = 4, Id = q.Id, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.contact, matter = q.witnessrequest,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.reservationtime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = q.receptionusername, notes = q.notes, appurl = "" }); }); list = list .WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).OrderByDescending(q => q.sttime).ToList(); //预约类型分组统计 var GroupBy = list.ToList().GroupBy(q => new { q.daId, q.title }).Select(x => new { name = x.Key.title, value = x.ToList().Count() }); //日期分组统计 var datetme = list.ToList().GroupBy(q => DateTime.Parse($"{q.sttime}").ToString("yyyy-MM-dd")).Select(x => new { time = x.Key, value = x.ToList().Count() }); //预约状态分组 var satselist = list.ToList().GroupBy(q => $"{q.statetype}").Select(x => new { statetype = x.Key, value = x.ToList().Count() }).ToList(); var satseGroupBy = new List(); string[] strnum = new string[] { "0", "1", "2", "3" }; string[] str = new string[] { "待办理", "已受理", "拒绝", "结束" }; for (int i = 0; i < strnum.Length; i++) { var da = satselist.Where(q => q.statetype == strnum[i]).FirstOrDefault(); if (da != null) { satseGroupBy.Add(new { name = str[i], value = da.value }); } else { satseGroupBy.Add(new { name = str[i], value = 0 }); } } result.IsSucceed = true; result.result = new { GroupBy, datetme, satseGroupBy }; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("数据统计", "统计信息", result, _db); return result; } /// /// 人员任务量统计 /// [HttpPost] [Route("querypersonneltask")] public async Task querypersonneltask(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, operatorId=q.operatorId, operatorName = userda?.name, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) statetype = $"{q.state}", reason = q.reason, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = q.receptionusername, notes = q.notes }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, operatorId = q.operatorId, operatorName = userda?.name, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) Code = q.Code, statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = q.appurl }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, daId = da?.Id, operatorId = q.operatorId, operatorName = userda?.name, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId != null).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, daId = da?.Id, operatorId = q.operatorId, operatorName = userda?.name, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = "", creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取听证预约记录 var Hearingdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode&&q.acceptancetime!=null && q.operatorId != null).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 4, Id = q.Id, daId = da?.Id, operatorId = q.operatorId, operatorName = userda?.name, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.contact, matter = q.witnessrequest,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.reservationtime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = q.receptionusername, notes = q.notes, appurl = "" }); }); list = list .WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).OrderByDescending(q => q.sttime).ToList(); //人员分组统计 var GroupBy = list.ToList().GroupBy(q => new { q.operatorId, q.operatorName }).Select(x => new { name = x.Key.operatorName, value = x.ToList().Count() }); result.IsSucceed = true; result.result = GroupBy; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("数据统计", "统计信息", result, _db); return result; } /// /// 单个人员任务统计 /// [HttpPost] [Route("queryusertask")] public async Task queryusertask(Commonpage Commondata) { try { var list = new List(); //获取工作台信息 var Stagingdata = await _db.Queryable().Where(q => q.IsDelete == 0).ToArrayAsync(); var Userdata = await _db.Queryable().Where(q => q.usertype == 0).ToArrayAsync(); //获取律师服务预约记录 var Lawyerdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null &&q.operatorId== Commondata.Id).ToArrayAsync(); Lawyerdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 0, Id = q.Id, operatorId = q.operatorId, operatorName = userda?.name, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) statetype = $"{q.state}", reason = q.reason, sttime = q.receptiontime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = q.receptionusername, notes = q.notes }); }); //获取远程会见预约记录 var Remotedata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync(); Remotedata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 1, Id = q.Id, operatorId = q.operatorId, operatorName = userda?.name, daId = da?.Id, title = da?.title, color = da?.color, icon = da?.icon, name = q.name, phone = q.phone, matter = "",//事由 objectstr = "",//访问对象(案件名称) Code = q.Code, statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = q.appurl }); }); //获取远程接待预约记录 var Receptiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync(); Receptiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 2, Id = q.Id, daId = da?.Id, operatorId = q.operatorId, operatorName = userda?.name, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = q.ettime, creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取认罪认罚预约记录 var Confessiondata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync(); Confessiondata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 3, Id = q.Id, daId = da?.Id, operatorId = q.operatorId, operatorName = userda?.name, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.phone, matter = q.matter,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.sttime, ettime = "", creationtime = q.creationtime, receptionuser = q.meetwitId, username = q.meetwitname, notes = q.notes, appurl = "" }); }); //获取听证预约记录 var Hearingdata = await _db.Queryable() .Where(q => q.IsDeleted == 0 && q.unitCode == _userdata.unitCode && q.acceptancetime != null && q.operatorId == Commondata.Id).ToArrayAsync(); Hearingdata.ToList().ForEach(q => { var da = Stagingdata.Where(x => x.Id == q.reservationId).FirstOrDefault(); var userda = Userdata.Where(x => x.Id == q.operatorId).FirstOrDefault(); list.Add(new { type = 4, Id = q.Id, daId = da?.Id, operatorId = q.operatorId, operatorName = userda?.name, title = da?.title, color = da?.color, icon = da?.icon, name = "", phone = q.contact, matter = q.witnessrequest,//事由 objectstr = "",//访问对象(案件名称) Code = "", statetype = $"{q.state}",//状态 reason = q.reason,//原因 sttime = q.reservationtime, ettime = "", creationtime = q.creationtime, receptionuser = q.receptionuser, username = q.receptionusername, notes = q.notes, appurl = "" }); }); list = list .WhereIF(Commondata.StartTime != null && Commondata.EndTime != null, q => q.sttime >= Commondata.StartTime && q.sttime < Commondata.EndTime.Value.AddDays(1)).OrderByDescending(q => q.sttime).ToList(); //任务分组统计 var GroupBy = list.ToList().GroupBy(q => new { q.daId, q.title }).Select(x => new { name = x.Key.title, value = x.ToList().Count() }); //预约状态分组 var satselist = list.ToList().GroupBy(q => $"{q.statetype}").Select(x => new { statetype = x.Key, value = x.ToList().Count() }).ToList(); var satseGroupBy = new List(); string[] strnum = new string[] { "0", "1", "2", "3" }; string[] str = new string[] { "待办理", "已受理", "拒绝", "结束" }; for (int i = 0; i < strnum.Length; i++) { var da = satselist.Where(q => q.statetype == strnum[i]).FirstOrDefault(); if (da != null) { satseGroupBy.Add(new { name = str[i], value = da.value }); } else { satseGroupBy.Add(new { name = str[i], value = 0 }); } } result.IsSucceed = true; result.result =new { GroupBy,satseGroupBy}; } catch (System.Exception ex) { _db.RollbackTran(); result.IsSucceed = false; result.Message = ex.Message; } _logs.WriteSysLogadd("数据统计", "统计信息", result, _db); return result; } #endregion #region 文件上传 /// /// 文件上传--附件 /// /// [HttpPost] [Route("Upload_Files")] public async Task Upload_Files(IFormFile file) { Result outParm = new Result(); return await Task.Run(() => { if (file.Length <= 0) { outParm.IsSucceed = false; outParm.Message = "请上传文件!"; return Json(outParm); } try { var size = Request.Form.Files.Sum(f => f.Length); IFormFile file = Request.Form.Files.FirstOrDefault(); var fname = $@"{file.FileName}"; var hzname = $"{Path.GetExtension(fname)}"; var _path = $"/CaseFile/video/{DateTime.Now.ToString("yyyy-MM-dd")}"; var dic = Path.Combine(Environment.CurrentDirectory, "wwwroot"); if (!string.IsNullOrEmpty(_path)) dic += _path; if (!System.IO.Directory.Exists(dic)) Directory.CreateDirectory(dic); var filename = $"{DateTime.Now:yyyyMMddHHmmssfff}{Path.GetExtension(fname)}"; var filepath = Path.Combine(_path, $"{filename}"); var path = Path.Combine(dic, $"{filename}"); using (var stream = new FileStream(path, FileMode.OpenOrCreate)) { file.CopyToAsync(stream).Wait(); } var __path = $"{_path}/{filename}"; outParm.IsSucceed = true; outParm.result = new { hzname = hzname, url = __path, tile = Path.GetFileNameWithoutExtension(file.FileName), size, DataPath = path, filePath = dic }; } catch (Exception e) { outParm.IsSucceed = false; outParm.Message = $"文件上传失败!{e.Message}"; } return Json(outParm); }); } #endregion } }