Commit c9acd34c by 钟博

绩效划拨审核、状态,列表问题修改

parent d46c8d42
......@@ -63,7 +63,6 @@ public ApiResponse Common(int hospitalId, int allotId)
var result = costTransferService.Common(allotId, hospitalId,role.Type.Value, user.Department);
result.deparment = user.Department ?? "";
return new ApiResponse(ResponseType.OK, result);
}
......@@ -72,10 +71,11 @@ public ApiResponse Common(int hospitalId, int allotId)
/// 审核列表
/// </summary>
/// <param name="allotId"></param>
/// <param name="menuType"></param>
/// <returns></returns>
[Route("auditlist/{allotId}")]
[Route("auditlist/{allotId}/menuType/{menuType}")]
[HttpPost]
public ApiResponse AuditList(int allotId)
public ApiResponse AuditList(int allotId,int menuType)
{
if (allotId <= 0)
return new ApiResponse(ResponseType.ParameterError, "参数AllotId无效!");
......@@ -83,7 +83,7 @@ public ApiResponse AuditList(int allotId)
var userid = claim.GetUserId();
var user = userService.GetUser(userid);
var role = roleService.GetARole(user.UserID);
var result = costTransferService.GetAuditList(allotId, role.Type.Value, user.Department);
var result = costTransferService.GetAuditList(allotId,menuType, role.Type.Value, user.Department);
return new ApiResponse(ResponseType.OK, result);
......@@ -96,7 +96,7 @@ public ApiResponse AuditList(int allotId)
/// <returns></returns>
[Route("costtransferaudit")]
[HttpPost]
public ApiResponse Audit([FromBody] CostTransferUpdateRequest request)
public ApiResponse Audit([FromBody] AuditRequest request)
{
if (request.AllotId <= 0)
return new ApiResponse(ResponseType.ParameterError, "参数AllotId无效!");
......
......@@ -709,14 +709,15 @@
</summary>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.CostTransferController.AuditList(System.Int32)">
<member name="M:Performance.Api.Controllers.CostTransferController.AuditList(System.Int32,System.Int32)">
<summary>
审核列表
</summary>
<param name="allotId"></param>
<param name="menuType"></param>
<returns></returns>
</member>
<member name="M:Performance.Api.Controllers.CostTransferController.Audit(Performance.DtoModels.CostTransferUpdateRequest)">
<member name="M:Performance.Api.Controllers.CostTransferController.Audit(Performance.DtoModels.AuditRequest)">
<summary>
划拨审核
</summary>
......
......@@ -2980,7 +2980,7 @@
</member>
<member name="P:Performance.DtoModels.CostTransferResponse.Status">
<summary>
0 未审核 1 部分审核 2 全部审核 3 未含有划拨明细
0 未审核 1 部分审核 2 全部审核
</summary>
</member>
<member name="P:Performance.DtoModels.DeptDataDetails`1.Pandect">
......
......@@ -2266,7 +2266,12 @@
</member>
<member name="P:Performance.EntityModels.cost_transfer.Status">
<summary>
0 未审核 1 部分审核 2 全部审核 3 未含有划拨明细
0 未审核 1 全部通过 2 部分通过 3 全部驳回
</summary>
</member>
<member name="P:Performance.EntityModels.cost_transfer.AdminStatus">
<summary>
0 未审核 1 全部通过 2 部分通过 3 全部驳回
</summary>
</member>
<member name="T:Performance.EntityModels.cost_transfer_item">
......
......@@ -27,10 +27,18 @@ public class CostTransferUpdateRequest : CostTransferRequest
{
public int TransferId { get; set; }
public new List<cost_transfer_item> Items { get; set; }
}
public class AuditRequest
{
public int AllotId { get; set; }
public int[] TransferItemId { get; set; }
public int Status { get; set; }
public new List<cost_transfer_item> Items { get; set; }
public string Remake { get; set; }
}
}
......@@ -63,7 +63,9 @@ public class Common
public class Option : cost_transfer_item
{
public string[] options { get; set; }
public string[] options { get; set; }
public string ApplicantDepartment { get; set; }
public string AdoptedDepartment { get; set; }
}
}
......@@ -46,10 +46,13 @@ public class cost_transfer
public string AdoptedDepartment { get; set; }
/// <summary>
/// 0 未审核 1 部分审核 2 全部审核
/// 0 未审核 1 全部通过 2 部分通过 3 全部驳回 4 含有下发驳回
/// </summary>
public int Status { get; set; }
/// <summary>
/// 0 未审核 1 全部通过 2 部分通过 3 全部驳回 4 含有下发驳回
/// </summary>
public int AdminStatus { get; set; }
}
}
......@@ -58,9 +58,11 @@ PerforImdataRepository imdataRepository
/// 审核页面
/// </summary>
/// <param name="allotId"></param>
/// <param name="menuType">1:申请 2:审核</param>
/// <param name="roleType"></param>
/// <param name="Department"></param>
/// <returns></returns>
public List<CostTransferResponse> GetAuditList(int allotId, int roleType, string Department)
public List<CostTransferResponse> GetAuditList(int allotId, int menuType, int roleType, string Department)
{
var roleTypes = new[] { 1, 2, 5 }.Contains(roleType);
var account = GetAccounting(allotId, roleType, Department);
......@@ -78,7 +80,11 @@ public List<CostTransferResponse> GetAuditList(int allotId, int roleType, string
var costTransfers = costtransferRepository.GetEntities(exp);
if (!roleTypes)
costTransfers = costTransfers?.FindAll(t => t.AdoptedDepartment == Department);
if (menuType == 1)
costTransfers = costTransfers?.FindAll(t => t.ApplicantDepartment == Department);
else
costTransfers = costTransfers?.FindAll(t => t.AdoptedDepartment == Department);
if (costTransfers == null || !costTransfers.Any())
return new List<CostTransferResponse>();
......@@ -98,6 +104,7 @@ public List<CostTransferResponse> GetAuditList(int allotId, int roleType, string
result.Items = costItem.Where(t => t.TransferId == item.Id)?.Select(t => new Option
{
Id = t.Id,
TransferId = t.TransferId,
Source = t.Source,
Category = t.Category,
Amount = t.Amount,
......@@ -106,13 +113,15 @@ public List<CostTransferResponse> GetAuditList(int allotId, int roleType, string
Status = t.Status,
AdminStatus = t.AdminStatus,
Remark = t.Remark,
options = new string[] { }
options = new string[] { },
ApplicantDepartment = result.ApplicantDepartment,
AdoptedDepartment = result.AdoptedDepartment
}).OrderBy(t => t.Status).ThenBy(t => t.AdminStatus).ToList();
}).ToList();
response.Add(result);
}
return response.OrderBy(t => t.Status).ToList();
return response.OrderBy(t => t.Status).ThenBy(t => t.AdminStatus).ToList();
}
......@@ -147,6 +156,22 @@ public CommonResponse Common(int allotId, int hospitalId, int roleType, string d
?.Select(t => new TitleValue { Title = t.AccountingUnit, Value = t.AccountingUnit }).ToDistinct().ToList();
var sheets = persheetRepository.GetEntities(t => t.AllotID == allotId && t.SheetType == (int)SheetType.Income);
common.unitType = GetAccounting(allotId, roleType, deparment)?.UnitType;
if (common.unitType == null)
{
var prevAllot = PrevAllot(hospitalId, allotId);
if (prevAllot == null) return common;
common.unitType = GetAccounting(prevAllot.ID, roleType, deparment)?.UnitType;
to:
if (common.unitType == null)
{
var prevAllotId = prevAllot.ID--;
if (prevAllotId <= 0) return common;
common.unitType = GetAccounting(prevAllot.ID, roleType, deparment)?.UnitType;
goto to;
}
}
if (sheets == null || !sheets.Any())
{
var data = new List<Common>()
......@@ -160,8 +185,7 @@ public CommonResponse Common(int allotId, int hospitalId, int roleType, string d
return common;
}
var unitType = GetAccounting(allotId, roleType, deparment)?.UnitType;
var unitValue = EnumHelper.GetItems<UnitType>().Find(t => t.Name == unitType).Value;
var unitValue = EnumHelper.GetItems<UnitType>().Find(t => t.Name == common.unitType)?.Value;
var sheetId = sheets.Select(t => t.ID);
var imData = imdataRepository.GetEntities(t => t.AllotID == allotId && sheetId.Contains(t.SheetID.Value) && t.UnitType == unitValue);
......@@ -177,7 +201,6 @@ public CommonResponse Common(int allotId, int hospitalId, int roleType, string d
}).ToList();
common.Data = commons;
common.unitType = unitType;
#region
/*
var drugType = cofdrugtypeRepository.GetEntities(t => t.HospitalId == hospitalId && t.AllotID == allotId)
......@@ -197,19 +220,7 @@ public CommonResponse Common(int allotId, int hospitalId, int roleType, string d
?.Select(t => new TitleValue { Title = t.AccountingUnit, Value = t.AccountingUnit }).ToDistinct();
*/
#endregion
if (unitType == null)
{
var prevAllot = PrevAllot(hospitalId, allotId);
common.unitType = GetAccounting(prevAllot.ID, roleType, deparment)?.UnitType;
to:
if (common.unitType == null)
{
var prevAllotId = prevAllot.ID--;
if (prevAllotId <= 0) return common;
common.unitType = GetAccounting(prevAllot.ID, roleType, deparment)?.UnitType;
goto to;
}
}
return common;
}
......@@ -226,7 +237,7 @@ public bool Applicat(CostTransferRequest request)
throw new PerformanceException("参数错误,申请/被划拨科室信息缺失");
if (string.IsNullOrEmpty(request.Applicant.UnitType) || string.IsNullOrEmpty(request.Applicant.Department))
throw new PerformanceException("参数错误,申请科室信息缺失");
throw new PerformanceException("当前科室未配置科室类别,无法提交申请");
if (string.IsNullOrEmpty(request.Adopted.UnitType) || string.IsNullOrEmpty(request.Adopted.Department))
throw new PerformanceException("参数错误,被划拨科室信息缺失");
......@@ -251,7 +262,7 @@ public bool Applicat(CostTransferRequest request)
AdoptedDepartment = request.Adopted.Department,
AdoptedUnitType = request.Adopted.UnitType,
Status = 0,
AdminStatus=0
AdminStatus = 0
};
var result = costtransferRepository.Add(transfer);
......@@ -287,7 +298,7 @@ public void UpdateApplicat(CostTransferUpdateRequest request)
var transfer = costtransferRepository.GetEntity(t => t.Id == request.TransferId);
if (transfer == null)
throw new PerformanceException("划拨申请记录不存在");
/*
transfer.AllotId = request.AllotId;
transfer.ApplicantDepartment = request.Applicant.Department;
transfer.ApplicantUnitType = request.Applicant.UnitType;
......@@ -296,7 +307,7 @@ public void UpdateApplicat(CostTransferUpdateRequest request)
var result = costtransferRepository.Update(transfer);
if (!result)
throw new PerformanceException("修改划拨申请记录失败");
throw new PerformanceException("修改划拨申请记录失败");*/
var items = costtransferitemRepository.GetEntities(t => t.TransferId == request.TransferId);
if (items == null)
......@@ -321,11 +332,11 @@ public void UpdateApplicat(CostTransferUpdateRequest request)
if (request.Items.Any(t => t.Id > 0))
{
var hasPrimaryValueItmes = request.Items.Where(t => t.Id > 0).ToList();
/*
// 删除
var notExistItems = items.Where(item => !hasPrimaryValueItmes.Select(t => t.Id).Contains(item.Id));
if (notExistItems != null && notExistItems.Any())
costtransferitemRepository.RemoveRange(notExistItems.ToArray());
costtransferitemRepository.RemoveRange(notExistItems.ToArray());*/
// 更新
var updateItems = items.Where(item => hasPrimaryValueItmes.Select(t => t.Id).Contains(item.Id));
......@@ -334,7 +345,7 @@ public void UpdateApplicat(CostTransferUpdateRequest request)
var item = hasPrimaryValueItmes.FirstOrDefault(t => t.Id == update.Id);
update.Source = item.Source;
update.Category = item.Source;
update.Category = item.Category;
update.Amount = item.Amount;
update.Ratio = item.Ratio;
update.CalculationAmount = item.CalculationAmount;
......@@ -345,7 +356,7 @@ public void UpdateApplicat(CostTransferUpdateRequest request)
hasPrimaryValueItmes.Remove(item);
}
costtransferitemRepository.UpdateRange(updateItems.ToArray());
/*
// 添加
if (hasPrimaryValueItmes != null && hasPrimaryValueItmes.Any())
{
......@@ -356,13 +367,13 @@ public void UpdateApplicat(CostTransferUpdateRequest request)
t.Status = 0;
});
costtransferitemRepository.AddRange(hasPrimaryValueItmes.ToArray());
}
} */
}
/*
if (request.Items.Any(t => t.Id == 0)) // 添加
{
costtransferitemRepository.AddRange(request.Items.Where(t => t.Id == 0).ToArray());
}
} */
}
}
......@@ -392,8 +403,11 @@ public void DeleteApplicat(int transferId)
/// <summary>
/// 划拨审核
/// </summary>
public bool CostTransferAudit(CostTransferUpdateRequest request, bool isAdmin)
public bool CostTransferAudit(AuditRequest request, bool isAdmin)
{
if (request.TransferItemId.Length <= 0)
throw new PerformanceException("没有可以审核的记录");
var costItems = costtransferitemRepository.GetEntities(t => request.TransferItemId.Contains(t.Id));
var transferId = costItems?.Select(t => t.TransferId).Distinct();
var transfers = costtransferRepository.GetEntities(t => transferId.Contains(t.Id));
......@@ -401,13 +415,21 @@ public bool CostTransferAudit(CostTransferUpdateRequest request, bool isAdmin)
if (isAdmin)
{
costItems = costItems?.FindAll(t => t.AdminStatus == 0);
costItems.ForEach(t => t.AdminStatus = request.Status);
costItems.ForEach(t =>
{
t.AdminStatus = request.Status;
t.Remark = request.Remake;
});
}
else
{
costItems = costItems?.FindAll(t => t.Status == 0);
costItems.ForEach(t => t.Status = request.Status);
costItems.ForEach(t =>
{
if (request.Status == 2 && t.AdminStatus != 0)
t.AdminStatus = 2;
t.Status = request.Status;
t.Remark = request.Remake;
});
}
//if (costItems == null || !costItems.Any()) return;
......@@ -428,13 +450,13 @@ public bool CostTransferAudit(CostTransferUpdateRequest request, bool isAdmin)
/// <param name="transferId"></param>
/// <param name="issue"></param>
/// <returns></returns>
public bool RejectedApplicat(int allotId, int transferId = 0, bool issue = false)
public bool RejectedApplicat(int allotId)
{
var costTransfers = costtransferRepository.GetEntities(t => t.AllotId == allotId && (t.Status == 0 || t.Status == 1));
var costTransfers = costtransferRepository.GetEntities(t => t.AllotId == allotId && new[] { 0, 2 }.Contains(t.AdminStatus));
if (costTransfers == null || !costTransfers.Any()) return true;
var costId = costTransfers?.Select(t => t.Id);
var costItems = costtransferitemRepository.GetEntities(t => costId.Contains(t.TransferId));
var costItems = costtransferitemRepository.GetEntities(t => costId.Contains(t.TransferId) && t.AdminStatus==0 );
costItems.ForEach(t =>
{
......@@ -444,13 +466,13 @@ public bool RejectedApplicat(int allotId, int transferId = 0, bool issue = false
costTransfers.ForEach(t =>
{
t.Status = 2;
t.AdminStatus = 2;
t.Status = 4;
t.AdminStatus = 4;
});
costtransferitemRepository.UpdateRange(costItems.ToArray());
costtransferRepository.UpdateRange(costTransfers.ToArray());
return false;
return true;
}
/// <summary>
......@@ -493,7 +515,7 @@ public void IntoLastTiemData(int hospitalId, int allotId)
Remark = t.Remark,
Status = 0,
AdminStatus = 0,
IsWrited = t.IsWrited
IsWrited =0
}).ToArray();
costtransferitemRepository.AddRange(newCostItem);
}
......@@ -535,29 +557,57 @@ public void UpdateCostTransferStatus(int transferId)
transfer.Status = 3;
transfer.AdminStatus = 0;
break;
case var data when !data.Any(t => t.Status == 0):
//科室部分通过,绩效办待审核
case var data when data.Any(t => t.Status == 1) && data.Any(t => t.Status != 1) && data.Any(t => t.AdminStatus == 0):
transfer.Status = 2;
transfer.AdminStatus = 0;
break;
case var data when data.Any(t => t.Status == 0) && !data.Any(t => t.Status == 0):
transfer.Status = 1;
transfer.AdminStatus = 0;
//科室部分通过,绩效办部分通过
case var data when data.Any(t => t.Status == 1) && data.Any(t => t.Status != 1) && data.Any(t => t.AdminStatus == 1) && data.Any(t => t.AdminStatus != 1):
transfer.Status = 2;
transfer.AdminStatus = 2;
break;
case var data when data.Any(t => t.Status == 0):
transfer.Status = 0;
//科室部分通过,绩效办全部驳回
case var data when data.Any(t => t.Status == 1) && data.Any(t => t.Status != 1) && data.Any(t => t.AdminStatus == 2):
transfer.Status = 2;
transfer.AdminStatus = 2;
break;
//科室全部通过,绩效办待审核
case var data when data.Any(t => t.Status == 1) && data.Any(t => t.AdminStatus == 0):
transfer.Status = 1;
transfer.AdminStatus = 0;
break;
case var data when !data.Any(t => t.Status == 0) && !data.Any(t => t.AdminStatus == 0):
transfer.Status = 2;
//科室全部通过,绩效办部分通过
case var data when data.Any(t => t.Status == 1) && data.Any(t => t.AdminStatus == 1) && data.Any(t => t.AdminStatus != 1):
transfer.Status = 1;
transfer.AdminStatus = 2;
break;
case var data when !data.Any(t => t.Status == 0) && data.Any(t => t.AdminStatus == 0) && !data.Any(t => t.AdminStatus == 0):
transfer.Status = 2;
//科室全部通过,绩效办全部通过
case var data when data.Any(t => t.Status == 1) && data.Any(t => t.AdminStatus == 1):
transfer.Status = 1;
transfer.AdminStatus = 1;
break;
//科室全部通过,绩效办全部驳回
case var data when data.Any(t => t.Status == 1) && data.Any(t => t.AdminStatus == 2):
transfer.Status = 1;
transfer.AdminStatus = 3;
break;
//科室全部驳回,绩效办待审核
case var data when data.Any(t => t.Status == 2) && data.Any(t => t.AdminStatus == 0):
transfer.Status = 3;
transfer.AdminStatus = 0;
break;
//科室全部驳回,绩效办全部驳回
case var data when data.Any(t => t.Status == 2) && data.Any(t => t.AdminStatus == 2):
transfer.Status = 3;
transfer.AdminStatus = 3;
break;
//科室待审核,绩效办待审核
case var data when data.Any(t => t.Status == 0) && data.Any(t => t.AdminStatus == 0):
transfer.Status = 0;
transfer.AdminStatus = 0;
break;
default:
break;
}
......
......@@ -9,7 +9,7 @@
namespace Performance.Services.ExtractExcelService.SheetDataWrite
{
public class CostTransferDataWrite
public class CostTransferDataWrite:IAutoInjection
{
private readonly ILogger logger;
private readonly PerforCosttransferRepository costtransferRepository;
......@@ -75,7 +75,7 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, ExcelStyle style,
var column = header.GetCell(i)?.GetDecodeEscapes().Replace("(", "(").Replace(")", ")");
if (!string.IsNullOrEmpty(column) && fixedColumns.Any(t => t == column))
{
if (pairs.ContainsKey(column))
if (!pairs.ContainsKey(column))
pairs.Add(column, i);
fixedColumns.Remove(column);
......@@ -90,7 +90,8 @@ public void WriteSheetData(ISheet sheet, PerSheetPoint point, ExcelStyle style,
var cell = header.CreateCell(index);
cell.SetCellValue(column);
if (pairs.ContainsKey(column)) pairs.Add(column, index);
if (!pairs.ContainsKey(column))
pairs.Add(column, index);
index++;
}
......
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