소스 검색

统计模块
团组 报表 Items

leiy 1 년 전
부모
커밋
a942714f0f

+ 115 - 0
OASystem/OASystem.Api/Controllers/StatisticsController.cs

@@ -0,0 +1,115 @@
+using Microsoft.AspNetCore.Mvc;
+using OASystem.API.OAMethodLib;
+using OASystem.Domain.Dtos.Groups;
+using OASystem.Domain.Dtos.Statistics;
+using OASystem.Domain.ViewModels.Groups;
+using OASystem.Domain.ViewModels.Statistics;
+using OASystem.Infrastructure.Repositories.Groups;
+
+namespace OASystem.API.Controllers
+{
+    /// <summary>
+    /// 统计模块
+    /// </summary>
+    [Route("api/[controller]")]
+    //[ApiController]
+    public class StatisticsController : ControllerBase
+    {
+
+        private readonly IMapper _mapper;
+        private readonly SqlSugarClient _sqlSugar;
+        private readonly DelegationInfoRepository _groupRep;
+        private readonly SetDataRepository _setDataRep;
+
+        /// <summary>
+        /// Init
+        /// </summary>
+        /// <param name="mapper"></param>
+        /// <param name="sqlSugar"></param>
+        /// <param name="groupRep"></param>
+        /// <param name="setDataRep"></param>
+        public StatisticsController(IMapper mapper, SqlSugarClient sqlSugar, DelegationInfoRepository groupRep, SetDataRepository setDataRep)
+        {
+            _mapper = mapper;
+            _groupRep = groupRep;
+            _setDataRep = setDataRep;
+            _sqlSugar = sqlSugar;
+        }
+
+        /// <summary>
+        ///  团组报表
+        ///  Items 
+        /// </summary>
+        /// <param name="_dto">团组列表请求dto</param>
+        /// <returns></returns>
+        [HttpPost]
+        [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
+        public async Task<IActionResult> PostGroupStatementItems(GroupStatementItemsDto _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 || _dto.PortType == 2) // web/Android/IOS
+            {
+                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 (!string.IsNullOrEmpty(_dto.SearchCriteria))
+                {
+                    string tj = _dto.SearchCriteria;
+                    sqlWhere += string.Format(@"And (ssd.Name Like '%{0}%' Or TeamName Like '%{1}%' Or ClientName Like '%{2}%' Or  ClientName Like '%{3}%' Or su.CnName  Like '%{4}%')",
+                       tj, tj, tj, tj, tj);
+                }
+
+                string sql = string.Format(@"Select row_number() over(order by gdi.VisitDate Desc) as Row_Number, 
+											    gdi.Id,TourCode,ssd1.Id TeamLevId,ssd1.Name TeamLev,TeamName,
+											    ClientName,ClientUnit,VisitDate,ssd.Id TeamTypeId, ssd.Name TeamType,
+											    VisitDays,VisitPNumber,su.CnName JietuanOperator,IsSure,gdi.CreateTime,
+											    pr.LastCollectionTime
+											    From  Grp_DelegationInfo gdi
+											    Left Join Sys_SetData ssd On gdi.TeamDid = ssd.Id 
+											    Left Join Sys_SetData ssd1 On gdi.TeamLevSId = ssd1.Id
+											    Left Join Sys_Users su On gdi.JietuanOperator = su.Id
+											    Left Join (
+												    SELECT Diid, MAX(CreateTime) LastCollectionTime
+												    FROM Fin_ProceedsReceived
+												    Where IsDel = 0
+												    GROUP BY Diid
+											    ) pr On gdi.Id = pr.Diid
+										    Where gdi.IsDel = 0 {0} ", sqlWhere);
+
+                RefAsync<int> total = 0;//REF和OUT不支持异步,想要真的异步这是最优解
+                var _DelegationList = await _sqlSugar.SqlQueryable<GroupStatementItemView>(sql).ToPageListAsync(_dto.PageIndex, _dto.PageSize, total);//ToPageAsync
+
+                var _view = new
+                {
+                    PageFuncAuth = pageFunAuthView,
+                    Data = _DelegationList
+                };
+                return Ok(JsonView(true, "查询成功!", _view, total));
+
+            }
+            else
+            {
+                return Ok(JsonView(false, "查询失败"));
+            }
+        }
+
+    }
+}

+ 31 - 0
OASystem/OASystem.Domain/Dtos/Statistics/GroupStatementDto.cs

@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.Dtos.Statistics
+{
+    /// <summary>
+    /// 团组报表
+    /// Items Dto
+    /// </summary>
+    public class GroupStatementItemsDto : UserPageFuncDtoBase
+    {
+        public int PageIndex { get; set; }
+
+        public int PageSize { get; set; }
+
+        /// <summary>
+        /// 是否操作完成 
+        /// -1 全部 0 否 1 是
+        /// </summary>
+        public int IsSure { get; set; }
+
+        /// <summary>
+        /// 搜索条件
+        /// 团组类型/团队名称/客户名称/客户单位/接团操作人
+        /// </summary>
+        public string? SearchCriteria { get; set; }
+    }
+}

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

@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 namespace OASystem.Domain.Entities.Financial
 {
     /// <summary>
-    /// 财务 - 对外收款账单
+    /// 财务 - 对外收款账单  应收
     /// 雷怡 2023-08-14 16:20
     /// </summary>
     [SugarTable("Fin_ForeignReceivables")]

+ 0 - 1
OASystem/OASystem.Domain/ViewModels/Financial/Fin_ProceedsReceivedView.cs

@@ -73,7 +73,6 @@ namespace OASystem.Domain.ViewModels.Financial
     }
 
 
-
     /// <summary>
     /// 团组已收款项-1Info View
     /// </summary>

+ 105 - 0
OASystem/OASystem.Domain/ViewModels/Statistics/GroupStatementView.cs

@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace OASystem.Domain.ViewModels.Statistics
+{
+    /// <summary>
+    /// 团组报表
+    /// </summary>
+    public class GroupStatementView
+    {
+    }
+
+    /// <summary>
+    /// 团组报表
+    /// Items View
+    /// </summary>
+    public class GroupStatementItemView
+    {
+        /// <summary>
+        /// 序号
+        /// </summary>
+        public int Row_Number { get; set; }
+
+        /// <summary>
+        /// 是否操作完成 
+        /// 0否1是
+        /// </summary>
+        public int IsSure { get; set; }
+
+        /// <summary>
+        /// 主键Id
+        /// 团组Id
+        /// </summary>
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 团号
+        /// </summary>
+        public string? TourCode { get; set; }
+
+        /// <summary>
+        /// 接团操作人
+        /// </summary>
+        public string? JietuanOperator { get; set; }
+
+        /// <summary>
+        /// 团组等级Id
+        /// </summary>
+        public int TeamLevId { get; set; }
+
+        /// <summary>
+        /// 团组等级 
+        /// </summary>
+        public string? TeamLev { get; set; }
+
+        /// <summary>
+        /// 团组名称
+        /// </summary>
+        public string? TeamName { get; set; }
+
+        /// <summary>
+        /// 客户名称
+        /// </summary>
+        public string? ClientName { get; set; }
+
+        /// <summary>
+        /// 客户所属公司
+        /// </summary>
+        public string? ClientUnit { get; set; }
+
+        /// <summary>
+        /// 团组类型Id
+        /// </summary>
+        public int TeamTypeId { get; set; }
+
+        /// <summary>
+        /// 团组类型
+        /// </summary>
+        public string? TeamType { get; set; }
+
+        /// <summary>
+        /// 出团日期
+        /// </summary>
+        public DateTime VisitDate { get; set; }
+
+        /// <summary>
+        /// 出行天数
+        /// </summary>
+        public int VisitDays { get; set; }
+
+        /// <summary>
+        /// 出行人数
+        /// </summary>
+        public int VisitPNumber { get; set; }
+
+        /// <summary>
+        /// 最后收款时间
+        /// </summary>
+        public DateTime? LastCollectionTime { get; set; }
+
+    }
+}

+ 19 - 0
OASystem/OASystem.Infrastructure/Repositories/Financial/ProceedsReceivedRepository.cs

@@ -198,7 +198,26 @@ namespace OASystem.Infrastructure.Repositories.Financial
         }
 
 
+        /// <summary>
+        /// 根据diid查询团组已收款项
+        /// 全字段
+        /// </summary>
+        /// <param name="diid"></param>
+        /// <returns></returns>
+        public async Task<Result> PostAmountReceivedByDiId(int diId)
+        {
+            Result result = new() { Code = -2 };
+
+            string sql = string.Format(@"Select * From Fin_ProceedsReceived Where IsDel=0 And Diid={0}", diId);
 
+            var groupReceivablesList = await _sqlSugar.SqlQueryable<Fin_ProceedsReceivedView>(sql).ToListAsync();
+
+            result.Code = 0;
+            result.Msg = "查询成功!";
+            result.Data = groupReceivablesList;
+
+            return result;
+        }
 
         /// <summary>
         /// 根据diid查询团组已收款项