From 8c92db325f7c801d2df095763a17673fa6c92085 Mon Sep 17 00:00:00 2001
From: 移动系统liao <liaoxujun@qq.com>
Date: 星期五, 07 三月 2025 18:56:09 +0800
Subject: [PATCH] 物流配送第一点

---
 cylsg/cylsg.Model/ECTEModel/OA_CustomerCommunications.cs     |  179 +++
 cylsg/cylsg.Model/ECTEModel/EC_OrderExtend.cs                |  305 +++++
 cylsg/cylsg.Application/applicationsettings.json             |   16 
 cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs  |    1 
 cylsg/cylsg.Model/ECTEModel/EC_OrderPrintParameter.cs        |   32 
 cylsg/cylsg.Model/ECTEModel/OA_attachment.cs                 |   74 +
 cylsg/cylsg.Model/ECTEModel/OA_CarManage.cs                  |  130 ++
 cylsg/cylsg.Model/ECTEModel/OA_CorporateClients.cs           |  361 ++++++
 cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs                |  266 +++++
 cylsg/cylsg.Application/CyOS/CyOSSettingController.cs        |  105 +
 cylsg/ECTESTOA/OAServices.cs                                 |    8 
 cylsg/cylsg.Model/ECTEModel/EC_OrderOperate.cs               |   60 +
 cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs   |    1 
 cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs            |  523 +++++++++
 cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs               |  111 ++
 cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs              |  109 ++
 cylsg/cylsg.Model/ECTEModel/OaWorkPlanAttachment.cs          |    2 
 cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs |    1 
 cylsg/cylsg.Model/ECTEModel/EC_OrderBasic.cs                 |  242 ++++
 cylsg/cylsg.Application/CyOS/CyOSStaffController.cs          |  261 ++++
 cylsg/cylsg.Model/ECTEModel/EC_OrderLiuyang.cs               |   81 +
 cylsg/cylsg.Application/CyOS/CyOSSDriver.cs                  |  293 +++++
 22 files changed, 3,144 insertions(+), 17 deletions(-)

diff --git a/cylsg/ECTESTOA/OAServices.cs b/cylsg/ECTESTOA/OAServices.cs
index 0f8cc41..e0aca0c 100644
--- a/cylsg/ECTESTOA/OAServices.cs
+++ b/cylsg/ECTESTOA/OAServices.cs
@@ -56,9 +56,9 @@
             else
             {
                 string CaiwuKey = App.Configuration["EcTestOAMenuName:CaiWu"] ?? "娌℃湁";
+               
 
-
-               var CaiWUMenuiId= await  _OAsqlSugarClient.Queryable<Sys_Permissions_Menu>().Where(x => x.IsUsed == true && x.MenuName == CaiwuKey).Select(x=>x.Keyid).WithCache(600).FirstAsync();
+                var CaiWUMenuiId= await  _OAsqlSugarClient.Queryable<Sys_Permissions_Menu>().Where(x => x.IsUsed == true && x.MenuName == CaiwuKey).Select(x=>x.Keyid).WithCache(600).FirstAsync();
                 int id = UserID?.toInt() ?? 0;
                 if (id == 0)
                     throw Oops.Oh("鐧诲綍淇℃伅閿欒");
@@ -71,7 +71,9 @@
                 ret = await _OAsqlSugarClient.Queryable<OaStaff>().Includes(x => x.Department).Where(x => x.MobieNum == user.ItCode && x.FirmId == firmId).Select(x => new ECTESTOAPermissions
                 {
                     DepartmentName = x.Department.Name,
-                     DepartId=x.DepartmentId,
+                     DepartId=x.DepartmentId
+                
+                    
 
                 },true
                 ).FirstAsync();
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
index 7b345c9..f7de6f2 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoCaiWuController.cs
@@ -17,6 +17,7 @@
     /// 璐㈠姟鎶ラ攢鎺у埗鍣�
     /// </summary>
     [Authorize]
+    [ApiDescriptionSettings("CYOA")]
     public  class CyOSBaoXiaoCaiWuController: IDynamicApiController
     {
         private static readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1);
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
index e89b02f..7823af8 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoJingLiController.cs
@@ -17,6 +17,7 @@
     /// 宸濆嵃鎶ラ攢缁忕悊API
     /// </summary>
     [Authorize]
+    [ApiDescriptionSettings("CYOA")]
     public class CyOSBaoXiaoJingLiController: IDynamicApiController
     {
         private readonly IOAServices _OAServices;
diff --git a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
index 5ccdc56..18dd22f 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSBaoXiaoZHuGuanController.cs
@@ -15,6 +15,7 @@
     /// 鎶ラ攢涓荤鐩稿叧鎺у埗鍣�
     /// </summary>
     [Authorize]
+    [ApiDescriptionSettings("CYOA")]
     public class CyOSBaoXiaoZHuGuanController: IDynamicApiController
     {
         private readonly IOAServices _OAServices;
diff --git a/cylsg/cylsg.Application/CyOS/CyOSSDriver.cs b/cylsg/cylsg.Application/CyOS/CyOSSDriver.cs
new file mode 100644
index 0000000..0c3e108
--- /dev/null
+++ b/cylsg/cylsg.Application/CyOS/CyOSSDriver.cs
@@ -0,0 +1,293 @@
+锘縰sing cylsg.Model.ECTEModel;
+using cylsg.Model.utilityViewModel;
+using ECTESTOA;
+using EzCoreNet.Redis;
+using Furion.LinqBuilder;
+using Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.CyOS
+{
+    /// <summary>
+    /// 鍙告満鐩稿叧
+    /// </summary>
+    [Authorize]
+    [ApiDescriptionSettings("CYOA")]
+    public class CyOSSDriver: IDynamicApiController
+    {
+        private readonly ISqlSugarClient _client;
+        private readonly IOAServices _oAServices;
+        private readonly IEzCoreNetRedisService _eZCoreNetRedisService;
+        private ECTESTOAPermissions Permissions;
+        public CyOSSDriver(ISqlSugarClient client, IOAServices oAServices, IEzCoreNetRedisService netRedisService)
+        {
+            _client = client.AsTenant().GetConnection("ECTESTOADB");
+            _oAServices = oAServices;
+            _eZCoreNetRedisService = netRedisService;
+        }
+        /// <summary>
+        /// 鑾峰彇閫佽揣鍗�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<DeliverOderPageRet> GetDeliverPlans(DeliverPlanSearchParam Param)
+        {
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Expression<Func<OA_DeliverPlan, bool>> SearchList = (x) => true;
+            SearchList = SearchList.And(x => x.FirmId == _oAServices.firmId);
+            SearchList = SearchList.And(x => x.DriverId == Permissions.KeyId);//鍙湅鑷繁
+            SearchList = SearchList.And(x => x.ShifouDelivery != 2);//杩囨护鏈夋晥
+            if (Param.DeliverKeyID != null)
+            {
+                SearchList = SearchList.And(x => x.DriverId == Param.DeliverKeyID);
+            }
+            //瀹㈡埛鍚嶇О
+            if (!string.IsNullOrEmpty(Param.CorporateClient))
+            {
+                SearchList = SearchList.And(x => x.CompanyName.Contains(Param.CorporateClient));
+            }
+            if (Param.TimeStart != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime > Param.TimeStart);
+            }
+            if (Param.TimeEnd != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1));
+            }
+            if (Param.DeliveredState != null)
+            {
+                if (Param.DeliveredState != DeliveredType.Delivered)
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus != DeliveredType.Delivered);
+                }
+                else
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus == DeliveredType.Delivered);
+                }
+            }
+
+            //寮哄埗澧炲姞鍛樺伐杩囨护
+            RefAsync<int> totle = 0;
+            var data = await _client.Queryable<OA_DeliverPlan>().Includes(x=>x.SentStaff)
+                .Where(SearchList).OrderByDescending(x => x.CreateTime.Value.Date).OrderBy(x => SqlFunc.Asc(x.Sort)).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle);
+
+            Param.page.TotalCount = totle;
+
+
+            return new DeliverOderPageRet
+
+            {
+                Data = data,
+                page = Param.page,
+
+            };
+
+
+        }
+        /// <summary>
+        /// 鑾峰彇DeliverPlan璇︽儏
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<OA_DeliverPlan> GetDeliverPlanInfo(Guid KeyId)
+        {
+            
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            return await _client.Queryable<OA_DeliverPlan>().Includes(x=>x.Attachments.Where(y=>y.AttachmentType==3).ToList()).Includes(x=>x.Manager).Includes(x=>x.SentStaff)
+                .Where(x => x.DriverId == Permissions.KeyId && x.Keyid == KeyId&&x.ShifouDelivery!=2).FirstAsync();
+
+        }
+        
+
+        /// <summary>
+        /// 寮�濮嬮厤閫�
+        /// </summary>
+        /// <param name="KeyId"></param>
+        /// <returns></returns>
+        public async Task<int > StartDeliverPlan(Guid KeyId)
+        {
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+             var a= await _client.Queryable<OA_DeliverPlan>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync();
+            if(a==null)
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            if(a.Deliveredstatus!= DeliveredType.Undeliver)
+            {
+                throw Oops.Oh("宸茬粡寮�濮嬫垨鑰呯粨鏉熶簡");
+            }
+            a.Deliveredstatus = DeliveredType.Deliver;
+            a.Updater = Permissions.MemberId;
+            a.LastUpdateTime = DateTime.Now;
+            
+           return await _client.Updateable(a).ExecuteCommandAsync();
+
+
+        }
+
+
+        /// <summary>
+        /// 瀹屾垚璁㈠崟
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<bool> FinishDeliverPlan(OA_DeliverPlan Param)
+        {
+            if(Param.Keyid==null)
+                throw Oops.Oh("ID閿欒");
+            if((Param.Deliveredstatus != DeliveredType.Delivered)&&(Param.Deliveredstatus != DeliveredType.Reject))
+                throw Oops.Oh("鎺ュ彈鐘舵�侀敊璇�");
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var a = await _client.Queryable<OA_DeliverPlan>().Where(x => x.DriverId == Permissions.KeyId && x.Keyid == Param.Keyid && x.ShifouDelivery != 2).FirstAsync();
+            if (a == null)
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            if (a.Deliveredstatus != DeliveredType.Deliver)
+            {
+                throw Oops.Oh("璁㈠崟鐘舵�佺粨鏉�");
+            }
+            foreach (var item in Param.Attachments)
+            {
+                if(string.IsNullOrWhiteSpace(item.PlanAttachment))
+                {
+                    throw Oops.Oh("鏈夐檮浠跺湴鍧�涓虹┖");
+                }
+
+                // URL 姝e垯琛ㄨ揪寮�
+                string urlPattern = @"^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$";
+                if(! Regex.IsMatch(item.PlanAttachment, urlPattern))
+                {
+                    throw Oops.Oh("璇疯緭鍏ユ纭殑闄勪欢鍦板潃");
+
+                }
+                if (item.Keyid>0)
+                {
+                    item.OA_Id = a.Keyid;
+                    item.AttachmentType = 3;
+                    
+                }
+                else
+                {
+                    item.OA_Id=a.Keyid;
+                    item.AttachmentType = 3;
+                    item.CreateTime = DateTime.Now;
+                    item.Operator = Permissions.Name;
+                }
+            }
+            a.Deliveredstatus = DeliveredType.Deliver;
+            a.Updater = Permissions.MemberId;
+            a.LastUpdateTime = DateTime.Now;
+            if(Param.Deliveredstatus== DeliveredType.Delivered)
+            a.DeliveredTime = DateTime.Now;
+            a.Wentifankui = Param.Wentifankui;
+            a.Deliveredstatus= Param.Deliveredstatus;
+            a.Attachments = Param.Attachments;
+            return await _client.UpdateNav(a).Include(x=>x.Attachments,new SqlSugar.UpdateNavOptions()
+                { 
+                   OneToManyInsertOrUpdate = true,//閰嶇疆鍚敤 鎻掑叆銆佹洿鏂版垨鍒犻櫎妯″紡
+                }).ExecuteCommandAsync();
+
+
+        }
+
+        /// <summary>
+        /// 涓婄彮鎵撳崱 涓婁笅鐝墦鍗¢兘璋冪敤涓�涓瓧娈�
+        /// </summary>     
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<bool > Clock(OA_DriverRecord Param)
+        {
+            if (Param.ClockType == DriverClockType.Unknown)
+                throw Oops.Oh("绫诲瀷涓嶅彲涓烘湭鐭�");
+            Param.Id =  Guid.NewGuid();
+            if (Param.Attachments!=null)
+            foreach (var item in Param.Attachments)
+            {
+                    if (string.IsNullOrWhiteSpace(item.PlanAttachment))
+                    {
+                        throw Oops.Oh("鏈夐檮浠跺湴鍧�涓虹┖");
+                    }
+
+                    // URL 姝e垯琛ㄨ揪寮�
+                    string urlPattern = @"^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$";
+                    if (!Regex.IsMatch(item.PlanAttachment, urlPattern))
+                    {
+                        throw Oops.Oh("璇疯緭鍏ユ纭殑闄勪欢鍦板潃");
+
+                    }
+                    item.AttachmentType =4;
+                    item.CreateTime = DateTime.Now;
+                    item.Operator = Permissions.Name;
+                    
+                    
+                }
+             if(Param.CarConditionAttachments!=null)
+                foreach (var item in Param.CarConditionAttachments)
+                {
+                    if (string.IsNullOrWhiteSpace(item.PlanAttachment))
+                    {
+                        throw Oops.Oh("鏈夐檮浠跺湴鍧�涓虹┖");
+                    }
+
+                    // URL 姝e垯琛ㄨ揪寮�
+                    string urlPattern = @"^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$";
+                    if (!Regex.IsMatch(item.PlanAttachment, urlPattern))
+                    {
+                        throw Oops.Oh("璇疯緭鍏ユ纭殑闄勪欢鍦板潃");
+
+                    }
+                    item.AttachmentType = 5;
+                    item.CreateTime = DateTime.Now;
+                    item.Operator = Permissions.Name;
+
+
+                }
+            Param.CreatTime = DateTime.Now;
+            Param.CreaterID = Permissions.MemberId;
+            Param.Creater = Permissions.Name;
+           return await  _client.InsertNav(Param).Include(x => x.Attachments).Include(x => x.Attachments).ExecuteCommandAsync();
+           
+
+        }
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鍏锋湁鏉冮檺
+        /// </summary>
+        /// <returns></returns>
+        private async Task<bool> CheckRols()
+        {
+            var pr = await _oAServices.GetOAPermissions();
+            Permissions = pr;
+            if (pr != null && pr.MemberId != null)
+            {
+                if (pr.BF_IsDriver == true)
+
+
+                    return true;
+                else
+                    return false;
+
+            }
+            else
+                return false;
+        }
+
+    }
+}
diff --git a/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs b/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs
index 5442385..687476c 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSSettingController.cs
@@ -1,6 +1,7 @@
 锘縰sing cylsg.Model.ECTEModel;
 using ECTESTOA;
 using EzCoreNet.Redis;
+using Models;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -12,14 +13,16 @@
     /// <summary>
     /// 宸濆嵃閫氱敤淇℃伅鑾峰彇
     /// </summary>
-    public class CYOSSettingController: IDynamicApiController
+    [Authorize]
+    [ApiDescriptionSettings("CYOA")]
+    public class CYOSSettingController : IDynamicApiController
     {
 
         private readonly ISqlSugarClient _client;
         private readonly IOAServices _oAServices;
         private readonly IEzCoreNetRedisService _eZCoreNetRedisService;
-         
-        public CYOSSettingController( ISqlSugarClient client,IOAServices oAServices,IEzCoreNetRedisService netRedisService )
+
+        public CYOSSettingController(ISqlSugarClient client, IOAServices oAServices, IEzCoreNetRedisService netRedisService)
         {
             _client = client.AsTenant().GetConnection("ECTESTOADB");
             _oAServices = oAServices;
@@ -31,13 +34,13 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public async Task< List<OaDepartment>> GetDepartLstt()
+        public async Task<List<OaDepartment>> GetDepartLstt()
         {
-            return await _client.Queryable<OaDepartment>().Where(x=>x.Status== "鍚敤"&&x.FirmId== _oAServices.firmId).Select(x=>new OaDepartment
+            return await _client.Queryable<OaDepartment>().Where(x => x.Status == "鍚敤" && x.FirmId == _oAServices.firmId).Select(x => new OaDepartment
             {
-                  Name=x.Name,
-                    Keyid=x.Keyid,
-                     Remark=x.Remark,
+                Name = x.Name,
+                Keyid = x.Keyid,
+                Remark = x.Remark,
             }).WithCache(3600).ToListAsync();
         }
         /// <summary>
@@ -45,9 +48,10 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
+
         public async Task<List<OaSubjectSet>> getKeMuList()
         {
-            return await _client.Queryable<OaSubjectSet>().Where(x => x.Status == true && x.FirmId == _oAServices.firmId&& x.SubjectType=="璐�").Select(x => new OaSubjectSet
+            return await _client.Queryable<OaSubjectSet>().Where(x => x.Status == true && x.FirmId == _oAServices.firmId && x.SubjectType == "璐�").Select(x => new OaSubjectSet
             {
                 SubjectName = x.SubjectName,
                 Keyid = x.Keyid,
@@ -59,9 +63,86 @@
         /// </summary>
         /// <returns></returns>
         [HttpGet]
-        public  string GetShowID()
+        [AllowAnonymous]
+        public string GetShowID()
         {
-          return   _eZCoreNetRedisService.GetYYYMMddAnd4sn();
+            return _eZCoreNetRedisService.GetYYYMMddAnd4sn();
         }
-    }
+        /// <summary>
+        /// 鑾峰彇瀹㈡埛鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [AllowAnonymous]
+        public async Task<object> GeCorporateClients()
+        {
+             return  await _client.Queryable<OA_CorporateClients>()
+                .LeftJoin<OA_CustomerCommunications>((Co,Cu)=>Co.Keyid==Cu.Keyid)
+                .Where((Co, Cu) => Co.Shifouwanjie != 1 && Co.FirmId == _oAServices.firmId).Select((Co, Cu) => new 
+            {
+                 Co.Keyid,
+                    Co.CompanyName,
+                  adder=Cu.Province+Cu.City+Cu.County+Cu.DetailedAddress,
+                  Cu.CompanyPhone,
+                  Cu.BusinessManagers,     
+
+
+            }).MergeTable().OrderBy(Co => Co.CompanyName).WithCache(1800).ToListAsync();
+        }
+        /// <summary>
+        /// 鑾峰彇鍙告満鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        public async Task<List<OaStaff>> Getdrivers()
+        {
+            return await _client.Queryable<OaStaff>().Where(x => x.Status == "鍦ㄨ亴" && x.FirmId == _oAServices.firmId && x.BF_IsDriver).Select(x => new OaStaff
+            {
+                Name = x.Name,
+                MemberId = x.MemberId,
+                Keyid = x.Keyid,
+
+            }).WithCache(1800).ToListAsync();
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇7澶╁唴鍙告満鍒楄〃
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet]
+        [AllowAnonymous]
+        public async Task<List<OaStaff>> GetDriversOfWithin7days()
+        {
+            var list = await _client.Queryable<OA_DeliverPlan>().Where(x => SqlFunc.ToDate(x.DeliverTime) < DateTime.Now.AddDays(8).Date && SqlFunc.ToDate(x.DeliverTime) >= DateTime.Now.Date).GroupBy(x => x.DriverId).Select(x => x.DriverId).ToListAsync();
+            return await _client.Queryable<OaStaff>().In(list).Where(x => x.Status == "鍦ㄨ亴" && x.FirmId == _oAServices.firmId && x.BF_IsDriver).Select(x => new OaStaff
+            {
+                Name = x.Name,
+                MemberId = x.MemberId,
+                Keyid = x.Keyid,
+
+            }).WithCache(1800).ToListAsync();
+            ////      return await _client.Queryable<OA_DeliverPlan>()
+            ////.LeftJoin<OaStaff>((dp, os) => dp.DriverId == os.Keyid)
+            ////.Where((dp, os) => SqlFunc.ToDate(dp.DeliverTime) < DateTime.Now.AddDays(8).Date
+            ////    && SqlFunc.ToDate(dp.DeliverTime) >= DateTime.Now.Date
+            ////    && os.Status == "鍦ㄨ亴"
+            ////    && os.FirmId == _oAServices.firmId
+            ////    )
+            ////.GroupBy((dp, os) => dp.DriverId)
+            ////.Select((dp, os) => new OaStaff
+            ////{
+            ////    Name = SqlFunc.AggregateMax(os.Name),
+            ////    MemberId = SqlFunc.AggregateMax(os.MemberId),
+            ////    Keyid = SqlFunc.AggregateMax(os.Keyid),
+            ////})
+            ////.WithCache(1800)
+            ////.ToListAsync();
+             }
+
+
+
+
+
+        }
 }
diff --git a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
index a888020..f710ad4 100644
--- a/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
+++ b/cylsg/cylsg.Application/CyOS/CyOSStaffController.cs
@@ -7,6 +7,8 @@
 using ECTESTOA;
 using EzCoreNet.Redis;
 using Furion.LinqBuilder;
+using Microsoft.CodeAnalysis.CSharp.Syntax;
+using Models;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -22,6 +24,7 @@
     /// 宸濆嵃鏅�氬憳宸ユ帶鍒跺櫒
     /// </summary>
     [Authorize]
+    [ApiDescriptionSettings("CYOA")]
     public class CyOSStaffController : IDynamicApiController
     {
         private readonly IOAServices _OAServices;
@@ -302,7 +305,7 @@
 
         }
         /// <summary>
-        /// 鑾峰彇璇︽儏
+        /// 鑾峰彇璐㈠姟鐢宠鍗曡鎯�
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
@@ -343,6 +346,228 @@
             return true;
         }
 
+
+        /// <summary>
+        /// 鑾峰彇棰勭害閰嶉�佷俊鎭�
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<AppointmentDeliverRet> GetListAppointmentDeliverList(ApoointmentDeliverSearchParam Param)
+        {
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Expression<Func<OA_DeliverTixing, bool>> SearchList = (x) => true;
+            SearchList = SearchList.And(x => x.FirmId == _OAServices.firmId);
+            SearchList = SearchList.And(x => x.Creater == Permissions.MemberId);
+            if (!string.IsNullOrEmpty(Param.Content))
+            {
+                SearchList = SearchList.And(x => x.Remark.Contains(Param.Content));
+            }
+            if (Param.MemberId != null)
+            {
+                SearchList = SearchList.And(x => x.FirmId == Param.MemberId);
+            }
+            if (Param.TimeStart !=null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime> Param.TimeStart);
+            }
+            if (Param.TimeEnd != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1));
+            }
+           
+
+            
+            if (Param.DeliverState != null)
+            {
+                SearchList = SearchList.And(x => x.Chulistatus == Param.DeliverState);
+            }
+            //寮哄埗澧炲姞鍛樺伐杩囨护
+            RefAsync<int> totle = 0;
+            var data = await _SugarClient.Queryable<OA_DeliverTixing>()
+                .Where(SearchList).OrderByDescending(x => x.ChuliTime).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle);
+
+            Param.page.TotalCount = totle;
+         
+            return new AppointmentDeliverRet
+
+            {
+                Data = data,
+                page= Param.page,
+               
+            };
+        }
+
+       
+        /// <summary>
+        /// 鍒涘缓涓�涓绾﹂厤閫�
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        [LimitFilter(LimiType = Limttype.User,timespan =5,ResponseMeg ="璇峰嬁鍦�5鍐呴噸澶嶈姹�",InCount =1)]
+        public async Task<int> CreatAppointmentDeliver(OA_DeliverTixing Param)
+        {
+           if(  string.IsNullOrEmpty(Param.Remark))
+                 throw Oops.Oh("鍐呭蹇呭~");
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Param.FirmId = _OAServices.firmId;
+            Param.CreateTime = DateTime.Now;
+            Param.Creater = Permissions.MemberId;
+            Param.Chulistatus = AppointmentDeliverState.unAccept;
+            
+         return  await   _SugarClient.Insertable(Param).ExecuteCommandAsync();
+        }
+        
+        /// <summary>
+        /// 淇敼棰勭害鎻愰啋        
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<int> UpDataAppointmentDeliver(OA_DeliverTixing Param)
+        {
+          if(  Param.Chulistatus== AppointmentDeliverState.Accept)
+                throw Oops.Oh("鐘舵�佷笉鍙慨鏀逛负鍙楃悊鐘舵��");
+            if (!(Param.Keyid>0))
+                throw Oops.Oh("Keyid涓嶈兘涓虹┖");
+            if (string.IsNullOrEmpty(Param.Remark))
+                throw Oops.Oh("鍐呭蹇呭~");
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var data= await   _SugarClient.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == Param.Keyid&&x.FirmId==_OAServices.firmId&&x.Creater==Permissions.MemberId).FirstAsync();
+            if (data == null)
+                throw Oops.Oh("娌℃壘鍒版暟鎹�");
+            if(data.Chulistatus == AppointmentDeliverState.Accept)
+                throw Oops.Oh("宸插彈鐞嗙姸鎬佷笉鍙慨鏀�");
+            if (data.Remark!=Param.Remark)
+            {
+                data.Remark = Param.Remark;
+                data.LastUpdateTime = DateTime.Now;
+                data.Updater = Permissions.MemberId;
+                return await _SugarClient.Updateable(data).ExecuteCommandAsync();
+            }
+            return 1;
+
+            
+        }
+        /// <summary>
+        /// 鍒犻櫎棰勭害鎻愰啋        
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<int> DelAppointmentDeliver(OA_DeliverTixing Param)
+        {
+            if (!(Param.Keyid > 0))
+                throw Oops.Oh("Keyid涓嶈兘涓虹┖");
+          
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var data = await _SugarClient.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == Param.Keyid && x.Creater == Permissions.MemberId&&x.FirmId==_OAServices.firmId).FirstAsync();
+            if (data == null)
+                throw Oops.Oh("娌℃壘鍒版暟鎹垨鑰呮病鏈夋潈闄�");
+          if(  data.Chulistatus!= AppointmentDeliverState.unAccept)
+               throw Oops.Oh("宸插彈鐞嗙姸鎬佷笉鍙垹闄�");
+
+            return await _SugarClient.Deleteable(data).ExecuteCommandAsync();
+
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇閫佽揣鍗�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<DeliverOderPageRet>  GetDeliverPlans(DeliverPlanSearchParam Param)
+        {
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Expression<Func<OA_DeliverPlan, bool>> SearchList = (x) => true;
+            SearchList = SearchList.And(x => x.FirmId == _OAServices.firmId);
+            SearchList = SearchList.And(x => x.Creater == Permissions.MemberId);//鍙湅鑷繁
+            SearchList = SearchList.And(x => x.ShifouDelivery !=2);//杩囨护鏈夋晥
+            if (Param.DeliverKeyID!=null)
+            {
+                SearchList = SearchList.And(x => x.DriverId == Param.DeliverKeyID);
+            }
+            //瀹㈡埛鍚嶇О
+            if (!string.IsNullOrEmpty(Param.CorporateClient))
+            {
+                SearchList = SearchList.And(x => x.CompanyName.Contains(Param.CorporateClient));
+            }
+            if (Param.TimeStart != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime > Param.TimeStart);
+            }
+            if (Param.TimeEnd != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd.Value.AddDays(1));
+            }
+            if (Param.DeliveredState != null)
+            {
+                if (Param.DeliveredState != DeliveredType.Delivered)
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus != DeliveredType.Delivered);
+                }
+                else
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus == DeliveredType.Delivered);
+                }
+            }
+
+            //寮哄埗澧炲姞鍛樺伐杩囨护
+            RefAsync<int> totle = 0;
+            var data = await _SugarClient.Queryable<OA_DeliverPlan>().Includes(x => x.Driver)
+                .Where(SearchList).OrderByDescending(x => x.CreateTime.Value.Date).OrderBy(x=>SqlFunc.Asc(x.Sort)).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle);
+
+            Param.page.TotalCount = totle;
+        
+
+            return new DeliverOderPageRet
+
+            {
+                Data = data,
+                page = Param.page,
+
+            };
+
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇閫佽揣鍗曡鎯�
+        /// </summary>
+        /// <param name="KeyId"></param>
+        /// <returns></returns>
+        public async Task<OA_DeliverPlan> GetDeliverPlanInfo(Guid KeyId)
+        {
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            return await _SugarClient.Queryable<OA_DeliverPlan>().Includes(x => x.Attachments).Includes(x=>x.Driver).Includes(x=>x.Manager)
+                .Where(x => x.Creater == Permissions.MemberId && x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync();
+
+        }
 
         /// <summary>
         /// 鍒ゆ柇鏄惁鍏锋湁鏉冮檺
@@ -427,4 +652,38 @@
         public decimal TotalMoney { get; set; } = 0;
 
     }
+
+    /// <summary>
+    /// 閰嶉�侀绾�
+    /// </summary>
+    public class AppointmentDeliverRet
+    {
+        /// <summary>
+        /// 鏁版嵁鍒楄〃
+        /// </summary>
+        public List<OA_DeliverTixing> Data { get; set; }
+
+        /// <summary>
+        /// 椤甸潰鍙傛暟
+        /// </summary>
+        public PageModel page { get; set; }
+
+    }
+
+
+    /// <summary>
+    /// 閰嶉�佸崟鏁版嵁杩斿洖
+    /// </summary>
+    public class DeliverOderPageRet
+    {
+        /// <summary>
+        /// 鏁版嵁鍒楄〃
+        /// </summary>
+        public List<OA_DeliverPlan> Data { get; set; }
+
+        /// <summary>
+        /// 椤甸潰鍙傛暟
+        /// </summary>
+        public PageModel page { get; set; }
+    }
 }
diff --git a/cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs b/cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs
new file mode 100644
index 0000000..b330891
--- /dev/null
+++ b/cylsg/cylsg.Application/CyOS/CyOsDeliverManage.cs
@@ -0,0 +1,523 @@
+锘縰sing cylsg.Model.ECTEModel;
+using cylsg.Model.utilityViewModel;
+using cylsg.utility.Extend;
+using ECTESTOA;
+using EzCoreNet.Redis;
+using Furion.LinqBuilder;
+using Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Linq.Expressions;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Application.CyOS
+{
+    /// <summary>
+    /// 宸濆嵃閰嶉�佹帶鍒跺櫒
+    /// </summary>
+    [Authorize]
+    [ApiDescriptionSettings("CYOA")]
+    public class CyOsDeliverManage : IDynamicApiController
+    {
+
+        private readonly ISqlSugarClient _client;
+        private readonly IOAServices _oAServices;
+        private readonly IEzCoreNetRedisService _eZCoreNetRedisService;
+        private ECTESTOAPermissions Permissions;
+        public CyOsDeliverManage(ISqlSugarClient client, IOAServices oAServices, IEzCoreNetRedisService netRedisService)
+        {
+            _client = client.AsTenant().GetConnection("ECTESTOADB");
+            _oAServices = oAServices;
+            _eZCoreNetRedisService = netRedisService;
+        }
+        [HttpGet]
+        [AllowAnonymous]
+        public async Task<string> testc()
+        {
+            return await CreatDeliverPlanSn();
+        }
+
+        /// <summary>
+        /// 鑾峰彇棰勭害閰嶉�佷俊鎭�
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<AppointmentDeliverRet> GetListAppointmentDeliverList(ApoointmentDeliverSearchParam Param)
+        {
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Expression<Func<OA_DeliverTixing, bool>> SearchList = (x) => true;
+            SearchList = SearchList.And(x => x.FirmId == _oAServices.firmId);
+            if (!string.IsNullOrEmpty(Param.Content))
+            {
+                SearchList = SearchList.And(x => x.Remark.Contains(Param.Content));
+            }
+            if (Param.MemberId != null)
+            {
+                SearchList = SearchList.And(x => x.FirmId == Param.MemberId);
+            }
+            if (Param.TimeStart != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime > Param.TimeStart);
+            }
+            if (Param.TimeEnd != null)
+            {
+                SearchList = SearchList.And(x => x.CreateTime < Param.TimeEnd);
+            }
+
+
+            //鎶ラ攢鐘舵��
+            if (Param.DeliverState != null)
+            {
+                SearchList = SearchList.And(x => x.Chulistatus == Param.DeliverState);
+            }
+            //寮哄埗澧炲姞鍛樺伐杩囨护
+            RefAsync<int> totle = 0;
+            var data = await _client.Queryable<OA_DeliverTixing>().Includes(x => x.SentStaff)
+                .Where(SearchList).OrderByDescending(x => x.ChuliTime).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle);
+
+            Param.page.TotalCount = totle;
+
+            return new AppointmentDeliverRet
+
+            {
+                Data = data,
+                page = Param.page,
+
+            };
+        }
+
+        /// <summary>
+        /// 閫佽揣棰勭害鍗曡鎯�
+        /// </summary>
+        /// <param name="KeiId"></param>
+        /// <returns></returns>
+        public async Task<OA_DeliverTixing> GetAppointmentDeliverInfo(int KeiId)
+        {
+
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var data = await _client.Queryable<OA_DeliverTixing>().Includes(x => x.SentStaff).Where(x => x.Keyid == KeiId && x.FirmId == _oAServices.firmId).FirstAsync();
+
+            return data;
+
+
+        }
+        /// <summary>
+        /// 鍙楃悊        
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<int> AcceptAppointmentDeliver(int KeiId)
+        {
+            if (!(KeiId > 0))
+                throw Oops.Oh("Keyid涓嶈兘涓虹┖");
+
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var data = await _client.Queryable<OA_DeliverTixing>().Where(x => x.Keyid == KeiId && x.FirmId == _oAServices.firmId).FirstAsync();
+            if (data == null)
+                throw Oops.Oh("娌℃壘鍒版暟鎹�");
+            if (data.Chulistatus != AppointmentDeliverState.unAccept)
+                throw Oops.Oh("璁㈠崟宸插鐞�");
+
+            data.Chulistatus = AppointmentDeliverState.Accept;
+            data.LastUpdateTime = DateTime.Now;
+            data.Updater = Permissions.MemberId;
+            return await _client.Updateable(data).ExecuteCommandAsync();
+
+
+
+
+        }
+
+        /// <summary>
+        /// 鍒涘缓閰嶉�佸崟
+        /// </summary>
+        /// <param name="Param"> 鍙渶瑕佷紶閫�</param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<int> CreatDeliverPlan(OA_DeliverPlan Param)
+        {
+            OA_CarManage car = null;
+            if (Param.DriverId != null)
+                car = await _client.Queryable<OA_CarManage>().Where(x => x.StaffID == Param.DriverId && x.MemberID == _oAServices.firmId).FirstAsync();
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            OA_CorporateClients cor = null;
+            if (Param.BuyerId != null)
+                cor = await _client.Queryable<OA_CorporateClients>().Where(x => x.Keyid == Param.BuyerId).FirstAsync();
+            OA_DeliverPlan DeliverPlan = new OA_DeliverPlan()
+            {
+                Keyid = Guid.NewGuid(),
+                FirmId = _oAServices.firmId,
+                BuyerId = Param.BuyerId ?? Guid.Empty,
+                DeliverTime = Param.DeliverTime,
+                CarId = car == null ? 0 : car.Keyid,
+                Wentifankui = "",
+                Xingzhengzhuize = "",
+                Yichangchuli = "",
+                Zhuyishixiang = "",
+                Gongzuokaoping = "",
+
+
+                Transferstatus = 1,
+                Sort = 1,
+                Creater = Param.Creater ?? Permissions.MemberId,
+                CreateTime = DateTime.Now,
+                DriverId = Param.DriverId,
+                SellerOrderId = await CreatDeliverPlanSn(),
+                Dianhua = Param.Dianhua,
+                Dizhi = Param.Dizhi,
+                Remark = Param.Remark,
+                BusinessManagerId = cor == null ? 0 : cor.BusinessManagerId,
+                Biddingcompany = cor == null ? 0 : (cor.Biddingcompany ?? 0),
+                ShifouDelivery = 1,
+                Lianxiren = Param.Lianxiren,
+                Deliveredstatus = (int)DeliveredType.Undeliver,
+                CompanyName = Param.CompanyName,
+            }; return await _client.Insertable(DeliverPlan).ExecuteCommandAsync();
+        }
+
+
+
+        /// <summary>
+        /// 鑾峰彇閫佽揣鍗�
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<DeliverOderPageRet> GetDeliverPlans(DeliverPlanSearchParam Param)
+        {
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            Expression<Func<OA_DeliverPlan, bool>> SearchList = (x) => true;
+            SearchList = SearchList.And(x => x.FirmId == _oAServices.firmId);
+            //SearchList = SearchList.And(x => x.Creater == Permissions.MemberId);//鍙湅鑷繁
+            SearchList = SearchList.And(x => x.ShifouDelivery != 2);//杩囨护鏈夋晥
+            if (Param.DeliverKeyID != null)
+            {
+                SearchList = SearchList.And(x => x.DriverId == Param.DeliverKeyID);
+            }
+            //瀹㈡埛鍚嶇О
+            if (!string.IsNullOrEmpty(Param.CorporateClient))
+            {
+                SearchList = SearchList.And(x => x.CompanyName.Contains(Param.CorporateClient));
+            }
+            if (Param.TimeStart != null)
+            {
+                SearchList = SearchList.And(x => x.DeliverTime > Param.TimeStart);
+            }
+            if (Param.TimeEnd != null)
+            {
+                SearchList = SearchList.And(x => x.DeliverTime < Param.TimeEnd.Value.AddDays(1));
+            }
+            if (Param.DeliveredState != null)
+            {
+                if (Param.DeliveredState != DeliveredType.Delivered)
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus != DeliveredType.Delivered);
+                }
+                else
+                {
+                    SearchList = SearchList.And(x => x.Deliveredstatus == DeliveredType.Delivered);
+                }
+            }
+
+            //寮哄埗澧炲姞鍛樺伐杩囨护
+            RefAsync<int> totle = 0;
+            var data = await _client.Queryable<OA_DeliverPlan>().Includes(x => x.Driver).Includes(x => x.SentStaff)
+                .Where(SearchList).OrderBy(x => x.Dizhi).OrderBy(x => x.Sort).ToPageListAsync(Param.page.PageIndex, Param.page.PageSize, totle);
+
+            Param.page.TotalCount = totle;
+            return new DeliverOderPageRet
+
+            {
+                Data = data,
+                page = Param.page,
+
+            };
+
+
+        }
+
+        /// <summary>
+        /// 淇敼璁㈠崟
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<bool> UpDataDeliverPlans(OA_DeliverPlan Param)
+        {
+
+            if (Param.Keyid == null)
+                throw Oops.Oh("ID閿欒");
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            var data = await _client.Queryable<OA_DeliverPlan>().Where(x => x.ShifouDelivery != 2 && x.Keyid == Param.Keyid).FirstAsync();
+            data.LastUpdateTime = DateTime.Now;
+            data.Updater = Permissions.MemberId;
+            if (data.DriverId != Param.DriverId)
+            {
+                data.DriverId = Param.DriverId;
+                var car = await _client.Queryable<OA_CarManage>().Where(x => x.StaffID == Param.DriverId && x.MemberID == _oAServices.firmId).FirstAsync();
+                data.CarId = car == null ? 0 : car.Keyid;
+            }
+
+            data.DeliverTime = Param.DeliverTime;
+            data.Remark = Param.Remark;
+
+            data.CompanyName = Param.CompanyName;
+            data.Dizhi = Param.Dizhi;
+            data.Lianxiren = Param.Lianxiren;
+            data.Dianhua = Param.Dianhua;
+            data.Sort = Param.Sort;
+            if (Param.Attachments != null)
+                foreach (var item in Param.Attachments)
+                {
+                    if (item.Keyid > 0)
+                    {
+
+                    }
+                    else
+                    {
+                        item.OA_Id = data.Keyid;
+                        item.CreateTime = DateTime.Now;
+                        item.Operator = Permissions.Name;
+                    }
+                }
+            data.Attachments = Param.Attachments;
+
+            return await _client.UpdateNav(data).Include(x => x.Attachments, new UpdateNavOptions()
+            {
+                OneToManyInsertOrUpdate = true,
+            }).ExecuteCommandAsync();
+
+
+
+        }
+
+
+        /// <summary>
+        /// 淇敼璁㈠崟
+        /// </summary>
+        /// <param name="Param"></param>
+        /// <returns></returns>
+        public async Task<bool> SortDeliverPlans(SortPlanIn Param)
+        {
+
+
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+
+            var Active = await _client.Queryable<OA_DeliverPlan>().Where(x => x.Keyid == Param.ActiveKeyId).FirstAsync();
+            if (Active == null)
+                throw Oops.Oh("褰撳墠鏃犳硶鎺掑簭");
+
+            var ActiveList = await _client.Queryable<OA_DeliverPlan>().Where(x => x.CreateTime < Active.CreateTime.Value.AddDays(1).Date && x.CreateTime > Active.CreateTime.Value.Date).ToListAsync();
+
+            return true;
+
+
+        }
+
+        /// <summary>
+        /// 鑾峰彇閫佽揣鍗曡鎯�
+        /// </summary>
+        /// <param name="KeyId"></param>
+        /// <returns></returns>
+        public async Task<OA_DeliverPlan> GetDeliverPlanInfo(Guid KeyId)
+        {
+
+            if (!await CheckRols())
+            {
+                throw Oops.Oh("娌℃湁鏉冮檺");
+            }
+            return await _client.Queryable<OA_DeliverPlan>().Includes(x => x.SentStaff).Includes(x => x.Attachments).Includes(x => x.Driver).Includes(x => x.Manager)
+                .Where(x => x.Keyid == KeyId && x.ShifouDelivery != 2).FirstAsync();
+
+        }
+        /// <summary>
+        /// 鍒ゆ柇鏄惁鍏锋湁鏉冮檺
+        /// </summary>
+        /// <returns></returns>
+        private async Task<bool> CheckRols()
+        {
+            var pr = await _oAServices.GetOAPermissions();
+            Permissions = pr;
+            if (pr != null && pr.MemberId != null)
+            {
+                if (pr.BF_IsDeliverManage == true)
+
+
+                    return true;
+                else
+                    return false;
+
+            }
+            else
+                return false;
+        }
+
+        /// <summary>
+        /// 鐢熸垚sn鍙�
+        /// </summary>
+        /// <returns></returns>
+        private async Task<string> CreatDeliverPlanSn()
+        {
+            // var sn = await _client.Queryable<OA_DeliverPlan>().Where(x => x.CreateTime >= DateTime.Now.Date && x.CreateTime < DateTime.Now.AddDays(1).Date).OrderByDescending(x => x.SellerOrderId).Select(x => x.SellerOrderId).FirstAsync();
+
+            var sn = await _client.Queryable<OA_DeliverPlan>().Where(x => x.CreateTime.Value.Date == DateTime.Now.Date).OrderByDescending(x => x.SellerOrderId).Select(x => x.SellerOrderId).FirstAsync();
+            if (sn != null)
+            {
+                try
+                {
+                    var datasn = sn.Length > 3
+    ? sn.Substring(sn.Length - 3)
+    : sn; ;
+                    int data = datasn.toInt();
+                    data += 1;
+                    var str = DateTime.Now.ToString("yyyyMMdd");
+                    return DateTime.Now.ToString("yyyyMMdd") + data.ToString("D3");
+                }
+                catch (Exception)
+                {
+
+                    return DateTime.Now.ToString("yyyyMMdd") + 1.ToString("D3");
+                }
+
+            }
+
+            return DateTime.Now.ToString("yyyymmdd") + 1.ToString("D3");
+        }
+
+    }
+    public class ApoointmentDeliverSearchParam
+    {
+        /// <summary>
+        /// 璧峰鏃堕棿
+        /// </summary>
+        public DateTime? TimeStart { get; set; }
+        /// <summary>
+        /// 缁撴潫鏃堕棿
+        /// </summary>
+        public DateTime? TimeEnd { get; set; }
+
+        /// <summary>
+        /// 鍐呭
+        /// </summary>
+        public string Content { get; set; }
+
+        /// <summary>
+        /// 鍛樺伐ID
+        /// </summary>
+        public Guid? MemberId { get; set; }
+
+        /// <summary>
+        /// 鍙楃悊鐘舵��
+        /// </summary>
+        public AppointmentDeliverState? DeliverState { get; set; }
+
+        /// <summary>
+        /// 椤甸潰鍙傛暟
+        /// </summary>
+        public PageModel page { get; set; }
+    }
+
+
+    public class DeliverPlanSearchParam
+    {
+
+        /// <summary>
+        /// 璧峰鏃堕棿
+        /// </summary>
+        public DateTime? TimeStart { get; set; }
+        /// <summary>
+        /// 缁撴潫鏃堕棿
+        /// </summary>
+        public DateTime? TimeEnd { get; set; }
+
+        /// <summary>
+        /// 鍙告満KeyID
+        /// </summary>
+        public int? DeliverKeyID { get; set; }
+
+
+        /// <summary>
+        /// 瀹㈡埛鍚嶇О
+        /// </summary>
+        public string CorporateClient { get; set; }
+
+        /// <summary>
+        /// 閰嶉�佺姸鎬�
+        /// </summary>
+        public DeliveredType? DeliveredState { get; set; }
+        /// <summary>
+        /// 椤甸潰鍙傛暟
+        /// </summary>
+        public PageModel page { get; set; }
+    }
+
+    /// <summary>
+    /// 鎷栧姩鏃舵渶鍚庡彉閲�
+    /// </summary>
+    public class SortPlanIn()
+    {
+        /// <summary>
+        /// 鎷栧姩鐨凨eyID
+        /// </summary>
+        public Guid ActiveKeyId { get; set; }
+
+
+        /// <summary>
+        /// 涓嬩竴灞傜殑椤圭殑KeyID
+        /// </summary>
+        public Guid LowerKeyId { get; set; }
+
+
+        /// <summary>
+        /// 涓婁竴灞傜殑閭诲眳鐨凨eyId
+        /// </summary>
+        public Guid SuperiorKeyId { get; set; }
+        /// <summary>
+        /// 鎷栧姩鏂瑰悜
+        /// </summary>
+        public DirectionalType Directional { get; set; }
+
+    }
+
+    public enum DirectionalType
+    {
+        /// <summary>
+        /// 鍚戜笂鎷栧姩
+        /// </summary>
+        Up,
+        /// <summary>
+        /// 鍚戜笅鎷栧姩
+        /// </summary>
+        Down,
+    }
+}
diff --git a/cylsg/cylsg.Application/applicationsettings.json b/cylsg/cylsg.Application/applicationsettings.json
index d20414e..76f0dec 100644
--- a/cylsg/cylsg.Application/applicationsettings.json
+++ b/cylsg/cylsg.Application/applicationsettings.json
@@ -18,6 +18,22 @@
           "Name": "Apache-2.0"
 
         }
+      },
+      {
+        "Group": "CYOA",
+        "Title": "宸濆嵃OA",
+        "Description": "宸濆嵃OA",
+        "Version": "1.0.0",
+        "Order": 10,
+        "Contact": {
+          "Name": "",
+
+          "Email": "monksoul@outlook.com"
+        },
+        "License": {
+          "Name": "Apache-2.0"
+
+        }
       }
     ]
   },
diff --git a/cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs b/cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs
new file mode 100644
index 0000000..01646a0
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/EC_DriverRecord.cs
@@ -0,0 +1,111 @@
+锘縰sing Models;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace cylsg.Model.ECTEModel
+{
+    /// <summary>
+    /// 宸濆嵃鍙告満鎵撳崱绫�
+    /// </summary>
+    public  class OA_DriverRecord
+    {
+        /// <summary>
+        /// id   Key
+        /// </summary>
+        
+        public Guid? Id { get; set; }
+        /// <summary>
+        /// 閲岀▼琛� 鍏噷
+        /// </summary>
+        public int Mileage { get; set; } = 0;
+
+
+        /// <summary>
+        /// 杞﹀喌
+        /// </summary>
+        public string? CarCondition { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        public string? Remark { get; set; }
+
+        /// <summary>
+        /// 鏈璐ф儏鍐�
+        /// </summary>
+        public string ? EmptyCause { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreatTime { get; set; }
+
+        /// <summary>
+        ///  鍒涘缓浜虹殑memberId
+        /// </summary>
+        public  Guid?  CreaterID { get; set; }
+
+        /// <summary>
+        /// 杞﹁締ID
+        /// </summary>
+        public  int CarID { get; set; }
+        /// <summary>
+        /// 鍒涘缓浜哄璞�
+        /// </summary>
+        public OaStaff? Staff { get; set; }
+
+        /// <summary>
+        /// 杞﹁締
+        /// </summary>
+        
+        public OA_CarManage Car { get; set; }
+        /// <summary>
+        ///  鍒涘缓浜�
+        /// </summary>
+        public string? Creater { get; set; }
+
+
+        /// <summary>
+        /// 闄勪欢鍒楄〃  4
+        /// </summary>
+        [Navigate(NavigateType.OneToMany,  nameof(OA_attachment.OA_Id), nameof(Id), "AttachmentType=4")]
+        public List<OA_attachment> Attachments { get; set; }
+
+        /// <summary>
+        /// 杞﹁締妫�娴嬬収鐗囧垪琛�  5
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(OA_attachment.OA_Id), nameof(Id), "AttachmentType=5")]
+        public List<OA_attachment> CarConditionAttachments { get; set; }
+
+
+        /// <summary>
+        /// 鎵撳崱绫诲瀷
+        /// </summary>
+        public DriverClockType ClockType { get; set; } = DriverClockType.Unknown;
+
+
+    }
+    /// <summary>
+    /// 鎵撳崱绫诲瀷
+    /// </summary>
+    public enum DriverClockType
+    {
+        /// <summary>
+        /// 鏈煡绫诲瀷
+        /// </summary>
+        Unknown,
+        /// <summary>
+        /// 涓婄彮鎵撳崱
+        /// </summary>
+        ClockIn,
+        /// <summary>
+        /// 涓嬬彮鎵撳崱
+        /// </summary>
+        Clockout
+
+    }
+}
diff --git a/cylsg/cylsg.Model/ECTEModel/EC_OrderBasic.cs b/cylsg/cylsg.Model/ECTEModel/EC_OrderBasic.cs
new file mode 100644
index 0000000..ebca6d6
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/EC_OrderBasic.cs
@@ -0,0 +1,242 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 璁㈠崟涓昏〃
+    ///</summary>
+    [SugarTable("EC_OrderBasic")]
+    public class EC_OrderBasic
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:鍞竴缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true,IsIdentity = true) ]
+        public int Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍗栧璁㈠崟鍙�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SellerOrderId" ) ]
+        public string? SellerOrderId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璇环銆侀渶姹傘�佺壒浠枫�佹柊澧炪�佸鍗�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OrderTypeId" ) ]
+        public int OrderTypeId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍗板埛绫诲埆
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="PrintTypeId" ) ]
+        public int PrintTypeId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍗栧鍚嶇О
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SellerName" ) ]
+        public string? SellerName  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涔板鍚嶇О
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BuyerName" ) ]
+        public string? BuyerName  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍗颁欢鍚嶇О
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DocumentName" ) ]
+        public string? DocumentName  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:浜よ揣鏃堕棿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DeliveryTime" ) ]
+        public DateTime? DeliveryTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍏宠仈鍗栧
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SellerId" ) ]
+        public Guid SellerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍏宠仈涔板
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BuyerId" ) ]
+        public Guid BuyerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍗曚环
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="UnitPrice" ) ]
+        public decimal? UnitPrice  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:閲戦
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SumPrice" ) ]
+        public decimal SumPrice  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璁㈠崟鐘舵��
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OrderState" ) ]
+        public int OrderState  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏀粯鐘舵��
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="PayState" ) ]
+        public int PayState  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍒跺崟鏃堕棿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CreateTime" ) ]
+        public DateTime CreateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍒跺崟浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Creater" ) ]
+        public string Creater  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:鏈�鍚庝慨鏀规椂闂�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime LastUpdateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Operator" ) ]
+        public string Operator  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:澶囨敞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string? Remark  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="TheoryCompleteDate" ) ]
+        public DateTime? TheoryCompleteDate  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CompledState" ) ]
+        public bool? CompledState  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CompledTime" ) ]
+        public DateTime? CompledTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CompledOperator" ) ]
+        public string? CompledOperator  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CompledRemarks" ) ]
+        public string? CompledRemarks  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="IsDeferPay" ) ]
+        public bool? IsDeferPay  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="IsPrint" ) ]
+        public bool? IsPrint  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OutId" ) ]
+        public int? OutId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="IsPrintbiaoqian" ) ]
+        public bool? IsPrintbiaoqian  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SuodanState" ) ]
+        public bool? SuodanState  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SuodanTime" ) ]
+        public DateTime? SuodanTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SuodanOperator" ) ]
+        public string? SuodanOperator  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LiuyangStatus" ) ]
+        public int? LiuyangStatus  { get; set;  } 
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/EC_OrderExtend.cs b/cylsg/cylsg.Model/ECTEModel/EC_OrderExtend.cs
new file mode 100644
index 0000000..6e8fa3b
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/EC_OrderExtend.cs
@@ -0,0 +1,305 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 璁㈠崟鎵╁睍琛�
+    ///</summary>
+    [SugarTable("EC_OrderExtend")]
+    public class EC_OrderExtend
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:璁㈠崟鍞竴缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true) ]
+        public int Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏂囦欢缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="FileId" ) ]
+        public int? FileId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏍$鏂瑰紡缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ProofreadWayId" ) ]
+        public int? ProofreadWayId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏍$鐘舵��
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ProofreadState" ) ]
+        public int? ProofreadState  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏍$鏂囦欢
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ProofreadFileId" ) ]
+        public int? ProofreadFileId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍗板埛鏁伴噺
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="PrintNum" ) ]
+        public int? PrintNum  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:绱ф�ョ▼搴︾紪鍙�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ExigencyCaseId" ) ]
+        public int ExigencyCaseId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涓氬姟缁忕悊缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BusinessManagerId" ) ]
+        public int? BusinessManagerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛缁忕悊缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CustomerManagerId" ) ]
+        public int? CustomerManagerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛绾у埆
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CustomerLevelId" ) ]
+        public int? CustomerLevelId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鑱旂郴浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Contacts" ) ]
+        public string? Contacts  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鑱旂郴鐢佃瘽
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ContactPhone" ) ]
+        public string? ContactPhone  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涓嶅惈绋庝环銆佹櫘閫氬彂绁ㄣ�佸鍊肩◣绁�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="InvoiceId" ) ]
+        public int? InvoiceId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍓╀綑鍗板埛鏁伴噺
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SurplusPrintNum" ) ]
+        public int? SurplusPrintNum  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏈�鍚庝慨鏀规椂闂�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime? LastUpdateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Operate" ) ]
+        public string Operate  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:澶囨敞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string Remark  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BookNum" ) ]
+        public string? BookNum  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BookPrice" ) ]
+        public string? BookPrice  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="NumPerBag" ) ]
+        public string? NumPerBag  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BagNum" ) ]
+        public string? BagNum  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DelayTime" ) ]
+        public DateTime? DelayTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Productionprogress" ) ]
+        public string? Productionprogress  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="PrintPackDeliveryRequir" ) ]
+        public string? PrintPackDeliveryRequir  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Kaipiaoshenqing" ) ]
+        public int? Kaipiaoshenqing  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="KaipiaoshenqingTime" ) ]
+        public DateTime? KaipiaoshenqingTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="KaipiaoshenqingCreater" ) ]
+        public Guid? KaipiaoshenqingCreater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Quchudingdan" ) ]
+        public int? Quchudingdan  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="QuchudingdanTime" ) ]
+        public DateTime? QuchudingdanTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="QuchudingdanCreater" ) ]
+        public Guid? QuchudingdanCreater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Kehuqianshou" ) ]
+        public int? Kehuqianshou  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="KehuqianshouTime" ) ]
+        public DateTime? KehuqianshouTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="KehuqianshouCreater" ) ]
+        public Guid? KehuqianshouCreater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="KaipiaoquerenTime" ) ]
+        public DateTime? KaipiaoquerenTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="KaipiaoquerenCreater" ) ]
+        public Guid? KaipiaoquerenCreater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="shifouDelivery" ) ]
+        public int? ShifouDelivery  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DeliveryOrderId" ) ]
+        public Guid? DeliveryOrderId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="KaipiaoshenqingId" ) ]
+        public Guid? KaipiaoshenqingId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="printunit" ) ]
+        public int? Printunit  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="IsPrintfengqian" ) ]
+        public bool? IsPrintfengqian  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Duiyinghetongbianhao" ) ]
+        public string? Duiyinghetongbianhao  { get; set;  } 
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/EC_OrderLiuyang.cs b/cylsg/cylsg.Model/ECTEModel/EC_OrderLiuyang.cs
new file mode 100644
index 0000000..f9e279b
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/EC_OrderLiuyang.cs
@@ -0,0 +1,81 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 
+    ///</summary>
+    [SugarTable("EC_OrderLiuyang")]
+    public class EC_OrderLiuyang
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true) ]
+        public Guid Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璁㈠崟id
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="orderid" ) ]
+        public int Orderid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏂囦欢鍚�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="FileName" ) ]
+        public string? FileName  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏂囦欢璺緞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="FilePath" ) ]
+        public string? FilePath  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:澶囨敞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string? Remark  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Creater" ) ]
+        public Guid? Creater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CreateTime" ) ]
+        public DateTime? CreateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Updater" ) ]
+        public Guid? Updater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime? LastUpdateTime  { get; set;  } 
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/EC_OrderOperate.cs b/cylsg/cylsg.Model/ECTEModel/EC_OrderOperate.cs
new file mode 100644
index 0000000..d161410
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/EC_OrderOperate.cs
@@ -0,0 +1,60 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 瀹屽伐銆侀�佽揣銆佹牎绋裤�佹墦鍗般�佷笅杞姐�佸彈鐞嗐�佺敓浜�
+    ///</summary>
+    [SugarTable("EC_OrderOperate")]
+    public class EC_OrderOperate
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true,IsIdentity = true) ]
+        public int Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔璁㈠崟
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OrderId" ) ]
+        public int OrderId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔绫诲瀷
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OperateType" ) ]
+        public int OperateType  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏈�鍚庝慨鏀规椂闂�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime LastUpdateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Operator" ) ]
+        public string? Operator  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:澶囨敞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string? Remark  { get; set;  } 
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/EC_OrderPrintParameter.cs b/cylsg/cylsg.Model/ECTEModel/EC_OrderPrintParameter.cs
new file mode 100644
index 0000000..5d34c94
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/EC_OrderPrintParameter.cs
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 璁㈠崟鍗板埛鍙傛暟琛�
+    ///</summary>
+    [SugarTable("EC_OrderPrintParameter")]
+    public class EC_OrderPrintParameter
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:璁㈠崟鍞竴缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OrderId" ) ]
+        public int OrderId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍗板埛鍙傛暟
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="PrintParameter" ) ]
+        public string PrintParameter  { get; set;  } = null!;
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/OA_CarManage.cs b/cylsg/cylsg.Model/ECTEModel/OA_CarManage.cs
new file mode 100644
index 0000000..8abaeba
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/OA_CarManage.cs
@@ -0,0 +1,130 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 杞﹁締绠$悊
+    ///</summary>
+    [SugarTable("OA_CarManage")]
+    public class OA_CarManage
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:涓婚敭--鏍囪瘑ID
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true,IsIdentity = true) ]
+        public int Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:浼氬憳ID
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="MemberID" ) ]
+        public Guid? MemberID  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:杞︾墝鍙�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CarNumber" ) ]
+        public string? CarNumber  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:杞﹁締绫诲瀷
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CarType" ) ]
+        public string? CarType  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璧峰閲岀▼
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="StartMileage" ) ]
+        public int? StartMileage  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:褰撳墠閲岀▼
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="NowMileage" ) ]
+        public int? NowMileage  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:杞﹁締鐘跺喌
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CarCondition" ) ]
+        public int? CarCondition  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔鏃堕棿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime? LastUpdateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏇存柊浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Operator" ) ]
+        public string? Operator  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎺掑簭
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OrderNum" ) ]
+        public int? OrderNum  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="StaffID" ) ]
+        public int? StaffID  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="InsuranceCompany" ) ]
+        public string? InsuranceCompany  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="InsuranceEndTime" ) ]
+        public DateTime? InsuranceEndTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="MaintenanceNextTime" ) ]
+        public DateTime? MaintenanceNextTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ExaminedNextTime" ) ]
+        public DateTime? ExaminedNextTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="InsuranceContent" ) ]
+        public string? InsuranceContent  { get; set;  } 
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/OA_CorporateClients.cs b/cylsg/cylsg.Model/ECTEModel/OA_CorporateClients.cs
new file mode 100644
index 0000000..426ac4f
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/OA_CorporateClients.cs
@@ -0,0 +1,361 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 鍔炲叕绯荤粺鍚堜綔瀹㈡埛
+    ///</summary>
+    [SugarTable("OA_CorporateClients")]
+    public class OA_CorporateClients
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:鏁版嵁缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true) ]
+        public Guid Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍏宠仈鍘傚晢
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="FirmId" ) ]
+        public Guid FirmId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CustomerId" ) ]
+        public int? CustomerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍏徃鍏ㄧО
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CompanyName" ) ]
+        public string? CompanyName  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛琛屼笟缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CustomerIndustriesId" ) ]
+        public int? CustomerIndustriesId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛绫诲瀷缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CustomerTypeId" ) ]
+        public int? CustomerTypeId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:淇℃伅鏉ユ簮缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SourcesInfoId" ) ]
+        public int? SourcesInfoId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:閲嶈绋嬪害缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DegreeImportanId" ) ]
+        public int? DegreeImportanId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛缁忕悊缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="AccountManagerId" ) ]
+        public int? AccountManagerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涓氬姟缁忕悊缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BusinessManagerId" ) ]
+        public int? BusinessManagerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:寤虹珛鏃堕棿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CreateTime" ) ]
+        public DateTime? CreateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:淇¤獕缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CreditId" ) ]
+        public int? CreditId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鐧诲綍鎵嬫満
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LoginPhone" ) ]
+        public string? LoginPhone  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:浼佷笟缃戠珯
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CorporateWebsite" ) ]
+        public string? CorporateWebsite  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涓氬姟鍒嗘瀽閲忕紪鍙�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BusinessAnalysisId" ) ]
+        public int? BusinessAnalysisId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎺堜俊棰濆害
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Credit" ) ]
+        public decimal? Credit  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍏佽鐧诲綍浼佷笟缃戠珯
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="IsLoginCorporateWeb" ) ]
+        public bool? IsLoginCorporateWeb  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:寮�鎴疯
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Bank" ) ]
+        public string? Bank  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:绋庡彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="TaxID" ) ]
+        public string? TaxID  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璐﹀彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="AccountID" ) ]
+        public string? AccountID  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涓嬪崟鏁伴噺
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OrderCount" ) ]
+        public int? OrderCount  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涓嬪崟浜у��
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OrderMoney" ) ]
+        public decimal? OrderMoney  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏈�鍚庝笅鍗曟椂闂�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastOrderTime" ) ]
+        public DateTime? LastOrderTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:棰勪粯娆�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Prepayments" ) ]
+        public decimal? Prepayments  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏄惁澶栧崗
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="IsOutsourcing" ) ]
+        public bool? IsOutsourcing  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:澶栧崗鍘傚晢鍚嶇О
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OutVendorName" ) ]
+        public string? OutVendorName  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:浼樺厛绾�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="IsPriority" ) ]
+        public bool? IsPriority  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:绱棰勪粯娆�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CumulativePrepayments" ) ]
+        public decimal? CumulativePrepayments  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏈�鍚庝慨鏀规椂闂�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime? LastUpdateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Operator" ) ]
+        public string? Operator  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:澶囨敞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string? Remark  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璇环缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="InquiryId" ) ]
+        public Guid? InquiryId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛浼氬憳缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="MemberId" ) ]
+        public Guid? MemberId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LoginPwd" ) ]
+        public string? LoginPwd  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OutRate" ) ]
+        public double? OutRate  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Paytime" ) ]
+        public int? Paytime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Paydays" ) ]
+        public int? Paydays  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Biddingcompany" ) ]
+        public int? Biddingcompany  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Contracttype" ) ]
+        public int? Contracttype  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Contractmoney" ) ]
+        public decimal? Contractmoney  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ExpireTime" ) ]
+        public DateTime? ExpireTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Jigoudaima" ) ]
+        public string? Jigoudaima  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Piaoju" ) ]
+        public int? Piaoju  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Expiretype" ) ]
+        public int? Expiretype  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�: 鏄惁瀹岀粨
+        /// 榛樿鍊�: 1瀹岀粨  2鏈畬缁�    鍙涓嶆槸1 閮芥槸鏈夋晥
+        ///</summary>
+        [SugarColumn(ColumnName="Shifouwanjie" ) ]
+        public int? Shifouwanjie  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Note" ) ]
+        public string? Note  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Kaipiaoziliao" ) ]
+        public string? Kaipiaoziliao  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:闇�瑕佷緥琛岀淮鎶�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="NeedWiHu" ) ]
+        public bool? NeedWiHu  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:闇�瑕佽妭鍋囨棩缁存姢
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="JieJiaRiWiHu" ) ]
+        public bool? JieJiaRiWiHu  { get; set;  } 
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/OA_CustomerCommunications.cs b/cylsg/cylsg.Model/ECTEModel/OA_CustomerCommunications.cs
new file mode 100644
index 0000000..cea8782
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/OA_CustomerCommunications.cs
@@ -0,0 +1,179 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 鍔炲叕绯荤粺鍚堜綔瀹㈡埛閫氳琛�
+    ///</summary>
+    [SugarTable("OA_CustomerCommunications")]
+    public class OA_CustomerCommunications
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:鍚堜綔瀹㈡埛鍞竴缂栧彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true) ]
+        public Guid Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鐪�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Province" ) ]
+        public string Province  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:甯�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="City" ) ]
+        public string City  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:鍖�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="County" ) ]
+        public string County  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:璇︾粏鍦板潃
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DetailedAddress" ) ]
+        public string DetailedAddress  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:閭紪
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Postcode" ) ]
+        public string? Postcode  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鐢佃瘽
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CompanyPhone" ) ]
+        public string? CompanyPhone  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鐭俊
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Mobile" ) ]
+        public string? Mobile  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:email
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Email" ) ]
+        public string? Email  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:QQ
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="QQ" ) ]
+        public string? QQ  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:浼犵湡
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Fax" ) ]
+        public string? Fax  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:娉曚汉浠h〃
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LegalRepresentative" ) ]
+        public string? LegalRepresentative  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:浠h〃鎵嬫満
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LegalMobile" ) ]
+        public string? LegalMobile  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:浠h〃QQ
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LegalQQ" ) ]
+        public string? LegalQQ  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:涓氬姟缁忓姙浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BusinessManagers" ) ]
+        public string? BusinessManagers  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:缁忓姙浜烘墜鏈�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ManagersMobile" ) ]
+        public string? ManagersMobile  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:缁忓姙浜篞Q
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ManagersQQ" ) ]
+        public string? ManagersQQ  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璐㈠姟璐熻矗浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="FinancialOfficers" ) ]
+        public string? FinancialOfficers  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璐熻矗浜烘墜鏈�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OfficersMobile" ) ]
+        public string? OfficersMobile  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:璐熻矗浜篞Q
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OfficersQQ" ) ]
+        public string? OfficersQQ  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鏈�鍚庝慨鏀规椂闂�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime LastUpdateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Operator" ) ]
+        public string Operator  { get; set;  } = null!;
+     
+        /// <summary>
+        /// 澶�  娉�:澶囨敞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string? Remark  { get; set;  } 
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs b/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs
new file mode 100644
index 0000000..f8a3bbd
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/OA_DeliverPlan.cs
@@ -0,0 +1,266 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using cylsg.Model.ECTEModel;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 鍙告満閰嶉�佸崟琛�
+    ///</summary>
+    [SugarTable("OA_DeliverPlan")]
+    public class OA_DeliverPlan
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true) ]
+        public Guid? Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="FirmId" ) ]
+        public Guid? FirmId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹㈡埛id
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BuyerId" ) ]
+        public Guid? BuyerId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:瀹為檯鍒拌揪鏃堕棿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DeliveredTime" ) ]
+        public DateTime? DeliveredTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DeliverTime" ) ]
+        public DateTime? DeliverTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:娉ㄦ剰浜嬮」
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Zhuyishixiang" ) ]
+        public string? Zhuyishixiang  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:宸ヤ綔鑰冭瘎
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Gongzuokaoping" ) ]
+        public string? Gongzuokaoping  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:姹借溅id
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CarId" ) ]
+        public int? CarId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍙告満id
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="DriverId" ) ]
+        public int? DriverId  { get; set;  }
+
+        /// <summary>
+        /// 鍙告満
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(DriverId), nameof(OaStaff.Keyid))]
+        public OaStaff? Driver { get; set; }
+        /// <summary>
+        /// 澶�  娉�:绉讳氦鐘舵�� 杩愯緭鐘舵�� 2绉讳氦 1 鏈Щ浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Transferstatus" ) ]
+        public int? Transferstatus  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:绉讳氦鏃堕棿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="TransfersTime" ) ]
+        public DateTime? TransfersTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Sort" ) ]
+        public int? Sort  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Creater" ) ]
+        public Guid? Creater  { get; set;  }
+
+        /// <summary>
+        /// 鍛樺伐
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(Creater), nameof(OaStaff.MemberId))]
+        public OaStaff? SentStaff { get; set; }
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CreateTime" ) ]
+        public DateTime? CreateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Updater" ) ]
+        public Guid? Updater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime? LastUpdateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎰忚鍙嶉
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="wentifankui" ) ]
+        public string? Wentifankui  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�: 
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Yichangchuli" ) ]
+        public string? Yichangchuli  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Xingzhengzhuize" ) ]
+        public string? Xingzhengzhuize  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:閫佽揣鍗曞彿
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="SellerOrderId" ) ]
+        public string? SellerOrderId  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鐢佃瘽
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Dianhua" ) ]
+        public string? Dianhua  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍦板潃
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Dizhi" ) ]
+        public string? Dizhi  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string? Remark  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="BusinessManagerId" ) ]
+        public int? BusinessManagerId  { get; set;  }
+        /// <summary>
+        /// 瀹㈡埛缁忕悊
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(BusinessManagerId), nameof(OaStaff.Keyid))]
+        public OaStaff? Manager { get; set; }
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Biddingcompany" ) ]
+        public int? Biddingcompany  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:  2蹇界暐
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="shifouDelivery" ) ]
+        public int? ShifouDelivery  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鑱旂郴浜�
+        /// 榛樿鍊�: 
+        ///</summary>
+        [SugarColumn(ColumnName="Lianxiren" ) ]
+        public string? Lianxiren  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�: 鏂板鐨勶紝涓嶅叧鑱斿叕鍙�
+        ///</summary>
+        [SugarColumn(ColumnName="CompanyName" ) ]
+        public string? CompanyName  { get; set;  }
+
+
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�: 鏂板鐨勶紝涓嶅叧鑱斿叕鍙�
+        ///</summary>
+
+        public DeliveredType? Deliveredstatus { get; set; } = DeliveredType.Undeliver;
+
+        /// <summary>
+        /// 闄勪欢鍒楄〃  3
+        /// </summary>
+        [Navigate(NavigateType.OneToMany,  nameof(OA_attachment.OA_Id), nameof(Keyid), "AttachmentType=3")]
+        public  List<OA_attachment> Attachments { get; set; }
+
+    }
+    /// <summary>
+    /// 閫佽揪鐘舵��
+    /// </summary>
+    public enum DeliveredType
+    {
+        /// <summary>
+        /// 鏈厤閫�
+        /// </summary>
+        Undeliver = 0,
+        /// <summary>
+        /// 閫佽揣涓�
+        /// </summary>
+        Deliver =1,
+        /// <summary>
+        /// 閫佽揪
+        /// </summary>
+        Delivered =2,
+        /// <summary>
+        ///  鎷掓敹
+        /// </summary>
+        Reject = 3
+       
+
+    }
+
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs b/cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs
new file mode 100644
index 0000000..1e9a2a9
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/OA_DeliverTixing.cs
@@ -0,0 +1,109 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using cylsg.Model.ECTEModel;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 棰勭害鎻愰啋
+    ///</summary>
+    [SugarTable("OA_DeliverTixing")]
+    public class OA_DeliverTixing
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true,IsIdentity = true) ]
+        public int? Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="FirmId" ) ]
+        public Guid? FirmId  { get; set;  }
+        /// <summary>
+        /// 鍛樺伐
+        /// </summary>
+        [Navigate(NavigateType.OneToOne, nameof(FirmId), nameof(OaStaff.MemberId))]
+        public OaStaff? SentStaff { get; set; }
+
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Remark" ) ]
+        public string? Remark  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Chulistatus" ) ]
+        public AppointmentDeliverState? Chulistatus  { get; set;  } = AppointmentDeliverState.unAccept;
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ChuliRen" ) ]
+        public Guid? ChuliRen  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="ChuliTime" ) ]
+        public DateTime? ChuliTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Creater" ) ]
+        public Guid? Creater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CreateTime" ) ]
+        public DateTime? CreateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Updater" ) ]
+        public Guid? Updater  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="LastUpdateTime" ) ]
+        public DateTime? LastUpdateTime  { get; set;  } 
+    
+
+    }
+    /// <summary>
+    /// 棰勭害娑堟伅鐘舵��
+    /// </summary>
+    public enum AppointmentDeliverState
+    {
+        /// <summary>
+        /// 鏈彈鐞�
+        /// </summary>
+        unAccept,
+        /// <summary>
+        /// 鍙楃悊
+        /// </summary>
+        Accept=2
+    }
+       
+
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/OA_attachment.cs b/cylsg/cylsg.Model/ECTEModel/OA_attachment.cs
new file mode 100644
index 0000000..d8c55e6
--- /dev/null
+++ b/cylsg/cylsg.Model/ECTEModel/OA_attachment.cs
@@ -0,0 +1,74 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using SqlSugar;
+namespace Models
+{
+    /// <summary>
+    /// 閫氱敤闄勪欢
+    ///</summary>
+    [SugarTable("OA_attachment")]
+    public class OA_attachment
+    {
+        
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Keyid" ,IsPrimaryKey = true,IsIdentity = true) ]
+        public int Keyid  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="OA_Id" ) ]
+        public Guid? OA_Id  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�: 瀹屾暣璺緞
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="PlanAttachment" ) ]
+        public string? PlanAttachment  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:  3
+        ///</summary>
+        [SugarColumn(ColumnName="AttachmentType" ) ]
+        public int? AttachmentType  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�: 鏂囦欢鍚�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="AttachmentName" ) ]
+        public string? AttachmentName  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鍚庣紑鍚�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="AttachmentHouzhui" ) ]
+        public string? AttachmentHouzhui  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="CreateTime" ) ]
+        public DateTime CreateTime  { get; set;  } 
+     
+        /// <summary>
+        /// 澶�  娉�:鎿嶄綔浜�
+        /// 榛樿鍊�:
+        ///</summary>
+        [SugarColumn(ColumnName="Operator" ) ]
+        public string Operator  { get; set;  } = null!;
+    
+
+    }
+    
+}
\ No newline at end of file
diff --git a/cylsg/cylsg.Model/ECTEModel/OaWorkPlanAttachment.cs b/cylsg/cylsg.Model/ECTEModel/OaWorkPlanAttachment.cs
index 845fcfb..ced30eb 100644
--- a/cylsg/cylsg.Model/ECTEModel/OaWorkPlanAttachment.cs
+++ b/cylsg/cylsg.Model/ECTEModel/OaWorkPlanAttachment.cs
@@ -34,7 +34,7 @@
             public string? PlanAttachment { get; set; }
 
         /// <summary>
-        /// 闄勪欢绫诲瀷   1鏄彂绁� 2 鏄檮浠�
+        /// 闄勪欢绫诲瀷   1鏄彂绁� 2 鏄檮浠� 3鏄�佽揣鏉ユ簮
         /// </summary>
         [SugarColumn(ColumnName = "AttachmentType")]
             public int? AttachmentType { get; set; }

--
Gitblit v1.9.1