郑州市第一人民医院

DistributionWorkOrderReportController.cs 8.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Threading.Tasks;
  5. using Microsoft.AspNetCore.Mvc;
  6. using MadRunFabric.Common;
  7. using Microsoft.AspNetCore.Authorization;
  8. using Api.SignToken;
  9. using Microsoft.Extensions.Logging;
  10. using DistributionApi.IRepositories;
  11. using System.Security.Claims;
  12. using Microsoft.Extensions.Configuration;
  13. namespace DistributionApi.Controllers.reportmanage
  14. {
  15. /// <summary>
  16. /// 配送报表统计
  17. /// </summary>
  18. [Authorize]
  19. [ApiVersion("6.0")]
  20. [Produces("application/json")]
  21. [Route("api/[controller]")]
  22. public class DistributionWorkOrderReportController : BaseController
  23. {
  24. private readonly ILogger<DistributionWorkOrderReportController> _logger;
  25. private readonly IConfiguration _configuration;
  26. private readonly ISys_User_AccountRepository _sys_user_accountRepository;
  27. private readonly ISignTokenService _signTokenService;
  28. private readonly IDistributionWorkOrderReportRepository _distributionworkorderreportRepository;
  29. public DistributionWorkOrderReportController(
  30. ILogger<DistributionWorkOrderReportController> logger,
  31. IConfiguration configuration,
  32. ISys_User_AccountRepository sys_user_accountRepository,
  33. ISignTokenService signTokenService,
  34. IDistributionWorkOrderReportRepository distributionworkorderreportRepository)
  35. {
  36. _logger = logger;
  37. _configuration = configuration;
  38. _sys_user_accountRepository = sys_user_accountRepository;
  39. _signTokenService = signTokenService;
  40. _distributionworkorderreportRepository = distributionworkorderreportRepository;
  41. }
  42. #region 物品种类
  43. /// <summary>
  44. /// 物品种类运送量 - 总体统计报表
  45. /// </summary>
  46. /// <param name="projectid">项目id</param>
  47. /// <param name="departmentname">科室</param>
  48. /// <param name="usercode">用户code</param>
  49. /// <param name="stime">开始时间</param>
  50. /// <param name="etime">结束时间</param>
  51. /// <returns></returns>
  52. [HttpGet("getwocountforgoods")]
  53. public IActionResult GetGoodsCount(string projectid, string departmentname, string usercode, string stime, string etime)
  54. {
  55. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  56. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  57. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  58. string allprojectrole = _configuration["allprojectrole"];
  59. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  60. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  61. var result = _distributionworkorderreportRepository.GetWOCountForGoods(projectid, departmentname, usercode, stime, etime, userinfo);
  62. return Success("获取成功", result);
  63. }
  64. /// <summary>
  65. /// 物品运送量 - 明细统计报表
  66. /// </summary>
  67. /// <param name="projectid">项目id</param>
  68. /// <param name="departmentname">科室</param>
  69. /// <param name="usercode">用户code</param>
  70. /// <param name="stime">开始时间</param>
  71. /// <param name="etime">结束时间</param>
  72. /// <returns></returns>
  73. [HttpGet("getwocountforgoodsdetail")]
  74. public IActionResult GetGoodsDetailCount(string projectid, string departmentname, string usercode, string stime, string etime)
  75. {
  76. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  77. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  78. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  79. string allprojectrole = _configuration["allprojectrole"];
  80. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  81. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  82. var result = _distributionworkorderreportRepository.GetWOCountForGoodsDetail(projectid, departmentname, usercode, stime, etime, userinfo);
  83. return Success("获取成功", result);
  84. }
  85. #endregion
  86. #region 配送工单
  87. /// <summary>
  88. /// 医务科室运送报单量 - 统计报表
  89. /// </summary>
  90. /// <param name="projectid">项目id</param>
  91. /// <param name="usercode">用户code</param>
  92. /// <param name="stime">开始时间</param>
  93. /// <param name="etime">结束时间</param>
  94. /// <returns></returns>
  95. [HttpGet("getwocountfordepartment")]
  96. public IActionResult GetWOForDepartmentCount(string projectid, string usercode, string stime, string etime)
  97. {
  98. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  99. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  100. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  101. string allprojectrole = _configuration["allprojectrole"];
  102. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  103. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  104. var result = _distributionworkorderreportRepository.GetWOCountForDepartment(projectid, usercode, stime, etime, userinfo);
  105. return Success("获取成功", result);
  106. }
  107. /// <summary>
  108. /// 员工运送工作量 - 统计报表
  109. /// </summary>
  110. /// <param name="projectid">项目id</param>
  111. /// <param name="usercode">用户code</param>
  112. /// <param name="stime">开始时间</param>
  113. /// <param name="etime">结束时间</param>
  114. /// <returns></returns>
  115. [HttpGet("getwocountbyuser")]
  116. public IActionResult GetWOForUserCount(string projectid, string usercode, string stime, string etime)
  117. {
  118. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  119. //string rolecode = User.Claims.FirstOrDefault(c => c.Type == "RoleCode").Value;
  120. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  121. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  122. string allprojectrole = _configuration["allprojectrole"];
  123. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  124. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  125. var result = _distributionworkorderreportRepository.GetWOCountForUser(projectid, usercode, stime, etime, userinfo);
  126. return Success("获取成功", result);
  127. }
  128. #endregion
  129. #region 工单评价
  130. /// <summary>
  131. /// 员工满意度评价 - 统计报表
  132. /// </summary>
  133. /// <param name="projectid">项目id</param>
  134. /// <param name="usercode">用户code</param>
  135. /// <param name="stime">开始时间</param>
  136. /// <param name="etime">结束时间</param>
  137. /// <returns></returns>
  138. [HttpGet("getwoevaluatecountforuser")]
  139. public IActionResult GetWOEvaluateForUserCount(string projectid, string usercode, string stime, string etime)
  140. {
  141. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  142. //string rolecode = User.Claims.FirstOrDefault(c => c.Type == "RoleCode").Value;
  143. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  144. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  145. string allprojectrole = _configuration["allprojectrole"];
  146. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  147. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  148. var result = _distributionworkorderreportRepository.GetWOEvaluateCountForUser(projectid, usercode, stime, etime, userinfo);
  149. return Success("获取成功", result);
  150. }
  151. #endregion
  152. }
  153. }