FinancialController.cs 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  1. using Microsoft.AspNetCore.Http;
  2. using Microsoft.AspNetCore.Mvc;
  3. using OASystem.API.OAMethodLib;
  4. using OASystem.API.OAMethodLib.File;
  5. using OASystem.Domain;
  6. using OASystem.Domain.Dtos.Financial;
  7. using OASystem.Domain.Entities.Groups;
  8. using OASystem.Domain.ViewModels.Financial;
  9. using OASystem.Domain.ViewModels.Groups;
  10. using OASystem.Infrastructure.Repositories.Financial;
  11. using System.Data;
  12. namespace OASystem.API.Controllers
  13. {
  14. /// <summary>
  15. /// 财务模块
  16. /// </summary>
  17. [Route("api/[controller]/[action]")]
  18. [ApiController]
  19. public class FinancialController : ControllerBase
  20. {
  21. private readonly IMapper _mapper;
  22. private readonly IConfiguration _config;
  23. private readonly SqlSugarClient _sqlSugar;
  24. private readonly SetDataTypeRepository _setDataTypeRep;
  25. private readonly DailyFeePaymentRepository _daiRep; //日付申请仓库
  26. /// <summary>
  27. /// 初始化
  28. /// </summary>
  29. public FinancialController(IMapper mapper, IConfiguration configuration, DailyFeePaymentRepository daiRep, SqlSugarClient sqlSugar, SetDataTypeRepository setDataTypeRep)
  30. {
  31. this._mapper = mapper;
  32. this._config = configuration;
  33. this._daiRep = daiRep;
  34. this._sqlSugar = sqlSugar;
  35. this._setDataTypeRep = setDataTypeRep;
  36. }
  37. #region 日付申请
  38. /// <summary>
  39. /// 获取日付申请 基础数据源
  40. /// </summary>
  41. /// <param name="dto"> 日付申请 分页 dto</param>
  42. /// <returns></returns>
  43. [HttpPost]
  44. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  45. public async Task<IActionResult> PostPageSearchDailyPaymentPriceTypeData(DtoBase dto)
  46. {
  47. var result = await _daiRep.GetPagePriceTypeData(dto);
  48. if (result == null || result.Code != 0)
  49. {
  50. return Ok(JsonView(false, result.Msg));
  51. }
  52. var data = result.Data;
  53. return Ok(JsonView(data));
  54. }
  55. /// <summary>
  56. /// 日付申请 Page Search
  57. /// </summary>
  58. /// <param name="dto"> 日付申请 分页 dto</param>
  59. /// <returns></returns>
  60. [HttpPost]
  61. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  62. public async Task<IActionResult> PostPageSearchDailyPaymentList(PageDailyFeePaymentDto dto)
  63. {
  64. var result = await _daiRep.GetPageSearchAll(dto);
  65. if (result == null || result.Code != 0)
  66. {
  67. return Ok(JsonView(false, result.Msg));
  68. }
  69. var data = result.Data;
  70. if (data == null)
  71. {
  72. return Ok(JsonView(false, result.Msg));
  73. }
  74. return Ok(JsonView(data));
  75. }
  76. /// <summary>
  77. /// 日付申请 Single Search By Id
  78. /// </summary>
  79. /// <param name="dto"></param>
  80. /// <returns></returns>
  81. [HttpPost]
  82. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  83. public async Task<IActionResult> PostSearchDailyPaymentInfo(SearchDailyFeePaymentDto dto)
  84. {
  85. var result = await _daiRep.GetSearchById(dto);
  86. if (result == null || result.Code != 0)
  87. {
  88. return Ok(JsonView(false, result.Msg));
  89. }
  90. return Ok(JsonView(result.Data));
  91. }
  92. /// <summary>
  93. /// 日付申请 添加
  94. /// </summary>
  95. /// <param name="dto"> 日付申请 添加 dto</param>
  96. /// <returns></returns>
  97. [HttpPost]
  98. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  99. public async Task<IActionResult> PostAddDailyPayment(AddDailyFeePaymentDto dto)
  100. {
  101. var result = await _daiRep.Add(dto);
  102. if (result == null || result.Code != 0)
  103. {
  104. return Ok(JsonView(false, result.Msg));
  105. }
  106. return Ok(JsonView(true));
  107. }
  108. /// <summary>
  109. /// 日付申请 Update
  110. /// </summary>
  111. /// <param name="dto"> 日付申请 修改 dto</param>
  112. /// <returns></returns>
  113. [HttpPost]
  114. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  115. public async Task<IActionResult> PostEditDailyPayment(EditDailyFeePaymentDto dto)
  116. {
  117. var result = await _daiRep.Edit(dto);
  118. if (result == null || result.Code != 0)
  119. {
  120. return Ok(JsonView(false, result.Msg));
  121. }
  122. return Ok(JsonView(true));
  123. }
  124. /// <summary>
  125. /// 日付申请 Del
  126. /// </summary>
  127. /// <param name="dto"> 日付申请 删除 dto</param>
  128. /// <returns></returns>
  129. [HttpPost]
  130. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  131. public async Task<IActionResult> PostDelDailyPayment(DelDailyFeePaymentDto dto)
  132. {
  133. var result = await _daiRep.Del(dto);
  134. if (result == null || result.Code != 0)
  135. {
  136. return Ok(JsonView(false, result.Msg));
  137. }
  138. return Ok(JsonView(true));
  139. }
  140. /// <summary>
  141. /// 日付申请 财务审核
  142. /// </summary>
  143. /// <param name="dto"> dto </param>
  144. /// <returns></returns>
  145. [HttpPost]
  146. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  147. public async Task<IActionResult> PostDelDailyPaymentAudit(DP_AuditStatusDto dto)
  148. {
  149. var result = await _daiRep.DelDailyPaymentAudit(dto);
  150. if (result == null || result.Code != 0)
  151. {
  152. return Ok(JsonView(false, result.Msg));
  153. }
  154. return Ok(JsonView(true));
  155. }
  156. /// <summary>
  157. /// 日付申请 Single Excel Download
  158. /// </summary>
  159. /// <param name="dto"> dto </param>
  160. /// <returns></returns>
  161. [HttpPost]
  162. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  163. public async Task<IActionResult> PostExcelDailyPaymentDownload(SearchDailyFeePaymentDto dto)
  164. {
  165. if (dto.PortType == 1 || dto.PortType == 2)
  166. {
  167. Fin_DailyFeePaymentInfolView feeData = new Fin_DailyFeePaymentInfolView();
  168. string feeSql = string.Format(@"Select * From Fin_DailyFeePayment
  169. Where IsDel=0 And Id = {0} ", dto.Id);
  170. feeData = await _sqlSugar.SqlQueryable<Fin_DailyFeePaymentInfolView>(feeSql).FirstAsync();
  171. if (feeData == null)
  172. {
  173. return Ok(JsonView(false, "暂无数据!"));
  174. }
  175. string feeContentSql = string.Format(@"Select * From Fin_DailyFeePaymentContent
  176. Where IsDel=0 And DFPId = {0} ", dto.Id);
  177. feeData.FeeContents = await _sqlSugar.SqlQueryable<Fin_DailyFeePaymentContentInfolView>(feeContentSql).ToListAsync();
  178. if (feeData != null)
  179. {
  180. string userName = string.Empty;
  181. string userSql = string.Format("Select * From Sys_Users Where Id={0} And Isdel = {1}", feeData.CreateUserId, 0);
  182. Sys_Users user = await _sqlSugar.SqlQueryable<Sys_Users>(userSql).FirstAsync();
  183. if (user != null) { userName = user.CnName; }
  184. var setData = _setDataTypeRep.QueryDto<Sys_SetData, Fin_DailyFeePaymentPagePriceSubTypeView>().ToList();
  185. //48人员费用 49办公费用 50 销售费用 51 其他费用 55 大运会
  186. var priceSubTypeData = setData.Where(s => s.STid == 55).ToList();
  187. Dictionary<string, object> pairs = new Dictionary<string, object>();
  188. List<DataTable> datas = new List<DataTable>();
  189. //if (priceSubTypeData.Where(s => s.Id == feeData.PriceTypeId).ToList().Count() > 0)//大运会专属模板
  190. //{
  191. // //AsposeHelper.ExpertExcelToModel("日常费用付款申请模板-大运会数据.xls", "DailyPayment", "大运会所有日常费用付款申请.xls",
  192. // // pairs, datas);
  193. //}
  194. //else //日付常规模板
  195. //{
  196. pairs.Clear();
  197. pairs.Add("Opertor", userName);
  198. pairs.Add("DateTime", feeData.CreateTime.ToString("yyyy-MM-dd HH:mm:ss"));
  199. pairs.Add("FAuditStatus", feeData.FAuditDesc);
  200. pairs.Add("MAuditStatus", feeData.MAuditDesc);
  201. pairs.Add("SumPrice", feeData.SumPrice);
  202. DataTable data = AsposeHelper.ListToDataTable("DailyFeePayment", feeData.FeeContents);
  203. datas.Clear();
  204. datas.Add(data);
  205. string fileName = string.Format("{0}-日常费用付款申请.xlsx", feeData.Instructions);
  206. string msg = AsposeHelper.ExpertExcelToModel("日常费用付款申请模板.xlsx", "DailyPayment", fileName, pairs, datas);
  207. return Ok(JsonView(true, msg));
  208. //}
  209. }
  210. else
  211. {
  212. return Ok(JsonView(false, "暂无数据!"));
  213. }
  214. }
  215. return Ok(JsonView(true));
  216. }
  217. #endregion
  218. #region 团组提成
  219. /// <summary>
  220. /// 提成 Page Search
  221. /// </summary>
  222. /// <param name="dto"> 提成 分页 dto</param>
  223. /// <returns></returns>
  224. [HttpPost]
  225. [ProducesResponseType(typeof(JsonView), StatusCodes.Status200OK)]
  226. public async Task<IActionResult> PostPageSearchCommissionList(GroupCommissionDto dto)
  227. {
  228. var data = await GroupCommission.GetCommissionPageList(dto);
  229. return Ok(JsonView(data.Data));
  230. }
  231. #endregion
  232. }
  233. }