Commit 81c9ddee by wyc

‘考勤结果统计 ’支持按角色显示查询数据 ‘考勤下发’下发数据(增删改查)\确认或质疑\记录操作

parent 0671d0ba
...@@ -49,7 +49,7 @@ public class AccountController : Controller ...@@ -49,7 +49,7 @@ public class AccountController : Controller
/// { /// {
/// "logintype": 2, /// "logintype": 2,
/// "account": "admin", /// "account": "admin",
/// "password": "e10adc3949ba59abbe56e057f20f883e", /// "password": "b59c67bf196a4758191e42f76670ceba",
/// "appname": "string", /// "appname": "string",
/// "device": "web" /// "device": "web"
/// } /// }
......
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
using System; using System;
using System.IO; using System.IO;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.Threading.Tasks;
namespace Performance.Api.Controllers namespace Performance.Api.Controllers
{ {
...@@ -17,11 +18,13 @@ namespace Performance.Api.Controllers ...@@ -17,11 +18,13 @@ namespace Performance.Api.Controllers
public class AttendanceController : ControllerBase public class AttendanceController : ControllerBase
{ {
private readonly AttendanceService _attendanceService; private readonly AttendanceService _attendanceService;
private ClaimService claim;
public AttendanceController( public AttendanceController(
AttendanceService attendanceService AttendanceService attendanceService, ClaimService claim
) )
{ {
_attendanceService = attendanceService; _attendanceService = attendanceService;
this.claim = claim;
} }
/* /*
...@@ -41,7 +44,8 @@ AttendanceService attendanceService ...@@ -41,7 +44,8 @@ AttendanceService attendanceService
public ApiResponse<List<AttendanceStatistics>> GetAttendance(int allotId) public ApiResponse<List<AttendanceStatistics>> GetAttendance(int allotId)
{ {
// 查询考勤视图,并按照设计图做格式转换 仅查询开始结束 // 查询考勤视图,并按照设计图做格式转换 仅查询开始结束
var result = _attendanceService.GetAttendance(allotId); var userid = claim.GetUserId();
var result = _attendanceService.GetAttendance(allotId, userid);
return result; return result;
} }
...@@ -185,7 +189,8 @@ public ApiResponse AttendanceBatch(int allotId, int hospitalId, SaveCollectData ...@@ -185,7 +189,8 @@ public ApiResponse AttendanceBatch(int allotId, int hospitalId, SaveCollectData
public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allotId) public ApiResponse<List<AttendanceStatistics>> GetAttendanceStatistics(int allotId)
{ {
// 返回结果参考接口 employee/apr/getdeptdetail // 返回结果参考接口 employee/apr/getdeptdetail
return _attendanceService.GetAttendanceStatistics(allotId); var userid = claim.GetUserId();
return _attendanceService.GetAttendanceStatistics(allotId, userid);
} }
#region 下载 #region 下载
...@@ -209,7 +214,8 @@ public IActionResult DownloadAttendance(int allotId) ...@@ -209,7 +214,8 @@ public IActionResult DownloadAttendance(int allotId)
new ExcelDownloadHeads { Alias = "在科开始时问", Name = nameof(AttendanceStatistics.BeginDate) }, new ExcelDownloadHeads { Alias = "在科开始时问", Name = nameof(AttendanceStatistics.BeginDate) },
new ExcelDownloadHeads { Alias = "在科结束时间", Name = nameof(AttendanceStatistics.EndDate) }, new ExcelDownloadHeads { Alias = "在科结束时间", Name = nameof(AttendanceStatistics.EndDate) },
}; };
var result = _attendanceService.GetAttendance(allotId).Data; var userid = claim.GetUserId();
var result = _attendanceService.GetAttendance(allotId, userid).Data;
var ser = JsonConvert.SerializeObject(result); var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser); var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
...@@ -327,8 +333,8 @@ public IActionResult DownloadStatistics(int allotId) ...@@ -327,8 +333,8 @@ public IActionResult DownloadStatistics(int allotId)
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item.AttendanceName, Name = item.AttendanceName }); excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = item.AttendanceName, Name = item.AttendanceName });
} }
excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "考勤天数", Name = "AttendanceDays" }); excelDownloadHeads.Add(new ExcelDownloadHeads() { Alias = "考勤天数", Name = "AttendanceDays" });
var userid = claim.GetUserId();
var result = _attendanceService.GetAttendanceStatistics(allotId).Data; var result = _attendanceService.GetAttendanceStatistics(allotId, userid).Data;
var ser = JsonConvert.SerializeObject(result); var ser = JsonConvert.SerializeObject(result);
var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser); var rows = JsonConvert.DeserializeObject<List<Dictionary<string, object>>>(ser);
...@@ -359,5 +365,64 @@ public IActionResult DownloadStatistics(int allotId) ...@@ -359,5 +365,64 @@ public IActionResult DownloadStatistics(int allotId)
} }
#endregion #endregion
#region 最终考勤结果
//// 最终考勤结果下发
//// 判断一下,是否是首次下发
//// 如果首次下发
//// 存储到表中per_attendance_issue
//// 不是首次下发
//// 自动驳回检查(涉及哪些人哪些科)
///// <summary>
///// 最终考勤结果下发(预确认显示)
///// </summary>
///// <param name="allotId"></param>
///// <param name="userid"></param>
///// <returns></returns>
//[HttpPost]
//[Route("issue/statistics/PreConfirmationDisplay")]
//public ApiResponse<List<PerAttendanceIssueDto>> PreConfirmationDisplay(int allotId)
//{
// var userid = claim.GetUserId();
// return _attendanceService.PreConfirmationDisplay(allotId,userid);
//}
/// <summary>
/// 最终考勤结果下发
/// </summary>
/// <param name="allotId"></param>
/// <param name="hospitalId"></param>
/// <returns></returns>
[HttpPost]
[Route("issue/statistics/{allotId}")]
public ApiResponse IssueStatistics(int allotId, int hospitalId)
{
var userid = claim.GetUserId();
return _attendanceService.IssueStatistics(allotId, userid, hospitalId);
}
/// <summary>
/// 最终考勤结果质疑或确认无误((批量操作)
/// </summary>
/// <param name="allotId"></param>
/// <param name="issueid"></param>
/// <param name="choose"></param>
/// <returns></returns>
[HttpPost]
[Route("issue/statistics/choose")]
public ApiResponse ChooseStatistics(int allotId, int[] issueid, bool choose)
{
var userid = claim.GetUserId();
return _attendanceService.ChooseStatistics(allotId, userid, issueid, choose);
}
#endregion
} }
} }
\ No newline at end of file
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
{ {
"logintype": 2, "logintype": 2,
"account": "admin", "account": "admin",
"password": "e10adc3949ba59abbe56e057f20f883e", "password": "b59c67bf196a4758191e42f76670ceba",
"appname": "string", "appname": "string",
"device": "web" "device": "web"
} }
...@@ -413,6 +413,31 @@ ...@@ -413,6 +413,31 @@
<param name="allotId"></param> <param name="allotId"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Performance.Api.Controllers.AttendanceController.PreConfirmationDisplay(System.Int32)">
<summary>
最终考勤结果下发(预确认显示)
</summary>
<param name="allotId"></param>
<param name="hospitalId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.IssueStatistics(System.Int32,System.Int32)">
<summary>
最终考勤结果下发
</summary>
<param name="allotId"></param>
<param name="hospitalId"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.AttendanceController.ChooseStatistics(System.Int32,System.Int32[],System.Boolean)">
<summary>
最终考勤结果质疑或确认无误((批量操作)
</summary>
<param name="allotId"></param>
<param name="issueid"></param>
<param name="choose"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.BudgetController.Query(Performance.DtoModels.Request.BudgetRequest)"> <member name="M:Performance.Api.Controllers.BudgetController.Query(Performance.DtoModels.Request.BudgetRequest)">
<summary> <summary>
预算管理查询(包含金额、占比) 预算管理查询(包含金额、占比)
......
...@@ -4308,6 +4308,11 @@ ...@@ -4308,6 +4308,11 @@
用户科室 用户科室
</summary> </summary>
</member> </member>
<member name="P:Performance.DtoModels.UserIdentity.UnitType">
<summary>
核算组别
</summary>
</member>
<member name="P:Performance.DtoModels.UserIdentity.IsInitialPassword"> <member name="P:Performance.DtoModels.UserIdentity.IsInitialPassword">
<summary> <summary>
初始密码 1 初始 2 改过 初始密码 1 初始 2 改过
......
using AutoMapper; using AutoMapper;
using Performance.DtoModels.Request; using Performance.DtoModels.Request;
using Performance.EntityModels; using Performance.EntityModels;
using Performance.EntityModels.Entity;
using Performance.Infrastructure; using Performance.Infrastructure;
using System.Linq; using System.Linq;
...@@ -276,6 +277,9 @@ public AutoMapperConfigs() ...@@ -276,6 +277,9 @@ public AutoMapperConfigs()
.ReverseMap(); .ReverseMap();
CreateMap<cof_again,CofAgainRequest>().ReverseMap(); CreateMap<cof_again,CofAgainRequest>().ReverseMap();
CreateMap<per_attendance_issue_record, per_attendance_issue>().ReverseMap();
CreateMap<PerAttendanceIssueDto, per_attendance_issue>().ReverseMap();
CreateMap<PerAttendanceIssueDto, AttendanceStatistics>().ReverseMap();
} }
} }
} }
...@@ -117,6 +117,16 @@ public enum Deduction ...@@ -117,6 +117,16 @@ public enum Deduction
核减 = 1, 核减 = 1,
不核减 = 2, 不核减 = 2,
} }
public enum State
{
首次下发=1,
确认=2,
确认未修改=3,
确认已修改=4,
质疑=5,
质疑未修改=6,
质疑已修改=7,
}
} }
public class SecondAllot public class SecondAllot
......
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.DtoModels
{
public class PerAttendanceIssueDto
{
public int AllotId { get; set; } //绩效Id
public string Code { get; set; } //核算单元编码
public string UnitType { get; set; } //人员类别
public string AccountingUnit { get; set; } //核算单元
public string PersonnelNumber { get; set; } //工号
public string PersonnelName { get; set; } //姓名
public DateTime? BeginDate { get; set; } //在科开始时间
public DateTime? EndDate { get; set; } //在科结束时间
public int WorkFullDays { get; set; } //全勤天数
public int AttendanceDays { get; set; } //出勤天数
public int DeductionDays { get; set; } //核减天数
public int NoDeductionDays { get; set; } //不核减天数
public int OperationType { get; set; } //操作类型
}
}
...@@ -23,6 +23,10 @@ public class UserIdentity ...@@ -23,6 +23,10 @@ public class UserIdentity
/// 用户科室 /// 用户科室
/// </summary> /// </summary>
public string Department { get; set; } public string Department { get; set; }
/// <summary>
/// 核算组别
/// </summary>
public string UnitType { get; set; }
public List<HospitalResponse> Hospital { get; set; } public List<HospitalResponse> Hospital { get; set; }
public List<RoleResponse> Role { get; set; } public List<RoleResponse> Role { get; set; }
/// <summary> /// <summary>
......
...@@ -254,6 +254,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options) ...@@ -254,6 +254,8 @@ public PerformanceDbContext(DbContextOptions<PerformanceDbContext> options)
public virtual DbSet<sys_user_role> sys_user_role { get; set; } public virtual DbSet<sys_user_role> sys_user_role { get; set; }
public virtual DbSet<sys_version> sys_version { get; set; } public virtual DbSet<sys_version> sys_version { get; set; }
public virtual DbSet<per_attendance> per_attendance { get; set; } public virtual DbSet<per_attendance> per_attendance { get; set; }
public virtual DbSet<per_attendance_issue> per_attendance_issue { get; set; }
public virtual DbSet<per_attendance_issue_record> per_attendance_issue_record { get; set; }
public virtual DbSet<per_attendance_type> per_attendance_type { get; set; } public virtual DbSet<per_attendance_type> per_attendance_type { get; set; }
public virtual DbSet<per_attendance_vacation> per_attendance_vacation { get; set; } public virtual DbSet<per_attendance_vacation> per_attendance_vacation { get; set; }
public virtual DbSet<per_allot_action> per_allot_action { get; set; } public virtual DbSet<per_allot_action> per_allot_action { get; set; }
......
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.EntityModels.Entity
{
[Table("per_attendance_issue")]
public class per_attendance_issue
{
[Key]
public int Id { get; set; }
public int HospitalId { get; set; } //医院Id
public int AllotId { get; set; } //绩效Id
public string Code { get; set; } //核算单元编码
public string UnitType { get; set; } //人员类别
public string AccountingUnit { get; set; } //核算单元
public string PersonnelNumber { get; set; } //工号
public string PersonnelName { get; set; } //姓名
public DateTime? BeginDate { get; set; } //在科开始时间
public DateTime? EndDate { get; set; } //在科结束时间
public int WorkFullDays { get; set; } //全勤天数
public int AttendanceDays { get; set; } //出勤天数
public int DeductionDays { get; set; } //核减天数
public int NoDeductionDays { get; set; } //不核减天数
public int State { get; set; } //状态
public int CreateUser { get; set; } //首次下发人
public int UpdateUser { get; set; } //更新人
public DateTime? CreationTime { get; set; } //首次下发时间
public DateTime? UpdateTime { get; set; } //更新时间
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.EntityModels.Entity
{
[Table("per_attendance_issue_record")]
public class per_attendance_issue_record
{
[Key]
public int Id { get; set; }
public int HospitalId { get; set; } //医院Id
public int AllotId { get; set; } //绩效Id
public string Code { get; set; } //核算单元编码
public string UnitType { get; set; } //人员类别
public string AccountingUnit { get; set; } //核算单元
public string PersonnelNumber { get; set; } //工号
public string PersonnelName { get; set; } //姓名
public DateTime? BeginDate { get; set; } //在科开始时间
public DateTime? EndDate { get; set; } //在科结束时间
public int WorkFullDays { get; set; } //全勤天数
public int AttendanceDays { get; set; } //出勤天数
public int DeductionDays { get; set; } //核减天数
public int NoDeductionDays { get; set; } //不核减天数
public int State { get; set; } //状态
public string OperationType { get; set; } //操作类型
public int CreateUser { get; set; } //操作人
public DateTime? CreationTime { get; set; } //操作时间
}
}
...@@ -68,7 +68,7 @@ public bool Add(TEntity entity) ...@@ -68,7 +68,7 @@ public bool Add(TEntity entity)
public bool AddRange(params TEntity[] entities) public bool AddRange(params TEntity[] entities)
{ {
context.Set<TEntity>().AddRange(entities); context.Set<TEntity>().AddRange(entities);
return context.SaveChanges() > 0; return context.SaveChanges() > 0;
} }
......
using Performance.EntityModels;
using Performance.EntityModels.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.Repository.Repository
{
public partial class PerforPerAttendanceIssueRecordRepository : PerforRepository<per_attendance_issue_record>
{
/// <summary>
/// per_attendance_issue_record Repository
/// </summary>
public PerforPerAttendanceIssueRecordRepository(PerformanceDbContext context) : base(context)
{
}
}
}
using Performance.EntityModels;
using Performance.EntityModels.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.Repository.Repository
{
public partial class PerforPerAttendanceIssueRepository : PerforRepository<per_attendance_issue>
{
/// <summary>
/// per_attendance_issue Repository
/// </summary>
public PerforPerAttendanceIssueRepository(PerformanceDbContext context) : base(context)
{
}
}
}
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