Procházet zdrojové kódy

出入境费用明细

添加货币信息处理和客户资料记录相关功能

在 `GroupsController.cs` 中:
- 添加了多个引用。
- 在查询后添加了对 `Sys_SetData` 的查询,并存储结果。
- 添加了 `enterExitCostCurrencys` 变量,用于存储货币信息列表。
- 添加了 `peiceItemCurrencys` 和 `peiceItemCurrencyInfos` 列表。
- 在生成 `twoItemRemark` 字符串时,添加了汇率描述信息。

在 `MarketCustomerResourcesController.cs` 中:
- 添加了 `NewClientDataRecord` API 方法,用于下载客户资料数据的 Excel 文件。
- 修改了 `NewClientDataOperatingRrecord` 方法的参数。

在 `NewClientDataQueryDto.cs` 中:
- 添加了多个引用。
- 添加了 `NewClientDataRecordDto` 类。

在 `Crm_NewClientData.cs` 中:
- 为多个属性添加了 `ColumnDescription` 注释。

在 `NewClientDataView.cs` 中:
- 添加了 `OASystem.Domain.Enums` 的引用。
- 添加了 `NewClientDataRecordView` 类。

在 `NewClientDataRepository.cs` 中:
- 添加了 `NewClientDataRecord` 方法。
LEIYI před 3 měsíci
rodič
revize
8acdb7f470

+ 60 - 1
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -3,6 +3,7 @@ using Aspose.Words;
 using Aspose.Words.Drawing;
 using Aspose.Words.Drawing;
 using Aspose.Words.Tables;
 using Aspose.Words.Tables;
 using DiffMatchPatch;
 using DiffMatchPatch;
+using EyeSoft.Collections.Generic;
 using Microsoft.AspNetCore.SignalR;
 using Microsoft.AspNetCore.SignalR;
 using Microsoft.EntityFrameworkCore.Query.Internal;
 using Microsoft.EntityFrameworkCore.Query.Internal;
 using NPOI.HSSF.UserModel;
 using NPOI.HSSF.UserModel;
@@ -5666,6 +5667,9 @@ FROM
                 var _DayAndCosts = _sqlSugar.Queryable<Grp_DayAndCost>().Where(it => it.IsDel == 0 && it.DiId == dto.DiId).ToList();
                 var _DayAndCosts = _sqlSugar.Queryable<Grp_DayAndCost>().Where(it => it.IsDel == 0 && it.DiId == dto.DiId).ToList();
                 if (_EnterExitCosts == null) return Ok(JsonView(400, "该团组未填写出入境费用;", ""));
                 if (_EnterExitCosts == null) return Ok(JsonView(400, "该团组未填写出入境费用;", ""));
 
 
+                var currencyInit = _sqlSugar.Queryable<Sys_SetData>().Where(x => x.IsDel == 0 && x.STid == 66).ToList();
+                var enterExitCostCurrencys = (List<CurrencyInfo>?)CommonFun.GetCurrencyChinaToList(_EnterExitCosts.CurrencyRemark);
+
                 //数据源
                 //数据源
                 var dac1 = _DayAndCosts.Where(it => it.Type == 1).ToList(); //住宿费
                 var dac1 = _DayAndCosts.Where(it => it.Type == 1).ToList(); //住宿费
                 var dac2 = _DayAndCosts.Where(it => it.Type == 2).ToList(); //伙食费
                 var dac2 = _DayAndCosts.Where(it => it.Type == 2).ToList(); //伙食费
@@ -5687,6 +5691,20 @@ FROM
                     .OrderBy((x) => x.Index)
                     .OrderBy((x) => x.Index)
                     .ToList();                                               //其他款项费用
                     .ToList();                                               //其他款项费用
 
 
+                var peiceItemCurrencys = new List<string>();
+                if (_DayAndCosts.Any()) {
+                    var currencyIds =  _DayAndCosts.Select(x => x.Currency).Distinct().ToList();
+                    if (currencyIds.Any()) peiceItemCurrencys.AddRange(currencyInit.Where(x => currencyIds.Contains(x.Id)).Select(x => x.Name).ToList());
+                }
+                if (dac5.Any()) peiceItemCurrencys.AddRange(dac5.Select(x => x.CurrencyStr).Distinct().ToList());
+
+                var peiceItemCurrencyInfos= new List<CurrencyInfo>();
+                if (enterExitCostCurrencys.Any() && peiceItemCurrencys.Any())
+                {
+                    peiceItemCurrencyInfos = enterExitCostCurrencys.Where(x => peiceItemCurrencys.Contains(x.CurrencyCode)).ToList();
+                }
+
+
                 var _CurrDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0 && it.STid == 66).ToList();
                 var _CurrDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0 && it.STid == 66).ToList();
                 var _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.Id == dto.DiId).First();
                 var _DelegationInfo = _sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0 && it.Id == dto.DiId).First();
                 var DeleClientList = _sqlSugar.Queryable<Grp_TourClientList>()
                 var DeleClientList = _sqlSugar.Queryable<Grp_TourClientList>()
@@ -5811,11 +5829,23 @@ FROM
                             airPriceStr += $" {_EnterExitCosts.AirTD.ToString("#0.00")} 元/人(头等舱)";
                             airPriceStr += $" {_EnterExitCosts.AirTD.ToString("#0.00")} 元/人(头等舱)";
                         }
                         }
 
 
+                        //汇率描述
+                        string rateStr = "";
+                        if (peiceItemCurrencyInfos.Any())
+                        {
+                            rateStr = "\r\n汇率描述:";
+                            foreach (var item in peiceItemCurrencyInfos)
+                            {
+                                rateStr += $"{item.CurrencyName}({item.CurrencyCode}):{item.Rate.ToString("#0.0000")}  ";
+                            }
+                        }
+
                         string twoItemRemark = "备注:";
                         string twoItemRemark = "备注:";
                         if (!string.IsNullOrEmpty(_EnterExitCosts.TwoItemRemark))
                         if (!string.IsNullOrEmpty(_EnterExitCosts.TwoItemRemark))
                         {
                         {
                             twoItemRemark = _EnterExitCosts.TwoItemRemark;
                             twoItemRemark = _EnterExitCosts.TwoItemRemark;
                         }
                         }
+                        if (!string.IsNullOrEmpty(rateStr)) twoItemRemark += rateStr;
 
 
                         dic.Add("AirTotalStr", airTotalStr);
                         dic.Add("AirTotalStr", airTotalStr);
                         dic.Add("AirPriceStr", airPriceStr);
                         dic.Add("AirPriceStr", airPriceStr);
@@ -7737,6 +7767,8 @@ FROM
                 var countryIds = _DayAndCosts.Select(x => x.NationalTravelFeeId).ToList();
                 var countryIds = _DayAndCosts.Select(x => x.NationalTravelFeeId).ToList();
                 var nationalTravelFeeData = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(it => it.IsDel == 0 && countryIds.Contains(it.Id)).ToList();
                 var nationalTravelFeeData = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(it => it.IsDel == 0 && countryIds.Contains(it.Id)).ToList();
 
 
+                var enterExitCostCurrencys = (List<CurrencyInfo>?)CommonFun.GetCurrencyChinaToList(_EnterExitCosts.CurrencyRemark);
+
                 //数据源
                 //数据源
                 var dac1 = _DayAndCosts.Where(it => it.Type == 1).ToList(); //住宿费
                 var dac1 = _DayAndCosts.Where(it => it.Type == 1).ToList(); //住宿费
                 var dac2 = _DayAndCosts.Where(it => it.Type == 2).ToList(); //伙食费
                 var dac2 = _DayAndCosts.Where(it => it.Type == 2).ToList(); //伙食费
@@ -7759,7 +7791,21 @@ FROM
                     .ToList();                                               //其他款项费用
                     .ToList();                                               //其他款项费用
 
 
                 var _CurrDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0 && it.STid == 66).ToList();
                 var _CurrDatas = _sqlSugar.Queryable<Sys_SetData>().Where(it => it.IsDel == 0 && it.STid == 66).ToList();
-                
+
+                var peiceItemCurrencys = new List<string>();
+                if (_DayAndCosts.Any())
+                {
+                    var currencyIds = _DayAndCosts.Select(x => x.Currency).Distinct().ToList();
+                    if (currencyIds.Any()) peiceItemCurrencys.AddRange(_CurrDatas.Where(x => currencyIds.Contains(x.Id)).Select(x => x.Name).ToList());
+                }
+                if (dac5.Any()) peiceItemCurrencys.AddRange(dac5.Select(x => x.CurrencyStr).Distinct().ToList());
+
+                var peiceItemCurrencyInfos = new List<CurrencyInfo>();
+                if (enterExitCostCurrencys.Any() && peiceItemCurrencys.Any())
+                {
+                    peiceItemCurrencyInfos = enterExitCostCurrencys.Where(x => peiceItemCurrencys.Contains(x.CurrencyCode)).ToList();
+                }
+
                 var threeCodes = _sqlSugar.Queryable<Res_ThreeCode>().Where(it => it.IsDel == 0).ToList();
                 var threeCodes = _sqlSugar.Queryable<Res_ThreeCode>().Where(it => it.IsDel == 0).ToList();
                 var placeData = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(it => it.IsDel == 0).ToList();
                 var placeData = _sqlSugar.Queryable<Grp_NationalTravelFee>().Where(it => it.IsDel == 0).ToList();
                 var rateDatas = await _EnterExitCosts.CurrencyRemark.SplitExchangeRate();
                 var rateDatas = await _EnterExitCosts.CurrencyRemark.SplitExchangeRate();
@@ -7860,12 +7906,25 @@ FROM
                             airPriceStr += $" {_EnterExitCosts.AirTD.ToString("#0.00")} 元/人(头等舱)";
                             airPriceStr += $" {_EnterExitCosts.AirTD.ToString("#0.00")} 元/人(头等舱)";
                         }
                         }
 
 
+                        //汇率描述
+                        string rateStr = "";
+                        if (peiceItemCurrencyInfos.Any())
+                        {
+                            rateStr = "\r\n汇率描述:";
+                            foreach (var item in peiceItemCurrencyInfos)
+                            {
+                                rateStr += $"{item.CurrencyName}({item.CurrencyCode}):{item.Rate.ToString("#0.0000")}  ";
+                            }
+                        }
+                        
                         string twoItemRemark = "备注:";
                         string twoItemRemark = "备注:";
                         if (!string.IsNullOrEmpty(_EnterExitCosts.TwoItemRemark))
                         if (!string.IsNullOrEmpty(_EnterExitCosts.TwoItemRemark))
                         {
                         {
                             twoItemRemark = _EnterExitCosts.TwoItemRemark;
                             twoItemRemark = _EnterExitCosts.TwoItemRemark;
                         }
                         }
 
 
+                        if (!string.IsNullOrEmpty(rateStr)) twoItemRemark += rateStr;
+
                         dic.Add("AirTotalStr", airTotalStr);
                         dic.Add("AirTotalStr", airTotalStr);
                         dic.Add("AirPriceStr", airPriceStr);
                         dic.Add("AirPriceStr", airPriceStr);
                         dic.Add("CityTranffic", _EnterExitCosts.CityTranffic.ToString("#0.00"));
                         dic.Add("CityTranffic", _EnterExitCosts.CityTranffic.ToString("#0.00"));

+ 27 - 1
OASystem/OASystem.Api/Controllers/MarketCustomerResourcesController.cs

@@ -625,6 +625,32 @@ namespace OASystem.API.Controllers
 
 
         }
         }
 
 
+        /// <summary>
+        /// 客户资料数据 excel 下载
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ApiLog("Crm_NewClientData", OperationEnum.Download)]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> NewClientDataRecord(NewClientDataRecordDto dto)
+        {
+            #region 参数验证
+            if (dto.UserId < 0) return Ok(JsonView(false, MsgTips.UserId));
+            if (SharingStaticData.PortTypes.Contains(dto.PortType)) return Ok(JsonView(false, MsgTips.Port));
+            if (dto.PageId < 0) return Ok(JsonView(false, MsgTips.PageId));
+            #endregion
+
+            #region 页面操作权限验证
+            var pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
+
+            if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, "您没有查看权限!"));
+            #endregion
+
+            return Ok(JsonView(await _clientDataRepository.NewClientDataRecord(dto)));
+
+        }
+
         #region 修改数据
         #region 修改数据
         //[HttpPost]
         //[HttpPost]
         //public IActionResult SynchronizationData()
         //public IActionResult SynchronizationData()
@@ -835,7 +861,7 @@ namespace OASystem.API.Controllers
         /// <summary>
         /// <summary>
         /// 客户资料 操作记录记录查询
         /// 客户资料 操作记录记录查询
         /// </summary>
         /// </summary>
-        /// <param name="dto"></param>
+        /// <param name="userId"></param>
         /// <returns></returns>
         /// <returns></returns>
         [HttpGet]
         [HttpGet]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]

+ 14 - 0
OASystem/OASystem.Domain/Dtos/CRM/NewClientDataQueryDto.cs

@@ -1,4 +1,6 @@
 using AutoMapper.Execution;
 using AutoMapper.Execution;
+using OASystem.Domain.Dtos.System;
+using OASystem.Domain.ViewModels;
 using OASystem.Domain.ViewModels.CRM;
 using OASystem.Domain.ViewModels.CRM;
 using Org.BouncyCastle.Asn1.Ocsp;
 using Org.BouncyCastle.Asn1.Ocsp;
 using Org.BouncyCastle.Asn1.X9;
 using Org.BouncyCastle.Asn1.X9;
@@ -64,6 +66,18 @@ namespace OASystem.Domain.Dtos.CRM
         public int PageId { get; set; }
         public int PageId { get; set; }
     }
     }
 
 
+    public class NewClientDataRecordDto : UserPageFuncDtoBase
+    {
+        public int PageIndex { get; set; } = 1;
+
+        public int PageSize { get; set; } = 10;
+
+        public string OpUserName { get; set; }
+
+        public string BeginTime { get; set; }
+        public string EndTime { get; set; }
+    }
+
     public class NewClientOpDto:PortDtoBase
     public class NewClientOpDto:PortDtoBase
     {
     {
         /// <summary>
         /// <summary>

+ 13 - 13
OASystem/OASystem.Domain/Entities/Customer/Crm_NewClientData.cs

@@ -40,88 +40,88 @@ namespace OASystem.Domain.Entities.Customer
         /// <summary>
         /// <summary>
         /// 序号
         /// 序号
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        [SugarColumn(ColumnDescription = "序号", IsNullable = true, ColumnDataType = "int")]
         public int Number { get => number; set => number = value; }
         public int Number { get => number; set => number = value; }
 
 
         /// <summary>
         /// <summary>
         /// 地市州Id
         /// 地市州Id
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        [SugarColumn(ColumnDescription = "客户区域", IsNullable = true, ColumnDataType = "int")]
         public int Lvlid { get => lvlid; set => lvlid = value; }
         public int Lvlid { get => lvlid; set => lvlid = value; }
 
 
         /// <summary>
         /// <summary>
         /// 客户单位
         /// 客户单位
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "客户单位", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string Client { get => client; set => client = value; }
         public string Client { get => client; set => client = value; }
 
 
         /// <summary>
         /// <summary>
         /// 权重
         /// 权重
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(100)")]
+        [SugarColumn(ColumnDescription = "权重", IsNullable = true, ColumnDataType = "nvarchar(100)")]
         public string Weight { get => weight; set => weight = value; }
         public string Weight { get => weight; set => weight = value; }
 
 
         /// <summary>
         /// <summary>
         /// 客户单位简写
         /// 客户单位简写
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "客户单位简写", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string ClientShort { get => clientshort; set => clientshort = value; }
         public string ClientShort { get => clientshort; set => clientshort = value; }
 
 
         /// <summary>
         /// <summary>
         /// 联系人
         /// 联系人
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "联系人", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string Contact { get => contact; set => contact = value; }
         public string Contact { get => contact; set => contact = value; }
 
 
         /// <summary>
         /// <summary>
         /// 联系人性别
         /// 联系人性别
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        [SugarColumn(ColumnDescription = "性别", IsNullable = true, ColumnDataType = "int")]
         public int Gender { get => gender; set => gender = value; }
         public int Gender { get => gender; set => gender = value; }
 
 
         /// <summary>
         /// <summary>
         /// 护照
         /// 护照
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "护照", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string Passport { get => passport; set => passport = value; }
         public string Passport { get => passport; set => passport = value; }
 
 
         /// <summary>
         /// <summary>
         /// 护照日期
         /// 护照日期
         /// </summary>
         /// </summary>
-        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        [SugarColumn(ColumnDescription = "护照日期", IsNullable = true, ColumnDataType = "DateTime")]
         public DateTime? PassportDate { get => passportDate; set => passportDate = value; }
         public DateTime? PassportDate { get => passportDate; set => passportDate = value; }
 
 
         /// <summary>
         /// <summary>
         /// 职位
         /// 职位
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "职位", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string Job { get => job; set => job = value; }
         public string Job { get => job; set => job = value; }
 
 
         /// <summary>
         /// <summary>
         /// 联系手机号
         /// 联系手机号
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "手机号", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string Telephone { get => telephone; set => telephone = value; }
         public string Telephone { get => telephone; set => telephone = value; }
 
 
         /// <summary>
         /// <summary>
         /// 联系座机号
         /// 联系座机号
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "座机号", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string Phone { get => phone; set => phone = value; }
         public string Phone { get => phone; set => phone = value; }
 
 
         /// <summary>
         /// <summary>
         /// 邮件
         /// 邮件
         /// </summary>
         /// </summary>
         [Encrypted]
         [Encrypted]
-        [SugarColumn(IsNullable = true, ColumnDataType = "nvarchar(200)")]
+        [SugarColumn(ColumnDescription = "邮件", IsNullable = true, ColumnDataType = "nvarchar(200)")]
         public string Email { get => email; set => email = value; }
         public string Email { get => email; set => email = value; }
 
 
         /// <summary>
         /// <summary>

+ 33 - 0
OASystem/OASystem.Domain/ViewModels/CRM/NewClientDataView.cs

@@ -1,5 +1,6 @@
 using OASystem.Domain.Attributes;
 using OASystem.Domain.Attributes;
 using OASystem.Domain.Entities.Customer;
 using OASystem.Domain.Entities.Customer;
+using OASystem.Domain.Enums;
 using Org.BouncyCastle.Asn1.Ocsp;
 using Org.BouncyCastle.Asn1.Ocsp;
 using Org.BouncyCastle.Asn1.X9;
 using Org.BouncyCastle.Asn1.X9;
 using System;
 using System;
@@ -298,4 +299,36 @@ namespace OASystem.Domain.ViewModels.CRM
         public int DeleteNum { get; set; }
         public int DeleteNum { get; set; }
     }
     }
 
 
+
+    public class NewClientDataRecordView
+    {
+        public int RowIndex { get; set; }
+        public int Id { get; set; }
+        public int PortType { get; set; }
+        public string PortTypeLabel
+        {
+            get
+            {
+                string lable = string.Empty;
+                if (PortType == 1) lable = "WEB";
+                else if (PortType == 2) lable = "ANDROID";
+                else if (PortType == 3) lable = "IOS";
+                return lable;
+            }
+        }
+        public OperationEnum OperationItem { get; set; }
+        public string OperationItemLable
+        {
+            get
+            {
+                return OperationItem.GetEnumDescription();
+            }
+        }
+        public int CreateUserId { get; set; }
+        public string CreateUserName { get; set; }
+        public DateTime CreateTime { get; set; }
+        public string UpdatePreData { get; set; }
+        public string UpdateBefData { get; set; }
+    }
+
 }
 }

+ 52 - 3
OASystem/OASystem.Infrastructure/Repositories/CRM/NewClientDataRepository.cs

@@ -210,7 +210,6 @@ namespace OASystem.Infrastructure.Repositories.CRM
             return result;
             return result;
         }
         }
 
 
-
         /// <summary>
         /// <summary>
         /// 客户资料初识初始化
         /// 客户资料初识初始化
         /// </summary>
         /// </summary>
@@ -1400,8 +1399,6 @@ namespace OASystem.Infrastructure.Repositories.CRM
             return userArr;
             return userArr;
         }
         }
 
 
-
-
         /// <summary>
         /// <summary>
         /// 客户资料
         /// 客户资料
         /// excel download
         /// excel download
@@ -1630,5 +1627,57 @@ namespace OASystem.Infrastructure.Repositories.CRM
                 return dt;
                 return dt;
             }
             }
         }
         }
+
+        /// <summary>
+        /// 客户资料操作记录
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<JsonView> NewClientDataRecord(NewClientDataRecordDto dto)
+        {
+            var jsonView = new JsonView();
+
+            string whereSql = string.Empty;
+
+            if (!string.IsNullOrEmpty(dto.OpUserName)) whereSql += string.Format(" AND u.CnName Like '%{0}%'", dto.OpUserName);
+
+            bool beginDateBool = DateTime.TryParse(dto.BeginTime,out _),
+                 endDateBool = DateTime.TryParse(dto.EndTime,out _);
+            if (beginDateBool && endDateBool)
+            {
+                string beginLable = $"{dto.BeginTime} 00:00:00",
+                       endLable = $"{dto.EndTime} 23:59:59";
+                whereSql += string.Format(" AND tor.CreateTime BETWEEN '{0}' AND '{1}'", beginLable, endLable);
+            }
+
+            string sql = string.Format(@"SELECT
+  row_number() OVER (
+    ORDER BY
+      tor.CreateTime DESC
+  ) 'RowIndex',
+  tor.Id,
+  tor.PortType,
+  tor.OperationItem,
+  tor.CreateUserId,
+  u.CnName 'CreateUserName',
+  tor.CreateTime,
+  tor.UpdatePreData,
+  tor.UpdateBefData
+FROM
+  OA2023DB.dbo.Crm_TableOperationRecord tor
+  LEFT JOIN sys_users u On tor.CreateUserId = u.id
+Where
+  TableName = 'Crm_NewClientData'
+  {0} 
+ORDER BY
+  CreateTime DESC",whereSql);
+
+            RefAsync<int> total = 0;
+
+            var datas =_sqlSugar.SqlQueryable<dynamic>(sql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);
+
+
+            return jsonView;
+        }
     }
     }
 }
 }