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.StaticFiles;
using Newtonsoft.Json;
using Performance.DtoModels;
using Performance.DtoModels.Request;
using Performance.EntityModels;
using Performance.Infrastructure;
using Performance.Infrastructure.Models;
using Performance.Services;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace Performance.Api.Controllers
......@@ -22,6 +27,7 @@ public class AssessNewController : Controller
private readonly AssessNewService _service;
private ClaimService claim;
public AssessNewController(AssessNewService service, ClaimService claim)
{
_service = service;
......@@ -97,9 +103,9 @@ public ApiResponse CategoryDelete([FromBody] BatchAssessCategoryRequest request)
/// <returns></returns>
[HttpPost]
[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>
/// 考核下发(把当前考核类别下所有方案下发)
......@@ -113,9 +119,10 @@ public IActionResult CategoryIssueCheck([FromBody] BatchAssessCategoryRequest re
/// <returns></returns>
[HttpPost]
[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
......@@ -198,7 +205,7 @@ public IActionResult SchemeDownload([FromQuery] int categoryId)
var ser = JsonConvert.SerializeObject(result);
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();
using (var stream = new FileStream(filepath, FileMode.Open))
......@@ -211,42 +218,39 @@ public IActionResult SchemeDownload([FromQuery] int categoryId)
var memi = provider.Mappings[".xlsx"];
return File(memoryStream, memi, Path.GetFileName(fileInfo.Name));
}
/// <summary>
/// 考核方案上传
/// </summary>
/// <param name="categoryId"></param>
/// <param name="file"></param>
/// <remarks>
/// 上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/upload")]
public async Task<IActionResult> SchemeUpload([FromQuery] int categoryId, IFormFile file)
{
throw new NotImplementedException();
}
///// <summary>
///// 考核方案上传
///// </summary>
///// <param name="categoryId"></param>
///// <param name="form"></param>
///// <remarks>
///// 上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
///// </remarks>
///// <returns></returns>
//[HttpPost]
//[Route("scheme/upload")]
//public ApiResponse SchemeUpload([FromQuery] int categoryId, [FromForm] IFormCollection form)
//{
// return _service.SchemeUpload(categoryId, form);
//}
#endregion
#region 考核指标
/// <summary>
/// 考核指标项列表
/// </summary>
/// <param name="schemeId"></param>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[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>
/// <param name="request"></param>
/// <remarks>
/// 编码自动生成,不能修改
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/add")]
......@@ -259,9 +263,6 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd([FromBody] AddAss
/// 考核指标项修改
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 编码不能修改
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/update")]
......@@ -287,49 +288,67 @@ public ApiResponse SchemeItemsDelete([FromBody] BatchAssessSchemeItemsRequest re
/// <summary>
/// 考核指标项下载
/// </summary>
/// <param name="schemeId"></param>
/// <remarks>
/// 空数据时也要能下载,下载的数据只有对应的列头数据
/// </remarks>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/download")]
[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>
/// <param name="schemeId"></param>
/// <param name="file"></param>
/// <remarks>
/// 上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
/// </remarks>
/// <param name="allotId"></param>
/// <param name="form"></param>
/// <returns></returns>
[HttpPost]
[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>
/// <param name="schemeId"></param>
/// <remarks>
/// 1、如已经在本方案设置了的核算单元,勾选框设置为灰色,无法勾选
/// 2、如该核算单元被统—考核类型的其他方案应用,则标记出已设置的方案,如在此方案勾选后,自动删掉他在另外一个方案的设置。
/// 3、一键筛选功能为直接筛选出未设置考核方案的核算单元
/// </remarks>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[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>
......@@ -337,10 +356,37 @@ public IActionResult SchemeItemsTargetList([FromQuery] int schemeId)
/// <returns></returns>
[HttpPost]
[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
#region 核算单元上报考核结果
......@@ -348,29 +394,24 @@ public IActionResult SchemeItemsTargetSave([FromBody] TargetAssessSchemeItemsReq
/// 核算单元上报考核列表
/// </summary>
/// <param name="allotId"></param>
/// <remarks>
/// 该列表是有下发操作产生的:责任科室总清单
/// </remarks>
/// <returns></returns>
[HttpPost]
[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>
/// <param name="issueId"></param>
/// <remarks>
/// 该列表是有下发操作产生的:责任科室总清单明细
/// </remarks>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[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>
/// 核算单元上报考核指标项修改
......@@ -379,88 +420,132 @@ public IActionResult SchemeEnterDetailList([FromQuery] int issueId)
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/detail/edit")]
public IActionResult 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)
public ApiResponse SchemeEnterEdit([FromBody] EditAssessSchemeEnterRequest request)
{
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>
/// <param name="issueId"></param>
/// <remarks>
/// 编辑:真实用途只是保存数据
/// 确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
/// 提交:数据必须全部确认完成才能提交
/// </remarks>
/// <param name="allotId"></param>
/// <param name="itemId"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
[Route("scheme/enter/detail/confirm")]
public IActionResult SchemeEnterConfirm([FromQuery] int issueId)
[Route("scheme/enter/submit")]
public ApiResponse SchemeEnterSubmit([FromQuery] int allotId, int itemId)
{
throw new NotImplementedException();
var userid = claim.GetUserId();
return _service.SchemeEnterSubmit(allotId, itemId, userid);
}
/// <summary>
/// 核算单元上报考核结果提交
/// 核算单元上报考核结果审核
/// </summary>
/// <param name="allotId"></param>
/// <remarks>
/// 编辑:真实用途只是保存数据
/// 确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
/// 提交:数据必须全部确认完成才能提交,存在还未确认的数据,则提交失败,返回表格显示失败原因
/// </remarks>
/// <param name="audit"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/submit")]
public IActionResult SchemeEnterSubmit([FromQuery] int allotId)
[Route("scheme/enter/audit")]
public ApiResponse SchemeEnterAudit([FromBody] EditSchemeEnterAudit audit)
{
throw new NotImplementedException();
var realName = claim.GetUserClaim(JwtClaimTypes.RealName);
return _service.SchemeEnterAudit(audit, realName);
}
/// <summary>
/// 核算单元上报考核指标项下载
/// </summary>
/// <param name="issueId"></param>
/// <remarks>
/// 空数据时也要能下载,下载的数据只有对应的列头数据
/// </remarks>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[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>
/// <param name="issueId"></param>
/// <param name="file"></param>
/// <param name="itemId"></param>
/// <param name="form"></param>
/// <remarks>
/// 上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作
/// </remarks>
/// <returns></returns>
[HttpPost]
[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
}
......
......@@ -416,22 +416,11 @@
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeUpload(System.Int32,Microsoft.AspNetCore.Http.IFormFile)">
<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)">
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsList(Performance.DtoModels.Request.QuerySchemeItemsList)">
<summary>
考核指标项列表
</summary>
<param name="schemeId"></param>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsAdd(Performance.DtoModels.Request.AddAssessSchemeItemsRequest)">
......@@ -439,9 +428,6 @@
考核指标项新增
</summary>
<param name="request"></param>
<remarks>
编码自动生成,不能修改
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsUpdate(Performance.DtoModels.Request.UpdateAssessSchemeItemsRequest)">
......@@ -449,9 +435,6 @@
考核指标项修改
</summary>
<param name="request"></param>
<remarks>
编码不能修改
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsDelete(Performance.DtoModels.Request.BatchAssessSchemeItemsRequest)">
......@@ -464,37 +447,27 @@
</remarks>
<returns></returns>
</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>
<param name="schemeId"></param>
<remarks>
空数据时也要能下载,下载的数据只有对应的列头数据
</remarks>
<param name="query"></param>
<returns></returns>
</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>
<param name="schemeId"></param>
<param name="file"></param>
<remarks>
上传文件中的编码无效,不能修改,自动生成,按编码作为匹配依据,进行增删改
</remarks>
<param name="allotId"></param>
<param name="form"></param>
<returns></returns>
</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>
<param name="schemeId"></param>
<remarks>
1、如已经在本方案设置了的核算单元,勾选框设置为灰色,无法勾选
2、如该核算单元被统—考核类型的其他方案应用,则标记出已设置的方案,如在此方案勾选后,自动删掉他在另外一个方案的设置。
3、一键筛选功能为直接筛选出未设置考核方案的核算单元
</remarks>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetSave(Performance.DtoModels.Request.TargetAssessSchemeItemsRequest)">
......@@ -504,24 +477,32 @@
<param name="request"></param>
<returns></returns>
</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)">
<summary>
核算单元上报考核列表
</summary>
<param name="allotId"></param>
<remarks>
该列表是有下发操作产生的:责任科室总清单
</remarks>
<returns></returns>
</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>
<param name="issueId"></param>
<remarks>
该列表是有下发操作产生的:责任科室总清单明细
</remarks>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterEdit(Performance.DtoModels.Request.EditAssessSchemeEnterRequest)">
......@@ -531,59 +512,35 @@
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterCheck(System.Int32)">
<summary>
核算单元上报考核结果确认前检查
</summary>
<param name="issueId"></param>
<remarks>
编辑:真实用途只是保存数据
确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
提交:数据必须全部确认完成才能提交
需要检查确认的考核指标项中,有没有没有填写的数据
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterConfirm(System.Int32)">
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterSubmit(System.Int32,System.Int32)">
<summary>
核算单元上报考核结果确认
核算单元上报考核结果提交
</summary>
<param name="issueId"></param>
<remarks>
编辑:真实用途只是保存数据
确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
提交:数据必须全部确认完成才能提交
</remarks>
<param name="allotId"></param>
<param name="itemId"></param>
<returns></returns>
<exception cref="T:System.NotImplementedException"></exception>
</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>
<param name="allotId"></param>
<remarks>
编辑:真实用途只是保存数据
确认:数据编辑完成了,需要确认下,确认类似于确认无误,没有实际意义
提交:数据必须全部确认完成才能提交,存在还未确认的数据,则提交失败,返回表格显示失败原因
</remarks>
<param name="audit"></param>
<returns></returns>
</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>
<param name="issueId"></param>
<remarks>
空数据时也要能下载,下载的数据只有对应的列头数据
</remarks>
<param name="query"></param>
<returns></returns>
</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>
<param name="issueId"></param>
<param name="file"></param>
<param name="itemId"></param>
<param name="form"></param>
<remarks>
上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作
</remarks>
......
......@@ -2085,6 +2085,26 @@
<member name="P:Performance.DtoModels.AprAmountMarkRequest.TypeInDepartments">
<summary> 需要审计的科室,支持多个科室一起审计 </summary>
</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">
<summary>
考核扣分
......@@ -2120,19 +2140,25 @@
考核标准
</summary>
</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>
</member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.UnitType">
<member name="P:Performance.DtoModels.Request.QuerySchemeItemsList.UnitType">
<summary>
责任部门核算组别
核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.AccountingUnit">
<member name="P:Performance.DtoModels.Request.QuerySchemeItemsList.AccountingUnit">
<summary>
责任部门核算单元
核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.Request.QuerySchemeItemsList.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.Request.BatchRequest.Batch">
......@@ -2950,7 +2976,22 @@
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.Id">
<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>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.SchemeCode">
......@@ -2963,9 +3004,269 @@
考核方案名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessName">
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.CreateBy">
<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>
</member>
<member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.AttendanceIsueId">
......@@ -4132,6 +4433,121 @@
发放时间,空则不显示
</summary>
</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">
<summary>
参加工作时间
......
......@@ -376,9 +376,15 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme">
<summary>考核方案</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_issue_scheme">
<summary>考核方案下发到责任科室指标清单</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme_items">
<summary>考核方案指标项</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_scheme_target">
<summary>被考核对象</summary>
</member>
<member name="T:Performance.EntityModels.ag_againsituation">
<summary>
二次分配概览
......@@ -6469,6 +6475,166 @@
修改时间
</summary>
</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">
<summary>
考核方案
......@@ -6604,6 +6770,66 @@
修改时间
</summary>
</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">
<summary>
分批发放记录
......@@ -9719,6 +9945,101 @@
核算单元编码
</summary>
</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">
<summary>
人员类别
......
......@@ -276,8 +276,21 @@ public AutoMapperConfigs()
CreateMap<cof_workitem, WorkItemRequest>()
.ReverseMap();
CreateMap<cof_again, CofAgainRequest>().ReverseMap();
CreateMap<AddAssessSchemeItemsRequest, per_assess_scheme_items>().ReverseMap();
CreateMap<cof_again, CofAgainRequest>()
.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
删除 = 3,
}
}
public class Assess
{
public enum SchemeItemsTarget
{
全部 = 0,
已设置其他方案 = 1,
未设置方案 = 2,
已设置方案 = 4,
}
public enum AssessState
{
未提交 = 1,
待审核 = 2,
审核通过 = 3,
驳回 = 4,
}
}
public class SecondAllot
{
......
......@@ -18,5 +18,6 @@ public class UpdateAssessCategoryRequest : AddAssessCategoryRequest
public class BatchAssessCategoryRequest
{
public int[] CategoryId { get; set; }
public int AllotId { get; set; }
}
}
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 int IssueDetailId { get; set; }
public int IssueId { get; set; }
/// <summary>
/// 考核扣分
/// </summary>
public int Score { get; set; }
public int? Score { get; set; }
/// <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 int AllotId { get; set; }
/// <summary>
/// 方案ID
/// </summary>
......@@ -23,9 +26,6 @@ public class AddAssessSchemeItemsRequest
/// </summary>
public string AssessNorm { get; set; }
/// <summary>
/// 责任部门核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary>
/// 责任部门核算组别
/// </summary>
......@@ -43,8 +43,48 @@ public class BatchAssessSchemeItemsRequest
{
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 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.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class AssessSchemeDataResponse
{
/// <summary>
/// 考核方案Id
/// 考核方案ID
/// </summary>
public int Id { get; set; }
/// <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>
public string SchemeCode { get; set; }
......@@ -19,8 +29,234 @@ public class AssessSchemeDataResponse
/// </summary>
public string SchemeName { 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 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>
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)
public virtual DbSet<per_assess_category> per_assess_category { get; set; }
/// <summary>考核方案</summary>
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>
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 @@
<ItemGroup>
<PackageReference Include="Dapper" Version="2.0.123" />
<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="MySql.Data" Version="8.0.27" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.1" />
......@@ -15,7 +17,6 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="AutoMapper" Version="10.1.1" />
<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="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.10" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.10" />
......
......@@ -17,7 +17,7 @@
namespace Performance.Repository
{
/// <summary>
/// sys_allot Repository
/// sys_allot(per_allot) Repository
/// </summary>
public partial class PerforPerallotRepository : PerforRepository<per_allot>
{
......@@ -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)
{
var connection = context.Database.GetDbConnection();
......@@ -332,6 +336,28 @@ public IEnumerable<view_attendance> GetAttendance(int allotId)
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>
......@@ -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 @@
namespace Performance.Repository.Repository
{
public partial class PerfoPperAttendanceTypeRepository : PerforRepository<per_attendance_type>
{
/// <summary>
/// per_attendance_type Repository
/// </summary>
public partial class PerfoPperAttendanceTypeRepository : PerforRepository<per_attendance_type>
{
public PerfoPperAttendanceTypeRepository(PerformanceDbContext context) : base(context)
{
}
......
......@@ -10,9 +10,9 @@ namespace Performance.Repository
/// <summary>
/// per_assess_category Repository
/// </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 Masuit.Tools;
using Masuit.Tools.Models;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using OfficeOpenXml;
using OfficeOpenXml.Style;
using Performance.DtoModels;
using Performance.DtoModels.Request;
using Performance.EntityModels;
using Performance.EntityModels.Other;
using Performance.Infrastructure;
using Performance.Repository;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
namespace Performance.Services
{
......@@ -18,48 +25,65 @@ public class AssessNewService : IAutoInjection
{
private readonly IMapper mapper;
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 PerforPerAssessSchemeRepository perforPerAssessSchemeRepository;
private readonly PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository;
private readonly PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository;
private readonly PerforCofaccountingRepository cofaccountingRepository;
private readonly PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository;
public AssessNewService(
IMapper mapper,
ILogger<AssessNewService> logger,
PerforPerCassessCategoryRepository perforPerCassessCategoryRepository,
IWebHostEnvironment evn,
PerforPerAssessCategoryRepository perforPerAssessCategoryRepository,
PerforPerallotRepository perforPerallotRepository,
PerforPerAssessSchemeRepository perforPerAssessSchemeRepository,
PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository
PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository,
PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository,
PerforCofaccountingRepository cofaccountingRepository,
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforUserRepository userRepository
)
{
this.mapper = mapper;
this.logger = logger;
this.perforPerCassessCategoryRepository = perforPerCassessCategoryRepository;
this.evn = evn;
this.perforPerAssessCategoryRepository = perforPerAssessCategoryRepository;
this.perforPerallotRepository = perforPerallotRepository;
this.perforPerAssessSchemeRepository = perforPerAssessSchemeRepository;
this.perforPerAssessSchemeItemsRepository = perforPerAssessSchemeItemsRepository;
this.perforPerAssessSchemeTargetRepository = perforPerAssessSchemeTargetRepository;
this.cofaccountingRepository = cofaccountingRepository;
this.perforPerAssessIssueSchemeRepository = perforPerAssessIssueSchemeRepository;
_userRepository = userRepository;
}
#region 考核类别
//考核类别列表
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)
return new ApiResponse<List<per_assess_category>>(ResponseType.OK, result);
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)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
throw new PerformanceException("当前绩效记录不存在");
var categoryData = perforPerCassessCategoryRepository.GetEntities();
var categoryData = perforPerAssessCategoryRepository.GetEntities();
var temp = categoryData.FirstOrDefault(w => w.AllotId == request.AllotId && w.AssessName == request.Category);
if (temp != null)
throw new PerformanceException("当前考核类别已存在");
......@@ -86,53 +110,199 @@ public ApiResponse<AddAssessCategoryRequest> CategoryAdd(AddAssessCategoryReques
UpdateBy = userid,
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, "添加失败");
}
// 考核类别修改
public ApiResponse<UpdateAssessCategoryRequest> CategoryUpdate(UpdateAssessCategoryRequest request, int userid)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
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.AssessName = request.Category;
any.UpdateBy = userid;
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, "修改失败");
}
//考核类别删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)没写
public ApiResponse CategoryDelete(BatchAssessCategoryRequest request)
{
var issuedates = perforPerCassessCategoryRepository.GetEntities(w => request.CategoryId.Contains(w.Id)).ToList();
if (perforPerCassessCategoryRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
var temp = perforPerAssessSchemeRepository.GetEntity(w => request.CategoryId.Contains(w.AssessId));
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, "删除失败");
}
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
#region 考核方案
//考核方案列表
public ApiResponse<List<AssessSchemeDataResponse>> SchemeList(int categoryId)
{
var scheme = perforPerAssessSchemeRepository.GetEntities(t => t.AssessId == categoryId).ToList();
var category = perforPerCassessCategoryRepository.GetEntities().FirstOrDefault(t => t.Id == categoryId);
var result = scheme.Select(w => new AssessSchemeDataResponse
{
Id = w.Id,
SchemeCode = w.SchemeCode,
SchemeName = w.SchemeName,
AssessName = category.AssessName
}).ToList();
var category = perforPerAssessCategoryRepository.GetEntities().FirstOrDefault(t => t.Id == categoryId);
var result = mapper.Map<List<AssessSchemeDataResponse>>(scheme);
result.ForEach(t => t.AssessName = category.AssessName);
result = result.OrderByDescending(w => w.UpdateTime).ToList();
return new ApiResponse<List<AssessSchemeDataResponse>>(ResponseType.OK, result);
}
//考核方案新增
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)
throw new PerformanceException("当前考核类别不存在");
var schemeData = perforPerAssessSchemeRepository.GetEntities();
......@@ -166,10 +336,9 @@ public ApiResponse<AddAssessSchemeRequest> SchemeAdd(AddAssessSchemeRequest requ
if (perforPerAssessSchemeRepository.Add(per_assess_scheme)) return new ApiResponse<AddAssessSchemeRequest>(ResponseType.OK, "添加成功");
else return new ApiResponse<AddAssessSchemeRequest>(ResponseType.Fail, "添加失败");
}
// 考核方案修改
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)
throw new PerformanceException("当前考核类别不存在");
var any = perforPerAssessSchemeRepository.GetEntity(w => w.Id == request.SchemeId);
......@@ -180,19 +349,19 @@ public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeReq
if (perforPerAssessSchemeRepository.Update(any)) return new ApiResponse<UpdateAssessSchemeRequest>(ResponseType.OK, "修改成功");
else return new ApiResponse<UpdateAssessSchemeRequest>(ResponseType.Fail, "修改失败");
}
//考核方案删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)没写
//考核方案删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)
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();
if (perforPerAssessSchemeRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
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>>();
foreach (var obj in rows)
{
......@@ -214,11 +383,9 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
using (ExcelPackage package = new ExcelPackage(fs))
{
var worksheet = package.Workbook.Worksheets.Add(name);
worksheet.SetValue(1, 1, title);
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++)
{
......@@ -228,10 +395,9 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
var low = temp.Keys.ToString().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 样式设置
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,
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.Size = 16;
worksheet.Row(1).Height = 24;
worksheet.Cells[2, 1, 2, headList.Count].Style.Font.Bold = true;
worksheet.View.FreezePanes(3, 1);
worksheet.View.FreezePanes(1, 1);
worksheet.Cells.AutoFitColumns();
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,
}
return filepath;
}
#endregion
#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();
if (result != null)
return new ApiResponse<List<per_assess_scheme_items>>(ResponseType.OK, result);
else
{
return new ApiResponse<List<per_assess_scheme_items>>(ResponseType.Fail);
}
var result = perforPerAssessSchemeItemsRepository.GetEntities(t => t.SchemeId == query.SchemeId && t.AllotId == query.AllotId).OrderByDescending(w => w.UpdateTime).ToList();
result = result.Where(w => (string.IsNullOrEmpty(query.UnitType) || w.UnitType.Contains(query.UnitType))
&& (string.IsNullOrEmpty(query.AccountingUnit) || w.AccountingUnit.Contains(query.AccountingUnit))
&& (string.IsNullOrEmpty(query.ItemName2) || w.ItemName2.Contains(query.ItemName2))).ToList();
var totalItems = result.FirstOrDefault() == null ? 0 : result.Count();
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)
{
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 temp = categoryData.FirstOrDefault(w => w.ItemName1 == request.ItemName1 && w.ItemName2 == request.ItemName2);
//if (temp != null)
// throw new PerformanceException("当前指标已存在");
var temp = categoryData.FirstOrDefault(w => w.SchemeId == request.SchemeId && w.ItemName2 == request.ItemName2);
if (temp != null)
throw new PerformanceException("当前指标已存在");
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)));
var code = "";
if (codeMax <= 9999)
{
......@@ -298,9 +462,10 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt
code = "A" + (codeMax + 1).ToString();
}
var data = mapper.Map<per_assess_scheme_items>(request);
data.AllotId = scheme.AllotId;
data.AllotId = request.AllotId;
data.AssessId = scheme.AssessId;
data.ItemCode = code;
data.UnitCode = cofAccounting.Code;
data.CreateBy = userid;
data.CreateTime = DateTime.Now;
data.UpdateBy = userid;
......@@ -311,49 +476,565 @@ public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeIt
// 考核指标项修改
public ApiResponse<UpdateAssessSchemeItemsRequest> SchemeItemsUpdate(UpdateAssessSchemeItemsRequest request, int userid)
{
var any = perforPerAssessSchemeItemsRepository.GetEntity(w => w.Id == request.SchemeItemsId);
any = mapper.Map<per_assess_scheme_items>(request);
var cofAccounting = cofaccountingRepository.GetEntity(w => w.AllotId == request.AllotId && w.AccountingUnit == request.AccountingUnit && w.UnitType == request.UnitType);
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.UpdateTime = DateTime.Now;
if (perforPerAssessSchemeItemsRepository.Update(any)) return new ApiResponse<UpdateAssessSchemeItemsRequest>(ResponseType.OK, "修改成功");
else return new ApiResponse<UpdateAssessSchemeItemsRequest>(ResponseType.Fail, "修改失败");
}
// 考核指标项删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)没写
// 考核指标项删除(允许批量删除,删除时要检查有没有外表引用,提示一起删除)
public ApiResponse SchemeItemsDelete(BatchAssessSchemeItemsRequest request)
{
var issuedates = perforPerAssessSchemeItemsRepository.GetEntities(w => request.SchemeItemsId.Contains(w.Id)).ToList();
if (perforPerAssessSchemeItemsRepository.RemoveRange(issuedates.ToArray())) return new ApiResponse(ResponseType.OK, "删除成功");
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
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,
(nameof(RecordAttendcance.BegDate), "开始时间", t => t.BegDate),
(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