From 2e2033964d99196d94b0abd9f3364b9b2387b324 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期四, 02 一月 2025 23:28:23 +0800
Subject: [PATCH] 优化 ImportWoPlan.cs 代码逻辑,减少冗余并增加状态处理

---
 Tiger.Business.MES/Task/TskJob.cs |   24 +++++++++++++++++++++---
 1 files changed, 21 insertions(+), 3 deletions(-)

diff --git a/Tiger.Business.MES/Task/TskJob.cs b/Tiger.Business.MES/Task/TskJob.cs
index 6c5d1f9..204477a 100644
--- a/Tiger.Business.MES/Task/TskJob.cs
+++ b/Tiger.Business.MES/Task/TskJob.cs
@@ -30,8 +30,23 @@
             var result = new ApiAction();
             try
             {
-                var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobType).First()??new() { 
-                    JobName = input.JobType,
+                if (input.type == EveryType.Milliseconds && input.ToRunEvery<100)
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"鏃堕棿鏄绉掓椂锛岃嚦灏戣澶т簬100姣");
+                    return result;
+                }
+                if (Biz.Db.Queryable<TSK_JOB>().Any(x =>
+                    (x.JobName != input.JobName && x.JobType == input.JobType) ||
+                    (x.JobName == input.JobName && x.JobType != input.JobType)))
+                {
+                    result.IsSuccessed = false;
+                    result.LocaleMsg = new($"鐩稿悓鐨勭被鍚嶄笉鑳芥湁涓嶅悓鐨勪换鍔″悕鎴栬�呯浉鍚岀殑浠诲姟鍚嶄笉鑳芥湁涓嶅悓鐨勭被鍚�");
+                    return result;
+                }
+                var _job = Biz.Db.Queryable<TSK_JOB>().Where(x => x.JobName == input.JobName && x.JobType == input.JobType).First() ?? new()
+                {
+                    JobName = input.JobName,
                     JobType = input.JobType,
                     AssemblyName = input.AssemblyName,
                 };
@@ -50,6 +65,8 @@
                     Minutes = input.Minutes,
                     Hours = input.Hours,
                     Days = input.Days,
+                    Interval = input.Interval,
+                    ByInterval = input.ByInterval,
                 };
                 TSK_TRIG tskTrig = Biz.Db.Queryable<TSK_TRIG>().Where(x => x.JobId == _job.ID).First() ?? new()
                 {
@@ -58,13 +75,14 @@
                     StartTime = DateTime.Now,
                     NumberOfRuns = 1,
                 };
+                tskTrig.LastRunTime = input.LastRunTime;
                 tskTrig.Args = JsonConvert.SerializeObject(Args);
 
                 var db = Biz.Db;
                 var dbTran = db.UseTran(() =>
                 {
                     var y = db.Storageable(_job)
-                       .WhereColumns(t => new { t.JobName,t.GHOST_ROW })
+                       .WhereColumns(t => new { t.JobName, t.JobType, t.GHOST_ROW })
                        .ToStorage();
                     y.AsInsertable.ExecuteCommand();
                     y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();

--
Gitblit v1.9.3