Browse Source

小袁电脑提交 更改

yuanrf 1 year ago
parent
commit
240f28b76d

+ 12 - 2
OASystem/OASystem.Api/Controllers/BaiduOCRController.cs

@@ -56,10 +56,10 @@ namespace OASystem.API.Controllers
                 Dictionary<int, string> dicHeader = new Dictionary<int, string>();
                 List<string> listNameStr = new List<string>() { "姓名", "Name" };
                 List<string> listSexStr = new List<string>() { "性别", "Gender" };
-                List<string> listDOBStr = new List<string>() { "D.O.B", "出生年月" };
+                List<string> listDOBStr = new List<string>() { "D.O.B", "出生年月","生日" };
                 List<string> listIdCard = new List<string>() { "身份证号码", "身份证" };
                 List<string> listOrganizationStr = new List<string>() { "工作单位", "Organization", "单位" };
-                List<string> listJobStr = new List<string>() { "职务", "Title" };
+                List<string> listJobStr = new List<string>() { "职务", "Title", "职位" };
                 List<string> listMobileStr = new List<string>() { "联系电话", "Mobile" };
                 List<string> listAgeStr = new List<string>() { "年龄", "Age" };
                 for (int i = 0; i < headerList.Count; i++)
@@ -141,6 +141,16 @@ namespace OASystem.API.Controllers
                         else if (values.Equals("DOB"))
                         {
                             client.Birthday = words;
+                            DateTime time = new DateTime();
+                            if (DateTime.TryParse(client.Birthday, out time))
+                            {
+                                client.Birthday = time.ToString("yyyy-MM-dd");
+                            }
+                            else
+                            {
+                                client.Birthday = "";
+                            }
+
                         }
                         else if (values.Equals("IdCard"))
                         {

+ 29 - 0
OASystem/OASystem.Api/Controllers/BusinessController.cs

@@ -1,8 +1,10 @@
 using Microsoft.AspNetCore.Mvc;
 using NPOI.SS.Formula.Functions;
+using OASystem.API.OAMethodLib;
 using OASystem.API.OAMethodLib.ALiYun;
 using OASystem.API.OAMethodLib.ExcelOutput;
 using OASystem.Domain.Common;
+using OASystem.Domain.Dtos.Baidu;
 using OASystem.Domain.Dtos.Business;
 using OASystem.Domain.Dtos.FileDto;
 using OASystem.Domain.Dtos.Financial;
@@ -659,5 +661,32 @@ Where c.ConfListId = {0}", ConfId);
         }
 
         #endregion
+
+        /// <summary>
+        /// 汉字转拼音
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        public IActionResult ChineseToEnFn(ChineseToEn dto)
+        {
+            var jw = JsonView(false);
+            if (string.IsNullOrWhiteSpace(dto.Text))
+            {
+                return Ok(jw);
+            }
+
+            List<string> val = new List<string>();
+            val = dto.Text.GetTotalPingYin();
+
+            if (dto.isUp)
+            {
+                val = val.Select(x => x.ToUpper()).ToList();
+            }
+
+            jw = JsonView(true, "转换成功!", val);
+
+            return Ok(jw);
+        }
     }
 }

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

@@ -353,6 +353,103 @@ namespace OASystem.API.Controllers
             }
         }
 
+        /// <summary>
+        /// 团组列表
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost]
+        public async Task<IActionResult> GetGroupListByWhere(GroupListByWhere dto)
+        {
+
+            #region  参数验证
+            if (dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
+            if (dto.PageId < 1) return Ok(JsonView(false, "页面Id为空"));
+
+            PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
+            #region 页面操作权限验证
+            pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, dto.PageId);
+
+            if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, "您没有查看权限"));
+            #endregion
+
+            #endregion
+
+            if (dto.PortType != 1 && dto.PortType != 2)
+            {
+                return Ok(JsonView(false, "查询失败!"));
+            }
+
+            string orderbyStr = "order by gdi.CreateTime Desc";
+            string sqlWhere = string.Empty;
+            if (dto.IsSure == 0) //未完成
+            {
+                sqlWhere += string.Format(@" And IsSure = 0");
+            }
+            else if (dto.IsSure == 1) //已完成
+            {
+                sqlWhere += string.Format(@" And IsSure = 1");
+            }
+
+            //团组类型
+            if (dto.TeamDid > 0)
+            {
+                sqlWhere += string.Format(@"And TeamDid = {0} ", dto.TeamDid);
+            }
+
+
+            //团组名称
+            if (!string.IsNullOrEmpty(dto.TeamName))
+            {
+                sqlWhere += string.Format(@"And TeamName Like '%{0}%'",dto.TeamName);
+            }
+
+            //客户名称
+            if (!string.IsNullOrEmpty(dto.ClientName))
+            {
+                sqlWhere += string.Format(@"And ClientName Like '%{0}%'", dto.ClientName);
+            }
+
+            //客户单位
+            if (!string.IsNullOrEmpty(dto.ClientUnit))
+            {
+                sqlWhere += string.Format(@"And ClientUnit Like '%{0}%'", dto.ClientUnit);
+            }
+
+            //出访时间
+            if (!string.IsNullOrEmpty(dto.visitDataTime))
+            {
+                sqlWhere += string.Format(@"And VisitDate >= '{0}'", dto.visitDataTime);
+                orderbyStr = "order by gdi.VisitDate";
+            }
+
+            string sql = string.Format(@"Select Row_Number,Id,SalesQuoteNo,TourCode,TeamTypeId, TeamType,
+					                              TeamLevId,TeamLev,TeamName,ClientName,ClientUnit,
+					                              VisitDate,VisitDays,VisitPNumber,JietuanOperator,IsSure,CreateTime
+					                              From (
+					                              Select row_number() over({0}) as Row_Number,
+					                              gdi.Id,SalesQuoteNo,TourCode,ssd.Id TeamTypeId, ssd.Name TeamType,
+					                              ssd1.Id TeamLevId,ssd1.Name TeamLev,TeamName,ClientName,ClientUnit,
+					                              VisitDate,VisitDays,VisitPNumber,su.CnName JietuanOperator,IsSure,gdi.CreateTime
+					                              From  Grp_DelegationInfo gdi
+					                              Inner Join Sys_SetData ssd On gdi.TeamDid = ssd.Id 
+					                              Inner Join Sys_SetData ssd1 On gdi.TeamLevSId = ssd1.Id
+					                              Left Join Sys_Users su On gdi.JietuanOperator = su.Id
+					                              Where gdi.IsDel = 0  {1}
+				                              ) temp  ", orderbyStr , sqlWhere);
+
+
+            RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
+            var _DelegationList = await _sqlSugar.SqlQueryable<DelegationListView>(sql).ToPageListAsync(dto.PageIndex, dto.PageSize, total);//ToPageAsync
+
+            var _view = new
+            {
+                PageFuncAuth = pageFunAuthView,
+                Data = _DelegationList
+            };
+
+            return Ok(JsonView(true, "查询成功!", _view, total));
+        }
+
         /// <summary>
         ///  接团信息详情
         /// </summary>
@@ -427,6 +524,74 @@ namespace OASystem.API.Controllers
             }
         }
 
+        /// <summary>
+        /// 接团流程操作(增改)
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GroupProcessOperation(GroupProcessOperationDto dto)
+        {
+            try
+            {
+
+                #region  参数验证
+                if (dto.UserId < 1) return Ok(JsonView(false, "请传入有效的UserId参数"));
+                PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
+
+                #region 页面操作权限验证
+                pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, 104);
+                if (pageFunAuthView.AddAuth == 0) return Ok(JsonView(false, "客户名单您没有添加权限!"));
+                pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(dto.UserId, 27);
+                if (pageFunAuthView.AddAuth == 0) return Ok(JsonView(false, "团组操作您没有添加权限!"));
+                #endregion
+
+                #endregion
+
+                _sqlSugar.BeginTran();
+                var _dto = new GroupOperationDto();
+                _dto = _mapper.Map<GroupProcessOperationDto, GroupOperationDto>(dto);
+                var groupData = await _groupRepository.GroupOperation(_dto);
+                if (groupData.Code != 0)
+                {
+                    return Ok(JsonView(false, "团组操作添加失败!" + groupData.Msg));
+                }
+
+                //添加时 默认加入团组汇率
+                if (dto.Status == 1)
+                {
+                    int diId = groupData.Data;
+
+                    GeneralMethod.PostGroupRateAddInit(dto.UserId, diId);
+
+                    var viewData = await _tourClientListRep._AddMultiple(new
+                         TourClientListAddMultipleDto
+                    {
+                        DiId = diId,
+                        PageId = 104,
+                        PortType = dto.PortType,
+                        UserId = dto.UserId,
+                        TourClientListInfos = dto.TourClientListInfos
+                    });
+
+                    if (viewData.Code != 0)
+                    {
+                        _sqlSugar.RollbackTran();
+                        return Ok(JsonView(false, "客户名单添加失败!"+ viewData.Msg));
+                    }
+                }
+
+                _sqlSugar.CommitTran();
+                return Ok(JsonView(true, "添加成功"));
+            }
+            catch (Exception ex)
+            {
+                _sqlSugar.RollbackTran();
+                return Ok(JsonView(false, ex.Message));
+            }
+        }
+
         /// <summary>
         /// 建团添加默认工作人员团组权限测试
         /// </summary>
@@ -7167,6 +7332,8 @@ namespace OASystem.API.Controllers
             return Ok(JsonView(true, "操作成功!", Url));
         }
 
+
+
         #endregion
     }
 }

+ 99 - 0
OASystem/OASystem.Api/OAMethodLib/GeneralMethod.cs

@@ -1,6 +1,7 @@
 using Microsoft.AspNetCore.Authentication;
 using Microsoft.AspNetCore.Authentication.Cookies;
 using Microsoft.AspNetCore.Mvc.TagHelpers;
+using Microsoft.International.Converters.PinYinConverter;
 using OASystem.API.OAMethodLib.JuHeAPI;
 using OASystem.Domain;
 using OASystem.Domain.Dtos.Financial;
@@ -479,5 +480,103 @@ namespace OASystem.API.OAMethodLib
         }
 
         #endregion
+
+
+        #region 汉字转换拼音
+        private static Dictionary<int, List<string>> GetTotalPingYinDictionary(string text)
+        {
+            var chs = text.ToCharArray();
+
+            //记录每个汉字的全拼
+            Dictionary<int, List<string>> totalPingYinList = new Dictionary<int, List<string>>();
+
+            for (int i = 0; i < chs.Length; i++)
+            {
+                var pinyinList = new List<string>();
+
+                //是否是有效的汉字
+                if (ChineseChar.IsValidChar(chs[i]))
+                {
+                    ChineseChar cc = new ChineseChar(chs[i]);
+                    pinyinList = cc.Pinyins.Where(p => !string.IsNullOrWhiteSpace(p)).ToList();
+                }
+                else
+                {
+                    pinyinList.Add(chs[i].ToString());
+                }
+
+                //去除声调,转小写
+                pinyinList = pinyinList.ConvertAll(p => Regex.Replace(p, @"\d", "").ToLower());
+
+                //去重
+                pinyinList = pinyinList.Where(p => !string.IsNullOrWhiteSpace(p)).Distinct().ToList();
+                if (pinyinList.Any())
+                {
+                    totalPingYinList[i] = pinyinList;
+                }
+            }
+
+            return totalPingYinList;
+        }
+        /// <summary>
+        /// 获取汉语拼音全拼
+        /// </summary>
+        /// <param name="text">The string.</param>
+        /// <returns></returns>
+        public static List<string> GetTotalPingYin(this string text)
+        {
+            var result = new List<string>();
+            foreach (var pys in GetTotalPingYinDictionary(text))
+            {
+                var items = pys.Value;
+                if (result.Count <= 0)
+                {
+                    result = items;
+                }
+                else
+                {
+                    //全拼循环匹配
+                    var newTotalPingYinList = new List<string>();
+                    foreach (var totalPingYin in result)
+                    {
+                        newTotalPingYinList.AddRange(items.Select(item => totalPingYin + item));
+                    }
+                    newTotalPingYinList = newTotalPingYinList.Distinct().ToList();
+                    result = newTotalPingYinList;
+                }
+            }
+            return result;
+        }
+
+        /// <summary>
+        /// 获取汉语拼音首字母
+        /// </summary>
+        /// <param name="text"></param>
+        /// <returns></returns>
+        public static List<string> GetFirstPingYin(this string text)
+        {
+            var result = new List<string>();
+            foreach (var pys in GetTotalPingYinDictionary(text))
+            {
+                var items = pys.Value;
+                if (result.Count <= 0)
+                {
+                    result = items.ConvertAll(p => p.Substring(0, 1)).Distinct().ToList();
+                }
+                else
+                {
+                    //首字母循环匹配
+                    var newFirstPingYinList = new List<string>();
+                    foreach (var firstPingYin in result)
+                    {
+                        newFirstPingYinList.AddRange(items.Select(item => firstPingYin + item.Substring(0, 1)));
+                    }
+                    newFirstPingYinList = newFirstPingYinList.Distinct().ToList();
+                    result = newFirstPingYinList;
+                }
+            }
+            return result;
+        }
+        #endregion
     }
 }

+ 1 - 0
OASystem/OASystem.Api/OASystem.API.csproj

@@ -30,6 +30,7 @@
     <PackageReference Include="BouncyCastle.NetCore" Version="1.8.8" />
     <PackageReference Include="Flurl.Http" Version="3.2.4" />
     <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.11" />
+    <PackageReference Include="PinYinConverterCore" Version="1.0.2" />
     <PackageReference Include="QRCoder" Version="1.4.1" />
     <PackageReference Include="Quartz" Version="3.6.2" />
     <PackageReference Include="QuartzUI.Extension.AspNetCore" Version="1.1.8" />

+ 1 - 0
OASystem/OASystem.Domain/AutoMappers/_baseMappingProfile.cs

@@ -86,6 +86,7 @@ namespace OASystem.Domain.AutoMappers
             CreateMap<TaskAssignmenDto, Grp_GroupsTaskAssignment>();
 
             CreateMap<Grp_DelegationInfo, ShareGroupInfoIIView>();
+            CreateMap<GroupProcessOperationDto, GroupOperationDto>();
 
             #region 机票费用录入
             CreateMap<AirTicketResOp, Grp_AirTicketReservations>();

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

@@ -294,4 +294,214 @@ namespace OASystem.Domain.Dtos.Groups
         /// </summary>
         public int GroupId { get; set; }
     }
+
+    public class GroupListByWhere : DtoBase
+    {
+
+
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int UserId { get; set; }
+
+        /// <summary>
+        /// 页面Id
+        /// </summary>
+        public int PageId { get; set; }
+
+        /// <summary>
+        /// 团组类型id
+        /// </summary>
+        public int TeamDid { get; set; }
+
+        /// <summary>
+        /// 团组状态
+        /// </summary>
+        public int IsSure { get; set; }
+
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        public string TeamName { get; set; }
+
+        /// <summary>
+        /// 客户名称
+        /// </summary>
+        public string ClientName { get; set; }
+
+        /// <summary>
+        /// 客户单位
+        /// </summary>
+        public string ClientUnit { get; set; }
+
+        /// <summary>
+        /// 出访时间
+        /// </summary>
+        public string visitDataTime { get; set; }
+
+    }
+
+    public class GroupProcessOperationDto: PortDtoBase
+    {
+        /// <summary>
+        /// 操作状态
+        /// 1 添加 
+        /// 2 修改 
+        /// 3 删除
+        /// </summary>
+        public int Status { get; set; }
+
+        /// <summary>
+        /// 团组Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 用户Id
+        /// </summary>
+        public int UserId { get; set; }
+
+        /// <summary>
+        /// 销售报价号
+        /// </summary>
+        public string SalesQuoteNo { get; set; }
+
+        ///// <summary>
+        ///// 团组号
+        ///// </summary>
+        //public string TeamNo { get; set; }
+
+        /// <summary>
+        /// 团组操作人
+        /// </summary>
+        public int JietuanOperator { get; set; }
+
+        /// <summary>
+        /// 客户级别
+        /// setData Id
+        /// </summary>
+        public int TeamLevSId { get; set; }
+
+        /// <summary>
+        /// 团组类型 
+        /// setData Id
+        /// </summary>
+        public int TeamDid { get; set; }
+
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        public string TeamName { get; set; }
+
+        /// <summary>
+        /// 客户名称
+        /// </summary>
+        public string ClientName { get; set; }
+
+        /// <summary>
+        /// 客户单位
+        /// </summary>
+        public string ClientUnit { get; set; }
+
+        /// <summary>
+        /// 出访国家
+        /// 多个国家 | 隔开 eg:韩国|日本
+        /// </summary>
+        public string VisitCountry { get; set; }
+
+        /// <summary>
+        /// 出访时间
+        /// </summary>
+        public string VisitDate { get; set; }
+
+        /// <summary>
+        /// 出访天数
+        /// </summary>
+        public int VisitDays { get; set; }
+
+        /// <summary>
+        /// 出访人数
+        /// </summary>
+        public int VisitPNumber { get; set; }
+
+        /// <summary>
+        /// 合同时间
+        /// </summary>
+        public string TontractTime { get; set; }
+
+        /// <summary>
+        /// 预付期限
+        /// </summary>
+        public int PayDay { get; set; }
+
+        /// <summary>
+        /// 支付款项(预付)
+        /// </summary>
+        public decimal PaymentMoney { get; set; }
+
+        /// <summary>
+        /// 出访目的
+        /// </summary>
+        public string VisitPurpose { get; set; }
+
+        /// <summary>
+        /// 特殊需求
+        /// </summary>
+        public string SpecialNeeds { get; set; }
+
+        /// <summary>
+        /// 其他需求
+        /// </summary>
+        public string OtherNeeds { get; set; }
+
+        /// <summary>
+        /// 出国任务审批部门名称
+        /// </summary>
+        public string CGRWSPBMMC { get; set; }
+
+        /// <summary>
+        /// 出国任务审批文号
+        /// </summary>
+        public string CGRWSPWH { get; set; }
+
+        /// <summary>
+        /// 政治审查部门名称
+        /// </summary>
+        public string ZZSCBMMC { get; set; }
+
+        /// <summary>
+        /// 政治审查部门审批文号
+        /// </summary>
+        public string ZZSCSPWH { get; set; }
+
+        /// <summary>
+        /// 手机号
+        /// </summary>
+        public string TellPhone { get; set; }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// OP提成等级
+        /// </summary>
+        public int OpRoyaltyLv { get; set; }
+        /// <summary>
+        /// 等级说明
+        /// </summary>
+        public string opRoyaltyRemark { get; set; }
+
+        /// <summary>
+        ///  公务需求
+        /// </summary>
+        public string Officialneeds { get; set; }
+
+        /// <summary>
+        /// 接团客户名单
+        /// AddMultiple Infos
+        /// </summary>
+        public List<TourClientListInfo>? TourClientListInfos { get; set; }
+    }
 }

+ 14 - 0
OASystem/OASystem.Domain/Dtos/System/ChineseToEnDto.cs

@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.System
+{
+    public class ChineseToEn
+    {
+        public string Text { get; set; }
+        public bool isUp { get; set; }
+    }
+}

+ 49 - 2
OASystem/OASystem.Domain/ViewModels/OCR/BaiduClientOCRView.cs

@@ -8,14 +8,61 @@ namespace OASystem.Domain.ViewModels.OCR
 {
     public class BaiduClientOCRView
     {
+        /// <summary>
+        /// 性别
+        /// </summary>
         public string Sex { get; set; }
-        public string Birthday { get; set; }
-        public string IDcard { get; set; }
+        /// <summary>
+        /// 生日
+        /// </summary>
+        public string Birthday { get; set; } = "-";
+        /// <summary>
+        /// 身份证
+        /// </summary>
+        public string IDcard { get; set; } = "-";
+        /// <summary>
+        /// 单位
+        /// </summary>
         public string Company { get; set; }
+        /// <summary>
+        /// 职位
+        /// </summary>
         public string Job { get; set; }
+        /// <summary>
+        /// 手机号
+        /// </summary>
         public string Phone { get; set; }
+        /// <summary>
+        /// 姓
+        /// </summary>
         public string LastName { get; set; }
+        /// <summary>
+        /// 名
+        /// </summary>
         public string Name { get; set; }
 
+        /// <summary>
+        /// 英文名
+        /// </summary>
+        public string NameSpell { get; set; }
+
+        /// <summary>
+        /// 仓位类型
+        /// </summary>
+        public int Berth { get; set; } = 460;
+
+
+        public string BerthNotes {  get; set; }
+
+        public string RoomNotes { get; set; }
+        
+        public string MealNotes { get; set; }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Notes { get; set; }
+
+
     }
 }

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

@@ -597,7 +597,6 @@ namespace OASystem.Infrastructure.Repositories.Groups
             return result;
         }
 
-
         /// <summary>
         /// 团组确认出团
         /// </summary>