add 流转日志
This commit is contained in:
29
Api/Ewide.Application/Entity/BsHouseLog.cs
Normal file
29
Api/Ewide.Application/Entity/BsHouseLog.cs
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Ewide.Application
|
||||||
|
{
|
||||||
|
[Table("bs_house_log")]
|
||||||
|
[Comment("房屋流转日志")]
|
||||||
|
public class BsHouseLog : Core.DEntityBase
|
||||||
|
{
|
||||||
|
[Comment("房屋编码Id")]
|
||||||
|
[MaxLength(36)]
|
||||||
|
public string HouseCodeId { get; set; }
|
||||||
|
|
||||||
|
[Comment("目标处理人Id,可多个")]
|
||||||
|
public string TargetUserIds { get; set; }
|
||||||
|
|
||||||
|
[Comment("步骤类型")]
|
||||||
|
public HouseLogType Type { get; set; }
|
||||||
|
|
||||||
|
[Comment("状态")]
|
||||||
|
public HouseLogStatus Status { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
39
Api/Ewide.Application/Enum/HouseLog.cs
Normal file
39
Api/Ewide.Application/Enum/HouseLog.cs
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Ewide.Application
|
||||||
|
{
|
||||||
|
public enum HouseLogType
|
||||||
|
{
|
||||||
|
[Description("创建房屋编码")]
|
||||||
|
CreateCode = 1,
|
||||||
|
|
||||||
|
[Description("人员选房")]
|
||||||
|
SelectMember = 2,
|
||||||
|
|
||||||
|
[Description("房屋建档")]
|
||||||
|
CreateInfo = 3,
|
||||||
|
|
||||||
|
[Description("审核通过")]
|
||||||
|
Agree = 4,
|
||||||
|
|
||||||
|
[Description("审核退回")]
|
||||||
|
Disagree = 5
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum HouseLogStatus
|
||||||
|
{
|
||||||
|
[Description("待处理")]
|
||||||
|
Handle = 0,
|
||||||
|
|
||||||
|
[Description("正在处理")]
|
||||||
|
Handling = 1,
|
||||||
|
|
||||||
|
[Description("已处理")]
|
||||||
|
Handled = 2,
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,6 +13,7 @@ using Dapper;
|
|||||||
using Ewide.Core.Extension;
|
using Ewide.Core.Extension;
|
||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
namespace Ewide.Application.Service.HouseCode
|
namespace Ewide.Application.Service.HouseCode
|
||||||
{
|
{
|
||||||
@@ -25,13 +26,20 @@ namespace Ewide.Application.Service.HouseCode
|
|||||||
private readonly IRepository<BsHouseCode> _houseCodeRep;
|
private readonly IRepository<BsHouseCode> _houseCodeRep;
|
||||||
private readonly IDapperRepository _dapperRepository;
|
private readonly IDapperRepository _dapperRepository;
|
||||||
|
|
||||||
public HouseCodeService(IRepository<BsHouseCode> HouseCodeRep, IDapperRepository dapperRepository)
|
private readonly IUserManager _userManager;
|
||||||
|
private readonly IHouseLogService _houseLogService;
|
||||||
|
|
||||||
|
public HouseCodeService(IRepository<BsHouseCode> HouseCodeRep, IDapperRepository dapperRepository, IUserManager userManager, IHouseLogService houseLogService)
|
||||||
{
|
{
|
||||||
_houseCodeRep = HouseCodeRep;
|
_houseCodeRep = HouseCodeRep;
|
||||||
_dapperRepository = dapperRepository;
|
_dapperRepository = dapperRepository;
|
||||||
|
|
||||||
|
_userManager = userManager;
|
||||||
|
_houseLogService = houseLogService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("/houseCode/add")]
|
[HttpPost("/houseCode/add")]
|
||||||
|
[UnitOfWork]
|
||||||
public async Task AddHouseCode(AddHouseCodeInput input)
|
public async Task AddHouseCode(AddHouseCodeInput input)
|
||||||
{
|
{
|
||||||
var houseProjectInfoRep = Db.GetRepository<BsHouseProjectInfo>();
|
var houseProjectInfoRep = Db.GetRepository<BsHouseProjectInfo>();
|
||||||
@@ -42,10 +50,16 @@ namespace Ewide.Application.Service.HouseCode
|
|||||||
var areaCode = await areaCodeRep.DetachedEntities.FirstOrDefaultAsync(a => a.Code == input.AreaCode && a.LevelType == 4);
|
var areaCode = await areaCodeRep.DetachedEntities.FirstOrDefaultAsync(a => a.Code == input.AreaCode && a.LevelType == 4);
|
||||||
if(areaCode == null) throw Oops.Oh("区域编码有误,添加失败");
|
if(areaCode == null) throw Oops.Oh("区域编码有误,添加失败");
|
||||||
input.HouseCode = areaCode.AdCode + houseProject.Sort.ToString().PadLeft(3, '0') + input.No.ToString().PadLeft(3, '0');
|
input.HouseCode = areaCode.AdCode + houseProject.Sort.ToString().PadLeft(3, '0') + input.No.ToString().PadLeft(3, '0');
|
||||||
|
var id = System.Guid.NewGuid().ToString().ToLower();
|
||||||
var houseCode = input.Adapt<BsHouseCode>();
|
var houseCode = input.Adapt<BsHouseCode>();
|
||||||
|
houseCode.Id = id;
|
||||||
var isExist = await _houseCodeRep.AnyAsync(p => p.HouseCode == houseCode.HouseCode);
|
var isExist = await _houseCodeRep.AnyAsync(p => p.HouseCode == houseCode.HouseCode);
|
||||||
if (isExist) throw Oops.Oh("房屋编码已存在,不可重复添加");
|
if (isExist) throw Oops.Oh("房屋编码已存在,不可重复添加");
|
||||||
await _houseCodeRep.InsertAsync(houseCode);
|
await houseCode.InsertAsync();
|
||||||
|
|
||||||
|
// 添加到流转日志
|
||||||
|
await _houseLogService.AddThenDone(id, _userManager.User, HouseLogType.CreateCode);
|
||||||
|
await _houseLogService.Add(id, _userManager.User, HouseLogType.SelectMember);
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("/houseCode/edit")]
|
[HttpPost("/houseCode/edit")]
|
||||||
@@ -65,7 +79,9 @@ namespace Ewide.Application.Service.HouseCode
|
|||||||
[HttpPost("/houseCode/page")]
|
[HttpPost("/houseCode/page")]
|
||||||
public async Task<dynamic> QueryPage([FromBody] QueryHouseCodeInput input)
|
public async Task<dynamic> QueryPage([FromBody] QueryHouseCodeInput input)
|
||||||
{
|
{
|
||||||
var sql = @"SELECT HC.*,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,CONCAT(Proj.Name,'(',Proj.Note,')') FullProjName FROM bs_house_code HC
|
var sql = @"SELECT
|
||||||
|
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 bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
||||||
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
|
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
|
||||||
LEFT JOIN sys_area_code RA ON RA.AdCode = SUBSTR(CA.AdCode,1,9)
|
LEFT JOIN sys_area_code RA ON RA.AdCode = SUBSTR(CA.AdCode,1,9)
|
||||||
|
|||||||
@@ -31,14 +31,18 @@ namespace Ewide.Application.Service.HouseSafety.HouseInfo
|
|||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
private readonly IDapperRepository _dapperRepository;
|
private readonly IDapperRepository _dapperRepository;
|
||||||
|
|
||||||
|
private readonly IHouseLogService _houseLogService;
|
||||||
|
|
||||||
public HouseInfoService(IRepository<BsHouseCode> HouseCodeRep,IRepository<BsHouseInfo> HouseInfoRep, IRepository<BsHouseTask> HouseTaskRep, IUserManager userManager, IDapperRepository dapperRepository)
|
|
||||||
|
public HouseInfoService(IRepository<BsHouseCode> HouseCodeRep,IRepository<BsHouseInfo> HouseInfoRep, IRepository<BsHouseTask> HouseTaskRep, IUserManager userManager, IDapperRepository dapperRepository, IHouseLogService houseLogService)
|
||||||
{
|
{
|
||||||
_houseCodeRep = HouseCodeRep;
|
_houseCodeRep = HouseCodeRep;
|
||||||
_houseInfoRep = HouseInfoRep;
|
_houseInfoRep = HouseInfoRep;
|
||||||
_houseTaskRep = HouseTaskRep;
|
_houseTaskRep = HouseTaskRep;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
_dapperRepository = dapperRepository;
|
_dapperRepository = dapperRepository;
|
||||||
|
|
||||||
|
_houseLogService = houseLogService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("/houseInfo/save")]
|
[HttpPost("/houseInfo/save")]
|
||||||
@@ -62,7 +66,7 @@ namespace Ewide.Application.Service.HouseSafety.HouseInfo
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("/houseInfo/getByTaskId")]
|
[HttpGet("/houseInfo/getByTaskId")]
|
||||||
[AllowAnonymous]
|
[UnitOfWork]
|
||||||
public async Task<HouseInfoOutputForDetailPage> GetByTaskId([Required] string taskId)
|
public async Task<HouseInfoOutputForDetailPage> GetByTaskId([Required] string taskId)
|
||||||
{
|
{
|
||||||
//获取任务实体
|
//获取任务实体
|
||||||
@@ -71,7 +75,9 @@ namespace Ewide.Application.Service.HouseSafety.HouseInfo
|
|||||||
|
|
||||||
//获取房屋编码信息
|
//获取房屋编码信息
|
||||||
var houseCodeOutputAsync = await _dapperRepository.QueryAsync<HouseCodeOutput>(
|
var houseCodeOutputAsync = await _dapperRepository.QueryAsync<HouseCodeOutput>(
|
||||||
@"SELECT HC.Id,HC.Address,HC.ProjectId,HC.ZoneId,HC.Type,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,O.Name ZoneName,Proj.Note ProjectNote,CONCAT(Proj.Name,'(',Proj.Note,')') ProjectFullName,HC.HouseCode,HC.Lng,HC.Lat,HC.No FROM bs_house_code HC
|
@"SELECT
|
||||||
|
HC.Id,HC.Address,HC.ProjectId,HC.ZoneId,HC.Type,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,O.Name ZoneName,Proj.Note ProjectNote,CONCAT(Proj.`Name`, IFNULL(CONCAT('(',Proj.Note,')'), '')) FullProjName,HC.HouseCode,HC.Lng,HC.Lat,HC.No
|
||||||
|
FROM bs_house_code HC
|
||||||
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
||||||
LEFT JOIN sys_org O ON HC.ZoneId = O.Id
|
LEFT JOIN sys_org O ON HC.ZoneId = O.Id
|
||||||
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
|
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
|
||||||
@@ -97,6 +103,12 @@ WHERE HC.Id=@HouseCodeId", new { houseTask.HouseCodeId }
|
|||||||
taskOutput.PatrolUser = String.IsNullOrEmpty(houseTask.PatrolUser) ? currentUser.Name : houseTask.PatrolUser;
|
taskOutput.PatrolUser = String.IsNullOrEmpty(houseTask.PatrolUser) ? currentUser.Name : houseTask.PatrolUser;
|
||||||
houseInfoOutputForDetailPage.PatrolInfo = taskOutput;
|
houseInfoOutputForDetailPage.PatrolInfo = taskOutput;
|
||||||
|
|
||||||
|
if (houseInfo == null || houseInfo.State <= (int)DataStatus.Submited)
|
||||||
|
{
|
||||||
|
// 未建档或者当前数据未提交时打开,标记为已读
|
||||||
|
await _houseLogService.Read(houseCodeOutput.Id);
|
||||||
|
}
|
||||||
|
|
||||||
if (houseInfo == null)
|
if (houseInfo == null)
|
||||||
{
|
{
|
||||||
houseInfoOutputForDetailPage.HouseInfo = new HouseInfoOutput();
|
houseInfoOutputForDetailPage.HouseInfo = new HouseInfoOutput();
|
||||||
|
|||||||
@@ -0,0 +1,109 @@
|
|||||||
|
using Ewide.Core;
|
||||||
|
using Furion.DatabaseAccessor;
|
||||||
|
using Furion.DatabaseAccessor.Extensions;
|
||||||
|
using Furion.DependencyInjection;
|
||||||
|
using Furion.DynamicApiController;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Ewide.Application.Service
|
||||||
|
{
|
||||||
|
public class HouseLogService : IHouseLogService, ITransient
|
||||||
|
{
|
||||||
|
private readonly IRepository<BsHouseLog> _bsHouseLogRep;
|
||||||
|
|
||||||
|
public HouseLogService(IRepository<BsHouseLog> bsHouseLogRep)
|
||||||
|
{
|
||||||
|
_bsHouseLogRep = bsHouseLogRep;
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task Add(string houseCodeId, SysUser targetUser, HouseLogType type)
|
||||||
|
{
|
||||||
|
await Add(houseCodeId, new List<SysUser> { targetUser }, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task Add(string houseCodeId, List<SysUser> targetUsers, HouseLogType type)
|
||||||
|
{
|
||||||
|
await new BsHouseLog
|
||||||
|
{
|
||||||
|
Id = Guid.NewGuid().ToString(),
|
||||||
|
HouseCodeId = houseCodeId,
|
||||||
|
TargetUserIds = String.Join(",", targetUsers.Select(p => p.Id)),
|
||||||
|
Type = type,
|
||||||
|
Status = HouseLogStatus.Handle
|
||||||
|
}.InsertAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task Read(string houseCodeId)
|
||||||
|
{
|
||||||
|
var log = await _bsHouseLogRep
|
||||||
|
.Where(p => p.HouseCodeId.Equals(houseCodeId) && p.Status.Equals(HouseLogStatus.Handle))
|
||||||
|
.OrderByDescending(p => p.CreatedTime)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
if (log != null)
|
||||||
|
{
|
||||||
|
log.Status = HouseLogStatus.Handling;
|
||||||
|
await log.UpdateAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task Done(string houseCodeId)
|
||||||
|
{
|
||||||
|
var log = await _bsHouseLogRep
|
||||||
|
.Where(p => p.HouseCodeId.Equals(houseCodeId) && !p.Status.Equals(HouseLogStatus.Handled))
|
||||||
|
.OrderByDescending(p => p.CreatedTime)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
if (log != null)
|
||||||
|
{
|
||||||
|
log.Status = HouseLogStatus.Handled;
|
||||||
|
await log.UpdateAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task AddThenRead(string houseCodeId, SysUser targetUser, HouseLogType type)
|
||||||
|
{
|
||||||
|
await AddThenRead(houseCodeId, new List<SysUser> { targetUser }, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task AddThenRead(string houseCodeId, List<SysUser> targetUsers, HouseLogType type)
|
||||||
|
{
|
||||||
|
await new BsHouseLog
|
||||||
|
{
|
||||||
|
Id = Guid.NewGuid().ToString(),
|
||||||
|
HouseCodeId = houseCodeId,
|
||||||
|
TargetUserIds = String.Join(",", targetUsers.Select(p => p.Id)),
|
||||||
|
Type = type,
|
||||||
|
Status = HouseLogStatus.Handling
|
||||||
|
}.InsertAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task AddThenDone(string houseCodeId, SysUser targetUser, HouseLogType type)
|
||||||
|
{
|
||||||
|
await AddThenDone(houseCodeId, new List<SysUser> { targetUser }, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
[UnitOfWork]
|
||||||
|
public async Task AddThenDone(string houseCodeId, List<SysUser> targetUsers, HouseLogType type)
|
||||||
|
{
|
||||||
|
await new BsHouseLog
|
||||||
|
{
|
||||||
|
Id = Guid.NewGuid().ToString(),
|
||||||
|
HouseCodeId = houseCodeId,
|
||||||
|
TargetUserIds = String.Join(",", targetUsers.Select(p => p.Id)),
|
||||||
|
Type = type,
|
||||||
|
Status = HouseLogStatus.Handled
|
||||||
|
}.InsertAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
using Ewide.Core;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
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 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -322,14 +322,5 @@ WHERE SU.Id=@Id";
|
|||||||
|
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("/houseMember/test")]
|
|
||||||
[Microsoft.AspNetCore.Authorization.AllowAnonymous]
|
|
||||||
public async Task<dynamic> Test([FromQuery] string str)
|
|
||||||
{
|
|
||||||
var result1 = str.ToCamelCase();
|
|
||||||
var result2 = str.ToUnderScoreCase();
|
|
||||||
return result1 + "," + result2;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Dapper;
|
using Dapper;
|
||||||
|
using Ewide.Core;
|
||||||
using Ewide.Core.Extension;
|
using Ewide.Core.Extension;
|
||||||
using Furion.DatabaseAccessor;
|
using Furion.DatabaseAccessor;
|
||||||
using Furion.DatabaseAccessor.Extensions;
|
using Furion.DatabaseAccessor.Extensions;
|
||||||
@@ -19,26 +20,38 @@ namespace Ewide.Application.Service
|
|||||||
[ApiDescriptionSettings(Name = "HouseSelector", Order = 180)]
|
[ApiDescriptionSettings(Name = "HouseSelector", Order = 180)]
|
||||||
public class HouseSelectorService : IHouseSelectorService, IDynamicApiController, ITransient
|
public class HouseSelectorService : IHouseSelectorService, IDynamicApiController, ITransient
|
||||||
{
|
{
|
||||||
|
private readonly IUserManager _userManager;
|
||||||
private readonly IDapperRepository _dapperRep;
|
private readonly IDapperRepository _dapperRep;
|
||||||
|
|
||||||
private readonly IRepository<BsHouseMemberRelation> _bsHouseMemberRelationRep;
|
private readonly IRepository<BsHouseMemberRelation> _bsHouseMemberRelationRep;
|
||||||
private readonly IRepository<BsHouseCode> _bsHouseCodeRep;
|
private readonly IRepository<BsHouseCode> _bsHouseCodeRep;
|
||||||
private readonly IRepository<BsHouseTask> _bsHouseTaskRep;
|
private readonly IRepository<BsHouseTask> _bsHouseTaskRep;
|
||||||
|
private readonly IRepository<SysUser> _sysUserRep;
|
||||||
private readonly IHouseZoneService _houseZoneService;
|
private readonly IHouseZoneService _houseZoneService;
|
||||||
|
|
||||||
|
private readonly IHouseLogService _houseLogService;
|
||||||
|
|
||||||
public HouseSelectorService(
|
public HouseSelectorService(
|
||||||
|
IUserManager userManager,
|
||||||
IDapperRepository dapperRep,
|
IDapperRepository dapperRep,
|
||||||
IRepository<BsHouseMemberRelation> bsHouseMemberRelationRep,
|
IRepository<BsHouseMemberRelation> bsHouseMemberRelationRep,
|
||||||
IRepository<BsHouseCode> bsHouseCodeRep,
|
IRepository<BsHouseCode> bsHouseCodeRep,
|
||||||
IRepository<BsHouseTask> bsHouseTaskRep,
|
IRepository<BsHouseTask> bsHouseTaskRep,
|
||||||
IHouseZoneService houseZoneService
|
IRepository<SysUser> sysUserRep,
|
||||||
|
IHouseZoneService houseZoneService,
|
||||||
|
IHouseLogService houseLogService
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
|
_userManager = userManager;
|
||||||
|
|
||||||
_dapperRep = dapperRep;
|
_dapperRep = dapperRep;
|
||||||
_bsHouseMemberRelationRep = bsHouseMemberRelationRep;
|
_bsHouseMemberRelationRep = bsHouseMemberRelationRep;
|
||||||
_bsHouseCodeRep = bsHouseCodeRep;
|
_bsHouseCodeRep = bsHouseCodeRep;
|
||||||
_bsHouseTaskRep = bsHouseTaskRep;
|
_bsHouseTaskRep = bsHouseTaskRep;
|
||||||
|
_sysUserRep = sysUserRep;
|
||||||
_houseZoneService = houseZoneService;
|
_houseZoneService = houseZoneService;
|
||||||
|
|
||||||
|
_houseLogService = houseLogService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -50,7 +63,7 @@ namespace Ewide.Application.Service
|
|||||||
public async Task<dynamic> HouseSelectorList([FromBody] QueryHouseSelectorInput input)
|
public async Task<dynamic> HouseSelectorList([FromBody] QueryHouseSelectorInput input)
|
||||||
{
|
{
|
||||||
var sql = @"SELECT
|
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
|
FROM bs_house_code HC
|
||||||
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
||||||
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
|
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)
|
public async Task<dynamic> HouseSelectedList([FromBody] QueryHouseSelectorInput input)
|
||||||
{
|
{
|
||||||
var sql = @"SELECT
|
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
|
FROM bs_house_code HC
|
||||||
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
||||||
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
|
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("当前房屋在此之前已经全部被选中,请确认");
|
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();
|
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("选中的房屋错误");
|
if (house.Count == 0) throw Oops.Oh("选中的房屋错误");
|
||||||
@@ -137,11 +152,11 @@ INNER JOIN (SELECT * FROM bs_house_member_relation WHERE SysUserId = @UserId) HM
|
|||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
// 选定房屋
|
// 选定房屋
|
||||||
house.ForEach(p =>
|
house.ForEach(async p =>
|
||||||
{
|
{
|
||||||
new BsHouseMemberRelation
|
new BsHouseMemberRelation
|
||||||
{
|
{
|
||||||
SysUserId = input.UserId,
|
SysUserId = selectedUser.Id,
|
||||||
HouseCodeId = p
|
HouseCodeId = p
|
||||||
}.Insert();
|
}.Insert();
|
||||||
|
|
||||||
@@ -152,17 +167,23 @@ INNER JOIN (SELECT * FROM bs_house_member_relation WHERE SysUserId = @UserId) HM
|
|||||||
{
|
{
|
||||||
Id = System.Guid.NewGuid().ToString(),
|
Id = System.Guid.NewGuid().ToString(),
|
||||||
HouseCodeId = p,
|
HouseCodeId = p,
|
||||||
UserID = input.UserId,
|
UserID = selectedUser.Id,
|
||||||
EndTime = System.DateTime.Now.AddMonths(1),
|
EndTime = System.DateTime.Now.AddMonths(1),
|
||||||
Status = 0,
|
Status = 0,
|
||||||
TaskType = 0
|
TaskType = 0
|
||||||
}.Insert();
|
}.Insert();
|
||||||
|
|
||||||
|
await _houseLogService.Done(p);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
initTask.UserID = input.UserId;
|
initTask.UserID = input.UserId;
|
||||||
initTask.Update();
|
initTask.Update();
|
||||||
|
|
||||||
|
await _houseLogService.AddThenDone(p, _userManager.User, HouseLogType.SelectMember);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
await _houseLogService.Add(p, selectedUser, HouseLogType.CreateInfo);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,18 +29,22 @@ namespace Ewide.Application.Service
|
|||||||
private readonly IDapperRepository _dapperRepository;
|
private readonly IDapperRepository _dapperRepository;
|
||||||
private readonly IUserManager _userManager;
|
private readonly IUserManager _userManager;
|
||||||
|
|
||||||
public HouseTaskService(IRepository<BsHouseTask> HouseTaskRep, IRepository<BsHouseInfo> HouseInfoRep, IDapperRepository dapperRepository, IUserManager userManager)
|
private readonly IHouseLogService _houseLogService;
|
||||||
|
|
||||||
|
public HouseTaskService(IRepository<BsHouseTask> HouseTaskRep, IRepository<BsHouseInfo> HouseInfoRep, IDapperRepository dapperRepository, IUserManager userManager, IHouseLogService houseLogService)
|
||||||
{
|
{
|
||||||
_houseTaskRep = HouseTaskRep;
|
_houseTaskRep = HouseTaskRep;
|
||||||
_houseInfoRep = HouseInfoRep;
|
_houseInfoRep = HouseInfoRep;
|
||||||
_dapperRepository = dapperRepository;
|
_dapperRepository = dapperRepository;
|
||||||
_userManager = userManager;
|
_userManager = userManager;
|
||||||
|
|
||||||
|
_houseLogService = houseLogService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("/houseTask/page")]
|
[HttpPost("/houseTask/page")]
|
||||||
public async Task<dynamic> QueryPage([FromBody] QueryHouseTaskInput input)
|
public async Task<dynamic> QueryPage([FromBody] QueryHouseTaskInput input)
|
||||||
{
|
{
|
||||||
var sql = @"SELECT T.Id,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,Proj.Name,CONCAT(Proj.Name,'(',Proj.Note,')') FullProjName,HC.HouseCode,HC.Address,T.EndTime,HC.Type,HC.Industry,HC.No,T.Status,IFNULL(HI.State,0) State FROM `bs_house_task` T
|
var sql = @"SELECT T.Id,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,Proj.Name,CONCAT(Proj.`Name`, IFNULL(CONCAT('(',Proj.Note,')'), '')) FullProjName,HC.HouseCode,HC.Address,T.EndTime,HC.Type,HC.Industry,HC.No,T.Status,IFNULL(HI.State,0) State FROM `bs_house_task` T
|
||||||
LEFT JOIN bs_house_code HC ON T.HouseCodeId = HC.Id
|
LEFT JOIN bs_house_code HC ON T.HouseCodeId = HC.Id
|
||||||
LEFT JOIN bs_house_info HI ON HI.HouseCodeId = T.HouseCodeId
|
LEFT JOIN bs_house_info HI ON HI.HouseCodeId = T.HouseCodeId
|
||||||
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
|
||||||
@@ -90,6 +94,9 @@ WHERE {0}";
|
|||||||
houseInfo.State = 5;
|
houseInfo.State = 5;
|
||||||
await houseInfo.UpdateExcludeAsync(new[] { nameof(BsHouseInfo.HouseGrade) }, true);
|
await houseInfo.UpdateExcludeAsync(new[] { nameof(BsHouseInfo.HouseGrade) }, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 提交时流转日志
|
||||||
|
await _houseLogService.Done(houseTask.HouseCodeId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,11 +50,11 @@ export default class index extends Component {
|
|||||||
title: '房屋编码',
|
title: '房屋编码',
|
||||||
dataIndex: 'houseCode',
|
dataIndex: 'houseCode',
|
||||||
sorter: true,
|
sorter: true,
|
||||||
width: 300,
|
width: 400,
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<>
|
<>
|
||||||
{`${record.areaName}-${record.roadName}-${record.commName}-${
|
{`${record.areaName}-${record.roadName}-${record.commName}-${
|
||||||
record.note
|
record.fullProjName
|
||||||
}-${record.no.toString().padStart(3, '0')}`}
|
}-${record.no.toString().padStart(3, '0')}`}
|
||||||
<br />
|
<br />
|
||||||
<Tag color="purple">{text}</Tag>
|
<Tag color="purple">{text}</Tag>
|
||||||
@@ -77,9 +77,9 @@ export default class index extends Component {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '登记时间',
|
title: '登记时间',
|
||||||
|
width: 180,
|
||||||
dataIndex: 'createdTime',
|
dataIndex: 'createdTime',
|
||||||
sorter: true,
|
sorter: true,
|
||||||
width: 150,
|
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|||||||
@@ -48,9 +48,9 @@ export default class index extends Component {
|
|||||||
sorter: true,
|
sorter: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
render: (text, record) =>
|
render: (text, record) =>
|
||||||
`${record.areaName}-${record.roadName}-${record.commName}-${record.note}-${record.no
|
`${record.areaName}-${record.roadName}-${record.commName}-${
|
||||||
.toString()
|
record.fullProjName
|
||||||
.padStart(3, '0')}`,
|
}-${record.no.toString().padStart(3, '0')}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '房屋性质及行业',
|
title: '房屋性质及行业',
|
||||||
|
|||||||
@@ -48,9 +48,9 @@ export default class index extends Component {
|
|||||||
sorter: true,
|
sorter: true,
|
||||||
width: 300,
|
width: 300,
|
||||||
render: (text, record) =>
|
render: (text, record) =>
|
||||||
`${record.areaName}-${record.roadName}-${record.commName}-${record.note}-${record.no
|
`${record.areaName}-${record.roadName}-${record.commName}-${
|
||||||
.toString()
|
record.fullProjName
|
||||||
.padStart(3, '0')}`,
|
}-${record.no.toString().padStart(3, '0')}`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '房屋性质及行业',
|
title: '房屋性质及行业',
|
||||||
|
|||||||
@@ -49,11 +49,11 @@ export default class index extends Component {
|
|||||||
title: '房屋编码',
|
title: '房屋编码',
|
||||||
dataIndex: 'houseCode',
|
dataIndex: 'houseCode',
|
||||||
sorter: true,
|
sorter: true,
|
||||||
width: 300,
|
width: 400,
|
||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<>
|
<>
|
||||||
{`${record.areaName}-${record.roadName}-${record.commName}-${
|
{`${record.areaName}-${record.roadName}-${record.commName}-${
|
||||||
record.note
|
record.fullProjName
|
||||||
}-${record.no.toString().padStart(3, '0')}`}
|
}-${record.no.toString().padStart(3, '0')}`}
|
||||||
<br />
|
<br />
|
||||||
<Tag color="purple">{text}</Tag>
|
<Tag color="purple">{text}</Tag>
|
||||||
|
|||||||
Reference in New Issue
Block a user