From ecad98aa74a1284a036572fa364bcc352480149c Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 11 五月 2026 08:01:35 +0800
Subject: [PATCH] 1.车间综合看板接口调整 2.报工记录子表和不良记录表写入报工人员,班组编码 3.修改调整定时任务写入到数据库,并实现消息推送

---
 VueWebCoreApi/Controllers/TaskBackGroundController.cs |  181 +++++++++++++++++++++++++++-----------------
 1 files changed, 110 insertions(+), 71 deletions(-)

diff --git a/VueWebCoreApi/Controllers/TaskBackGroundController.cs b/VueWebCoreApi/Controllers/TaskBackGroundController.cs
index e256430..716ec04 100644
--- a/VueWebCoreApi/Controllers/TaskBackGroundController.cs
+++ b/VueWebCoreApi/Controllers/TaskBackGroundController.cs
@@ -16,122 +16,161 @@
     [Route("api/[controller]")]
     public class TaskBackGroundController : Controller
     {
-        //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
         ToMessage mes = new ToMessage();
         private readonly ISchedulerFactory _schedulerFactory;
         private readonly IJobFactory _jobFactory;
-        public TaskBackGroundController(ISchedulerFactory schedulerFactory, IJobFactory jobFactory)
+        private readonly QuartzRepository _quartzRepo;
+
+        public TaskBackGroundController(ISchedulerFactory schedulerFactory,
+                                       IJobFactory jobFactory,
+                                       QuartzRepository quartzRepo)
         {
-            this._jobFactory = jobFactory;
-            this._schedulerFactory = schedulerFactory;
+            _schedulerFactory = schedulerFactory;
+            _jobFactory = jobFactory;
+            _quartzRepo = quartzRepo;
         }
 
-        /// <summary>
-        /// 鑾峰彇鎵�鏈夌殑浣滀笟
-        /// </summary>
-        /// <returns></returns>
-        [Route(template: "GetJobs")]
+        [Route("GetJobs")]
         [HttpGet]
         public async Task<IActionResult> GetJobs()
         {
-            mes.code = "200";
-            mes.message = "鏌ヨ鎴愬姛锛�";
-            mes.data = await _schedulerFactory.GetJobs();
+            try
+            {
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛锛�";
+                mes.data = await _schedulerFactory.GetJobs(_quartzRepo);
+            }
+            catch (Exception ex)
+            {
+                mes.code = "300";
+                mes.message = "鏌ヨ澶辫触锛�" + ex.Message;
+                mes.data = null;
+            }
             return Json(mes);
         }
 
-        /// <summary>
-        /// 鑾峰彇浣滀笟杩愯鏃ュ織
-        /// </summary>
-        /// <param name="taskName"></param>
-        /// <param name="groupName"></param>
-        /// <param name="page"></param>
-        /// <returns></returns>
-        [Route(template: "GetRunLog")]
+        [Route("GetRunLog")]
         [HttpGet]
-        public IActionResult GetRunLog(string taskName, string groupName, int page = 1)
+        public async Task<IActionResult> GetRunLog(string taskName, string groupName, int page = 1)
         {
-            mes.code = "200";
-            mes.data = FileQuartz.GetJobRunLog(taskName, groupName, page);
+            // 鍏ュ弬鏍¢獙
+            if (string.IsNullOrEmpty(taskName) || string.IsNullOrEmpty(groupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟鍚嶅拰鍒嗙粍鍚嶄笉鑳戒负绌猴紒";
+                mes.data = null;
+                return Json(mes);
+            }
+            try
+            {
+                mes.code = "200";
+                mes.message = "鏌ヨ鎴愬姛锛�";
+                mes.data = await _quartzRepo.GetJobRunLogAsync(taskName, groupName, page);
+            }
+            catch (Exception ex)
+            {
+                mes.code = "300";
+                mes.message = "鏌ヨ澶辫触锛�" + ex.Message;
+                mes.data = null;
+            }
             return Json(mes);
         }
 
-        /// <summary>
-        /// 娣诲姞浠诲姟
-        /// </summary>
-        /// <param name="taskOptions"></param>
-        /// <returns></returns>
-        [Route(template: "Add")]
+        [Route("Add")]
         [HttpPost]
-        //[TaskAuthor]
         public async Task<IActionResult> Add(TaskOptions taskOptions)
         {
-            return Json(await taskOptions.AddJob(_schedulerFactory, jobFactory: _jobFactory));
+            if (string.IsNullOrEmpty(taskOptions.TaskName) || string.IsNullOrEmpty(taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟鍚嶅拰鍒嗙粍鍚嶄笉鑳戒负绌猴紒";
+                return Json(mes);
+            }
+            return Json(await taskOptions.AddJob(_schedulerFactory, false, _jobFactory, _quartzRepo));
         }
 
-        /// <summary>
-        /// 鍒犻櫎浠诲姟
-        /// </summary>
-        /// <param name="taskOptions"></param>
-        /// <returns></returns>
-        [Route(template: "Remove")]
+        [Route("Remove")]
         [HttpPost]
-        //[TaskAuthor]
         public async Task<IActionResult> Remove(TaskOptions taskOptions)
         {
-            return Json(await _schedulerFactory.Remove(taskOptions));
+            if (string.IsNullOrEmpty(taskOptions.TaskName) || string.IsNullOrEmpty(taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟鍚嶅拰鍒嗙粍鍚嶄笉鑳戒负绌猴紒";
+                return Json(mes);
+            }
+            return Json(await _schedulerFactory.Remove(taskOptions, _quartzRepo));
         }
 
-        /// <summary>
-        /// 淇敼浠诲姟
-        /// </summary>
-        /// <param name="taskOptions"></param>
-        /// <returns></returns>
-        [Route(template: "Update")]
+        [Route("Update")]
         [HttpPost]
-        //[TaskAuthor]
         public async Task<IActionResult> Update(TaskOptions taskOptions)
         {
-            return Json(await _schedulerFactory.Update(taskOptions));
+            if (string.IsNullOrEmpty(taskOptions.TaskName) || string.IsNullOrEmpty(taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟鍚嶅拰鍒嗙粍鍚嶄笉鑳戒负绌猴紒";
+                return Json(mes);
+            }
+            return Json(await _schedulerFactory.Update(taskOptions, _quartzRepo));
         }
 
-        /// <summary>
-        /// 鏆傚仠浠诲姟
-        /// </summary>
-        /// <param name="taskOptions"></param>
-        /// <returns></returns>
-        [Route(template: "Pause")]
+        [Route("Pause")]
         [HttpPost]
-        //[TaskAuthor]
         public async Task<IActionResult> Pause(TaskOptions taskOptions)
         {
-            return Json(await _schedulerFactory.Pause(taskOptions));
+            if (string.IsNullOrEmpty(taskOptions.TaskName) || string.IsNullOrEmpty(taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟鍚嶅拰鍒嗙粍鍚嶄笉鑳戒负绌猴紒";
+                return Json(mes);
+            }
+            // 鏍¢獙浠诲姟鏄惁瀛樺湪
+            if (!await _quartzRepo.TaskExistsAsync(taskOptions.TaskName, taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟涓嶅瓨鍦紒";
+                return Json(mes);
+            }
+            return Json(await _schedulerFactory.Pause(taskOptions, _quartzRepo));
         }
 
-        /// <summary>
-        /// 寮�鍚换鍔�
-        /// </summary>
-        /// <param name="taskOptions"></param>
-        /// <returns></returns>
-        [Route(template: "Start")]
+        [Route("Start")]
         [HttpPost]
-        //[TaskAuthor]
         public async Task<IActionResult> Start(TaskOptions taskOptions)
         {
-            return Json(await _schedulerFactory.Start(taskOptions));
+            if (string.IsNullOrEmpty(taskOptions.TaskName) || string.IsNullOrEmpty(taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟鍚嶅拰鍒嗙粍鍚嶄笉鑳戒负绌猴紒";
+                return Json(mes);
+            }
+            if (!await _quartzRepo.TaskExistsAsync(taskOptions.TaskName, taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟涓嶅瓨鍦紒";
+                return Json(mes);
+            }
+            return Json(await _schedulerFactory.Start(taskOptions, _quartzRepo));
         }
 
-        /// <summary>
-        /// 绔嬪嵆鎵ц
-        /// </summary>
-        /// <param name="taskOptions"></param>
-        /// <returns></returns>
-        [Route(template: "Run")]
+        [Route("Run")]
         [HttpPost]
-        //[TaskAuthor]
         public async Task<IActionResult> Run(TaskOptions taskOptions)
         {
-            return Json(await _schedulerFactory.Run(taskOptions));
+            if (string.IsNullOrEmpty(taskOptions.TaskName) || string.IsNullOrEmpty(taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟鍚嶅拰鍒嗙粍鍚嶄笉鑳戒负绌猴紒";
+                return Json(mes);
+            }
+            if (!await _quartzRepo.TaskExistsAsync(taskOptions.TaskName, taskOptions.GroupName))
+            {
+                mes.code = "300";
+                mes.message = "浠诲姟涓嶅瓨鍦紒";
+                return Json(mes);
+            }
+            return Json(await _schedulerFactory.Run(taskOptions, _quartzRepo));
         }
     }
 }

--
Gitblit v1.9.3