using DocumentServiceAPI.Application.Repository;
|
using DocumentServiceAPI.Application.UserAndLogin.Services.Interfaces;
|
using DocumentServiceAPI.Application.UserAndLogin.ViewMode;
|
using DocumentServiceAPI.Application.WorkRemind.Services.Interfaces;
|
using DocumentServiceAPI.Application.WorkRemind.ViewMode;
|
using DocumentServiceAPI.Model;
|
using DocumentServiceAPI.Model.cyDocumentModel;
|
using DocumentServiceAPI.Model.UserInfoModel;
|
using DocumentServiceAPI.Utility;
|
using Furion.Logging.Extensions;
|
using Furion.Schedule;
|
using MapsterMapper;
|
using SqlSugar.Extensions;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Runtime.Intrinsics.Arm;
|
using System.Security.Claims;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace DocumentServiceAPI.Application.WorkRemind.Services
|
{
|
public class WorkRemindService : IWorkRemindService, IScoped
|
{
|
private ISqlSugarClient _db { get; set; }
|
private WorkRemindRepository _workRemindRepository { get; set; }
|
private IMapper _mapper { get; set; }
|
public WorkRemindService(ISqlSugarClient db, WorkRemindRepository workRemindRepository, IMapper mapper)
|
{
|
_db = db;
|
_workRemindRepository = workRemindRepository;
|
_mapper = mapper;
|
}
|
|
|
/// <summary>
|
/// 提醒详情
|
/// </summary>
|
/// <param name="ID"></param>
|
/// <returns></returns>
|
public Document_WorkRemind GetWorkRemindInfo(int ID)
|
{
|
var ret = _db.Queryable<Document_WorkRemind>().Where(x => x.WorkRemindId == ID).First();
|
|
return ret;
|
}
|
|
public bool UpEmployee(Document_WorkRemind dw)
|
{
|
|
|
|
dw.LastUpTime = DateTime.Now;
|
|
return _workRemindRepository.Update(dw);
|
|
}
|
|
public bool InEmployee(Document_WorkRemind dw)
|
{
|
var a = GetJwtInfo();
|
dw.LastUpTime = DateTime.Now;
|
|
if (dw.WorkRemindId > 0)
|
{
|
_workRemindRepository.Update(dw);
|
}
|
else
|
{
|
dw.CreatEmployeeId = a.EID;
|
|
var tentlist = _db.Queryable<Document_EmployeeInfo>()
|
.Where(x => x.EmployeeId == a.EID
|
|
).First();
|
if (tentlist != null)
|
{
|
dw.CreatEmployeeName = tentlist.EmployeeName;
|
|
}
|
_workRemindRepository.Insert(dw);
|
}
|
|
|
|
return true;
|
|
|
|
|
|
}
|
|
public bool DelEmployee(int ID)
|
{
|
|
var workRemind = _workRemindRepository.GetById(ID);
|
|
|
return _workRemindRepository.Delete(workRemind);
|
|
|
|
|
|
}
|
|
/// <summary>
|
/// 获取提醒列表
|
/// </summary>
|
/// <param name="page"></param>
|
/// <returns></returns>
|
public PageResult<DocumentWorkRemindDTO> postWorkRemindList(WorkRemindPageSearch page)
|
{
|
var a = GetJwtInfo();
|
|
SqlSugar.PageModel pg = new SqlSugar.PageModel();
|
pg.PageSize = page.PageSize;
|
pg.PageIndex = page.PageIndex;
|
page.ToEmployeeId = a.EID;
|
int total = 0;
|
PageResult<DocumentWorkRemindDTO> result = new PageResult<DocumentWorkRemindDTO>();
|
//result.Items = _db.Queryable<Document_WorkRemind>().Where(x => ((page.ToEmployeeId ==null || page.ToEmployeeId>0 ) || x.ToEmployeeId == page.ToEmployeeId)
|
//&& (!page.WorkRemindTimeStart.HasValue || x.WorkRemindTime >= page.WorkRemindTimeStart.Value)
|
// && (!page.WorkRemindTimeEnd.HasValue || x.WorkRemindTime <= page.WorkRemindTimeEnd.Value)
|
//)
|
// .OrderByDescending(x => x.WorkRemindTime).ToPageList(page.PageIndex, page.PageSize, ref total);
|
|
var Document_WorkReminds = _db.Queryable<Document_WorkRemind>()
|
|
.WhereIF(page.ToEmployeeId != null && page.ToEmployeeId > 0 , x => (x.ToEmployeeId == page.ToEmployeeId || x.CreatEmployeeId == page.ToEmployeeId ) )
|
.WhereIF(page.WorkRemindTimeStart.HasValue, x => x.WorkRemindTime >= page.WorkRemindTimeStart.Value)
|
.WhereIF(page.WorkRemindTimeEnd.HasValue, x=>x.WorkRemindTime <= page.WorkRemindTimeEnd.Value)
|
.WhereIF(!string.IsNullOrEmpty(page.ProjectName), x => x.ProjectName.Contains(page.ProjectName))
|
.WhereIF(!string.IsNullOrEmpty(page.WorkRemindContent), x => x.WorkRemindContent.Contains(page.WorkRemindContent))
|
.OrderByDescending(x => x.WorkRemindTime).ToPageList(page.PageIndex, page.PageSize, ref total);
|
|
result.Items = _mapper.Map<List<DocumentWorkRemindDTO>>(Document_WorkReminds);
|
result.TotalCount = total;
|
result.TotalPage = total%page.PageSize==0 ? total / page.PageSize : total / page.PageSize + 1;
|
|
foreach(var workRemindDTO in result.Items)
|
{
|
var employeeInfo = _db.Queryable<Document_EmployeeInfo>().Where(x => x.EmployeeId == workRemindDTO.ToEmployeeId).First();
|
if (employeeInfo != null)
|
{
|
workRemindDTO.ToEmployeeIdName = employeeInfo.EmployeeName;
|
}
|
|
}
|
|
return result;
|
}
|
|
|
/// <summary>
|
/// 获取em列表
|
/// </summary>
|
/// <returns></returns>
|
public List<Document_EmployeeInfo> GetUEmployeeInfoList()
|
|
{
|
var a = GetJwtInfo();
|
//if (a.EID != null)
|
// throw Oops.Oh($"没有权限");
|
|
|
|
var tentlist = _db.Queryable<EmployeeAtTenant, Document_EmployeeInfo>((et, ei) =>
|
|
new JoinQueryInfos
|
(
|
JoinType.Right, ei.EmployeeId == et.EmployeeID
|
)
|
)
|
.Where((et, ei) =>
|
(et.TenantID == a.TEID) && (ei.IsWork == null || ei.IsWork == 1))
|
|
.Select((et, ei) => new Document_EmployeeInfo
|
{
|
EmployeeId = ei.EmployeeId,
|
EmployeeName = ei.EmployeeName,
|
Job = ei.Job,
|
Phone = ei.Phone,
|
IsWork = ei.IsWork,
|
LeaveTime = ei.LeaveTime,
|
CardPositive = ei.CardPositive,
|
CardPositiveVersionNo = ei.CardPositiveVersionNo,
|
CardPositiveSize = ei.CardPositiveSize,
|
LastUpdateTime = ei.LastUpdateTime,
|
LastUpdateName = ei.LastUpdateName,
|
UserName = ei.UserName,
|
UserPassWord = ei.UserPassWord,
|
LoginTime = ei.LoginTime,
|
IsLogin = ei.IsLogin,
|
AdviseFlag = ei.AdviseFlag,
|
UserId = ei.UserId,
|
|
}
|
).ToList();
|
|
|
return tentlist;
|
|
}
|
|
|
/// <summary>
|
/// 获取Jwt相关信息
|
/// </summary>
|
public JwtInfo GetJwtInfo()
|
{
|
JwtInfo jwtInfo = new JwtInfo();
|
jwtInfo.LogInSource = (LogInFrom)(App.User?.FindFirstValue("loginfrom")?.ObjToInt() ?? 0);
|
jwtInfo.EID = App.User?.FindFirstValue("eid")?.ObjToInt();
|
jwtInfo.UID = App.User?.FindFirstValue("uid")?.ObjToInt();
|
jwtInfo.TEID = App.User?.FindFirstValue("teid")?.ObjToInt();
|
var guid = App.User?.FindFirstValue("jid");
|
jwtInfo.JID = string.IsNullOrEmpty(guid) ? null : new Guid(guid);
|
return jwtInfo;
|
}
|
|
|
|
/// <summary>
|
/// 查询数据字典
|
/// </summary>
|
/// <returns></returns>
|
public List<Document_Dictionary> GetDictionaryList()
|
{
|
var ret = _db.Queryable<Document_Dictionary>().ToList();
|
|
return ret;
|
}
|
|
/// <summary>
|
/// 查询省市
|
/// </summary>
|
/// <param name="CityLevel"></param>
|
/// <returns></returns>
|
public List<Sys_CitySite> GetCitySiteList(int CityLevel)
|
{
|
var ret = _db.Queryable<Sys_CitySite>().WhereIF(CityLevel>0,x=>x.CityLevel == CityLevel).ToList();
|
|
return ret;
|
}
|
|
|
/// <summary>
|
/// 获取em列表
|
/// </summary>
|
/// <param name="isWork"></param>
|
/// <param name="Role"></param>
|
/// <returns></returns>
|
public List<DocumentEmployeeInfoDTO> GetEmployeeListByStatus(int isWork, int Role)
|
|
{
|
var a = GetJwtInfo();
|
//if (a.EID != null)
|
// throw Oops.Oh($"没有权限");
|
|
|
|
var tentlist = _db.Queryable<Document_EmployeeInfo, EmployeeAtTenant, Document_EmployeeRole>((ei, et, er) =>
|
|
new JoinQueryInfos
|
(
|
JoinType.Inner, ei.EmployeeId == et.EmployeeID && et.TenantID == a.TEID,
|
JoinType.Left, ei.EmployeeId == er.EmployeeId
|
)
|
)
|
.Where((ei, et, er) =>
|
et.TenantID == a.TEID)
|
.WhereIF(isWork >0,(ei, et, er) =>
|
ei.IsWork == isWork)
|
.WhereIF(Role > 0, (ei, et, er) =>
|
er.RoleType == Role)
|
.Select(expression: (ei, et, er) => new DocumentEmployeeInfoDTO
|
{
|
EmployeeId = ei.EmployeeId,
|
EmployeeName = ei.EmployeeName,
|
Job = ei.Job,
|
Phone = ei.Phone,
|
IsWork = ei.IsWork,
|
LeaveTime = ei.LeaveTime,
|
CardPositive = ei.CardPositive,
|
CardPositiveVersionNo = ei.CardPositiveVersionNo,
|
CardPositiveSize = ei.CardPositiveSize,
|
LastUpdateTime = ei.LastUpdateTime,
|
LastUpdateName = ei.LastUpdateName,
|
UserName = ei.UserName,
|
UserPassWord = ei.UserPassWord,
|
LoginTime = ei.LoginTime,
|
IsLogin = ei.IsLogin,
|
AdviseFlag = ei.AdviseFlag,
|
UserId = ei.UserId,
|
|
}
|
).ToList();
|
|
|
return tentlist;
|
|
}
|
}
|
}
|