This commit is contained in:
2025-01-14 09:40:33 +08:00
parent e3005bb266
commit 0e09b4a45c
5 changed files with 267 additions and 32 deletions

View File

@@ -1,9 +1,9 @@
using Microsoft.AspNetCore.Mvc;
using ZR.Model.Dto;
using ZR.Model.Business;
using ZR.Service.Business.IBusinessService;
using ZR.Admin.WebApi.Extensions;
using ZR.Admin.WebApi.Filters;
using ZR.Model.Business;
using ZR.Model.Dto;
using ZR.Service.Business.IBusinessService;
//创建时间2025-01-02
namespace ZR.Admin.WebApi.Controllers
@@ -20,7 +20,9 @@ namespace ZR.Admin.WebApi.Controllers
/// </summary>
private readonly IQcGp12ServiceStatisticsService _QcGp12ServiceStatisticsService;
public QcGp12ServiceStatisticsController(IQcGp12ServiceStatisticsService QcGp12ServiceStatisticsService)
public QcGp12ServiceStatisticsController(
IQcGp12ServiceStatisticsService QcGp12ServiceStatisticsService
)
{
_QcGp12ServiceStatisticsService = QcGp12ServiceStatisticsService;
}
@@ -32,12 +34,83 @@ namespace ZR.Admin.WebApi.Controllers
/// <returns></returns>
[HttpGet("list")]
[ActionPermissionFilter(Permission = "business:qcgp12servicestatistics:list")]
public IActionResult QueryQcGp12ServiceStatistics([FromQuery] QcGp12ServiceStatisticsQueryDto parm)
public IActionResult QueryQcGp12ServiceStatistics(
[FromQuery] QcGp12ServiceStatisticsQueryDto parm
)
{
var response = _QcGp12ServiceStatisticsService.GetList(parm);
return SUCCESS(response);
}
/// <summary>
/// 查询质量GP12统计报表业务模块列表
/// </summary>
/// <param name="parm"></param>
/// <returns></returns>
[HttpPost("GetReviseList")]
[AllowAnonymous]
public IActionResult GetReviseList([FromBody] QcGp12ServiceStatisticsQueryDto parm)
{
var response = _QcGp12ServiceStatisticsService.GetReviseList(parm);
// 初始化统计数据
int totalRequireNumber = 0;
int totalQualifiedNumber = 0;
int totalPolishNumber = 0;
int totalDamoNumber = 0;
int totalBaofeiNumber = 0;
int totalListCount = 0;
// 将动态属性转换为字典并合并到主对象中,并计算统计数据
var resultWithDefects = response
.Select(item =>
{
var itemDict = new Dictionary<string, object>();
foreach (var prop in typeof(QcGp12ServiceStatisticsDto).GetProperties())
{
itemDict[prop.Name] = prop.GetValue(item);
}
// 添加动态属性
foreach (var dynamicProp in item.DynamicProperties)
{
itemDict[dynamicProp.Key] = dynamicProp.Value;
}
// 累加统计数据
totalRequireNumber += Convert.ToInt32(item.RequireNumber);
totalQualifiedNumber += Convert.ToInt32(item.QualifiedNumber);
totalPolishNumber += Convert.ToInt32(item.PolishNumber);
totalDamoNumber += Convert.ToInt32(item.DamoNumber);
totalBaofeiNumber += Convert.ToInt32(item.BaofeiNumber);
totalListCount += 1;
return itemDict;
})
.ToList();
// 计算合格率
double qualifiedRate =
totalRequireNumber > 0
? (double)totalQualifiedNumber / totalRequireNumber * 150
: 0;
totalListCount = totalListCount / 3;
// 创建统计数据字典
var statistics = new Dictionary<string, object>
{
{ "TotalRequireNumber", totalRequireNumber },
{ "TotalQualifiedNumber", totalQualifiedNumber },
{ "QualifiedRate", $"{qualifiedRate:F2}%" },
{ "TotalPolishNumber", totalPolishNumber },
{ "TotalDamoNumber", totalDamoNumber },
{ "TotalBaofeiNumber", totalBaofeiNumber },
{ "TotalListCount", totalListCount }
};
// 返回包含数据和统计数据的对象
var result = new { list = resultWithDefects, statistics = statistics };
return SUCCESS(result);
}
/// <summary>
/// 查询质量GP12统计报表业务模块详情
@@ -49,7 +122,7 @@ namespace ZR.Admin.WebApi.Controllers
public IActionResult GetQcGp12ServiceStatistics(string Id)
{
var response = _QcGp12ServiceStatisticsService.GetInfo(Id);
var info = response.Adapt<QcGp12ServiceStatistics>();
return SUCCESS(info);
}
@@ -77,7 +150,9 @@ namespace ZR.Admin.WebApi.Controllers
[HttpPut]
[ActionPermissionFilter(Permission = "business:qcgp12servicestatistics:edit")]
[Log(Title = "质量GP12统计报表业务模块", BusinessType = BusinessType.UPDATE)]
public IActionResult UpdateQcGp12ServiceStatistics([FromBody] QcGp12ServiceStatisticsDto parm)
public IActionResult UpdateQcGp12ServiceStatistics(
[FromBody] QcGp12ServiceStatisticsDto parm
)
{
var modal = parm.Adapt<QcGp12ServiceStatistics>().ToUpdate(HttpContext);
var response = _QcGp12ServiceStatisticsService.UpdateQcGp12ServiceStatistics(modal);
@@ -95,15 +170,14 @@ namespace ZR.Admin.WebApi.Controllers
public IActionResult DeleteQcGp12ServiceStatistics(string ids)
{
int[] idsArr = Tools.SpitIntArrary(ids);
if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"删除失败Id 不能为空")); }
if (idsArr.Length <= 0)
{
return ToResponse(ApiResult.Error($"删除失败Id 不能为空"));
}
var response = _QcGp12ServiceStatisticsService.Delete(idsArr);
return ToResponse(response);
}
}
}
}