郑州市第一人民医院

DistributionAppChartController.cs 7.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  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 Microsoft.Extensions.Logging;
  9. using Api.SignToken;
  10. using DistributionApi.IRepositories;
  11. using System.Security.Claims;
  12. using Microsoft.Extensions.Configuration;
  13. namespace DistributionApi.Controllers.reportmanage
  14. {
  15. /// <summary>
  16. /// APP配送报表统计
  17. /// </summary>
  18. [Authorize]
  19. [ApiVersion("6.0")]
  20. [Produces("application/json")]
  21. [Route("api/[controller]")]
  22. public class DistributionAppChartController : 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 IDistributionAppChartRepository _distributionappchartRepository;
  29. public DistributionAppChartController(
  30. ILogger<DistributionWorkOrderReportController> logger,
  31. IConfiguration configuration,
  32. ISys_User_AccountRepository sys_user_accountRepository,
  33. ISignTokenService signTokenService,
  34. IDistributionAppChartRepository distributionappchartRepository)
  35. {
  36. _logger = logger;
  37. _configuration = configuration;
  38. _sys_user_accountRepository = sys_user_accountRepository;
  39. _signTokenService = signTokenService;
  40. _distributionappchartRepository = distributionappchartRepository;
  41. }
  42. #region 配送工单统计
  43. /// <summary>
  44. /// 统计报表 - 工单,满意度,科室
  45. /// </summary>
  46. /// <param name="projectid"></param>
  47. /// <param name="stime"></param>
  48. /// <param name="etime"></param>
  49. /// <param name="datetype"></param>
  50. /// <returns></returns>
  51. [HttpGet("getworkordercount")]
  52. public IActionResult GetWorkOrderCount(string projectid, int datetype = -1)
  53. {
  54. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  55. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  56. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  57. string allprojectrole = _configuration["allprojectrole"];
  58. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  59. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  60. string stime = string.Empty, etime = string.Empty;
  61. //获取当天、本周、本月、本年、累计时间
  62. if (datetype != -1)
  63. {
  64. GetStartEndTime(datetype, out stime, out etime);
  65. }
  66. var result = _distributionappchartRepository.GetWorkOrderCount(projectid, stime, etime, userinfo);
  67. return Success("获取成功", result);
  68. }
  69. #endregion
  70. #region 公示系统
  71. /// <summary>
  72. /// 各科室下单数量
  73. /// </summary>
  74. /// <param name="projectid"></param>
  75. /// <param name="stime"></param>
  76. /// <param name="etime"></param>
  77. /// <param name="datetype"></param>
  78. /// <returns></returns>
  79. [HttpGet("getdepartmentwocount")]
  80. public IActionResult GetDepartmentWOCount(string projectid, int datetype = -1)
  81. {
  82. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  83. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  84. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  85. string allprojectrole = _configuration["allprojectrole"];
  86. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  87. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  88. string stime = string.Empty, etime = string.Empty;
  89. //获取当天、本周、本月、本年、累计时间
  90. if (datetype != -1)
  91. {
  92. GetStartEndTime(datetype, out stime, out etime);
  93. }
  94. var result = _distributionappchartRepository.GetDepartmentWOCount(projectid, stime, etime, userinfo);
  95. return Success("获取成功", result);
  96. }
  97. /// <summary>
  98. /// 配送物品前五
  99. /// </summary>
  100. /// <param name="projectid"></param>
  101. /// <param name="stime"></param>
  102. /// <param name="etime"></param>
  103. /// <param name="datetype"></param>
  104. /// <returns></returns>
  105. [HttpGet("getgoodswocount")]
  106. public IActionResult GetGoodsWOCount(string projectid, int datetype = -1)
  107. {
  108. string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value;
  109. //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result;
  110. //var userinfo = userstr.ToJObject()["data"].ToString().ToObject<UserInfoModel>();
  111. string allprojectrole = _configuration["allprojectrole"];
  112. var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole);
  113. var userinfo = JsonHelper.JsonToEntity<UserAccountInfoModel>(userinfos.ToJson());
  114. string stime = string.Empty, etime = string.Empty;
  115. //获取当天、本周、本月、本年、累计时间
  116. if (datetype != -1)
  117. {
  118. GetStartEndTime(datetype, out stime, out etime);
  119. }
  120. var result = _distributionappchartRepository.GetGoodsWOCount(projectid, stime, etime, userinfo);
  121. return Success("获取成功", result);
  122. }
  123. #endregion
  124. /// <summary>
  125. /// 获取当天、本周、本月、本年、累计时间
  126. /// </summary>
  127. /// <param name="datetype"></param>
  128. /// <param name="start"></param>
  129. /// <param name="end"></param>
  130. public void GetStartEndTime(int datetype, out string start, out string end)
  131. {
  132. start = string.Empty;
  133. end = string.Empty;
  134. var datenow = DateTime.Now;
  135. var datestart = datenow;
  136. var dateend = datenow;
  137. switch (datetype)
  138. {
  139. case 0://当天
  140. break;
  141. case 1://本周
  142. int n = (int)datenow.DayOfWeek == 0 ? 7 : (int)datenow.DayOfWeek;
  143. datestart = datenow.AddDays(1 - n);//本周周一
  144. dateend = datestart.AddDays(6);//本周周日
  145. break;
  146. case 2://本月
  147. datestart = datenow.AddDays(1 - datenow.Day); //本月月初
  148. dateend = datestart.AddMonths(1).AddDays(-1); //本月月末
  149. break;
  150. case 3://本年
  151. datestart = new DateTime(datenow.Year, 1, 1); //本年年初
  152. dateend = new DateTime(datenow.Year, 12, 31); //本年年末
  153. break;
  154. case 4://全部
  155. break;
  156. default:
  157. break;
  158. }
  159. if (datetype != 4)
  160. {
  161. start = datestart.ToString("yyyy-MM-dd");
  162. end = dateend.ToString("yyyy-MM-dd");
  163. }
  164. }
  165. }
  166. }