using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using MadRunFabric.Common; using Microsoft.AspNetCore.Authorization; using Api.SignToken; using Microsoft.Extensions.Logging; using DistributionApi.IRepositories; using System.Security.Claims; using Microsoft.Extensions.Configuration; namespace DistributionApi.Controllers.reportmanage { /// /// 配送报表统计 /// [Authorize] [ApiVersion("6.0")] [Produces("application/json")] [Route("api/[controller]")] public class DistributionWorkOrderReportController : BaseController { private readonly ILogger _logger; private readonly IConfiguration _configuration; private readonly ISys_User_AccountRepository _sys_user_accountRepository; private readonly ISignTokenService _signTokenService; private readonly IDistributionWorkOrderReportRepository _distributionworkorderreportRepository; public DistributionWorkOrderReportController( ILogger logger, IConfiguration configuration, ISys_User_AccountRepository sys_user_accountRepository, ISignTokenService signTokenService, IDistributionWorkOrderReportRepository distributionworkorderreportRepository) { _logger = logger; _configuration = configuration; _sys_user_accountRepository = sys_user_accountRepository; _signTokenService = signTokenService; _distributionworkorderreportRepository = distributionworkorderreportRepository; } #region 物品种类 /// /// 物品种类运送量 - 总体统计报表 /// /// 项目id /// 科室 /// 用户code /// 开始时间 /// 结束时间 /// [HttpGet("getwocountforgoods")] public IActionResult GetGoodsCount(string projectid, string departmentname, string usercode, string stime, string etime) { string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result; //var userinfo = userstr.ToJObject()["data"].ToString().ToObject(); string allprojectrole = _configuration["allprojectrole"]; var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole); var userinfo = JsonHelper.JsonToEntity(userinfos.ToJson()); var result = _distributionworkorderreportRepository.GetWOCountForGoods(projectid, departmentname, usercode, stime, etime, userinfo); return Success("获取成功", result); } /// /// 物品运送量 - 明细统计报表 /// /// 项目id /// 科室 /// 用户code /// 开始时间 /// 结束时间 /// [HttpGet("getwocountforgoodsdetail")] public IActionResult GetGoodsDetailCount(string projectid, string departmentname, string usercode, string stime, string etime) { string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result; //var userinfo = userstr.ToJObject()["data"].ToString().ToObject(); string allprojectrole = _configuration["allprojectrole"]; var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole); var userinfo = JsonHelper.JsonToEntity(userinfos.ToJson()); var result = _distributionworkorderreportRepository.GetWOCountForGoodsDetail(projectid, departmentname, usercode, stime, etime, userinfo); return Success("获取成功", result); } #endregion #region 配送工单 /// /// 医务科室运送报单量 - 统计报表 /// /// 项目id /// 用户code /// 开始时间 /// 结束时间 /// [HttpGet("getwocountfordepartment")] public IActionResult GetWOForDepartmentCount(string projectid, string usercode, string stime, string etime) { string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result; //var userinfo = userstr.ToJObject()["data"].ToString().ToObject(); string allprojectrole = _configuration["allprojectrole"]; var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole); var userinfo = JsonHelper.JsonToEntity(userinfos.ToJson()); var result = _distributionworkorderreportRepository.GetWOCountForDepartment(projectid, usercode, stime, etime, userinfo); return Success("获取成功", result); } /// /// 员工运送工作量 - 统计报表 /// /// 项目id /// 用户code /// 开始时间 /// 结束时间 /// [HttpGet("getwocountbyuser")] public IActionResult GetWOForUserCount(string projectid, string usercode, string stime, string etime) { string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; //string rolecode = User.Claims.FirstOrDefault(c => c.Type == "RoleCode").Value; //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result; //var userinfo = userstr.ToJObject()["data"].ToString().ToObject(); string allprojectrole = _configuration["allprojectrole"]; var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole); var userinfo = JsonHelper.JsonToEntity(userinfos.ToJson()); var result = _distributionworkorderreportRepository.GetWOCountForUser(projectid, usercode, stime, etime, userinfo); return Success("获取成功", result); } #endregion #region 工单评价 /// /// 员工满意度评价 - 统计报表 /// /// 项目id /// 用户code /// 开始时间 /// 结束时间 /// [HttpGet("getwoevaluatecountforuser")] public IActionResult GetWOEvaluateForUserCount(string projectid, string usercode, string stime, string etime) { string nowusercode = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.Sid).Value; //string rolecode = User.Claims.FirstOrDefault(c => c.Type == "RoleCode").Value; //var userstr = _signTokenService.GetUserInfoAsync(nowusercode).Result; //var userinfo = userstr.ToJObject()["data"].ToString().ToObject(); string allprojectrole = _configuration["allprojectrole"]; var userinfos = _sys_user_accountRepository.GetUserInfo(nowusercode, allprojectrole); var userinfo = JsonHelper.JsonToEntity(userinfos.ToJson()); var result = _distributionworkorderreportRepository.GetWOEvaluateCountForUser(projectid, usercode, stime, etime, userinfo); return Success("获取成功", result); } #endregion } }