|
@@ -3,7 +3,9 @@ using Aspose.Words;
|
|
|
using Aspose.Words.Drawing;
|
|
|
using Aspose.Words.Tables;
|
|
|
using DiffMatchPatch;
|
|
|
+using Humanizer;
|
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
+using Npgsql.Replication.PgOutput.Messages;
|
|
|
using NPOI.SS.UserModel;
|
|
|
using NPOI.SS.Util;
|
|
|
using NPOI.XSSF.UserModel;
|
|
@@ -26338,6 +26340,231 @@ ORDER BY
|
|
|
}
|
|
|
#endregion
|
|
|
|
|
|
+
|
|
|
+ #region 团组会务成本
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 团组会务成本数据初始化
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<IActionResult> ConferenceAffairsInIt(ConferenceAffairsInItDto Dto)
|
|
|
+ {
|
|
|
+ var expr = _sqlSugar.Queryable<Grp_DelegationInfo>()
|
|
|
+ .OrderByDescending(x => x.CreateTime)
|
|
|
+ .Where(x => x.IsDel == 0)
|
|
|
+ .Select<DelegationEasyView>();
|
|
|
+ DelegationEasyView di = Dto.GroupId == 0 ?
|
|
|
+ expr.First() :
|
|
|
+ expr.First(x => x.Id == Dto.GroupId);
|
|
|
+
|
|
|
+ if (di == null)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(false, "团组信息不存在!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ var typeData = await _sqlSugar.Queryable<Sys_SetData>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.STid == 21)
|
|
|
+ .Select(x => new { x.Id, Text = x.Name })
|
|
|
+ .ToListAsync();
|
|
|
+ var groupList = await _sqlSugar.Queryable<Grp_DelegationInfo>()
|
|
|
+ .Where(x => x.IsDel == 0)
|
|
|
+ .Select(x => new { x.Id, x.TeamName })
|
|
|
+ .ToListAsync();
|
|
|
+ var currenyList = await GeneralMethod.PostGroupTeamRateByDiIdAndCTableId(1, di.Id, 98);
|
|
|
+ var userList = await _sqlSugar.Queryable<Sys_Users>()
|
|
|
+ .Where(x => x.IsDel == 0)
|
|
|
+ .Select(x => new { x.Id, x.CnName })
|
|
|
+ .ToListAsync();
|
|
|
+ var units = await _sqlSugar.Queryable<Sys_SetData>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.STid == 119)
|
|
|
+ .Select(x => new { x.Id, Text = x.Name })
|
|
|
+ .ToListAsync();
|
|
|
+
|
|
|
+ var GM = new List<int>();
|
|
|
+ var permissionControlDB = _sqlSugar.Queryable<Sys_SetData>().First(x => x.Id == 1448)?.Remark;
|
|
|
+ try
|
|
|
+ {
|
|
|
+ GM = JsonConvert.DeserializeObject<List<int>>(permissionControlDB);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ GM = new List<int>() { 21 };
|
|
|
+ }
|
|
|
+
|
|
|
+ var isGM = GM.Contains(Dto.UserId);
|
|
|
+ var ConferenceAffairsCost = _sqlSugar.Queryable<ConferenceAffairsCost>()
|
|
|
+ .Where(x => x.IsDel == 0)
|
|
|
+ .Select<ConferenceAffairsCostView>()
|
|
|
+ .First(x=> x.Diid == di.Id);
|
|
|
+
|
|
|
+ if (ConferenceAffairsCost == null)
|
|
|
+ {
|
|
|
+ ConferenceAffairsCost = new ConferenceAffairsCostView();
|
|
|
+ ConferenceAffairsCost.Diid = di.Id;
|
|
|
+ ConferenceAffairsCost.PermissionControl = string.Empty;
|
|
|
+ }
|
|
|
+
|
|
|
+ #region 权限校验
|
|
|
+ var PermissionControl = "," + ConferenceAffairsCost.PermissionControl + ",";
|
|
|
+ if (!PermissionControl.Contains(","+ Dto.UserId+",") && !isGM)
|
|
|
+ {
|
|
|
+ return Ok(JsonView(201, "暂无权限!", new
|
|
|
+ {
|
|
|
+ typeData,
|
|
|
+ groupList,
|
|
|
+ currenyList,
|
|
|
+ isGM,
|
|
|
+ userList,
|
|
|
+ units
|
|
|
+ }));
|
|
|
+ }
|
|
|
+ #endregion
|
|
|
+
|
|
|
+ var ConferenceAffairsCostChi = _sqlSugar.Queryable<ConferenceAffairsCostChild>()
|
|
|
+ .Where(x => x.IsDel == 0 && x.Diid == di.Id)
|
|
|
+ .Select<ConferenceAffairsCostChildView>()
|
|
|
+ .OrderBy(x=>x.Index)
|
|
|
+ .ToList();
|
|
|
+
|
|
|
+ var backData = new
|
|
|
+ {
|
|
|
+ ConferenceAffairsCost,
|
|
|
+ ConferenceAffairsCostChi,
|
|
|
+ typeData,
|
|
|
+ groupList,
|
|
|
+ currenyList,
|
|
|
+ isGM,
|
|
|
+ userList,
|
|
|
+ units
|
|
|
+ };
|
|
|
+
|
|
|
+ return Ok(JsonView(true, "SUCCESS", backData));
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 会务成本保存
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<IActionResult> ConferenceAffairsSave(ConferenceAffairsSaveDto Dto)
|
|
|
+ {
|
|
|
+ _sqlSugar.BeginTran();
|
|
|
+ var data = _mapper.Map<ConferenceAffairsCost>(Dto.ConferenceAffairsCost);
|
|
|
+
|
|
|
+ try
|
|
|
+ {
|
|
|
+ if (data.Id == 0)
|
|
|
+ {
|
|
|
+ _sqlSugar.Updateable<ConferenceAffairsCost>()
|
|
|
+ .Where(x => x.Diid == Dto.GroupId)
|
|
|
+ .SetColumns(x => new ConferenceAffairsCost
|
|
|
+ {
|
|
|
+ DeleteTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
|
+ DeleteUserId = Dto.UserId
|
|
|
+ })
|
|
|
+ .ExecuteCommand();
|
|
|
+
|
|
|
+ data.Diid = Dto.GroupId;
|
|
|
+ data.CreateTime = DateTime.Now;
|
|
|
+ data.CreateUserId = Dto.UserId;
|
|
|
+ data.Id = _sqlSugar.Insertable<ConferenceAffairsCost>(data)
|
|
|
+ .ExecuteReturnIdentity();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ _sqlSugar.Updateable<ConferenceAffairsCost>(data)
|
|
|
+ .IgnoreColumns(ignoreAllNullColumns: true)
|
|
|
+ .ExecuteCommand();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if (Dto.ConferenceAffairsCostChild.Any())
|
|
|
+ {
|
|
|
+ var datas = _mapper.Map<List<ConferenceAffairsCostChild>>(Dto.ConferenceAffairsCostChild);
|
|
|
+ var insertArr = datas.Where(x => x.Id == 0).ToList();
|
|
|
+ var updateArr = datas.Where(x => x.Id != 0).ToList();
|
|
|
+ insertArr.ForEach(x => { x.Diid = Dto.GroupId; x.ConferenceAffairsCostId = data.Id; });
|
|
|
+
|
|
|
+ var inrsetCount = insertArr.Any() ? _sqlSugar.Insertable<ConferenceAffairsCostChild>(insertArr).ExecuteCommand() : 0;
|
|
|
+ var updateCount = updateArr.Any() ? _sqlSugar.Updateable<ConferenceAffairsCostChild>(updateArr)
|
|
|
+ .IgnoreColumns(ignoreAllNullColumns: true)
|
|
|
+ .ExecuteCommand() : 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ _sqlSugar.CommitTran();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ _sqlSugar.RollbackTran();
|
|
|
+ return Ok(JsonView(false, "失败!" + ex.Message));
|
|
|
+ }
|
|
|
+
|
|
|
+ return Ok(JsonView(true,"操作成功!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<IActionResult> ConferenceAffairsAudit(ConferenceAffairsAuditDto Dto)
|
|
|
+ {
|
|
|
+ var count = 0;
|
|
|
+
|
|
|
+ if (Dto.ConferenceAffairsCostChildids.Any())
|
|
|
+ {
|
|
|
+ count = _sqlSugar.Updateable<ConferenceAffairsCostChild>().
|
|
|
+ Where(x => Dto.ConferenceAffairsCostChildids.Contains(x.Id)).
|
|
|
+ SetColumns(x => new ConferenceAffairsCostChild
|
|
|
+ {
|
|
|
+ ReviewStatus = Dto.ReviewStatus
|
|
|
+ }).
|
|
|
+ ExecuteCommand();
|
|
|
+ }
|
|
|
+
|
|
|
+ return Ok(JsonView(true, "操作成功!",count));
|
|
|
+ }
|
|
|
+
|
|
|
+ [HttpPost]
|
|
|
+ public async Task<IActionResult> ConferenceAffairsDelete(ConferenceAffairsDeleteDto Dto)
|
|
|
+ {
|
|
|
+ if (Dto.GroupId < 1) return Ok(JsonView(false, "请传入有效的Id"));
|
|
|
+ if (Dto.UserId < 1) return Ok(JsonView(false, "请传入有效的用户Id"));
|
|
|
+
|
|
|
+ _sqlSugar.BeginTran();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var delCount = _sqlSugar.Updateable<ConferenceAffairsCost>()
|
|
|
+ .Where(x => x.Diid == Dto.GroupId)
|
|
|
+ .SetColumns(x => new ConferenceAffairsCost
|
|
|
+ {
|
|
|
+ IsDel = 1,
|
|
|
+ DeleteTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
|
+ DeleteUserId = Dto.UserId
|
|
|
+ })
|
|
|
+ .ExecuteCommand();
|
|
|
+
|
|
|
+ if (delCount > 0)
|
|
|
+ {
|
|
|
+ _sqlSugar.Updateable<ConferenceAffairsCostChild>()
|
|
|
+ .Where(x => x.Diid == Dto.GroupId)
|
|
|
+ .SetColumns(x => new ConferenceAffairsCostChild
|
|
|
+ {
|
|
|
+ IsDel = 1,
|
|
|
+ DeleteTime = DateTime.Now.ToString("yyyy-MM-dd"),
|
|
|
+ DeleteUserId = Dto.UserId
|
|
|
+ })
|
|
|
+ .ExecuteCommand();
|
|
|
+ }
|
|
|
+ _sqlSugar.CommitTran();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ _sqlSugar.RollbackTran();
|
|
|
+ return Ok(JsonView(false, "操作失败!" + ex.Message));
|
|
|
+ }
|
|
|
+ return Ok(JsonView(true, "操作成功!"));
|
|
|
+ }
|
|
|
+
|
|
|
+ #endregion
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 123132123
|
|
|
/// </summary>
|