Browse Source

分诊叫号基础数据维护

master
wxd 1 year ago
parent
commit
50390eebe0
  1. 29
      src/Shentun.Peis.Application.Contracts/Rooms/AsbitemListByRoomIdDto.cs
  2. 19
      src/Shentun.Peis.Application.Contracts/Rooms/CreateRoomDetailsInutDto.cs
  3. 30
      src/Shentun.Peis.Application.Contracts/Rooms/CreateRoomDto.cs
  4. 29
      src/Shentun.Peis.Application.Contracts/Rooms/RoomDto.cs
  5. 14
      src/Shentun.Peis.Application.Contracts/Rooms/RoomIdInputDto.cs
  6. 28
      src/Shentun.Peis.Application.Contracts/Rooms/UpdateRoomDto.cs
  7. 76
      src/Shentun.Peis.Application/ChargeReports/ChargeReportAppService.cs
  8. 5
      src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs
  9. 100
      src/Shentun.Peis.Application/Rooms/RoomAppService.cs

29
src/Shentun.Peis.Application.Contracts/Rooms/AsbitemListByRoomIdDto.cs

@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Rooms
{
public class AsbitemListByRoomIdDto
{
/// <summary>
/// 房间ID
/// </summary>
public Guid RoomId { get; set; }
/// <summary>
/// 房间名称
/// </summary>
public string RoomName { get; set; }
/// <summary>
/// 组合项目ID
/// </summary>
public Guid AsbitemId { get; set; }
/// <summary>
/// 组合项目名称
/// </summary>
public string AsbitemName { get; set;}
}
}

19
src/Shentun.Peis.Application.Contracts/Rooms/CreateRoomDetailsInutDto.cs

@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Rooms
{
public class CreateRoomDetailsInutDto
{
/// <summary>
/// 房间ID
/// </summary>
public Guid RoomId { get; set; }
/// <summary>
/// 项目ID集合
/// </summary>
public List<Guid> AsbitemIds { get; set;]}
}
}

30
src/Shentun.Peis.Application.Contracts/Rooms/CreateRoomDto.cs

@ -1,10 +1,40 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations;
using System.Text; using System.Text;
namespace Shentun.Peis.Rooms namespace Shentun.Peis.Rooms
{ {
public class CreateRoomDto public class CreateRoomDto
{ {
public string DisplayName { get; set; } = null!;
/// <summary>
/// 项目类别编号
/// </summary>
public Guid ItemTypeId { get; set; }
/// <summary>
/// 体检中心ID
/// </summary>
public Guid MedicalCenterId { get; set; }
public char ForSexId { get; set; }
/// <summary>
/// 0-普通,1-抽血室
/// </summary>
public char RoomTypeFlag { get; set; }
/// <summary>
/// 候诊时间
/// </summary>
public decimal QueueTime { get; set; }
public char IsActive { get; set; }
} }
} }

29
src/Shentun.Peis.Application.Contracts/Rooms/RoomDto.cs

@ -4,7 +4,34 @@ using System.Text;
namespace Shentun.Peis.Rooms namespace Shentun.Peis.Rooms
{ {
public class RoomDto
public class RoomDto : AuditedEntityDtoName
{ {
public string DisplayName { get; set; } = null!;
/// <summary>
/// 项目类别编号
/// </summary>
public Guid ItemTypeId { get; set; }
/// <summary>
/// 体检中心ID
/// </summary>
public Guid MedicalCenterId { get; set; }
public char ForSexId { get; set; }
/// <summary>
/// 0-普通,1-抽血室
/// </summary>
public char RoomTypeFlag { get; set; }
/// <summary>
/// 候诊时间
/// </summary>
public decimal QueueTime { get; set; }
public char IsActive { get; set; }
} }
} }

14
src/Shentun.Peis.Application.Contracts/Rooms/RoomIdInputDto.cs

@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shentun.Peis.Rooms
{
public class RoomIdInputDto
{
/// <summary>
/// 房间ID
/// </summary>
public Guid RoomId { get; set; }
}
}

28
src/Shentun.Peis.Application.Contracts/Rooms/UpdateRoomDto.cs

@ -7,5 +7,33 @@ namespace Shentun.Peis.Rooms
public class UpdateRoomDto public class UpdateRoomDto
{ {
public Guid RoomId { get; set; } public Guid RoomId { get; set; }
public string DisplayName { get; set; } = null!;
/// <summary>
/// 项目类别编号
/// </summary>
public Guid ItemTypeId { get; set; }
/// <summary>
/// 体检中心ID
/// </summary>
public Guid MedicalCenterId { get; set; }
public char ForSexId { get; set; }
/// <summary>
/// 0-普通,1-抽血室
/// </summary>
public char RoomTypeFlag { get; set; }
/// <summary>
/// 候诊时间
/// </summary>
public decimal QueueTime { get; set; }
public char IsActive { get; set; }
} }
} }

76
src/Shentun.Peis.Application/ChargeReports/ChargeReportAppService.cs

@ -48,7 +48,7 @@ namespace Shentun.Peis.ChargeReports
private readonly IRepository<Patient, Guid> _patientRepository; private readonly IRepository<Patient, Guid> _patientRepository;
private readonly IRepository<Sex> _sexRepository; private readonly IRepository<Sex> _sexRepository;
private readonly ItemTypeManager _itemTypeManager; private readonly ItemTypeManager _itemTypeManager;
private readonly IRepository<CollectItemType,Guid> _collectItemTypeRepository;
private readonly IRepository<CollectItemType, Guid> _collectItemTypeRepository;
public ChargeReportAppService( public ChargeReportAppService(
IRepository<Charge, Guid> chargeRepository, IRepository<Charge, Guid> chargeRepository,
IRepository<ChargeBack, Guid> chargeBackRepository, IRepository<ChargeBack, Guid> chargeBackRepository,
@ -189,45 +189,57 @@ namespace Shentun.Peis.ChargeReports
foreach (var userName in userNameList) foreach (var userName in userNameList)
{ {
//添加收费数据
foreach (var payMode in chargeDetails.Where(m => m.UserName == userName).FirstOrDefault().PayModeDetails)
var userChargeDetail = chargeDetails.Where(m => m.UserName == userName).FirstOrDefault();
if (userChargeDetail != null)
{ {
chargeAndChargeBackDetails.Add(new GetTollCollectorFeeReportInPayMode_ChargeAndChargeBackDetail
//添加收费数据
foreach (var payMode in userChargeDetail.PayModeDetails)
{ {
ChargeName = userName,
PayModeName = payMode.PayModeName,
ChargeMoney = payMode.Money,
ChargeBackMoney = 0
});
chargeAndChargeBackDetails.Add(new GetTollCollectorFeeReportInPayMode_ChargeAndChargeBackDetail
{
ChargeName = userName,
PayModeName = payMode.PayModeName,
ChargeMoney = payMode.Money,
ChargeBackMoney = 0
});
}
} }
//添加退费数据
foreach (var payMode in chargeBackDetails.Where(m => m.UserName == userName).FirstOrDefault().PayModeDetails)
var userChargeBackDetail = chargeBackDetails.Where(m => m.UserName == userName).FirstOrDefault();
if (userChargeBackDetail != null)
{ {
//支付方式是否已存在
var isPayModeName = chargeAndChargeBackDetails.Where(m => m.ChargeName == userName && m.PayModeName == payMode.PayModeName).FirstOrDefault();
if (isPayModeName != null)
//添加退费数据
foreach (var payMode in userChargeBackDetail.PayModeDetails)
{ {
//收费处已存在
chargeAndChargeBackDetails.ForEach(m =>
//支付方式是否已存在
var isPayModeName = chargeAndChargeBackDetails.Where(m => m.ChargeName == userName && m.PayModeName == payMode.PayModeName).FirstOrDefault();
if (isPayModeName != null)
{ {
if (m.PayModeName == payMode.PayModeName && m.ChargeName == userName)
//收费处已存在
chargeAndChargeBackDetails.ForEach(m =>
{ {
m.ChargeBackMoney = payMode.Money;
m.TotalMoney = m.ChargeMoney - payMode.Money;
}
});
}
else
{
chargeAndChargeBackDetails.Add(new GetTollCollectorFeeReportInPayMode_ChargeAndChargeBackDetail
if (m.PayModeName == payMode.PayModeName && m.ChargeName == userName)
{
m.ChargeBackMoney = payMode.Money;
m.TotalMoney = m.ChargeMoney - payMode.Money;
}
});
}
else
{ {
ChargeName = userName,
PayModeName = payMode.PayModeName,
ChargeMoney = 0,
ChargeBackMoney = payMode.Money,
TotalMoney = 0 - payMode.Money
});
chargeAndChargeBackDetails.Add(new GetTollCollectorFeeReportInPayMode_ChargeAndChargeBackDetail
{
ChargeName = userName,
PayModeName = payMode.PayModeName,
ChargeMoney = 0,
ChargeBackMoney = payMode.Money,
TotalMoney = 0 - payMode.Money
});
}
} }
} }

5
src/Shentun.Peis.Application/PeisApplicationAutoMapperProfile.cs

@ -71,6 +71,7 @@ using Shentun.Peis.ReportFormatTemplates;
using Shentun.Peis.ReportPrinters; using Shentun.Peis.ReportPrinters;
using Shentun.Peis.Reports; using Shentun.Peis.Reports;
using Shentun.Peis.ResultStatuses; using Shentun.Peis.ResultStatuses;
using Shentun.Peis.Rooms;
using Shentun.Peis.SampleContainers; using Shentun.Peis.SampleContainers;
using Shentun.Peis.SampleGroupDetails; using Shentun.Peis.SampleGroupDetails;
using Shentun.Peis.SampleGroups; using Shentun.Peis.SampleGroups;
@ -541,6 +542,10 @@ public class PeisApplicationAutoMapperProfile : Profile
//职业病报告 //职业病报告
CreateMap<MedicalReportDto, OccupationalDiseaseMedicalReportDto>(); CreateMap<MedicalReportDto, OccupationalDiseaseMedicalReportDto>();
//分诊叫号
CreateMap<Room, RoomDto>();
CreateMap<CreateRoomDto, Room>();
CreateMap<UpdateRoomDto, Room>();
} }
} }

100
src/Shentun.Peis.Application/Rooms/RoomAppService.cs

@ -3,11 +3,13 @@ using Microsoft.AspNetCore.Mvc;
using Shentun.Peis.Asbitems; using Shentun.Peis.Asbitems;
using Shentun.Peis.HelperDto; using Shentun.Peis.HelperDto;
using Shentun.Peis.Models; using Shentun.Peis.Models;
using SqlSugar;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
using Volo.Abp.Domain.Repositories; using Volo.Abp.Domain.Repositories;
using Volo.Abp.ObjectMapping; using Volo.Abp.ObjectMapping;
@ -22,16 +24,50 @@ namespace Shentun.Peis.Rooms
public class RoomAppService : ApplicationService public class RoomAppService : ApplicationService
{ {
private readonly IRepository<Room, Guid> _roomRepository; private readonly IRepository<Room, Guid> _roomRepository;
private readonly IRepository<RoomDetail> _roomDetailRepository;
private readonly IRepository<Asbitem, Guid> _asbitemRepository; private readonly IRepository<Asbitem, Guid> _asbitemRepository;
private readonly CacheService _cacheService;
private readonly RoomManager _roomManager; private readonly RoomManager _roomManager;
public RoomAppService( public RoomAppService(
IRepository<Room, Guid> roomRepository, IRepository<Room, Guid> roomRepository,
IRepository<Asbitem, Guid> asbitemRepository, IRepository<Asbitem, Guid> asbitemRepository,
RoomManager roomManager)
RoomManager roomManager,
IRepository<RoomDetail> roomDetailRepository,
CacheService cacheService)
{ {
_roomRepository = roomRepository; _roomRepository = roomRepository;
_asbitemRepository = asbitemRepository; _asbitemRepository = asbitemRepository;
_roomManager = roomManager; _roomManager = roomManager;
_roomDetailRepository = roomDetailRepository;
_cacheService = cacheService;
}
/// <summary>
/// 查询房间列表
/// </summary>
/// <returns></returns>
[HttpPost("api/app/Room/GetList")]
public async Task<List<RoomDto>> GetListAsync()
{
var entListDto = (await _roomRepository.GetQueryableAsync()).Select(s => new RoomDto
{
CreationTime = s.CreationTime,
CreatorId = s.CreatorId,
ForSexId = s.ForSexId,
Id = s.Id,
IsActive = s.IsActive,
ItemTypeId = s.ItemTypeId,
DisplayName = s.DisplayName,
LastModificationTime = s.LastModificationTime,
LastModifierId = s.LastModifierId,
MedicalCenterId = s.MedicalCenterId,
QueueTime = s.QueueTime,
RoomTypeFlag = s.RoomTypeFlag,
LastModifierName = _cacheService.GetSurnameAsync(s.LastModifierId).Result,
CreatorName = _cacheService.GetSurnameAsync(s.CreatorId).Result
}).ToList();
return entListDto;
} }
@ -76,6 +112,68 @@ namespace Shentun.Peis.Rooms
await _roomManager.CheckAndDeleteAsync(id); await _roomManager.CheckAndDeleteAsync(id);
} }
/// <summary>
/// 批量创建房间对应的项目 明细
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/Room/CreateRoomDetails")]
public async Task CreateRoomDetailsAsync(CreateRoomDetailsInutDto input)
{
var roomEnt = await _roomRepository.FirstOrDefaultAsync(f => f.Id == input.RoomId);
if (roomEnt == null)
{
throw new UserFriendlyException("房间不存在");
}
await _roomDetailRepository.DeleteAsync(d => d.RoomId == input.RoomId);
if (input.AsbitemIds.Any())
{
List<RoomDetail> roomDetails = new List<RoomDetail>();
foreach (var asbitemId in input.AsbitemIds)
{
if (roomDetails.FirstOrDefault(m => m.AsbitemId == asbitemId) != null)
{
roomDetails.Add(new RoomDetail
{
AsbitemId = asbitemId,
RoomId = input.RoomId
});
}
}
await _roomDetailRepository.InsertManyAsync(roomDetails);
}
}
/// <summary>
/// 根据房间id查询对应的项目
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[HttpPost("api/app/Room/GetAsbitemListByRoomId")]
public async Task<List<AsbitemListByRoomIdDto>> GetAsbitemListByRoomIdAsync(RoomIdInputDto input)
{
var entListDto = (from roomDetail in await _roomDetailRepository.GetQueryableAsync()
join asbitem in await _asbitemRepository.GetQueryableAsync() on roomDetail.AsbitemId equals asbitem.Id
join room in await _roomRepository.GetQueryableAsync() on roomDetail.RoomId equals room.Id
where roomDetail.RoomId == input.RoomId
orderby asbitem.DisplayOrder ascending
select new AsbitemListByRoomIdDto
{
AsbitemId = roomDetail.AsbitemId,
AsbitemName = asbitem.DisplayName,
RoomId = roomDetail.RoomId,
RoomName = room.DisplayName
}).ToList();
return entListDto;
}
/// <summary> /// <summary>
/// 修改排序 置顶,置底 /// 修改排序 置顶,置底
/// </summary> /// </summary>

Loading…
Cancel
Save