考核接口修改

parent 50fc203c
......@@ -29,6 +29,14 @@ public class AssessController : Controller
this.userService = userService;
}
//考核类别列表
[HttpPost]
[Route("assesslist")]
public ApiResponse AssessList([CustomizeValidator(RuleSet = "List"), FromBody]AssessRequest request)
{
return assessService.AssessList(request.AllotID);
}
//新增考核类别
[HttpPost]
[Route("addassess")]
......@@ -70,6 +78,14 @@ public ApiResponse SetAssessType([FromBody]SetAssessRequest request)
return assessService.SetAssessType(request);
}
//考核列头列表
[HttpPost]
[Route("columnlist")]
public ApiResponse ColumnList([CustomizeValidator(RuleSet = "List"), FromBody]AssessColumnRequest request)
{
return assessService.ColumnList(request.AssessID);
}
//新增考核项
[HttpPost]
[Route("addcolumn")]
......@@ -93,5 +109,21 @@ public ApiResponse DelColumn([CustomizeValidator(RuleSet = "Del"), FromBody]Asse
{
return assessService.DelColumn(request.ColumnID);
}
//考核数据列表
[HttpPost]
[Route("datalist")]
public ApiResponse DataList([CustomizeValidator(RuleSet = "List"), FromBody]AssessDataRequest request)
{
return assessService.DataList(request.AssessID);
}
//考核数据修改
[HttpPost]
[Route("editassessdata")]
public ApiResponse EditAssessData([CustomizeValidator(RuleSet = "Edit"), FromBody]AssessDataRequest request)
{
return assessService.EditAssessData(request.AssessRow);
}
}
}
......@@ -5,7 +5,7 @@
namespace Performance.DtoModels
{
public class AssessColumnRequest
public class AssessColumnRequest : ApiRequest
{
public int ColumnID { get; set; }
public int AssessID { get; set; }
......@@ -34,6 +34,11 @@ public AssessColumnRequestValidator()
RuleFor(t => t.ParentID).NotNull().GreaterThan(-1);
RuleFor(t => t.ColumnName).NotNull().NotEmpty();
});
RuleSet("List", () =>
{
RuleFor(t => t.AssessID).NotNull().GreaterThan(0);
});
}
}
}
using FluentValidation;
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class AssessDataRequest : ApiRequest
{
public int AssessID { get; set; }
public List<AssessRow> AssessRow { get; set; }
}
public class AssessRow
{
public int DataID { get; set; }
public int AssessID { get; set; }
public List<AssessData> AssessData { get; set; }
public AssessRow()
{
AssessData = new List<AssessData>();
}
}
public class AssessData
{
public int ColumnID { get; set; }
public int ColumnName { get; set; }
public decimal ColumnValue { get; set; }
}
public class AssessDataRequestValidator : AbstractValidator<AssessDataRequest>
{
public AssessDataRequestValidator()
{
RuleSet("List", () =>
{
RuleFor(t => t.AssessID).NotNull().GreaterThan(0);
});
RuleSet("Edit", () =>
{
RuleFor(t => t.AssessRow).NotNull().Must(p => p != null && p.Count > 0);
});
}
}
}
......@@ -5,7 +5,7 @@
namespace Performance.DtoModels
{
public class AssessRequest
public class AssessRequest : ApiRequest
{
public int AssessID { get; set; }
public int AllotID { get; set; }
......@@ -32,6 +32,11 @@ public AssessRequestValidator()
RuleFor(t => t.AllotID).NotNull().NotEmpty();
RuleFor(t => t.AssessName).NotNull().NotEmpty();
});
RuleSet("List", () =>
{
RuleFor(t => t.AllotID).NotNull().NotEmpty();
});
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class AssessDataResponse
{
public int ID { get; set; }
/// <summary>
/// 考核类别ID
/// </summary>
public Nullable<int> AssessID { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
public List<AssessData> AssessData { get; set; }
public AssessDataResponse()
{
AssessData = new List<AssessData>();
}
}
}
using Performance.DtoModels;
using Performance.EntityModels;
using Performance.Infrastructure;
using Performance.Repository;
using System;
using System.Collections.Generic;
......@@ -22,6 +23,18 @@ public class AssessService : IAutoInjection
this.perforAscolumnsRepository = perforAscolumnsRepository;
}
#region 考核类别
/// <summary>
/// 考核类别列表
/// </summary>
/// <param name="allotID"></param>
/// <returns></returns>
public ApiResponse AssessList(int allotID)
{
var list = perforAsassessRepository.GetEntities(t => t.AllotID == allotID);
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 新增
/// </summary>
......@@ -89,6 +102,19 @@ public ApiResponse SetAssessType(SetAssessRequest request)
return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail);
}
#endregion
#region 考核项
/// <summary>
/// 列头列表
/// </summary>
/// <param name="assessID"></param>
/// <returns></returns>
public ApiResponse ColumnList(int assessID)
{
var list = perforAscolumnsRepository.GetEntities(t => t.AssessID == assessID);
return new ApiResponse(ResponseType.OK, list);
}
/// <summary>
/// 新增考核项
......@@ -143,5 +169,58 @@ public ApiResponse DelColumn(int columnID)
var result = perforAscolumnsRepository.Remove(entity);
return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail);
}
#endregion
#region 考核数据
/// <summary>
/// 考核数据列表
/// </summary>
/// <param name="assessID"></param>
/// <returns></returns>
public ApiResponse DataList(int assessID)
{
var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID);
if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核类别ID无效");
var list = perforAsdataRepository.GetEntities(t => t.AssessID == assessID);
if (list != null)
{
var response = list.Select(t => new AssessDataResponse
{
ID = t.ID,
AssessID = t.AssessID,
Department = t.Department,
AssessData = string.IsNullOrEmpty(t.RowData)
? new List<AssessData>()
: JsonHelper.Deserialize<List<AssessData>>(t.RowData)
});
return new ApiResponse(ResponseType.OK, response);
}
return new ApiResponse(ResponseType.OK);
}
/// <summary>
/// 编辑考核数据
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public ApiResponse EditAssessData(List<AssessRow> request)
{
var dataIDList = request.Select(t => t.DataID).ToList();
var dataList = perforAsdataRepository.GetEntities(t => dataIDList.Contains(t.ID));
foreach (var item in request)
{
var entity = dataList.FirstOrDefault(t => t.ID == item.DataID);
if (entity != null)
{
entity.RowData = JsonHelper.Serialize(item.AssessData);
perforAsdataRepository.Update(entity);
}
}
return new ApiResponse(ResponseType.OK);
}
#endregion
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment