diff --git a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs index 6c0a2cd22..cf39669ea 100644 --- a/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs +++ b/IRaCIS.Core.Application/Service/Common/ExcelExportService.cs @@ -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)