update 建档登记保存
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
using Dapper;
|
||||
using Ewide.Core;
|
||||
using Furion.DatabaseAccessor;
|
||||
using Furion.DatabaseAccessor.Extensions;
|
||||
using Furion.DependencyInjection;
|
||||
using Furion.DynamicApiController;
|
||||
using Furion.FriendlyException;
|
||||
using Mapster;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
@@ -37,16 +39,47 @@ namespace Ewide.Application.Service.HouseSafety.HouseInfo
|
||||
_dapperRepository = dapperRepository;
|
||||
}
|
||||
|
||||
[HttpPost("/houseInfo/saveDetail")]
|
||||
[UnitOfWork]
|
||||
public async Task SaveDetail([FromBody] HouseInfoInputAdd input)
|
||||
{
|
||||
var houseCode = input.houseCode.Adapt<BsHouseCode>();
|
||||
await houseCode.UpdateIncludeAsync(new[] { nameof(BsHouseCode.Address), nameof(BsHouseCode.Lng), nameof(BsHouseCode.Lat) }, true);
|
||||
|
||||
var houseEntity = await _houseInfoRep.DetachedEntities.FirstOrDefaultAsync(h => h.HouseCodeId == input.houseCode.Id);
|
||||
var houseInfo = input.houseInfo.Adapt<BsHouseInfo>();
|
||||
houseInfo.HouseCodeId = input.houseCode.Id;
|
||||
if(houseEntity == null)
|
||||
{
|
||||
houseInfo.Id = Guid.NewGuid().ToString();
|
||||
houseInfo.State = 0;
|
||||
await houseInfo.InsertAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
houseInfo.Id = houseEntity.Id;
|
||||
await houseInfo.UpdateExcludeAsync(new[] { nameof(BsHouseInfo.State) }, true) ;
|
||||
}
|
||||
|
||||
if(houseInfo.State != 6)
|
||||
{
|
||||
var houseTask = input.PatrolInfo.Adapt<BsHouseTask>();
|
||||
houseTask.HouseCodeId = input.houseCode.Id;
|
||||
await houseTask.UpdateExcludeAsync(new string[] { }, ignoreNullValues: true);
|
||||
}
|
||||
}
|
||||
|
||||
[HttpGet("/houseInfo/getByTaskId")]
|
||||
[AllowAnonymous]
|
||||
public async Task<HouseInfoOutputForDetailPage> GetByTaskId([Required] string taskId)
|
||||
{
|
||||
var houseTaskRep = Db.GetRepository<BsHouseTask>();
|
||||
//获取任务实体
|
||||
var houseTask = await houseTaskRep.DetachedEntities.FirstOrDefaultAsync(t=>t.Id == taskId);
|
||||
if(houseTask == null) throw Oops.Oh("任务不存在");
|
||||
|
||||
//获取房屋编码信息
|
||||
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,Proj.Note ProjectNote,CONCAT(Proj.Name,'(',Proj.Note,')') ProjectFullName,HC.HouseCode,HC.Lng,HC.Lat 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,Proj.Note ProjectNote,CONCAT(Proj.Name,'(',Proj.Note,')') ProjectFullName,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 sys_area_code CA ON CA.Code = Proj.AreaCode
|
||||
LEFT JOIN sys_area_code RA ON RA.AdCode = SUBSTR(CA.AdCode,1,9)
|
||||
@@ -54,27 +87,33 @@ LEFT JOIN sys_area_code AA ON AA.AdCode = SUBSTR(CA.AdCode,1,6)
|
||||
WHERE HC.Id=@HouseCodeId", new { houseTask.HouseCodeId }
|
||||
);
|
||||
var houseCodeOutput= houseCodeOutputAsync.SingleOrDefault();
|
||||
if (houseCodeOutput == null) throw Oops.Oh("任务已失效:房屋编码不存在");
|
||||
|
||||
if (houseCodeOutput == null) throw Oops.Oh("任务已失效:房屋编码不存在,请重新加载任务列表");
|
||||
|
||||
//获取当前登录账号
|
||||
var currentUser = await _userManager.CheckUserAsync();
|
||||
|
||||
//查询房屋详细信息是否存在
|
||||
var houseInfo = await _houseInfoRep.DetachedEntities.FirstOrDefaultAsync(h => h.HouseCodeId == houseTask.HouseCodeId);
|
||||
var houseInfoOutputForDetailPage = new HouseInfoOutputForDetailPage
|
||||
{
|
||||
houseCode = houseCodeOutput
|
||||
};
|
||||
houseInfoOutputForDetailPage.PatrolInfo = new PatrolInfo();
|
||||
houseInfoOutputForDetailPage.PatrolInfo.PatrolDate = houseTask.PatrolDate.GetValueOrDefault(DateTime.Now);
|
||||
houseInfoOutputForDetailPage.PatrolInfo.PatrolUser = String.IsNullOrEmpty(houseTask.PatrolUser) ? currentUser.Name : houseTask.PatrolUser;
|
||||
|
||||
houseInfoOutputForDetailPage.PatrolInfo = new HouseTaskOutput
|
||||
{
|
||||
PatrolDate = houseTask.PatrolDate.GetValueOrDefault(DateTime.Now),
|
||||
PatrolUser = String.IsNullOrEmpty(houseTask.PatrolUser) ? currentUser.Name : houseTask.PatrolUser
|
||||
};
|
||||
|
||||
if (houseInfo == null)
|
||||
{
|
||||
houseInfoOutputForDetailPage.houseInfoOutput = new HouseInfoOutput();
|
||||
houseInfoOutputForDetailPage.houseInfo = new HouseInfoOutput();
|
||||
return houseInfoOutputForDetailPage;
|
||||
}
|
||||
|
||||
var houseInfoOutputAsync = await _dapperRepository.QueryAsync<HouseInfoOutput>("SELECT * FROM bs_house_info HI WHERE Id = @HouseCodeId", new { houseTask.HouseCodeId });
|
||||
var houseInfoOutput = houseInfoOutputAsync.SingleOrDefault();
|
||||
houseInfoOutputForDetailPage.houseInfoOutput = houseInfoOutput;
|
||||
houseInfoOutputForDetailPage.houseInfo = houseInfoOutput;
|
||||
|
||||
return houseInfoOutputForDetailPage;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user