Browse Source

同步员工卡和个人卡汇总调整

DOVER-GLOBAL\11047086 1 year ago
parent
commit
a039b011d7

BIN
.vs/smartfueltool/DesignTimeBuild/.dtbcache.v2


+ 22 - 14
src/MS.Services/Account/AccountService.cs

@@ -683,13 +683,30 @@ select
             {
                 redisExample.DeleteData(value);
             }
-            return Task.CompletedTask; ;
+            return Task.CompletedTask; 
+        }
+        public async Task AddCarRedisAsync()
+        {
+            DateTime now = DateTime.Now;
+
+            DateTime firstDayOfPreviousMonth = now.AddMonths(-1).Date.AddDays(-(now.Day - 1));
+
+            string date = firstDayOfPreviousMonth.ToString("yyyy-MM-dd");
+            List<KeyValuePair<string, string>> hashValues = redisExample.GetListValues("business_unit_info");
+            if (hashValues.Count > 0)
+            {
+                foreach (var kvp in hashValues)
+                {
+                  await  AddEmployeeCardMonthlySummaryToRedisAsync(kvp.Key, date, "0");
+                  await AddEmployeeCardMonthlySummaryToRedisAsync(kvp.Key, date, "1");
+                }
+            }
         }
         public void Getdate(string buid, string date, string Car)
         {
             redisExample.AddToHash(buid, date, "1");
         }
-        public void addredis(string buid)
+        public async Task addredis(string buid)
         {
             List<KeyValuePair<string, string>> hashValues = redisExample.GetListValues(buid);
             if (hashValues.Count > 0)
@@ -705,8 +722,8 @@ select
                 string value = hashValues.FirstOrDefault(x => x.Key == date).Value;
 
 
-                AddEmployeeCardMonthlySummaryToRedisAsync(buid, date, "0");
-                AddEmployeeCardMonthlySummaryToRedisAsync(buid, date, "1");
+                await AddEmployeeCardMonthlySummaryToRedisAsync(buid, date, "0");
+                await AddEmployeeCardMonthlySummaryToRedisAsync(buid, date, "1");
                 redisExample.AddToHash(buid, dates.Max().AddMonths(1).ToString("yyyy-MM-dd"), "2");
             }
         }
@@ -766,17 +783,13 @@ select
             int totalChunks = (account_ids.Count + chunkSize - 1) / chunkSize;
             for (int i = 0; i < totalChunks; i++)
             {
-                // 计算当前块的起始和结束索引  
                 int startIndex = i * chunkSize;
                 int endIndex = Math.Min(startIndex + chunkSize, account_ids.Count);
 
-                // 获取当前块的account_ids  
                 List<string> chunkAccountIds = account_ids.GetRange(startIndex, endIndex - startIndex);
 
-                // 构建SQL的IN子句部分  
                 string sqlJoin = string.Join(",", chunkAccountIds.Select(id => string.Format("'{0}'", id)));
 
-                // 构建完整的SQL查询(注意:这里省略了日期等变量的插入)  
                 sql = string.Format(@"
                             SELECT ci.account_id, sum(trx.amount) as amount FROM public.offline_transaction_info trx 
                             LEFT JOIN public.card_info ci ON trx.card_info_id = ci.id 
@@ -790,15 +803,12 @@ select
                 ", buid, sqljoin, date, enddate);
 
 
-                // 插入变量到SQL查询中(这里简化了,你可能需要更复杂的逻辑来处理buid, date, enddate等)  
-                sql = string.Format(sql, buid, sqlJoin); // 假设buid是之前定义的变量  
+                sql = string.Format(sql, buid, sqlJoin); 
 
-                // 执行查询并获取结果  
                 var chunkAccountRecharges = _AccountingContext.DbContext.accountRechargeTotals
                     .FromSqlRaw(sql)
                     .ToList();
 
-                // 将结果添加到总列表中  
                 allAccountRecharges.AddRange(chunkAccountRecharges);
             }
             #region
@@ -880,7 +890,6 @@ select
         GROUP BY trx.card_no;  
     ";
 
-                // 使用参数化查询来避免SQL注入攻击  
                 var parameters = new SqlParameter[]
                 {
         new SqlParameter("@BuId", buid),
@@ -888,7 +897,6 @@ select
         new SqlParameter("@EndDate", enddate)
                 };
 
-                // 使用Entity Framework Core的FromSqlRaw重载来包含参数  
                 var chunkCarRecharges = _AccountingContext.DbContext.accountRechargeTotals
           .FromSqlRaw(sql)
             .ToList();

+ 2 - 1
src/MS.Services/Account/IAccountService.cs

@@ -12,6 +12,7 @@ namespace MS.Services
         Task<ExecuteResult<UserData>> syncFromVersion(long versionNo,bool excludingCurrentBu, string specificHeader);
 
         Task AddEmployeeCardMonthlySummaryToRedisAsync(string buid, string date, string Car);
+        Task AddCarRedisAsync();
 
 
         /// <summary>
@@ -22,6 +23,6 @@ namespace MS.Services
 
         Task ClearhashValues(string key);
         void Getdate(string buid, string date, string Car);
-        void addredis(string buid);
+        Task addredis(string buid);
     }
 }

+ 13 - 30
src/MS.WebApi/Controllers/AccountController.cs

@@ -58,13 +58,6 @@ namespace MS.WebApi.Controllers
                 string time = dateTime.ToString("yyyy-MM-dd");
                 await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, time, Car);
             }
-            //   await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, date,  Car);
-            //for (int i = 0; i < 12; i++)
-            //{
-            //    dateTime = dateTime.AddMonths(i);
-            //    string time = dateTime.ToString("yyyy-MM-dd");
-            //    await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, time);
-            //}
             return true;
         }
         [Route("AddEmployeeCardMonthlySummaryToRedisAsync")]
@@ -74,13 +67,6 @@ namespace MS.WebApi.Controllers
         {
             Guid sss = Guid.NewGuid();
             await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, date, Car);
-            //   await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, date,  Car);
-            //for (int i = 0; i < 12; i++)
-            //{
-            //    dateTime = dateTime.AddMonths(i);
-            //    string time = dateTime.ToString("yyyy-MM-dd");
-            //    await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, time);
-            //}
             return true;
         }
         [Route("AddEmployeeRedisAsync")]
@@ -89,14 +75,6 @@ namespace MS.WebApi.Controllers
         public async Task<bool> AddEmployeeRedisAsync(string buid, string date, string Car, int number)
         {
              _accountService.Getdate(buid, date, Car);
-         //   await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, date, Car);
-            //   await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, date,  Car);
-            //for (int i = 0; i < 12; i++)
-            //{
-            //    dateTime = dateTime.AddMonths(i);
-            //    string time = dateTime.ToString("yyyy-MM-dd");
-            //    await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, time);
-            //}
             return true;
         }
         [Route("addredis")]
@@ -105,14 +83,7 @@ namespace MS.WebApi.Controllers
         public async Task<bool> addredis(string buid)
         {
             _accountService.addredis(buid);
-            //   await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, date, Car);
-            //   await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, date,  Car);
-            //for (int i = 0; i < 12; i++)
-            //{
-            //    dateTime = dateTime.AddMonths(i);
-            //    string time = dateTime.ToString("yyyy-MM-dd");
-            //    await _accountService.AddEmployeeCardMonthlySummaryToRedisAsync(buid, time);
-            //}
+
             return true;
         }
         [Route("ClearhashValues")]
@@ -123,5 +94,17 @@ namespace MS.WebApi.Controllers
             await _accountService.ClearhashValues(key);
             return true;
         }
+        /// <summary>
+        /// 同步员工卡和个人卡汇总
+        /// </summary>
+        /// <returns></returns>
+        [Route("AddCarRedisAsync")]
+        [HttpPost]
+        [AllowAnonymous]
+        public async Task<bool> AddCarRedisAsync()
+        {
+            await _accountService.AddCarRedisAsync();
+            return true;
+        }
     }
 }

+ 8 - 0
src/MS.WebCore/Core/RedisExample.cs

@@ -174,5 +174,13 @@ namespace MS.WebCore.Core
 
             return keys;
         }
+        public  bool SetHashField(string hashKey, string fieldKey, string value)
+        {
+            // 获取数据库(默认是0)  
+
+            // 使用HashSet方法来更改哈希中字段的值  
+            // 注意:HashSet方法返回bool值,表示操作是否成功  
+            return redisDb.HashSet(hashKey, fieldKey, value);
+        }
     }
 }

+ 4 - 0
src/QuartzSettings/logs/logs.txt

@@ -1835,3 +1835,7 @@
 {"TaskName":"测试","GroupName":"测试","BeginDate":"2024-05-06T10:00:30.114459+08:00","EndDate":"2024-05-06T10:02:10.1389323+08:00","Msg":"The operation was canceled.","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"111","GroupName":"111","BeginDate":"2024-05-06T10:00:15.0682225+08:00","EndDate":"2024-05-06T10:03:15.5907935+08:00","Msg":"A task was canceled.","id":0,"timeflag":null,"changetime":null}
 {"TaskName":"测试","GroupName":"测试","BeginDate":"2024-05-06T10:02:00.3732425+08:00","EndDate":"2024-05-06T10:04:00.7637141+08:00","Msg":"A task was canceled.","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"测试","GroupName":"测试","BeginDate":"2024-05-07T00:57:50.404485+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"111","GroupName":"111","BeginDate":"2024-05-07T00:57:50.449457+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"测试","GroupName":"测试","BeginDate":"2024-05-07T01:36:14.3262176+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}
+{"TaskName":"111","GroupName":"111","BeginDate":"2024-05-07T01:36:14.3594625+08:00","EndDate":null,"Msg":"任务初始化启动成功:6","id":0,"timeflag":null,"changetime":null}