From 6697dcb9451a34bbfd979b2a1ca983ae982d98bb Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 13 Aug 2026 09:37:21 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=AD=E5=BF=83?=
=?UTF-8?q?=E8=B0=83=E7=A0=94=E8=B7=AF=E5=BE=84=EF=BC=8CSPM=E9=A9=B3?=
=?UTF-8?q?=E5=9B=9E=E9=80=BB=E8=BE=91,=20=E9=82=AE=E4=BB=B6=E9=80=BB?=
=?UTF-8?q?=E8=BE=91=E5=AF=B9=E5=BA=94=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Consumer/SiteSurverEmailConsumer.cs | 63 +++++++++++++------
.../SiteSurvey/TrialSiteSurveyService.cs | 57 +++++++++--------
2 files changed, 77 insertions(+), 43 deletions(-)
diff --git a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs
index eaa991375..83d8e0eed 100644
--- a/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs
+++ b/IRaCIS.Core.Application/MassTransit/Consumer/SiteSurverEmailConsumer.cs
@@ -269,9 +269,45 @@ public class SiteSurverRejectedEventConsumer(
if (context.Message.IsHaveSPMOrCPM)
{
- //PM 驳回到SPM
- if (siteSurveyInfo.State == TrialSiteSurveyEnum.CRCSubmitted)
+ ////PM 驳回到SPM
+ //if (siteSurveyInfo.State == TrialSiteSurveyEnum.CRCSubmitted)
+ //{
+
+ // var sPMOrCPMList = _trialUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialUser.IsDeleted == false)
+ // .Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM)
+ // .Select(t => new { t.UserRole.IdentityUser.EMail, t.UserRole.FullName, t.UserRole.UserTypeEnum, t.UserRole.IdentityUser.UserWorkLanguage }).ToList();
+
+ // var lan_SPMOrCPMList = sPMOrCPMList.Where(t => t.UserWorkLanguage == workLanguage);
+
+ // foreach (var user in lan_SPMOrCPMList)
+ // {
+ // messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail));
+ // }
+
+ // toUserName = string.Join('、', lan_SPMOrCPMList.Select(t => t.FullName));
+
+ //}
+ ////SPM 驳回到CRC
+ //else if (siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit)
+ //{
+ // //使用中心国家语言 一致才发送
+ // if ((siteInfo.Country == StaticData.SiteCountry.US && isEn_US) || (siteInfo.Country == StaticData.SiteCountry.CN && isEn_US == false))
+ // {
+ // messageToSend.To.Add(new MailboxAddress(toUserName, siteSurveyInfo.Email));
+
+ // }
+
+ //}
+
+ // PM 驳回到CRC
+ if (siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit)
{
+ //使用中心国家语言 一致才发送
+ if ((siteInfo.Country == StaticData.SiteCountry.US && isEn_US) || (siteInfo.Country == StaticData.SiteCountry.CN && isEn_US == false))
+ {
+ messageToSend.To.Add(new MailboxAddress(toUserName, siteSurveyInfo.Email));
+
+ }
var sPMOrCPMList = _trialUserRoleRepository.Where(t => t.TrialId == trialId && t.TrialUser.IsDeleted == false)
.Where(t => t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM)
@@ -281,24 +317,10 @@ public class SiteSurverRejectedEventConsumer(
foreach (var user in lan_SPMOrCPMList)
{
- messageToSend.To.Add(new MailboxAddress(user.FullName, user.EMail));
- }
-
- toUserName = string.Join('、', lan_SPMOrCPMList.Select(t => t.FullName));
-
- }
- //SPM 驳回到CRC
- else if (siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit)
- {
- //使用中心国家语言 一致才发送
- if ((siteInfo.Country == StaticData.SiteCountry.US && isEn_US) || (siteInfo.Country == StaticData.SiteCountry.CN && isEn_US == false))
- {
- messageToSend.To.Add(new MailboxAddress(toUserName, siteSurveyInfo.Email));
-
+ messageToSend.Cc.Add(new MailboxAddress(user.FullName, user.EMail));
}
}
-
}
else
{
@@ -312,6 +334,11 @@ public class SiteSurverRejectedEventConsumer(
}
}
+ Uri uri = new Uri(_systemEmailConfig.SiteUrl);
+
+ // 获取 Scheme + Host(不包含路径)
+ string baseUrl = uri.GetLeftPart(UriPartial.Authority);
+
//发件地址
messageToSend.From.Add(new MailboxAddress(_systemEmailConfig.FromName, _systemEmailConfig.FromEmail));
@@ -330,7 +357,7 @@ public class SiteSurverRejectedEventConsumer(
siteInfo.TrialSiteCode, //中心编号
siteInfo.TrialSiteAliasName,//中心名称
siteSurveyInfo.LatestBackReason, //驳回原因
- _systemEmailConfig.SiteUrl, //链接
+ $"{baseUrl}/researchLogin?trialId={trialId}", //链接
(siteSurveyInfo.State == TrialSiteSurveyEnum.ToSubmit ? "inline - block" : "none")
);
diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
index 0bdb9d158..1680baf23 100644
--- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
+++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
@@ -496,40 +496,47 @@ namespace IRaCIS.Core.Application.Contracts
}
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM)
{
- var isTrialSPMJoin = await _trialRepository.AnyAsync(t => t.Id == trialSiteSubmitBackCommand.TrialId && t.IsSPMJoinSiteSurvey);
+ // var isTrialSPMJoin = await _trialRepository.AnyAsync(t => t.Id == trialSiteSubmitBackCommand.TrialId && t.IsSPMJoinSiteSurvey);
- var hasSPMOrCPM = await _trialRepository.Where(t => t.Id == trialSiteSubmitBackCommand.TrialId).AnyAsync(t => t.TrialIdentityUserList.SelectMany(t => t.TrialUserRoleList).Any(t =>
- t.UserRole.IdentityUser.Status == UserStateEnum.Enable
- && t.UserRole.IsUserRoleDisabled == false
- && (t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM))
- );
+ // var hasSPMOrCPM = await _trialRepository.Where(t => t.Id == trialSiteSubmitBackCommand.TrialId).AnyAsync(t => t.TrialIdentityUserList.SelectMany(t => t.TrialUserRoleList).Any(t =>
+ //t.UserRole.IdentityUser.Status == UserStateEnum.Enable
+ //&& t.UserRole.IsUserRoleDisabled == false
+ //&& (t.UserRole.UserTypeEnum == UserTypeEnum.SPM || t.UserRole.UserTypeEnum == UserTypeEnum.CPM))
+ //);
- var isSPMjoin = isTrialSPMJoin && hasSPMOrCPM;
+ // var isSPMjoin = isTrialSPMJoin && hasSPMOrCPM;
- if (isSPMjoin)
- {
- survey.State = TrialSiteSurveyEnum.CRCSubmitted;
+ // if (isSPMjoin)
+ // {
+ // survey.State = TrialSiteSurveyEnum.CRCSubmitted;
- survey.ReviewerUserId = null;
- survey.ReviewerTime = null;
- }
- else
- {
- survey.State = TrialSiteSurveyEnum.ToSubmit;
+ // survey.ReviewerUserId = null;
+ // survey.ReviewerTime = null;
+ // }
+ // else
+ // {
+ // survey.State = TrialSiteSurveyEnum.ToSubmit;
- survey.PreliminaryUserId = null;
- survey.ReviewerUserId = null;
- survey.PreliminaryTime = null;
- survey.ReviewerTime = null;
+ // survey.PreliminaryUserId = null;
+ // survey.ReviewerUserId = null;
+ // survey.PreliminaryTime = null;
+ // survey.ReviewerTime = null;
- }
+ // }
+
+ survey.State = TrialSiteSurveyEnum.ToSubmit;
+
+ survey.PreliminaryUserId = null;
+ survey.ReviewerUserId = null;
+ survey.PreliminaryTime = null;
+ survey.ReviewerTime = null;
+
-
}
var info = await GetSiteSurveyInfo(trialSiteSurveyId, trialId);
- await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = _userInfo.FullName, UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Reject, Reason = survey.LatestBackReason, Json = info.ToJsonStr() });
+ await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name =$"{_userInfo.FullName} ({_userInfo.UserName})" , UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Reject, Reason = survey.LatestBackReason, Json = info.ToJsonStr() });
await _trialSiteSurveyRepository.SaveChangesAsync();
@@ -923,7 +930,7 @@ namespace IRaCIS.Core.Application.Contracts
var info = await GetSiteSurveyInfo(trialSiteSurveyId, trialId);
- await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = _userInfo.FullName, UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Approved, Json = info.ToJsonStr() });
+ await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = $"{_userInfo.FullName} ({_userInfo.UserName})", UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Approved, Json = info.ToJsonStr() });
}
else if (_userInfo.UserTypeEnumInt == (int)UserTypeEnum.ProjectManager || _userInfo.UserTypeEnumInt == (int)UserTypeEnum.APM)
@@ -941,7 +948,7 @@ namespace IRaCIS.Core.Application.Contracts
//审批调研表日志
var info = await GetSiteSurveyInfo(trialSiteSurveyId, trialId);
- await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = _userInfo.FullName, UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Approved, Json = info.ToJsonStr() });
+ await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = $"{_userInfo.FullName} ({_userInfo.UserName})", UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Approved, Json = info.ToJsonStr() });
}
From 2021c1f4a95491ea198ee30855b578fac36e5f9c Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 13 Aug 2026 10:30:52 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E8=B0=83=E7=A0=94=E5=AF=BC=E8=A1=A8?=
=?UTF-8?q?=E5=88=9D=E6=AD=A5=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.API/IRaCIS.Core.API.xml | 7 ++
.../IRaCIS.Core.Application.xml | 84 ++++++++++++++++++-
.../Common/Export/ExcelExportService.cs | 27 +++---
.../SiteSurvey/TrialSiteSurveyService.cs | 5 +-
4 files changed, 108 insertions(+), 15 deletions(-)
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 2566f292e..89b498ac5 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -213,6 +213,13 @@
+
+
+ 提交阅片裁判表单
+
+
+
+
配置 基础逻辑信息并确认
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index b2144df91..1c926f1a1 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -10532,6 +10532,21 @@
默认SegmentName
+
+
+ 仲裁模式
+
+
+
+
+ 裁判规则
+
+
+
+
+ 仲裁对象
+
+
返回对象
@@ -12338,6 +12353,21 @@
仲裁规则
+
+
+ 仲裁模式
+
+
+
+
+ 裁判规则
+
+
+
+
+ 裁判任务生成
+
+
需要
@@ -14368,6 +14398,11 @@
+
+
+ 编辑裁判规则配置
+
+
新增修改项目问题标准(项目)
@@ -14469,11 +14504,22 @@
阅片问题.标准
-
+
阅片问题.标准
+
+
+ 获取项目阅片标准各访视的裁判规则配置。
+ 未配置规则的访视问题也会返回,供前端直接进行配置。
+
+
+
+
+ 编辑项目阅片标准各访视的裁判规则配置。
+
+
设置项目问题导出
@@ -14843,7 +14889,7 @@
-
+
IR影像阅片
@@ -15280,6 +15326,30 @@
+
+
+ 获取单访视裁判答案
+
+
+
+
+
+
+ 获取裁判表单
+
+
+
+
+ 编辑裁判表单
+
+
+
+
+ 提交裁判表单
+
+
+
+
获取裁判阅片任务信息
@@ -15313,6 +15383,16 @@
+
+
+ 应用访视裁判规则 以及剔除排除的问题
+
+
+
+
+ 应用访视裁判规则 以及剔除排除的问题
+
+
发送微信通知
diff --git a/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs b/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs
index f33aeb28a..6ec1759e7 100644
--- a/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs
+++ b/IRaCIS.Core.Application/Service/Common/Export/ExcelExportService.cs
@@ -162,17 +162,20 @@ namespace IRaCIS.Core.Application.Service.Common
var fields = new List<(string FieldName, int excelIndex)>()
{
- ("Parameters", 5),
- ("ManufacturerType", 6),
- ("ScannerType", 7),
- ("MagneticFieldStrengthType", 8),
- ("BodyCoilChannelCount", 9),
- ("HasDedicatedPdfFatQuantificationSequence", 10),
- ("PdfFatQuantificationSequenceType", 11),
- ("OtherSequenceSpecification", 11),
- ("HasT2R2Correction", 12),
- ("CanFullyExportPdfParameterMapsAndRawDicom", 13),
- ("Note", 14),
+ ("AverageEngravingCycle", 7),
+ ("IsConfirmImagingTechnologist", 8),
+ ("EfficacyEvaluatorType", 9),
+ ("IsFollowStudyParameters", 10),
+ ("NotFollowReson", 10),
+
+
+ ("IsRoutineMRIPDEE", 11),
+ ("MRIPDFFScanTime", 12),
+ ("MRIPDFFLeadTime", 13),
+ ("MRIPDFFOther", 14),
+ ("AssignFixedTechnologists", 15),
+ ("ISStrictManualBurnFlag", 16),
+ ("NotStrictManualBurnFlagReason",16)
};
@@ -191,7 +194,7 @@ namespace IRaCIS.Core.Application.Service.Common
exportInfo.List = ExportExcelConverterDate.ConvertToClientTimeInObject(list, _userInfo.TimeZoneId);
exportInfo.CurrentTime = ExportExcelConverterDate.DateTimeInternationalToString(DateTime.Now, _userInfo.TimeZoneId);
- return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSiteSurvey_Info_Export, exportInfo, exportInfo.TrialCode, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(SiteSurveyEquipmentDto));
+ return await ExcelExportHelper.DataExportAsync(StaticData.Export.TrialSiteSurvey_Info_Export, exportInfo, exportInfo.TrialCode, _commonDocumentRepository, _hostEnvironment, _dictionaryService, typeof(SiteSurveyEquipmentDto), removeExcelIndexList: columnsToDelete);
}
diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
index 1680baf23..dc879d512 100644
--- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
+++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
@@ -563,6 +563,9 @@ namespace IRaCIS.Core.Application.Contracts
survey.IsDeleted = true;
+ await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = $"{_userInfo.FullName} ({_userInfo.UserName})" , OptType = SiteSurveyOptTyp.Over });
+
+
await _trialSiteSurveyRepository.SaveChangesAsync();
return ResponseOutput.Ok();
@@ -695,7 +698,7 @@ namespace IRaCIS.Core.Application.Contracts
}
//更新调研表日志 - 老的调研表
- //currentLatest.SiteSurveyLogList.Add(new SiteSurveyLog() { Name = userInfo.ReplaceUserEmailOrPhone, OptType = SiteSurveyOptTyp.Over });
+ currentLatest.SiteSurveyLogList.Add(new SiteSurveyLog() { Name = userInfo.ReplaceUserEmailOrPhone, OptType = SiteSurveyOptTyp.Over });
var copy = currentLatest.Clone();
From fc8f5224805d9e7cbb86f33dc2a82b60102b470f Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 13 Aug 2026 10:49:36 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E6=8B=B7=E8=B4=9D=E6=97=A5=E5=BF=97bug?=
=?UTF-8?q?=E3=80=81=E9=82=AE=E7=AE=B1bug=E3=80=81=E5=BA=9F=E9=99=A4?=
=?UTF-8?q?=E6=8B=B7=E8=B4=9D=E8=AF=A6=E6=83=85?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
IRaCIS.Core.API/IRaCIS.Core.API.xml | 7 --
.../IRaCIS.Core.Application.xml | 84 +------------------
.../SiteSurvey/TrialSiteSurveyService.cs | 14 ++--
3 files changed, 11 insertions(+), 94 deletions(-)
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 89b498ac5..2566f292e 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -213,13 +213,6 @@
-
-
- 提交阅片裁判表单
-
-
-
-
配置 基础逻辑信息并确认
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 1c926f1a1..b2144df91 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -10532,21 +10532,6 @@
默认SegmentName
-
-
- 仲裁模式
-
-
-
-
- 裁判规则
-
-
-
-
- 仲裁对象
-
-
返回对象
@@ -12353,21 +12338,6 @@
仲裁规则
-
-
- 仲裁模式
-
-
-
-
- 裁判规则
-
-
-
-
- 裁判任务生成
-
-
需要
@@ -14398,11 +14368,6 @@
-
-
- 编辑裁判规则配置
-
-
新增修改项目问题标准(项目)
@@ -14504,22 +14469,11 @@
阅片问题.标准
-
+
阅片问题.标准
-
-
- 获取项目阅片标准各访视的裁判规则配置。
- 未配置规则的访视问题也会返回,供前端直接进行配置。
-
-
-
-
- 编辑项目阅片标准各访视的裁判规则配置。
-
-
设置项目问题导出
@@ -14889,7 +14843,7 @@
-
+
IR影像阅片
@@ -15326,30 +15280,6 @@
-
-
- 获取单访视裁判答案
-
-
-
-
-
-
- 获取裁判表单
-
-
-
-
- 编辑裁判表单
-
-
-
-
- 提交裁判表单
-
-
-
-
获取裁判阅片任务信息
@@ -15383,16 +15313,6 @@
-
-
- 应用访视裁判规则 以及剔除排除的问题
-
-
-
-
- 应用访视裁判规则 以及剔除排除的问题
-
-
发送微信通知
diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
index dc879d512..b66405778 100644
--- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
+++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
@@ -3,6 +3,7 @@
// 生成时间 2021-12-23 13:20:59
// 对此文件的更改可能会导致不正确的行为,并且如果重新生成代码,这些更改将会丢失。
//--------------------------------------------------------------------
+using DocumentFormat.OpenXml.Office2013.Excel;
using DocumentFormat.OpenXml.Spreadsheet;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Auth;
@@ -536,7 +537,7 @@ namespace IRaCIS.Core.Application.Contracts
}
var info = await GetSiteSurveyInfo(trialSiteSurveyId, trialId);
- await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name =$"{_userInfo.FullName} ({_userInfo.UserName})" , UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Reject, Reason = survey.LatestBackReason, Json = info.ToJsonStr() });
+ await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = $"{_userInfo.FullName} ({_userInfo.UserName})", UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Reject, Reason = survey.LatestBackReason, Json = info.ToJsonStr() });
await _trialSiteSurveyRepository.SaveChangesAsync();
@@ -563,7 +564,8 @@ namespace IRaCIS.Core.Application.Contracts
survey.IsDeleted = true;
- await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = $"{_userInfo.FullName} ({_userInfo.UserName})" , OptType = SiteSurveyOptTyp.Over });
+ var info = await GetSiteSurveyInfo(trialSiteSurveyId, survey.TrialId);
+ await _siteSurveyLogRepository.AddAsync(new SiteSurveyLog() { TrialSiteSurveyId = trialSiteSurveyId, Name = $"{_userInfo.FullName} ({_userInfo.UserName})", UserType = (UserTypeEnum)_userInfo.UserTypeEnumInt, OptType = SiteSurveyOptTyp.Over, Json = info.ToJsonStr() });
await _trialSiteSurveyRepository.SaveChangesAsync();
@@ -698,7 +700,8 @@ namespace IRaCIS.Core.Application.Contracts
}
//更新调研表日志 - 老的调研表
- currentLatest.SiteSurveyLogList.Add(new SiteSurveyLog() { Name = userInfo.ReplaceUserEmailOrPhone, OptType = SiteSurveyOptTyp.Over });
+ var info1 = await GetSiteSurveyInfo(currentLatest.Id, currentLatest.TrialId);
+ currentLatest.SiteSurveyLogList.Add(new SiteSurveyLog() { Name = userInfo.ReplaceUserEmailOrPhone, OptType = SiteSurveyOptTyp.Over, Json = info1.ToJsonStr() });
var copy = currentLatest.Clone();
@@ -719,7 +722,8 @@ namespace IRaCIS.Core.Application.Contracts
//更新调研表日志
var info = await GetSiteSurveyInfo(currentLatest.Id, currentLatest.TrialId);
- copy.SiteSurveyLogList.Add(new SiteSurveyLog() { Name = userInfo.ReplaceUserEmailOrPhone, OptType = SiteSurveyOptTyp.Update, OriginTrialSiteSurveyId = currentLatest.Id, Json = info.ToJsonStr() });
+ copy.SiteSurveyLogList.ForEach(t => { t.Id = Guid.Empty; });
+ copy.SiteSurveyLogList.Add(new SiteSurveyLog() { Name = userInfo.EmailOrPhone, OptType = SiteSurveyOptTyp.Update, OriginTrialSiteSurveyId = currentLatest.Id, Json = info.ToJsonStr() });
}
@@ -1468,7 +1472,7 @@ namespace IRaCIS.Core.Application.Contracts
{
return _siteSurveyLogRepository.Where(t => t.TrialSiteSurveyId == inQuery.TrialSiteSurveyId)
.WhereIf(inQuery.Id != null, t => t.Id == inQuery.Id)
- .ProjectTo(_mapper.ConfigurationProvider).OrderBy(t=>t.CreateTime).ToList();
+ .ProjectTo(_mapper.ConfigurationProvider).OrderBy(t => t.CreateTime).ToList();
}
///
From f3f24e43e31e4e43a9c86f14cc8839a3645cb316 Mon Sep 17 00:00:00 2001
From: hang <872297557@qq.com>
Date: Thu, 13 Aug 2026 11:10:15 +0800
Subject: [PATCH 4/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=B0=83=E7=A0=94?=
=?UTF-8?q?=E8=A1=A8=20=E6=B8=85=E9=99=A4=20=E5=88=9D=E5=AE=A1=20=E5=A4=8D?=
=?UTF-8?q?=E5=AE=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../Service/SiteSurvey/TrialSiteSurveyService.cs | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
index b66405778..fd935ace9 100644
--- a/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
+++ b/IRaCIS.Core.Application/Service/SiteSurvey/TrialSiteSurveyService.cs
@@ -5,6 +5,7 @@
//--------------------------------------------------------------------
using DocumentFormat.OpenXml.Office2013.Excel;
using DocumentFormat.OpenXml.Spreadsheet;
+using DocumentFormat.OpenXml.Vml;
using IRaCIS.Application.Contracts;
using IRaCIS.Core.Application.Auth;
using IRaCIS.Core.Application.Helper;
@@ -714,6 +715,11 @@ namespace IRaCIS.Core.Application.Contracts
copy.Id = Guid.Empty;
copy.CreateTime = DateTime.Now;
+ copy.PreliminaryUserId = null;
+ copy.ReviewerUserId = null;
+ copy.PreliminaryTime = null;
+ copy.ReviewerTime = null;
+
if (userInfo.ReplaceUserEmailOrPhone != userInfo.EmailOrPhone)
{
copy.UserName = String.Empty;