二次绩效结果打印(新版)

parent d3f4eebe
......@@ -503,6 +503,18 @@ public ApiResponse SecondPrint(int secondid)
}
/// <summary>
/// 二次绩效结果打印(新版)
/// </summary>
/// <returns></returns>
[Route("api/second/newprint/{secondid}")]
[HttpPost]
public ApiResponse SecondNewPrint(int secondid)
{
var result = secondAllotService.NewPrint(secondid);
return new ApiResponse(ResponseType.OK, result);
}
/// <summary>
/// 科主任/护士长绩效发布
/// </summary>
/// <returns></returns>
......
......@@ -2309,6 +2309,12 @@
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.SecondAllotController.SecondNewPrint(System.Int32)">
<summary>
二次绩效结果打印(新版)
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.SecondAllotController.DeptComputeDetail(System.Int32)">
<summary>
科主任/护士长绩效发布
......
......@@ -2657,6 +2657,11 @@
绩效发放月
</summary>
</member>
<member name="P:Performance.DtoModels.AllotResponse.Name">
<summary>
绩效别名
</summary>
</member>
<member name="P:Performance.DtoModels.AllotResponse.AllotFee">
<summary>
绩效发放总金额
......@@ -3952,6 +3957,11 @@
行政后勤是否显示管理绩效按钮 1 是 2 否
</summary>
</member>
<member name="P:Performance.DtoModels.SecondListResponse.Name">
<summary>
绩效别名
</summary>
</member>
<member name="P:Performance.DtoModels.SecondPerforResponse.Efficiency">
<summary>
效率绩效
......
......@@ -5938,6 +5938,11 @@
绩效发放月
</summary>
</member>
<member name="P:Performance.EntityModels.per_allot.Name">
<summary>
绩效别名
</summary>
</member>
<member name="P:Performance.EntityModels.per_allot.AllotFee">
<summary>
绩效发放总金额
......
using Dapper;
using MassTransit;
using Microsoft.Extensions.Options;
using MySql.Data.MySqlClient;
using Performance.DtoModels;
......@@ -270,5 +271,36 @@ public Task RestoreSecondAllotAsync()
}
});
}
public IEnumerable<dynamic> QuerySecondPrintHead(int allotId, string unitType, string accountingUnit)
{
using (var connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
if (connection.State != ConnectionState.Open) connection.Open();
string sql = $@"select * from view_second_print_header where AllotId = @allotId AND UnitType = @UnitType AND AccountingUnit = @AccountingUnit";
return connection.Query(sql, new { allotId, unitType = unitType.Replace("行政后勤", "行政工勤"), accountingUnit }, commandTimeout: 60 * 60);
}
}
public IEnumerable<dynamic> QuerySecondPrintRow(int allotId, string unitType, string accountingUnit)
{
using (var connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
if (connection.State != ConnectionState.Open) connection.Open();
string sql = $@"select * from view_second_print_row where AllotId = @allotId AND UnitType = @UnitType AND AccountingUnit = @AccountingUnit";
return connection.Query(sql, new { allotId, unitType = unitType.Replace("行政后勤", "行政工勤"), accountingUnit }, commandTimeout: 60 * 60);
}
}
public IEnumerable<dynamic> QueryTableStructure(string tableName)
{
using (var connection = new MySqlConnection(_options.Value.PerformanceConnectionString))
{
if (connection.State != ConnectionState.Open) connection.Open();
string sql = $@"select column_name,ordinal_position from information_schema.`columns` where table_schema= database() and table_name = @tableName";
return connection.Query(sql, new { tableName }, commandTimeout: 60 * 60);
}
}
}
}
......@@ -2385,6 +2385,25 @@ public dynamic Print(int secondId)
return new { header, body = result/*.OrderBy(t => t.JobNumber).ThenBy(t => t.PersonName).ToList()*/ };
}
public dynamic NewPrint(int secondId)
{
var second = agsecondallotRepository.GetEntity(t => t.Id == secondId);
if (second == null) return new List<SecPrintResponse>();
var status = new int[] { (int)SecondAllotStatus.WaitReview, (int)SecondAllotStatus.PassAudit };
if (!second.Status.HasValue || !status.Contains(second.Status.Value))
throw new PerformanceException("当前科室分配结果未提交,无法打印!");
var allotId = second.AllotId ?? 0;
var allot = perallotRepository.GetEntity(t => t.ID == allotId);
var header = _service.QuerySecondPrintHead(allotId, second.UnitType, second.Department);
var body = _service.QuerySecondPrintRow(allotId, second.UnitType, second.Department);
var column = _service.QueryTableStructure("view_second_print_row");
var title = $"{allot.Year}{(string.IsNullOrEmpty(allot.Name) ? $"{allot.Month}月" : allot.Name)}{second.Department}{second.UnitType}绩效分配表";
return new { title, body, header, column };
}
#endregion 打印
public List<DeptDataDetails> DeptComputeDetailList(int userId, int allotId, out int isShowManage)
......
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