Pārlūkot izejas kodu

新增 DailyFeePaymentRepository
FinancialController
DailyFeePaymentDto
Fin_DailyFeePaymentView

leiy 2 gadi atpakaļ
vecāks
revīzija
61ec81fb3f

+ 3 - 5
OASystem/EntitySync/Program.cs

@@ -1,6 +1,7 @@
 using OASystem.Domain.Entities;
 using OASystem.Domain.Entities.Business;
 using OASystem.Domain.Entities.Customer;
+using OASystem.Domain.Entities.Financial;
 using OASystem.Domain.Entities.Groups;
 using OASystem.Domain.Entities.Resource;
 using OASystem.Domain.Entities.System;
@@ -71,27 +72,24 @@ db.CodeFirst.SetStringDefaultLength(50).BackupTable().InitTables(new Type[]
     //typeof(Res_CarGuides),
     //typeof(Res_CarInfo),
     //typeof(Res_GuidesInfo)
-    
     //typeof(Res_CarData),
     //typeof(Res_LocalGuideData)
-
     //typeof(Grp_ScheduleInfo),
     //typeof(Grp_ScheduleDetailInfo),
     //typeof(Grp_SchedulePersonInfo)
-
     //typeof(Sys_Message),
     //typeof(Sys_MessageReadAuth)
     //typeof(Crm_DeleClient)
     //typeof(Crm_NewClientData)
-
     //typeof(Crm_ClientDataAndUser),
     //typeof(Crm_ClientDataAndBusiness),
-    
     //typeof(Res_ItemDetailInfo),
     //typeof(Res_ItemVendor)
     //typeof(Res_ItemTypeInfo)
     //typeof(Bus_ConfItemInfo)
     //typeof(Bus_ConfItemListInfo)
     //typeof(Res_CountryFeeCost)
+    typeof(Fin_DailyFeePayment), // 财务 - 日付申请
+    typeof(Fin_DailyFeePaymentContent)  // 财务 - 日付申请详细类
 });
 Console.WriteLine("数据库结构同步完成!");

+ 61 - 0
OASystem/OASystem.Api/Controllers/FinancialController.cs

@@ -0,0 +1,61 @@
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using OASystem.Domain;
+using OASystem.Domain.Dtos.Financial;
+using OASystem.Domain.Entities.Groups;
+using OASystem.Domain.ViewModels.Groups;
+using OASystem.Infrastructure.Repositories.Financial;
+
+namespace OASystem.API.Controllers
+{
+    /// <summary>
+    /// 财务模块
+    /// </summary>
+    [Route("api/[controller]/[action]")]
+    [ApiController]
+    public class FinancialController : ControllerBase
+    {
+        private readonly IMapper _mapper;
+        private readonly IConfiguration _config;
+        private readonly DailyFeePaymentRepository _daiRep;
+
+        /// <summary>
+        /// 初始化
+        /// </summary>
+        public FinancialController(IMapper mapper, IConfiguration configuration, DailyFeePaymentRepository daiRep) 
+        {
+            this._mapper = mapper;
+            this._config = configuration;
+            this._daiRep = daiRep;
+        }
+
+        #region 日付申请
+        /// <summary>
+        /// 获取日付申请 List
+        /// </summary>
+        /// <param name="dto"> 日付申请 分页 dto</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostPageDailyPaymentList(PageDailyFeePaymentDto dto)
+        {
+            var result = await _daiRep.GetPageSelectAll(dto);
+
+            if (result == null || result.Code != 0)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+            var data = result.Data;
+            if (data == null)
+            {
+                return Ok(JsonView(false, result.Msg));
+            }
+
+            return Ok(JsonView(data.Data, Convert.ToInt32(data.Rows)));
+        }
+
+
+
+        #endregion
+    }
+}

+ 1 - 1
OASystem/OASystem.Api/Controllers/TencentOCRController.cs

@@ -1,5 +1,5 @@
 using OASystem.API.OAMethodLib.File;
-using OASystem.API.OAMethodLib.NPOI;
+//using OASystem.API.OAMethodLib.NPOI;
 using OASystem.API.OAMethodLib.TencentCloudAPI;
 using OASystem.Domain.Dtos.CRM;
 using OASystem.Domain.Dtos.Tencent;

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

@@ -0,0 +1,70 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Financial
+{
+    /// <summary>
+    /// 日付申请 dto
+    /// </summary>
+    public class DailyFeePaymentDto
+    {}
+
+    /// <summary>
+    /// 日付申请 分页 dto
+    /// </summary>
+    public class PageDailyFeePaymentDto : DtoBase
+    {
+        /// <summary>
+        /// 费用所属公司
+        /// -1 全部/未选择
+        /// 其他Id 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+        /// <summary>
+        /// 财务审核状态
+        /// -1 全部/未选择
+        /// 0  未审核
+        /// 1  已审核
+        /// 2  审核未通过
+        /// </summary>
+        public int FinancialAuditStatus { get; set; }
+
+        /// <summary>
+        /// 总经理审核状态
+        /// -1 全部/未选择
+        /// 0  未审核
+        /// 1  已审核
+        /// 2  审核未通过
+        /// </summary>
+        public int ManagerAuditStatus { get; set; }
+
+        /// <summary>
+        /// 费用类型 
+        /// -1 全部/未选择
+        /// 其他Id 费用类型Id
+        /// </summary>
+        public int FeeTypeId { get; set; }
+
+        /// <summary>
+        /// 费用子类
+        /// -1 全部/未选择
+        /// 其他Id 费用子类Id
+        /// </summary>
+        public int FeeSubTypeId { get; set; }
+
+        /// <summary>
+        /// 费用说明
+        /// </summary>
+        public string? FeeDesc { get; set; }
+
+        /// <summary>
+        /// 申请人Id
+        /// -1 全部/未选择
+        /// 其他Id 员工Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+    }
+}

+ 78 - 0
OASystem/OASystem.Domain/Entities/Financial/Fin_DailyFeePayment.cs

@@ -0,0 +1,78 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Financial
+{
+    /// <summary>
+    /// 日常费用付款申请
+    /// </summary>
+    [SugarTable("Fin_DailyFeePayment")]
+    public class Fin_DailyFeePayment: EntityBase
+    {
+        /// <summary>
+        /// 申请说明
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "varchar(200)")]
+        public string? Instructions { get; set; }
+
+        /// <summary>
+        /// 合计
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "decimal(18,2)")]
+        public decimal SumPrice { get; set; }
+
+        /// <summary>
+        /// 总经理审核
+        /// 0 未审核 1 审核通过 2 审核未通过
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int MAudit { get; set; }
+
+        /// <summary>
+        /// 总经理审核时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime MAuditDate { get; set; }
+
+        /// <summary>
+        /// 财务主管审核
+        /// 0 未审核 1 审核通过 2 审核未通过
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDataType = "int")]
+        public int FAudit { get; set; }
+
+        /// <summary>
+        /// 财务主管审核时间
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "DateTime")]
+        public DateTime FAuditDate { get; set; }
+
+        /// <summary>
+        /// 是否已付款
+        /// 0 是 1 否
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int IsPay { get; set; }
+
+        /// <summary>
+        /// 转账表识Id  存储SetDataId
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")] 
+        public int TransferTypeId { get; set; }
+
+        /// <summary>
+        /// 费用类型Id  存储SetDataId
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int PriceTypeId { get; set; }
+
+        /// <summary>
+        /// 公司Id 
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")] 
+        public int CompanyId { get; set; }
+    }
+}

+ 47 - 0
OASystem/OASystem.Domain/Entities/Financial/Fin_DailyFeePaymentContent.cs

@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Entities.Financial
+{
+    /// <summary>
+    /// 日常费用付款申请
+    /// </summary>
+    [SugarTable("Fin_DailyFeePaymentContent")]
+    public class Fin_DailyFeePaymentContent : EntityBase
+    {
+        /// <summary>
+        /// 日常费用付款申请外键编号
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int DFPId { get; set; }
+
+        /// <summary>
+        /// 费用名称
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "varchar(100)")]
+        public string? PriceName { get; set; }
+
+        /// <summary>
+        /// 数量
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "int")]
+        public int Quantity { get; set; }
+
+        /// <summary>
+        /// 单价
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(10,2)")]
+        public decimal Price { get; set; }
+
+        /// <summary>
+        /// 单项费用合计
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDataType = "decimal(18,2)")]
+        public decimal ItemTotal { get; set; }
+
+        
+    }
+}

+ 115 - 0
OASystem/OASystem.Domain/ViewModels/Financial/Fin_DailyFeePaymentView.cs

@@ -0,0 +1,115 @@
+using OASystem.Domain.Entities.Financial;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Financial
+{
+    /// <summary>
+    /// 日付申请 View
+    /// </summary>
+    public class Fin_DailyFeePaymentView:Fin_DailyFeePayment
+    {}
+
+    /// <summary>
+    /// 日付申请 分页查询View
+    /// </summary>
+    public class Fin_DailyFeePaymentPageListView
+    {
+        /// <summary>
+        /// 行号
+        /// </summary>
+        public int RowNumber { get; set; }
+
+        /// <summary>
+        /// Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 公司Id
+        /// </summary>
+        public int CompanyId { get; set; }
+
+        /// <summary>
+        /// 公司名称
+        /// </summary>
+        public string CompanyName { get; set; }
+
+        /// <summary>
+        /// 费用描述
+        /// </summary>
+        public string Instructions { get; set; }
+
+        /// <summary>
+        /// 费用总计
+        /// </summary>
+        public decimal? SumPrice { get; set; }
+
+        /// <summary>
+        /// 申请人Id
+        /// </summary>
+        public int CreateUserId { get; set; }
+
+        /// <summary>
+        /// 申请人姓名
+        /// </summary>
+        public string CreateUser { get; set; }
+
+        /// <summary>
+        /// 申请时间
+        /// </summary>
+        public DateTime CreateTime { get; set; }
+
+        /// <summary>
+        /// 财务审核
+        /// </summary>
+        public int FAudit { get; set; }
+
+        public string FAuditDesc
+        {
+            get
+            {
+                string str = "未审核";
+                if (FAudit == 0) str = "未审核";
+                else if (FAudit == 1) str = "已通过";
+                else if (FAudit == 2) str = "未通过";
+                return str;
+            }
+        }
+
+        /// <summary>
+        /// 总经理审核
+        /// </summary>
+        public int MAudit { get; set; }
+
+        public string MAuditDesc
+        {
+            get
+            {
+                string str = "未审核";
+                if (MAudit == 0) str = "未审核";
+                else if (MAudit == 1) str = "已通过";
+                else if (MAudit == 2) str = "未通过";
+                return str;
+            }
+        }
+
+        /// <summary>
+        /// 费用类型
+        /// </summary>
+        public int PriceTypeId { get; set; }
+    }
+
+    public class Fin_DailyFeePaymentPage
+    {
+        /// <summary>
+        /// 总条数
+        /// </summary>
+        public int? Rows { get; set; }
+
+        public List<Fin_DailyFeePaymentPageListView> Data { get; set; }
+    }
+}

+ 131 - 0
OASystem/OASystem.Infrastructure/Repositories/Financial/DailyFeePaymentRepository.cs

@@ -0,0 +1,131 @@
+using OASystem.Domain;
+using OASystem.Domain.Dtos.Financial;
+using OASystem.Domain.Dtos.UserDto;
+using OASystem.Domain.Entities.Financial;
+using OASystem.Domain.ViewModels.Financial;
+using OASystem.Infrastructure.Repositories.System;
+using Org.BouncyCastle.Asn1.Cms;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Infrastructure.Repositories.Financial
+{
+    /// <summary>
+    /// 财务 - 日付申请
+    /// </summary>
+    public class DailyFeePaymentRepository : BaseRepository<Fin_DailyFeePayment, Fin_DailyFeePaymentView>
+    {
+        private readonly System.SetDataTypeRepository _setDataTypeRep;
+        public DailyFeePaymentRepository(SqlSugarClient sqlSugar, System.SetDataTypeRepository setDataTypeRep) :
+           base(sqlSugar)
+        {
+            this._setDataTypeRep = setDataTypeRep;
+        }
+
+        /// <summary>
+        /// 日付申请查询所有
+        /// </summary>
+        /// <param name="_loginRep"></param>
+        /// <returns></returns>
+        public async Task<Result> GetPageSelectAll(PageDailyFeePaymentDto dto)
+        {
+            Result result = new Result() { Code = -2 };
+
+            #region sql条件处理
+            string sqlWhere = "";
+
+            if (dto.CompanyId != -1)  //公司
+                sqlWhere += string.Format(" And dfp.CompanyId = {0}", dto.CompanyId);
+
+            if (dto.FinancialAuditStatus != -1) //财务审核
+                sqlWhere += string.Format(" And dfp.FAudit = {0}", dto.FinancialAuditStatus);
+
+            if (dto.ManagerAuditStatus != -1)   //总经理审核
+                sqlWhere += string.Format(" And dfp.MAudit = {0}", dto.ManagerAuditStatus);
+
+            if (dto.FeeTypeId != -1)   //费用类型
+            {
+                if (dto.FeeSubTypeId != -1) //子类处理
+                {
+                    sqlWhere += string.Format(" And dfp.PriceTypeId = {0}", dto.FeeSubTypeId);
+                }
+                else
+                {
+                    var setData = _setDataTypeRep.QueryDto<Sys_SetData, SetDataView>(s => s.STid == dto.FeeTypeId).ToList();
+                    if (setData.Count > 0)
+                    {
+                        string setDataIds = "";
+                        foreach (var item in setData)
+                        {
+                            setDataIds += item.Id + ",";
+                        }
+
+                        if (setDataIds.Length > 0)
+                        {
+                            setDataIds = setDataIds.Substring(1, setDataIds.Length - 2);
+                            sqlWhere += string.Format(" And dfp.PriceTypeId In ({0})", setDataIds);
+                        }
+                    }
+                }
+            }
+                
+
+            if (!string.IsNullOrEmpty(dto.FeeDesc))
+                sqlWhere += string.Format(" And dfp.Instructions Like '%{0}%'", dto.FeeDesc);
+
+            if (dto.CreateUserId != -1)
+                sqlWhere += string.Format(" And dfp.CreateUserId = {0}", dto.CreateUserId);
+
+            //string sqlPage = string.Format(@"Select * From (	
+            //                                    Select row_number() over (order by dfp.Id Desc) as RowNumber,
+            //                                        dfp.Id,dfp.CompanyId,c.CompanyName,dfp.Instructions,dfp.SumPrice,
+            //                                        dfp.CreateUserId,u.CnName CreateUser,dfp.CreateTime,dfp.FAudit,dfp.MAudit,
+            //                                        dfp.PriceTypeId
+            //                                    From Fin_DailyFeePayment dfp
+            //                                    Inner Join Sys_Company c On dfp.CompanyId = c.Id
+            //                                    Left Join Sys_Users u On dfp.CreateUserId = u.Id
+            //                                    Where dfp.IsDel=0 {0} 
+            //                                    ) temp Where RowNumber Between {1} and {2} ", sqlWhere, dto.PageIndex, dto.PageSize);
+
+
+            string sqlPage = string.Format(@"Select * From (	
+                                                Select row_number() over (order by dfp.Id Desc) as RowNumber,
+                                                    dfp.Id,dfp.CompanyId,c.CompanyName,dfp.Instructions,dfp.SumPrice,
+                                                    dfp.CreateUserId,u.CnName CreateUser,dfp.CreateTime,dfp.FAudit,dfp.MAudit,
+                                                    dfp.PriceTypeId
+                                                From Fin_DailyFeePayment dfp
+                                                Inner Join Sys_Company c On dfp.CompanyId = c.Id
+                                                Left Join Sys_Users u On dfp.CreateUserId = u.Id
+                                                Where dfp.IsDel=0 {0} 
+                                                ) temp ", sqlWhere);
+            #endregion
+
+            dynamic? DailyFeePaymentList = null;
+            if (dto.PortType == 1 || dto.PortType == 2) //web
+            {
+                var DailyFeePaymentData = await _sqlSugar.SqlQueryable<Fin_DailyFeePaymentPageListView>(sqlPage).ToListAsync();
+
+                int totalCount = DailyFeePaymentData.Count;
+
+                int startIndex = (dto.PageIndex - 1) * dto.PageSize + 1;
+                int endIndex = startIndex + dto.PageSize;
+                
+                DailyFeePaymentList = new Fin_DailyFeePaymentPage
+                {
+                    Rows = totalCount,
+                    Data = DailyFeePaymentData.Where(a => a.RowNumber >= startIndex && a.RowNumber < endIndex).ToList()
+                };
+            }
+
+            result.Code = 0;
+            result.Msg = "查询成功!";
+            result.Data = DailyFeePaymentList;
+            return result;
+
+        }
+
+    }
+}