add 流转日志

This commit is contained in:
2021-07-06 17:22:18 +08:00
parent eac0711850
commit 23e2b79cfe
13 changed files with 280 additions and 35 deletions

View File

@@ -1,4 +1,5 @@
using Dapper;
using Ewide.Core;
using Ewide.Core.Extension;
using Furion.DatabaseAccessor;
using Furion.DatabaseAccessor.Extensions;
@@ -19,26 +20,38 @@ namespace Ewide.Application.Service
[ApiDescriptionSettings(Name = "HouseSelector", Order = 180)]
public class HouseSelectorService : IHouseSelectorService, IDynamicApiController, ITransient
{
private readonly IUserManager _userManager;
private readonly IDapperRepository _dapperRep;
private readonly IRepository<BsHouseMemberRelation> _bsHouseMemberRelationRep;
private readonly IRepository<BsHouseCode> _bsHouseCodeRep;
private readonly IRepository<BsHouseTask> _bsHouseTaskRep;
private readonly IRepository<SysUser> _sysUserRep;
private readonly IHouseZoneService _houseZoneService;
private readonly IHouseLogService _houseLogService;
public HouseSelectorService(
IUserManager userManager,
IDapperRepository dapperRep,
IRepository<BsHouseMemberRelation> bsHouseMemberRelationRep,
IRepository<BsHouseCode> bsHouseCodeRep,
IRepository<BsHouseTask> bsHouseTaskRep,
IHouseZoneService houseZoneService
IRepository<SysUser> sysUserRep,
IHouseZoneService houseZoneService,
IHouseLogService houseLogService
)
{
_userManager = userManager;
_dapperRep = dapperRep;
_bsHouseMemberRelationRep = bsHouseMemberRelationRep;
_bsHouseCodeRep = bsHouseCodeRep;
_bsHouseTaskRep = bsHouseTaskRep;
_sysUserRep = sysUserRep;
_houseZoneService = houseZoneService;
_houseLogService = houseLogService;
}
/// <summary>
@@ -50,7 +63,7 @@ namespace Ewide.Application.Service
public async Task<dynamic> HouseSelectorList([FromBody] QueryHouseSelectorInput input)
{
var sql = @"SELECT
HC.*,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,CONCAT(Proj.`Name`,'(',Proj.Note,')') FullProjName
HC.*,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,CONCAT(Proj.`Name`, IFNULL(CONCAT('(',Proj.Note,')'), '')) FullProjName
FROM bs_house_code HC
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
@@ -77,7 +90,7 @@ WHERE HM.Id IS NULL";
public async Task<dynamic> HouseSelectedList([FromBody] QueryHouseSelectorInput input)
{
var sql = @"SELECT
HC.*,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,CONCAT(Proj.`Name`,'(',Proj.Note,')') FullProjName
HC.*,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,CONCAT(Proj.`Name`, IFNULL(CONCAT('(',Proj.Note,')'), '')) FullProjName
FROM bs_house_code HC
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
@@ -128,8 +141,10 @@ INNER JOIN (SELECT * FROM bs_house_member_relation WHERE SysUserId = @UserId) HM
if (ids.Count == 0) throw Oops.Oh("当前房屋在此之前已经全部被选中,请确认");
var selectedUser = await _sysUserRep.DetachedEntities.FirstOrDefaultAsync(p => p.Id.Equals(input.UserId));
// 从用户所在片区中过滤房屋
var zoneId = await _houseZoneService.GetZoneByUser(input.UserId);
var zoneId = await _houseZoneService.GetZoneByUser(selectedUser.Id);
var house = await _bsHouseCodeRep.DetachedEntities.Where(p => ids.Contains(p.Id) && p.ZoneId == zoneId).Select(p => p.Id).ToListAsync();
if (house.Count == 0) throw Oops.Oh("选中的房屋错误");
@@ -137,11 +152,11 @@ INNER JOIN (SELECT * FROM bs_house_member_relation WHERE SysUserId = @UserId) HM
#endregion
// 选定房屋
house.ForEach(p =>
house.ForEach(async p =>
{
new BsHouseMemberRelation
{
SysUserId = input.UserId,
SysUserId = selectedUser.Id,
HouseCodeId = p
}.Insert();
@@ -152,17 +167,23 @@ INNER JOIN (SELECT * FROM bs_house_member_relation WHERE SysUserId = @UserId) HM
{
Id = System.Guid.NewGuid().ToString(),
HouseCodeId = p,
UserID = input.UserId,
UserID = selectedUser.Id,
EndTime = System.DateTime.Now.AddMonths(1),
Status = 0,
TaskType = 0
}.Insert();
await _houseLogService.Done(p);
}
else
{
initTask.UserID = input.UserId;
initTask.Update();
await _houseLogService.AddThenDone(p, _userManager.User, HouseLogType.SelectMember);
}
await _houseLogService.Add(p, selectedUser, HouseLogType.CreateInfo);
});
}