diff --git a/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetQueueRegisterListByRoomIdDto.cs b/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetQueueRegisterListByRoomIdDto.cs
index 779b12d..85984b7 100644
--- a/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetQueueRegisterListByRoomIdDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetQueueRegisterListByRoomIdDto.cs
@@ -46,7 +46,7 @@ namespace Shentun.Peis.QueueRegisters
///
/// 排队号码
///
- public int QueueRegisterNumber { get; set; }
+ public string QueueRegisterNumber { get; set; }
///
/// 人员ID
diff --git a/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetScreenQueueRegisterListByRoomIdDto.cs b/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetScreenQueueRegisterListByRoomIdDto.cs
index eb34ef8..7ae9ed0 100644
--- a/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetScreenQueueRegisterListByRoomIdDto.cs
+++ b/src/Shentun.Peis.Application.Contracts/QueueRegisters/GetScreenQueueRegisterListByRoomIdDto.cs
@@ -43,7 +43,7 @@ namespace Shentun.Peis.QueueRegisters
///
/// 排队号码
///
- public int QueueRegisterNumber { get; set; }
+ public string QueueRegisterNumber { get; set; }
}
}
diff --git a/src/Shentun.Peis.Application/QueueRegisters/QueueRegisterAppService.cs b/src/Shentun.Peis.Application/QueueRegisters/QueueRegisterAppService.cs
index ff84ed0..26e8890 100644
--- a/src/Shentun.Peis.Application/QueueRegisters/QueueRegisterAppService.cs
+++ b/src/Shentun.Peis.Application/QueueRegisters/QueueRegisterAppService.cs
@@ -83,12 +83,19 @@ namespace Shentun.Peis.QueueRegisters
{
queueRegister,
room,
- patientName = patientRegister.PatientName
+ patientName = patientRegister.PatientName,
+ isVip = patientRegister.IsVip,
}).FirstOrDefault();
if (queueRegisterEnt != null)
{
- var queueCount = await _queueRegisterRepository.CountAsync(c => c.RoomId == queueRegisterEnt.queueRegister.RoomId
- && c.CompleteFlag == QueueRegisterCompleteFlag.Wait && c.CreationTime >= DateTime.Now.Date && c.DisplayOrder < queueRegisterEnt.queueRegister.DisplayOrder);
+ var queueCount = await (from queueRegister in await _queueRegisterRepository.GetQueryableAsync()
+ join patientRegister in await _patientRegisterRepository.GetQueryableAsync() on queueRegister.PatientRegisterId equals patientRegister.Id
+ where queueRegister.RoomId == queueRegisterEnt.queueRegister.RoomId
+ && queueRegister.CompleteFlag == QueueRegisterCompleteFlag.Wait
+ && queueRegister.CreationTime >= DateTime.Now.Date
+ && queueRegister.DisplayOrder < queueRegisterEnt.queueRegister.DisplayOrder
+ && patientRegister.IsVip == queueRegisterEnt.isVip
+ select queueRegister).CountAsync();
var entDto = new QueueRegisterByPatientRegisterIdDto
{
@@ -372,7 +379,8 @@ namespace Shentun.Peis.QueueRegisters
patientRegisterNo = patientRegister.PatientRegisterNo,
roomId = queueRegister.RoomId,
asbitemId = roomDetail.AsbitemId,
- lastModificationTime = queueRegister.LastModificationTime,
+ //lastModificationTime = queueRegister.LastModificationTime,
+ callTime = queueRegister.CallTime
};
if (input.ItemTypeIds.Any())
@@ -407,41 +415,46 @@ namespace Shentun.Peis.QueueRegisters
isVip = s.FirstOrDefault().isVip,
queueRegisterId = s.Key,
queueRegisterNumber = s.FirstOrDefault().queueRegisterNumber,
- lastModificationTime = s.FirstOrDefault().lastModificationTime,
+ //lastModificationTime = s.FirstOrDefault().lastModificationTime,
patientRegisterId = s.FirstOrDefault().patientRegisterId,
patientRegisterNo = s.FirstOrDefault().patientRegisterNo,
+ callTime = s.FirstOrDefault().callTime
}).ToList();
- entDto.WaitDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait).OrderBy(o => o.queueRegisterNumber)
+ var queueRegisterList = roomGroup.Where(m => m.isVip == 'Y').OrderBy(o => o.queueRegisterNumber).ToList();
+ queueRegisterList.AddRange(roomGroup.Where(m => m.isVip == 'N').OrderBy(o => o.queueRegisterNumber).ToList());
+
+
+ entDto.WaitDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait)
.Select(s => new GetQueueRegisterListByRoomIdDetailDto
{
IsVip = s.isVip,
PatientName = s.patientName,
QueueRegisterId = s.queueRegisterId,
- QueueRegisterNumber = s.queueRegisterNumber,
+ QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(),
PatientRegisterId = s.patientRegisterId,
PatientRegisterNo = s.patientRegisterNo
}).ToList();
- entDto.AlreadyCalledDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).OrderByDescending(o => o.lastModificationTime)
+ entDto.AlreadyCalledDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).OrderByDescending(o => o.callTime)
.Select(s => new GetQueueRegisterListByRoomIdDetailDto
{
IsVip = s.isVip,
PatientName = s.patientName,
QueueRegisterId = s.queueRegisterId,
- QueueRegisterNumber = s.queueRegisterNumber,
+ QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(),
PatientRegisterId = s.patientRegisterId,
PatientRegisterNo = s.patientRegisterNo
}).ToList();
- entDto.OverNumberDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber).OrderByDescending(o => o.lastModificationTime)
+ entDto.OverNumberDetail = roomGroup.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber).OrderByDescending(o => o.callTime)
.Select(s => new GetQueueRegisterListByRoomIdDetailDto
{
IsVip = s.isVip,
PatientName = s.patientName,
QueueRegisterId = s.queueRegisterId,
- QueueRegisterNumber = s.queueRegisterNumber,
+ QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString(),
PatientRegisterId = s.patientRegisterId,
PatientRegisterNo = s.patientRegisterNo
}).ToList();
@@ -459,23 +472,26 @@ namespace Shentun.Peis.QueueRegisters
public async Task GetScreenQueueRegisterListByRoomIdAsync(RoomNoInputDto input)
{
var entDto = new GetScreenQueueRegisterListByRoomIdDto();
- var query = from queueRegister in await _queueRegisterRepository.GetQueryableAsync()
- join patientRegister in await _patientRegisterRepository.GetQueryableAsync()
- on queueRegister.PatientRegisterId equals patientRegister.Id
- join room in await _roomRepository.GetQueryableAsync() on queueRegister.RoomId equals room.Id
- where queueRegister.CreationTime >= DateTime.Now.Date
- && room.RoomNo == input.RoomNo
- select new
- {
- completeFlag = queueRegister.CompleteFlag,
- patientName = patientRegister.PatientName,
- isVip = patientRegister.IsVip,
- queueRegisterId = queueRegister.Id,
- queueRegisterNumber = queueRegister.DisplayOrder
- };
+ var query = (from queueRegister in await _queueRegisterRepository.GetQueryableAsync()
+ join patientRegister in await _patientRegisterRepository.GetQueryableAsync()
+ on queueRegister.PatientRegisterId equals patientRegister.Id
+ join room in await _roomRepository.GetQueryableAsync() on queueRegister.RoomId equals room.Id
+ where queueRegister.CreationTime >= DateTime.Now.Date
+ && room.RoomNo == input.RoomNo
+ select new
+ {
+ completeFlag = queueRegister.CompleteFlag,
+ patientName = patientRegister.PatientName,
+ isVip = patientRegister.IsVip,
+ queueRegisterId = queueRegister.Id,
+ queueRegisterNumber = queueRegister.DisplayOrder,
+ callTime = queueRegister.CallTime
+ }).ToList();
+ var queueRegisterList = query.Where(m => m.isVip == 'Y').OrderBy(o => o.queueRegisterNumber).ToList();
+ queueRegisterList.AddRange(query.Where(m => m.isVip == 'N').OrderBy(o => o.queueRegisterNumber).ToList());
- var visitEnt = query.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).OrderByDescending(o => o.queueRegisterNumber).FirstOrDefault();
+ var visitEnt = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.AlreadyCalled).FirstOrDefault();
if (visitEnt != null)
{
@@ -483,18 +499,18 @@ namespace Shentun.Peis.QueueRegisters
entDto.VisitName = visitEnt.patientName;
}
- entDto.WaitDetail = query.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait)
+ entDto.WaitDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.Wait)
.Select(s => new GetScreenQueueRegisterListByRoomIdDetailDto
{
PatientName = s.patientName,
- QueueRegisterNumber = s.queueRegisterNumber
+ QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString()
}).ToList();
- entDto.OverNumberDetail = query.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber)
+ entDto.OverNumberDetail = queueRegisterList.Where(m => m.completeFlag == QueueRegisterCompleteFlag.OverNumber).OrderByDescending(o => o.callTime)
.Select(s => new GetScreenQueueRegisterListByRoomIdDetailDto
{
PatientName = s.patientName,
- QueueRegisterNumber = s.queueRegisterNumber
+ QueueRegisterNumber = (s.isVip == 'Y' ? "V" : "") + s.queueRegisterNumber.ToString()
}).ToList();
return entDto;
diff --git a/src/Shentun.Peis.Domain/QueueRegisters/QueueRegisterManager.cs b/src/Shentun.Peis.Domain/QueueRegisters/QueueRegisterManager.cs
index b5458f4..cf6fa58 100644
--- a/src/Shentun.Peis.Domain/QueueRegisters/QueueRegisterManager.cs
+++ b/src/Shentun.Peis.Domain/QueueRegisters/QueueRegisterManager.cs
@@ -159,6 +159,22 @@ namespace Shentun.Peis.QueueRegisters
queueRegisterEnt.CompleteFlag = CompleteFlag;
+ if (queueRegisterEnt.CompleteFlag == QueueRegisterCompleteFlag.Wait)
+ {
+ //退回,情况呼叫时间
+ queueRegisterEnt.CallTime = null;
+ }
+ else if (queueRegisterEnt.CompleteFlag == QueueRegisterCompleteFlag.AlreadyCalled)
+ {
+ //呼叫操作
+ queueRegisterEnt.CallTime = DateTime.Now;
+ }
+ else if (queueRegisterEnt.CompleteFlag == QueueRegisterCompleteFlag.OverNumber)
+ {
+ //过号操作
+ queueRegisterEnt.CallTime = DateTime.Now;
+ }
+
return queueRegisterEnt;
}