Просмотр исходного кода

倒推表
文档下载 格式调整

leiy 1 год назад
Родитель
Сommit
bc7fbcb6e1

+ 5 - 7
OASystem/OASystem.Api/Controllers/GroupsController.cs

@@ -9084,7 +9084,7 @@ namespace OASystem.API.Controllers
         public async Task<IActionResult> PostInvertedListFileDownload(InvertedListFileDownloadDto dto)
         {
 
-            var info1 = await _invertedListRep._sqlSugar.Queryable<Grp_InvertedList>().Where(it => it.Id == dto.DiId).FirstAsync();
+            var info1 = await _invertedListRep._sqlSugar.Queryable<Grp_InvertedList>().Where(it => it.DiId == dto.DiId).FirstAsync();
             if (info1 == null)
             {
                 return Ok(JsonView(false, "倒推表数据未生成,请先生成倒退表数据!"));
@@ -9095,7 +9095,7 @@ namespace OASystem.API.Controllers
             if (info != null) teamName = info.TeamName;
 
             //载入模板
-            Document doc = new Document(AppSettingsHelper.Get("WordBasePath") + "Template/邀请函模板0210.docx");
+            Document doc = new Document(AppSettingsHelper.Get("WordBasePath") + "Template/倒退表模板20200617.doc");
             DocumentBuilder builder = new DocumentBuilder(doc);
 
             //利用键值对存放数据
@@ -9123,7 +9123,7 @@ namespace OASystem.API.Controllers
             dic.Add("SQQZRemark", info1.SendVisaRemark);
 
             dic.Add("CQtime", info1.IssueVisaDt.ConvertToDatetime());
-            dic.Add("SQQZRemark", info1.IssueVisaRemark);
+            dic.Add("CQRemark", info1.IssueVisaRemark);
 
             dic.Add("XQHtime", info1.PreTripMeetingDt.ConvertToDatetime());
             dic.Add("XQHRemark", info1.PreTripMeetingRemark);
@@ -9140,14 +9140,12 @@ namespace OASystem.API.Controllers
 
             #endregion
 
-            var fileDir = AppSettingsHelper.Get("GrpFileBasePath");
+            var fileDir = AppSettingsHelper.Get("WordBasePath");
             string fileName = $"{teamName}团出行准备流程表.doc";  
-            string filePath = fileDir + $@"商邀相关文件/{fileName}";
+            string filePath = fileDir + $@"InvertedList/{fileName}";
             doc.Save(filePath);
             string Url = $@"{AppSettingsHelper.Get("WordBaseUrl")}Office/Word/InvertedList/{fileName}";
             return Ok(JsonView(true, "操作成功!", Url));
-
-
         }
 
 

+ 61 - 22
OASystem/OASystem.Api/Controllers/StatisticsController.cs

@@ -1104,7 +1104,7 @@ namespace OASystem.API.Controllers
         //企业利润-会务利润
 
         /// <summary>
-        ///  团组报表
+        ///  企业利润
         ///  Details 
         /// </summary>
         /// <param name="_dto">团组列表请求dto</param>
@@ -1114,36 +1114,64 @@ namespace OASystem.API.Controllers
         [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
         public async Task<IActionResult> PostCorporateProfit(PostCorporateProfitDto _dto)
         {
-            /* 
-             * 团组报表计算方式
-             * 当前总支出 = 团组支出.Sum() + 超支费用.Sum()
-             * 应收金额 = 应收表.Sum()
-             * 已收金额 = 已收表.Sum()
-             * 应收利润(应收-支出) = 应收金额 - 收款退还 - 当前总支出
-             * 已收利润(已收-支出) = 已收金额 - 收款退还 - 当前总支出
-             * 
-             */
-
             #region  参数验证
             if (_dto.UserId < 1) return Ok(JsonView(false, "员工Id为空"));
             if (_dto.PageId < 1) _dto.PageId = 38; //团组报表页面Id
-            if (_dto.BusinessType > 3 && _dto.BusinessType < 1) return Ok(JsonView(false, "请输入有效的BusinessType参数,1 所有 2 团组 3 会务"));
             if (_dto.StatisticsType > 2 && _dto.StatisticsType < 1) return Ok(JsonView(false, "请输入有效的StatisticsType参数,1 月份 2 季度"));
+            if (_dto.BusinessType > 3 && _dto.BusinessType < 1) return Ok(JsonView(false, "请输入有效的BusinessType参数,1 所有 2 团组 3 会务"));
 
             PageFunAuthViewBase pageFunAuthView = new PageFunAuthViewBase();
             #region 页面操作权限验证
-            pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
+            //pageFunAuthView = await GeneralMethod.PostUserPageFuncDatas(_dto.UserId, _dto.PageId);
 
-            if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, "您没有查看权限"));
+            //if (pageFunAuthView.CheckAuth == 0) return Ok(JsonView(false, "您没有查看权限"));
             #endregion
 
-            string beginDt = $"{_dto.Year}-01-01 00:00:00";
-            string endDt = $"{_dto.Year}-12-31 59:59:59";
+            string sqlWhere = string.Empty;
 
+            //起止时间
+            string beginDt = $"{_dto.Year}-01-01 00:00";
+            string endDt = $"{_dto.Year}-12-31 59:59";
 
-            List<int> diIds = new List<int>();
+            sqlWhere = string.Format(@$" Where Isdel = 0 And CreateTime Between {beginDt} And {endDt}");
 
+            //业务类型
+            List<int> groupTypeId = new List<int>();
+            if (_dto.BusinessType == 2) //团组
+            {
+                groupTypeId.AddRange(new List<int>() {
+                    38,   //  政府团
+                    39,   //  企业团
+                    40,   //  散客团
+                    1048  // 高校团
+                });
+            }
+            else if (_dto.BusinessType == 3) //会务
+            {
+                groupTypeId.AddRange(new List<int>() {
+                   102,   // 未知
+                   248,   // 非团组
+                   302,   // 成都-会务活动
+                   691,   // 四川-会务活动
+                   762,   // 四川-赛事项目收入
+                   1047   // 成都-赛事项目收入
+                });
+            }
+
+            if (groupTypeId.Count > 0 )
+            {
+                sqlWhere += string.Format(@$" And TeamDid In ({string.Join(',', groupTypeId)})");
+            }
+
+            string sql = string.Format(@$"Select * From Grp_DelegationInfo {sqlWhere}");
 
+            var groupInfos = await _sqlSugar.SqlQueryable<Grp_DelegationInfo>(sql).ToListAsync();
+
+            if (groupInfos.Count < 1) return Ok(JsonView(false, "暂无相关团组!"));
+
+            List<int> diIds = groupInfos.Select(it => it.Id).ToList();
+
+            List<CorporateProfit> corporateProfits = await CorporateProfit(diIds);
 
 
 
@@ -1151,15 +1179,15 @@ namespace OASystem.API.Controllers
             #endregion
 
         }
-        
+
         /// <summary>
-        /// 
+        /// 计算团组利润
         /// </summary>
         /// <param name="diIds"></param>
         /// <returns></returns>
-        private async Task< List<CorporateProfit>> CorporateProfit1(List<int> diIds)
+        private async Task<List<CorporateProfit>> CorporateProfit(List<int> diIds)
         {
-            List < CorporateProfit > corporateProfits = new List<CorporateProfit>();
+            List<CorporateProfit> corporateProfits = new List<CorporateProfit>();
             if (diIds.Count < 1)
             {
                 return corporateProfits;
@@ -1167,6 +1195,16 @@ namespace OASystem.API.Controllers
 
             #region 计算团组利润
 
+            /* 
+            * 团组报表计算方式
+            * 当前总支出 = 团组支出.Sum() + 超支费用.Sum()
+            * 应收金额 = 应收表.Sum()
+            * 已收金额 = 已收表.Sum()
+            * 应收利润(应收-支出) = 应收金额 - 收款退还 - 当前总支出
+            * 已收利润(已收-支出) = 已收金额 - 收款退还 - 当前总支出
+            * 
+            */
+
 
             string diIdStr = string.Join(",", diIds);
 
@@ -1503,7 +1541,8 @@ namespace OASystem.API.Controllers
                 _receivedProfit = _amountReceived - promTotalAmount - _totalExpenditure;
 
                 var groupInfo = groupInfos.Find(it => it.Id == _diId);
-                corporateProfits.Add(new CorporateProfit() {
+                corporateProfits.Add(new CorporateProfit()
+                {
                     DiId = _diId,
                     TeamName = groupInfo?.TeamName ?? "Unkwnon",
                     CreateDt = groupInfo?.CreateTime.ToString("yyyy-MM-dd") ?? "Unkwnon",

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

@@ -1365,7 +1365,6 @@ namespace OASystem.API.OAMethodLib
                 return Convert.ToDateTime(str).ToString("yyyy年MM月dd日");
             }
 
-           
             return "";
         }