public IActionResult Update([FromBody] TasksUpdateDto parm) { //判断是否已经存在 if (_tasksQzService.Any(m => m.Name == parm.Name && m.ID != parm.ID)) { return(toResponse(StatusCodeType.Error, $"更新 {parm.Name} 失败,该用任务存在,不能重复!")); } // 根据 触发器模式 判断必填字段 if (parm.TriggerType == 0) { if (parm.BeginTime == null || parm.EndTime == null) { return(toResponse(StatusCodeType.Error, $"触发器 Simple 模式下,开始结束时间不能为空")); } if (parm.IntervalSecond <= 0) { return(toResponse(StatusCodeType.Error, $"触发器 Simple 模式下,执行间隔时间不能小于 0 秒")); } } else { if (string.IsNullOrEmpty(parm.Cron)) { return(toResponse(StatusCodeType.Error, $"触发器 Corn 模式下,运行时间表达式必须填写")); } } var tasksQz = _tasksQzService.GetFirst(m => m.ID == parm.ID); if (tasksQz.IsStart) { return(toResponse(StatusCodeType.Error, $"该任务正在运行中,请先停止在更新")); } var userSession = _tokenManager.GetSessionInfo(); #region 更新任务信息 var response = _tasksQzService.Update(m => m.ID == parm.ID, m => new Sys_TasksQz { Name = parm.Name, JobGroup = parm.JobGroup, Cron = parm.Cron, AssemblyName = parm.AssemblyName, ClassName = parm.ClassName, Remark = parm.Remark, BeginTime = parm.BeginTime, EndTime = parm.EndTime, TriggerType = parm.TriggerType, IntervalSecond = parm.IntervalSecond, JobParams = parm.JobParams, UpdateID = userSession.UserID, UpdateName = userSession.UserName, UpdateTime = DateTime.Now }); #endregion return(toResponse(response)); }