修改没有产生裁判,裁判触发标志 和裁判选择标记
continuous-integration/drone/push Build is passing Details

IRC_NewDev
hang 2024-12-04 20:05:13 +08:00
parent 47eaed78ed
commit 848e33edb8
1 changed files with 15 additions and 33 deletions

View File

@ -1627,46 +1627,25 @@ namespace IRaCIS.Core.Application.Service.Common
if (subjectReadingPeriondVisitNumList != null)
{
//两个人完成最大得任务号
var subjectMaxFinishedVisitTaskNum = resultExceptJudgeList.Where(t => t.SubjectCode == visitItem.SubjectCode)
//两个人完成最大得任务号(访视+全局)
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 minReadingPeriodVisitNum = subjectReadingPeriondVisitNumList.Min();
var minReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Min() + ReadingCommon.TaskNumDic[ReadingCategory.Global];
var maxReadingPeriodVisitNum = subjectReadingPeriondVisitNumList.Max();
//最小阅片期 完成访视号
//最小阅片期 最大阅片期 完成访视号 对应存在三种情况
//有阅片期读完了 肯定要读到最小阅片期号后面
//有阅片期读完了 存在两种
//大于最大阅片期
if (subjectMaxFinishedVisitTaskNum > maxReadingPeriodVisitNum)
if (subjectMaxFinishedTaskNum >= minReadingPeriodTaskNum)
{
//两个人都做完了 并且当前任务号小于 最大阅片期 才设置裁判 产生标记和裁判选择标记
if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2 && visitItem.VisitTaskNum <= maxReadingPeriodVisitNum)
{
//不存在裁判 将R1设置
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
{
visitItem.IsJudgeSelect = true;
visitItem.IsTrigerJudge = false;
}
else
{
visitItem.IsJudgeSelect = false;
visitItem.IsTrigerJudge = false;
}
}
}
//大于最小阅片期
else if (subjectMaxFinishedVisitTaskNum > minReadingPeriodVisitNum)
{
//找到小于完成最大任务号最近的阅片期号
var latestFinishedReadingPeriodNum = subjectReadingPeriondVisitNumList.Where(t => t < subjectMaxFinishedVisitTaskNum).OrderBy(t => t).Max();
if (resultExceptJudgeList.Count(t => t.VisitTaskNum == visitItem.VisitTaskNum && t.SubjectCode == visitItem.SubjectCode) == 2 && visitItem.VisitTaskNum <= latestFinishedReadingPeriodNum)
//找到<= 完成最大访视任务号最近的阅片期号
var latestFinishedReadingPeriodTaskNum = subjectReadingPeriondVisitNumList.Select(t => t + ReadingCommon.TaskNumDic[ReadingCategory.Global]).Where(t => t <= subjectMaxFinishedTaskNum).Max();
//小于已完成的阅片期的访视 设置触发裁判标志为否 并设置默认的裁判选择标记 (两个人肯定做完了)
if (visitItem.VisitTaskNum <= latestFinishedReadingPeriodTaskNum)
{
//不存在裁判 将R1设置
if (visitItem.ArmEnum == Arm.DoubleReadingArm1)
{
@ -1679,7 +1658,10 @@ namespace IRaCIS.Core.Application.Service.Common
visitItem.IsJudgeSelect = false;
visitItem.IsTrigerJudge = false;
}
}
}
}