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
}
}