Kaynağa Gözat

Word 地址修改
Tencent OCR 修改

leiy 1 yıl önce
ebeveyn
işleme
f9f1da4c33

+ 110 - 3
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -30,16 +30,37 @@ namespace OASystem.API.Controllers
         }
 
         #region 日付申请
+
+        /// <summary>
+        /// 获取日付申请 基础数据源
+        /// </summary>
+        /// <param name="dto"> 日付申请 分页 dto</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostPageSearchDailyPaymentPriceTypeData(DtoBase dto)
+        {
+            var result = await _daiRep.GetPagePriceTypeData(dto);
+
+            if (result == null || result.Code != 0)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+            var data = result.Data;
+
+            return Ok(JsonView(data));
+        }
+
         /// <summary>
-        /// 获取日付申请 List
+        /// 日付申请 Page Search
         /// </summary>
         /// <param name="dto"> 日付申请 分页 dto</param>
         /// <returns></returns>
         [HttpPost]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
-        public async Task<IActionResult> PostPageDailyPaymentList(PageDailyFeePaymentDto dto)
+        public async Task<IActionResult> PostPageSearchDailyPaymentList(PageDailyFeePaymentDto dto)
         {
-            var result = await _daiRep.GetPageSelectAll(dto);
+            var result = await _daiRep.GetPageSearchAll(dto);
 
             if (result == null || result.Code != 0)
             {
@@ -53,8 +74,94 @@ namespace OASystem.API.Controllers
 
             return Ok(JsonView(data.Data, Convert.ToInt32(data.Rows)));
         }
+        /// <summary>
+        /// 日付申请 Single Search By Id
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostSearchDailyPaymentInfo(SearchDailyFeePaymentDto dto)
+        {
+            var result = await _daiRep.GetSearchById(dto);
+
+            if (result == null || result.Code != 0)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+
+            return Ok(JsonView(result.Data));
+        }
+        /// <summary>
+        /// 日付申请 添加
+        /// </summary>
+        /// <param name="dto"> 日付申请 添加 dto</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostAddDailyPayment(AddDailyFeePaymentDto dto)
+        {
+            var result = await _daiRep.Add(dto);
+
+            if (result == null || result.Code != 0)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+            return Ok(JsonView(true));
+        }
+
+        /// <summary>
+        /// 日付申请 Update
+        /// </summary>
+        /// <param name="dto"> 日付申请 修改 dto</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostEditDailyPayment(EditDailyFeePaymentDto dto)
+        {
+            var result = await _daiRep.Edit(dto);
 
+            if (result == null || result.Code != 0)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+            return Ok(JsonView(true));
+        }
 
+        /// <summary>
+        /// 日付申请 Del
+        /// </summary>
+        /// <param name="dto"> 日付申请 删除 dto</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostDelDailyPayment(DelDailyFeePaymentDto dto)
+        {
+            var result = await _daiRep.Del(dto);
+
+            if (result == null || result.Code != 0)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+            return Ok(JsonView(true));
+        }
+
+        /// <summary>
+        /// 日付申请 财务审核
+        /// </summary>
+        /// <param name="dto"> dto </param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostDelDailyPaymentAudit(DP_AuditStatusDto dto)
+        {
+            var result = await _daiRep.DelDailyPaymentAudit(dto);
+            if (result == null || result.Code != 0)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+            return Ok(JsonView(true));
+        }
 
         #endregion
     }

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

@@ -849,12 +849,38 @@ namespace OASystem.API.Controllers
         #endregion
 
         #region 用户操作
+
+        /// <summary>
+        /// 查询所有员工名称
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> GetUserNameList(DtoBase dto)
+        {
+            try
+            {
+                var result = _userRep.GetUserNameList(dto.PortType);
+                if (result.Result.Code != 0)
+                {
+                    return Ok(JsonView(false, "暂无数据!"));
+
+                }
+                return Ok(JsonView(true, "查询成功!", result.Result.Data));
+            }
+            catch (Exception)
+            {
+                return Ok(JsonView(false, "程序错误!"));
+                throw;
+            }
+        }
+
         /// <summary>
         /// 查询所有员工(web)
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
-        //[OASystemAuthentication]
         [HttpPost]
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> GetUserList(DtoBase dto)

+ 54 - 28
OASystem/OASystem.Api/Controllers/TencentOCRController.cs

@@ -1,11 +1,14 @@
-using OASystem.API.OAMethodLib.File;
+using Aspose.Cells;
+using OASystem.API.OAMethodLib.File;
 //using OASystem.API.OAMethodLib.NPOI;
 using OASystem.API.OAMethodLib.TencentCloudAPI;
+using OASystem.API.OAMethodLib.YouDaoAPI;
 using OASystem.Domain.Dtos.CRM;
 using OASystem.Domain.Dtos.Tencent;
 using OASystem.Domain.ViewModels.TencentOCR;
 using OASystem.Infrastructure.Repositories.CRM;
 using Org.BouncyCastle.Crypto;
+using Org.BouncyCastle.Utilities.Encoders;
 using StackExchange.Redis;
 using System.Net.NetworkInformation;
 using TencentCloud.Ocr.V20181119.Models;
@@ -100,28 +103,42 @@ namespace OASystem.API.Controllers
                 return Ok(JsonView(idCardData.Msg));
             }
 
-            bool cerdStatus = await _visaDeleClientRepository.SetCrmUpdPassIdCardOCR(
-                new SetCrmUpdPassIdCardOCRDto
-                {
-                    UserId = dto.UserId,
-                    ClientName = idCardData.Data.Name,
-                    Sex = idCardData.Data.Sex == "男" ? 0 : 1,
-                    CerdNo = idCardData.Data.IdNum,
-                    CerdAddress = idCardData.Data.Address,
-                });
-
-            IDCardOCRAndDownUrlView iDCardOCRView = new IDCardOCRAndDownUrlView()
-            {
-                Status = cerdStatus,
-                Name = idCardData.Data.Name,
-                Sex = idCardData.Data.Sex,
-                Nation = idCardData.Data.Nation,
-                Birth = idCardData.Data.Birth,
-                Address = idCardData.Data.Address,
-                IdNum = idCardData.Data.IdNum,
-                Authority = idCardData.Data.Authority,
-                ValidDate = idCardData.Data.ValidDate
-            };
+            IDCardOCRAndDownUrlView iDCardOCRView = new IDCardOCRAndDownUrlView() { };
+
+
+            if (dto.Language.ToLower() == "ch")
+            {
+                bool cerdStatus = await _visaDeleClientRepository.SetCrmUpdPassIdCardOCR(
+               new SetCrmUpdPassIdCardOCRDto
+               {
+                   UserId = dto.UserId,
+                   ClientName = idCardData.Data.Name,
+                   Sex = idCardData.Data.Sex == "男" ? 0 : 1,
+                   CerdNo = idCardData.Data.IdNum,
+                   CerdAddress = idCardData.Data.Address,
+               });
+                iDCardOCRView.Status = cerdStatus;
+                iDCardOCRView.Name = idCardData.Data.Name;
+                iDCardOCRView.Sex = idCardData.Data.Sex;
+                iDCardOCRView.Nation = idCardData.Data.Nation;
+                iDCardOCRView.Birth = idCardData.Data.Birth;
+                iDCardOCRView.Address = idCardData.Data.Address;
+                iDCardOCRView.IdNum = idCardData.Data.IdNum;
+                iDCardOCRView.Authority = idCardData.Data.Authority;
+                iDCardOCRView.ValidDate = idCardData.Data.ValidDate;
+            }
+            else if (dto.Language.ToLower() == "en")
+            {
+                iDCardOCRView.Name = await YouDaoApiTools.GetOCR_ReTrans(idCardData.Data.Name);
+                iDCardOCRView.Sex = await YouDaoApiTools.GetOCR_ReTrans(idCardData.Data.Sex);
+                iDCardOCRView.Nation = await YouDaoApiTools.GetOCR_ReTrans(idCardData.Data.Nation);
+                iDCardOCRView.Birth = await YouDaoApiTools.GetOCR_ReTrans(idCardData.Data.Birth);
+                iDCardOCRView.Address = await YouDaoApiTools.GetOCR_ReTrans(idCardData.Data.Address);
+                iDCardOCRView.IdNum = idCardData.Data.IdNum;
+                iDCardOCRView.Authority = await YouDaoApiTools.GetOCR_ReTrans(idCardData.Data.Authority);
+                iDCardOCRView.ValidDate = await YouDaoApiTools.GetOCR_ReTrans(idCardData.Data.ValidDate);
+            }
+
 
             #region word生成 返回地址
             Dictionary<string, object> dic = new Dictionary<string, object>();
@@ -134,9 +151,18 @@ namespace OASystem.API.Controllers
             dic.Add("Authority", iDCardOCRView.Authority);
             dic.Add("ValidDate", iDCardOCRView.ValidDate);
 
-            string fileName = string.Format("{0}.doc", dic["Name"].ToString() + "身份证(人像面)" + DateTime.Now.ToString("yyyyMMddHHmmss"));
+            string serverPath = "";
+            if (dto.Language.ToLower() == "ch")
+            {
+                string fileNameCh = string.Format("{0}.doc", dic["Name"].ToString() + "身份证(人像面)[CH]" + DateTime.Now.ToString("yyyyMMddHHmmss"));
+                serverPath = AsposeHelper.ExpertWordToModel("ocr_身份证(人像面).doc", "TencentOCR", fileNameCh, dic, null);
+            }
+            else if (dto.Language.ToLower() == "en")
+            {
+                string fileNameEn = string.Format("{0}.doc", dic["Name"].ToString() + "身份证(人像面)[EN]" + DateTime.Now.ToString("yyyyMMddHHmmss"));
+                serverPath = AsposeHelper.ExpertWordToModel("(EN)ocr_身份证(人像面).doc", "TencentOCR", fileNameEn, dic, null);
+            }
 
-            string serverPath = AsposeHelper.ExpertWordToModel("ocr_身份证(人像面).doc", "TencentOCR", fileName, dic, null);
 
             iDCardOCRView.DownUrl = serverPath;
             #endregion
@@ -209,8 +235,8 @@ namespace OASystem.API.Controllers
         }
 
         /// <summary>
-        /// 营业执照识别
-        /// 获取营业执照返回数据 
+        /// 组织结构识别
+        /// 获取组织结构返回数据 
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>
@@ -238,7 +264,7 @@ namespace OASystem.API.Controllers
 
             return Ok(JsonView(occData.Data));
         }
-        
+
         /// <summary>
         /// 行驶证识别
         /// 获取行驶证返回数据 

+ 4 - 3
OASystem/OASystem.Api/OAMethodLib/File/AsposeHelper.cs

@@ -58,7 +58,8 @@ namespace OASystem.API.OAMethodLib.File
                 
                 //合并模版,相当于页面的渲染
                 doc.MailMerge.Execute(new[] { "PageCount" }, new object[] { doc.PageCount });
-
+                //"OfficeTempBasePath": "C:/Server/File/OA2023/Office/"
+                //saveFolderName:TencentOCR
                 string path = string.Format("{0}/Word/{1}", AppSettingsHelper.Get("OfficeTempBasePath"), saveFolderName);
 
                 if (!System.IO.Directory.Exists(path))
@@ -66,11 +67,11 @@ namespace OASystem.API.OAMethodLib.File
                     System.IO.Directory.CreateDirectory(path);//不存在就创建文件夹
                 }
 
-                string saveFilePath = string.Format("{0}{1}", path, saveFilName);
+                string saveFilePath = string.Format("{0}/{1}", path, saveFilName);
 
                 //保存合并后的文档
                 doc.Save(saveFilePath); 
-                saveFilePath = saveFilePath.Replace("C:", AppSettingsHelper.Get("OfficeBaseUrl")); //返回下载地址
+                saveFilePath = saveFilePath.Replace("C:/Server/File/OA2023/", AppSettingsHelper.Get("OfficeBaseUrl")); //返回下载地址
                 return saveFilePath; //返回下载地址
             }
             catch (Exception ex)

+ 15 - 4
OASystem/OASystem.Api/OAMethodLib/YouDaoAPI/YouDaoApiTools.cs

@@ -13,6 +13,20 @@ namespace OASystem.API.OAMethodLib.YouDaoAPI
         private static readonly string _appKey = "0fe3bc01e109ed36";    //应用ID
         private static readonly string _appSecret = "1f2x9TrqJfSBEJ8iH9GEFGgTyaYGjEry"; //应用密钥
 
+        #region OCR 调用翻译
+        public static async Task<string> GetOCR_ReTrans(string txt)
+        {
+            var data = await GetReTrans(txt);
+            string str = "";
+            if (data==null && data.Code != 0)
+                str = txt;
+            else
+                str = data.Data;
+
+            return str;
+        }
+        #endregion
+
         /// <summary>
         /// 有道翻译
         /// 默认 中=>英
@@ -74,15 +88,12 @@ namespace OASystem.API.OAMethodLib.YouDaoAPI
                     result.Code = 0;
                     var translation = JsonConvert.DeserializeObject<List<string>>(trans["translation"].ToString());
                     result.Msg = string.Format(@"成功!");
-                    result.Data = translation;
+                    result.Data = translation[0];
                 }
                 else
                 {
                     result.Msg = string.Format(@"有道翻译API [Error:{0}]", errorCode);
                 }
-                
-
-                
             }
             else
             {

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

@@ -32,7 +32,7 @@
     <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="6.0.11" />
     <PackageReference Include="QRCoder" Version="1.4.1" />
     <PackageReference Include="Serilog.Sinks.File" Version="5.0.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.1.3.32" />
+    <PackageReference Include="SqlSugarCore" Version="5.1.3.35" />
     <PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
     <PackageReference Include="TencentCloudSDK.Common" Version="3.0.734" />
     <PackageReference Include="TencentCloudSDK.Ocr" Version="3.0.734" />

+ 1 - 1
OASystem/OASystem.Api/appsettings.json

@@ -105,7 +105,7 @@
   ],
   "ExcelBaseUrl": "http://132.232.92.186/",
   "ExcelBasePath": "C:/Server/File/OA2023/Office/Excel/",
-  "OfficeBaseUrl": "http://132.232.92.186/",
+  "OfficeBaseUrl": "http://132.232.92.186:24/",
   "OfficeTempBasePath": "C:/Server/File/OA2023/Office/"
 
 }

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

@@ -13,6 +13,8 @@ using OASystem.Domain.ViewModels;
 using OASystem.Domain.ViewModels.Business;
 using OASystem.Domain.ViewModels.Resource;
 using OASystem.Domain.ViewModels.System;
+using OASystem.Domain.Dtos.Financial;
+using OASystem.Domain.Entities.Financial;
 
 namespace OASystem.Domain.AutoMappers
 {
@@ -131,6 +133,14 @@ namespace OASystem.Domain.AutoMappers
 
             #region Business
             #endregion
+
+            #region Financial
+            CreateMap<AddDailyFeePaymentDto, Fin_DailyFeePayment>();
+            CreateMap<AddDailyFeePaymentContentDto, Fin_DailyFeePaymentContent>();
+            CreateMap<EditDailyFeePaymentDto, Fin_DailyFeePayment>();
+            CreateMap<EditDailyFeePaymentContentDto, Fin_DailyFeePaymentContent>();
+
+            #endregion
         }
     }
 }

+ 170 - 0
OASystem/OASystem.Domain/Dtos/Financial/DailyFeePaymentDto.cs

@@ -67,4 +67,174 @@ namespace OASystem.Domain.Dtos.Financial
         /// </summary>
         public int CreateUserId { get; set; }
     }
+
+    /// <summary>
+    /// 日付申请 Single Search
+    /// </summary>
+    public class SearchDailyFeePaymentDto : DtoBase
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public int Id { get; set; }
+    }
+
+    /// <summary>
+    /// 日付申请 Add Dto
+    /// </summary>
+    public class AddDailyFeePaymentDto : DtoBase
+    {
+        /// <summary>
+        /// 员工Id
+        /// </summary>
+        public int UserId { get; set; }
+
+        /// <summary>
+        /// 申请说明
+        /// </summary>
+        public string? Instructions { get; set; }
+
+        /// <summary>
+        /// 合计
+        /// </summary>
+        public decimal SumPrice { get; set; }
+
+        /// <summary>
+        /// 转账表识Id  存储SetDataId
+        /// </summary>
+        public int TransferTypeId { get; set; }
+
+        /// <summary>
+        /// 费用类型Id  存储SetDataId
+        /// </summary>
+        public int PriceTypeId { get; set; }
+
+        /// <summary>
+        /// 公司Id 
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 费用明细
+        /// </summary>
+        public List<AddDailyFeePaymentContentDto> FeeContents { get; set; }
+    }
+
+    /// <summary>
+    /// 日付申请内容 Add Dto
+    /// </summary>
+    public class AddDailyFeePaymentContentDto
+    {
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string? PriceName { get; set; }
+
+        /// <summary>
+        /// 数量
+        /// </summary>
+        public int Quantity { get; set; }
+
+        /// <summary>
+        /// 单价
+        /// </summary>
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 单项费用合计
+        /// </summary>
+        public decimal ItemTotal { get; set; }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+    }
+
+    /// <summary>
+    /// 日付申请 Edit Dto
+    /// </summary>
+    public class EditDailyFeePaymentDto 
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 员工Id
+        /// </summary>
+        public int UserId { get; set; }
+
+        /// <summary>
+        /// 申请说明
+        /// </summary>
+        public string? Instructions { get; set; }
+
+        /// <summary>
+        /// 合计
+        /// </summary>
+        public decimal SumPrice { get; set; }
+
+        /// <summary>
+        /// 转账表识Id  存储SetDataId
+        /// </summary>
+        public int TransferTypeId { get; set; }
+
+        /// <summary>
+        /// 费用类型Id  存储SetDataId
+        /// </summary>
+        public int PriceTypeId { get; set; }
+
+        /// <summary>
+        /// 公司Id 
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 费用明细
+        /// </summary>
+        public List<EditDailyFeePaymentContentDto> FeeContents { get; set; }
+    }
+
+    public class EditDailyFeePaymentContentDto : AddDailyFeePaymentContentDto
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public int Id { get; set; }
+    }
+
+    /// <summary>
+    /// 日付申请 Del Dto
+    /// </summary>
+    public class DelDailyFeePaymentDto
+    {
+        /// <summary>
+        /// Id
+        /// </summary>
+        public int Id { get; set; }
+        /// <summary>
+        /// 员工Id
+        /// </summary>
+        public int UserId { get; set; }
+
+    }
+
+    public class DP_AuditStatusDto
+    {
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 审核类型
+        /// 1 财务审核
+        /// 2 总经理审核
+        /// </summary>
+        public int AuditType { get; set; }
+
+        /// <summary>
+        /// 审核 状态
+        /// 0 未审核 1 已通过 2 未通过
+        /// </summary>
+        public int AuditStatus { get; set; }
+    }
 }

+ 8 - 1
OASystem/OASystem.Domain/Dtos/Tencent/IDCardOCRDto.cs

@@ -13,6 +13,13 @@ namespace OASystem.Domain.Dtos.Tencent
     {
         public int UserId { get; set; }
 
+        /// <summary>
+        /// 语言
+        /// ch 中文
+        /// en 英文
+        /// </summary>
+        public string Language { get; set; }
+
         /// <summary>
         /// 图片的 Base64 值。要求图片经Base64编码后不超过 7M,分辨率建议500*800以上,支持PNG、JPG、JPEG、BMP格式。建议卡片部分占据图片2/3以上。
         /// </summary>
@@ -21,7 +28,7 @@ namespace OASystem.Domain.Dtos.Tencent
         /// <summary>
         /// 0 FRONT:身份证有照片的一面(人像面)
         /// 1 BACK:身份证有国徽的一面(国徽面)
-        ///  该参数如果不填,将为您自动判断身份证正反面。
+        ///   该参数如果不填,将为您自动判断身份证正反面。
         /// </summary>
         public int CardSide { get; set; }
 

+ 1 - 1
OASystem/OASystem.Domain/Entities/Financial/Fin_DailyFeePayment.cs

@@ -52,7 +52,7 @@ namespace OASystem.Domain.Entities.Financial
 
         /// <summary>
         /// 是否已付款
-        /// 0 是 1 否
+        /// 0 否 1 是
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDataType = "int")]
         public int IsPay { get; set; }

+ 15 - 0
OASystem/OASystem.Domain/ViewModels/CompanyView.cs

@@ -53,4 +53,19 @@ namespace OASystem.Domain.ViewModels
 
     }
 
+    /// <summary>
+    /// 公司名称
+    /// </summary>
+    public class CompanyNameView 
+    {
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string? CompanyName { get; set; }
+    }
 }

+ 120 - 1
OASystem/OASystem.Domain/ViewModels/Financial/Fin_DailyFeePaymentView.cs

@@ -1,4 +1,6 @@
-using OASystem.Domain.Entities.Financial;
+using Npgsql.Replication.PgOutput;
+using OASystem.Domain.Entities.Financial;
+using OASystem.Domain.ViewModels.System;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -112,4 +114,121 @@ namespace OASystem.Domain.ViewModels.Financial
 
         public List<Fin_DailyFeePaymentPageListView> Data { get; set; }
     }
+
+    /// <summary>
+    /// 日付申请费用明细
+    /// </summary>
+    public class Fin_DailyFeePaymentContentInfolView
+    {
+        public int Id { get; set; }
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        public string PriceName { get; set; }
+
+        /// <summary>
+        /// 数量单价
+        /// </summary>
+        public int Quantity { get; set; }
+
+        /// <summary>
+        /// 费用单价
+        /// </summary>
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 当前总计
+        /// </summary>
+        public decimal ItemTotal { get; set; }
+
+        /// <summary>
+        /// 备注
+        /// </summary>
+        public string Remark { get; set; }
+    }
+
+    public class Fin_DailyFeePaymentInfolView
+    {
+        public int Id { get; set; }
+        public int CompanyId { get; set; }
+        public int TransferTypeId { get; set; }
+        public int PriceTypeId { get; set; }
+        public string Instructions { get; set; }
+        public decimal SumPrice { get; set; }
+
+        public List<Fin_DailyFeePaymentContentInfolView> FeeContents { get; set; }
+    }
+
+    /// <summary>
+    /// 费用类型
+    /// </summary>
+    public class Fin_DailyFeePaymentPagePriceTypeView
+    {
+        /// <summary>
+        /// 类型Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 名称
+        /// </summary>
+        public string Name { get; set; }
+    }
+
+    /// <summary>
+    /// 费用子类型
+    /// </summary>
+    public class Fin_DailyFeePaymentPagePriceSubTypeView
+    {
+        /// <summary>
+        /// 费用类型Id
+        /// </summary>
+        public int STid { get; set; }
+
+        /// <summary>
+        /// 子类型Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 子类型名称
+        /// </summary>
+        public string Name { get; set; }
+    }
+
+    /// <summary>
+    /// 费用类型数据源
+    /// </summary>
+    public class Fin_DailyFeePaymentPagePriceTypeDataView
+    {
+        /// <summary>
+        /// 费用类型
+        /// </summary>
+        public List<Fin_DailyFeePaymentPagePriceTypeView>? FeeTypeData { get; set; }
+
+        /// <summary>
+        /// 费用子类型
+        /// </summary>
+        public List<Fin_DailyFeePaymentPagePriceSubTypeView>? FeeSubTypeData { get; set; }
+
+        /// <summary>
+        /// 用户名称
+        /// </summary>
+        public List<UserNameView>? UserNameData { get; set; }
+
+        /// <summary>
+        /// 费用标识类型
+        /// </summary>
+        public List<Fin_DailyFeePaymentPagePriceTypeView>? FeeMarkTypeData { get; set; }
+
+        /// <summary>
+        /// 费用子类型
+        /// </summary>
+        public List<Fin_DailyFeePaymentPagePriceSubTypeView>? FeeMarkSubTypeData { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public List<CompanyNameView>? CompanyNameData { get; set; }
+    }
 }

+ 230 - 8
OASystem/OASystem.Infrastructure/Repositories/Financial/DailyFeePaymentRepository.cs

@@ -1,4 +1,6 @@
-using OASystem.Domain;
+using AutoMapper;
+using OASystem.Domain;
+using OASystem.Domain.Dtos;
 using OASystem.Domain.Dtos.Financial;
 using OASystem.Domain.Dtos.UserDto;
 using OASystem.Domain.Entities.Financial;
@@ -7,7 +9,9 @@ using OASystem.Infrastructure.Repositories.System;
 using Org.BouncyCastle.Asn1.Cms;
 using System;
 using System.Collections.Generic;
+using System.ComponentModel.Design;
 using System.Linq;
+using System.Runtime.Intrinsics.Arm;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -18,19 +22,69 @@ namespace OASystem.Infrastructure.Repositories.Financial
     /// </summary>
     public class DailyFeePaymentRepository : BaseRepository<Fin_DailyFeePayment, Fin_DailyFeePaymentView>
     {
+        private readonly IMapper _mapper;
         private readonly System.SetDataTypeRepository _setDataTypeRep;
-        public DailyFeePaymentRepository(SqlSugarClient sqlSugar, System.SetDataTypeRepository setDataTypeRep) :
-           base(sqlSugar)
+        private readonly System.UsersRepository _UsersRep;
+        private readonly System.CompanyRepository _CompanyRep;
+
+        public DailyFeePaymentRepository(SqlSugarClient sqlSugar, IMapper mapper, System.SetDataTypeRepository setDataTypeRep,
+            UsersRepository usersRep, CompanyRepository companyRep)
+            : base(sqlSugar)
         {
+            this._mapper = mapper;
             this._setDataTypeRep = setDataTypeRep;
+            this._UsersRep = usersRep;
+            this._CompanyRep = companyRep;
         }
 
         /// <summary>
-        /// 日付申请查询所有
+        /// 日付申请查询 使用的数据源
         /// </summary>
-        /// <param name="_loginRep"></param>
+        /// <param name="dto"></param>
         /// <returns></returns>
-        public async Task<Result> GetPageSelectAll(PageDailyFeePaymentDto dto)
+        public async Task<Result> GetPagePriceTypeData(DtoBase dto)
+        {
+            Result result = new Result() { Code = -2 };
+
+            dynamic? DailyFeePaymentList = null;
+            if (dto.PortType == 1 || dto.PortType == 2) //web
+            {
+                var setTypeData = _setDataTypeRep.QueryDto<Sys_SetDataType, Fin_DailyFeePaymentPagePriceTypeView>().ToList();
+                var setData = _setDataTypeRep.QueryDto<Sys_SetData, Fin_DailyFeePaymentPagePriceSubTypeView>().ToList();
+
+                //48人员费用  49办公费用 50 销售费用 51 其他费用 55 大运会
+                var priceTypeData = setTypeData.Where(s => s.Id == 48 || s.Id == 49 || s.Id == 50 || s.Id == 51 || s.Id == 55).ToList();
+                var priceSubTypeData = setData.Where(s => s.STid == 48 || s.STid == 49 || s.STid == 50 || s.STid == 51 || s.STid == 55).ToList();
+                //员工姓名列表
+                var userNameData = await _UsersRep.GetUserNameList(dto.PortType);
+                //62 公转 63 私转
+                var feeMarkTypeData = setTypeData.Where(s => s.Id == 62 || s.Id == 63).ToList();
+                var feeMarkSubTypeData = setData.Where(s => s.STid == 62 || s.STid == 63).ToList();
+                var companyNameData = await _CompanyRep.GetCompanyNameData();
+                DailyFeePaymentList = new Fin_DailyFeePaymentPagePriceTypeDataView
+                {
+                    FeeTypeData = priceTypeData,
+                    FeeSubTypeData = priceSubTypeData,
+                    UserNameData = userNameData.Data,
+                    FeeMarkTypeData = feeMarkTypeData,
+                    FeeMarkSubTypeData = feeMarkSubTypeData,
+                    CompanyNameData = companyNameData.Data
+                };
+            }
+
+            result.Code = 0;
+            result.Msg = "查询成功!";
+            result.Data = DailyFeePaymentList;
+            return result;
+
+        }
+
+        /// <summary>
+        /// 日付申请 page 查询
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> GetPageSearchAll(PageDailyFeePaymentDto dto)
         {
             Result result = new Result() { Code = -2 };
 
@@ -71,7 +125,6 @@ namespace OASystem.Infrastructure.Repositories.Financial
                     }
                 }
             }
-                
 
             if (!string.IsNullOrEmpty(dto.FeeDesc))
                 sqlWhere += string.Format(" And dfp.Instructions Like '%{0}%'", dto.FeeDesc);
@@ -112,7 +165,7 @@ namespace OASystem.Infrastructure.Repositories.Financial
 
                 int startIndex = (dto.PageIndex - 1) * dto.PageSize + 1;
                 int endIndex = startIndex + dto.PageSize;
-                
+
                 DailyFeePaymentList = new Fin_DailyFeePaymentPage
                 {
                     Rows = totalCount,
@@ -127,5 +180,174 @@ namespace OASystem.Infrastructure.Repositories.Financial
 
         }
 
+        /// <summary>
+        /// 日付申请 single 查询 By Id
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> GetSearchById(SearchDailyFeePaymentDto dto)
+        {
+            Result result = new Result() { Code = -2 };
+
+            Fin_DailyFeePaymentInfolView feeData = new Fin_DailyFeePaymentInfolView();
+            if (dto.PortType == 1 || dto.PortType == 2) //web
+            {
+                string feeSql = string.Format(@"Select * From Fin_DailyFeePayment 
+                                                Where IsDel=0 And Id = {0} ", dto.Id);
+                feeData = await _sqlSugar.SqlQueryable<Fin_DailyFeePaymentInfolView>(feeSql).FirstAsync();
+                string feeContentSql = string.Format(@"Select * From Fin_DailyFeePaymentContent 
+                                                        Where IsDel=0 And DFPId = {0} ", dto.Id);
+                feeData.FeeContents = await _sqlSugar.SqlQueryable<Fin_DailyFeePaymentContentInfolView>(feeContentSql).ToListAsync();
+
+                result.Code = 0;
+                result.Msg = "查询成功!";
+                result.Data = feeData;
+            }
+
+            return result;
+
+        }
+
+        /// <summary>
+        /// 日付申请 添加
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> Add(AddDailyFeePaymentDto dto)
+        {
+            Result result = new Result() { Code = -2 };
+            _sqlSugar.BeginTran();
+            try
+            {
+                Fin_DailyFeePayment _fee = _mapper.Map<Fin_DailyFeePayment>(dto);
+                _fee.CreateUserId = dto.UserId;
+                int? feeId = await _sqlSugar.Insertable(_fee).ExecuteReturnIdentityAsync();
+
+                List<Fin_DailyFeePaymentContent> _feeContents = _mapper.Map<List<Fin_DailyFeePaymentContent>>(dto.FeeContents);
+
+                foreach (var item in _feeContents)
+                {
+                    item.DFPId = feeId == null ? -1 : Convert.ToInt32(feeId);
+                    item.CreateUserId = dto.UserId;
+                }
+                await _sqlSugar.Insertable(_feeContents).ExecuteCommandAsync();
+                _sqlSugar.CommitTran();
+                result.Code = 0;
+            }
+            catch (Exception ex)
+            {
+                _sqlSugar.RollbackTran();
+                result.Msg = ex.Message;
+            }
+
+
+
+            return result;
+
+        }
+
+        /// <summary>
+        /// 日付申请 编辑
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> Edit(EditDailyFeePaymentDto dto)
+        {
+            Result result = new Result() { Code = -2 };
+            _sqlSugar.BeginTran();
+            try
+            {
+                Fin_DailyFeePayment _fee = _mapper.Map<Fin_DailyFeePayment>(dto);
+                _fee.CreateUserId = dto.UserId;
+                int? editFeeStatus = await _sqlSugar.Updateable<Fin_DailyFeePayment>()
+                                      .Where(a => a.Id == dto.Id)
+                                      .SetColumns(a => new Fin_DailyFeePayment
+                                      {
+                                          Instructions = dto.Instructions,
+                                          SumPrice = dto.SumPrice,
+                                          TransferTypeId = dto.TransferTypeId,
+                                          PriceTypeId = dto.PriceTypeId,
+                                          CompanyId = dto.CompanyId,
+                                      }).ExecuteCommandAsync();
+
+                List<Fin_DailyFeePaymentContent> _feeContents = _mapper.Map<List<Fin_DailyFeePaymentContent>>(dto.FeeContents);
+
+                int? editFeeContsStatus = await _sqlSugar.Updateable(_feeContents)
+                    .UpdateColumns(a => new { a.PriceName, a.Price, a.Quantity, a.ItemTotal, a.Remark })
+                    .ExecuteCommandAsync();
+                _sqlSugar.CommitTran();
+                result.Code = 0;
+            }
+            catch (Exception ex)
+            {
+                _sqlSugar.RollbackTran();
+                result.Msg = ex.Message;
+            }
+
+            return result;
+        }
+
+        /// <summary>
+        /// 日付申请 删除
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> Del(DelDailyFeePaymentDto dto)
+        {
+            Result result = new Result() { Code = -2 };
+
+            int? delFeeStatus = await _sqlSugar.Updateable<Fin_DailyFeePayment>()
+                                  .Where(a => a.Id == dto.Id)
+                                  .SetColumns(a => new Fin_DailyFeePayment
+                                  {
+                                      IsDel =1,
+                                      DeleteUserId = dto.Id,
+                                      DeleteTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                                  }).ExecuteCommandAsync();
+
+            result.Code = 0;
+            return result;
+        }
+
+        /// <summary>
+        /// 日付申请 审核
+        /// </summary>
+        /// <param name="dto"></param>
+        /// <returns></returns>
+        public async Task<Result> DelDailyPaymentAudit(DP_AuditStatusDto dto)
+        {
+            Result result = new Result() { Code = -2 };
+
+            if (dto.AuditType == 1) //财务审核
+            {
+                int? auditStatus = await _sqlSugar.Updateable<Fin_DailyFeePayment>()
+                                  .Where(a => a.Id == dto.Id)
+                                  .SetColumns(a => new Fin_DailyFeePayment
+                                  {
+                                      FAudit = dto.AuditStatus,
+                                      FAuditDate = DateTime.Now,
+                                  }).ExecuteCommandAsync();
+                if (auditStatus != null && auditStatus > 0)
+                    result.Code = 0;
+                else
+                    result.Msg = "财务审核操作失败";
+            }
+            else if (dto.AuditType == 2) //总经理
+            {
+                int? auditStatus = await _sqlSugar.Updateable<Fin_DailyFeePayment>()
+                                  .Where(a => a.Id == dto.Id)
+                                  .SetColumns(a => new Fin_DailyFeePayment
+                                  {
+                                      MAudit = dto.AuditStatus,
+                                      MAuditDate = DateTime.Now,
+                                  }).ExecuteCommandAsync();
+
+                if (auditStatus != null && auditStatus > 0)
+                    result.Code = 0;
+                else
+                    result.Msg = "总经理审核操作失败";
+            }
+            return result;
+        }
     }
 }

+ 24 - 0
OASystem/OASystem.Infrastructure/Repositories/System/CompanyRepository.cs

@@ -35,7 +35,31 @@ namespace OASystem.Infrastructure.Repositories.System
         }
 
 
+        /// <summary>
+        /// 获取公司名称数据
+        /// </summary>
+        /// <param name="_CompanyRepository"></param>
+        /// <returns></returns>
+        public async Task<Result> GetCompanyNameData()
+        {
+            Result result = new Result();
+
+            string sql = "Select Id,CompanyName From Sys_Company Where IsDel = 0";
+
+            var companyNameData = await _sqlSugar.SqlQueryable<CompanyNameView>(sql).ToListAsync();
+
+            if (companyNameData == null || companyNameData.Count == 0)
+            {
+                result.Code = -1;
+                result.Msg = "暂无数据!";
+                return result;
+            }
 
+            result.Code = 0;
+            result.Msg = "成功!";
+            result.Data = companyNameData;
+            return result;
+        }
 
     }
 }

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/System/SetDataTypeRepository.cs

@@ -21,7 +21,7 @@ namespace OASystem.Infrastructure.Repositories.System
             _mapper = mapper;
         }
         /// <summary>
-        /// 数据类型种类修改添加
+        /// 数据类型种类修改添加
         /// </summary>
         /// <param name="dto"></param>
         /// <returns></returns>

+ 1 - 1
OASystem/OASystem.Infrastructure/Repositories/System/UsersRepository.cs

@@ -115,7 +115,7 @@ namespace OASystem.Infrastructure.Repositories.System
 
             if (portType == 1 || portType == 2) //web
             {
-                string sql = string.Format(@"Select Id,CnName From  Sys_Users");
+                string sql = string.Format(@"Select Id,CnName From Sys_Users Where Isdel=0");
                 var _userList = await _sqlSugar.SqlQueryable<UserNameView>(sql).ToListAsync();
 
                 if (_userList.Count != 0)