瀏覽代碼

增加 团组&签证 签证客户资料等相关

leiy 1 年之前
父節點
當前提交
7c5649e2f2

+ 67 - 0
OASystem/OASystem.Api/Controllers/CRMController.cs

@@ -0,0 +1,67 @@
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using OASystem.Infrastructure.Repositories.CRM;
+
+namespace OASystem.API.Controllers
+{
+    /// <summary>
+    /// 签证客户资料相关
+    /// </summary>
+    [Route("api/[controller]/[action]")]
+    //[ApiController]
+    public class CRMController : ControllerBase
+    {
+        private readonly VisaDeleClientCompanyRepository _clientCompanyRepository;
+        private readonly VisaDeleClientRepository _clientRepository;
+
+        /// <summary>
+        /// 初始化
+        /// </summary>
+        /// <param name="clientCompanyRepository"></param>
+        /// <param name="clientRepository"></param>
+        public CRMController(VisaDeleClientCompanyRepository clientCompanyRepository, VisaDeleClientRepository clientRepository)
+        {
+            this._clientCompanyRepository = clientCompanyRepository;
+            this._clientRepository = clientRepository;
+        }
+
+        /// <summary>
+        /// 获取签证客户公司列表
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GetClientCompanyList(DtoBase dto)
+        { 
+            var clientCompanyData = await  _clientCompanyRepository.GetCrm_ClientCompanyList(dto);
+
+            if (clientCompanyData.Code != 0)
+            {
+                return Ok(JsonView(false, clientCompanyData.Msg == null ? "操作失败" : clientCompanyData.Msg));
+            }
+
+            return Ok(JsonView(clientCompanyData.Data, clientCompanyData.Data.Count));
+        }
+
+        /// <summary>
+        /// 获取签证客户列表
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GetClientList(DtoBase dto)
+        {
+            var clientData = await _clientRepository.GetCrmList(dto);
+
+            if (clientData.Code != 0)
+            {
+                return Ok(JsonView(false, clientData.Msg == null ? "操作失败" : clientData.Msg));
+            }
+
+            return Ok(JsonView(clientData.Data, clientData.Data.Count));
+        }
+
+    }
+}

+ 23 - 0
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -195,6 +195,29 @@ namespace OASystem.API.Controllers
 
             return Ok(JsonView(salesQuoteNo));
         }
+
+        /// <summary>
+        /// 获取团组名称 List
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> GetGroupNameList(GroupNameDto dto)
+        {
+            var groupData = await _groupRepository.GetGroupNameList(dto);
+            if (groupData.Code != 0)
+            {
+                return Ok(JsonView(false, groupData.Msg));
+            }
+            
+
+            return Ok(JsonView(groupData.Data, groupData.Data.Count));
+        }
+
+        #endregion
+
+        #region 团组&签证
+
         #endregion
     }
 }

+ 0 - 1
OASystem/OASystem.Api/Controllers/SystemController.cs

@@ -13,7 +13,6 @@ namespace OASystem.API.Controllers
     [Route("api/[controller]/[action]")]
     public class SystemController : ControllerBase
     {
-      
         private readonly CompanyRepository _syscomRep;
         private readonly DepartmentRepository _sysDepRep;
         private readonly UsersRepository _userRep;

+ 2 - 0
OASystem/OASystem.Api/Program.cs

@@ -6,6 +6,7 @@ using OASystem.RedisRepository.RedisAsyncHelper;
 using OASystem.RedisRepository.Config;
 using OASystem.API.OAMethodLib;
 using System.Text.Json.Serialization;
+using Microsoft.Extensions.Options;
 
 var builder = WebApplication.CreateBuilder(args);
 var basePath = AppContext.BaseDirectory;
@@ -102,6 +103,7 @@ if (AppSettingsHelper.Get("UseSwagger").ToBool())
                 }, Scheme = "oauth2", Name = "Bearer", In = ParameterLocation.Header }, new List<string>()
             }
         });
+        //a.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());
     });
 }
 #endregion

+ 15 - 0
OASystem/OASystem.Domain/Dtos/CRM/DeleClientAddDto.cs

@@ -0,0 +1,15 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.CRM
+{
+    /// <summary>
+    /// 签证客户添加
+    /// </summary>
+    public class DeleClientAddDto
+    {
+    }
+}

+ 19 - 0
OASystem/OASystem.Domain/Dtos/Groups/GroupListDto.cs

@@ -184,4 +184,23 @@ namespace OASystem.Domain.Dtos.Groups
         /// </summary>
         public int UserId { get; set; }
     }
+
+    /// <summary>
+    /// 团组名称
+    /// </summary>
+    public class GroupNameDto : DtoBase
+    {
+    }
+
+    /// <summary>
+    /// 根据团组ID获取签证人员请
+    /// 求实体类
+    /// </summary>
+    public class ClientByGroupIdDto : DtoBase
+    {
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int GroupId { get; set; }
+    }
 }

+ 13 - 5
OASystem/OASystem.Domain/Entities/Customer/Crm_CustomerCert.cs

@@ -11,7 +11,6 @@ namespace OASystem.Domain.Entities.Customer
     /// </summary>
     [SugarTable("Crm_CustomerCert")]
     public class Crm_CustomerCert:EntityBase
-
     {
         /// <summary>
         /// 客户信息表Id
@@ -33,16 +32,19 @@ namespace OASystem.Domain.Entities.Customer
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
         public string Country { get; set; }
+        
         /// <summary>
-        /// 目的地国家
+        /// 签发地区
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
-        public string TargetCountry { get; set; }
+        public string Area { get; set; }
+
         /// <summary>
-        /// 签发地区
+        /// 目的地国家
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
-        public string Area { get; set; }
+        public string TargetCountry { get; set; }
+
         /// <summary>
         /// 有效期起始时间
         /// </summary>
@@ -53,6 +55,12 @@ namespace OASystem.Domain.Entities.Customer
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
         public string ExpiryDt { get; set; }
+
+        /// <summary>
+        /// 身份证户籍地址
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string IDCardAddress { get; set; }
     }
 
 }

+ 2 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerFamily.cs

@@ -15,6 +15,8 @@ namespace OASystem.Domain.Entities.Customer
         public int DcId { get; set; }
         /// <summary>
         /// 家庭成员称谓
+        /// SetData = 40  签证客户家人称谓  读取时使用 
+        /// 存储时 存储name
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
         public string Appellation { get; set; }

+ 6 - 0
OASystem/OASystem.Domain/Entities/Customer/Crm_VisaCustomerSchool.cs

@@ -32,6 +32,12 @@ namespace OASystem.Domain.Entities.Customer
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "varchar(20)")]
         public string Teacher { get; set; }
+        /// <summary>
+        /// 学历
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)")]
+        public string Education { get; set; }
+
         /// <summary>
         /// 所学课程或专业名称
         /// </summary>

+ 2 - 2
OASystem/OASystem.Domain/Entities/Groups/Grp_DelegationJoinCustomer.cs

@@ -16,11 +16,11 @@ namespace OASystem.Domain.Entities.Groups
         /// 团组表id
         /// </summary>
         [SugarColumn(IsNullable =true,ColumnDataType ="int")]
-        public int DiId { get; set; }
+        public int GrpDCId { get; set; }
         /// <summary>
         ///客户表Id
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
-        public int DcId { get; set; }
+        public int CrmDCId { get; set; }
     }
 }

+ 54 - 0
OASystem/OASystem.Domain/ViewModels/CRM/VisaCustomerCompanyView.cs

@@ -0,0 +1,54 @@
+using OASystem.Domain.Entities.Customer;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.CRM
+{
+
+    /// <summary>
+    /// 
+    /// </summary>
+    public class VisaCustomerCompanyView : Crm_VisaCustomerCompany
+    { }
+
+
+    /// <summary>
+    /// 签证客户公司
+    /// 返回视图
+    /// </summary>
+    public class VisaCustomerCompanyListView
+    {
+        /// <summary>
+        /// ID
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string CompanyName { get; set; }
+
+        /// <summary>
+        /// 公司地址
+        /// </summary>
+        public string Address { get; set; }
+
+        /// <summary>
+        /// 公司邮编
+        /// </summary>
+        public string PostCodes { get; set; }
+
+        /// <summary>
+        /// 添加人姓名
+        /// </summary>
+        public string UserName { get; set; }
+
+        /// <summary>
+        /// 创建时间
+        /// </summary>
+        public DateTime CreateTime { get; set; }
+    }
+}

+ 95 - 0
OASystem/OASystem.Domain/ViewModels/CRM/VisaDeleClientView.cs

@@ -0,0 +1,95 @@
+using OASystem.Domain.Entities.Customer;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.CRM
+{
+    /// <summary>
+    /// 签证客户信息 View
+    /// </summary>
+    public class VisaDeleClientView: Crm_DeleClient
+    { }
+
+    /// <summary>
+    /// 签证客户信息 ListView
+    /// </summary>
+    public class VisaDeleClientListView 
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 客户姓名
+        /// </summary>
+        public string ClientName { get; set; }
+
+        /// <summary>
+        /// 所属公司
+        /// </summary>
+        public string CompanyName { get; set; }
+
+        /// <summary>
+        /// 性别 0 男  1 女
+        /// </summary>
+        public int Sex { get; set; }
+
+        /// <summary>
+        /// 婚姻状态
+        ///  0、1、2、3、4 (未设置、未婚、已婚、离异、丧偶)
+        /// </summary>
+        public int Marriage { get; set; }
+
+        /// <summary>
+        /// 客户座机
+        /// </summary>
+        public string LandlinePhone { get; set; }
+
+        /// <summary>
+        /// 客户手机号
+        /// </summary>
+        public string Tel { get; set; }
+
+        /// <summary>
+        /// 身份证号码
+        /// </summary>
+        public string IDNo { get; set; }
+
+        /// <summary>
+        /// 护照号码
+        /// </summary>
+        public string PassportNo { get; set; }
+    }
+
+    public class ClientByGroupIdView
+    {
+        /// <summary>
+        /// clientId
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 姓
+        /// </summary>
+        public string LastName { get; set; }
+
+        /// <summary>
+        /// 名称
+        /// </summary>
+        public string FirstName { get; set; }
+
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string Tel { get; set; }
+
+        /// <summary>
+        /// 身份证No
+        /// </summary>
+        public string IdNo { get; set; }
+    }
+}

+ 18 - 0
OASystem/OASystem.Domain/ViewModels/Group/DelegationInfoView.cs

@@ -230,4 +230,22 @@ namespace OASystem.Domain.ViewModels.Group
     {
         public string SalesQuoteNo { get; set; }
     }
+
+    /// <summary>
+    /// 团组名称
+    /// 返回试图
+    /// </summary>
+    public class GroupNameView
+    {
+
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        public string GroupName { get; set; }
+    }
 }

+ 54 - 0
OASystem/OASystem.Infrastructure/Repositories/CRM/VisaDeleClientCompanyRepository.cs

@@ -0,0 +1,54 @@
+using OASystem.Domain;
+using OASystem.Domain.Dtos;
+using OASystem.Domain.Dtos.UserDto;
+using OASystem.Domain.Entities.Customer;
+using OASystem.Domain.ViewModels.CRM;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.CRM
+{
+    /// <summary>
+    /// 签证客户公司
+    /// 仓库
+    /// </summary>
+    public class VisaDeleClientCompanyRepository : BaseRepository<Crm_VisaCustomerCompany, VisaCustomerCompanyView>
+    {
+        public VisaDeleClientCompanyRepository(SqlSugarClient sqlSugar) :
+            base(sqlSugar){ }
+
+        /// <summary>
+        /// 签证客户公司 List
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> GetCrm_ClientCompanyList(DtoBase dto)
+        {
+            Result result = new Result() { Code = -2 };
+
+            if (dto.PortType == 1 || dto.PortType == 2)
+            {
+                string sql = string.Format(@"Select ccc.Id,ccc.CompanyName,ccc.Address,ccc.PostCodes,su.CnName UserName,ccc.CreateTime 
+                                             From Crm_CustomerCompany ccc Inner Join Sys_Users su On ccc.CreateUserId = su.Id");
+
+                var _clientCompanyList = await _sqlSugar.SqlQueryable<VisaCustomerCompanyListView>(sql).ToListAsync();
+                if (_clientCompanyList.Count > 0)
+                {
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                    result.Data = _clientCompanyList;
+                }
+                else
+                {
+                    result.Msg = "查询失败!";
+                }
+            }
+
+            return result;
+        }
+
+    }
+}

+ 89 - 0
OASystem/OASystem.Infrastructure/Repositories/CRM/VisaDeleClientRepository.cs

@@ -0,0 +1,89 @@
+using OASystem.Domain;
+using OASystem.Domain.Dtos;
+using OASystem.Domain.Dtos.UserDto;
+using OASystem.Domain.Entities.Customer;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.ViewModels.CRM;
+using OASystem.Domain.ViewModels.Group;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.CRM
+{
+    /// <summary>
+    /// 签证客户 仓库
+    /// </summary>
+    public class VisaDeleClientRepository : BaseRepository<Crm_DeleClient, VisaDeleClientView>
+    {
+        public VisaDeleClientRepository(SqlSugarClient sqlSugar) :
+            base(sqlSugar)
+        { }
+
+        /// <summary>
+        /// 签证客户list
+        /// </summary>
+        /// <param name="loginDto"></param>
+        /// <returns></returns>
+        public async Task<Result> GetCrmList(DtoBase dto)
+        {
+            Result result = new Result() { Code = -2 };
+            if (dto.PortType == 1 || dto.PortType == 2) 
+            {
+                string sql = string.Format(@"Select cdc.Id,LastName+FirstName ClientName,ccc.CompanyName,Sex,Marriage,
+                                             	    Phone LandlinePhone,Tel,crmCard1.CertNo IDNo,crmCard2.CertNo PassportNo
+                                             From Crm_DeleClient cdc
+                                             Left Join Crm_CustomerCompany ccc On cdc.crmCompanyId = ccc.Id
+                                             Left Join Crm_CustomerCert crmCard1 On crmCard1.SdId = 773 And  cdc.Id = crmCard1.DcId 
+                                             Left Join Crm_CustomerCert crmCard2 On crmCard2.SdId = 774 And  cdc.Id = crmCard2.DcId ");
+
+
+                var clientList = await _sqlSugar.SqlQueryable<VisaDeleClientListView>(sql).ToListAsync();
+
+                if (clientList.Count > 0)
+                {
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                    result.Data = clientList;
+                }
+                else
+                {
+                    result.Msg = "暂无数据!";
+                }
+            }
+
+            return result;
+        }
+
+
+        /// <summary>
+        /// 签证客户操作
+        /// </summary>
+        /// <param name="loginDto"></param>
+        /// <returns></returns>
+        public async Task<Result> CrmClinetoperation(LoginDto loginDto)
+        {
+            Result result = new Result() { Code = -2 };
+
+            return result;
+        }
+
+        /// <summary>
+        /// 签证客户 新增
+        /// </summary>
+        /// <param name="loginDto"></param>
+        /// <returns></returns>
+        public async Task<int> CrmClinetAdd(Crm_DeleClient  client)
+        {
+            int addId = -1;
+
+            
+
+
+            return addId;
+        }
+
+    }
+}

+ 28 - 1
OASystem/OASystem.Infrastructure/Repositories/Groups/DelegationInfoRepository.cs

@@ -321,7 +321,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
             return result;
         }
 
-
         /// <summary>
         /// 团组信息操作
         /// </summary>
@@ -411,6 +410,34 @@ namespace OASystem.Infrastructure.Repositories.Groups
             return result;
         }
 
+        /// <summary>
+        /// 获取接团名称List
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> GetGroupNameList(GroupNameDto dto)
+        {
+            Result result = new Result() { Code = -2, Msg = "未知错误" };
+
+            if (dto.PortType == 1 || dto.PortType == 2) //web
+            {
+                string sql = string.Format(@"Select Id,TeamName GroupName From  Grp_DelegationInfo 
+                                             Where TeamName != '' And IsDel = 0
+                                             Order By Id Desc");
 
+                var _groupNameList = await _sqlSugar.SqlQueryable<GroupNameView>(sql).ToListAsync();
+                if (_groupNameList.Count > 0)
+                {
+                    result.Code = 0;
+                    result.Msg = "成功!";
+                    result.Data = _groupNameList;
+                }
+                else
+                {
+                    result.Msg = "暂无团组信息";
+                }
+            }
+            return result;
+        }
     }
 }

+ 2 - 4
OASystem/OASystem.Infrastructure/Repositories/Login/LoginRepository.cs

@@ -12,10 +12,8 @@ namespace OASystem.Infrastructure.Repositories.Login
 {
     public class LoginRepository : BaseRepository<Sys_Users, LoginView>
     {
-        public LoginRepository(SqlSugarClient sqlSugar) : base(sqlSugar)
-        {
-            
-        }
+        public LoginRepository(SqlSugarClient sqlSugar) : 
+            base(sqlSugar){}
 
         /// <summary>
         /// 用户登录

+ 3 - 3
OASystem/_Doc/OA2023数据字典.docx

@@ -601,7 +601,7 @@ TargetCountry
 varchar(50)
 Null
 
-目的地国家
+目的地国家(去往)
 
 Area
 varchar(50)
@@ -1412,13 +1412,13 @@ Null
                                  字段约束
                                  字段描述
                                     备注
-DiId
+GrpDCId
 Int
 Null
 
 团组表id
 
-DcId
+CrmDCId
 Int
 Null