update 流转日志展示

This commit is contained in:
2021-07-08 16:58:14 +08:00
parent ad50293249
commit a14ccf6399
16 changed files with 230 additions and 64 deletions

View File

@@ -8,12 +8,13 @@ namespace Ewide.Application
{
public class HouseLogOutput
{
public string Id { get; set; }
public string TargetUserNames { get; set; }
public int Type { get; set; }
public int Status { get; set; }
public DateTime CreatedTime { get; set; }
public DateTime? UpdatedTimeg { get; set; }
public string CreatedUserName { get; set; }
public string UpdatedUserName { get; set; }
public string Remark { get; set; }
public DateTime? FinishedTime { get; set; }
public string FinishedUserId { get; set; }
public string FinishedUserName { get; set; }
}
}

View File

@@ -22,33 +22,45 @@ namespace Ewide.Application.Service
{
private readonly IDapperRepository _dapperRep;
private readonly IUserManager _userManager;
private readonly IRepository<BsHouseLog> _bsHouseLogRep;
public HouseLogService(IDapperRepository dapperRep, IRepository<BsHouseLog> bsHouseLogRep)
public HouseLogService(IDapperRepository dapperRep, IUserManager userManager, IRepository<BsHouseLog> bsHouseLogRep)
{
_dapperRep = dapperRep;
_userManager = userManager;
_bsHouseLogRep = bsHouseLogRep;
}
[NonAction]
[UnitOfWork]
public async Task Add(string houseCodeId, SysUser targetUser, HouseLogType type)
public async Task<int> Add(string houseCodeId, SysUser targetUser, HouseLogType type, string remark = null, int? sort = null)
{
await Add(houseCodeId, new List<SysUser> { targetUser }, type);
return await Add(houseCodeId, new List<SysUser> { targetUser }, type, remark, sort);
}
[NonAction]
[UnitOfWork]
public async Task Add(string houseCodeId, List<SysUser> targetUsers, HouseLogType type)
public async Task<int> Add(string houseCodeId, List<SysUser> targetUsers, HouseLogType type, string remark = null, int? sort = null)
{
if (!sort.HasValue)
{
sort = await _bsHouseLogRep.DetachedEntities.Where(p => p.HouseCodeId.Equals(houseCodeId)).MaxAsync(p => p.Sort);
}
var _sort = sort.GetValueOrDefault(1) + 1;
await new BsHouseLog
{
Id = Guid.NewGuid().ToString(),
HouseCodeId = houseCodeId,
TargetUserIds = String.Join(",", targetUsers.Select(p => p.Id)),
Type = type,
Status = HouseLogStatus.Handle
Status = HouseLogStatus.Handle,
Remark = remark,
Sort = _sort
}.InsertAsync();
return _sort;
}
[NonAction]
@@ -77,57 +89,88 @@ namespace Ewide.Application.Service
if (log != null)
{
log.Status = HouseLogStatus.Handled;
log.FinishedTime = DateTime.Now;
log.FinishedUserId = _userManager.UserId;
log.FinishedUserName = _userManager.User.Account;
await log.UpdateAsync();
}
}
[NonAction]
[UnitOfWork]
public async Task AddThenRead(string houseCodeId, SysUser targetUser, HouseLogType type)
public async Task<int> AddThenRead(string houseCodeId, SysUser targetUser, HouseLogType type, string remark = null, int? sort = null)
{
await AddThenRead(houseCodeId, new List<SysUser> { targetUser }, type);
return await AddThenRead(houseCodeId, new List<SysUser> { targetUser }, type, remark, sort);
}
[NonAction]
[UnitOfWork]
public async Task AddThenRead(string houseCodeId, List<SysUser> targetUsers, HouseLogType type)
public async Task<int> AddThenRead(string houseCodeId, List<SysUser> targetUsers, HouseLogType type, string remark = null, int? sort = null)
{
if (!sort.HasValue)
{
sort = await _bsHouseLogRep.DetachedEntities.Where(p => p.HouseCodeId.Equals(houseCodeId)).MaxAsync(p => p.Sort);
}
var _sort = sort.GetValueOrDefault(1) + 1;
await new BsHouseLog
{
Id = Guid.NewGuid().ToString(),
HouseCodeId = houseCodeId,
TargetUserIds = String.Join(",", targetUsers.Select(p => p.Id)),
Type = type,
Status = HouseLogStatus.Handling
Status = HouseLogStatus.Handling,
Remark = remark,
Sort = _sort
}.InsertAsync();
return _sort;
}
[NonAction]
[UnitOfWork]
public async Task AddThenDone(string houseCodeId, SysUser targetUser, HouseLogType type)
public async Task<int> AddThenDone(string houseCodeId, SysUser targetUser, HouseLogType type, string remark = null, int? sort = null)
{
await AddThenDone(houseCodeId, new List<SysUser> { targetUser }, type);
return await AddThenDone(houseCodeId, new List<SysUser> { targetUser }, type, remark, sort);
}
[NonAction]
[UnitOfWork]
public async Task AddThenDone(string houseCodeId, List<SysUser> targetUsers, HouseLogType type)
public async Task<int> AddThenDone(string houseCodeId, List<SysUser> targetUsers, HouseLogType type, string remark = null, int? sort = null)
{
if (!sort.HasValue)
{
sort = await _bsHouseLogRep.DetachedEntities.Where(p => p.HouseCodeId.Equals(houseCodeId)).MaxAsync(p => p.Sort);
}
var _sort = sort.GetValueOrDefault(1) + 1;
await new BsHouseLog
{
Id = Guid.NewGuid().ToString(),
HouseCodeId = houseCodeId,
TargetUserIds = String.Join(",", targetUsers.Select(p => p.Id)),
Type = type,
Status = HouseLogStatus.Handled
Status = HouseLogStatus.Handled,
Remark = remark,
FinishedTime = DateTime.Now,
FinishedUserId = _userManager.UserId,
FinishedUserName = _userManager.User.Account,
Sort = _sort
}.InsertAsync();
return _sort;
}
[HttpGet("/houseLog/list")]
public async Task<dynamic> List([FromQuery] HouseLogInput input)
{
var sql = @"SELECT *,
(SELECT GROUP_CONCAT(`Name`) FROM sys_user
var sql = @"SELECT
HL.Id,
HL.Type,
HL.`Status`,
HL.Remark,
HL.FinishedTime,
HL.FinishedUserId,
IFNULL(NickName, `Name`) FinishedUserName,
(SELECT GROUP_CONCAT(IFNULL(NickName,`Name`)) FROM sys_user
WHERE Id IN (
SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(_HL.TargetUserIds,',',HT.help_topic_id + 1),',',-1)
FROM bs_house_log _HL
@@ -136,8 +179,9 @@ namespace Ewide.Application.Service
)
) TargetUserNames
FROM bs_house_log HL
LEFT JOIN sys_user SU ON HL.FinishedUserId = SU.Id
WHERE HouseCodeId = @HouseCodeId
ORDER BY HL.CreatedTime DESC, Type DESC";
ORDER BY Sort DESC";
return await _dapperRep.QueryAsync<HouseLogOutput>(sql, new { houseCodeId = input.Id });
}

View File

@@ -9,14 +9,14 @@ namespace Ewide.Application.Service
{
public interface IHouseLogService
{
Task Add(string houseCodeId, SysUser targetUser, HouseLogType type);
Task Add(string houseCodeId, List<SysUser> targetUsers, HouseLogType type);
Task<int> Add(string houseCodeId, SysUser targetUser, HouseLogType type, string remark = null, int? sort = null);
Task<int> Add(string houseCodeId, List<SysUser> targetUsers, HouseLogType type, string remark = null, int? sort = null);
Task Read(string houseCodeId);
Task Done(string houseCodeId);
Task AddThenRead(string houseCodeId, SysUser targetUser, HouseLogType type);
Task AddThenRead(string houseCodeId, List<SysUser> targetUsers, HouseLogType type);
Task AddThenDone(string houseCodeId, SysUser targetUser, HouseLogType type);
Task AddThenDone(string houseCodeId, List<SysUser> targetUsers, HouseLogType type);
Task<int> AddThenRead(string houseCodeId, SysUser targetUser, HouseLogType type, string remark = null, int? sort = null);
Task<int> AddThenRead(string houseCodeId, List<SysUser> targetUsers, HouseLogType type, string remark = null, int? sort = null);
Task<int> AddThenDone(string houseCodeId, SysUser targetUser, HouseLogType type, string remark = null, int? sort = null);
Task<int> AddThenDone(string houseCodeId, List<SysUser> targetUsers, HouseLogType type, string remark = null, int? sort = null);
Task<dynamic> List(HouseLogInput input);
Task<dynamic> ListByInfoId(HouseLogInput input);
Task<dynamic> ListByTaskId(HouseLogInput input);