Commit 8c3a6172 by wyc

考核接口实现

parent d89f65dd
using Microsoft.AspNetCore.Http; using Masuit.Tools.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles; using Microsoft.AspNetCore.StaticFiles;
using Newtonsoft.Json; using Newtonsoft.Json;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.DtoModels.Request; using Performance.DtoModels.Request;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.Infrastructure;
using Performance.Infrastructure.Models;
using Performance.Services; using Performance.Services;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Performance.Api.Controllers namespace Performance.Api.Controllers
...@@ -22,6 +27,7 @@ public class AssessNewController : Controller ...@@ -22,6 +27,7 @@ public class AssessNewController : Controller
private readonly AssessNewService _service; private readonly AssessNewService _service;
private ClaimService claim; private ClaimService claim;
public AssessNewController(AssessNewService service, ClaimService claim) public AssessNewController(AssessNewService service, ClaimService claim)
{ {
_service = service; _service = service;
...@@ -97,9 +103,9 @@ public ApiResponse CategoryDelete([FromBody] BatchAssessCategoryRequest request) ...@@ -97,9 +103,9 @@ public ApiResponse CategoryDelete([FromBody] BatchAssessCategoryRequest request)
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("category/issue/check")] [Route("category/issue/check")]
public IActionResult CategoryIssueCheck([FromBody] BatchAssessCategoryRequest request) public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck([FromBody] BatchAssessCategoryRequest request)
{ {
throw new NotImplementedException(); return _service.CategoryIssueCheck(request);
} }
/// <summary> /// <summary>
/// 考核下发(把当前考核类别下所有方案下发) /// 考核下发(把当前考核类别下所有方案下发)
...@@ -113,9 +119,10 @@ public IActionResult CategoryIssueCheck([FromBody] BatchAssessCategoryRequest re ...@@ -113,9 +119,10 @@ public IActionResult CategoryIssueCheck([FromBody] BatchAssessCategoryRequest re
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("category/issue/confirm")] [Route("category/issue/confirm")]
public IActionResult CategoryIssueConfirm([FromBody] BatchAssessCategoryRequest request) public ApiResponse CategoryIssueConfirm([FromBody] BatchAssessCategoryRequest request)
{ {
throw new NotImplementedException(); var userid = claim.GetUserId();
return _service.CategoryIssueConfirm(request, userid);
} }
#endregion #endregion
...@@ -198,7 +205,7 @@ public IActionResult SchemeDownload([FromQuery] int categoryId) ...@@ -198,7 +205,7 @@ public IActionResult SchemeDownload([FromQuery] int categoryId)
var ser = JsonConvert.SerializeObject(result); var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser); var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
var filepath = _service.ExcelDownload(rows, "考核方案", categoryId, excelDownloadHeads); var filepath = _service.ExcelDownload(rows, "考核方案", excelDownloadHeads);
var memoryStream = new MemoryStream(); var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open)) using (var stream = new FileStream(filepath, FileMode.Open))
...@@ -211,42 +218,39 @@ public IActionResult SchemeDownload([FromQuery] int categoryId) ...@@ -211,42 +218,39 @@ public IActionResult SchemeDownload([FromQuery] int categoryId)
var memi = provider.Mappings[".xlsx"]; var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name)); return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
} }
/// <summary> ///// <summary>
/// 考核方案上传 ///// 考核方案上传
/// </summary> ///// </summary>
/// <param name="categoryId"></param> ///// <param name="categoryId"></param>
/// <param name="file"></param> ///// <param name="form"></param>
/// <remarks> ///// <remarks>
/// 上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改 ///// 上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
/// </remarks> ///// </remarks>
/// <returns></returns> ///// <returns></returns>
[HttpPost] //[HttpPost]
[Route("scheme/upload")] //[Route("scheme/upload")]
public async Task<IActionResult> SchemeUpload([FromQuery] int categoryId, IFormFile file) //public ApiResponse SchemeUpload([FromQuery] int categoryId, [FromForm] IFormCollection form)
{ //{
throw new NotImplementedException(); // return _service.SchemeUpload(categoryId, form);
} //}
#endregion #endregion
#region 考核指标 #region 考核指标
/// <summary> /// <summary>
/// 考核指标项列表 /// 考核指标项列表
/// </summary> /// </summary>
/// <param name="schemeId"></param> /// <param name="query"></param>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/items/list")] [Route("scheme/items/list")]
public ApiResponse<List<per_assess_scheme_items>> SchemeItemsList([FromQuery] int schemeId) public PagedList<per_assess_scheme_items> SchemeItemsList([FromBody] QuerySchemeItemsList query)
{ {
return _service.SchemeItemsList(schemeId); return _service.SchemeItemsList(query);
} }
/// <summary> /// <summary>
/// 考核指标项新增 /// 考核指标项新增
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <remarks>
/// 编码自动生成,不能修改
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/items/add")] [Route("scheme/items/add")]
...@@ -259,9 +263,6 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd([FromBody] AddAss ...@@ -259,9 +263,6 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd([FromBody] AddAss
/// 考核指标项修改 /// 考核指标项修改
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <remarks>
/// 编码不能修改
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/items/update")] [Route("scheme/items/update")]
...@@ -287,49 +288,67 @@ public ApiResponse SchemeItemsDelete([FromBody] BatchAssessSchemeItemsRequest re ...@@ -287,49 +288,67 @@ public ApiResponse SchemeItemsDelete([FromBody] BatchAssessSchemeItemsRequest re
/// <summary> /// <summary>
/// 考核指标项下载 /// 考核指标项下载
/// </summary> /// </summary>
/// <param name="schemeId"></param> /// <param name="query"></param>
/// <remarks>
/// 空数据时也要能下载,下载的数据只有对应的列头数据
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/items/download")] [Route("scheme/items/download")]
[Produces("application/octet-stream", Type = typeof(FileResult))] [Produces("application/octet-stream", Type = typeof(FileResult))]
public IActionResult SchemeItemsDownload([FromQuery] int schemeId) public IActionResult SchemeItemsDownload([FromBody] QuerySchemeItemsList query)
{
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{
new ExcelDownloadHeads { Alias = "指标编码", Name = nameof(per_assess_scheme_items.ItemCode) },
new ExcelDownloadHeads { Alias = "一级指标名称", Name = nameof(per_assess_scheme_items.ItemName1) },
new ExcelDownloadHeads { Alias = "二级指标名称", Name = nameof(per_assess_scheme_items.ItemName2) },
new ExcelDownloadHeads { Alias = "考核分值", Name = nameof(per_assess_scheme_items.AssessScore) },
new ExcelDownloadHeads { Alias = "考核标准", Name = nameof(per_assess_scheme_items.AssessNorm) },
new ExcelDownloadHeads { Alias = "核算组别", Name = nameof(per_assess_scheme_items.UnitType) },
new ExcelDownloadHeads { Alias = "考核负责部门", Name = nameof(per_assess_scheme_items.AccountingUnit) },
};
var result = _service.SchemeItemsList(query).Data;
var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
var filepath = _service.ExcelDownload(rows, "考核指标项", excelDownloadHeads);
var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open))
{ {
throw new NotImplementedException(); stream.CopyToAsync(memoryStream).Wait();
}
memoryStream.Seek(0, SeekOrigin.Begin);
var provider = new FileExtensionContentTypeProvider();
FileInfo fileInfo = new FileInfo(filepath);
var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
} }
/// <summary> /// <summary>
/// 考核指标项上传 /// 考核指标项上传
/// </summary> /// </summary>
/// <param name="schemeId"></param> /// <param name="schemeId"></param>
/// <param name="file"></param> /// <param name="allotId"></param>
/// <remarks> /// <param name="form"></param>
/// 上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/items/upload")] [Route("scheme/items/upload")]
public IActionResult SchemeItemsUpload([FromQuery] int schemeId, IFormFile file) public ApiResponse SchemeItemsUpload([FromQuery] int schemeId, int allotId, [FromForm] IFormCollection form)
{ {
throw new NotImplementedException(); var userid = claim.GetUserId();
return _service.SchemeItemsUpload(schemeId, allotId, form, userid);
} }
/// <summary> /// <summary>
/// 考核对象核算单元列表清单 /// 考核对象核算单元列表清单
/// </summary> /// </summary>
/// <param name="schemeId"></param> /// <param name="query"></param>
/// <remarks>
/// 1、如已经在本方案设置了的核算单元,勾选框设置为灰色,无法勾选
/// 2、如该核算单元被统—考核类型的其他方案应用,则标记出已设置的方案,如在此方案勾选后,自动删掉他在另外一个方案的设置。
/// 3、一键筛选功能为直接筛选出未设置考核方案的核算单元
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/items/target/list")] [Route("scheme/items/target/list")]
public IActionResult SchemeItemsTargetList([FromQuery] int schemeId) public ApiResponse<List<AssessSchemeTargetResponse>> SchemeItemsTargetList([FromBody] QuerySchemeItemsTargetList query)
{ {
throw new NotImplementedException(); return _service.SchemeItemsTargetList(query);
} }
/// <summary> /// <summary>
/// 考核对象核算单元保存 /// 考核对象核算单元保存
/// </summary> /// </summary>
...@@ -337,10 +356,37 @@ public IActionResult SchemeItemsTargetList([FromQuery] int schemeId) ...@@ -337,10 +356,37 @@ public IActionResult SchemeItemsTargetList([FromQuery] int schemeId)
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/items/target/save")] [Route("scheme/items/target/save")]
public IActionResult SchemeItemsTargetSave([FromBody] TargetAssessSchemeItemsRequest request) public ApiResponse SchemeItemsTargetSave([FromBody] TargetAssessSchemeItemsRequest request)
{
var userid = claim.GetUserId();
return _service.SchemeItemsTargetSave(request, userid);
}
/// <summary>
/// 考核对象核算单元修改
/// </summary>
/// <param name="edit"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/target/edit")]
public ApiResponse SchemeItemsTargetEdit([FromBody] TargetSchemeItemsTargetEdit edit)
{
var userid = claim.GetUserId();
return _service.SchemeItemsTargetEdit(edit, userid);
}
/// <summary>
/// 考核对象核算单元删除
/// </summary>
/// <param name="delete"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/target/delete")]
public ApiResponse SchemeItemsTargetDelete([FromBody] TargetSchemeItemsTargetDelete delete)
{ {
throw new NotImplementedException(); return _service.SchemeItemsTargetDelete(delete);
} }
#endregion #endregion
#region 核算单元上报考核结果 #region 核算单元上报考核结果
...@@ -348,29 +394,24 @@ public IActionResult SchemeItemsTargetSave([FromBody] TargetAssessSchemeItemsReq ...@@ -348,29 +394,24 @@ public IActionResult SchemeItemsTargetSave([FromBody] TargetAssessSchemeItemsReq
/// 核算单元上报考核列表 /// 核算单元上报考核列表
/// </summary> /// </summary>
/// <param name="allotId"></param> /// <param name="allotId"></param>
/// <remarks>
/// 该列表是有下发操作产生的:责任科室总清单
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/enter/list")] [Route("scheme/enter/list")]
public IActionResult SchemeEnterList([FromQuery] int allotId) public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList([FromQuery] int allotId)
{ {
throw new NotImplementedException(); var userid = claim.GetUserId();
return _service.SchemeEnterList(allotId, userid);
} }
/// <summary> /// <summary>
/// 核算单元上报考核指标项清单 /// 核算单元上报考核指标项清单
/// </summary> /// </summary>
/// <param name="issueId"></param> /// <param name="query"></param>
/// <remarks>
/// 该列表是有下发操作产生的:责任科室总清单明细
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/enter/detail/list")] [Route("scheme/enter/detail/list")]
public IActionResult SchemeEnterDetailList([FromQuery] int issueId) public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList([FromBody] QuerySchemeEnterDetailList query)
{ {
throw new NotImplementedException(); return _service.SchemeEnterDetailList(query);
} }
/// <summary> /// <summary>
/// 核算单元上报考核指标项修改 /// 核算单元上报考核指标项修改
...@@ -379,88 +420,132 @@ public IActionResult SchemeEnterDetailList([FromQuery] int issueId) ...@@ -379,88 +420,132 @@ public IActionResult SchemeEnterDetailList([FromQuery] int issueId)
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/enter/detail/edit")] [Route("scheme/enter/detail/edit")]
public IActionResult SchemeEnterEdit([FromBody] EditAssessSchemeEnterRequest request) public ApiResponse SchemeEnterEdit([FromBody] EditAssessSchemeEnterRequest request)
{
throw new NotImplementedException();
}
/// <summary>
/// 核算单元上报考核结果确认前检查
/// </summary>
/// <param name="issueId"></param>
/// <remarks>
/// 编辑:真实用途只是保存数据
/// 确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
/// 提交:数据必须全部确认完成才能提交
/// 需要检查确认的考核指标项中,有没有没有填写的数据
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/detail/check")]
public IActionResult SchemeEnterCheck([FromQuery] int issueId)
{ {
throw new NotImplementedException(); var userid = claim.GetUserId();
return _service.SchemeEnterEdit(request, userid);
} }
///// <summary>
///// 核算单元上报考核结果确认前检查
///// </summary>
///// <param name="issueId"></param>
///// <remarks>
///// 编辑:真实用途只是保存数据
///// 确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
///// 提交:数据必须全部确认完成才能提交
///// 需要检查确认的考核指标项中,有没有没有填写的数据
///// </remarks>
///// <returns></returns>
//[HttpPost]
//[Route("scheme/enter/detail/check")]
//public ApiResponse SchemeEnterCheck([FromQuery] int schemeId, int issueId)
//{
// //return _service.SchemeEnterCheck(schemeId, issueId);
// throw new NotImplementedException();
//}
///// <summary>
///// 核算单元上报考核结果确认
///// </summary>
///// <param name="issueId"></param>
///// <remarks>
///// 编辑:真实用途只是保存数据
///// 确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
///// 提交:数据必须全部确认完成才能提交
///// </remarks>
///// <returns></returns>
//[HttpPost]
//[Route("scheme/enter/detail/confirm")]
//public IActionResult SchemeEnterConfirm([FromQuery] int issueId)
//{
// throw new NotImplementedException();
//}
/// <summary> /// <summary>
/// 核算单元上报考核结果确认 /// 核算单元上报考核结果提交
/// </summary> /// </summary>
/// <param name="issueId"></param> /// <param name="allotId"></param>
/// <remarks> /// <param name="itemId"></param>
/// 编辑:真实用途只是保存数据
/// 确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
/// 提交:数据必须全部确认完成才能提交
/// </remarks>
/// <returns></returns> /// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost] [HttpPost]
[Route("scheme/enter/detail/confirm")] [Route("scheme/enter/submit")]
public IActionResult SchemeEnterConfirm([FromQuery] int issueId) public ApiResponse SchemeEnterSubmit([FromQuery] int allotId, int itemId)
{ {
throw new NotImplementedException(); var userid = claim.GetUserId();
return _service.SchemeEnterSubmit(allotId, itemId, userid);
} }
/// <summary> /// <summary>
/// 核算单元上报考核结果提交 /// 核算单元上报考核结果审核
/// </summary> /// </summary>
/// <param name="allotId"></param> /// <param name="audit"></param>
/// <remarks>
/// 编辑:真实用途只是保存数据
/// 确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
/// 提交:数据必须全部确认完成才能提交,存在还未确认的数据,则提交失败,返回表格显示失败原因
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/enter/submit")] [Route("scheme/enter/audit")]
public IActionResult SchemeEnterSubmit([FromQuery] int allotId) public ApiResponse SchemeEnterAudit([FromBody] EditSchemeEnterAudit audit)
{ {
throw new NotImplementedException(); var realName = claim.GetUserClaim(JwtClaimTypes.RealName);
return _service.SchemeEnterAudit(audit, realName);
} }
/// <summary> /// <summary>
/// 核算单元上报考核指标项下载 /// 核算单元上报考核指标项下载
/// </summary> /// </summary>
/// <param name="issueId"></param> /// <param name="query"></param>
/// <remarks>
/// 空数据时也要能下载,下载的数据只有对应的列头数据
/// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/enter/download")] [Route("scheme/enter/download")]
public IActionResult SchemeEnterDownload([FromQuery] int issueId) public IActionResult SchemeEnterDownload([FromBody] QuerySchemeEnterDetailList query)
{
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{
new ExcelDownloadHeads { Alias = "核算单元", Name = nameof(AssessSchemeEnterDetaiListResponse.TargetAccountingUnit) },
new ExcelDownloadHeads { Alias = "核算组别", Name = nameof(AssessSchemeEnterDetaiListResponse.TargetUnitType) },
new ExcelDownloadHeads { Alias = "一级指标名称", Name = nameof(AssessSchemeEnterDetaiListResponse.ItemName1) },
new ExcelDownloadHeads { Alias = "考核项目", Name = nameof(AssessSchemeEnterDetaiListResponse.ItemName2) },
new ExcelDownloadHeads { Alias = "考核分值", Name = nameof(AssessSchemeEnterDetaiListResponse.AssessScore) },
new ExcelDownloadHeads { Alias = "考核扣分", Name = nameof(AssessSchemeEnterDetaiListResponse.Score) },
new ExcelDownloadHeads { Alias = "扣分原因", Name = nameof(AssessSchemeEnterDetaiListResponse.ScoreRemark) },
};
var result = _service.SchemeEnterDetailList(query).Data;
var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
var filepath = _service.ExcelDownload(rows, "考核详情", excelDownloadHeads);
var memoryStream = new MemoryStream();
using (var stream = new FileStream(filepath, FileMode.Open))
{ {
throw new NotImplementedException(); stream.CopyToAsync(memoryStream).Wait();
}
memoryStream.Seek(0, SeekOrigin.Begin);
var provider = new FileExtensionContentTypeProvider();
FileInfo fileInfo = new FileInfo(filepath);
var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
} }
/// <summary> /// <summary>
/// 核算单元上报考核指标项上传 /// 核算单元上报考核指标项上传
/// </summary> /// </summary>
/// <param name="issueId"></param> /// <param name="itemId"></param>
/// <param name="file"></param> /// <param name="form"></param>
/// <remarks> /// <remarks>
/// 上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作 /// 上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作
/// </remarks> /// </remarks>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("scheme/enter/upload")] [Route("scheme/enter/upload")]
public IActionResult SchemeEnterUpload([FromQuery] int issueId, IFormFile file) public ApiResponse SchemeEnterUpload([FromQuery] int itemId, [FromForm] IFormCollection form)
{ {
throw new NotImplementedException(); var userid = claim.GetUserId();
return _service.SchemeEnterUpload(itemId, form, userid);
} }
#endregion #endregion
} }
......
...@@ -416,22 +416,11 @@ ...@@ -416,22 +416,11 @@
</remarks> </remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeUpload(System.Int32,Microsoft.AspNetCore.Http.IFormFile)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsList(Performance.DtoModels.Request.QuerySchemeItemsList)">
<summary>
考核方案上传
</summary>
<param name="categoryId"></param>
<param name="file"></param>
<remarks>
上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsList(System.Int32)">
<summary> <summary>
考核指标项列表 考核指标项列表
</summary> </summary>
<param name="schemeId"></param> <param name="query"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsAdd(Performance.DtoModels.Request.AddAssessSchemeItemsRequest)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsAdd(Performance.DtoModels.Request.AddAssessSchemeItemsRequest)">
...@@ -439,9 +428,6 @@ ...@@ -439,9 +428,6 @@
考核指标项新增 考核指标项新增
</summary> </summary>
<param name="request"></param> <param name="request"></param>
<remarks>
编码自动生成,不能修改
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsUpdate(Performance.DtoModels.Request.UpdateAssessSchemeItemsRequest)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsUpdate(Performance.DtoModels.Request.UpdateAssessSchemeItemsRequest)">
...@@ -449,9 +435,6 @@ ...@@ -449,9 +435,6 @@
考核指标项修改 考核指标项修改
</summary> </summary>
<param name="request"></param> <param name="request"></param>
<remarks>
编码不能修改
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsDelete(Performance.DtoModels.Request.BatchAssessSchemeItemsRequest)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsDelete(Performance.DtoModels.Request.BatchAssessSchemeItemsRequest)">
...@@ -464,37 +447,27 @@ ...@@ -464,37 +447,27 @@
</remarks> </remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsDownload(System.Int32)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsDownload(Performance.DtoModels.Request.QuerySchemeItemsList)">
<summary> <summary>
考核指标项下载 考核指标项下载
</summary> </summary>
<param name="schemeId"></param> <param name="query"></param>
<remarks>
空数据时也要能下载,下载的数据只有对应的列头数据
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsUpload(System.Int32,Microsoft.AspNetCore.Http.IFormFile)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsUpload(System.Int32,System.Int32,Microsoft.AspNetCore.Http.IFormCollection)">
<summary> <summary>
考核指标项上传 考核指标项上传
</summary> </summary>
<param name="schemeId"></param> <param name="schemeId"></param>
<param name="file"></param> <param name="allotId"></param>
<remarks> <param name="form"></param>
上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetList(System.Int32)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetList(Performance.DtoModels.Request.QuerySchemeItemsTargetList)">
<summary> <summary>
考核对象核算单元列表清单 考核对象核算单元列表清单
</summary> </summary>
<param name="schemeId"></param> <param name="query"></param>
<remarks>
1、如已经在本方案设置了的核算单元,勾选框设置为灰色,无法勾选
2、如该核算单元被统—考核类型的其他方案应用,则标记出已设置的方案,如在此方案勾选后,自动删掉他在另外一个方案的设置。
3、一键筛选功能为直接筛选出未设置考核方案的核算单元
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetSave(Performance.DtoModels.Request.TargetAssessSchemeItemsRequest)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetSave(Performance.DtoModels.Request.TargetAssessSchemeItemsRequest)">
...@@ -504,24 +477,32 @@ ...@@ -504,24 +477,32 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetEdit(Performance.DtoModels.Request.TargetSchemeItemsTargetEdit)">
<summary>
考核对象核算单元修改
</summary>
<param name="edit"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetDelete(Performance.DtoModels.Request.TargetSchemeItemsTargetDelete)">
<summary>
考核对象核算单元删除
</summary>
<param name="delete"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterList(System.Int32)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterList(System.Int32)">
<summary> <summary>
核算单元上报考核列表 核算单元上报考核列表
</summary> </summary>
<param name="allotId"></param> <param name="allotId"></param>
<remarks>
该列表是有下发操作产生的:责任科室总清单
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterDetailList(System.Int32)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterDetailList(Performance.DtoModels.Request.QuerySchemeEnterDetailList)">
<summary> <summary>
核算单元上报考核指标项清单 核算单元上报考核指标项清单
</summary> </summary>
<param name="issueId"></param> <param name="query"></param>
<remarks>
该列表是有下发操作产生的:责任科室总清单明细
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterEdit(Performance.DtoModels.Request.EditAssessSchemeEnterRequest)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterEdit(Performance.DtoModels.Request.EditAssessSchemeEnterRequest)">
...@@ -531,59 +512,35 @@ ...@@ -531,59 +512,35 @@
<param name="request"></param> <param name="request"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterCheck(System.Int32)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterSubmit(System.Int32,System.Int32)">
<summary>
核算单元上报考核结果确认前检查
</summary>
<param name="issueId"></param>
<remarks>
编辑:真实用途只是保存数据
确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
提交:数据必须全部确认完成才能提交
需要检查确认的考核指标项中,有没有没有填写的数据
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterConfirm(System.Int32)">
<summary> <summary>
核算单元上报考核结果确认 核算单元上报考核结果提交
</summary> </summary>
<param name="issueId"></param> <param name="allotId"></param>
<remarks> <param name="itemId"></param>
编辑:真实用途只是保存数据
确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
提交:数据必须全部确认完成才能提交
</remarks>
<returns></returns> <returns></returns>
<exception cref="T:System.NotImplementedException"></exception>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterSubmit(System.Int32)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterAudit(Performance.DtoModels.Request.EditSchemeEnterAudit)">
<summary> <summary>
核算单元上报考核结果提交 核算单元上报考核结果审核
</summary> </summary>
<param name="allotId"></param> <param name="audit"></param>
<remarks>
编辑:真实用途只是保存数据
确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
提交:数据必须全部确认完成才能提交,存在还未确认的数据,则提交失败,返回表格显示失败原因
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterDownload(System.Int32)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterDownload(Performance.DtoModels.Request.QuerySchemeEnterDetailList)">
<summary> <summary>
核算单元上报考核指标项下载 核算单元上报考核指标项下载
</summary> </summary>
<param name="issueId"></param> <param name="query"></param>
<remarks>
空数据时也要能下载,下载的数据只有对应的列头数据
</remarks>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterUpload(System.Int32,Microsoft.AspNetCore.Http.IFormFile)"> <member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterUpload(System.Int32,Microsoft.AspNetCore.Http.IFormCollection)">
<summary> <summary>
核算单元上报考核指标项上传 核算单元上报考核指标项上传
</summary> </summary>
<param name="issueId"></param> <param name="itemId"></param>
<param name="file"></param> <param name="form"></param>
<remarks> <remarks>
上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作 上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作
</remarks> </remarks>
......
...@@ -2085,6 +2085,26 @@ ...@@ -2085,6 +2085,26 @@
<member name="P:Performance.DtoModels.AprAmountMarkRequest.TypeInDepartments"> <member name="P:Performance.DtoModels.AprAmountMarkRequest.TypeInDepartments">
<summary> 需要审计的科室,支持多个科室一起审计 </summary> <summary> 需要审计的科室,支持多个科室一起审计 </summary>
</member> </member>
<member name="P:Performance.DtoModels.Request.QuerySchemeEnterDetailList.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.Request.QuerySchemeEnterDetailList.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.Request.QuerySchemeEnterDetailList.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.Request.EditSchemeEnterAudit.State">
<summary>
操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
</summary>
</member>
<member name="P:Performance.DtoModels.Request.EditAssessSchemeEnterRequest.Score"> <member name="P:Performance.DtoModels.Request.EditAssessSchemeEnterRequest.Score">
<summary> <summary>
考核扣分 考核扣分
...@@ -2120,19 +2140,25 @@ ...@@ -2120,19 +2140,25 @@
考核标准 考核标准
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.UnitCode"> <!-- Badly formed XML comment ignored for member "P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.UnitType" -->
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.AccountingUnit">
<summary> <summary>
责任部门核算单元编码 责任部门核算单元
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.UnitType"> <member name="P:Performance.DtoModels.Request.QuerySchemeItemsList.UnitType">
<summary> <summary>
责任部门核算组别 核算组别
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.AccountingUnit"> <member name="P:Performance.DtoModels.Request.QuerySchemeItemsList.AccountingUnit">
<summary> <summary>
责任部门核算单元 核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.Request.QuerySchemeItemsList.ItemName2">
<summary>
二级指标名称
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Request.BatchRequest.Batch"> <member name="P:Performance.DtoModels.Request.BatchRequest.Batch">
...@@ -2950,7 +2976,22 @@ ...@@ -2950,7 +2976,22 @@
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.Id"> <member name="P:Performance.DtoModels.AssessSchemeDataResponse.Id">
<summary> <summary>
考核方案Id 考核方案ID
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessName">
<summary>
考核类别名称
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.SchemeCode"> <member name="P:Performance.DtoModels.AssessSchemeDataResponse.SchemeCode">
...@@ -2963,9 +3004,269 @@ ...@@ -2963,9 +3004,269 @@
考核方案名称 考核方案名称
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessName"> <member name="P:Performance.DtoModels.AssessSchemeDataResponse.CreateBy">
<summary> <summary>
考核类别名称 创建人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.UpdateTime">
<summary>
修改时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.TargetId">
<summary>
目标Id
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.Code">
<summary>
核算单元编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.UnitType">
<summary>
核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.SchemeName">
<summary>
已设置方案
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.SchemeState">
<summary>
状态 全部 = 0, 已设置其他方案= 1,未设置方案=2,已设置方案(不可勾选) = 3,
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.CreateBy">
<summary>
创建人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeTargetResponse.UpdateTime">
<summary>
修改时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.UnitType">
<summary>
核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AccountingUnit">
<summary>
核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AssessName">
<summary>
考核类型
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.ItemId">
<summary>
考核指标Id
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.State">
<summary>
状态
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.Count">
<summary>
总下发数
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.ConfirmCount">
<summary>
确认数
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.RejectCount">
<summary>
驳回数
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AwaitCount">
<summary>
待审核数
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.Id">
<summary>
下发Id
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.ItemId">
<summary>
考核指标Id
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.Score">
<summary>
考核扣分
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.ScoreRemark">
<summary>
扣分原因
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.State">
<summary>
状态 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.CreateBy">
<summary>
创建人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.UpdateTime">
<summary>
修改时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.SubmitBy">
<summary>
提交人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.SubmitTime">
<summary>
提交时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.AuditBy">
<summary>
审核人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.AuditTime">
<summary>
审核时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.AssessNorm">
<summary>
考核标准
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeItemsUploadResponse.OperationType">
<summary>
操作类型 新增 = 1, 修改 = 2, 删除 = 3,
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.AttendanceIsueId"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.AttendanceIsueId">
...@@ -4132,6 +4433,121 @@ ...@@ -4132,6 +4433,121 @@
发放时间,空则不显示 发放时间,空则不显示
</summary> </summary>
</member> </member>
<member name="T:Performance.DtoModels.PerAssessmentStatisticsResponse">
<summary>
考核下发结果统计
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.Id">
<summary>
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessName">
<summary>
考核类型名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.SchemeId">
<summary>
考核方案ID
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.SchemeCode">
<summary>
考核方案编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.SchemeName">
<summary>
考核方案名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemId">
<summary>
考核指标Id
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessNorm">
<summary>
考核标准
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.TargetUnitCode">
<summary>
考核目标核算单元编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.OperationType">
<summary>
操作类型 新增 = 1, 修改 = 2, 删除 = 3,
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.Describe">
<summary>
操作描述
</summary>
</member>
<member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime"> <member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime">
<summary> <summary>
参加工作时间 参加工作时间
......
...@@ -376,9 +376,15 @@ ...@@ -376,9 +376,15 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme"> <member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme">
<summary>考核方案</summary> <summary>考核方案</summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_issue_scheme">
<summary>考核方案下发到责任科室指标清单</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme_items"> <member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme_items">
<summary>考核方案指标项</summary> <summary>考核方案指标项</summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme_target">
<summary>被考核对象</summary>
</member>
<member name="T:Performance.EntityModels.ag_againsituation"> <member name="T:Performance.EntityModels.ag_againsituation">
<summary> <summary>
二次分配概览 二次分配概览
...@@ -6469,6 +6475,166 @@ ...@@ -6469,6 +6475,166 @@
修改时间 修改时间
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.per_assess_issue_scheme">
<summary>
考核方案下发到责任科室指标清单
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.Id">
<summary>
考核方案下发到责任科室指标清单Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AssessName">
<summary>
考核类型名称
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.SchemeId">
<summary>
考核方案ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.SchemeCode">
<summary>
考核方案编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.SchemeName">
<summary>
考核方案名称
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.ItemId">
<summary>
考核指标Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AssessNorm">
<summary>
考核标准
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.State">
<summary>
状态
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.CreateBy">
<summary>
创建人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.UpdateTime">
<summary>
修改时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.Score">
<summary>
考核扣分
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.ScoreRemark">
<summary>
扣分原因
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.TargetUnitCode">
<summary>
考核目标核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.SubmitBy">
<summary>
提交人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.SubmitTime">
<summary>
提交时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AuditBy">
<summary>
审核人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_issue_scheme.AuditTime">
<summary>
审核时间
</summary>
</member>
<member name="T:Performance.EntityModels.per_assess_scheme"> <member name="T:Performance.EntityModels.per_assess_scheme">
<summary> <summary>
考核方案 考核方案
...@@ -6604,6 +6770,66 @@ ...@@ -6604,6 +6770,66 @@
修改时间 修改时间
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.per_assess_scheme_target">
<summary>
被考核对象
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.Id">
<summary>
被考核对象Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.SchemeId">
<summary>
考核方案Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.UnitCode">
<summary>
考核目标核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.UnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.AccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.CreateBy">
<summary>
创建人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_target.UpdateTime">
<summary>
修改时间
</summary>
</member>
<member name="T:Performance.EntityModels.per_batch"> <member name="T:Performance.EntityModels.per_batch">
<summary> <summary>
分批发放记录 分批发放记录
...@@ -9719,6 +9945,101 @@ ...@@ -9719,6 +9945,101 @@
核算单元编码 核算单元编码
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessName">
<summary>
考核类型
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.SchemeId">
<summary>
考核方案ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.SchemeCode">
<summary>
考核方案编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.SchemeName">
<summary>
考核方案名称
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemId">
<summary>
指标Id
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessNorm">
<summary>
考核标准
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.TargetUnitCode">
<summary>
考核目标核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_attendance.UnitType"> <member name="P:Performance.EntityModels.Other.view_attendance.UnitType">
<summary> <summary>
人员类别 人员类别
......
...@@ -276,8 +276,21 @@ public AutoMapperConfigs() ...@@ -276,8 +276,21 @@ public AutoMapperConfigs()
CreateMap<cof_workitem, WorkItemRequest>() CreateMap<cof_workitem, WorkItemRequest>()
.ReverseMap(); .ReverseMap();
CreateMap<cof_again, CofAgainRequest>().ReverseMap(); CreateMap<cof_again, CofAgainRequest>()
CreateMap<AddAssessSchemeItemsRequest, per_assess_scheme_items>().ReverseMap(); .ReverseMap();
CreateMap<AddAssessSchemeItemsRequest, per_assess_scheme_items>()
.ReverseMap();
CreateMap<per_assess_scheme_items, PerAssessmentStatisticsResponse>()
.ReverseMap();
CreateMap<cof_accounting, AssessSchemeTargetResponse>()
.ReverseMap();
CreateMap<AssessSchemeTargetResponse, per_assess_scheme_target>()
.ReverseMap();
CreateMap<per_assess_issue_scheme, AssessSchemeEnterDetaiListResponse>()
.ReverseMap();
CreateMap<per_assess_scheme, AssessSchemeDataResponse>()
.ReverseMap();
} }
} }
} }
...@@ -132,6 +132,25 @@ public enum OperationType ...@@ -132,6 +132,25 @@ public enum OperationType
删除 = 3, 删除 = 3,
} }
} }
public class Assess
{
public enum SchemeItemsTarget
{
全部 = 0,
已设置其他方案 = 1,
未设置方案 = 2,
已设置方案 = 4,
}
public enum AssessState
{
未提交 = 1,
待审核 = 2,
审核通过 = 3,
驳回 = 4,
}
}
public class SecondAllot public class SecondAllot
{ {
......
...@@ -18,5 +18,6 @@ public class UpdateAssessCategoryRequest : AddAssessCategoryRequest ...@@ -18,5 +18,6 @@ public class UpdateAssessCategoryRequest : AddAssessCategoryRequest
public class BatchAssessCategoryRequest public class BatchAssessCategoryRequest
{ {
public int[] CategoryId { get; set; } public int[] CategoryId { get; set; }
public int AllotId { get; set; }
} }
} }
namespace Performance.DtoModels.Request namespace Performance.DtoModels.Request
{ {
public class QuerySchemeEnterDetailList
{
public int AllotId { get; set; }
public int ItemId { get; set; }
/// <summary>
/// 考核目标核算组别
/// </summary>
public string? TargetUnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string? TargetAccountingUnit { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string? ItemName2 { get; set; }
public int Page { get; set; } = 0;
public int PageSize { get; set; } = 0;
}
public class EditSchemeEnterAudit
{
public int AllotId { get; set; }
public int[] IssueId { get; set; }
/// <summary>
/// 操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
/// </summary>
public Assess.AssessState State { get; set; }
}
public class EditAssessSchemeEnterRequest public class EditAssessSchemeEnterRequest
{ {
public int IssueDetailId { get; set; } public int IssueId { get; set; }
/// <summary> /// <summary>
/// 考核扣分 /// 考核扣分
/// </summary> /// </summary>
public int Score { get; set; } public int? Score { get; set; }
/// <summary> /// <summary>
/// 扣分原因 /// 扣分原因
/// </summary> /// </summary>
public string ScoreRemark { get; set; } public string? ScoreRemark { get; set; }
} }
} }
namespace Performance.DtoModels.Request using System.Collections.Generic;
namespace Performance.DtoModels.Request
{ {
public class AddAssessSchemeItemsRequest public class AddAssessSchemeItemsRequest
{ {
public int AllotId { get; set; }
/// <summary> /// <summary>
/// 方案ID /// 方案ID
/// </summary> /// </summary>
...@@ -23,9 +26,6 @@ public class AddAssessSchemeItemsRequest ...@@ -23,9 +26,6 @@ public class AddAssessSchemeItemsRequest
/// </summary> /// </summary>
public string AssessNorm { get; set; } public string AssessNorm { get; set; }
/// <summary> /// <summary>
/// 责任部门核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary> /// <summary>
/// 责任部门核算组别 /// 责任部门核算组别
/// </summary> /// </summary>
...@@ -43,8 +43,48 @@ public class BatchAssessSchemeItemsRequest ...@@ -43,8 +43,48 @@ public class BatchAssessSchemeItemsRequest
{ {
public int[] SchemeItemsId { get; set; } public int[] SchemeItemsId { get; set; }
} }
public class QuerySchemeItemsTargetList
{
public int AllotId { get; set; }
public int SchemeId { get; set; }
public Assess.SchemeItemsTarget SchemeItemsTarget { get; set; }
}
public class QuerySchemeItemsList
{
public int AllotId { get; set; }
public int SchemeId { get; set; }
/// <summary>
/// 核算组别
/// </summary>
public string? UnitType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string? AccountingUnit { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string? ItemName2 { get; set; }
public int Page { get; set; } = 0;
public int PageSize { get; set; } = 0;
}
public class TargetAssessSchemeItemsRequest public class TargetAssessSchemeItemsRequest
{ {
public List<AssessSchemeTargetResponse> SchemeTargetResponse { get; set; }
public int SchemeId { get; set; }
}
public class TargetSchemeItemsTargetEdit
{
public int AllotId { get; set; }
public int TargetId { get; set; }
public string UnitType { get; set; }
public string AccountingUnit { get; set; }
} }
public class TargetSchemeItemsTargetDelete
{
public int[] TargetId { get; set; }
}
} }
using System; using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels namespace Performance.DtoModels
{ {
public class AssessSchemeDataResponse public class AssessSchemeDataResponse
{ {
/// <summary> /// <summary>
/// 考核方案Id /// 考核方案ID
/// </summary> /// </summary>
public int Id { get; set; } public int Id { get; set; }
/// <summary> /// <summary>
/// 绩效ID
/// </summary>
public int AllotId { get; set; }
/// <summary>
/// 考核类型ID
/// </summary>
public int AssessId { get; set; }
/// <summary>
/// 考核类别名称
/// </summary>
public string AssessName { get; set; }
/// <summary>
/// 考核方案编码 /// 考核方案编码
/// </summary> /// </summary>
public string SchemeCode { get; set; } public string SchemeCode { get; set; }
...@@ -19,8 +29,234 @@ public class AssessSchemeDataResponse ...@@ -19,8 +29,234 @@ public class AssessSchemeDataResponse
/// </summary> /// </summary>
public string SchemeName { get; set; } public string SchemeName { get; set; }
/// <summary> /// <summary>
/// 考核类别名称 /// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
public class AssessSchemeTargetResponse
{
/// <summary>
/// 目标Id
/// </summary>
public int TargetId { get; set; }
/// <summary>
/// 核算单元编码
/// </summary>
public string Code { get; set; }
/// <summary>
/// 核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 已设置方案
/// </summary>
public string SchemeName { get; set; }
/// <summary>
/// 状态 全部 = 0, 已设置其他方案= 1,未设置方案=2,已设置方案(不可勾选) = 3,
/// </summary>
public int SchemeState { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
public class AssessSchemeEnterListResponse
{
/// <summary>
/// 核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 考核类型ID
/// </summary>
public int AssessId { get; set; }
/// <summary>
/// 考核类型
/// </summary> /// </summary>
public string AssessName { get; set; } public string AssessName { get; set; }
/// <summary>
/// 考核指标Id
/// </summary>
public int? ItemId { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 状态
/// </summary>
public int State { get; set; }
/// <summary>
/// 总下发数
/// </summary>
public int Count { get; set; }
/// <summary>
/// 确认数
/// </summary>
public int ConfirmCount { get; set; }
/// <summary>
/// 驳回数
/// </summary>
public int RejectCount { get; set; }
/// <summary>
/// 待审核数
/// </summary>
public int AwaitCount { get; set; }
}
public class AssessSchemeEnterDetaiListResponse
{
/// <summary>
/// 考核目标核算组别
/// </summary>
public string? TargetUnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string? TargetAccountingUnit { get; set; }
/// <summary>
/// 下发Id
/// </summary>
public int? Id { get; set; }
/// <summary>
/// 考核指标Id
/// </summary>
public int? ItemId { get; set; }
/// <summary>
/// 指标编码
/// </summary>
public string? ItemCode { get; set; }
/// <summary>
/// 一级指标名称
/// </summary>
public string? ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string? ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public int? AssessScore { get; set; }
/// <summary>
/// 考核扣分
/// </summary>
public int? Score { get; set; }
/// <summary>
/// 扣分原因
/// </summary>
public string? ScoreRemark { get; set; }
/// <summary>
/// 状态 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
/// </summary>
public int State { get; set; }
public int SchemeState { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 提交人
/// </summary>
public int? SubmitBy { get; set; }
/// <summary>
/// 提交时间
/// </summary>
public DateTime? SubmitTime { get; set; }
/// <summary>
/// 审核人
/// </summary>
public string? AuditBy { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public DateTime? AuditTime { get; set; }
}
//上传
public class AssessSchemeItemsUploadResponse
{
/// <summary>
/// 一级指标名称
/// </summary>
public string ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public int AssessScore { get; set; }
/// <summary>
/// 考核标准
/// </summary>
public string AssessNorm { get; set; }
/// <summary>
/// 责任部门核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary>
/// 责任部门核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 责任部门核算单元
/// </summary>
public string AccountingUnit { get; set; }
public int sort { get; set; }
/// <summary>
/// 指标编码
/// </summary>
public string ItemCode { get; set; }
/// <summary>
/// 操作类型 新增 = 1, 修改 = 2, 删除 = 3,
/// </summary>
public int OperationType { get; set; }
} }
} }
using Performance.EntityModels;
using Performance.EntityModels.Other;
using System;
namespace Performance.DtoModels
{
/// <summary>
/// 考核下发结果统计
/// </summary>
public class PerAssessmentStatisticsResponse
{
public PerAssessmentStatisticsResponse() { }
public PerAssessmentStatisticsResponse(view_assess_issue item)
{
Id = 0;
AllotId = item.AllotId;
AssessId = item.AssessId;
AssessCode = item.AssessCode;
AssessName = item.AssessName;
SchemeId = item.SchemeId;
SchemeCode = item.SchemeCode;
SchemeName = item.SchemeName;
ItemId = item.ItemId;
ItemCode = item.ItemCode;
ItemName1 = item.ItemName1;
ItemName2 = item.ItemName2;
AssessScore = item.AssessScore;
AssessNorm = item.AssessNorm;
UnitCode = item.UnitCode;
UnitType = item.UnitType;
AccountingUnit = item.AccountingUnit;
TargetUnitCode = item.TargetUnitCode;
TargetUnitType = item.TargetUnitType;
TargetAccountingUnit = item.TargetAccountingUnit;
OperationType = (int)Attendance.OperationType.新增;
Describe = "添加数据";
}
public PerAssessmentStatisticsResponse(per_assess_issue_scheme item)
{
Id = item.Id;
AllotId = item.AllotId;
AssessId = item.AssessId;
AssessCode = item.AssessCode;
AssessName = item.AssessName;
SchemeId = item.SchemeId ?? 0;
SchemeCode = item.SchemeCode;
SchemeName = item.SchemeName;
ItemId = item.ItemId ?? 0;
ItemCode = item.ItemCode;
ItemName1 = item.ItemName1;
ItemName2 = item.ItemName2;
AssessScore = item.AssessScore;
AssessNorm = item.AssessNorm;
UnitCode = item.UnitCode;
UnitType = item.UnitType;
AccountingUnit = item.AccountingUnit;
TargetUnitCode = item.TargetUnitCode;
TargetUnitType = item.TargetUnitType;
TargetAccountingUnit = item.TargetAccountingUnit;
OperationType = (int)Attendance.OperationType.删除;
Describe = "删除数据";
}
/// <summary>
///
/// </summary>
public int? Id { get; set; }
/// <summary>
/// 绩效ID
/// </summary>
public Nullable<int> AllotId { get; set; }
/// <summary>
/// 考核类型ID
/// </summary>
public int AssessId { get; set; }
/// <summary>
/// 考核类型编码
/// </summary>
public string AssessCode { get; set; }
/// <summary>
/// 考核类型名称
/// </summary>
public string AssessName { get; set; }
/// <summary>
/// 考核方案ID
/// </summary>
public int SchemeId { get; set; }
/// <summary>
/// 考核方案编码
/// </summary>
public string SchemeCode { get; set; }
/// <summary>
/// 考核方案名称
/// </summary>
public string SchemeName { get; set; }
/// <summary>
/// 考核指标Id
/// </summary>
public int ItemId { get; set; }
/// <summary>
/// 指标编码
/// </summary>
public string ItemCode { get; set; }
/// <summary>
/// 一级指标名称
/// </summary>
public string ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public int AssessScore { get; set; }
/// <summary>
/// 考核标准
/// </summary>
public string AssessNorm { get; set; }
/// <summary>
/// 责任部门核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary>
/// 责任部门核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 责任部门核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 考核目标核算单元编码
/// </summary>
public string TargetUnitCode { get; set; }
/// <summary>
/// 考核目标核算组别
/// </summary>
public string TargetUnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string TargetAccountingUnit { get; set; }
/// <summary>
/// 操作类型 新增 = 1, 修改 = 2, 删除 = 3,
/// </summary>
public int OperationType { get; set; }
/// <summary>
/// 操作描述
/// </summary>
public string Describe { get; set; }
}
}
...@@ -273,7 +273,11 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -273,7 +273,11 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<per_assess_category> per_assess_category { get; set; } public virtual DbSet<per_assess_category> per_assess_category { get; set; }
/// <summary>考核方案</summary> /// <summary>考核方案</summary>
public virtual DbSet<per_assess_scheme> per_assess_scheme { get; set; } public virtual DbSet<per_assess_scheme> per_assess_scheme { get; set; }
/// <summary>考核方案下发到责任科室指标清单</summary>
public virtual DbSet<per_assess_issue_scheme> per_assess_issue_scheme { get; set; }
/// <summary>考核方案指标项</summary> /// <summary>考核方案指标项</summary>
public virtual DbSet<per_assess_scheme_items> per_assess_scheme_items { get; set; } public virtual DbSet<per_assess_scheme_items> per_assess_scheme_items { get; set; }
/// <summary>被考核对象</summary>
public virtual DbSet<per_assess_scheme_target> per_assess_scheme_target { get; set; }
} }
} }
//-----------------------------------------------------------------------
// <copyright file=" per_assess_scheme.cs">
// * FileName: 考核方案.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 考核方案下发到责任科室指标清单
/// </summary>
[Table("per_assess_issue_scheme")]
public class per_assess_issue_scheme
{
/// <summary>
/// 考核方案下发到责任科室指标清单Id
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
/// 绩效ID
/// </summary>
public Nullable<int> AllotId { get; set; }
/// <summary>
/// 考核类型ID
/// </summary>
public int AssessId { get; set; }
/// <summary>
/// 考核类型编码
/// </summary>
public string AssessCode { get; set; }
/// <summary>
/// 考核类型名称
/// </summary>
public string AssessName { get; set; }
/// <summary>
/// 考核方案ID
/// </summary>
public int? SchemeId { get; set; }
/// <summary>
/// 考核方案编码
/// </summary>
public string SchemeCode { get; set; }
/// <summary>
/// 考核方案名称
/// </summary>
public string SchemeName { get; set; }
/// <summary>
/// 考核指标Id
/// </summary>
public int? ItemId { get; set; }
/// <summary>
/// 指标编码
/// </summary>
public string? ItemCode { get; set; }
/// <summary>
/// 一级指标名称
/// </summary>
public string ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public int AssessScore { get; set; }
/// <summary>
/// 考核标准
/// </summary>
public string AssessNorm { get; set; }
/// <summary>
/// 责任部门核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary>
/// 责任部门核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 责任部门核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 状态
/// </summary>
public int State { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
/// <summary>
/// 考核扣分
/// </summary>
public int? Score { get; set; }
/// <summary>
/// 扣分原因
/// </summary>
public string? ScoreRemark { get; set; }
/// <summary>
/// 考核目标核算单元编码
/// </summary>
public string TargetUnitCode { get; set; }
/// <summary>
/// 考核目标核算组别
/// </summary>
public string TargetUnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string TargetAccountingUnit { get; set; }
/// <summary>
/// 提交人
/// </summary>
public int? SubmitBy { get; set; }
/// <summary>
/// 提交时间
/// </summary>
public DateTime? SubmitTime { get; set; }
/// <summary>
/// 审核人
/// </summary>
public string? AuditBy { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public DateTime? AuditTime { get; set; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" per_assess_scheme_target.cs">
// * FileName: 被考核对象.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 被考核对象
/// </summary>
[Table("per_assess_scheme_target")]
public class per_assess_scheme_target
{
/// <summary>
/// 被考核对象Id
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
/// 绩效ID
/// </summary>
public Nullable<int> AllotId { get; set; }
/// <summary>
/// 考核类型ID
/// </summary>
public int AssessId { get; set; }
/// <summary>
/// 考核方案Id
/// </summary>
public int SchemeId { get; set; }
/// <summary>
/// 考核目标核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary>
/// 考核目标核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { get; set; }
}
}
using Performance.EntityModels.Entity;
using System;
namespace Performance.EntityModels.Other
{
public class view_assess_issue
{
/// <summary>
/// 绩效ID
/// </summary>
public Nullable<int> AllotId { get; set; }
/// <summary>
/// 考核类型编码
/// </summary>
public string AssessCode { get; set; }
/// <summary>
/// 考核类型
/// </summary>
public string AssessName { get; set; }
/// <summary>
/// 考核类型ID
/// </summary>
public int AssessId { get; set; }
/// <summary>
/// 考核方案ID
/// </summary>
public int SchemeId { get; set; }
/// <summary>
/// 考核方案编码
/// </summary>
public string SchemeCode { get; set; }
/// <summary>
/// 考核方案名称
/// </summary>
public string SchemeName { get; set; }
/// <summary>
/// 指标Id
/// </summary>
public int ItemId { get; set; }
/// <summary>
/// 指标编码
/// </summary>
public string ItemCode { get; set; }
/// <summary>
/// 一级指标名称
/// </summary>
public string ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public int AssessScore { get; set; }
/// <summary>
/// 考核标准
/// </summary>
public string AssessNorm { get; set; }
/// <summary>
/// 责任部门核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary>
/// 责任部门核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 责任部门核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 考核目标核算单元编码
/// </summary>
public string TargetUnitCode { get; set; }
/// <summary>
/// 考核目标核算组别
/// </summary>
public string TargetUnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string TargetAccountingUnit { get; set; }
}
}
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapper" Version="2.0.123" /> <PackageReference Include="Dapper" Version="2.0.123" />
<PackageReference Include="Dapper.Contrib" Version="2.0.78" /> <PackageReference Include="Dapper.Contrib" Version="2.0.78" />
<PackageReference Include="EPPlus" Version="4.5.3.2" />
<PackageReference Include="Masuit.Tools.Core" Version="2.4.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.10" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.10" />
<PackageReference Include="MySql.Data" Version="8.0.27" /> <PackageReference Include="MySql.Data" Version="8.0.27" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.1" /> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.1" />
...@@ -15,7 +17,6 @@ ...@@ -15,7 +17,6 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="AutoMapper" Version="10.1.1" /> <PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="FluentValidation.AspNetCore" Version="10.3.3" /> <PackageReference Include="FluentValidation.AspNetCore" Version="10.3.3" />
<PackageReference Include="EPPlus" Version="4.5.3.2" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" /> <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.10" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.10" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.10" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.10" />
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
namespace Performance.Repository namespace Performance.Repository
{ {
/// <summary> /// <summary>
/// sys_allot Repository /// sys_allot(per_allot) Repository
/// </summary> /// </summary>
public partial class PerforPerallotRepository : PerforRepository<per_allot> public partial class PerforPerallotRepository : PerforRepository<per_allot>
{ {
...@@ -316,7 +316,11 @@ public IEnumerable<string> GetSecondWorkloadMaps(int hospitalId) ...@@ -316,7 +316,11 @@ public IEnumerable<string> GetSecondWorkloadMaps(int hospitalId)
/// <summary>
/// 考勤视图
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
public IEnumerable<view_attendance> GetAttendance(int allotId) public IEnumerable<view_attendance> GetAttendance(int allotId)
{ {
var connection = context.Database.GetDbConnection(); var connection = context.Database.GetDbConnection();
...@@ -332,6 +336,28 @@ public IEnumerable<view_attendance> GetAttendance(int allotId) ...@@ -332,6 +336,28 @@ public IEnumerable<view_attendance> GetAttendance(int allotId)
throw; throw;
} }
} }
/// <summary>
/// 考核视图
/// </summary>
/// <param name="categoryId"></param>
/// <param name="allotId"></param>
/// <returns></returns>
public IEnumerable<view_assess_issue> GetAssessIssue(int[] categoryId, int allotId)
{
var connection = context.Database.GetDbConnection();
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string query = $@"SELECT * FROM view_assess_issue where AssessId = @categoryId and AllotId = @allotId";
return connection.Query<view_assess_issue>(query, new { categoryId, allotId }, commandTimeout: 60 * 60);
}
catch (Exception)
{
throw;
}
}
/// <summary> /// <summary>
/// 查询人员字典 /// 查询人员字典
/// </summary> /// </summary>
...@@ -428,5 +454,26 @@ public void PerAttendanceIssueBackup(int allotId) ...@@ -428,5 +454,26 @@ public void PerAttendanceIssueBackup(int allotId)
} }
} }
} }
/// <summary>
/// 考核-考核下发备份
/// </summary>
/// <param name="allot"></param>
public void PerAssessIssueSchemeBackup(int allotId)
{
using (var connection = context.Database.GetDbConnection())
{
if (connection.State != ConnectionState.Open) connection.Open();
try
{
connection.Execute("call proc_assess_issue_scheme_backup(@allotId);", new { allotId }, commandTimeout: 60 * 60);
}
catch (Exception)
{
throw;
}
}
}
} }
} }
\ No newline at end of file
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
namespace Performance.Repository.Repository namespace Performance.Repository.Repository
{ {
public partial class PerfoPperAttendanceTypeRepository : PerforRepository<per_attendance_type>
{
/// <summary> /// <summary>
/// per_attendance_type Repository /// per_attendance_type Repository
/// </summary> /// </summary>
public partial class PerfoPperAttendanceTypeRepository : PerforRepository<per_attendance_type>
{
public PerfoPperAttendanceTypeRepository(PerformanceDbContext context) : base(context) public PerfoPperAttendanceTypeRepository(PerformanceDbContext context) : base(context)
{ {
} }
......
...@@ -10,9 +10,9 @@ namespace Performance.Repository ...@@ -10,9 +10,9 @@ namespace Performance.Repository
/// <summary> /// <summary>
/// per_assess_category Repository /// per_assess_category Repository
/// </summary> /// </summary>
public partial class PerforPerCassessCategoryRepository : PerforRepository<per_assess_category> public partial class PerforPerAssessCategoryRepository : PerforRepository<per_assess_category>
{ {
public PerforPerCassessCategoryRepository(PerformanceDbContext context) : base(context) public PerforPerAssessCategoryRepository(PerformanceDbContext context) : base(context)
{ {
} }
} }
......
//-----------------------------------------------------------------------
// <copyright file=" per_assess_issue_scheme.cs">
// * FileName: per_assess_issue_scheme.cs
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_assess_issue_scheme Repository
/// </summary>
public partial class PerforPerAssessIssueSchemeRepository : PerforRepository<per_assess_issue_scheme>
{
public PerforPerAssessIssueSchemeRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" per_assess_scheme_target.cs">
// * FileName: per_assess_scheme_target.cs
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_assess_scheme_target Repository
/// </summary>
public partial class PerforPerAssessSchemeTargetRepository : PerforRepository<per_assess_scheme_target>
{
public PerforPerAssessSchemeTargetRepository(PerformanceDbContext context) : base(context)
{
}
}
}
using AutoMapper; using AutoMapper;
using Masuit.Tools;
using Masuit.Tools.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using OfficeOpenXml; using OfficeOpenXml;
using OfficeOpenXml.Style; using OfficeOpenXml.Style;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.DtoModels.Request; using Performance.DtoModels.Request;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.EntityModels.Other;
using Performance.Infrastructure;
using Performance.Repository; using Performance.Repository;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Threading.Tasks;
namespace Performance.Services namespace Performance.Services
{ {
...@@ -18,48 +25,65 @@ public class AssessNewService : IAutoInjection ...@@ -18,48 +25,65 @@ public class AssessNewService : IAutoInjection
{ {
private readonly IMapper mapper; private readonly IMapper mapper;
private readonly ILogger<AssessNewService> logger; private readonly ILogger<AssessNewService> logger;
private readonly PerforPerCassessCategoryRepository perforPerCassessCategoryRepository; private readonly IWebHostEnvironment evn;
private readonly PerforUserRepository _userRepository;
private readonly PerforPerAssessCategoryRepository perforPerAssessCategoryRepository;
private readonly PerforPerallotRepository perforPerallotRepository; private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforPerAssessSchemeRepository perforPerAssessSchemeRepository; private readonly PerforPerAssessSchemeRepository perforPerAssessSchemeRepository;
private readonly PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository; private readonly PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository;
private readonly PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository;
private readonly PerforCofaccountingRepository cofaccountingRepository;
private readonly PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository;
public AssessNewService( public AssessNewService(
IMapper mapper, IMapper mapper,
ILogger<AssessNewService> logger, ILogger<AssessNewService> logger,
PerforPerCassessCategoryRepository perforPerCassessCategoryRepository, IWebHostEnvironment evn,
PerforPerAssessCategoryRepository perforPerAssessCategoryRepository,
PerforPerallotRepository perforPerallotRepository, PerforPerallotRepository perforPerallotRepository,
PerforPerAssessSchemeRepository perforPerAssessSchemeRepository, PerforPerAssessSchemeRepository perforPerAssessSchemeRepository,
PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository,
PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository,
PerforCofaccountingRepository cofaccountingRepository,
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforUserRepository userRepository
) )
{ {
this.mapper = mapper; this.mapper = mapper;
this.logger = logger; this.logger = logger;
this.perforPerCassessCategoryRepository = perforPerCassessCategoryRepository; this.evn = evn;
this.perforPerAssessCategoryRepository = perforPerAssessCategoryRepository;
this.perforPerallotRepository = perforPerallotRepository; this.perforPerallotRepository = perforPerallotRepository;
this.perforPerAssessSchemeRepository = perforPerAssessSchemeRepository; this.perforPerAssessSchemeRepository = perforPerAssessSchemeRepository;
this.perforPerAssessSchemeItemsRepository = perforPerAssessSchemeItemsRepository; this.perforPerAssessSchemeItemsRepository = perforPerAssessSchemeItemsRepository;
this.perforPerAssessSchemeTargetRepository = perforPerAssessSchemeTargetRepository;
this.cofaccountingRepository = cofaccountingRepository;
this.perforPerAssessIssueSchemeRepository = perforPerAssessIssueSchemeRepository;
_userRepository = userRepository;
} }
#region 考核类别 #region 考核类别
//考核类别列表
public ApiResponse<List<per_assess_category>> CategoryList(int allotId) public ApiResponse<List<per_assess_category>> CategoryList(int allotId)
{ {
var result = perforPerCassessCategoryRepository.GetEntities(t => t.AllotId == allotId).ToList(); var result = perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allotId).OrderByDescending(w => w.UpdateTime).ToList();
if (result != null) if (result != null)
return new ApiResponse<List<per_assess_category>>(ResponseType.OK, result); return new ApiResponse<List<per_assess_category>>(ResponseType.OK, result);
else else
{ {
return new ApiResponse<List<per_assess_category>>(ResponseType.Fail); return new ApiResponse<List<per_assess_category>>(ResponseType.NotFound, "暂无数据");
} }
} }
//考核类别新增
public ApiResponse<AddAssessCategoryRequest> CategoryAdd(AddAssessCategoryRequest request, int userid) public ApiResponse<AddAssessCategoryRequest> CategoryAdd(AddAssessCategoryRequest request, int userid)
{ {
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId); var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null) if (allot == null)
throw new PerformanceException("当前绩效记录不存在"); throw new PerformanceException("当前绩效记录不存在");
var categoryData = perforPerCassessCategoryRepository.GetEntities(); var categoryData = perforPerAssessCategoryRepository.GetEntities();
var temp = categoryData.FirstOrDefault(w => w.AllotId == request.AllotId && w.AssessName == request.Category); var temp = categoryData.FirstOrDefault(w => w.AllotId == request.AllotId && w.AssessName == request.Category);
if (temp != null) if (temp != null)
throw new PerformanceException("当前考核类别已存在"); throw new PerformanceException("当前考核类别已存在");
...@@ -86,53 +110,199 @@ public ApiResponse<AddAssessCategoryRequest> CategoryAdd(AddAssessCategoryReques ...@@ -86,53 +110,199 @@ public ApiResponse<AddAssessCategoryRequest> CategoryAdd(AddAssessCategoryReques
UpdateBy = userid, UpdateBy = userid,
UpdateTime = DateTime.Now, UpdateTime = DateTime.Now,
}; };
if (perforPerCassessCategoryRepository.Add(per_assess_category)) return new ApiResponse<AddAssessCategoryRequest>(ResponseType.OK, "添加成功"); if (perforPerAssessCategoryRepository.Add(per_assess_category)) return new ApiResponse<AddAssessCategoryRequest>(ResponseType.OK, "添加成功");
else return new ApiResponse<AddAssessCategoryRequest>(ResponseType.Fail, "添加失败"); else return new ApiResponse<AddAssessCategoryRequest>(ResponseType.Fail, "添加失败");
} }
// 考核类别修改
public ApiResponse<UpdateAssessCategoryRequest> CategoryUpdate(UpdateAssessCategoryRequest request, int userid) public ApiResponse<UpdateAssessCategoryRequest> CategoryUpdate(UpdateAssessCategoryRequest request, int userid)
{ {
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId); var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null) if (allot == null)
throw new PerformanceException("当前绩效记录不存在"); throw new PerformanceException("当前绩效记录不存在");
var any = perforPerCassessCategoryRepository.GetEntity(w => w.Id == request.CategoryId); var any = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
any.AllotId = request.AllotId; any.AllotId = request.AllotId;
any.AssessName = request.Category; any.AssessName = request.Category;
any.UpdateBy = userid; any.UpdateBy = userid;
any.UpdateTime = DateTime.Now; any.UpdateTime = DateTime.Now;
if (perforPerCassessCategoryRepository.Update(any)) return new ApiResponse<UpdateAssessCategoryRequest>(ResponseType.OK, "修改成功"); if (perforPerAssessCategoryRepository.Update(any)) return new ApiResponse<UpdateAssessCategoryRequest>(ResponseType.OK, "修改成功");
else return new ApiResponse<UpdateAssessCategoryRequest>(ResponseType.Fail, "修改失败"); else return new ApiResponse<UpdateAssessCategoryRequest>(ResponseType.Fail, "修改失败");
} }
//考核类别删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)没写
public ApiResponse CategoryDelete(BatchAssessCategoryRequest request) public ApiResponse CategoryDelete(BatchAssessCategoryRequest request)
{ {
var issuedates = perforPerCassessCategoryRepository.GetEntities(w => request.CategoryId.Contains(w.Id)).ToList(); var temp = perforPerAssessSchemeRepository.GetEntity(w => request.CategoryId.Contains(w.AssessId));
if (perforPerCassessCategoryRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功"); if (temp != null || temp?.Id > 0)
throw new PerformanceException("请先删除类别下的方案");
var any = perforPerAssessCategoryRepository.GetEntities(w => request.CategoryId.Contains(w.Id)).ToList();
if (perforPerAssessCategoryRepository.RemoveRange(any.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
else return new ApiResponse(ResponseType.Fail, "删除失败"); else return new ApiResponse(ResponseType.Fail, "删除失败");
} }
public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(BatchAssessCategoryRequest request)
{
if (request.AllotId <= 0)
throw new PerformanceException("绩效记录不存在");
var issueDatas = perforPerallotRepository.GetAssessIssue(request.CategoryId, request.AllotId);
var issueSchemeDatas = perforPerAssessIssueSchemeRepository.GetEntities(w => request.CategoryId.Contains(w.AssessId));
var statisticdates = new List<PerAssessmentStatisticsResponse>();
Func<per_assess_issue_scheme, view_assess_issue, bool> func = (schemes, issues) =>
{
var result =
schemes.AllotId == issues.AllotId &&
schemes.AssessId == issues.AssessId &&
schemes.AssessCode == issues.AssessCode &&
schemes.AssessName == issues.AssessName &&
schemes.SchemeCode == issues.SchemeCode &&
schemes.SchemeName == issues.SchemeName &&
schemes.ItemCode == issues.ItemCode &&
schemes.ItemName1 == issues.ItemName1 &&
schemes.ItemName2 == issues.ItemName2 &&
schemes.AssessScore == issues.AssessScore &&
schemes.AssessNorm == issues.AssessNorm &&
schemes.UnitCode == issues.UnitCode &&
schemes.UnitType == issues.UnitType &&
schemes.AccountingUnit == issues.AccountingUnit &&
schemes.TargetUnitCode == issues.TargetUnitCode &&
schemes.TargetUnitType == issues.UnitType &&
schemes.TargetAccountingUnit == issues.AccountingUnit;
return result;
};
statisticdates = issueDatas.Select(issue =>
{
var issueData = issueDatas.SingleOrDefault(w => w.ItemCode == issue.ItemCode && w.TargetUnitType == issue.TargetUnitType && w.TargetAccountingUnit == issue.TargetAccountingUnit);
var issueschemeData = issueSchemeDatas.SingleOrDefault(w => w.ItemCode == issue.ItemCode && w.TargetUnitType == issue.TargetUnitType && w.TargetAccountingUnit == issue.TargetAccountingUnit);
if (issueschemeData == null)
return new PerAssessmentStatisticsResponse(issueData);
if (issueschemeData != null && issueData != null)
{
if (func(issueschemeData, issueData)) return null;
return new PerAssessmentStatisticsResponse(issueData)
{
Id = issueschemeData.Id,
OperationType = (int)Attendance.OperationType.修改,
Describe = "修改数据",
};
}
return null;
}).ToList();
foreach (var scheme in issueSchemeDatas)
{
var issueData = issueDatas.SingleOrDefault(w => w.ItemCode == scheme.ItemCode && w.TargetUnitType == scheme.TargetUnitType && w.TargetAccountingUnit == scheme.TargetAccountingUnit);
var issueschemeData = issueSchemeDatas.SingleOrDefault(w => w.ItemCode == scheme.ItemCode && w.TargetUnitType == scheme.TargetUnitType && w.TargetAccountingUnit == scheme.TargetAccountingUnit);
if (issueData == null)
{
statisticdates.Add(new PerAssessmentStatisticsResponse(issueschemeData));
}
}
statisticdates = statisticdates.Where(r => r != null).ToList();
return new ApiResponse<List<PerAssessmentStatisticsResponse>>(ResponseType.OK, statisticdates);
}
//考核下发(把当前考核类别下所有方案下发)
public ApiResponse CategoryIssueConfirm(BatchAssessCategoryRequest request, int userid)
{
var categoryIssueCheck = CategoryIssueCheck(request).Data;
var schemedatas = perforPerAssessIssueSchemeRepository.GetEntities(w => request.CategoryId.Contains(w.AssessId));
var insertIssueChecks = categoryIssueCheck.Where(w => w.OperationType == (int)Attendance.OperationType.新增).ToList();
var updateIssueChecks = categoryIssueCheck.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList();
var deleteIssueChecks = categoryIssueCheck.Where(w => w.OperationType == (int)Attendance.OperationType.删除).Select(w => w.Id).ToList();
if (insertIssueChecks.Any())
{
var inserts = insertIssueChecks.Select(item =>
{
return new per_assess_issue_scheme()
{
AllotId = item.AllotId,
AssessId = item.AssessId,
AssessCode = item.AssessCode,
AssessName = item.AssessName,
SchemeId = item.SchemeId,
SchemeCode = item.SchemeCode,
SchemeName = item.SchemeName,
ItemId = item.ItemId,
ItemCode = item.ItemCode,
ItemName1 = item.ItemName1,
ItemName2 = item.ItemName2,
AssessScore = item.AssessScore,
AssessNorm = item.AssessNorm,
UnitCode = item.UnitCode,
UnitType = item.UnitType,
Score = 0,
ScoreRemark = "",
AccountingUnit = item.AccountingUnit,
TargetUnitCode = item.TargetUnitCode,
TargetUnitType = item.TargetUnitType,
TargetAccountingUnit = item.TargetAccountingUnit,
State = (int)Assess.AssessState.未提交,
CreateBy = userid,
CreateTime = DateTime.Now,
UpdateBy = userid,
UpdateTime = DateTime.Now,
};
}).ToList();
perforPerAssessIssueSchemeRepository.AddRange(inserts.ToArray());
}
if (updateIssueChecks.Any())
{
List<per_assess_issue_scheme> updateIssuedates = new List<per_assess_issue_scheme>();
foreach (var item in updateIssueChecks)
{
var data = schemedatas.FirstOrDefault(w => w.Id == item.Id);
if (data == null) continue;
data.AllotId = item.AllotId;
data.AssessId = item.AssessId;
data.AssessCode = item.AssessCode;
data.AssessName = item.AssessName;
data.SchemeId = item.SchemeId;
data.SchemeCode = item.SchemeCode;
data.SchemeName = item.SchemeName;
data.ItemId = item.ItemId;
data.ItemCode = item.ItemCode;
data.ItemName1 = item.ItemName1;
data.ItemName2 = item.ItemName2;
data.AssessScore = item.AssessScore;
data.AssessNorm = item.AssessNorm;
data.UnitCode = item.UnitCode;
data.UnitType = item.UnitType;
data.AccountingUnit = item.AccountingUnit;
data.TargetUnitCode = item.TargetUnitCode;
data.TargetUnitType = item.TargetUnitType;
data.TargetAccountingUnit = item.TargetAccountingUnit;
data.State = (int)Assess.AssessState.未提交;
data.UpdateBy = userid;
data.UpdateTime = DateTime.Now;
data.SubmitBy = null;
data.SubmitTime = null;
data.AuditBy = null;
data.AuditTime = null;
updateIssuedates.Add(data);
}
perforPerAssessIssueSchemeRepository.UpdateRange(updateIssuedates.ToArray());
}
if (deleteIssueChecks.Any())
{
var daletes = schemedatas.Where(w => deleteIssueChecks.Contains(w.Id)).ToList();
perforPerAssessIssueSchemeRepository.RemoveRange(daletes.ToArray());
}
perforPerallotRepository.PerAssessIssueSchemeBackup(request.AllotId);
return new ApiResponse(ResponseType.OK, "下发成功");
}
#endregion #endregion
#region 考核方案 #region 考核方案
//考核方案列表
public ApiResponse<List<AssessSchemeDataResponse>> SchemeList(int categoryId) public ApiResponse<List<AssessSchemeDataResponse>> SchemeList(int categoryId)
{ {
var scheme = perforPerAssessSchemeRepository.GetEntities(t => t.AssessId == categoryId).ToList(); var scheme = perforPerAssessSchemeRepository.GetEntities(t => t.AssessId == categoryId).ToList();
var category = perforPerCassessCategoryRepository.GetEntities().FirstOrDefault(t => t.Id == categoryId); var category = perforPerAssessCategoryRepository.GetEntities().FirstOrDefault(t => t.Id == categoryId);
var result = scheme.Select(w => new AssessSchemeDataResponse var result = mapper.Map<List<AssessSchemeDataResponse>>(scheme);
{ result.ForEach(t => t.AssessName = category.AssessName);
Id = w.Id, result = result.OrderByDescending(w => w.UpdateTime).ToList();
SchemeCode = w.SchemeCode,
SchemeName = w.SchemeName,
AssessName = category.AssessName
}).ToList();
return new ApiResponse<List<AssessSchemeDataResponse>>(ResponseType.OK, result); return new ApiResponse<List<AssessSchemeDataResponse>>(ResponseType.OK, result);
} }
//考核方案新增
public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest request, int userid) public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest request, int userid)
{ {
var categorydata = perforPerCassessCategoryRepository.GetEntity(w => w.Id == request.CategoryId); var categorydata = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
if (categorydata == null) if (categorydata == null)
throw new PerformanceException("当前考核类别不存在"); throw new PerformanceException("当前考核类别不存在");
var schemeData = perforPerAssessSchemeRepository.GetEntities(); var schemeData = perforPerAssessSchemeRepository.GetEntities();
...@@ -166,10 +336,9 @@ public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest requ ...@@ -166,10 +336,9 @@ public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest requ
if (perforPerAssessSchemeRepository.Add(per_assess_scheme)) return new ApiResponse<AddAssessSchemeRequest>(ResponseType.OK, "添加成功"); if (perforPerAssessSchemeRepository.Add(per_assess_scheme)) return new ApiResponse<AddAssessSchemeRequest>(ResponseType.OK, "添加成功");
else return new ApiResponse<AddAssessSchemeRequest>(ResponseType.Fail, "添加失败"); else return new ApiResponse<AddAssessSchemeRequest>(ResponseType.Fail, "添加失败");
} }
// 考核方案修改
public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeRequest request, int userid) public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeRequest request, int userid)
{ {
var categorydata = perforPerCassessCategoryRepository.GetEntity(w => w.Id == request.CategoryId); var categorydata = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
if (categorydata == null) if (categorydata == null)
throw new PerformanceException("当前考核类别不存在"); throw new PerformanceException("当前考核类别不存在");
var any = perforPerAssessSchemeRepository.GetEntity(w => w.Id == request.SchemeId); var any = perforPerAssessSchemeRepository.GetEntity(w => w.Id == request.SchemeId);
...@@ -180,19 +349,19 @@ public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeReq ...@@ -180,19 +349,19 @@ public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeReq
if (perforPerAssessSchemeRepository.Update(any)) return new ApiResponse<UpdateAssessSchemeRequest>(ResponseType.OK, "修改成功"); if (perforPerAssessSchemeRepository.Update(any)) return new ApiResponse<UpdateAssessSchemeRequest>(ResponseType.OK, "修改成功");
else return new ApiResponse<UpdateAssessSchemeRequest>(ResponseType.Fail, "修改失败"); else return new ApiResponse<UpdateAssessSchemeRequest>(ResponseType.Fail, "修改失败");
} }
//考核方案删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)没写 //考核方案删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)
public ApiResponse SchemeDelete(BatchAssessSchemeRequest request) public ApiResponse SchemeDelete(BatchAssessSchemeRequest request)
{ {
var temp = perforPerAssessSchemeItemsRepository.GetEntity(w => request.SchemeId.Contains(w.SchemeId));
if (temp != null || temp?.Id > 0)
throw new PerformanceException("请先删除方案下的指标");
var issuedates = perforPerAssessSchemeRepository.GetEntities(w => request.SchemeId.Contains(w.Id)).ToList(); var issuedates = perforPerAssessSchemeRepository.GetEntities(w => request.SchemeId.Contains(w.Id)).ToList();
if (perforPerAssessSchemeRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功"); if (perforPerAssessSchemeRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
else return new ApiResponse(ResponseType.Fail, "删除失败"); else return new ApiResponse(ResponseType.Fail, "删除失败");
} }
public string ExcelDownload(List<Dictionary<string, object>> rows, string name, int categoryId, List<ExcelDownloadHeads> headList) public string ExcelDownload(List<Dictionary<string, object>> rows, string name, List<ExcelDownloadHeads> headList)
{ {
var categorydata = perforPerCassessCategoryRepository.GetEntity(w => w.Id == categoryId);
var perAllot = perforPerallotRepository.GetEntity(t => t.ID == categorydata.AllotId);
string title = $"{perAllot.Year}{perAllot.Month}{name}";
var data = new List<Dictionary<string, object>>(); var data = new List<Dictionary<string, object>>();
foreach (var obj in rows) foreach (var obj in rows)
{ {
...@@ -214,11 +383,9 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name, ...@@ -214,11 +383,9 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
using (ExcelPackage package = new ExcelPackage(fs)) using (ExcelPackage package = new ExcelPackage(fs))
{ {
var worksheet = package.Workbook.Worksheets.Add(name); var worksheet = package.Workbook.Worksheets.Add(name);
worksheet.SetValue(1, 1, title);
for (int col = 0; col < headList.Count; col++) for (int col = 0; col < headList.Count; col++)
{ {
worksheet.SetValue(2, col + 1, headList[col].Alias); worksheet.SetValue(1, col + 1, headList[col].Alias);
} }
for (int col = 0; col < headList.Count; col++) for (int col = 0; col < headList.Count; col++)
{ {
...@@ -228,10 +395,9 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name, ...@@ -228,10 +395,9 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
var low = temp.Keys.ToString().ToLower(); var low = temp.Keys.ToString().ToLower();
var value = temp[headList[col].Name.ToLower()]; var value = temp[headList[col].Name.ToLower()];
worksheet.Cells[row + 3, col + 1].Value = value; worksheet.Cells[row + 2, col + 1].Value = value;
} }
} }
#region 样式设置 #region 样式设置
for (int row = worksheet.Dimension.Start.Row; row <= worksheet.Dimension.End.Row; row++) for (int row = worksheet.Dimension.Start.Row; row <= worksheet.Dimension.End.Row; row++)
{ {
...@@ -243,12 +409,8 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name, ...@@ -243,12 +409,8 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
worksheet.Cells[row, col].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center; worksheet.Cells[row, col].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
} }
} }
worksheet.Cells[1, 1, 1, headList.Count].Merge = true;
worksheet.Cells[1, 1, 1, headList.Count].Style.Font.Bold = true; worksheet.Cells[1, 1, 1, headList.Count].Style.Font.Bold = true;
worksheet.Cells[1, 1, 1, headList.Count].Style.Font.Size = 16; worksheet.View.FreezePanes(1, 1);
worksheet.Row(1).Height = 24;
worksheet.Cells[2, 1, 2, headList.Count].Style.Font.Bold = true;
worksheet.View.FreezePanes(3, 1);
worksheet.Cells.AutoFitColumns(); worksheet.Cells.AutoFitColumns();
for (int col = worksheet.Dimension.Start.Column; col <= worksheet.Dimension.End.Column; col++) for (int col = worksheet.Dimension.Start.Column; col <= worksheet.Dimension.End.Column; col++)
{ {
...@@ -259,35 +421,37 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name, ...@@ -259,35 +421,37 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
} }
return filepath; return filepath;
} }
#endregion #endregion
#region 考核指标 #region 考核指标
// 考核指标项列表 // 考核指标项列表
public ApiResponse<List<per_assess_scheme_items>> SchemeItemsList(int schemeId) public PagedList<per_assess_scheme_items> SchemeItemsList(QuerySchemeItemsList query)
{ {
var result = perforPerAssessSchemeItemsRepository.GetEntities(t => t.SchemeId == schemeId).ToList(); var result = perforPerAssessSchemeItemsRepository.GetEntities(t => t.SchemeId == query.SchemeId && t.AllotId == query.AllotId).OrderByDescending(w => w.UpdateTime).ToList();
if (result != null) result = result.Where(w => (string.IsNullOrEmpty(query.UnitType) || w.UnitType.Contains(query.UnitType))
return new ApiResponse<List<per_assess_scheme_items>>(ResponseType.OK, result); && (string.IsNullOrEmpty(query.AccountingUnit) || w.AccountingUnit.Contains(query.AccountingUnit))
else && (string.IsNullOrEmpty(query.ItemName2) || w.ItemName2.Contains(query.ItemName2))).ToList();
{ var totalItems = result.FirstOrDefault() == null ? 0 : result.Count();
return new ApiResponse<List<per_assess_scheme_items>>(ResponseType.Fail); if (query.PageSize <= 0)
query.PageSize = totalItems;
} var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize);
return new PagedList<per_assess_scheme_items>(result, totalItems, query.Page, query.PageSize);
} }
// 考核指标项新增 // 考核指标项新增
public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeItemsRequest request, int userid) public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeItemsRequest request, int userid)
{ {
var scheme = perforPerAssessSchemeRepository.GetEntities().FirstOrDefault(w => w.Id == request.SchemeId); var cofAccounting = cofaccountingRepository.GetEntity(w => w.AllotId == request.AllotId && w.AccountingUnit == request.AccountingUnit && w.UnitType == request.UnitType);
if (cofAccounting == null)
throw new PerformanceException("当前的核算组别或者核算单元错误");
var scheme = perforPerAssessSchemeRepository.GetEntities().FirstOrDefault(w => w.Id == request.SchemeId && w.AllotId == request.AllotId);
if (scheme == null)
throw new PerformanceException("当前考核方案有误,请刷新!");
var categoryData = perforPerAssessSchemeItemsRepository.GetEntities(); var categoryData = perforPerAssessSchemeItemsRepository.GetEntities();
//var temp = categoryData.FirstOrDefault(w => w.ItemName1 == request.ItemName1 && w.ItemName2 == request.ItemName2); var temp = categoryData.FirstOrDefault(w => w.SchemeId == request.SchemeId && w.ItemName2 == request.ItemName2);
//if (temp != null) if (temp != null)
// throw new PerformanceException("当前指标已存在"); throw new PerformanceException("当前指标已存在");
int codeMax = 0; int codeMax = 0;
if (categoryData.Select(w=>w.ItemCode).Any()) if (categoryData.Select(w => w.ItemCode).Any())
codeMax = categoryData.Max(w => int.Parse(w.ItemCode.Substring(1))); codeMax = categoryData.Max(w => int.Parse(w.ItemCode.Substring(1)));
var code = ""; var code = "";
if (codeMax <= 9999) if (codeMax <= 9999)
{ {
...@@ -298,9 +462,10 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt ...@@ -298,9 +462,10 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt
code = "A" + (codeMax + 1).ToString(); code = "A" + (codeMax + 1).ToString();
} }
var data = mapper.Map<per_assess_scheme_items>(request); var data = mapper.Map<per_assess_scheme_items>(request);
data.AllotId = scheme.AllotId; data.AllotId = request.AllotId;
data.AssessId = scheme.AssessId; data.AssessId = scheme.AssessId;
data.ItemCode = code; data.ItemCode = code;
data.UnitCode = cofAccounting.Code;
data.CreateBy = userid; data.CreateBy = userid;
data.CreateTime = DateTime.Now; data.CreateTime = DateTime.Now;
data.UpdateBy = userid; data.UpdateBy = userid;
...@@ -311,49 +476,565 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt ...@@ -311,49 +476,565 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt
// 考核指标项修改 // 考核指标项修改
public ApiResponse<UpdateAssessSchemeItemsRequest> SchemeItemsUpdate(UpdateAssessSchemeItemsRequest request, int userid) public ApiResponse<UpdateAssessSchemeItemsRequest> SchemeItemsUpdate(UpdateAssessSchemeItemsRequest request, int userid)
{ {
var any = perforPerAssessSchemeItemsRepository.GetEntity(w => w.Id == request.SchemeItemsId); var cofAccounting = cofaccountingRepository.GetEntity(w => w.AllotId == request.AllotId && w.AccountingUnit == request.AccountingUnit && w.UnitType == request.UnitType);
any = mapper.Map<per_assess_scheme_items>(request); if (cofAccounting == null)
throw new PerformanceException("当前的核算组别或者核算单元错误");
var any = perforPerAssessSchemeItemsRepository.GetEntity(w => w.AllotId == request.AllotId && w.Id == request.SchemeItemsId);
any.ItemName1 = request.ItemName1;
any.ItemName2 = request.ItemName2;
any.AssessScore = request.AssessScore;
any.AssessNorm = request.AssessNorm;
any.UnitCode = cofAccounting.Code;
any.UnitType = request.UnitType;
any.AccountingUnit = request.AccountingUnit;
any.UpdateBy = userid; any.UpdateBy = userid;
any.UpdateTime = DateTime.Now; any.UpdateTime = DateTime.Now;
if (perforPerAssessSchemeItemsRepository.Update(any)) return new ApiResponse<UpdateAssessSchemeItemsRequest>(ResponseType.OK, "修改成功"); if (perforPerAssessSchemeItemsRepository.Update(any)) return new ApiResponse<UpdateAssessSchemeItemsRequest>(ResponseType.OK, "修改成功");
else return new ApiResponse<UpdateAssessSchemeItemsRequest>(ResponseType.Fail, "修改失败"); else return new ApiResponse<UpdateAssessSchemeItemsRequest>(ResponseType.Fail, "修改失败");
} }
// 考核指标项删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)没写 // 考核指标项删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)
public ApiResponse SchemeItemsDelete(BatchAssessSchemeItemsRequest request) public ApiResponse SchemeItemsDelete(BatchAssessSchemeItemsRequest request)
{ {
var issuedates = perforPerAssessSchemeItemsRepository.GetEntities(w => request.SchemeItemsId.Contains(w.Id)).ToList(); var issuedates = perforPerAssessSchemeItemsRepository.GetEntities(w => request.SchemeItemsId.Contains(w.Id)).ToList();
if (perforPerAssessSchemeItemsRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功"); if (perforPerAssessSchemeItemsRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
else return new ApiResponse(ResponseType.Fail, "删除失败"); else return new ApiResponse(ResponseType.Fail, "删除失败");
} }
//考核对象核算单元列表清单
public ApiResponse<List<AssessSchemeTargetResponse>> SchemeItemsTargetList(QuerySchemeItemsTargetList query)
{
//查询全部的方案
var schemes = perforPerAssessSchemeRepository.GetEntities(w => w.AllotId == query.AllotId);
//查询方案的考核对象
var schemeTargets = perforPerAssessSchemeTargetRepository.GetEntities(w => w.AllotId == query.AllotId);
//查询当前方案的考核对象
var currentTargers = schemeTargets.Where(w => w.SchemeId == query.SchemeId).ToList();
//查询其他方案的考核对象
var otherTargers = schemeTargets.Where(w => w.SchemeId != query.SchemeId).ToList();
//查询全部的核算单元
var cofaccounting = cofaccountingRepository.GetEntities(w => w.AllotId == query.AllotId);
var stateOrders = new int[] { (int)Assess.SchemeItemsTarget.未设置方案, (int)Assess.SchemeItemsTarget.已设置其他方案, (int)Assess.SchemeItemsTarget.已设置方案 };
var result = new List<AssessSchemeTargetResponse>();
foreach (var cof in cofaccounting)
{
var currentScheme = currentTargers.Where(w => w.AccountingUnit == cof.AccountingUnit && w.UnitType == cof.UnitType).FirstOrDefault();
var otherScheme = otherTargers.Where(w => w.AccountingUnit == cof.AccountingUnit && w.UnitType == cof.UnitType).FirstOrDefault();
var data = mapper.Map<AssessSchemeTargetResponse>(cof);
if (currentScheme?.Id > 0)
{
data.TargetId = currentScheme.Id;
data.CreateBy = currentScheme.CreateBy;
data.CreateTime = currentScheme.CreateTime;
data.UpdateBy = currentScheme.UpdateBy;
data.UpdateTime = currentScheme.UpdateTime;
data.SchemeName = schemes.Where(w => w.Id == currentScheme.SchemeId).FirstOrDefault().SchemeName;
data.SchemeState = (int)Assess.SchemeItemsTarget.已设置方案;
}
else if (otherScheme?.Id > 0)
{
data.SchemeName = schemes.Where(w => w.Id == otherScheme.SchemeId).FirstOrDefault().SchemeName;
data.SchemeState = (int)Assess.SchemeItemsTarget.已设置其他方案;
}
else
{
data.SchemeName = "无";
data.SchemeState = (int)Assess.SchemeItemsTarget.未设置方案;
}
result.Add(data);
}
if ((int)query.SchemeItemsTarget == (int)Assess.SchemeItemsTarget.未设置方案)
result = result.Where(w => w.SchemeState == (int)query.SchemeItemsTarget).ToList();
if ((int)query.SchemeItemsTarget == (int)Assess.SchemeItemsTarget.已设置方案)
result = result.Where(w => w.SchemeState != (int)Assess.SchemeItemsTarget.未设置方案).OrderByDescending(w => w.UpdateTime).ToList();
result = result.OrderBy(w => Array.IndexOf(stateOrders, w.SchemeState)).ToList();
return new ApiResponse<List<AssessSchemeTargetResponse>>(ResponseType.OK, result);
}
// 考核对象核算单元保存
public ApiResponse SchemeItemsTargetSave(TargetAssessSchemeItemsRequest request, int userid)
{
if (!request.SchemeTargetResponse.Any())
throw new PerformanceException("当前没有需要添加或者修改的内容");
var schemes = perforPerAssessSchemeRepository.GetEntity(w => w.Id == request.SchemeId);
foreach (var item in request.SchemeTargetResponse)
{
var any = perforPerAssessSchemeTargetRepository.GetEntity(w => w.Id == item.TargetId);
if (any != null || any?.Id > 0)
{
any.AllotId = schemes.AllotId;
any.AssessId = schemes.AssessId;
any.SchemeId = request.SchemeId;
any.UpdateBy = userid;
any.UpdateTime = DateTime.Now;
perforPerAssessSchemeTargetRepository.Update(any);
}
else
{
var data = mapper.Map<per_assess_scheme_target>(item);
data.AllotId = schemes.AllotId;
data.AssessId = schemes.AssessId;
data.SchemeId = request.SchemeId;
data.UnitCode = item.Code;
data.CreateBy = userid;
data.CreateTime = DateTime.Now;
data.UpdateBy = userid;
data.UpdateTime = DateTime.Now;
perforPerAssessSchemeTargetRepository.Add(data);
}
}
return new ApiResponse(ResponseType.OK);
}
public ApiResponse SchemeItemsTargetEdit(TargetSchemeItemsTargetEdit edit, int userid)
{
var cofAccounting = cofaccountingRepository.GetEntity(w => w.AllotId == edit.AllotId && w.UnitType == edit.UnitType && w.AccountingUnit == edit.AccountingUnit);
if (cofAccounting == null)
throw new PerformanceException("当前的核算组别或者核算单元错误");
var schemeTarget = perforPerAssessSchemeTargetRepository.GetEntity(w => w.Id == edit.TargetId && w.AllotId == edit.AllotId);
if (schemeTarget == null)
throw new PerformanceException("考核对象未找到,请刷新后重试!");
schemeTarget.UnitCode = cofAccounting.Code;
schemeTarget.UnitType = cofAccounting.UnitType;
schemeTarget.AccountingUnit = edit.AccountingUnit;
schemeTarget.UpdateBy = userid;
schemeTarget.UpdateTime = DateTime.Now;
if (perforPerAssessSchemeTargetRepository.Update(schemeTarget)) return new ApiResponse(ResponseType.OK, "修改成功");
else return new ApiResponse(ResponseType.Fail, "修改失败");
}
public ApiResponse SchemeItemsTargetDelete(TargetSchemeItemsTargetDelete delete)
{
var issuedates = perforPerAssessSchemeTargetRepository.GetEntities(w => delete.TargetId.Contains(w.Id)).ToList();
if (perforPerAssessSchemeTargetRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
else return new ApiResponse(ResponseType.Fail, "删除失败");
}
public ApiResponse SchemeItemsUpload(int schemeId, int allotId, IFormCollection form, int userid)
{
var file = ((FormFileCollection)form.Files).FirstOrDefault();
if (!file.FileName.EndsWith(".xlsx"))
throw new PerformanceException("请检查是否为xlsx格式");
//查询全部的核算单元
var cofaccountingdatas = cofaccountingRepository.GetEntities(w => w.AllotId == allotId);
//查询指标
var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntities(t => t.SchemeId == schemeId);
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotId);
if (allot == null)
return new ApiResponse(ResponseType.Fail, "allotid不存在");
var name = FileHelper.GetFileNameNoExtension(file.FileName) + DateTime.Now.ToString("yyyyMMddHHmmssfff");
var ext = FileHelper.GetExtension(file.FileName);
var dpath = Path.Combine(evn.ContentRootPath, "Files", $"{allot.HospitalId}", $"{allot.Year}{allot.Month.ToString().PadLeft(2, '0')}");
FileHelper.CreateDirectory(dpath);
var path = Path.Combine(dpath, $"{name}{ext}");
using (var stream = file.OpenReadStream())
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
if (!FileHelper.CreateFile(path, bytes))
return new ApiResponse(ResponseType.Fail, $"{file.FileName}上传失败");
}
var dt = Read(path);
var datas = ToListDictionary(dt);
Tables error = new Tables("行", "指标编码", "一级指标名称", "二级指标名称", "考核分值", "考核标准", "核算组别", "考核负责部门", "原因");
var upload = new List<AssessSchemeItemsUploadResponse>();
foreach (var item in datas.Select((value, i) => new { value, index = $"第{i + 1}行" }))
{
if (string.IsNullOrEmpty(string.Join("", item.value.Values))) continue;
var eItemCode = item.value.GetOrAdd("指标编码", "")?.ToString() ?? "";
var eItemName1 = item.value.GetOrAdd("一级指标名称", "")?.ToString() ?? "";
var eItemName2 = item.value.GetOrAdd("二级指标名称", "")?.ToString() ?? "";
var eAssessScore = item.value.GetOrAdd("考核分值", "")?.ToString() ?? "";
var eAssessNorm = item.value.GetOrAdd("考核标准", "")?.ToString() ?? "";
var eUnitType = item.value.GetOrAdd("核算组别", "")?.ToString() ?? "";
var eAccountingUnit = item.value.GetOrAdd("考核负责部门", "")?.ToString() ?? "";
eAssessScore = String.IsNullOrEmpty(eAssessScore) ? "0" : eAssessScore;
error.AddIf(string.IsNullOrEmpty(eItemName1), item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "一级指标名称空值无效,请检查后重试!");
error.AddIf(string.IsNullOrEmpty(eItemName2), item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "二级指标名称空值无效,请检查后重试!");
error.AddIf(string.IsNullOrEmpty(eAssessNorm), item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核标准空值无效,请检查后重试!");
error.AddIf(string.IsNullOrEmpty(eUnitType), item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "核算组别空值无效,请检查后重试!");
error.AddIf(string.IsNullOrEmpty(eAccountingUnit), item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核负责部门空值无效,请检查后重试!");
error.AddIf(!int.TryParse(eAssessScore, out int eAScore), item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核分值填写无效,请检查后重试!");
error.AddIf(eAScore == 0, item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核分值不能为0,请检查后重试!");
var cofaccountingdata = cofaccountingdatas.FirstOrDefault(w => w.AccountingUnit == eAccountingUnit && w.UnitType == eUnitType);
error.AddIf(cofaccountingdata == null, item.index, eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "未找到考核负责部门,请检查后重试!");
var itemsData = itemsDatas.FirstOrDefault(w => w.ItemCode == eItemCode);
var data = new AssessSchemeItemsUploadResponse();
if (itemsData == null || itemsData?.Id < 0)
{
data = new AssessSchemeItemsUploadResponse()
{
ItemName1 = eItemName1,
ItemName2 = eItemName2,
AssessScore = eAScore,
AssessNorm = eAssessNorm,
UnitCode = cofaccountingdatas.FirstOrDefault(w => w.AccountingUnit == eAccountingUnit && w.UnitType == eUnitType).Code,
UnitType = eUnitType,
AccountingUnit = eAccountingUnit,
OperationType = (int)Attendance.OperationType.新增
};
}
else
{
data = new AssessSchemeItemsUploadResponse()
{
ItemCode = itemsData.ItemCode,
ItemName1 = eItemName1,
ItemName2 = eItemName2,
AssessScore = eAScore,
AssessNorm = eAssessNorm,
UnitCode = cofaccountingdatas.FirstOrDefault(w => w.AccountingUnit == eAccountingUnit && w.UnitType == eUnitType).Code,
UnitType = eUnitType,
AccountingUnit = eAccountingUnit,
OperationType = (int)Attendance.OperationType.修改
};
}
upload.Add(data);
}
if (error.Any())
return new ApiResponse(ResponseType.Error, "操作被拒绝,详细请看更多信息", error);
saveUploadResult(upload, schemeId, allotId, userid);
return new ApiResponse(ResponseType.OK);
}
public ApiResponse saveUploadResult(List<AssessSchemeItemsUploadResponse> upload, int schemeId, int allotId, int userid)
{
var categoryData = perforPerAssessSchemeRepository.GetEntity(t => t.Id == schemeId);
if (categoryData == null)
throw new PerformanceException("方案有误,请刷新重试!");
var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntities(w => w.AllotId == allotId);
var dataAdds = upload.Where(w => w.OperationType == (int)Attendance.OperationType.新增).ToList();
int sort = 0;
dataAdds.ForEach(t =>
{
t.sort = sort++;
int codeMax = 0;
if (itemsDatas.Select(w => w.ItemCode).Any())
codeMax = itemsDatas.Max(w => int.Parse(w.ItemCode.Substring(1)));
var code = "";
if (codeMax <= 9999)
{
code = "A" + (codeMax + sort).ToString("D4");
}
else
{
code = "A" + (codeMax + sort).ToString();
}
t.ItemCode = code;
});
var dataUpdates = upload.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList();
//删除
var dataDeletes = from temp1 in itemsDatas
join temp2 in dataUpdates
on temp1.ItemCode equals temp2.ItemCode into tempJoin
from temp2 in tempJoin.DefaultIfEmpty()
where temp2 == null
select temp1;
if (dataAdds.Any())
{
var inserts = dataAdds.Select(item =>
{
return new per_assess_scheme_items()
{
AllotId = allotId,
AssessId = categoryData.AssessId,
SchemeId = schemeId,
ItemCode = item.ItemCode,
ItemName1 = item.ItemName1,
ItemName2 = item.ItemName2,
AssessScore = item.AssessScore,
AssessNorm = item.AssessNorm,
UnitCode = item.UnitCode,
UnitType = item.UnitType,
AccountingUnit = item.AccountingUnit,
CreateBy = userid,
CreateTime = DateTime.Now,
UpdateBy = userid,
UpdateTime = DateTime.Now,
};
}).ToList();
perforPerAssessSchemeItemsRepository.AddRange(inserts.ToArray());
}
if (dataUpdates.Any())
{
List<per_assess_scheme_items> itemsdatas = new List<per_assess_scheme_items>();
foreach (var item in dataUpdates)
{
var itemsData = itemsDatas.FirstOrDefault(w => w.ItemCode == item.ItemCode);
if (itemsData == null) continue;
itemsData.ItemCode = item.ItemCode;
itemsData.ItemName1 = item.ItemName1;
itemsData.ItemName2 = item.ItemName2;
itemsData.AssessScore = item.AssessScore;
itemsData.AssessNorm = item.AssessNorm;
itemsData.UnitType = item.UnitType;
itemsData.AccountingUnit = item.AccountingUnit;
itemsData.UpdateBy = userid;
itemsData.UpdateTime = DateTime.Now;
itemsdatas.Add(itemsData);
}
perforPerAssessSchemeItemsRepository.UpdateRange(itemsdatas.ToArray());
}
if (dataDeletes.Any())
{
perforPerAssessSchemeItemsRepository.RemoveRange(dataDeletes.ToArray());
}
return new ApiResponse(ResponseType.OK);
}
#endregion
#region 核算单元上报考核结果
public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList(int allotId, int userid)
{
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == allotId);
//当角色对应时过滤
var userInfo = _userRepository.GetUser(userid);
if (userInfo?.User == null) throw new NotImplementedException("当前用户不存在");
if (userInfo?.URole == null) throw new NotImplementedException("当前用户暂未分配角色");
var unitTypes = UnitTypeUtil.GetMaps(userInfo?.URole.Type ?? 0);
if (unitTypes?.Any() == true)
issueSchemes = issueSchemes.Where(w => w.AccountingUnit == userInfo.User.Department && UnitTypeUtil.Is(w.UnitType, unitTypes)).ToList();
var items = issueSchemes.GroupBy(w => new { w.AssessId, w.AssessName, w.ItemId, w.ItemName2, w.UnitType, w.AccountingUnit })
.Select(w => new AssessSchemeEnterListResponse
{
AssessId = w.Key.AssessId,
AssessName = w.Key.AssessName,
UnitType = w.Key.UnitType,
AccountingUnit = w.Key.AccountingUnit,
ItemId = w.Key.ItemId,
ItemName2 = w.Key.ItemName2,
Count = w.Count(),
ConfirmCount = w.Count(p => p.State == (int)Assess.AssessState.审核通过),
RejectCount = w.Count(p => p.State == (int)Assess.AssessState.驳回),
AwaitCount = w.Count(p => p.State == (int)Assess.AssessState.待审核)
}).ToList();
foreach (var item in items)
{
item.State = (int)Assess.AssessState.未提交;
if (item.AwaitCount > 0)
item.State = (int)Assess.AssessState.待审核;
else if (item.RejectCount > 0)
item.State = (int)Assess.AssessState.驳回;
else if (item.ConfirmCount == item.Count)
item.State = (int)Assess.AssessState.审核通过;
}
return new ApiResponse<List<AssessSchemeEnterListResponse>>(ResponseType.OK, items);
}
public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList(QuerySchemeEnterDetailList query)
{
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == query.AllotId && w.ItemId == query.ItemId);
issueSchemes = issueSchemes.Where(w =>
(string.IsNullOrEmpty(query.TargetUnitType) || w.TargetUnitType.Contains(query.TargetUnitType)) &&
(string.IsNullOrEmpty(query.TargetAccountingUnit) || w.AccountingUnit.Contains(query.TargetAccountingUnit)) &&
(string.IsNullOrEmpty(query.ItemName2) || w.ItemName2.Contains(query.ItemName2))
).ToList();
var stateOrders = new int[] { (int)Assess.AssessState.待审核, (int)Assess.AssessState.驳回, (int)Assess.AssessState.审核通过, (int)Assess.AssessState.未提交 };
var totalItems = issueSchemes.FirstOrDefault() == null ? 0 : issueSchemes.Count();
if (query.PageSize <= 0)
query.PageSize = totalItems;
var pagedIssueSchemes = issueSchemes.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize);
var datas = mapper.Map<List<AssessSchemeEnterDetaiListResponse>>(pagedIssueSchemes);
datas = datas.OrderBy(w => stateOrders.Contains(w.State) ? Array.IndexOf(stateOrders, w.State) : int.MaxValue).OrderByDescending(w => w.UpdateTime).ToList();
return new PagedList<AssessSchemeEnterDetaiListResponse>(datas, totalItems, query.Page, query.PageSize);
}
public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName)
{
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == audit.AllotId && audit.IssueId.Contains(w.Id));
var temp = issueSchemes.FirstOrDefault(w => w.State == (int)Assess.AssessState.未提交);
if (temp != null || temp?.Id > 0)
throw new PerformanceException("未提交的数据无法审核");
foreach (var issueScheme in issueSchemes)
{
issueScheme.State = (int)audit.State;
issueScheme.AuditBy = realName;
issueScheme.AuditTime = DateTime.Now;
}
perforPerAssessIssueSchemeRepository.UpdateRange(issueSchemes.ToArray());
return new ApiResponse(ResponseType.OK, "修改成功");
}
public ApiResponse SchemeEnterEdit(EditAssessSchemeEnterRequest request, int userid)
{
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntity(w => w.Id == request.IssueId);
if (issueSchemes == null)
throw new PerformanceException("未找到需要修改的数据,请刷新");
issueSchemes.Score = request.Score;
issueSchemes.ScoreRemark = request.ScoreRemark;
issueSchemes.UpdateBy = userid;
issueSchemes.UpdateTime = DateTime.Now;
if (perforPerAssessIssueSchemeRepository.Update(issueSchemes)) return new ApiResponse(ResponseType.OK, "修改成功");
else return new ApiResponse(ResponseType.Fail, "修改失败");
}
public ApiResponse SchemeEnterSubmit(int allotId, int itemId, int userid)
{
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == allotId && w.ItemId == itemId);
if (!issueSchemes.Any())
throw new PerformanceException("未找到需要提交的数据,请稍后在试");
foreach (var item in issueSchemes)
{
item.State = (int)Assess.AssessState.待审核;
item.SubmitBy = userid;
item.SubmitTime = DateTime.Now;
}
if (perforPerAssessIssueSchemeRepository.UpdateRange(issueSchemes.ToArray())) return new ApiResponse(ResponseType.OK, "修改成功");
else return new ApiResponse(ResponseType.Fail, "修改失败");
}
public ApiResponse SchemeEnterUpload(int itemId, IFormCollection form, int userid)
{
var file = ((FormFileCollection)form.Files).FirstOrDefault();
if (!file.FileName.EndsWith(".xlsx"))
throw new PerformanceException("请检查是否为xlsx格式");
//查询指标
var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntity(t => t.Id == itemId);
//查询下发结果
var issueDatas = perforPerAssessIssueSchemeRepository.GetEntities(w => w.ItemId == itemId);
var allot = perforPerallotRepository.GetEntity(w => w.ID == itemsDatas.AllotId);
if (allot == null)
return new ApiResponse(ResponseType.Fail, "allotid不存在");
var name = FileHelper.GetFileNameNoExtension(file.FileName) + DateTime.Now.ToString("yyyyMMddHHmmssfff");
var ext = FileHelper.GetExtension(file.FileName);
var dpath = Path.Combine(evn.ContentRootPath, "Files", $"{allot.HospitalId}", $"{allot.Year}{allot.Month.ToString().PadLeft(2, '0')}");
FileHelper.CreateDirectory(dpath);
var path = Path.Combine(dpath, $"{name}{ext}");
using (var stream = file.OpenReadStream())
{
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
if (!FileHelper.CreateFile(path, bytes))
return new ApiResponse(ResponseType.Fail, $"{file.FileName}上传失败");
}
var dt = Read(path);
var datas = ToListDictionary(dt);
Tables error = new Tables("行", "核算单元", "核算组别", "一级指标名称", "考核项目", "考核分值", "考核扣分", "扣分原因", "原因");
var issues = new List<per_assess_issue_scheme>();
foreach (var item in datas.Select((value, i) => new { value, index = $"第{i + 1}行" }))
{
if (string.IsNullOrEmpty(string.Join("", item.value.Values))) continue;
var eTargetAccountingUnit = item.value.GetOrAdd("核算单元", "")?.ToString() ?? "";
var eTargetUnitType = item.value.GetOrAdd("核算组别", "")?.ToString() ?? "";
var eItemName1 = item.value.GetOrAdd("一级指标名称", "")?.ToString() ?? "";
var eItemName2 = item.value.GetOrAdd("考核项目", "")?.ToString() ?? "";
var eAssessScore = item.value.GetOrAdd("考核分值", "")?.ToString() ?? "";
var eScore = item.value.GetOrAdd("考核扣分", "")?.ToString() ?? "";
var eScoreRemark = item.value.GetOrAdd("扣分原因", "")?.ToString() ?? "";
eScore = String.IsNullOrEmpty(eScore) ? "0" : eScore;
eAssessScore = String.IsNullOrEmpty(eAssessScore) ? "0" : eAssessScore;
int.TryParse(eAssessScore, out int eAScore);
error.AddIf(string.IsNullOrEmpty(eTargetAccountingUnit), item.index, eTargetAccountingUnit, eTargetUnitType, eItemName1, eItemName2, eAssessScore, eScore, eScoreRemark, "核算单元空值无效,请检查后重试!");
error.AddIf(string.IsNullOrEmpty(eTargetUnitType), item.index, eTargetAccountingUnit, eTargetUnitType, eItemName1, eItemName2, eAssessScore, eScore, eScoreRemark, "核算单元空值无效,请检查后重试!");
error.AddIf(!int.TryParse(eScore, out int escore), item.index, eTargetAccountingUnit, eTargetUnitType, eItemName1, eItemName2, eAssessScore, eScore, eScoreRemark, "考核扣分值无效,请检查后重试!");
error.AddIf(escore > eAScore, item.index, eTargetAccountingUnit, eTargetUnitType, eItemName1, eItemName2, eAssessScore, eScore, eScoreRemark, "考核扣分大于考核分值,请检查后重试!");
var issueData = issueDatas.FirstOrDefault(w => w.ItemId == itemId && w.TargetAccountingUnit == eTargetAccountingUnit && w.TargetUnitType == eTargetUnitType);
error.AddIf(issueData == null, item.index, eTargetAccountingUnit, eTargetUnitType, eItemName1, eItemName2, eAssessScore, eScore, eScoreRemark, "未找到部门,请检查后重试!");
if (issueData == null) continue;
issueData.Score = escore;
issueData.ScoreRemark = eScoreRemark;
issueData.UpdateBy = userid;
issueData.UpdateTime = DateTime.Now;
issues.Add(issueData);
}
if (error.Any())
return new ApiResponse(ResponseType.Error, "操作被拒绝,详细请看更多信息", error);
if (issues.Any())
perforPerAssessIssueSchemeRepository.UpdateRange(issues.ToArray());
return new ApiResponse(ResponseType.OK);
}
#endregion #endregion
public static DataTable Read(string path, int startRow = 1, int startCol = 1)
{
using ExcelPackage package = new ExcelPackage(new FileInfo(path));
// 选择工作表
ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
var dt = new DataTable(worksheet.Name);
for (int i = startCol; i <= worksheet.Dimension.End.Column; i++)
{
dt.Columns.Add(worksheet.Cells[startRow, i].Value.ToString());
}
for (int i = startRow + 1; i <= worksheet.Dimension.End.Row; i++)
{
var row = dt.NewRow();
for (int j = startCol; j <= worksheet.Dimension.End.Column; j++)
{
row[j - startCol] = worksheet.Cells[i, j].Value;
}
dt.Rows.Add(row);
}
return dt;
}
public static List<Dictionary<string, object>> ToListDictionary(DataTable dt)
{
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
foreach (DataRow dr in dt.Rows)
{
Dictionary<string, object> dic = new Dictionary<string, object>();
foreach (DataColumn dc in dt.Columns)
{
dic.Add(dc.ColumnName, dr[dc.ColumnName]);
}
list.Add(dic);
}
return list;
}
/// <summary>
/// 表格展示
/// </summary>
public class Tables : List<Dictionary<string, object>>
{
private readonly string[] Cols;
/// ctor
public Tables(params string[] cols)
{
if (cols.Length == 0)
throw new ArgumentNullException(nameof(cols));
if (cols.Any(w => string.IsNullOrEmpty(w)))
throw new ArgumentException($"{nameof(cols)}存在空列名");
if (cols.Distinct().Count() < cols.Length)
throw new ArgumentException($"{nameof(cols)}列名重复");
Cols = cols;
}
/// <summary>
/// 添加行
/// </summary>
/// <param name="values">需要和Colums保持个数一致</param>
/// <exception cref="ArgumentNullException"></exception>
public void Add(params string[] values)
{
var row = new Dictionary<string, object>();
for (int i = 0; i < Cols.Length; i++)
{
row.Add(Cols[i], values.Length > i ? values[i] : "");
}
Add(row);
}
/// <summary>
/// 添加行
/// </summary>
/// <param name="right"></param>
/// <param name="values">需要和Colums保持个数一致</param>
/// <exception cref="ArgumentNullException"></exception>
public void AddIf(bool right, params string[] values)
{
if (right)
{
var row = new Dictionary<string, object>();
for (int i = 0; i < Cols.Length; i++)
{
row.Add(Cols[i], values.Length > i ? values[i] : "");
}
Add(row);
}
}
}
} }
} }
...@@ -1205,7 +1205,5 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name, ...@@ -1205,7 +1205,5 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
(nameof(RecordAttendcance.BegDate), "开始时间", t => t.BegDate), (nameof(RecordAttendcance.BegDate), "开始时间", t => t.BegDate),
(nameof(RecordAttendcance.EndDate), "结束时间", t => t.EndDate), (nameof(RecordAttendcance.EndDate), "结束时间", t => t.EndDate),
}; };
} }
} }
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