FinancialController.cs 9.4 KB

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