Commit 08837348 by lcx

抽取时更改,保存医护工作量详情(到医生),根据时间删除抽取数据(保留最近5次抽取记录),获取医护工作量详情

parent 0f429ee0
......@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Mvc;
using Performance.DtoModels;
using Performance.EntityModels;
......@@ -156,5 +157,17 @@ public ApiResponse DeptDics(int hospitalId, int type)
var result = personService.DeptDics(hospitalId, type);
return new ApiResponse(ResponseType.OK, result);
}
/// <summary>
/// 科室工作量详情
/// </summary>
/// <returns></returns>
[HttpPost]
[Route("dept/workdetail")]
public ApiResponse DeptWorkloadDetail([CustomizeValidator(RuleSet = "Select"), FromBody] WorkDetailRequest request)
{
var data = personService.DeptWorkloadDetail(request);
return new ApiResponse(ResponseType.OK, data);
}
}
}
......@@ -866,6 +866,12 @@
<param name="type">1系统科室 2标准科室 3核算单元</param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.PersonController.DeptWorkloadDetail(Performance.DtoModels.WorkDetailRequest)">
<summary>
科室工作量详情
</summary>
<returns></returns>
</member>
<member name="T:Performance.Api.Controllers.ReportController">
<summary>
报表
......
......@@ -1573,6 +1573,16 @@
科室
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.DoctorName">
<summary>
医生姓名
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.PersonnelNumber">
<summary>
人员工号
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.Category">
<summary>
费用类型
......@@ -1598,6 +1608,11 @@
数据库配置Id
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.CreateTime">
<summary>
创建时间
</summary>
</member>
<member name="P:Performance.EntityModels.ex_result.IsDelete">
<summary>
1 删除 0 未删除
......@@ -3393,6 +3408,71 @@
数据来源 1 excel 导入 2 计算
</summary>
</member>
<member name="T:Performance.EntityModels.report_original_workload">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.Id">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.AllotID">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.Year">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.Month">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.HospitalID">
<summary>
医院ID
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.SourceType">
<summary>
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.AccountingUnit">
<summary>
科室核算单元
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.Department">
<summary>
科室
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.DoctorName">
<summary>
医生姓名
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.PersonnelNumber">
<summary>
人员工号
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.Category">
<summary>
费用类型
</summary>
</member>
<member name="P:Performance.EntityModels.report_original_workload.Fee">
<summary>
费用
</summary>
</member>
<member name="T:Performance.EntityModels.rep_group">
<summary>
......
......@@ -6,6 +6,8 @@ namespace Performance.DtoModels
{
public class ExtractDto
{
public string DoctorName { get; set; }
public string PersonnelNumber { get; set; }
public string Department { get; set; }
public string Category { get; set; }
public decimal Value { get; set; }
......
using FluentValidation;
using System;
using System.Collections.Generic;
using System.Text;
namespace Performance.DtoModels
{
public class WorkDetailRequest
{
public int AllotId { get; set; }
public string AccountingUnit { get; set; }
}
public class WorkDetailRequestValidator : AbstractValidator<WorkDetailRequest>
{
public WorkDetailRequestValidator()
{
RuleSet("Select", () =>
{
RuleFor(x => x.AllotId).NotNull().NotEmpty().GreaterThan(0);
RuleFor(x => x.AccountingUnit).NotNull().NotEmpty();
});
}
}
}
......@@ -32,6 +32,16 @@ public class ex_result
public string Department { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string DoctorName { get; set; }
/// <summary>
/// 人员工号
/// </summary>
public string PersonnelNumber { get; set; }
/// <summary>
/// 费用类型
/// </summary>
public string Category { get; set; }
......@@ -55,7 +65,12 @@ public class ex_result
/// 数据库配置Id
/// </summary>
public int ConfigId { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public Nullable<DateTime> CreateTime { get; set; }
/// <summary>
/// 1 删除 0 未删除
/// </summary>
......
//-----------------------------------------------------------------------
// <copyright file=" report_original_workload.cs">
// * FileName: .cs
// </copyright>
//-----------------------------------------------------------------------
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Performance.EntityModels
{
/// <summary>
///
/// </summary>
[Table("report_original_workload")]
public class report_original_workload
{
/// <summary>
///
/// </summary>
[Key]
public int Id { get; set; }
/// <summary>
///
/// </summary>
public Nullable<int> AllotID { get; set; }
/// <summary>
/// 年
/// </summary>
public int Year { get; set; }
/// <summary>
/// 月
/// </summary>
public int Month { get; set; }
/// <summary>
/// 医院ID
/// </summary>
public int HospitalID { get; set; }
/// <summary>
///
/// </summary>
public string SourceType { get; set; }
/// <summary>
/// 科室核算单元
/// </summary>
public string AccountingUnit { get; set; }
/// <summary>
/// 科室
/// </summary>
public string Department { get; set; }
/// <summary>
/// 医生姓名
/// </summary>
public string DoctorName { get; set; }
/// <summary>
/// 人员工号
/// </summary>
public string PersonnelNumber { get; set; }
/// <summary>
/// 费用类型
/// </summary>
public string Category { get; set; }
/// <summary>
/// 费用
/// </summary>
public Nullable<decimal> Fee { get; set; }
}
}
......@@ -50,10 +50,10 @@ public class sys_role
/// 父级角色
/// </summary>
public string ParentRoles { get; set; }
/// <summary>
///
/// </summary>
public int Sort { get; set; }
public Nullable<int> Sort { get; set; }
}
}
......@@ -21,12 +21,12 @@ namespace Performance.Extract.Api.Controllers
[Route("api/[controller]")]
public class ExtractController : Controller
{
private readonly DFExtractService1 extractService;
private readonly DFExtractService extractService;
private readonly HospitalService hospitalService;
private readonly WebapiUrl url;
private readonly ILogger<ExtractController> logger;
private readonly IHostingEnvironment evn;
public ExtractController(DFExtractService1 extractService,
public ExtractController(DFExtractService extractService,
HospitalService hospitalService,
IOptions<WebapiUrl> url,
ILogger<ExtractController> logger,
......
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// <copyright file=" sys_allot.cs">
// * FileName: sys_allot.cs
// * history : Created by T4 2019-03-06 16:43:31
......@@ -30,7 +30,7 @@ public bool UpdateAllotStates(int allotId, int states, string remark, int genera
}
/// <summary>
/// 只支持EXCEL抽取报表数据
/// 只支持EXCEL抽取报表数据
/// </summary>
/// <param name="import"></param>
/// <param name="pairs"></param>
......@@ -46,7 +46,7 @@ public bool ImportData(rep_importconfig import, Dictionary<string, object> pairs
}
/// <summary>
/// 指定数据源插入MYSQL
/// 指定数据源插入MYSQL
/// </summary>
/// <param name="import"></param>
/// <param name="pairs"></param>
......@@ -97,5 +97,79 @@ public bool UpdateData(rep_importconfig import, Dictionary<string, object> pairs
return flag > 0;
}
}
/// <summary>
/// 清除历史抽取数据
/// </summary>
/// <param name="allotid"></param>
public void ClearResultData(int allotid)
{
using (var connection = context.Database.GetDbConnection())
{
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string clear = "delete from ex_result where allotid = @allotid and isdelete = 1 and createtime < (select min(createtime) from (select distinct createtime from ex_result where allotid = @allotid and isdelete = 1 order by createtime desc limit 4) t);";
connection.Execute(clear, new { allotid }, commandTimeout: 60 * 60);
}
catch (Exception ex)
{
throw ex;
}
}
}
/// <summary>
/// 保存工作量数据
/// </summary>
/// <param name="allot"></param>
/// <param name="parameters"></param>
public void ImportWorkloadData(per_allot allot, object parameters)
{
using (var connection = context.Database.GetDbConnection())
{
if (connection.State != ConnectionState.Open) connection.Open();
using (var transaction = connection.BeginTransaction())
{
try
{
string clear = "delete from report_original_workload where allotid = @allotid and hospitalid = @hospitalid;";
connection.Execute(clear, new { allotid = allot.ID, hospitalid = allot.HospitalId }, commandTimeout: 60 * 60, transaction: transaction);
string insert = "insert into report_original_workload(allotid,year,month,hospitalid,accountingunit,department,doctorname,personnelnumber,category,fee) values(@allotid,@year,@month,@hospitalid,@accountingunit,@department,@doctorname,@personnelnumber,@category,@fee);";
connection.Execute(insert, parameters, commandTimeout: 60 * 60, transaction: transaction);
transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
}
}
/// <summary>
/// 查询工作量数据
/// </summary>
/// <param name="allotid"></param>
public IEnumerable<report_original_workload> QueryWorkloadData(int allotid, string accountingunit)
{
using (var connection = context.Database.GetDbConnection())
{
if (connection.State != ConnectionState.Open) connection.Open();
try
{
string clear = "select * from report_original_workload where allotid = @allotid and accountingunit = @accountingunit order by fee desc,convert(doctorname using gbk);";
return connection.Query<report_original_workload>(clear, new { allotid, accountingunit }, commandTimeout: 60 * 60);
}
catch (Exception ex)
{
throw ex;
}
}
}
}
}
......@@ -458,5 +458,25 @@ public List<TitleValue> DeptDics(int hospitalId, int type)
}
return result.Select(t => new TitleValue { Title = t, Value = t }).ToList();
}
/// <summary>
/// 科室工作量数据详情
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public object DeptWorkloadDetail(WorkDetailRequest request)
{
var data = perallotRepository.QueryWorkloadData(request.AllotId, request.AccountingUnit);
if (data != null && data.Any())
return data.Select(t => new
{
t.Department,
t.DoctorName,
t.PersonnelNumber,
t.Category,
t.Fee
});
return new string[] { };
}
}
}
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