修改阅片期裁判 遗漏情况
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-12-09 11:36:50 +08:00
parent f40a48265c
commit 1417277cb1
1 changed files with 29 additions and 11 deletions

View File

@ -1542,6 +1542,15 @@ namespace IRaCIS.Core.Application.Service.Common
var subjectJudgeList = judegeList.Where(t => t.SubjectCode == visitItem.SubjectCode).ToList();
//阅片期访视号
var subjectReadingPeriondVisitNumList = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode).FirstOrDefault()?.SubjectCriterionReadingPeriodVisitNumList;
//两个人完成最大得任务号(访视+全局)
var subjectMaxFinishedTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
.GroupBy(t => t.VisitTaskNum).Where(g => g.Count() == 2).Select(g => g.Key).DefaultIfEmpty().Max();
var addReadingPeriodNum = isGlobalReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : 0;
if (subjectJudgeList.Count > 0)
{
@ -1549,6 +1558,9 @@ namespace IRaCIS.Core.Application.Service.Common
var maxNotFinishedJudge = subjectJudgeList.Where(t => t.ReadingTaskState != ReadingTaskState.HaveSigned).OrderByDescending(t => t.VisitTaskNum).FirstOrDefault();
//找到<= 完成最大访视任务号最近的阅片期号
var latestFinishedReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Select(t => t + addReadingPeriodNum).Where(t => t <= subjectMaxFinishedTaskNum).Max();
//n个裁判任务都未完成
if (maxFinishedJudge == null && maxNotFinishedJudge != null)
@ -1579,13 +1591,29 @@ namespace IRaCIS.Core.Application.Service.Common
{
visitItem.IsJudgeSelect = false;
}
//裁判都完成的后续 可能有已完成全局,但是没有产生裁判
else if(visitItem.VisitTaskNum <= latestFinishedReadingPeriodTaskNum)
{
//不存在裁判 将R1设置
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
{
visitItem.IsJudgeSelect = true;
visitItem.IsTrigerJudge = false;
}
else
{
visitItem.IsJudgeSelect = false;
visitItem.IsTrigerJudge = false;
}
}
else
{
//裁判都完成的后续 没有其他裁判任务 肯定也是未知的
visitItem.IsTrigerJudge = null;
visitItem.IsJudgeSelect = null;
}
}
//n个完成 m个未完成
else
{
//两个都不为null 肯定是不同的裁判
@ -1624,21 +1652,11 @@ namespace IRaCIS.Core.Application.Service.Common
visitItem.IsJudgeSelect = null;
visitItem.IsTrigerJudge = null;
//阅片期访视号
var subjectReadingPeriondVisitNumList = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode).FirstOrDefault()?.SubjectCriterionReadingPeriodVisitNumList;
if (subjectReadingPeriondVisitNumList != null && subjectReadingPeriondVisitNumList.Count()>0)
{
//两个人完成最大得任务号(访视+全局)
var subjectMaxFinishedTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
.GroupBy(t => t.VisitTaskNum).Where(g => g.Count() == 2).Select(g => g.Key).DefaultIfEmpty().Max();
var addReadingPeriodNum = isGlobalReading ? ReadingCommon.TaskNumDic[ReadingCategory.Global] : 0;
var minReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Min() + addReadingPeriodNum;
//最小阅片期 完成访视号
//有阅片期读完了 肯定要读到最小阅片期号后面
if (subjectMaxFinishedTaskNum >= minReadingPeriodTaskNum)