update 建档审核/退回,退回保存/提交审核功能
This commit is contained in:
@@ -401,9 +401,9 @@ namespace Ewide.Application
|
||||
public int? HouseUsedStatus { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 1、待建档(需要建档的数据未暂存未保存的)2、暂存(点击了暂存的数据)3、待提交(点击了保存的数据) 4、退回(审核被退回的数据)5、审核中6、审核通过
|
||||
/// -1 退回(审核被退回的数据) 1、待建档(需要建档的数据未暂存未保存的)2、暂存(点击了暂存的数据)3、待提交(点击了保存的数据) 5、审核中6、审核通过
|
||||
/// </summary>
|
||||
[Comment("1、待建档(需要建档的数据未暂存未保存的)2、暂存(点击了暂存的数据)3、待提交(点击了保存的数据) 4、退回(审核被退回的数据)5、审核中6、审核通过")]
|
||||
[Comment("-1 退回(审核被退回的数据) 1、待建档(需要建档的数据未暂存未保存的)2、暂存(点击了暂存的数据)3、待提交(点击了保存的数据) 5、审核中6、审核通过")]
|
||||
[Required]
|
||||
public int State { get; set; }
|
||||
|
||||
|
||||
@@ -144,7 +144,7 @@ namespace Ewide.Application
|
||||
/// <summary>
|
||||
/// -1:退回0:待处理1:保存待提交2:待审核3:审核通过
|
||||
/// </summary>
|
||||
[Comment("-1:退回0:待处理1:保存待提交2:待审核3:审核通过")]
|
||||
[Comment("-1:退回0:待处理1:保存待提交2:待审核6:审核通过")]
|
||||
public int Status { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
|
||||
36
Api/Ewide.Application/Entity/BsHouseTaskCheckRecord.cs
Normal file
36
Api/Ewide.Application/Entity/BsHouseTaskCheckRecord.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.ComponentModel.DataAnnotations.Schema;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Ewide.Application
|
||||
{
|
||||
[Table("bs_house_task_check_record")]
|
||||
[Comment("房屋任务审核记录表")]
|
||||
public class BsHouseTaskCheckRecord : Core.DEntityBase
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务Id
|
||||
/// </summary>
|
||||
[Comment("任务Id")]
|
||||
[MaxLength(36)]
|
||||
public string TaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 通过1;退回-1
|
||||
/// </summary>
|
||||
[Comment("通过3;退回-1")]
|
||||
public int PassOrBack { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 审核内容
|
||||
/// </summary>
|
||||
[Comment("审核内容")]
|
||||
[MaxLength(500)]
|
||||
public string Content { get; set; }
|
||||
}
|
||||
}
|
||||
48
Api/Ewide.Application/Enum/DataStatus.cs
Normal file
48
Api/Ewide.Application/Enum/DataStatus.cs
Normal file
@@ -0,0 +1,48 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ewide.Application
|
||||
{
|
||||
public enum DataStatus
|
||||
{
|
||||
/// <summary>
|
||||
/// 审核退回
|
||||
/// </summary>
|
||||
[Description("审核退回")]
|
||||
Back = -1,
|
||||
|
||||
/// <summary>
|
||||
/// 初始未处理
|
||||
/// </summary>
|
||||
[Description("初始未处理")]
|
||||
Init = 0,
|
||||
|
||||
/// <summary>
|
||||
/// 暂存
|
||||
/// </summary>
|
||||
[Description("暂存")]
|
||||
TempSaved = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 已保存,待提交
|
||||
/// </summary>
|
||||
[Description("已保存,待提交")]
|
||||
Saved = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 已提交,待审核
|
||||
/// </summary>
|
||||
[Description("已提交,待审核")]
|
||||
Submited = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 审核通过
|
||||
/// </summary>
|
||||
[Description("审核通过")]
|
||||
Passed = 6
|
||||
}
|
||||
}
|
||||
@@ -306,7 +306,7 @@
|
||||
</member>
|
||||
<member name="P:Ewide.Application.BsHouseInfo.State">
|
||||
<summary>
|
||||
1、待建档(需要建档的数据未暂存未保存的)2、暂存(点击了暂存的数据)3、待提交(点击了保存的数据) 4、退回(审核被退回的数据)5、审核中6、审核通过
|
||||
-1 退回(审核被退回的数据) 1、待建档(需要建档的数据未暂存未保存的)2、暂存(点击了暂存的数据)3、待提交(点击了保存的数据) 5、审核中6、审核通过
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.BsHouseInfo.InvestigateAgency">
|
||||
@@ -504,6 +504,21 @@
|
||||
最后提交时间
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.BsHouseTaskCheckRecord.TaskId">
|
||||
<summary>
|
||||
任务Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.BsHouseTaskCheckRecord.PassOrBack">
|
||||
<summary>
|
||||
通过1;退回-1
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.BsHouseTaskCheckRecord.Content">
|
||||
<summary>
|
||||
审核内容
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.BsHouseTaskOptions.TaskId">
|
||||
<summary>
|
||||
bs_house_code主键Id
|
||||
@@ -539,6 +554,36 @@
|
||||
是否选中
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Ewide.Application.DataStatus.Back">
|
||||
<summary>
|
||||
审核退回
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Ewide.Application.DataStatus.Init">
|
||||
<summary>
|
||||
初始未处理
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Ewide.Application.DataStatus.TempSaved">
|
||||
<summary>
|
||||
暂存
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Ewide.Application.DataStatus.Saved">
|
||||
<summary>
|
||||
已保存,待提交
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Ewide.Application.DataStatus.Submited">
|
||||
<summary>
|
||||
已提交,待审核
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Ewide.Application.DataStatus.Passed">
|
||||
<summary>
|
||||
审核通过
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:Ewide.Application.HouseManagerRole.CityManager">
|
||||
<summary>
|
||||
市住建部门
|
||||
@@ -1219,6 +1264,21 @@
|
||||
主管部门
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.HouseTaskCheckRecordInput.TaskId">
|
||||
<summary>
|
||||
任务Id
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.HouseTaskCheckRecordInput.PassOrBack">
|
||||
<summary>
|
||||
通过3;退回-1
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.HouseTaskCheckRecordInput.Content">
|
||||
<summary>
|
||||
审核内容
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:Ewide.Application.HouseTaskInput.SettlementTilt">
|
||||
<summary>
|
||||
沉降倾斜
|
||||
|
||||
@@ -271,12 +271,21 @@ namespace Ewide.Application
|
||||
public string CompetentDepartment { get; set; }
|
||||
#endregion
|
||||
|
||||
public DataStatus StateDataStatus { get; set; }
|
||||
public int State
|
||||
{
|
||||
get
|
||||
{
|
||||
return (int)StateDataStatus;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class HouseInfoInputAdd
|
||||
public class HouseInfoInputSave
|
||||
{
|
||||
public HouseCodeOutput houseCode { get; set; }
|
||||
public HouseInfoInput houseInfo { get; set; }
|
||||
public EditHouseTaskInput PatrolInfo { get; set; }
|
||||
public HouseTaskCheckRecordInput TaskCheckRecord { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,34 +44,21 @@ namespace Ewide.Application.Service.HouseSafety.HouseInfo
|
||||
[HttpPost("/houseInfo/save")]
|
||||
[UnitOfWork]
|
||||
[AllowAnonymous]
|
||||
public async Task Save([FromBody] HouseInfoInputAdd input)
|
||||
public async Task Save([FromBody] HouseInfoInputSave input)
|
||||
{
|
||||
var houseCode = input.houseCode.Adapt<BsHouseCode>();
|
||||
await houseCode.UpdateIncludeAsync(new[] { nameof(BsHouseCode.Address), nameof(BsHouseCode.Lng), nameof(BsHouseCode.Lat) }, true);
|
||||
//根据任务审核记录判断是否是审核操作,从而确定 DataStatus
|
||||
//审核操作,则为 input.TaskCheckRecord.PassOrBackDataStatus
|
||||
//非审核操作,则为 DataStatus.Saved
|
||||
var isCheckAction = input.TaskCheckRecord != null;
|
||||
await InputDataProcess(input, isCheckAction ? input.TaskCheckRecord.PassOrBackDataStatus : DataStatus.Saved);
|
||||
}
|
||||
|
||||
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 = 3;
|
||||
await houseInfo.InsertAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
houseInfo.Id = houseEntity.Id;
|
||||
houseInfo.State = houseEntity.State;
|
||||
await houseInfo.UpdateExcludeAsync(new[] { nameof(BsHouseInfo.HouseGrade) }, true) ;
|
||||
}
|
||||
|
||||
if(houseInfo.State != 6)
|
||||
{
|
||||
var houseTask = input.PatrolInfo.Adapt<BsHouseTask>();
|
||||
houseTask.HouseCodeId = input.houseCode.Id;
|
||||
houseTask.Status = 1;
|
||||
await houseTask.UpdateExcludeAsync(new string[] { nameof(BsHouseTask.TaskType) }, ignoreNullValues: true);
|
||||
}
|
||||
[HttpPost("/houseInfo/submitToCheck")]
|
||||
[UnitOfWork]
|
||||
[AllowAnonymous]
|
||||
public async Task SubmitToCheck([FromBody] HouseInfoInputSave input)
|
||||
{
|
||||
await InputDataProcess(input,DataStatus.Submited);
|
||||
}
|
||||
|
||||
[HttpGet("/houseInfo/getByTaskId")]
|
||||
@@ -121,5 +108,64 @@ WHERE HC.Id=@HouseCodeId", new { houseTask.HouseCodeId }
|
||||
|
||||
return houseInfoOutputForDetailPage;
|
||||
}
|
||||
|
||||
[NonAction]
|
||||
public async Task InputDataProcess(HouseInfoInputSave input,DataStatus dataStatus = DataStatus.Init)
|
||||
{
|
||||
//房屋编码地址/坐标单独更新
|
||||
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);
|
||||
|
||||
//建档审核通过的房屋数据修改时,对应的建档任务Task不处理
|
||||
if (houseEntity.State != 6)
|
||||
{
|
||||
var houseTask = input.PatrolInfo.Adapt<BsHouseTask>();
|
||||
houseTask.HouseCodeId = input.houseCode.Id;
|
||||
//任务没有暂存状态,其他状态与HouseInfo的State一致
|
||||
houseTask.Status = dataStatus == DataStatus.TempSaved ? (int)DataStatus.Saved : (int)dataStatus;
|
||||
await houseTask.UpdateExcludeAsync(new string[] { nameof(BsHouseTask.TaskType) }, ignoreNullValues: true);
|
||||
}
|
||||
//判断房屋建档状态
|
||||
//dataStatus == DataStatus.Saved 若是保存操作 则判断是新增/更新
|
||||
//判断是新增/更新 根据传入参数dataStatus确定
|
||||
input.houseInfo.StateDataStatus = dataStatus == DataStatus.Saved ? (houseEntity == null ? DataStatus.Saved : GetDataStatus(houseEntity.State)) : dataStatus;
|
||||
var houseInfo = input.houseInfo.Adapt<BsHouseInfo>();
|
||||
houseInfo.HouseCodeId = input.houseCode.Id;
|
||||
|
||||
if (houseEntity == null)
|
||||
{
|
||||
houseInfo.Id = Guid.NewGuid().ToString();
|
||||
await houseInfo.InsertAsync();
|
||||
}
|
||||
else
|
||||
{
|
||||
houseInfo.Id = houseEntity.Id;
|
||||
await houseInfo.UpdateExcludeAsync(new[] { nameof(BsHouseInfo.HouseGrade) }, true);
|
||||
}
|
||||
|
||||
|
||||
//审核操作则新增一条审核记录
|
||||
if (dataStatus == DataStatus.Back || dataStatus == DataStatus.Passed)
|
||||
{
|
||||
var checkRecord = input.TaskCheckRecord.Adapt<BsHouseTaskCheckRecord>();
|
||||
await checkRecord.InsertAsync();
|
||||
}
|
||||
}
|
||||
|
||||
private DataStatus GetDataStatus(int status)
|
||||
{
|
||||
return status switch
|
||||
{
|
||||
-1 => DataStatus.Back,
|
||||
1 => DataStatus.TempSaved,
|
||||
2 => DataStatus.Saved,
|
||||
3 => DataStatus.Submited,
|
||||
6 => DataStatus.Passed,
|
||||
_ => DataStatus.Init,
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,6 +113,12 @@ namespace Ewide.Application
|
||||
public string Id { get; set; }
|
||||
}
|
||||
|
||||
public class SubmitHouseTaskInput
|
||||
{
|
||||
[Required(ErrorMessage = "任务Id不能为空")]
|
||||
public string TaskId { get; set; }
|
||||
}
|
||||
|
||||
public class QueryHouseTaskInput : PageInputBase
|
||||
{
|
||||
|
||||
|
||||
@@ -47,21 +47,35 @@ 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)
|
||||
LEFT JOIN sys_area_code AA ON AA.AdCode = SUBSTR(CA.AdCode,1,6)
|
||||
WHERE T.UserID=@UserID";
|
||||
WHERE {0}";
|
||||
var user = await _userManager.CheckUserAsync();
|
||||
if (user == null) throw Oops.Oh("登录信息丢失");
|
||||
|
||||
var userRoles = await _userManager.GetUserRoleList();
|
||||
var userOrg = await _userManager.GetUserOrgInfo();
|
||||
var param = new DynamicParameters();
|
||||
param.Add("UserID", user.Id);
|
||||
if (userRoles.Where(r => r.Code == Enum.GetName(HouseManagerRole.HouseSecurityManager).ToUnderScoreCase()).Count() > 0)
|
||||
{
|
||||
sql = String.Format(sql, " (T.Status !=3) AND T.UserID=@UserID ");
|
||||
param.Add("UserID", user.Id);
|
||||
}
|
||||
|
||||
if (userRoles.Where(r => r.Code == Enum.GetName(HouseManagerRole.ZoneManager).ToUnderScoreCase()).Count() > 0)
|
||||
{
|
||||
sql = String.Format(sql, " (T.Status=3 OR T.Status=6) AND HC.ZoneId = @ZoneId ");
|
||||
param.Add("ZoneId", userOrg.Id);
|
||||
}
|
||||
|
||||
return await _dapperRepository.QueryPageDataDynamic(sql, input, param, filterFields: new string[] { "Type", "Address", "HouseCode" });
|
||||
}
|
||||
|
||||
[HttpPost("/houseTask/submit")]
|
||||
[UnitOfWork]
|
||||
[AllowAnonymous]
|
||||
public async Task Submit([Required] string taskId)
|
||||
public async Task Submit([FromBody] SubmitHouseTaskInput input)
|
||||
{
|
||||
//获取任务实体
|
||||
var houseTask = await _houseTaskRep.DetachedEntities.FirstOrDefaultAsync(t => t.Id == taskId);
|
||||
var houseTask = await _houseTaskRep.DetachedEntities.FirstOrDefaultAsync(t => t.Id == input.TaskId);
|
||||
if (houseTask == null) throw Oops.Oh("任务不存在");
|
||||
houseTask.Status = 2;
|
||||
houseTask.LastSubmitTime = DateTime.Now;
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ewide.Application
|
||||
{
|
||||
public class HouseTaskCheckRecordInput
|
||||
{
|
||||
/// <summary>
|
||||
/// 任务Id
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "任务参数有误")]
|
||||
public string TaskId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 通过3;退回-1
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "审核结果不能为空")]
|
||||
public int PassOrBack { get; set; }
|
||||
|
||||
public DataStatus PassOrBackDataStatus
|
||||
{
|
||||
get
|
||||
{
|
||||
return PassOrBack switch
|
||||
{
|
||||
-1 => DataStatus.Back,
|
||||
1 => DataStatus.TempSaved,
|
||||
2 => DataStatus.Saved,
|
||||
3 => DataStatus.Submited,
|
||||
6 => DataStatus.Passed,
|
||||
_ => DataStatus.Init,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 审核内容
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "审核内容不能为空")]
|
||||
public string Content { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Ewide.Application.Service.HouseSafety.HouseTaskCheckRecord.Dto
|
||||
{
|
||||
public class HouseTaskCheckRecordOutput
|
||||
{
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user