Commit a7bd8716 by ruyun.zhang

Merge branch 'feature/考核' into develop

parents 7e9e1e15 99c264e7
using FluentValidation.AspNetCore; //using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Mvc; //using Microsoft.AspNetCore.Mvc;
using Performance.DtoModels; //using Performance.DtoModels;
using Performance.Services; //using Performance.Services;
namespace Performance.Api.Controllers //namespace Performance.Api.Controllers
{ //{
[Route("api/[controller]")] // [Route("api/[controller]")]
public class AssessController : Controller // public class AssessController : Controller
{ // {
private ClaimService claimService; // private ClaimService claimService;
private AssessService assessService; // private AssessService assessService;
private UserService userService; // private UserService userService;
public AssessController(ClaimService claimService, // public AssessController(ClaimService claimService,
AssessService assessService, UserService userService) // AssessService assessService, UserService userService)
{ // {
this.claimService = claimService; // this.claimService = claimService;
this.assessService = assessService; // this.assessService = assessService;
this.userService = userService; // this.userService = userService;
} // }
//考核类别列表 // //考核类别列表
[HttpPost] // [HttpPost]
[Route("assesslist")] // [Route("assesslist")]
public ApiResponse AssessList([CustomizeValidator(RuleSet = "List"), FromBody] AssessRequest request) // public ApiResponse AssessList([CustomizeValidator(RuleSet = "List"), FromBody] AssessRequest request)
{ // {
return assessService.AssessList(request.AllotID); // return assessService.AssessList(request.AllotID);
} // }
//新增考核类别 // //新增考核类别
[HttpPost] // [HttpPost]
[Route("addassess")] // [Route("addassess")]
public ApiResponse AddAssess([CustomizeValidator(RuleSet = "Add"), FromBody] AssessRequest request) // public ApiResponse AddAssess([CustomizeValidator(RuleSet = "Add"), FromBody] AssessRequest request)
{ // {
return assessService.AddAssess(request.AllotID, request.AssessName); // return assessService.AddAssess(request.AllotID, request.AssessName);
} // }
//修改考核类别 // //修改考核类别
[HttpPost] // [HttpPost]
[Route("editassess")] // [Route("editassess")]
public ApiResponse EditAssess([CustomizeValidator(RuleSet = "Update"), FromBody] AssessRequest request) // public ApiResponse EditAssess([CustomizeValidator(RuleSet = "Update"), FromBody] AssessRequest request)
{ // {
return assessService.EditAssess(request.AssessID, request.AssessName); // return assessService.EditAssess(request.AssessID, request.AssessName);
} // }
//删除考核类别 // //删除考核类别
[HttpPost] // [HttpPost]
[Route("delassess")] // [Route("delassess")]
public ApiResponse DelAssess([CustomizeValidator(RuleSet = "Del"), FromBody] AssessRequest request) // public ApiResponse DelAssess([CustomizeValidator(RuleSet = "Del"), FromBody] AssessRequest request)
{ // {
return assessService.DelAssess(request.AssessID); // return assessService.DelAssess(request.AssessID);
} // }
//获取所有科室列表 // //获取所有科室列表
[HttpPost] // [HttpPost]
[Route("departmentlist")] // [Route("departmentlist")]
public ApiResponse DepartmentList([CustomizeValidator(RuleSet = "Use"), FromBody] AssessRequest request) // public ApiResponse DepartmentList([CustomizeValidator(RuleSet = "Use"), FromBody] AssessRequest request)
{ // {
var department = assessService.Department(request); // var department = assessService.Department(request);
return new ApiResponse(ResponseType.OK, "ok", department); // return new ApiResponse(ResponseType.OK, "ok", department);
} // }
//设置科室考核分类 // //设置科室考核分类
[HttpPost] // [HttpPost]
[Route("setassesstype")] // [Route("setassesstype")]
public ApiResponse SetAssessType([FromBody] SetAssessRequest request) // public ApiResponse SetAssessType([FromBody] SetAssessRequest request)
{ // {
return assessService.SetAssessType(request); // return assessService.SetAssessType(request);
} // }
//考核列头列表 // //考核列头列表
[HttpPost] // [HttpPost]
[Route("columnlist")] // [Route("columnlist")]
public ApiResponse ColumnList([CustomizeValidator(RuleSet = "List"), FromBody] AssessColumnRequest request) // public ApiResponse ColumnList([CustomizeValidator(RuleSet = "List"), FromBody] AssessColumnRequest request)
{ // {
return assessService.ColumnList(request.AssessID); // return assessService.ColumnList(request.AssessID);
} // }
//新增考核项 // //新增考核项
[HttpPost] // [HttpPost]
[Route("addcolumn")] // [Route("addcolumn")]
public ApiResponse AddColumn([CustomizeValidator(RuleSet = "Add"), FromBody] AssessColumnRequest request) // public ApiResponse AddColumn([CustomizeValidator(RuleSet = "Add"), FromBody] AssessColumnRequest request)
{ // {
return assessService.AddColumn(request.AssessID, request.ParentID, request.ColumnName, request.Sort); // return assessService.AddColumn(request.AssessID, request.ParentID, request.ColumnName, request.Sort);
} // }
//修改考核项 // //修改考核项
[HttpPost] // [HttpPost]
[Route("editcolumn")] // [Route("editcolumn")]
public ApiResponse EditColumn([CustomizeValidator(RuleSet = "Update"), FromBody] AssessColumnRequest request) // public ApiResponse EditColumn([CustomizeValidator(RuleSet = "Update"), FromBody] AssessColumnRequest request)
{ // {
return assessService.EditColumn(request.ColumnID, request.ColumnName, request.Sort); // return assessService.EditColumn(request.ColumnID, request.ColumnName, request.Sort);
} // }
//删除考核项 // //删除考核项
[HttpPost] // [HttpPost]
[Route("delcolumn")] // [Route("delcolumn")]
public ApiResponse DelColumn([CustomizeValidator(RuleSet = "Del"), FromBody] AssessColumnRequest request) // public ApiResponse DelColumn([CustomizeValidator(RuleSet = "Del"), FromBody] AssessColumnRequest request)
{ // {
return assessService.DelColumn(request.ColumnID); // return assessService.DelColumn(request.ColumnID);
} // }
//考核数据列表 // //考核数据列表
[HttpPost] // [HttpPost]
[Route("datalist")] // [Route("datalist")]
public ApiResponse DataList([CustomizeValidator(RuleSet = "List"), FromBody] AssessDataRequest request) // public ApiResponse DataList([CustomizeValidator(RuleSet = "List"), FromBody] AssessDataRequest request)
{ // {
return assessService.DataList(request.AssessID); // return assessService.DataList(request.AssessID);
} // }
//考核数据修改 // //考核数据修改
[HttpPost] // [HttpPost]
[Route("editassessdata")] // [Route("editassessdata")]
public ApiResponse EditAssessData([CustomizeValidator(RuleSet = "Edit"), FromBody] AssessDataRequest request) // public ApiResponse EditAssessData([CustomizeValidator(RuleSet = "Edit"), FromBody] AssessDataRequest request)
{ // {
return assessService.EditAssessData(request.AssessRow); // return assessService.EditAssessData(request.AssessRow);
} // }
//考核模版列表 // //考核模版列表
[HttpPost] // [HttpPost]
[Route("tempassesslist")] // [Route("tempassesslist")]
public ApiResponse TempAssessList() // public ApiResponse TempAssessList()
{ // {
return assessService.TempAssessList(); // return assessService.TempAssessList();
} // }
//模板列头列表 // //模板列头列表
[HttpPost] // [HttpPost]
[Route("tempcolumnlist")] // [Route("tempcolumnlist")]
public ApiResponse TempColumnList([CustomizeValidator(RuleSet = "List"), FromBody] AssessColumnRequest request) // public ApiResponse TempColumnList([CustomizeValidator(RuleSet = "List"), FromBody] AssessColumnRequest request)
{ // {
return assessService.TempColumnList(request.AssessID); // return assessService.TempColumnList(request.AssessID);
} // }
//使用考核模版 // //使用考核模版
[HttpPost] // [HttpPost]
[Route("usetemplate")] // [Route("usetemplate")]
public ApiResponse UseTemplate([CustomizeValidator(RuleSet = "Use"), FromBody] AssessRequest request) // public ApiResponse UseTemplate([CustomizeValidator(RuleSet = "Use"), FromBody] AssessRequest request)
{ // {
return assessService.UseTemplate(request.AllotID, request.AssessID); // return assessService.UseTemplate(request.AllotID, request.AssessID);
} // }
} // }
} //}
\ No newline at end of file \ No newline at end of file
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
{
/// <summary>
/// 考核管理
/// </summary>
[Route("api/assess")]
public class AssessNewController : Controller
{
private readonly AssessNewService _service;
private ClaimService claim;
public AssessNewController(AssessNewService service, ClaimService claim)
{
_service = service;
this.claim = claim;
}
#region 考核类别
/// <summary>
/// 考核类别列表
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
[HttpPost]
[Route("category/list")]
public ApiResponse<List<per_assess_category>> CategoryList([FromQuery] int allotId)
{
return _service.CategoryList(allotId);
}
/// <summary>
/// 考核类别新增
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("category/add")]
public ApiResponse CategoryAdd([FromBody] AddAssessCategoryRequest request)
{
var userid = claim.GetUserId();
return _service.CategoryAdd(request, userid);
}
/// <summary>
/// 考核类别修改
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("category/update")]
public ApiResponse CategoryUpdate([FromBody] UpdateAssessCategoryRequest request)
{
var userid = claim.GetUserId();
return _service.CategoryUpdate(request, userid);
}
/// <summary>
/// 考核类别删除
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("category/delete")]
public ApiResponse CategoryDelete([FromBody] BatchAssessCategoryRequest request)
{
return _service.CategoryDelete(request);
}
/// <summary>
/// 考核下发(检查下发受影响的上报内容)
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("category/issue/check")]
public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck([FromBody] UpdateAssessCategoryRequest request)
{
return _service.CategoryIssueCheck(request);
}
/// <summary>
/// 考核下发
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("category/issue/confirm")]
public ApiResponse CategoryIssueConfirm([FromBody] UpdateAssessCategoryRequest request)
{
var userid = claim.GetUserId();
return _service.CategoryIssueConfirm(request, userid);
}
#endregion
#region 考核方案
/// <summary>
/// 考核方案列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/list")]
[ProducesResponseType(typeof(PagedList<AssessSchemeDataResponse>), StatusCodes.Status200OK)]
public ApiResponse SchemeList([FromBody] QuerySchemeList query)
{
return new ApiResponse(ResponseType.OK, "", _service.SchemeList(query));
}
/// <summary>
/// 考核方案新增
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 编码自动生成,不能修改
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/add")]
public ApiResponse SchemeAdd([FromBody] AddAssessSchemeRequest request)
{
var userid = claim.GetUserId();
return _service.SchemeAdd(request, userid);
}
/// <summary>
/// 考核方案修改
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 编码不能修改
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/update")]
public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate([FromBody] UpdateAssessSchemeRequest request)
{
var userid = claim.GetUserId();
return _service.SchemeUpdate(request, userid);
}
/// <summary>
/// 考核方案删除
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 允许批量删除,删除时要检查有没有外表引用,提示一起删除
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/delete")]
public ApiResponse SchemeDelete([FromBody] BatchAssessSchemeRequest request)
{
return _service.SchemeDelete(request);
}
/// <summary>
/// 考核方案下载
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/download")]
[Produces("application/octet-stream", Type = typeof(FileResult))]
public IActionResult SchemeDownload([FromBody] AddAssessSchemeRequest query)
{
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{
new ExcelDownloadHeads { Alias = "考核方案ID", Name = nameof(RecordAssessScheme.SchemeCode) },
new ExcelDownloadHeads { Alias = "考核方案名称", Name = nameof(RecordAssessScheme.SchemeName) },
new ExcelDownloadHeads { Alias = "考核方案类型", Name = nameof(RecordAssessScheme.AssessName) },
new ExcelDownloadHeads { Alias = "备注", Name = nameof(RecordAssessScheme.SchemeRemarks) },
};
var q = new QuerySchemeList
{
Page = 1,
PageSize = int.MaxValue,
AllotId = query.AllotId,
CategoryId = query.CategoryId,
SchemeName = query.SchemeName,
};
var result = _service.SchemeList(q).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))
{
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="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="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/list")]
[ProducesResponseType(typeof(PagedList<per_assess_scheme_items>), StatusCodes.Status200OK)]
public ApiResponse SchemeItemsList([FromBody] QuerySchemeItemsList query)
{
return new ApiResponse(ResponseType.OK, "", _service.SchemeItemsList(query));
}
/// <summary>
/// 考核指标项新增
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/add")]
public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd([FromBody] AddAssessSchemeItemsRequest request)
{
var userid = claim.GetUserId();
return _service.SchemeItemsAdd(request, userid);
}
/// <summary>
/// 考核指标项修改
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/update")]
public ApiResponse<UpdateAssessSchemeItemsRequest> SchemeItemsUpdate([FromBody] UpdateAssessSchemeItemsRequest request)
{
var userid = claim.GetUserId();
return _service.SchemeItemsUpdate(request, userid);
}
/// <summary>
/// 考核指标项删除
/// </summary>
/// <param name="request"></param>
/// <remarks>
/// 允许批量删除,删除时要检查有没有外表引用,提示一起删除
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/delete")]
public ApiResponse SchemeItemsDelete([FromBody] BatchAssessSchemeItemsRequest request)
{
return _service.SchemeItemsDelete(request);
}
/// <summary>
/// 考核指标项下载
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/download")]
[Produces("application/octet-stream", Type = typeof(FileResult))]
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) },
};
query.Page = 1;
query.PageSize = int.MaxValue;
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))
{
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="allotId"></param>
/// <param name="form"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/upload")]
public ApiResponse SchemeItemsUpload([FromQuery] int schemeId, int allotId, [FromForm] IFormCollection form)
{
var userid = claim.GetUserId();
return _service.SchemeItemsUpload(schemeId, allotId, form, userid);
}
/// <summary>
/// 考核对象核算单元列表清单
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/target/list")]
[ProducesResponseType(typeof(PagedList<AssessSchemeTargetResponse>), StatusCodes.Status200OK)]
public ApiResponse SchemeItemsTargetList([FromBody] QuerySchemeItemsTargetList query)
{
return new ApiResponse(ResponseType.OK, "", _service.SchemeItemsTargetList(query));
}
/// <summary>
/// 考核对象核算单元保存
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/items/target/save")]
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)
{
return _service.SchemeItemsTargetDelete(delete);
}
#endregion
#region 核算单元上报考核结果
/// <summary>
/// 考核结果列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/result/list")]
[ProducesResponseType(typeof(PagedList<AssessSchemeResultListResponse>), StatusCodes.Status200OK)]
public ApiResponse SchemeResultList([FromBody] QuerySchemeResultList query)
{
return new ApiResponse(ResponseType.OK, "", _service.SchemeResultList(query));
}
/// <summary>
/// 考核结果下载
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/result/download")]
public IActionResult SchemeEnterDownload([FromBody] QuerySchemeResultList query)
{
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{
new ExcelDownloadHeads { Alias = "核算组别", Name = nameof(AssessSchemeResultListResponse.TargetUnitType) },
new ExcelDownloadHeads { Alias = "核算单元名称", Name = nameof(AssessSchemeResultListResponse.TargetAccountingUnit) },
};
query.Page = 1;
query.PageSize = int.MaxValue;
var result = _service.SchemeResultList(query).Data;
foreach (var item in result.SelectMany(w => w.DictionaryResults).Select(w => w.Title).Distinct())
{
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item, Name = item });
}
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "合计", Name = "TotalAssessScore" });
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))
{
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="allotId"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/list")]
public ApiResponse<List<AssessSchemeEnterListResponse>> SchemeEnterList([FromQuery] int allotId)
{
var userid = claim.GetUserId();
return _service.SchemeEnterList(allotId, userid);
}
/// <summary>
/// 核算单元上报考核指标项清单
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/detail/list")]
[ProducesResponseType(typeof(PagedList<AssessSchemeEnterDetaiListResponse>), StatusCodes.Status200OK)]
public ApiResponse SchemeEnterDetailList([FromBody] QuerySchemeEnterDetailList query)
{
return new ApiResponse(ResponseType.OK, "", _service.SchemeEnterDetailList(query));
}
/// <summary>
/// 核算单元上报考核指标项修改
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/detail/edit")]
public ApiResponse SchemeEnterEdit([FromBody] EditAssessSchemeEnterRequest request)
{
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="allotId"></param>
/// <param name="itemId"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
[HttpPost]
[Route("scheme/enter/submit")]
public ApiResponse SchemeEnterSubmit([FromQuery] int allotId, int itemId)
{
var userid = claim.GetUserId();
return _service.SchemeEnterSubmit(allotId, itemId, userid);
}
/// <summary>
/// 核算单元上报考核结果审核
/// </summary>
/// <param name="audit"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/audit")]
public ApiResponse SchemeEnterAudit([FromBody] EditSchemeEnterAudit audit)
{
var realName = claim.GetUserClaim(JwtClaimTypes.RealName);
return _service.SchemeEnterAudit(audit, realName);
}
/// <summary>
/// 核算单元上报考核指标项下载
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/download")]
public IActionResult SchemeEnterDownload([FromBody] QuerySchemeEnterDetailList query)
{
List<ExcelDownloadHeads> excelDownloadHeads = new List<ExcelDownloadHeads>()
{
new ExcelDownloadHeads { Alias = "核算组别", Name = nameof(AssessSchemeEnterDetaiListResponse.TargetUnitType) },
new ExcelDownloadHeads { Alias = "核算单元名称", Name = nameof(AssessSchemeEnterDetaiListResponse.TargetAccountingUnit) },
new ExcelDownloadHeads { Alias = "一级指标名称", Name = nameof(AssessSchemeEnterDetaiListResponse.ItemName1) },
new ExcelDownloadHeads { Alias = "考核项目", Name = nameof(AssessSchemeEnterDetaiListResponse.ItemName2) },
new ExcelDownloadHeads { Alias = "考核标准", Name = nameof(AssessSchemeEnterDetaiListResponse.AssessNorm) },
new ExcelDownloadHeads { Alias = "考核分值", Name = nameof(AssessSchemeEnterDetaiListResponse.AssessScore) },
new ExcelDownloadHeads { Alias = "考核扣分", Name = nameof(AssessSchemeEnterDetaiListResponse.Score) },
new ExcelDownloadHeads { Alias = "扣分原因", Name = nameof(AssessSchemeEnterDetaiListResponse.ScoreRemark) },
};
query.Page = 1;
query.PageSize = int.MaxValue;
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))
{
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="itemId"></param>
/// <param name="form"></param>
/// <remarks>
/// 上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作
/// </remarks>
/// <returns></returns>
[HttpPost]
[Route("scheme/enter/upload")]
public ApiResponse SchemeEnterUpload([FromQuery] int itemId, [FromForm] IFormCollection form)
{
var userid = claim.GetUserId();
return _service.SchemeEnterUpload(itemId, form, userid);
}
#endregion
}
}
\ No newline at end of file
...@@ -902,6 +902,7 @@ public ApiResponse CopyDropDown() ...@@ -902,6 +902,7 @@ public ApiResponse CopyDropDown()
new CopyDrop{Label="支出费用类别",Value="drugTypeDisburses"}, new CopyDrop{Label="支出费用类别",Value="drugTypeDisburses"},
new CopyDrop{Label="费用类别系数",Value="drugTypeFactors"}, new CopyDrop{Label="费用类别系数",Value="drugTypeFactors"},
new CopyDrop{Label="考勤类型",Value="attendanceType"}, new CopyDrop{Label="考勤类型",Value="attendanceType"},
new CopyDrop{Label="绩效考核",Value="assessType"},
//new CopyDrop{Label="科室类型",Value="deptTypes"}, //new CopyDrop{Label="科室类型",Value="deptTypes"},
new CopyDrop{Label="二次绩效配置",Value="agains"}, new CopyDrop{Label="二次绩效配置",Value="agains"},
}; };
......
...@@ -302,6 +302,241 @@ ...@@ -302,6 +302,241 @@
记录创建、下发、归档、上传绩效 记录创建、下发、归档、上传绩效
</summary> </summary>
</member> </member>
<member name="T:Performance.Api.Controllers.AssessNewController">
<summary>
考核管理
</summary>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryList(System.Int32)">
<summary>
考核类别列表
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryAdd(Performance.DtoModels.Request.AddAssessCategoryRequest)">
<summary>
考核类别新增
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryUpdate(Performance.DtoModels.Request.UpdateAssessCategoryRequest)">
<summary>
考核类别修改
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryDelete(Performance.DtoModels.Request.BatchAssessCategoryRequest)">
<summary>
考核类别删除
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueCheck(Performance.DtoModels.Request.UpdateAssessCategoryRequest)">
<summary>
考核下发(检查下发受影响的上报内容)
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.CategoryIssueConfirm(Performance.DtoModels.Request.UpdateAssessCategoryRequest)">
<summary>
考核下发
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeList(Performance.DtoModels.Request.QuerySchemeList)">
<summary>
考核方案列表
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeAdd(Performance.DtoModels.Request.AddAssessSchemeRequest)">
<summary>
考核方案新增
</summary>
<param name="request"></param>
<remarks>
编码自动生成,不能修改
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeUpdate(Performance.DtoModels.Request.UpdateAssessSchemeRequest)">
<summary>
考核方案修改
</summary>
<param name="request"></param>
<remarks>
编码不能修改
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeDelete(Performance.DtoModels.Request.BatchAssessSchemeRequest)">
<summary>
考核方案删除
</summary>
<param name="request"></param>
<remarks>
允许批量删除,删除时要检查有没有外表引用,提示一起删除
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeDownload(Performance.DtoModels.Request.AddAssessSchemeRequest)">
<summary>
考核方案下载
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsList(Performance.DtoModels.Request.QuerySchemeItemsList)">
<summary>
考核指标项列表
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsAdd(Performance.DtoModels.Request.AddAssessSchemeItemsRequest)">
<summary>
考核指标项新增
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsUpdate(Performance.DtoModels.Request.UpdateAssessSchemeItemsRequest)">
<summary>
考核指标项修改
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsDelete(Performance.DtoModels.Request.BatchAssessSchemeItemsRequest)">
<summary>
考核指标项删除
</summary>
<param name="request"></param>
<remarks>
允许批量删除,删除时要检查有没有外表引用,提示一起删除
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsDownload(Performance.DtoModels.Request.QuerySchemeItemsList)">
<summary>
考核指标项下载
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsUpload(System.Int32,System.Int32,Microsoft.AspNetCore.Http.IFormCollection)">
<summary>
考核指标项上传
</summary>
<param name="schemeId"></param>
<param name="allotId"></param>
<param name="form"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetList(Performance.DtoModels.Request.QuerySchemeItemsTargetList)">
<summary>
考核对象核算单元列表清单
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeItemsTargetSave(Performance.DtoModels.Request.TargetAssessSchemeItemsRequest)">
<summary>
考核对象核算单元保存
</summary>
<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.SchemeResultList(Performance.DtoModels.Request.QuerySchemeResultList)">
<summary>
考核结果列表
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterDownload(Performance.DtoModels.Request.QuerySchemeResultList)">
<summary>
考核结果下载
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterList(System.Int32)">
<summary>
核算单元上报考核列表
</summary>
<param name="allotId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterDetailList(Performance.DtoModels.Request.QuerySchemeEnterDetailList)">
<summary>
核算单元上报考核指标项清单
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterEdit(Performance.DtoModels.Request.EditAssessSchemeEnterRequest)">
<summary>
核算单元上报考核指标项修改
</summary>
<param name="request"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterSubmit(System.Int32,System.Int32)">
<summary>
核算单元上报考核结果提交
</summary>
<param name="allotId"></param>
<param name="itemId"></param>
<returns></returns>
<exception cref="T:System.NotImplementedException"></exception>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterAudit(Performance.DtoModels.Request.EditSchemeEnterAudit)">
<summary>
核算单元上报考核结果审核
</summary>
<param name="audit"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterDownload(Performance.DtoModels.Request.QuerySchemeEnterDetailList)">
<summary>
核算单元上报考核指标项下载
</summary>
<param name="query"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AssessNewController.SchemeEnterUpload(System.Int32,Microsoft.AspNetCore.Http.IFormCollection)">
<summary>
核算单元上报考核指标项上传
</summary>
<param name="itemId"></param>
<param name="form"></param>
<remarks>
上传文件中只有考核扣分、扣分原因有效,其他只做展示不参与修改操作
</remarks>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.GetCallIn(System.Int32)"> <member name="M:Performance.Api.Controllers.AttendanceController.GetCallIn(System.Int32)">
<summary> <summary>
查询绩效调动记录 查询绩效调动记录
......
...@@ -2100,6 +2100,92 @@ ...@@ -2100,6 +2100,92 @@
<member name="P:Performance.DtoModels.AprAmountMarkRequest.TypeInDepartments"> <member name="P:Performance.DtoModels.AprAmountMarkRequest.TypeInDepartments">
<summary> 需要审计的科室,支持多个科室一起审计 </summary> <summary> 需要审计的科室,支持多个科室一起审计 </summary>
</member> </member>
<member name="P:Performance.DtoModels.Request.QuerySchemeEnterDetailList.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.Request.QuerySchemeEnterDetailList.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.Request.QuerySchemeEnterDetailList.State">
<summary>
操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
</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.EditSchemeEnterAudit.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="P:Performance.DtoModels.Request.EditAssessSchemeEnterRequest.Score">
<summary>
考核扣分
</summary>
</member>
<member name="P:Performance.DtoModels.Request.EditAssessSchemeEnterRequest.ScoreRemark">
<summary>
扣分原因
</summary>
</member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.SchemeId">
<summary>
方案ID
</summary>
</member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.DtoModels.Request.AddAssessSchemeItemsRequest.AssessNorm">
<summary>
考核标准
</summary>
</member>
<!-- 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.QuerySchemeItemsList.UnitType">
<summary>
核算组别
</summary>
</member>
<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.AttendanceDeptAudit.State"> <member name="P:Performance.DtoModels.Request.AttendanceDeptAudit.State">
<summary> <summary>
状态(通过 = 3,驳回 = 4) 状态(通过 = 3,驳回 = 4)
...@@ -2993,6 +3079,376 @@ ...@@ -2993,6 +3079,376 @@
科室 科室
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.Id">
<summary>
考核方案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.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.AssessName">
<summary>
考核类别名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.SchemeCode">
<summary>
考核方案编码
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.SchemeName">
<summary>
考核方案名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeDataResponse.SchemeRemarks">
<summary>
考核方案备注
</summary>
</member>
<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.AssessSchemeResultListResponse.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeResultListResponse.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeResultListResponse.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeResultListResponse.TotalAssessScore">
<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.AssessCode">
<summary>
考核类型编码
</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.ItemCode">
<summary>
考核指标编码
</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.SubmitTime">
<summary>
提交时间
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AuditBy">
<summary>
审核人
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AuditTime">
<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.AssessSchemeEnterListResponse.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterListResponse.AssessNorm">
<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.AssessSchemeEnterDetaiListResponse.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="P:Performance.DtoModels.AssessSchemeEnterDetaiListResponse.AssessNorm">
<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"> <member name="P:Performance.DtoModels.Response.AttendanceAuditDetail.AttendanceIsueId">
<summary> <summary>
考勤结果id(确认or驳回调用) 考勤结果id(确认or驳回调用)
...@@ -4407,6 +4863,121 @@ ...@@ -4407,6 +4863,121 @@
发放时间,空则不显示 发放时间,空则不显示
</summary> </summary>
</member> </member>
<member name="T:Performance.DtoModels.PerAssessmentStatisticsResponse">
<summary>
考核下发结果统计
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.Id">
<summary>
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessName">
<summary>
考核类型名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.SchemeId">
<summary>
考核方案ID
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.SchemeCode">
<summary>
考核方案编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.SchemeName">
<summary>
考核方案名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemId">
<summary>
考核指标Id
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AssessNorm">
<summary>
考核标准
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.TargetUnitCode">
<summary>
考核目标核算单元编码
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.OperationType">
<summary>
操作类型 新增 = 1, 修改 = 2, 删除 = 3,
</summary>
</member>
<member name="P:Performance.DtoModels.PerAssessmentStatisticsResponse.Describe">
<summary>
操作描述
</summary>
</member>
<member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime"> <member name="P:Performance.DtoModels.PerEmployeeResponse.WorkTime">
<summary> <summary>
参加工作时间 参加工作时间
......
...@@ -298,6 +298,9 @@ ...@@ -298,6 +298,9 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.report_statistics"> <member name="P:Performance.EntityModels.PerformanceDbContext.report_statistics">
<summary> </summary> <summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.report_statistics_selection">
<summary> </summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.res_account"> <member name="P:Performance.EntityModels.PerformanceDbContext.res_account">
<summary> 科室核算结果 </summary> <summary> 科室核算结果 </summary>
</member> </member>
...@@ -343,6 +346,45 @@ ...@@ -343,6 +346,45 @@
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_user_role"> <member name="P:Performance.EntityModels.PerformanceDbContext.sys_user_role">
<summary> 用户角色关联表 </summary> <summary> 用户角色关联表 </summary>
</member> </member>
<member name="P:Performance.EntityModels.PerformanceDbContext.sys_version">
<summary></summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_attendance">
<summary>调动记录表</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_attendance_dept">
<summary>考勤结果</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_attendance_type">
<summary>考勤类型</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_attendance_vacation">
<summary>考勤记录表</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_allot_action">
<summary>绩效分配操作记录表</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_apr_amount_type">
<summary>医院其他绩效类型</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_apr_amount_hide_type">
<summary>不公示其他绩效类型</summary>
</member>
<member name="P:Performance.EntityModels.PerformanceDbContext.per_assess_category">
<summary>考核分类</summary>
</member>
<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"> <member name="T:Performance.EntityModels.ag_againsituation">
<summary> <summary>
二次分配概览 二次分配概览
...@@ -6553,6 +6595,416 @@ ...@@ -6553,6 +6595,416 @@
审计状态 1 已审计 审计状态 1 已审计
</summary> </summary>
</member> </member>
<member name="T:Performance.EntityModels.per_assess_category">
<summary>
考核类别
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.Id">
<summary>
考核类别Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.AssessName">
<summary>
考核类型
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.CreateBy">
<summary>
创建人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_category.UpdateTime">
<summary>
修改时间
</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="P:Performance.EntityModels.per_assess_issue_scheme.AuditRemark">
<summary>
审核或驳回原因
</summary>
</member>
<member name="T:Performance.EntityModels.per_assess_scheme">
<summary>
考核方案
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.Id">
<summary>
考核方案Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.SchemeCode">
<summary>
考核方案编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.SchemeName">
<summary>
考核方案名称
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.SchemeRemarks">
<summary>
考核方案备注
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.CreateBy">
<summary>
创建人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme.UpdateTime">
<summary>
修改时间
</summary>
</member>
<member name="T:Performance.EntityModels.per_assess_scheme_items">
<summary>
考核方案指标项
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.Id">
<summary>
指标项Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.SchemeId">
<summary>
考核方案Id
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.AssessNorm">
<summary>
考核标准
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.CreateBy">
<summary>
创建人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.UpdateBy">
<summary>
最后修改人
</summary>
</member>
<member name="P:Performance.EntityModels.per_assess_scheme_items.UpdateTime">
<summary>
修改时间
</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"> <member name="T:Performance.EntityModels.per_batch">
<summary> <summary>
分批发放记录 分批发放记录
...@@ -9668,6 +10120,167 @@ ...@@ -9668,6 +10120,167 @@
核算单元编码 核算单元编码
</summary> </summary>
</member> </member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessCode">
<summary>
考核类型编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessName">
<summary>
考核类型
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.SchemeId">
<summary>
考核方案ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.SchemeCode">
<summary>
考核方案编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.SchemeName">
<summary>
考核方案名称
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemId">
<summary>
指标Id
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemCode">
<summary>
指标编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemName1">
<summary>
一级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.ItemName2">
<summary>
二级指标名称
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessScore">
<summary>
考核分值
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AssessNorm">
<summary>
考核标准
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.TargetUnitCode">
<summary>
考核目标核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_issue.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.AllotId">
<summary>
绩效ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.AssessId">
<summary>
考核类型ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.SchemeId">
<summary>
考核方案ID
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.ItemId">
<summary>
指标Id
</summary>
</member>
<!-- Badly formed XML comment ignored for member "P:Performance.EntityModels.Other.view_assess_result.ItemName2" -->
<member name="P:Performance.EntityModels.Other.view_assess_result.State">
<summary>
状态
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.AssessScore">
<summary>
分值标准
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.Score">
<summary>
扣分值
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.UnitCode">
<summary>
责任部门核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.UnitType">
<summary>
责任部门核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.AccountingUnit">
<summary>
责任部门核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.TargetUnitCode">
<summary>
考核目标核算单元编码
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.TargetUnitType">
<summary>
考核目标核算组别
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_assess_result.TargetAccountingUnit">
<summary>
考核目标核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.Other.view_attendance.UnitType"> <member name="P:Performance.EntityModels.Other.view_attendance.UnitType">
<summary> <summary>
人员类别 人员类别
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
using Performance.DtoModels.Response; using Performance.DtoModels.Response;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.EntityModels.Entity; using Performance.EntityModels.Entity;
using Performance.EntityModels.Other;
using Performance.Infrastructure; using Performance.Infrastructure;
using System.Linq; using System.Linq;
...@@ -278,6 +279,20 @@ public AutoMapperConfigs() ...@@ -278,6 +279,20 @@ public AutoMapperConfigs()
.ReverseMap(); .ReverseMap();
CreateMap<cof_again, CofAgainRequest>().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();
CreateMap<AttendanceData, per_attendance>().ReverseMap(); CreateMap<AttendanceData, per_attendance>().ReverseMap();
CreateMap<AttendanceVacationData, per_attendance_vacation>().ReverseMap(); CreateMap<AttendanceVacationData, per_attendance_vacation>().ReverseMap();
} }
......
...@@ -142,6 +142,25 @@ public enum OperationType ...@@ -142,6 +142,25 @@ public enum OperationType
删除 = 3, 删除 = 3,
} }
} }
public class Assess
{
public enum SchemeItemsTarget
{
全部 = 0,
已设置其他方案 = 1,
未设置方案 = 2,
已设置方案 = 4,
}
public enum AssessState
{
未提交 = 1,
待审核 = 2,
审核通过 = 3,
驳回 = 4,
}
}
public class SecondAllot public class SecondAllot
{ {
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.DtoModels.Request
{
public class AddAssessCategoryRequest
{
public int AllotId { get; set; }
public string Category { get; set; }
}
public class UpdateAssessCategoryRequest : AddAssessCategoryRequest
{
public int SchemeId { get; set; }
public int CategoryId { get; set; }
}
public class BatchAssessCategoryRequest
{
public int[] CategoryId { get; set; }
public int AllotId { get; set; }
}
}
using FluentValidation; //using FluentValidation;
using System; //using System;
using System.Collections.Generic; //using System.Collections.Generic;
using System.Text; //using System.Text;
namespace Performance.DtoModels //namespace Performance.DtoModels
{ //{
public class AssessColumnRequest // public class AssessColumnRequest
{ // {
public int ColumnID { get; set; } // public int ColumnID { get; set; }
public int AssessID { get; set; } // public int AssessID { get; set; }
public int ParentID { get; set; } // public int ParentID { get; set; }
public string ColumnName { get; set; } // public string ColumnName { get; set; }
public int Sort { get; set; } // public int Sort { get; set; }
} // }
public class AssessColumnRequestValidator : AbstractValidator<AssessColumnRequest> // public class AssessColumnRequestValidator : AbstractValidator<AssessColumnRequest>
{ // {
public AssessColumnRequestValidator() // public AssessColumnRequestValidator()
{ // {
RuleSet("Del", () => // RuleSet("Del", () =>
{ // {
RuleFor(t => t.ColumnID).NotNull().GreaterThan(0); // RuleFor(t => t.ColumnID).NotNull().GreaterThan(0);
}); // });
RuleSet("Update", () => // RuleSet("Update", () =>
{ // {
RuleFor(t => t.ColumnID).NotNull().GreaterThan(0); // RuleFor(t => t.ColumnID).NotNull().GreaterThan(0);
RuleFor(t => t.ColumnName).NotNull().NotEmpty(); // RuleFor(t => t.ColumnName).NotNull().NotEmpty();
}); // });
RuleSet("Add", () => // RuleSet("Add", () =>
{ // {
RuleFor(t => t.AssessID).NotNull().GreaterThan(0); // RuleFor(t => t.AssessID).NotNull().GreaterThan(0);
RuleFor(t => t.ParentID).NotNull().GreaterThan(-1); // RuleFor(t => t.ParentID).NotNull().GreaterThan(-1);
RuleFor(t => t.ColumnName).NotNull().NotEmpty(); // RuleFor(t => t.ColumnName).NotNull().NotEmpty();
}); // });
RuleSet("List", () => // RuleSet("List", () =>
{ // {
RuleFor(t => t.AssessID).NotNull().GreaterThan(0); // RuleFor(t => t.AssessID).NotNull().GreaterThan(0);
}); // });
} // }
} // }
} //}
using FluentValidation; //using FluentValidation;
using System; //using System;
using System.Collections.Generic; //using System.Collections.Generic;
using System.Text; //using System.Text;
namespace Performance.DtoModels //namespace Performance.DtoModels
{ //{
public class AssessDataRequest // public class AssessDataRequest
{ // {
public int AssessID { get; set; } // public int AssessID { get; set; }
public List<AssessRow> AssessRow { get; set; } // public List<AssessRow> AssessRow { get; set; }
} // }
public class AssessRow // public class AssessRow
{ // {
public int DataID { get; set; } // public int DataID { get; set; }
public string DataValue { get; set; } // public string DataValue { get; set; }
} // }
public class AssessDataRequestValidator : AbstractValidator<AssessDataRequest> // public class AssessDataRequestValidator : AbstractValidator<AssessDataRequest>
{ // {
public AssessDataRequestValidator() // public AssessDataRequestValidator()
{ // {
RuleSet("List", () => // RuleSet("List", () =>
{ // {
RuleFor(t => t.AssessID).NotNull().GreaterThan(0); // RuleFor(t => t.AssessID).NotNull().GreaterThan(0);
}); // });
RuleSet("Edit", () => // RuleSet("Edit", () =>
{ // {
RuleFor(t => t.AssessRow).NotNull().Must(p => p != null && p.Count > 0); // RuleFor(t => t.AssessRow).NotNull().Must(p => p != null && p.Count > 0);
}); // });
} // }
} // }
} //}
using FluentValidation; //using FluentValidation;
using System; //using System;
using System.Collections.Generic; //using System.Collections.Generic;
using System.Text; //using System.Text;
namespace Performance.DtoModels //namespace Performance.DtoModels
{ //{
public class AssessRequest // public class AssessRequest
{ // {
public int AssessID { get; set; } // public int AssessID { get; set; }
public int AllotID { get; set; } // public int AllotID { get; set; }
public string AssessName { get; set; } // public string AssessName { get; set; }
} // }
public class AssessRequestValidator : AbstractValidator<AssessRequest> // public class AssessRequestValidator : AbstractValidator<AssessRequest>
{ // {
public AssessRequestValidator() // public AssessRequestValidator()
{ // {
RuleSet("Del", () => // RuleSet("Del", () =>
{ // {
RuleFor(t => t.AssessID).NotNull().GreaterThan(0); // RuleFor(t => t.AssessID).NotNull().GreaterThan(0);
}); // });
RuleSet("Update", () => // RuleSet("Update", () =>
{ // {
RuleFor(t => t.AssessID).NotNull().GreaterThan(0); // RuleFor(t => t.AssessID).NotNull().GreaterThan(0);
RuleFor(t => t.AssessName).NotNull().NotEmpty(); // RuleFor(t => t.AssessName).NotNull().NotEmpty();
}); // });
RuleSet("Add", () => // RuleSet("Add", () =>
{ // {
RuleFor(t => t.AllotID).NotNull().NotEmpty(); // RuleFor(t => t.AllotID).NotNull().NotEmpty();
RuleFor(t => t.AssessName).NotNull().NotEmpty(); // RuleFor(t => t.AssessName).NotNull().NotEmpty();
}); // });
RuleSet("List", () => // RuleSet("List", () =>
{ // {
RuleFor(t => t.AllotID).NotNull().NotEmpty(); // RuleFor(t => t.AllotID).NotNull().NotEmpty();
}); // });
RuleSet("Use", () => // RuleSet("Use", () =>
{ // {
RuleFor(t => t.AllotID).NotNull().NotEmpty(); // RuleFor(t => t.AllotID).NotNull().NotEmpty();
RuleFor(t => t.AssessID).NotNull().NotEmpty(); // RuleFor(t => t.AssessID).NotNull().NotEmpty();
}); // });
} // }
} // }
} //}
namespace Performance.DtoModels.Request
{
public class QuerySchemeResultList
{
///// <summary>
///// 核算组别(页面带进来)
///// </summary>
//public string UnitType { get; set; }
///// <summary>
///// 核算单元(页面带进来)
///// </summary>
//public string AccountingUnit { get; set; }
public int SchemeId { get; set; }
public int AllotId { get; set; }
public string? TargetUnitType { get; set; }
public string? TargetAccountingUnit { get; set; }
public string? ItemName2 { get; set; }
public int Page { get; set; } = 1;
public int PageSize { get; set; } = 20;
}
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>
/// 操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
/// </summary>
public Assess.AssessState State { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string? ItemName2 { get; set; }
public int Page { get; set; } = 1;
public int PageSize { get; set; } = 20;
}
public class EditSchemeEnterAudit
{
public int AllotId { get; set; }
public int IssueId { get; set; }
public int ItemId { get; set; }
/// <summary>
/// 操作类型 未提交 = 1,待审核 = 2,审核通过 = 3,驳回 = 4,
/// </summary>
public Assess.AssessState State { get; set; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { get; set; }
}
public class EditAssessSchemeEnterRequest
{
public int IssueId { get; set; }
/// <summary>
/// 考核扣分
/// </summary>
public decimal? Score { get; set; }
/// <summary>
/// 扣分原因
/// </summary>
public string? ScoreRemark { get; set; }
}
}
using System.Collections.Generic;
namespace Performance.DtoModels.Request
{
public class AddAssessSchemeItemsRequest
{
public int AllotId { get; set; }
/// <summary>
/// 方案ID
/// </summary>
public int SchemeId { get; set; }
/// <summary>
/// 一级指标名称
/// </summary>
public string ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public decimal AssessScore { get; set; }
/// <summary>
/// 考核标准
/// </summary>
public string AssessNorm { get; set; }
/// <summary>
/// <summary>
/// 责任部门核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 责任部门核算单元
/// </summary>
public string AccountingUnit { get; set; }
}
public class UpdateAssessSchemeItemsRequest : AddAssessSchemeItemsRequest
{
public int SchemeItemsId { get; set; }
}
public class BatchAssessSchemeItemsRequest
{
public int[] SchemeItemsId { get; set; }
}
public class QuerySchemeItemsTargetList
{
public int AllotId { get; set; }
public int AssessId { get; set; }
public int SchemeId { get; set; }
public Assess.SchemeItemsTarget SchemeItemsTarget { get; set; }
public string UnitType { get; set; }
public string AccountingUnit { get; set; }
public int Page { get; set; } = 1;
public int PageSize { get; set; } = 20;
}
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; } = 1;
public int PageSize { get; set; } = 20;
}
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; }
}
}
namespace Performance.DtoModels.Request
{
public class AddAssessSchemeRequest
{
public int AllotId { get; set; }
public int CategoryId { get; set; }
public string SchemeName { get; set; }
public string SchemeRemarks { get; set; }
}
public class UpdateAssessSchemeRequest : AddAssessSchemeRequest
{
public int SchemeId { get; set; }
}
public class BatchAssessSchemeRequest
{
public int[] SchemeId { get; set; }
}
public class QuerySchemeList : AddAssessSchemeRequest
{
public int Page { get; set; } = 1;
public int PageSize { get; set; } = 20;
}
public class RecordAssessScheme : AssessSchemeDataResponse
{
public string AssessSchemeName { get; set; }
}
}
using System;
using System.Collections.Generic;
namespace Performance.DtoModels
{
public class AssessSchemeDataResponse
{
/// <summary>
/// 考核方案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 AssessCode { get; set; }
/// <summary>
/// 考核类别名称
/// </summary>
public string AssessName { get; set; }
/// <summary>
/// 考核方案编码
/// </summary>
public string SchemeCode { get; set; }
/// <summary>
/// 考核方案名称
/// </summary>
public string SchemeName { get; set; }
/// <summary>
/// 考核方案备注
/// </summary>
public string SchemeRemarks { 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
{
public int SchemeId { get; set; }
/// <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 AssessSchemeResultListResponse
{
/// <summary>
/// 考核目标核算组别
/// </summary>
public string? TargetUnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string? TargetAccountingUnit { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string? ItemName2 { get; set; }
public List<AssessSchemeDictionaryResults> DictionaryResults { get; set; }
public decimal? Score { get; set; }
/// <summary>
/// 合计
/// </summary>
public decimal? TotalAssessScore { get; set; }
}
public class AssessSchemeDictionaryResults
{
public decimal? Value { get; set; }
public string Title { 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 AssessCode { get; set; }
/// <summary>
/// 考核类型
/// </summary>
public string AssessName { get; set; }
/// <summary>
/// 考核指标Id
/// </summary>
public int? ItemId { get; set; }
/// <summary>
/// 考核指标编码
/// </summary>
public string ItemCode { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 状态
/// </summary>
public int State { get; set; }
/// <summary>
/// 提交时间
/// </summary>
public DateTime? SubmitTime { get; set; }
/// <summary>
/// 审核人
/// </summary>
public string? AuditBy { get; set; }
/// <summary>
/// 审核时间
/// </summary>
public DateTime? AuditTime { 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; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { get; set; }
/// <summary>
/// 考核标准
/// </summary>
public string AssessNorm { 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 decimal AssessScore { get; set; }
/// <summary>
/// 考核扣分
/// </summary>
public decimal? 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; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { get; set; }
/// <summary>
/// 考核标准
/// </summary>
public string AssessNorm { get; set; }
}
//上传
public class AssessSchemeItemsUploadResponse
{
/// <summary>
/// 一级指标名称
/// </summary>
public string ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public decimal 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 decimal 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; }
}
}
...@@ -212,6 +212,7 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -212,6 +212,7 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<report_performance_tags> report_performance_tags { get; set; } public virtual DbSet<report_performance_tags> report_performance_tags { get; set; }
/// <summary> </summary> /// <summary> </summary>
public virtual DbSet<report_statistics> report_statistics { get; set; } public virtual DbSet<report_statistics> report_statistics { get; set; }
/// <summary> </summary>
public virtual DbSet<report_statistics_selection> report_statistics_selection { get; set; } public virtual DbSet<report_statistics_selection> report_statistics_selection { get; set; }
public virtual DbSet<report_statistics_selection_record> report_statistics_selection_record { get; set; } public virtual DbSet<report_statistics_selection_record> report_statistics_selection_record { get; set; }
public virtual DbSet<report_statistics_store> report_statistics_store { get; set; } public virtual DbSet<report_statistics_store> report_statistics_store { get; set; }
...@@ -252,17 +253,33 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -252,17 +253,33 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<sys_user_hospital> sys_user_hospital { get; set; } public virtual DbSet<sys_user_hospital> sys_user_hospital { get; set; }
/// <summary> 用户角色关联表 </summary> /// <summary> 用户角色关联表 </summary>
public virtual DbSet<sys_user_role> sys_user_role { get; set; } public virtual DbSet<sys_user_role> sys_user_role { get; set; }
/// <summary></summary>
public virtual DbSet<sys_version> sys_version { get; set; } public virtual DbSet<sys_version> sys_version { get; set; }
/// <summary>调动记录表</summary>
public virtual DbSet<per_attendance> per_attendance { get; set; } public virtual DbSet<per_attendance> per_attendance { get; set; }
/// <summary>考勤结果</summary>
public virtual DbSet<per_attendance_dept> per_attendance_dept { get; set; } public virtual DbSet<per_attendance_dept> per_attendance_dept { get; set; }
public virtual DbSet<per_attendance_dept_report> per_attendance_dept_report { get; set; } public virtual DbSet<per_attendance_dept_report> per_attendance_dept_report { get; set; }
public virtual DbSet<per_attendance_issue> per_attendance_issue { get; set; } public virtual DbSet<per_attendance_issue> per_attendance_issue { get; set; }
/// <summary>考勤类型</summary>
public virtual DbSet<per_attendance_type> per_attendance_type { get; set; } public virtual DbSet<per_attendance_type> per_attendance_type { get; set; }
/// <summary>考勤记录表</summary>
public virtual DbSet<per_attendance_vacation> per_attendance_vacation { get; set; } public virtual DbSet<per_attendance_vacation> per_attendance_vacation { get; set; }
/// <summary>绩效分配操作记录表</summary>
public virtual DbSet<per_allot_action> per_allot_action { get; set; } public virtual DbSet<per_allot_action> per_allot_action { get; set; }
/// <summary>医院其他绩效类型</summary>
public virtual DbSet<per_apr_amount_type> per_apr_amount_type { get; set; } public virtual DbSet<per_apr_amount_type> per_apr_amount_type { get; set; }
/// <summary>不公示其他绩效类型</summary>
public virtual DbSet<per_apr_amount_hide_type> per_apr_amount_hide_type { get; set; } public virtual DbSet<per_apr_amount_hide_type> per_apr_amount_hide_type { get; set; }
/// <summary>考核分类</summary>
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_category.cs">
// * FileName: 考核类别.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 考核类别
/// </summary>
[Table("per_assess_category")]
public class per_assess_category
{
/// <summary>
/// 考核类别Id
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
/// 绩效ID
/// </summary>
public Nullable<int> AllotId { get; set; }
/// <summary>
/// 考核类型编码
/// </summary>
public string AssessCode { get; set; }
/// <summary>
/// 考核类型
/// </summary>
public string AssessName { 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; }
}
}
//-----------------------------------------------------------------------
// <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 decimal 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 decimal? 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; }
/// <summary>
/// 审核或驳回原因
/// </summary>
public string? AuditRemark { 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_scheme")]
public class per_assess_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 SchemeCode { get; set; }
/// <summary>
/// 考核方案名称
/// </summary>
public string SchemeName { get; set; }
/// <summary>
/// 考核方案备注
/// </summary>
public string SchemeRemarks { 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; }
}
}
//-----------------------------------------------------------------------
// <copyright file=" per_assess_scheme_items.cs">
// * FileName: 考核方案指标项.cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
/// 考核方案指标项
/// </summary>
[Table("per_assess_scheme_items")]
public class per_assess_scheme_items
{
/// <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 ItemCode { get; set; }
/// <summary>
/// 一级指标名称
/// </summary>
public string ItemName1 { get; set; }
/// <summary>
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 考核分值
/// </summary>
public decimal 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 CreateBy { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 最后修改人
/// </summary>
public int UpdateBy { get; set; }
/// <summary>
/// 修改时间
/// </summary>
public DateTime? UpdateTime { 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 decimal 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; }
}
}
using Performance.EntityModels.Entity;
using System;
namespace Performance.EntityModels.Other
{
public class view_assess_result
{
/// <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>
/// 指标Id
/// </summary>
public int ItemId { get; set; }
/// 二级指标名称
/// </summary>
public string ItemName2 { get; set; }
/// <summary>
/// 状态
/// </summary>
public int State { get; set; }
/// <summary>
/// 分值标准
/// </summary>
public decimal? AssessScore { get; set; }
/// <summary>
/// 扣分值
/// </summary>
public decimal? Score { get; set; }
/// <summary>
/// 责任部门核算单元编码
/// </summary>
public string UnitCode { get; set; }
/// <summary>
/// 责任部门核算组别
/// </summary>
public string UnitType { get; set; }
/// <summary>
/// 责任部门核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 考核目标核算单元编码
/// </summary>
public string TargetUnitCode { get; set; }
/// <summary>
/// 考核目标核算组别
/// </summary>
public string TargetUnitType { get; set; }
/// <summary>
/// 考核目标核算单元
/// </summary>
public string TargetAccountingUnit { get; set; }
}
}
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Dapper" Version="2.0.123" /> <PackageReference Include="Dapper" Version="2.0.123" />
<PackageReference Include="Dapper.Contrib" Version="2.0.78" /> <PackageReference Include="Dapper.Contrib" Version="2.0.78" />
<PackageReference Include="EPPlus" Version="4.5.3.2" />
<PackageReference Include="Masuit.Tools.Core" Version="2.4.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.10" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.10" />
<PackageReference Include="MySql.Data" Version="8.0.27" /> <PackageReference Include="MySql.Data" Version="8.0.27" />
<PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.1" /> <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="5.0.1" />
...@@ -15,7 +17,6 @@ ...@@ -15,7 +17,6 @@
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" /> <PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
<PackageReference Include="AutoMapper" Version="10.1.1" /> <PackageReference Include="AutoMapper" Version="10.1.1" />
<PackageReference Include="FluentValidation.AspNetCore" Version="10.3.3" /> <PackageReference Include="FluentValidation.AspNetCore" Version="10.3.3" />
<PackageReference Include="EPPlus" Version="4.5.3.2" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" /> <PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="8.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.10" /> <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.10" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.10" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="5.0.10" />
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
namespace Performance.Repository namespace Performance.Repository
{ {
/// <summary> /// <summary>
/// sys_allot Repository /// sys_allot(per_allot) Repository
/// </summary> /// </summary>
public partial class PerforPerallotRepository : PerforRepository<per_allot> public partial class PerforPerallotRepository : PerforRepository<per_allot>
{ {
...@@ -316,7 +316,11 @@ public IEnumerable<string> GetSecondWorkloadMaps(int hospitalId) ...@@ -316,7 +316,11 @@ public IEnumerable<string> GetSecondWorkloadMaps(int hospitalId)
/// <summary>
/// 考勤视图
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
public IEnumerable<view_attendance> GetAttendance(int allotId) public IEnumerable<view_attendance> GetAttendance(int allotId)
{ {
var connection = context.Database.GetDbConnection(); var connection = context.Database.GetDbConnection();
...@@ -332,6 +336,47 @@ public IEnumerable<view_attendance> GetAttendance(int allotId) ...@@ -332,6 +336,47 @@ public IEnumerable<view_attendance> GetAttendance(int allotId)
throw; throw;
} }
} }
/// <summary>
/// 考核视图
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
public IEnumerable<view_assess_issue> GetAssessIssue(int allotId)
{
var connection = context.Database.GetDbConnection();
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string query = $@"SELECT * FROM view_assess_issue where AllotId = @allotId";
return connection.Query<view_assess_issue>(query, new { allotId }, commandTimeout: 60 * 60);
}
catch (Exception)
{
throw;
}
}
/// <summary>
/// 考核结果视图
/// </summary>
/// <param name="allotId"></param>
/// <returns></returns>
public IEnumerable<view_assess_result> GetAssessResult(int allotId)
{
var connection = context.Database.GetDbConnection();
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string query = $@"SELECT * FROM view_assess_result where AllotId = @allotId";
return connection.Query<view_assess_result>(query, new { allotId }, commandTimeout: 60 * 60);
}
catch (Exception)
{
throw;
}
}
/// <summary> /// <summary>
/// 查询人员字典 /// 查询人员字典
/// </summary> /// </summary>
...@@ -428,5 +473,26 @@ public void PerAttendanceIssueBackup(int allotId) ...@@ -428,5 +473,26 @@ public void PerAttendanceIssueBackup(int allotId)
} }
} }
} }
/// <summary>
/// 考核-考核下发备份
/// </summary>
/// <param name="allot"></param>
public void PerAssessIssueSchemeBackup(int allotId)
{
using (var connection = context.Database.GetDbConnection())
{
if (connection.State != ConnectionState.Open) connection.Open();
try
{
connection.Execute("call proc_assess_issue_scheme_backup(@allotId);", new { allotId }, commandTimeout: 60 * 60);
}
catch (Exception)
{
throw;
}
}
}
} }
} }
\ No newline at end of file
...@@ -8,11 +8,11 @@ ...@@ -8,11 +8,11 @@
namespace Performance.Repository.Repository namespace Performance.Repository.Repository
{ {
public partial class PerfoPperAttendanceTypeRepository : PerforRepository<per_attendance_type>
{
/// <summary> /// <summary>
/// per_attendance_type Repository /// per_attendance_type Repository
/// </summary> /// </summary>
public partial class PerfoPperAttendanceTypeRepository : PerforRepository<per_attendance_type>
{
public PerfoPperAttendanceTypeRepository(PerformanceDbContext context) : base(context) public PerfoPperAttendanceTypeRepository(PerformanceDbContext context) : base(context)
{ {
} }
......
//-----------------------------------------------------------------------
// <copyright file=" per_assess_category.cs">
// * FileName: per_assess_category.cs
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_assess_category Repository
/// </summary>
public partial class PerforPerAssessCategoryRepository : PerforRepository<per_assess_category>
{
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_items.cs">
// * FileName: per_assess_scheme_items.cs
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_assess_scheme_items Repository
/// </summary>
public partial class PerforPerAssessSchemeItemsRepository : PerforRepository<per_assess_scheme_items>
{
public PerforPerAssessSchemeItemsRepository(PerformanceDbContext context) : base(context)
{
}
}
}
//-----------------------------------------------------------------------
// <copyright file=" per_assess_scheme.cs">
// * FileName: per_assess_scheme.cs
// </copyright>
//-----------------------------------------------------------------------
using Performance.EntityModels;
namespace Performance.Repository
{
/// <summary>
/// per_assess_scheme Repository
/// </summary>
public partial class PerforPerAssessSchemeRepository : PerforRepository<per_assess_scheme>
{
public PerforPerAssessSchemeRepository(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 Newtonsoft.Json;
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.Reflection;
namespace Performance.Services
{
public class AssessNewService : IAutoInjection
{
private readonly IMapper mapper;
private readonly ILogger<AssessNewService> logger;
private readonly IWebHostEnvironment evn;
private readonly PerforUserRepository _userRepository;
private readonly PerforCofaccountingRepository cofaccountingRepository;
private readonly PerforPerallotRepository perforPerallotRepository;
private readonly PerforPerAssessCategoryRepository perforPerAssessCategoryRepository;
private readonly PerforPerAssessSchemeRepository perforPerAssessSchemeRepository;
private readonly PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository;
private readonly PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository;
private readonly PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository;
public AssessNewService(
IMapper mapper,
ILogger<AssessNewService> logger,
IWebHostEnvironment evn,
PerforPerAssessCategoryRepository perforPerAssessCategoryRepository,
PerforPerallotRepository perforPerallotRepository,
PerforPerAssessSchemeRepository perforPerAssessSchemeRepository,
PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository,
PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository,
PerforCofaccountingRepository cofaccountingRepository,
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforUserRepository userRepository
)
{
this.mapper = mapper;
this.logger = logger;
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 = perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allotId);
if (result != null)
result = result.OrderByDescending(w => w.UpdateTime).ToList();
return new ApiResponse<List<per_assess_category>>(ResponseType.OK, result);
}
public ApiResponse CategoryAdd(AddAssessCategoryRequest request, int userid)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
throw new PerformanceException("当前绩效记录不存在");
var categoryData = perforPerAssessCategoryRepository.GetEntities();
var temp = categoryData.FirstOrDefault(w => w.AllotId == request.AllotId && w.AssessName == request.Category);
if (temp != null)
throw new PerformanceException("当前考核类别已存在");
int codeMax = 0;
if (categoryData.Any())
int.TryParse(categoryData.Max(w => w.AssessCode.Substring(1)), out codeMax);
string assessCode = codeMax <= 99 ? $"A{(codeMax + 1):D3}" : $"A{codeMax + 1}";
var dateTime = DateTime.Now;
var per_assess_category = new per_assess_category()
{
AllotId = request.AllotId,
AssessCode = assessCode,
AssessName = request.Category,
CreateBy = userid,
CreateTime = dateTime,
UpdateBy = userid,
UpdateTime = dateTime,
};
if (perforPerAssessCategoryRepository.Add(per_assess_category))
return new ApiResponse(ResponseType.OK, "添加成功");
else return new ApiResponse(ResponseType.Fail, "添加失败");
}
public ApiResponse CategoryUpdate(UpdateAssessCategoryRequest request, int userid)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
throw new PerformanceException("当前绩效记录不存在");
var any = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
if (any == null)
throw new PerformanceException("当前操作错误,请刷新后重试");
any.AllotId = request.AllotId;
any.AssessName = request.Category;
any.UpdateBy = userid;
var dateTime = DateTime.Now;
any.UpdateTime = dateTime;
if (perforPerAssessCategoryRepository.Update(any))
return new ApiResponse(ResponseType.OK, "修改成功");
else return new ApiResponse(ResponseType.Fail, "修改失败");
}
public ApiResponse CategoryDelete(BatchAssessCategoryRequest request)
{
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));
if (any == null)
throw new PerformanceException("当前操作错误,请刷新后重试");
if (perforPerAssessCategoryRepository.RemoveRange(any.ToArray()))
return new ApiResponse(ResponseType.OK, "删除成功");
else return new ApiResponse(ResponseType.Fail, "删除失败");
}
public ApiResponse<List<PerAssessmentStatisticsResponse>> CategoryIssueCheck(UpdateAssessCategoryRequest request)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == request.AllotId);
if (allot == null)
throw new PerformanceException("当前绩效记录不存在");
var issueDatas = perforPerallotRepository.GetAssessIssue(request.AllotId);
var issueSchemeDatas = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == request.AllotId);
if (request.CategoryId > 0)
{
issueDatas = issueDatas.Where(w => w.AssessId == request.CategoryId).ToList();
issueSchemeDatas = issueSchemeDatas.Where(w => w.AssessId == request.CategoryId).ToList();
}
if (request.SchemeId > 0)
{
issueDatas = issueDatas.Where(w => w.SchemeId == request.SchemeId).ToList();
issueSchemeDatas = issueSchemeDatas.Where(w => w.SchemeId == request.SchemeId).ToList();
}
if (issueDatas.Count() <= 0 || !issueDatas.Any())
throw new PerformanceException("未设置考核内容或未设置考核单元!");
var statisticdates = new List<PerAssessmentStatisticsResponse>();
Func<per_assess_issue_scheme, view_assess_issue, bool> func = (schemes, issues) =>
{
var result =
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.TargetUnitType &&
schemes.TargetAccountingUnit == issues.TargetAccountingUnit;
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(UpdateAssessCategoryRequest request, int userid)
{
var categoryIssueCheck = CategoryIssueCheck(request).Data;
if (categoryIssueCheck == null)
throw new PerformanceException("暂无数据需要下发");
var schemedatas = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == request.AllotId);
if (request.CategoryId > 0)
{
schemedatas = schemedatas.Where(w => w.AssessId == request.CategoryId).ToList();
}
if (request.SchemeId > 0)
{
schemedatas = schemedatas.Where(w => w.SchemeId == request.SchemeId).ToList();
}
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();
var dateTime = DateTime.Now;
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 = null,
ScoreRemark = "",
AccountingUnit = item.AccountingUnit,
TargetUnitCode = item.TargetUnitCode,
TargetUnitType = item.TargetUnitType,
TargetAccountingUnit = item.TargetAccountingUnit,
State = (int)Assess.AssessState.未提交,
CreateBy = userid,
CreateTime = dateTime,
UpdateBy = userid,
UpdateTime = dateTime,
};
}).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.Score = null;
data.ScoreRemark = "";
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;
data.SubmitBy = null;
data.SubmitTime = null;
data.AuditBy = null;
data.AuditTime = null;
data.AuditRemark = 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 PagedList<AssessSchemeDataResponse> SchemeList(QuerySchemeList query)
{
var scheme = perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == query.AllotId);
var category = perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == query.AllotId);
if (query.CategoryId > 0)
{
scheme = scheme.Where(w => w.AssessId == query.CategoryId).ToList();
category = category.Where(w => w.Id == query.CategoryId).ToList();
}
var result = mapper.Map<List<AssessSchemeDataResponse>>(scheme);
foreach (var item in result)
{
item.AssessCode = category.FirstOrDefault(w => w.Id == item.AssessId).AssessCode;
item.AssessName = category.FirstOrDefault(w => w.Id == item.AssessId).AssessName;
}
result = result.OrderByDescending(w => w.UpdateTime).ToList();
if (!string.IsNullOrEmpty(query.SchemeName))
result = result.Where(w => w.SchemeName.Contains(query.SchemeName)).ToList();
var totalItems = result.Count();
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<AssessSchemeDataResponse>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
public ApiResponse SchemeAdd(AddAssessSchemeRequest request, int userid)
{
var categorydata = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
if (categorydata == null)
throw new PerformanceException("当前考核类别不存在");
var schemeData = perforPerAssessSchemeRepository.GetEntities();
var temp = schemeData.FirstOrDefault(w => w.AllotId == categorydata.AllotId && w.SchemeName == request.SchemeName);
if (temp != null)
throw new PerformanceException("当前考核方案已存在");
//查询最大编号或赋初始值
int codeMax = 0;
if (schemeData.Any())
int.TryParse(schemeData.Max(w => w.SchemeCode.Substring(1)), out codeMax);
string schemeCode = codeMax <= 101009 ? $"B{101010}" : $"B{codeMax + 1}";
var dateTime = DateTime.Now;
var per_assess_scheme = new per_assess_scheme()
{
AllotId = categorydata.AllotId,
AssessId = request.CategoryId,
SchemeCode = schemeCode,
SchemeName = request.SchemeName,
SchemeRemarks = request.SchemeRemarks,
CreateBy = userid,
CreateTime = dateTime,
UpdateBy = userid,
UpdateTime = dateTime,
};
if (perforPerAssessSchemeRepository.Add(per_assess_scheme))
return new ApiResponse(ResponseType.OK, "添加成功");
else return new ApiResponse(ResponseType.Fail, "添加失败");
}
public ApiResponse<UpdateAssessSchemeRequest> SchemeUpdate(UpdateAssessSchemeRequest request, int userid)
{
var categorydata = perforPerAssessCategoryRepository.GetEntity(w => w.Id == request.CategoryId);
if (categorydata == null)
throw new PerformanceException("当前考核类别不存在");
var any = perforPerAssessSchemeRepository.GetEntity(w => w.Id == request.SchemeId);
any.AssessId = request.CategoryId;
any.SchemeName = request.SchemeName;
any.SchemeRemarks = request.SchemeRemarks;
any.UpdateBy = userid;
any.UpdateTime = DateTime.Now;
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 temp1 = perforPerAssessSchemeTargetRepository.GetEntity(w => request.SchemeId.Contains(w.SchemeId));
if (temp1 != null || temp1?.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, List<ExcelDownloadHeads> headList)
{
var data = new List<Dictionary<string, object>>();
foreach (var obj in rows)
{
Dictionary<string, object> nobj = new Dictionary<string, object>();
foreach (var item in obj)
{
var lower = item.Key.ToLower();
if (lower.Contains("etime"))
nobj[lower] = Convert.ToDateTime(item.Value).ToString("d");
else if (lower.Contains("results"))
{
var detRows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(item.Value.ToString());
foreach (var detlist in detRows)
{
object value = null;
foreach (var detitem in detlist)
{
if (detitem.Key.Equals("Value", StringComparison.OrdinalIgnoreCase))
value = detitem.Value;
if (detitem.Key.Equals("Title", StringComparison.OrdinalIgnoreCase))
nobj[detitem.Value.ToString()] = value;
}
}
}
else nobj[lower] = item.Value;
}
data.Add(nobj);
}
var dpath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files");
if (!Directory.Exists(dpath)) Directory.CreateDirectory(dpath);
string filepath = Path.Combine(dpath, $"{name}{DateTime.Now:yyyyMMdd}");
if (File.Exists(filepath)) File.Delete(filepath);
using (FileStream fs = new FileStream(filepath, FileMode.OpenOrCreate))
using (ExcelPackage package = new ExcelPackage(fs))
{
var worksheet = package.Workbook.Worksheets.Add(name);
for (int col = 0; col < headList.Count; col++)
{
worksheet.SetValue(1, col + 1, headList[col].Alias);
}
for (int col = 0; col < headList.Count; col++)
{
for (int row = 0; row < data.Count(); row++)
{
var temp = data.ElementAt(row);
var low = temp.Keys.ToString().ToLower();
var value = temp.GetValue(headList[col].Name, "");
worksheet.Cells[row + 2, col + 1].Value = value;
}
}
#region 样式设置
for (int row = worksheet.Dimension.Start.Row; row <= worksheet.Dimension.End.Row; row++)
{
worksheet.Row(row).Height = 20;
for (int col = worksheet.Dimension.Start.Column; col <= worksheet.Dimension.End.Column; col++)
{
worksheet.Cells[row, col].Style.Border.BorderAround(ExcelBorderStyle.Thin);
worksheet.Cells[row, col].Style.VerticalAlignment = ExcelVerticalAlignment.Center;
worksheet.Cells[row, col].Style.HorizontalAlignment = ExcelHorizontalAlignment.Center;
}
}
worksheet.Cells[1, 1, 1, headList.Count].Style.Font.Bold = true;
worksheet.View.FreezePanes(1, 1);
worksheet.Cells.AutoFitColumns();
for (int col = worksheet.Dimension.Start.Column; col <= worksheet.Dimension.End.Column; col++)
{
worksheet.Column(col).Width = worksheet.Column(col).Width > 20 ? 20 : worksheet.Column(col).Width;
}
#endregion
package.Save();
}
return filepath;
}
#endregion
#region 考核指标
// 考核指标项列表
public PagedList<per_assess_scheme_items> SchemeItemsList(QuerySchemeItemsList query)
{
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.Count();
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<per_assess_scheme_items>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
// 考核指标项新增
public ApiResponse<AddAssessSchemeItemsRequest> SchemeItemsAdd(AddAssessSchemeItemsRequest request, int userid)
{
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.SchemeId == request.SchemeId && w.ItemName2 == request.ItemName2);
if (temp != null)
throw new PerformanceException("当前指标已存在");
int codeMax = 0;
if (categoryData.Any())
int.TryParse(categoryData.Max(w => w.ItemCode.Substring(1)), out codeMax);
string code = codeMax <= 1009 ? $"C{1010}" : $"C{codeMax + 1}";
var dateTime = DateTime.Now;
var data = mapper.Map<per_assess_scheme_items>(request);
data.AllotId = request.AllotId;
data.AssessId = scheme.AssessId;
data.ItemCode = code;
data.UnitCode = cofAccounting.Code;
data.CreateBy = userid;
data.CreateTime = dateTime;
data.UpdateBy = userid;
data.UpdateTime = dateTime;
if (perforPerAssessSchemeItemsRepository.Add(data)) return new ApiResponse<AddAssessSchemeItemsRequest>(ResponseType.OK, "添加成功");
else return new ApiResponse<AddAssessSchemeItemsRequest>(ResponseType.Fail, "添加失败");
}
// 考核指标项修改
public ApiResponse<UpdateAssessSchemeItemsRequest> SchemeItemsUpdate(UpdateAssessSchemeItemsRequest request, int userid)
{
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 PagedList<AssessSchemeTargetResponse> SchemeItemsTargetList(QuerySchemeItemsTargetList query)
{
//查询全部的方案
var schemes = perforPerAssessSchemeRepository.GetEntities(w => w.AllotId == query.AllotId);
if (schemes == null || !schemes.Any())
throw new PerformanceException("未找到方案");
//查询方案的考核对象
var schemeTargets = perforPerAssessSchemeTargetRepository.GetEntities(w => w.AssessId == query.AssessId && 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);
if (cofaccounting.Count() == 0 || !cofaccounting.Any())
throw new PerformanceException("暂无核算单元数据");
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.SchemeId = currentScheme.SchemeId;
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.TargetId = otherScheme.Id;
data.SchemeId = otherScheme.SchemeId;
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.已设置方案).ToList();
result = result.OrderBy(w => Array.IndexOf(stateOrders, w.SchemeState)).ToList();
result = result.Where(w => (string.IsNullOrEmpty(query.UnitType) || w.UnitType.Contains(query.UnitType))
&& (string.IsNullOrEmpty(query.AccountingUnit) || w.AccountingUnit.Contains(query.AccountingUnit))).ToList();
var totalItems = result.Count();
var pagedIssueSchemes = result.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<AssessSchemeTargetResponse>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
// 考核对象核算单元保存
public ApiResponse SchemeItemsTargetSave(TargetAssessSchemeItemsRequest request, int userid)
{
if (!request.SchemeTargetResponse.Any())
throw new PerformanceException("当前没有需要添加或者修改的内容");
var schemes = perforPerAssessSchemeRepository.GetEntity(w => w.Id == request.SchemeId);
var dateTime = DateTime.Now;
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;
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;
data.UpdateBy = userid;
data.UpdateTime = dateTime;
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);
if (datas.Count == 0 || !datas.Any())
throw new PerformanceException("未在文件中找到数据");
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(!decimal.TryParse(eAssessScore, out decimal eAScore), item.index, "", eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核分值填写无效,请检查后重试!");
error.AddIf(eAScore == 0, item.index, "", eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "考核分值不能为0,请检查后重试!");
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, "考核单元名称空值无效,请检查后重试!");
var cofaccountingdata = cofaccountingdatas.FirstOrDefault(w => w.AccountingUnit == eAccountingUnit && w.UnitType == eUnitType);
error.AddIf(cofaccountingdata == null, item.index, "", eItemName1, eItemName2, eAssessScore, eAssessNorm, eAccountingUnit, "未找到相关考核单元组别或者考核单元名称,请检查后重试!");
if (cofaccountingdata == null) continue;
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 = cofaccountingdata.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 = cofaccountingdata.Code,
UnitType = eUnitType,
AccountingUnit = eAccountingUnit,
OperationType = (int)Attendance.OperationType.修改
};
}
upload.Add(data);
}
if (error.Any())
return new ApiResponse(ResponseType.WarningTable, "操作被拒绝,详细请看更多信息", 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 || categoryData.Id < 0)
throw new PerformanceException("方案有误,请刷新重试!");
var itemsDatas = perforPerAssessSchemeItemsRepository.GetEntities(w => w.AllotId == allotId);
var dataDelete = itemsDatas.Where(t => t.SchemeId == schemeId);
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.Any())
int.TryParse(itemsDatas.Max(w => w.ItemCode.Substring(1)), out codeMax);
string code = codeMax <= 1009 ? $"C{1010 + sort}" : $"C{codeMax + sort}";
t.ItemCode = code;
});
var dataUpdates = upload.Where(w => w.OperationType == (int)Attendance.OperationType.修改).ToList();
//删除
var dataDeletes = from temp1 in dataDelete
join temp2 in dataUpdates
on temp1.ItemCode equals temp2.ItemCode into tempJoin
from temp2 in tempJoin.DefaultIfEmpty()
where temp2 == null
select temp1;
var dateTime = DateTime.Now;
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,
UpdateBy = userid,
UpdateTime = dateTime,
};
}).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;
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 stateOrders = new int[] { (int)Assess.AssessState.待审核, (int)Assess.AssessState.驳回, (int)Assess.AssessState.审核通过, (int)Assess.AssessState.未提交 };
var items = issueSchemes.GroupBy(w => new { w.AssessId, w.AssessCode, w.AssessName, w.AssessNorm, w.ItemId, w.ItemCode, w.ItemName2, w.UnitType, w.AccountingUnit })
.Select(w => new AssessSchemeEnterListResponse
{
AssessId = w.Key.AssessId,
AssessCode = w.Key.AssessCode,
AssessName = w.Key.AssessName,
AssessNorm = w.Key.AssessNorm,
UnitType = w.Key.UnitType,
AccountingUnit = w.Key.AccountingUnit,
ItemId = w.Key.ItemId,
ItemCode = w.Key.ItemCode,
ItemName2 = w.Key.ItemName2,
Count = w.Count(),
SubmitTime = w.OrderByDescending(o => o.SubmitTime).Select(s => s.SubmitTime).FirstOrDefault(),
AuditBy = w.OrderByDescending(o => o.AuditTime).Select(s => s.AuditBy).FirstOrDefault(),
AuditTime = w.OrderByDescending(o => o.AuditTime).Select(s => s.AuditTime).FirstOrDefault(),
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.待审核),
AuditRemark = string.Join(";", w.Select(p => p.AuditRemark).Where(s => !string.IsNullOrEmpty(s)).Distinct()),
}).ToList();
foreach (var item in items)
{
item.State = (int)Assess.AssessState.未提交;
if (item.AwaitCount > 0)
item.State = (int)Assess.AssessState.待审核;
if (item.RejectCount > 0)
item.State = (int)Assess.AssessState.驳回;
else if (item.ConfirmCount == item.Count)
item.State = (int)Assess.AssessState.审核通过;
}
items = items.OrderBy(w => stateOrders.Contains(w.State) ? Array.IndexOf(stateOrders, w.State) : int.MaxValue).ToList();
return new ApiResponse<List<AssessSchemeEnterListResponse>>(ResponseType.OK, items);
}
public PagedList<AssessSchemeResultListResponse> SchemeResultList(QuerySchemeResultList query)
{
var allot = perforPerallotRepository.GetEntity(w => w.ID == query.AllotId);
if (allot == null)
throw new PerformanceException("当前绩效记录不存在");
var viewAResult = perforPerallotRepository.GetAssessResult(query.AllotId);
var viewAResultQuery = viewAResult.AsQueryable();
if (query.SchemeId > 0)
viewAResultQuery = viewAResultQuery.Where(w => w.SchemeId == query.SchemeId);
if (!string.IsNullOrEmpty(query.TargetUnitType))
viewAResultQuery = viewAResultQuery.Where(w => w.TargetUnitType == query.TargetUnitType);
if (!string.IsNullOrEmpty(query.TargetAccountingUnit))
viewAResultQuery = viewAResultQuery.Where(w => w.TargetAccountingUnit == query.TargetAccountingUnit);
if (!string.IsNullOrEmpty(query.ItemName2))
viewAResultQuery = viewAResultQuery.Where(w => w.ItemName2 == query.ItemName2);
var result = viewAResultQuery.ToList();
var data = result.Select(item =>
{
return new AssessSchemeResultListResponse()
{
TargetUnitType = item.TargetUnitType,
TargetAccountingUnit = item.TargetAccountingUnit,
ItemName2 = item.ItemName2,
Score = (item.Score==null?0: item.Score) + item.AssessScore,
};
}).ToList();
var columns = data.Select(item => item.ItemName2).Distinct().ToList();
var results = data.GroupBy(item => new { item.TargetUnitType, item.TargetAccountingUnit })
.Select(t =>
{
var dict = new Dictionary<string, object>
{
{ "TargetUnitType" , t.Key.TargetUnitType },
{ "TargetAccountingUnit" , t.Key.TargetAccountingUnit },
};
var newResultss = new List<AssessSchemeDictionaryResults>();
foreach (var column in columns)
{
var score = t.FirstOrDefault(w => w.ItemName2 == column).Score;
dict.Add(column, score);
var newResults = new AssessSchemeDictionaryResults()
{
Title = column,
Value = score
};
newResultss.Add(newResults);
}
var totalAssessScore = dict.Where(w => columns.Contains(w.Key)).Sum(w => (decimal?)w.Value);
dict.AddOrUpdate("TotalAssessScore", totalAssessScore);
return new AssessSchemeResultListResponse()
{
TargetUnitType = t.Key.TargetUnitType,
TargetAccountingUnit = t.Key.TargetAccountingUnit,
DictionaryResults = newResultss,
TotalAssessScore = totalAssessScore
};
}).ToList();
var totalItems = results.Count();
var pagedIssueSchemes = results.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<AssessSchemeResultListResponse>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
public PagedList<AssessSchemeEnterDetaiListResponse> SchemeEnterDetailList(QuerySchemeEnterDetailList query)
{
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == query.AllotId);
if (!issueSchemes.Any())
throw new PerformanceException("暂无数据");
var issueSchemesQuery = issueSchemes.AsQueryable();
if (query.ItemId > 0)
issueSchemesQuery = issueSchemesQuery.Where(w => w.ItemId == query.ItemId);
if (!string.IsNullOrEmpty(query.TargetUnitType))
issueSchemesQuery = issueSchemesQuery.Where(w => w.TargetUnitType == query.TargetUnitType);
if (!string.IsNullOrEmpty(query.TargetAccountingUnit))
issueSchemesQuery = issueSchemesQuery.Where(w => w.TargetAccountingUnit == query.TargetAccountingUnit);
if (!string.IsNullOrEmpty(query.ItemName2))
issueSchemesQuery = issueSchemesQuery.Where(w => w.ItemName2 == query.ItemName2);
if ((int)query.State == (int)Assess.AssessState.审核通过)
issueSchemesQuery = issueSchemesQuery.Where(w => w.State == (int)query.State);
var result = issueSchemesQuery.ToList();
var stateOrders = new int[] { (int)Assess.AssessState.待审核, (int)Assess.AssessState.驳回, (int)Assess.AssessState.审核通过, (int)Assess.AssessState.未提交 };
var datas = mapper.Map<List<AssessSchemeEnterDetaiListResponse>>(result);
datas = datas.OrderBy(w => stateOrders.Contains(w.State) ? Array.IndexOf(stateOrders, w.State) : int.MaxValue).ToList();
var totalItems = datas.Count();
var pagedIssueSchemes = datas.Skip((query.Page - 1) * query.PageSize).Take(query.PageSize).ToList();
return new PagedList<AssessSchemeEnterDetaiListResponse>(pagedIssueSchemes, query.Page, query.PageSize, totalItems);
}
public ApiResponse SchemeEnterAudit(EditSchemeEnterAudit audit, string realName)
{
var issueSchemes = perforPerAssessIssueSchemeRepository.GetEntities(w => w.AllotId == audit.AllotId && w.ItemId == audit.ItemId);
if (audit.IssueId > 0)
issueSchemes = issueSchemes.Where(w => w.Id == audit.IssueId).ToList();
var temp = issueSchemes.FirstOrDefault(w => w.State == (int)Assess.AssessState.未提交);
if (temp != null || temp?.Id > 0)
throw new PerformanceException("未提交的数据无法审核");
var dateTime = DateTime.Now;
foreach (var issueScheme in issueSchemes)
{
issueScheme.State = (int)audit.State;
issueScheme.AuditRemark = audit.AuditRemark;
issueScheme.AuditBy = realName;
issueScheme.AuditTime = dateTime;
}
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.State = (int)Assess.AssessState.未提交;
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 && w.State != (int)Assess.AssessState.审核通过);
if (!issueSchemes.Any())
throw new PerformanceException("未找到需要提交的数据,请稍后在试");
var dateTime = DateTime.Now;
foreach (var item in issueSchemes)
{
item.AuditBy = null;
item.AuditTime = null;
item.AuditRemark = null;
item.State = (int)Assess.AssessState.待审核;
item.SubmitBy = userid;
item.SubmitTime = dateTime;
item.UpdateBy = userid;
item.UpdateTime = dateTime;
}
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);
if (itemsDatas == null || itemsDatas.Id < 0)
throw new PerformanceException("上传失败,请刷新后重新上传!");
//查询下发结果
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);
if (datas.Count == 0 || !datas.Any())
throw new PerformanceException("未在文件中找到数据");
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 eTargetUnitType = item.value.GetOrAdd("核算组别", "")?.ToString() ?? "";
var eTargetAccountingUnit = 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;
decimal.TryParse(eAssessScore, out decimal 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(!decimal.TryParse(eScore, out decimal 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 == 0 ? null : escore;
issueData.ScoreRemark = eScoreRemark;
issueData.UpdateBy = userid;
issueData.UpdateTime = DateTime.Now;
issues.Add(issueData);
}
if (error.Any())
return new ApiResponse(ResponseType.WarningTable, "操作被拒绝,详细请看更多信息", 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);
}
}
}
}
}
using Performance.DtoModels; //using Performance.DtoModels;
using Performance.EntityModels; //using Performance.EntityModels;
using Performance.Infrastructure; //using Performance.Infrastructure;
using Performance.Repository; //using Performance.Repository;
using System; //using System;
using System.Collections.Generic; //using System.Collections.Generic;
using System.Linq; //using System.Linq;
using System.Text; //using System.Text;
namespace Performance.Services //namespace Performance.Services
{ //{
public class AssessService : IAutoInjection // public class AssessService : IAutoInjection
{ // {
private PerforAsassessRepository perforAsassessRepository; // private PerforAsassessRepository perforAsassessRepository;
private PerforAsdataRepository perforAsdataRepository; // private PerforAsdataRepository perforAsdataRepository;
private PerforAscolumnsRepository perforAscolumnsRepository; // private PerforAscolumnsRepository perforAscolumnsRepository;
private PerforAstempassessRepository perforAstempassessRepository; // private PerforAstempassessRepository perforAstempassessRepository;
private PerforAstempcolumnsRepository perforAstempcolumnsRepository; // private PerforAstempcolumnsRepository perforAstempcolumnsRepository;
private PerforPerallotRepository perforPerallotRepository; // private PerforPerallotRepository perforPerallotRepository;
private PerforImemployeeRepository perforImemployeeRepository; // private PerforImemployeeRepository perforImemployeeRepository;
private PerforImaccountbasicRepository perforImaccountbasicRepository; // private PerforImaccountbasicRepository perforImaccountbasicRepository;
public AssessService(PerforAsassessRepository perforAsassessRepository, // public AssessService(PerforAsassessRepository perforAsassessRepository,
PerforAsdataRepository perforAsdataRepository, // PerforAsdataRepository perforAsdataRepository,
PerforAscolumnsRepository perforAscolumnsRepository, // PerforAscolumnsRepository perforAscolumnsRepository,
PerforAstempassessRepository perforAstempassessRepository, // PerforAstempassessRepository perforAstempassessRepository,
PerforAstempcolumnsRepository perforAstempcolumnsRepository, // PerforAstempcolumnsRepository perforAstempcolumnsRepository,
PerforPerallotRepository perforPerallotRepository, // PerforPerallotRepository perforPerallotRepository,
PerforImemployeeRepository perforImemployeeRepository, // PerforImemployeeRepository perforImemployeeRepository,
PerforImaccountbasicRepository perforImaccountbasicRepository) // PerforImaccountbasicRepository perforImaccountbasicRepository)
{ // {
this.perforAsassessRepository = perforAsassessRepository; // this.perforAsassessRepository = perforAsassessRepository;
this.perforAsdataRepository = perforAsdataRepository; // this.perforAsdataRepository = perforAsdataRepository;
this.perforAscolumnsRepository = perforAscolumnsRepository; // this.perforAscolumnsRepository = perforAscolumnsRepository;
this.perforAstempassessRepository = perforAstempassessRepository; // this.perforAstempassessRepository = perforAstempassessRepository;
this.perforAstempcolumnsRepository = perforAstempcolumnsRepository; // this.perforAstempcolumnsRepository = perforAstempcolumnsRepository;
this.perforPerallotRepository = perforPerallotRepository; // this.perforPerallotRepository = perforPerallotRepository;
this.perforImemployeeRepository = perforImemployeeRepository; // this.perforImemployeeRepository = perforImemployeeRepository;
this.perforImaccountbasicRepository = perforImaccountbasicRepository; // this.perforImaccountbasicRepository = perforImaccountbasicRepository;
} // }
#region 考核类别 // #region 考核类别
/// <summary> // /// <summary>
/// 考核类别列表 // /// 考核类别列表
/// </summary> // /// </summary>
/// <param name="allotID"></param> // /// <param name="allotID"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse AssessList(int allotID) // public ApiResponse AssessList(int allotID)
{ // {
var list = perforAsassessRepository.GetEntities(t => t.AllotID == allotID); // var list = perforAsassessRepository.GetEntities(t => t.AllotID == allotID);
return new ApiResponse(ResponseType.OK, list); // return new ApiResponse(ResponseType.OK, list);
} // }
/// <summary> // /// <summary>
/// 新增 // /// 新增
/// </summary> // /// </summary>
/// <param name="allotID"></param> // /// <param name="allotID"></param>
/// <param name="assessName"></param> // /// <param name="assessName"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse AddAssess(int allotID, string assessName) // public ApiResponse AddAssess(int allotID, string assessName)
{ // {
var entity = perforAsassessRepository.GetEntities(t => t.AllotID == allotID && t.AssessName == assessName); // var entity = perforAsassessRepository.GetEntities(t => t.AllotID == allotID && t.AssessName == assessName);
if (entity != null && entity.Count > 0) // if (entity != null && entity.Count > 0)
return new ApiResponse(ResponseType.Fail, "考核类别重复"); // return new ApiResponse(ResponseType.Fail, "考核类别重复");
var assess = new as_assess { AllotID = allotID, AssessName = assessName }; // var assess = new as_assess { AllotID = allotID, AssessName = assessName };
var result = perforAsassessRepository.Add(assess); // var result = perforAsassessRepository.Add(assess);
return result ? new ApiResponse(ResponseType.OK, assess) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK, assess) : new ApiResponse(ResponseType.Fail);
} // }
/// <summary> // /// <summary>
/// 修改 // /// 修改
/// </summary> // /// </summary>
/// <param name="assessID"></param> // /// <param name="assessID"></param>
/// <param name="assessName"></param> // /// <param name="assessName"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse EditAssess(int assessID, string assessName) // public ApiResponse EditAssess(int assessID, string assessName)
{ // {
var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID); // var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID);
if (entity == null) // if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核类别ID无效"); // return new ApiResponse(ResponseType.Fail, "考核类别ID无效");
entity.AssessName = assessName; // entity.AssessName = assessName;
var result = perforAsassessRepository.Update(entity); // var result = perforAsassessRepository.Update(entity);
return result ? new ApiResponse(ResponseType.OK, entity) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK, entity) : new ApiResponse(ResponseType.Fail);
} // }
/// <summary> // /// <summary>
/// 删除 // /// 删除
/// </summary> // /// </summary>
/// <param name="assessID"></param> // /// <param name="assessID"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse DelAssess(int assessID) // public ApiResponse DelAssess(int assessID)
{ // {
var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID); // var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID);
if (entity == null) // if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核类别ID无效"); // return new ApiResponse(ResponseType.Fail, "考核类别ID无效");
var result = perforAsassessRepository.Remove(entity); // var result = perforAsassessRepository.Remove(entity);
var columns = perforAscolumnsRepository.GetEntities(t => t.AssessID == assessID); // var columns = perforAscolumnsRepository.GetEntities(t => t.AssessID == assessID);
if (result && columns != null && columns.Count > 0) // if (result && columns != null && columns.Count > 0)
result = perforAscolumnsRepository.RemoveRange(columns.ToArray()); // result = perforAscolumnsRepository.RemoveRange(columns.ToArray());
return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail);
} // }
/// <summary> // /// <summary>
/// 科室考核类别归纳 // /// 科室考核类别归纳
/// </summary> // /// </summary>
/// <param name="request"></param> // /// <param name="request"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse SetAssessType(SetAssessRequest request) // public ApiResponse SetAssessType(SetAssessRequest request)
{ // {
var entity = perforAsassessRepository.GetEntity(t => t.ID == request.AssessID); // var entity = perforAsassessRepository.GetEntity(t => t.ID == request.AssessID);
if (entity == null) // if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核类别ID无效"); // return new ApiResponse(ResponseType.Fail, "考核类别ID无效");
var entities = perforAsdataRepository.GetEntities(t => t.AllotID == request.AllotID); // var entities = perforAsdataRepository.GetEntities(t => t.AllotID == request.AllotID);
if (entities != null) // if (entities != null)
{ // {
//保留共有 // //保留共有
var intersectList = entities.Where(t => t.AssessID == request.AssessID).Select(t => t.Department).Intersect(request.Department).ToList(); // var intersectList = entities.Where(t => t.AssessID == request.AssessID).Select(t => t.Department).Intersect(request.Department).ToList();
if (intersectList != null && intersectList.Count() > 0) // if (intersectList != null && intersectList.Count() > 0)
intersectList.ForEach(t => request.Department.Remove(t)); // intersectList.ForEach(t => request.Department.Remove(t));
//删除更改 // //删除更改
var removeList = perforAsdataRepository.GetEntities(t => !intersectList.Contains(t.Department) && t.AssessID == request.AssessID); // var removeList = perforAsdataRepository.GetEntities(t => !intersectList.Contains(t.Department) && t.AssessID == request.AssessID);
if (removeList != null && removeList.Count() > 0) // if (removeList != null && removeList.Count() > 0)
perforAsdataRepository.RemoveRange(removeList.ToArray()); // perforAsdataRepository.RemoveRange(removeList.ToArray());
} // }
//添加新增 // //添加新增
var addList = request.Department.Select(t => new as_data { AllotID = request.AllotID, AssessID = request.AssessID, Department = t }).ToArray(); // var addList = request.Department.Select(t => new as_data { AllotID = request.AllotID, AssessID = request.AssessID, Department = t }).ToArray();
var result = (addList != null && addList.Count() > 0) ? perforAsdataRepository.AddRange(addList) : true; // var result = (addList != null && addList.Count() > 0) ? perforAsdataRepository.AddRange(addList) : true;
return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail);
} // }
#endregion // #endregion
#region 考核项 // #region 考核项
/// <summary> // /// <summary>
/// 列头列表 // /// 列头列表
/// </summary> // /// </summary>
/// <param name="assessID"></param> // /// <param name="assessID"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse ColumnList(int assessID) // public ApiResponse ColumnList(int assessID)
{ // {
var list = perforAscolumnsRepository.GetEntities(t => t.AssessID == assessID).OrderBy(t => t.ParentID).ThenBy(t => t.Sort); // var list = perforAscolumnsRepository.GetEntities(t => t.AssessID == assessID).OrderBy(t => t.ParentID).ThenBy(t => t.Sort);
return new ApiResponse(ResponseType.OK, list); // return new ApiResponse(ResponseType.OK, list);
} // }
/// <summary> // /// <summary>
/// 新增考核项 // /// 新增考核项
/// </summary> // /// </summary>
/// <param name="assessID"></param> // /// <param name="assessID"></param>
/// <param name="parentID"></param> // /// <param name="parentID"></param>
/// <param name="columnName"></param> // /// <param name="columnName"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse AddColumn(int assessID, int parentID, string columnName, int sort) // public ApiResponse AddColumn(int assessID, int parentID, string columnName, int sort)
{ // {
var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID); // var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID);
if (entity == null) // if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核类别ID无效"); // return new ApiResponse(ResponseType.Fail, "考核类别ID无效");
if (parentID > 0) // if (parentID > 0)
{ // {
var centity = perforAscolumnsRepository.GetEntity(t => t.ID == parentID); // var centity = perforAscolumnsRepository.GetEntity(t => t.ID == parentID);
if (centity == null) // if (centity == null)
return new ApiResponse(ResponseType.Fail, "考核项目父级ID无效"); // return new ApiResponse(ResponseType.Fail, "考核项目父级ID无效");
} // }
var clist = perforAscolumnsRepository.GetEntities(t => t.ParentID == parentID && t.AssessID == assessID && t.Sort >= sort).OrderBy(t => t.Sort).ToList(); // var clist = perforAscolumnsRepository.GetEntities(t => t.ParentID == parentID && t.AssessID == assessID && t.Sort >= sort).OrderBy(t => t.Sort).ToList();
if (clist != null && clist.Count > 0) // if (clist != null && clist.Count > 0)
{ // {
int atsort = sort; // int atsort = sort;
clist.ForEach(t => { t.Sort = atsort + 1; atsort++; }); // clist.ForEach(t => { t.Sort = atsort + 1; atsort++; });
perforAscolumnsRepository.UpdateRange(clist.ToArray()); // perforAscolumnsRepository.UpdateRange(clist.ToArray());
} // }
var column = new as_columns { AssessID = assessID, ParentID = parentID, ColumnName = columnName, Sort = sort }; // var column = new as_columns { AssessID = assessID, ParentID = parentID, ColumnName = columnName, Sort = sort };
var result = perforAscolumnsRepository.Add(column); // var result = perforAscolumnsRepository.Add(column);
return result ? new ApiResponse(ResponseType.OK, column) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK, column) : new ApiResponse(ResponseType.Fail);
} // }
/// <summary> // /// <summary>
/// 修改考核项 // /// 修改考核项
/// </summary> // /// </summary>
/// <param name="columnID"></param> // /// <param name="columnID"></param>
/// <param name="columnName"></param> // /// <param name="columnName"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse EditColumn(int columnID, string columnName, int sort) // public ApiResponse EditColumn(int columnID, string columnName, int sort)
{ // {
var entity = perforAscolumnsRepository.GetEntity(t => t.ID == columnID); // var entity = perforAscolumnsRepository.GetEntity(t => t.ID == columnID);
if (entity == null) // if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核项目父级ID无效"); // return new ApiResponse(ResponseType.Fail, "考核项目父级ID无效");
entity.ColumnName = columnName; // entity.ColumnName = columnName;
//entity.Sort = sort; // //entity.Sort = sort;
var result = perforAscolumnsRepository.Update(entity); // var result = perforAscolumnsRepository.Update(entity);
return result ? new ApiResponse(ResponseType.OK, entity) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK, entity) : new ApiResponse(ResponseType.Fail);
} // }
/// <summary> // /// <summary>
/// 删除考核项 // /// 删除考核项
/// </summary> // /// </summary>
/// <param name="columnID"></param> // /// <param name="columnID"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse DelColumn(int columnID) // public ApiResponse DelColumn(int columnID)
{ // {
var entity = perforAscolumnsRepository.GetEntity(t => t.ID == columnID); // var entity = perforAscolumnsRepository.GetEntity(t => t.ID == columnID);
if (entity == null) // if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核项目父级ID无效"); // return new ApiResponse(ResponseType.Fail, "考核项目父级ID无效");
var result = perforAscolumnsRepository.Remove(entity); // var result = perforAscolumnsRepository.Remove(entity);
return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail);
} // }
#endregion // #endregion
#region 考核数据 // #region 考核数据
/// <summary> // /// <summary>
/// 考核数据列表 // /// 考核数据列表
/// </summary> // /// </summary>
/// <param name="assessID"></param> // /// <param name="assessID"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse DataList(int assessID) // public ApiResponse DataList(int assessID)
{ // {
var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID); // var entity = perforAsassessRepository.GetEntity(t => t.ID == assessID);
if (entity == null) // if (entity == null)
return new ApiResponse(ResponseType.Fail, "考核类别ID无效"); // return new ApiResponse(ResponseType.Fail, "考核类别ID无效");
var list = perforAsdataRepository.GetEntities(t => t.AssessID == assessID); // var list = perforAsdataRepository.GetEntities(t => t.AssessID == assessID);
if (list != null) // if (list != null)
{ // {
var response = list.Select(t => new AssessDataResponse // var response = list.Select(t => new AssessDataResponse
{ // {
ID = t.ID, // ID = t.ID,
AssessID = t.AssessID, // AssessID = t.AssessID,
Department = t.Department, // Department = t.Department,
RowData = t.RowData // RowData = t.RowData
}); // });
return new ApiResponse(ResponseType.OK, response); // return new ApiResponse(ResponseType.OK, response);
} // }
return new ApiResponse(ResponseType.OK); // return new ApiResponse(ResponseType.OK);
} // }
/// <summary> // /// <summary>
/// 编辑考核数据 // /// 编辑考核数据
/// </summary> // /// </summary>
/// <param name="request"></param> // /// <param name="request"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse EditAssessData(List<AssessRow> request) // public ApiResponse EditAssessData(List<AssessRow> request)
{ // {
var dataIDList = request.Select(t => t.DataID).ToList(); // var dataIDList = request.Select(t => t.DataID).ToList();
var dataList = perforAsdataRepository.GetEntities(t => dataIDList.Contains(t.ID)); // var dataList = perforAsdataRepository.GetEntities(t => dataIDList.Contains(t.ID));
foreach (var item in request) // foreach (var item in request)
{ // {
var entity = dataList.FirstOrDefault(t => t.ID == item.DataID); // var entity = dataList.FirstOrDefault(t => t.ID == item.DataID);
if (entity != null) // if (entity != null)
{ // {
entity.RowData = item.DataValue; // entity.RowData = item.DataValue;
perforAsdataRepository.Update(entity); // perforAsdataRepository.Update(entity);
} // }
} // }
return new ApiResponse(ResponseType.OK); // return new ApiResponse(ResponseType.OK);
} // }
#endregion // #endregion
#region 模版 // #region 模版
/// <summary> // /// <summary>
/// 考核模版列表 // /// 考核模版列表
/// </summary> // /// </summary>
/// <param name="allotID"></param> // /// <param name="allotID"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse TempAssessList() // public ApiResponse TempAssessList()
{ // {
var list = perforAstempassessRepository.GetEntities(); // var list = perforAstempassessRepository.GetEntities();
return new ApiResponse(ResponseType.OK, list); // return new ApiResponse(ResponseType.OK, list);
} // }
/// <summary> // /// <summary>
/// 模版列头列表 // /// 模版列头列表
/// </summary> // /// </summary>
/// <param name="assessID"></param> // /// <param name="assessID"></param>
/// <returns></returns> // /// <returns></returns>
public ApiResponse TempColumnList(int assessID) // public ApiResponse TempColumnList(int assessID)
{ // {
var list = perforAstempcolumnsRepository.GetEntities(t => t.AssessID == assessID)?.OrderBy(t => t.ParentID).ThenBy(t => t.Sort); // var list = perforAstempcolumnsRepository.GetEntities(t => t.AssessID == assessID)?.OrderBy(t => t.ParentID).ThenBy(t => t.Sort);
return new ApiResponse(ResponseType.OK, list); // return new ApiResponse(ResponseType.OK, list);
} // }
/// <summary> // /// <summary>
/// 使用模版 // /// 使用模版
/// </summary> // /// </summary>
/// <returns></returns> // /// <returns></returns>
public ApiResponse UseTemplate(int allotID, int assessID) // public ApiResponse UseTemplate(int allotID, int assessID)
{ // {
var allot = perforPerallotRepository.GetEntity(t => t.ID == allotID); // var allot = perforPerallotRepository.GetEntity(t => t.ID == allotID);
var temp = perforAstempassessRepository.GetEntity(t => t.ID == assessID); // var temp = perforAstempassessRepository.GetEntity(t => t.ID == assessID);
if (temp != null && allot != null) // if (temp != null && allot != null)
{ // {
string assessName = temp.AssessName; // string assessName = temp.AssessName;
var assess = perforAsassessRepository.GetEntity(t => t.AssessName == assessName && t.AllotID == allotID); // var assess = perforAsassessRepository.GetEntity(t => t.AssessName == assessName && t.AllotID == allotID);
if (assess != null) // if (assess != null)
return new ApiResponse(ResponseType.Fail, "该模版已经被使用"); // return new ApiResponse(ResponseType.Fail, "该模版已经被使用");
assess = new as_assess // assess = new as_assess
{ // {
AllotID = allotID, // AllotID = allotID,
AssessName = assessName // AssessName = assessName
}; // };
//copy模版信息 // //copy模版信息
var result = perforAsassessRepository.Add(assess); // var result = perforAsassessRepository.Add(assess);
var tempColumns = perforAstempcolumnsRepository.GetEntities(t => t.AssessID == assessID); // var tempColumns = perforAstempcolumnsRepository.GetEntities(t => t.AssessID == assessID);
var columns = tempColumns?.Select(t => new as_columns // var columns = tempColumns?.Select(t => new as_columns
{ // {
AssessID = assess.ID, // AssessID = assess.ID,
ParentID = t.ParentID, // ParentID = t.ParentID,
ColumnName = t.ColumnName, // ColumnName = t.ColumnName,
TempColumnID = t.ID, // TempColumnID = t.ID,
Sort = t.Sort // Sort = t.Sort
}).ToList(); // }).ToList();
//copy模版列头 // //copy模版列头
if (result && columns != null && columns.Count > 0) // if (result && columns != null && columns.Count > 0)
{ // {
result = perforAscolumnsRepository.AddRange(columns.ToArray()); // result = perforAscolumnsRepository.AddRange(columns.ToArray());
if (result) // if (result)
{ // {
var parentList = columns.Select(t => t.ParentID).Distinct(); // var parentList = columns.Select(t => t.ParentID).Distinct();
var keyvalue = new Dictionary<int?, int>(); // var keyvalue = new Dictionary<int?, int>();
foreach (var item in columns.Where(t => parentList.Contains(t.TempColumnID))) // foreach (var item in columns.Where(t => parentList.Contains(t.TempColumnID)))
{ // {
keyvalue.Add(item.TempColumnID, item.ID); // keyvalue.Add(item.TempColumnID, item.ID);
} // }
columns = columns.Where(t => t.ParentID.HasValue && t.ParentID != 0).ToList(); // columns = columns.Where(t => t.ParentID.HasValue && t.ParentID != 0).ToList();
columns?.ForEach(t => t.ParentID = keyvalue[t.ParentID]); // columns?.ForEach(t => t.ParentID = keyvalue[t.ParentID]);
result = perforAscolumnsRepository.UpdateRange(columns.ToArray()); // result = perforAscolumnsRepository.UpdateRange(columns.ToArray());
} // }
} // }
return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail); // return result ? new ApiResponse(ResponseType.OK) : new ApiResponse(ResponseType.Fail);
} // }
return allot == null ? new ApiResponse(ResponseType.Fail, "绩效ID无效") : new ApiResponse(ResponseType.Fail, "模版信息不存在"); // return allot == null ? new ApiResponse(ResponseType.Fail, "绩效ID无效") : new ApiResponse(ResponseType.Fail, "模版信息不存在");
} // }
#endregion // #endregion
/// <summary> // /// <summary>
/// 科室列表 // /// 科室列表
/// </summary> // /// </summary>
/// <returns></returns> // /// <returns></returns>
public List<TitleValue> Department(AssessRequest request) // public List<TitleValue> Department(AssessRequest request)
{ // {
var allot = perforPerallotRepository.GetEntity(t => t.ID == request.AllotID); // var allot = perforPerallotRepository.GetEntity(t => t.ID == request.AllotID);
if (allot != null) // if (allot != null)
{ // {
var result = new List<TitleValue>(); // var result = new List<TitleValue>();
//取到该家医院下所有科室 // //取到该家医院下所有科室
var idList = perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId).Select(s => s.ID).ToList(); // var idList = perforPerallotRepository.GetEntities(t => t.HospitalId == allot.HospitalId).Select(s => s.ID).ToList();
//var department = perforImaccountbasicRepository.GetEntities(t => t.Department != "" && idList.Contains(t.AllotID.Value))?.Select(t => t.Department).Distinct().ToList(); // //var department = perforImaccountbasicRepository.GetEntities(t => t.Department != "" && idList.Contains(t.AllotID.Value))?.Select(t => t.Department).Distinct().ToList();
//if (department != null && department.Count > 0) // //if (department != null && department.Count > 0)
//{ // //{
var department = perforImaccountbasicRepository.GetEntities(t => t.DoctorAccountingUnit != "" && idList.Contains(t.AllotID.Value))?.Select(t => t.DoctorAccountingUnit).Distinct().ToList(); // var department = perforImaccountbasicRepository.GetEntities(t => t.DoctorAccountingUnit != "" && idList.Contains(t.AllotID.Value))?.Select(t => t.DoctorAccountingUnit).Distinct().ToList();
if (department != null && department.Count > 0) // if (department != null && department.Count > 0)
{ // {
//自己选的 // //自己选的
var _checked = perforAsdataRepository.GetEntities(t => t.AssessID == request.AssessID)?.Select(t => t.Department).ToList(); // var _checked = perforAsdataRepository.GetEntities(t => t.AssessID == request.AssessID)?.Select(t => t.Department).ToList();
if (_checked != null && _checked.Count > 0) // if (_checked != null && _checked.Count > 0)
result = _checked.Select(t => new TitleValue { Title = t, Value = t, State = 1 }).ToList(); // result = _checked.Select(t => new TitleValue { Title = t, Value = t, State = 1 }).ToList();
//已经被选择 // //已经被选择
var assessId = perforAsassessRepository.GetEntities(t => t.AllotID == request.AllotID)?.Select(t => t.ID).ToList(); // var assessId = perforAsassessRepository.GetEntities(t => t.AllotID == request.AllotID)?.Select(t => t.ID).ToList();
if (assessId.Count > 0 && assessId != null) // if (assessId.Count > 0 && assessId != null)
{ // {
assessId.Remove(request.AssessID); // assessId.Remove(request.AssessID);
_checked = perforAsdataRepository.GetEntities(t => assessId.Contains(t.AssessID.Value))?.Select(t => t.Department).ToList(); // _checked = perforAsdataRepository.GetEntities(t => assessId.Contains(t.AssessID.Value))?.Select(t => t.Department).ToList();
if (_checked != null && _checked.Count > 0) // if (_checked != null && _checked.Count > 0)
{ // {
result = result.Union(_checked.Select(t => new TitleValue { Title = t, Value = t, State = 3 })).ToList(); // result = result.Union(_checked.Select(t => new TitleValue { Title = t, Value = t, State = 3 })).ToList();
} // }
} // }
//未被选择 // //未被选择
if (result != null || result.Count > 0) // if (result != null || result.Count > 0)
department = department.Except(result.Select(t => t.Title)).ToList(); // department = department.Except(result.Select(t => t.Title)).ToList();
result = result.Union(department.Select(t => new TitleValue { Title = t, Value = t, State = 2 })).OrderBy(t => t.State).ThenBy(t => t.Title).ToList(); // result = result.Union(department.Select(t => new TitleValue { Title = t, Value = t, State = 2 })).OrderBy(t => t.State).ThenBy(t => t.Title).ToList();
} // }
return result; // return result;
} // }
return new List<TitleValue>(); // return new List<TitleValue>();
} // }
} // }
} //}
...@@ -2629,6 +2629,5 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name, ...@@ -2629,6 +2629,5 @@ public string ExcelDownload(List<Dictionary<string, object>> rows, string name,
return filepath; return filepath;
} }
#endregion #endregion
} }
} }
...@@ -741,7 +741,7 @@ public void Copy(per_allot allot) ...@@ -741,7 +741,7 @@ public void Copy(per_allot allot)
NewCopy(new CopyRequest() NewCopy(new CopyRequest()
{ {
AllotId = allot.ID, AllotId = allot.ID,
Type = new[] { "personnels", "workItems", "drugTypeDisburses", "drugTypeFactors", "deptTypes", "agains", "accountings", "department", "attendanceType" } Type = new[] { "personnels", "workItems", "drugTypeDisburses", "drugTypeFactors", "deptTypes", "agains", "accountings", "department", "attendanceType", "assessType" }
}); });
} }
...@@ -769,6 +769,7 @@ public void NewCopy(CopyRequest request) ...@@ -769,6 +769,7 @@ public void NewCopy(CopyRequest request)
{ "agains", (allot, prevAllotId) =>_copyService.Copy_Agains(allot, prevAllotId, delHistotyData:true) }, { "agains", (allot, prevAllotId) =>_copyService.Copy_Agains(allot, prevAllotId, delHistotyData:true) },
{ "accountings", (allot, prevAllotId) =>_copyService.Copy_Accountings(allot, prevAllotId, delHistotyData:true) }, { "accountings", (allot, prevAllotId) =>_copyService.Copy_Accountings(allot, prevAllotId, delHistotyData:true) },
{ "attendanceType", (allot, prevAllotId) =>_copyService.Copy_AttendanceType(allot, prevAllotId, delHistotyData:true) }, { "attendanceType", (allot, prevAllotId) =>_copyService.Copy_AttendanceType(allot, prevAllotId, delHistotyData:true) },
{ "assessType", (allot, prevAllotId) =>_copyService.Copy_AssessType(allot, prevAllotId, delHistotyData:true) },
{ "department", (allot, prevAllotId) =>_copyService.Copy_DeptDic(allot, prevAllotId, delHistotyData:true) }, { "department", (allot, prevAllotId) =>_copyService.Copy_DeptDic(allot, prevAllotId, delHistotyData:true) },
}; };
......
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Performance.DtoModels;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.EntityModels.Entity; using Performance.EntityModels.Entity;
using Performance.Repository; using Performance.Repository;
...@@ -21,6 +22,12 @@ public class CopyService : IAutoInjection ...@@ -21,6 +22,12 @@ public class CopyService : IAutoInjection
private readonly PerforCofdrugtypeDisburseRepository _drugtypeDisburseRepository; private readonly PerforCofdrugtypeDisburseRepository _drugtypeDisburseRepository;
private readonly PerforCofdrugtypefactorRepository _cofdrugtypefactorRepository; private readonly PerforCofdrugtypefactorRepository _cofdrugtypefactorRepository;
private readonly PerfoPperAttendanceTypeRepository _pperAttendanceTypeRepository; private readonly PerfoPperAttendanceTypeRepository _pperAttendanceTypeRepository;
private readonly PerforPerAssessCategoryRepository _perforPerAssessCategoryRepository;
private readonly PerforPerAssessSchemeRepository _perforPerAssessSchemeRepository;
private readonly PerforPerAssessSchemeItemsRepository _perforPerAssessSchemeItemsRepository;
private readonly PerforPerAssessSchemeTargetRepository _perforPerAssessSchemeTargetRepository;
private readonly PerforPerAssessIssueSchemeRepository _perforPerAssessIssueSchemeRepository;
private readonly PerforPerAttendanceDeptRepository _perforPerAttendanceDeptRepository;
public CopyService( public CopyService(
ILogger<ConfigService> logger, ILogger<ConfigService> logger,
...@@ -32,7 +39,14 @@ public class CopyService : IAutoInjection ...@@ -32,7 +39,14 @@ public class CopyService : IAutoInjection
PerforCofaccountingRepository cofaccountingRepository, PerforCofaccountingRepository cofaccountingRepository,
PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository, PerforCofdrugtypeDisburseRepository drugtypeDisburseRepository,
PerforCofdrugtypefactorRepository cofdrugtypefactorRepository, PerforCofdrugtypefactorRepository cofdrugtypefactorRepository,
PerfoPperAttendanceTypeRepository pperAttendanceTypeRepository) PerfoPperAttendanceTypeRepository pperAttendanceTypeRepository,
PerforPerAssessCategoryRepository perforPerAssessCategoryRepository,
PerforPerAssessSchemeRepository perforPerAssessSchemeRepository,
PerforPerAssessSchemeItemsRepository perforPerAssessSchemeItemsRepository,
PerforPerAssessSchemeTargetRepository perforPerAssessSchemeTargetRepository,
PerforPerAssessIssueSchemeRepository perforPerAssessIssueSchemeRepository,
PerforPerAttendanceDeptRepository perforPerAttendanceDeptRepository
)
{ {
_logger = logger; _logger = logger;
_perdeptdicRepository = perdeptdicRepository; _perdeptdicRepository = perdeptdicRepository;
...@@ -44,6 +58,12 @@ public class CopyService : IAutoInjection ...@@ -44,6 +58,12 @@ public class CopyService : IAutoInjection
_drugtypeDisburseRepository = drugtypeDisburseRepository; _drugtypeDisburseRepository = drugtypeDisburseRepository;
_cofdrugtypefactorRepository = cofdrugtypefactorRepository; _cofdrugtypefactorRepository = cofdrugtypefactorRepository;
_pperAttendanceTypeRepository = pperAttendanceTypeRepository; _pperAttendanceTypeRepository = pperAttendanceTypeRepository;
_perforPerAssessCategoryRepository = perforPerAssessCategoryRepository;
_perforPerAssessSchemeRepository = perforPerAssessSchemeRepository;
_perforPerAssessSchemeItemsRepository = perforPerAssessSchemeItemsRepository;
_perforPerAssessSchemeTargetRepository = perforPerAssessSchemeTargetRepository;
_perforPerAssessIssueSchemeRepository = perforPerAssessIssueSchemeRepository;
_perforPerAttendanceDeptRepository = perforPerAttendanceDeptRepository;
} }
...@@ -244,10 +264,11 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot ...@@ -244,10 +264,11 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot
{ {
var flag = delHistotyData; var flag = delHistotyData;
_logger.LogInformation($"copy attendanceType"); _logger.LogInformation($"copy attendanceType");
var UpdateattendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && UpdateattendanceTypes != null && UpdateattendanceTypes.Any())
UpdateattendanceTypes.ForEach(t => t.AllotId = 0);
flag = _pperAttendanceTypeRepository.UpdateRange(UpdateattendanceTypes.ToArray());
var attendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == allot.ID); var attendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && attendanceTypes != null && attendanceTypes.Any())
flag = _pperAttendanceTypeRepository.RemoveRange(attendanceTypes.ToArray());
if (flag || attendanceTypes == null || !attendanceTypes.Any()) if (flag || attendanceTypes == null || !attendanceTypes.Any())
{ {
attendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == -1); attendanceTypes = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == -1);
...@@ -263,7 +284,198 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot ...@@ -263,7 +284,198 @@ public void Copy_AttendanceType(per_allot allot, int prevAllotId, bool delHistot
_pperAttendanceTypeRepository.AddRange(newAttendanceTypes.ToArray()); _pperAttendanceTypeRepository.AddRange(newAttendanceTypes.ToArray());
} }
} }
var attendanceDepts = _perforPerAttendanceDeptRepository.GetEntities(t => t.AllotId == allot.ID);
var attendanceTypess = _pperAttendanceTypeRepository.GetEntities(t => t.AllotId == allot.ID || t.AllotId == 0);
foreach (var item in attendanceDepts)
{
for (int i = 1; i <= 30; i++)
{
int? dayValue = (int?)typeof(per_attendance_dept).GetProperty("Day" + i.ToString("D2"))?.GetValue(item);
if (dayValue != null && dayValue > 0)
{
string attendanceName = attendanceTypess.FirstOrDefault(t => t.Id == dayValue)?.AttendanceName;
if (!string.IsNullOrEmpty(attendanceName))
{
int? attendanceId = attendanceTypess.FirstOrDefault(w => w.AttendanceName == attendanceName && w.AllotId == allot.ID)?.Id;
if (attendanceId != null)
{
typeof(per_attendance_dept).GetProperty("Day" + i.ToString("D2"))?.SetValue(item, attendanceId);
}
}
}
}
}
flag = _perforPerAttendanceDeptRepository.UpdateRange(attendanceDepts.ToArray());
if (flag) { attendanceTypess = attendanceTypess.Where(t => t.AllotId == 0).ToList(); _pperAttendanceTypeRepository.RemoveRange(attendanceTypess.ToArray()); }
}
public void Copy_AssessType(per_allot allot, int prevAllotId, bool delHistotyData = false)
{
var flag = delHistotyData;
_logger.LogInformation($"copy assessType");
var aCategory = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aCategory != null && aCategory.Any())
flag = _perforPerAssessCategoryRepository.RemoveRange(aCategory.ToArray());
var aScheme = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aScheme != null && aScheme.Any())
flag = _perforPerAssessSchemeRepository.RemoveRange(aScheme.ToArray());
var aSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aSchemeItems != null && aSchemeItems.Any())
flag = _perforPerAssessSchemeItemsRepository.RemoveRange(aSchemeItems.ToArray());
var aSchemeTarget = _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aSchemeTarget != null && aSchemeTarget.Any())
flag = _perforPerAssessSchemeTargetRepository.RemoveRange(aSchemeTarget.ToArray());
var aIssueScheme = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
if (delHistotyData && aIssueScheme != null && aIssueScheme.Any())
flag = _perforPerAssessIssueSchemeRepository.RemoveRange(aIssueScheme.ToArray());
var dateTimeNow = DateTime.Now;
if (flag || aCategory == null || !aCategory.Any())
{
aCategory = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == -1);
if (aCategory != null && aCategory.Any())
{
var newaCategorys = aCategory.Select(t => new per_assess_category
{
Id = 0,
AllotId = allot.ID,
AssessCode = t.AssessCode,
AssessName = t.AssessName,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
});
var aCategoryTemp = _perforPerAssessCategoryRepository.AddRange(newaCategorys.ToArray());
//if (!aCategoryTemp) throw new PerformanceException("考核分类未继承成功,请检查后在尝试!");
}
}
var aCategoryss = _perforPerAssessCategoryRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aScheme == null || !aScheme.Any())
{
aScheme = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == -1);
if (aScheme != null && aScheme.Any())
{
var newaSchemes = aScheme.Select(t => new per_assess_scheme
{
Id = 0,
AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id,
SchemeCode = t.SchemeCode,
SchemeName = t.SchemeName,
SchemeRemarks = t.SchemeRemarks,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
});
var aSchemeTemp = _perforPerAssessSchemeRepository.AddRange(newaSchemes.ToArray());
// if (!aSchemeTemp) throw new PerformanceException("考核方案未继承成功,请检查后在尝试!");
}
}
var aSchemes = _perforPerAssessSchemeRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aSchemeItems == null || !aSchemeItems.Any())
{
aSchemeItems = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == -1);
if (aSchemeItems != null && aSchemeItems.Any())
{
var newaSchemeItems = aSchemeItems.Select(t => new per_assess_scheme_items
{
Id = 0,
AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id,
SchemeId = aSchemes.FirstOrDefault(w => w.SchemeCode == aScheme.FirstOrDefault(s => s.Id == t.SchemeId).SchemeCode && w.AllotId == allot.ID).Id,
ItemCode = t.ItemCode,
ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
AssessNorm = t.AssessNorm,
AssessScore = t.AssessScore,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
});
var aSchemeItemsTemp = _perforPerAssessSchemeItemsRepository.AddRange(newaSchemeItems.ToArray());
// if (!aSchemeItemsTemp) throw new PerformanceException("考核方案指标未继承成功,请检查后在尝试!");
}
} }
var aSchemeItemss = _perforPerAssessSchemeItemsRepository.GetEntities(t => t.AllotId == allot.ID);
if (flag || aSchemeTarget == null || !aSchemeTarget.Any())
{
aSchemeTarget = _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessSchemeTargetRepository.GetEntities(t => t.AllotId == -1);
if (aSchemeTarget != null && aSchemeTarget.Any())
{
var newaSchemeTarget = aSchemeTarget.Select(t => new per_assess_scheme_target
{
Id = 0,
AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id,
SchemeId = aSchemes.FirstOrDefault(w => w.SchemeCode == aScheme.FirstOrDefault(s => s.Id == t.SchemeId).SchemeCode && w.AllotId == allot.ID).Id,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
});
var aSchemeTargetTemp = _perforPerAssessSchemeTargetRepository.AddRange(newaSchemeTarget.ToArray());
// if (!aSchemeTargetTemp) throw new PerformanceException("考核对象未继承成功,请检查后在尝试!");
}
}
if (flag || aIssueScheme == null || !aIssueScheme.Any())
{
aIssueScheme = _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == prevAllotId) ?? _perforPerAssessIssueSchemeRepository.GetEntities(t => t.AllotId == -1);
if (aIssueScheme != null && aIssueScheme.Any())
{
var newaIssueSchemess = aIssueScheme.Select(t => new per_assess_issue_scheme
{
Id = 0,
AllotId = allot.ID,
AssessId = aCategoryss.FirstOrDefault(w => w.AssessCode == aCategory.FirstOrDefault(s => s.Id == t.AssessId).AssessCode && w.AllotId == allot.ID).Id,
AssessCode = t.AssessCode,
AssessName = t.AssessName,
SchemeId = aSchemes.FirstOrDefault(w => w.SchemeCode == aScheme.FirstOrDefault(s => s.Id == t.SchemeId).SchemeCode && w.AllotId == allot.ID).Id,
SchemeCode = t.SchemeCode,
SchemeName = t.SchemeName,
ItemId = aSchemeItemss.FirstOrDefault(w => w.ItemCode == aSchemeItems.FirstOrDefault(s => s.Id == t.ItemId).ItemCode && w.AllotId == allot.ID).Id,
ItemCode = t.ItemCode,
ItemName1 = t.ItemName1,
ItemName2 = t.ItemName2,
AssessNorm = t.AssessNorm,
AssessScore = t.AssessScore,
UnitCode = t.UnitCode,
UnitType = t.UnitType,
AccountingUnit = t.AccountingUnit,
State = (int)Assess.AssessState.未提交,
CreateBy = t.CreateBy,
CreateTime = dateTimeNow,
UpdateBy = t.UpdateBy,
UpdateTime = dateTimeNow,
Score = null,
ScoreRemark = null,
TargetUnitCode = t.TargetUnitCode,
TargetUnitType = t.TargetUnitType,
TargetAccountingUnit = t.TargetAccountingUnit,
SubmitBy = null,
SubmitTime = null,
AuditBy = null,
AuditTime = null,
AuditRemark = null,
});
var aIssueSchemeTemp = _perforPerAssessIssueSchemeRepository.AddRange(newaIssueSchemess.ToArray());
// if (!aSchemeItemsTemp) throw new PerformanceException("考核下发未继承成功,请检查后在尝试!");
}
}
}
} }
} }
...@@ -245,7 +245,7 @@ public string AllComputerDown(sys_hospital hospital, List<dynamic> dynamics, str ...@@ -245,7 +245,7 @@ public string AllComputerDown(sys_hospital hospital, List<dynamic> dynamics, str
{ {
var temp = data.ElementAt(row); var temp = data.ElementAt(row);
var low = temp.Keys.ToString().ToLower(); var low = temp.Keys.ToString().ToLower();
var value = temp[headList[col].Name.ToLower()]; var value = temp.GetValue(headList[col].Name, "");
worksheet.Cells[row + 3, col + 1].Value = value; worksheet.Cells[row + 3, col + 1].Value = value;
} }
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
using Performance.DtoModels; using Performance.DtoModels;
using Performance.DtoModels.AppSettings; using Performance.DtoModels.AppSettings;
using Performance.EntityModels; using Performance.EntityModels;
...@@ -184,6 +185,24 @@ public List<SecondListResponse> GetSecondList(int userId) ...@@ -184,6 +185,24 @@ public List<SecondListResponse> GetSecondList(int userId)
secondList.AddRange(histroys.Where(w => !sids.Contains(w.Id))); secondList.AddRange(histroys.Where(w => !sids.Contains(w.Id)));
} }
foreach (var item in allotList)
{
if (!secondList.Any(w => w.AllotId == item.ID && w.Year == item.Year && w.Month == item.Month))
{
secondList.Add(new ag_secondallot
{
AllotId = item.ID,
UseTempId = null,
Year = item.Year,
Month = item.Month,
UnitType = unitType.FirstOrDefault(),
Department = userInfo.User.Department,
RealGiveFee = 0,
PreRealGiveFee = 0,
Status = 0,
});
}
}
var list = _mapper.Map<List<SecondListResponse>>(secondList); var list = _mapper.Map<List<SecondListResponse>>(secondList);
// 二次分配只支持单医院 // 二次分配只支持单医院
......
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