diff --git a/IRaCIS.Core.API/Controllers/InspectionController.cs b/IRaCIS.Core.API/Controllers/InspectionController.cs
index 6efb789d6..37051f6e2 100644
--- a/IRaCIS.Core.API/Controllers/InspectionController.cs
+++ b/IRaCIS.Core.API/Controllers/InspectionController.cs
@@ -84,6 +84,34 @@ namespace IRaCIS.Core.API.Controllers
 
         #region 文件管理
 
+        /// <summary>
+        /// 废除项目
+        /// </summary>
+        /// <param name="opt"></param>
+        /// <returns></returns>
+        [HttpPost, Route("Inspection/TrialConfig/AbandonTrial")]
+        [UnitOfWork]
+        public async Task<IResponseOutput> AbandonTrial(DataInspectionDto<AbandonTrial> opt)
+        {
+            var fun = await _trialConfigService.AbandonTrial(opt.OptCommand.trialId,opt.OptCommand.isAbandon);
+            return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo,null, fun);
+        }
+
+        /// <summary>
+        /// 修改项目状态项目
+        /// </summary>
+        /// <param name="opt"></param>
+        /// <returns></returns>
+        [HttpPost, Route("Inspection/TrialConfig/UpdateTrialState")]
+        [UnitOfWork]
+        public async Task<IResponseOutput> UpdateTrialState(DataInspectionDto<UpdateTrialState> opt)
+        {
+            var fun = await _trialConfigService.UpdateTrialState(opt.OptCommand.trialId, opt.OptCommand.trialStatusStr, opt.OptCommand.reason);
+            opt.AuditInfo.Reason = opt.OptCommand.reason;
+            return await _inspectionService.Enforcement(opt.OptCommand, opt.AuditInfo, opt.SignInfo, null, fun);
+        }
+
+
         /// <summary>
         /// 
         /// </summary>
diff --git a/IRaCIS.Core.API/IRaCIS.Core.API.xml b/IRaCIS.Core.API/IRaCIS.Core.API.xml
index 18b148c95..8fb8d91cb 100644
--- a/IRaCIS.Core.API/IRaCIS.Core.API.xml
+++ b/IRaCIS.Core.API/IRaCIS.Core.API.xml
@@ -57,6 +57,20 @@
             Financials /Monthly Payment 列表查询接口
             </summary>
         </member>
+        <member name="M:IRaCIS.Core.API.Controllers.InspectionController.AbandonTrial(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Service.Inspection.DTO.AbandonTrial})">
+            <summary>
+            废除项目
+            </summary>
+            <param name="opt"></param>
+            <returns></returns>
+        </member>
+        <member name="M:IRaCIS.Core.API.Controllers.InspectionController.UpdateTrialState(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Service.Inspection.DTO.UpdateTrialState})">
+            <summary>
+            修改项目状态项目
+            </summary>
+            <param name="opt"></param>
+            <returns></returns>
+        </member>
         <member name="M:IRaCIS.Core.API.Controllers.InspectionController.AddOrUpdateTrialDocument(IRaCIS.Core.Application.Service.Inspection.DTO.DataInspectionDto{IRaCIS.Core.Application.Contracts.AddOrEditTrialDocument})">
             <summary>
             
diff --git a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
index 4d5864522..c70940d38 100644
--- a/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
+++ b/IRaCIS.Core.Application/IRaCIS.Core.Application.xml
@@ -1652,7 +1652,7 @@
             <param name="trialConfig"></param>
             <returns></returns>
         </member>
-        <member name="M:IRaCIS.Core.Application.TrialConfigService.UpdateTrialState(System.Guid,System.String,System.Guid,System.String,EasyCaching.Core.IEasyCachingProvider)">
+        <member name="M:IRaCIS.Core.Application.TrialConfigService.UpdateTrialState(System.Guid,System.String,System.String)">
             <summary>
             更新项目状态
             </summary>
diff --git a/IRaCIS.Core.Application/Service/Inspection/DTO/InspectionModel.cs b/IRaCIS.Core.Application/Service/Inspection/DTO/InspectionModel.cs
index d32a7728d..7605a7f0f 100644
--- a/IRaCIS.Core.Application/Service/Inspection/DTO/InspectionModel.cs
+++ b/IRaCIS.Core.Application/Service/Inspection/DTO/InspectionModel.cs
@@ -110,7 +110,7 @@ namespace IRaCIS.Core.Application.Service.Inspection.DTO
         ////需要单独处理
         //public string IP { get; set; }
 
-        public DateTime? CreateTime { get; set; }
+        public DateTime? CreateTime { get; set; } = DateTime.Now;
 
         public bool NeedSava { get; set; } = true;
 
@@ -363,6 +363,19 @@ namespace IRaCIS.Core.Application.Service.Inspection.DTO
 
     }
 
+    public class UpdateTrialState
+    {
+       public Guid trialId { get; set; }
+       public string  trialStatusStr { get; set; }
+       public string reason { get; set; }
+    }
+
+    public class AbandonTrial
+    {
+       public Guid trialId { get; set; }
+       public bool isAbandon { get; set; }
+    }
+
 
     public class GetDataInspectionDto : PageInput
     {
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialConfigService.cs
index f86c4670d..91735d1d5 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/Interface/ITrialConfigService.cs
@@ -6,7 +6,8 @@ namespace IRaCIS.Application.Interfaces
 {
     public interface ITrialConfigService
     {
-
+        Task<IResponseOutput> UpdateTrialState(Guid trialId, string trialStatusStr, string? reason);
+        Task<IResponseOutput> AbandonTrial(Guid trialId, bool isAbandon);
         Task<TrialConfigDTO>  GetTrialConfigInfo(Guid trialId);
 
         Task<IResponseOutput> ConfigTrialBasicInfo(BasicTrialConfig trialConfig);
diff --git a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
index ee38855d6..95a33a0b8 100644
--- a/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
+++ b/IRaCIS.Core.Application/Service/TrialSiteUser/TrialConfigService.cs
@@ -14,10 +14,14 @@ namespace IRaCIS.Core.Application
     public class TrialConfigService : BaseService, ITrialConfigService
     {
         private readonly IRepository<Trial> _trialRepository;
+        private readonly IEasyCachingProvider _provider;
 
-        public TrialConfigService(IRepository<Trial> trialRepository)
+        public TrialConfigService(IRepository<Trial> trialRepository,
+            IEasyCachingProvider provider
+            )
         {
             _trialRepository = trialRepository;
+            this._provider = provider;
         }
 
         /// <summary>
@@ -187,7 +191,7 @@ namespace IRaCIS.Core.Application
         /// <returns></returns>
         [HttpPut("{trialId:guid}/{signId:guid}/{trialStatusStr}/{reason?}")]
         [UnitOfWork]
-        public async Task<IResponseOutput> UpdateTrialState(Guid trialId, string trialStatusStr, Guid signId, string? reason, [FromServices] IEasyCachingProvider _provider)
+        public async Task<IResponseOutput> UpdateTrialState(Guid trialId, string trialStatusStr, string? reason)
         {
 
             var trial = (await _trialRepository.Where(t => t.Id == trialId, true).IgnoreQueryFilters().FirstOrDefaultAsync()).IfNullThrowException();
@@ -227,10 +231,10 @@ namespace IRaCIS.Core.Application
             await _repository.SaveChangesAsync();
 
 
-            var success = await _repository.BatchUpdateAsync<TrialSign>(t => t.Id == signId, u => new TrialSign() { IsCompleted = true });
+            //var success = await _repository.BatchUpdateAsync<TrialSign>(t => t.Id == signId, u => new TrialSign() { IsCompleted = true });
 
 
-            return ResponseOutput.Result(success);
+            return ResponseOutput.Ok();
         }
 
         /// <summary>
diff --git a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs
index f63a0d3e6..dd1d38ffe 100644
--- a/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs
+++ b/IRaCIS.Core.Application/Service/Visit/VisitPlanService.cs
@@ -265,7 +265,6 @@ namespace IRaCIS.Application.Services
                     t.VisitNum,
                     t.IsBaseLine,
                     t.BlindName,
-                   
                     t.Description,
                     IsConfirmed = true,
                 }).ToListAsync();
@@ -368,9 +367,8 @@ namespace IRaCIS.Application.Services
 
                         BlindName = x.BlindName,
                         IsBaseLine = x.IsBaseLine,
-                        IsCheckBack = x.IsBaseLine,
 
-                        IsUrgent = trial.IsSubjectExpeditedView,
+                        IsUrgent = false,
                     };
 
                     subjectVisits.Add(subjectVisit);
@@ -399,11 +397,11 @@ namespace IRaCIS.Application.Services
                             VisitWindowLeft = x.VisitWindowLeft,
                             VisitWindowRight = x.VisitWindowRight,
                             IsEnrollment = y.IsEnrollment,
-                            IsUrgent = trial.IsSubjectExpeditedView,
+                            IsUrgent = false,
                             IsFinalVisit = subjectVisit.IsFinalVisit,
                             IsLostVisit = subjectVisit.IsLostVisit,
 
-                            PDState = trial.IsPDProgressView,
+                            PDState = false,
                         }),
                     });
 
@@ -415,7 +413,7 @@ namespace IRaCIS.Application.Services
                         SubjectVisitId = guid,
                         SubjectCode = y.Code,
                         BlindName = x.BlindName,
-                        ParentId = dataindtid,
+                        //ParentId = dataindtid,
                         SubjectVisitName = x.VisitName,
                         IsSign = false,
                         TrialId = x.TrialId,
@@ -437,7 +435,7 @@ namespace IRaCIS.Application.Services
                             VisitWindowRight = x.VisitWindowRight,
                             IsFinalVisit = subjectVisit.IsFinalVisit,
                             IsLostVisit = subjectVisit.IsLostVisit,
-                            PDState = trial.IsPDProgressView,
+                            PDState = false,
                         }),
                     });