using iWare.Wms.Core; using Furion.DatabaseAccessor; using Furion.DependencyInjection; using Microsoft.EntityFrameworkCore; namespace iWare.Wms.Application { /// /// 员工职位服务 /// public class SysEmpPosService : ISysEmpPosService, ITransient { private readonly IRepository _sysEmpPosRep; // 员工职位表仓储 public SysEmpPosService(IRepository sysEmpPosRep) { _sysEmpPosRep = sysEmpPosRep; } /// /// 增加或编辑员工职位相关信息 /// /// 员工Id(用户Id) /// 职位id集合 /// [UnitOfWork] public async Task AddOrUpdate(long empId, List posIdList) { // 先删除 await DeleteEmpPosInfoByUserId(empId); var empPos = posIdList.Select(u => new SysEmpPos { SysEmpId = empId, SysPosId = u }).ToList(); await _sysEmpPosRep.InsertAsync(empPos); } /// /// 获取所属职位信息 /// /// 员工Id(用户Id) public async Task> GetEmpPosList(long empId) { return await _sysEmpPosRep.DetachedEntities .Where(u => u.SysEmpId == empId) .Select(u => new EmpPosOutput { PosId = u.SysPos.Id, PosCode = u.SysPos.Code, PosName = u.SysPos.Name }).ToListAsync(); } /// /// 根据职位Id判断该职位下是否有员工 /// /// /// public async Task HasPosEmp(long posId) { return await _sysEmpPosRep.DetachedEntities.AnyAsync(u => u.SysPosId == posId); } /// /// 根据员工Id删除对用的员工-职位信息 /// /// /// public async Task DeleteEmpPosInfoByUserId(long empId) { var sepList = await _sysEmpPosRep.AsQueryable(u => u.SysEmpId == empId, false).ToListAsync(); await _sysEmpPosRep.DeleteAsync(sepList); } } }