From a161b6f9ad92f645c20fb3b35ad5617490e7f6d2 Mon Sep 17 00:00:00 2001
From: username@email.com <yzy2002yzy@163.com>
Date: 星期四, 31 八月 2023 13:13:35 +0800
Subject: [PATCH] Merge branch 'master' of http://47.108.235.38:8080/r/DocumentService

---
 DocumentServiceApi.InitQMessage/MessageReceive.cs |  216 +++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 212 insertions(+), 4 deletions(-)

diff --git a/DocumentServiceApi.InitQMessage/MessageReceive.cs b/DocumentServiceApi.InitQMessage/MessageReceive.cs
index 1451c2d..f250681 100644
--- a/DocumentServiceApi.InitQMessage/MessageReceive.cs
+++ b/DocumentServiceApi.InitQMessage/MessageReceive.cs
@@ -1,5 +1,15 @@
-锘縰sing InitQ.Abstractions;
+锘縰sing DocumentServiceAPI.Model.cyDocumentModel;
+using DocumentServiceAPI.Model.Oder;
+using DocumentServiceAPI.Model.Permissions;
+using DocumentServiceAPI.Model.UserInfoModel;
+using Furion;
+using Furion.JsonSerialization;
+using Furion.Logging.Extensions;
+using Furion.Schedule;
+using InitQ.Abstractions;
 using InitQ.Attributes;
+using Microsoft.Extensions.Options;
+using SqlSugar;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -13,15 +23,213 @@
     /// </summary>
     public class MessageReceive: IRedisSubscribe
     {
+
+         
         /// <summary>
         /// 鍒濆鍖栬鍗曞鐞�
         /// </summary>
         /// <param name="msg"></param>
-        /// <returns></returns>
-       
-        [Subscribe(INITQMessageDefine.InitTentOder)]
+        /// <returns></returns>       
+        [Subscribe(INITQMessageDefine.InitTenantOder)]
         private async Task InitTenantOder(string msg)
         {
+            TenantOderInfo? obj = JSON.Deserialize<TenantOderInfo>(msg);
+            if(obj==null)
+            {
+                $"InitTenantOder 鍒濆鍖� msg 瀵硅薄閿欒 ,msg涓簕msg}".LogInformation<MessageReceive>();
+                return;
+            }
+            var    _db=  App.GetService<ISqlSugarClient>();
+
+
+            Oder oder = new Oder()
+            {
+                Amount = obj.Amount,
+                CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+                CreatTime = DateTime.Now,
+                Description = obj.Description,
+                EmployeeCount = obj.EmployeeCount,
+                MonthCount = obj.MonthCount,
+                UnitCount = obj.UnitCount,
+                PayType = obj.PayType,
+                PayTime = obj.PayTime,
+                ZcUserID = obj.ZcUserID,
+                ITCode = obj.ITCode,
+            };
+            TenantInfo? Tinfo = await _db.Queryable<TenantInfo>().Where(x=>x.ZcUserID==obj.ZcUserID).SingleAsync();
+            if(Tinfo==null)
+            {
+                Tinfo = new TenantInfo
+                {
+                    ZcUserID = obj.ZcUserID,
+                    ItCode = obj.ITCode,
+                    CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+                    CreatTime = DateTime.Now,
+                    Description = obj.Description,
+                    Name = obj.Name??obj.ITCode+"闆嗗洟璐﹀彿",
+                    PsW = obj.ITCode.Substring(obj.ITCode.Length - 4),
+
+
+                };
+                TenantPermissions permissions = new TenantPermissions()
+                {
+                    CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+                    CreatTime = DateTime.Now,
+                    Description = obj.Description,
+                    EmployeeMaxCount = obj.EmployeeCount ?? 0,
+                    UnitMaxCount = obj.UnitCount ?? 0,
+                    OverTime = DateTime.Now.AddMonths(obj.MonthCount ?? 0),
+
+
+
+                };
+
+                //鏂板缓绉熸埛鍛樺伐
+                Document_EmployeeInfo employeeInfo = new Document_EmployeeInfo()
+                {
+                    EmployeeName = "闆嗗洟璐﹀彿",
+                    UserName = Tinfo.ItCode,
+                    AdviseFlag = 2,
+                    UserId = 0,
+                    IsWork = 1,
+                    UserPassWord = Tinfo.ItCode.Substring(Tinfo.ItCode.Length - 6),
+                    Job = "闆嗗洟鐢ㄦ埛",
+                    IsLogin = true,
+                    LastUpdateName = "娑堟伅闃熷垪 InitTenantOder",
+                    LastUpdateTime = DateTime.Now,
+                };
+                EmployeeAtTenant employeeAtTenant = new EmployeeAtTenant()
+                {
+                    CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+                    CreatTime = DateTime.Now,
+                     
+                };
+
+                Document_TenderUnit tenderUnit = new Document_TenderUnit()
+                {
+                    UnitName = obj.Name ?? "闆嗗洟鍏徃",
+                    AdviseFlag = 2,
+                    UserId = 0,
+                    CreatTime = DateTime.Now.ToString("yyyy MM dd"),
+                    LastUpdateName = "娑堟伅闃熷垪 InitTenantOder",
+                    LastUpdateTime = DateTime.Now,
+                    IsDeled = false,
+                    IsEn = true,
+
+
+                };
+
+                try
+                {
+                    await _db.AsTenant().BeginTranAsync();
+
+                  var id=  await _db.Insertable(Tinfo).ExecuteReturnIdentityAsync();
+                    var eid = await _db.Insertable(employeeInfo).ExecuteReturnIdentityAsync();
+                    permissions.TenantId = id;
+                    employeeAtTenant.TenantID = id;
+                    employeeAtTenant.EmployeeID = eid;
+                    tenderUnit.TenantId = id;
+                    await _db.Insertable(tenderUnit).ExecuteCommandAsync();
+                    await _db.Insertable(employeeAtTenant).ExecuteCommandAsync();
+                    await _db.Insertable(permissions).ExecuteCommandAsync ();
+                    await _db.Insertable(oder).ExecuteCommandAsync();
+                    await _db.AsTenant().CommitTranAsync();
+                }
+                catch (Exception e)
+                {
+                    await _db.AsTenant().RollbackTranAsync();
+                    $"鏂板缓绉熸埛澶勭悊澶辫触 msg:{msg},e:{e.ToString()} BY锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>();
+                    return;
+                }
+
+
+            }
+            else
+            {
+                var Employee = await _db.Queryable<EmployeeAtTenant,Document_EmployeeInfo>((EAT, E) => new JoinQueryInfos(
+
+    JoinType.Left, EAT.EmployeeID == E.EmployeeId
+)).Where((EAT, E) =>  EAT.TenantID==Tinfo.Id).Select((EAT,E)=>E).FirstAsync();
+               
+                Tinfo.ItCode = obj.ITCode;
+                Tinfo.UpdataBy = "娑堟伅闃熷垪 InitTenantOder";
+                Tinfo.UpdataTime = DateTime.Now;
+                Tinfo.IsDel = false;
+                Tinfo.IsEn = true;
+          
+              var tp= await _db.Queryable<TenantPermissions>().Where(x=>x.TenantId==Tinfo.Id).FirstAsync();
+
+                try
+                {
+                    await _db.AsTenant().BeginTranAsync();
+                    if (Tinfo.ItCode != obj.ITCode)
+                    {
+                     
+                       await _db.Updateable(Tinfo).ExecuteCommandAsync();
+                    };
+                    if (tp == null)
+                    {
+                        tp = new TenantPermissions()
+                        {
+                            CreatBy = "娑堟伅闃熷垪 InitTenantOder",
+                             CreatTime = DateTime.Now,
+                              IsDel = false,
+                               IsEn = true,
+                                EmployeeMaxCount=obj.EmployeeCount??0,
+                                 UnitMaxCount=obj.UnitCount??0,
+                                  OverTime=DateTime.Now.AddMinutes(obj.MonthCount??0),
+                                   TenantId= Tinfo.Id,
+                                   
+                        };
+                        await _db.Insertable(tp).ExecuteCommandAsync();
+
+                        
+                    }
+                    else
+                    {
+                        tp.IsDel = false;
+                        tp.IsEn = true;
+                        tp.UnitMaxCount = obj.UnitCount ?? tp.UnitMaxCount;
+                        tp.EmployeeMaxCount = obj.EmployeeCount ?? tp.EmployeeMaxCount;
+                        tp.OverTime = tp.OverTime.AddMonths(obj.MonthCount??0);
+                        tp.UpdataBy = "娑堟伅闃熷垪 InitTenantOder";
+                        tp.UpdataTime = DateTime.Now;
+
+                        await _db.Updateable(tp).ExecuteCommandAsync();
+
+                    }
+                    if (obj.ITCode != Employee.UserName)
+                    {
+                        //濡傛灉鍙戠幇鐢ㄦ埛鍚嶅凡缁忔洿鏀癸紝鍒欒闆嗗洟鍛樺伐鐢ㄦ埛鍚嶈窡闅忔洿鏀�
+                        Employee.UserName = obj.ITCode;
+                        Employee.LastUpdateName= "娑堟伅闃熷垪 InitTenantOder";
+                        Employee.LastUpdateTime = DateTime.Now;
+                        await _db.Updateable(Employee).ExecuteCommandAsync();
+                    }
+                    await _db.Insertable(oder).ExecuteCommandAsync();
+                    await _db.AsTenant().CommitTranAsync();
+                
+
+
+
+
+                }
+                catch (Exception e)
+                {
+
+                    await _db.AsTenant().RollbackTranAsync();
+                    $"淇敼绉熸埛鏉冮檺澶辫触 msg:{msg},e:{e.ToString()}  By锛氭秷鎭槦鍒� InitTenantOder".LogInformation<MessageReceive>();
+                    return;
+                }
+            
+            }
+        
+
+
+
+           
+
+         
 
 
 

--
Gitblit v1.9.1