This commit is contained in:
qianhao.xu
2024-12-27 16:19:40 +08:00
parent caa7faac58
commit 3449390800
4 changed files with 129 additions and 0 deletions

View File

@@ -60,6 +60,20 @@ namespace DOAN.WebApi.Controllers.MES.quality.FQC
return SUCCESS(response);
}
//TODO 分页查询缺陷统计
[HttpPost("search_defect_Statistics_page")]
public IActionResult SearchDefectStatisticsPage([FromBody]QueryFQCShowDto queryFQCShow)
{
if(queryFQCShow == null)
{
throw new CustomException("queryFQCShow为空");
}
var response = qcFinishedproductDefectService.SearchDefectStatisticsPage(queryFQCShow);
return SUCCESS(response);
}
}
}

View File

@@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DOAN.Model.MES.Quality.FQC.Dto
{
public class QueryFQCShowDto : PagerInfo
{
/// <summary>
///搜索时间
/// </summary>
public DateTime[] SearchDateTime { get; set; }
/// <summary>
/// 工单号
/// </summary>
public string Workorder { get; set; }
public string ProductName { get; set; }
public string ProductCode { get; set; }
/// <summary>
/// 检查人员
/// </summary>
public string CheckName { get; set; }
/// <summary>
/// 缺陷名称
/// </summary>
public string DefectName { get; set; }
}
public class ResultFQCShowDto
{
/// <summary>
/// 工单号(一旦确定,不可更改)
/// </summary>
public string Workorder { get; set; }
/// <summary>
/// 主体品名
/// </summary>
public string productionName { get; set; }
/// <summary>
/// 主体型号
/// </summary>
public string productionCode { get; set; }
/// <summary>
/// 派发数量
/// </summary>
public int? DispatchNum { get; set; }
/// <summary>
/// 完成数量
/// </summary>
public int? FinishedNum { get; set; }
/// <summary>
/// 缺陷总数(不合适数)
/// </summary>
public int? DefectAllNum { get; set; }
/// <summary>
/// 合格数
/// </summary>
public int? QualifiedNum { get; set; }
/// <summary>
/// 缺陷详情
/// </summary>
public Dictionary<string,int> DefectDetailDictionary { get; set; }
}
}

View File

@@ -1,5 +1,6 @@
using DOAN.Model.MES.quality.FQC;
using DOAN.Model.MES.Quality.FQC.Dto;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -13,5 +14,7 @@ namespace DOAN.Service.MES.quality.FQC.IService
bool AddDefectNum(QueryFQCDto queryFQCDto);
bool UpdateDefectNum(QueryFQCDto queryFQCDto);
List<QcFinishedproductDefectCollection> SearchDefectList(string WorkOrder);
PagedInfo<ResultFQCShowDto> SearchDefectStatisticsPage(QueryFQCShowDto queryFQCShow);
}
}

View File

@@ -1,9 +1,11 @@
using DOAN.Model;
using DOAN.Model.MES.product;
using DOAN.Model.MES.quality.FQC;
using DOAN.Model.MES.quality.IQC;
using DOAN.Model.MES.quality.IQC.Dto;
using DOAN.Model.MES.Quality.FQC.Dto;
using DOAN.Model.System;
using DOAN.Model.System.Dto;
using DOAN.Repository;
using DOAN.Service.MES.quality.FQC.IService;
using Infrastructure.Attribute;
@@ -112,6 +114,29 @@ namespace DOAN.Service.MES.quality.FQC
return Context.Queryable<QcFinishedproductDefectCollection>().Where(it => it.Workorder == WorkOrder).ToList();
}
/// <summary>
/// 分页查询缺陷统计
/// </summary>
/// <param name="queryFQCShow"></param>
/// <returns></returns>
public PagedInfo<ResultFQCShowDto> SearchDefectStatisticsPage(QueryFQCShowDto queryFQCShow)
{
var predicate = Expressionable.Create<ProWorkorder, ProReportwork01, QcFinishedproductDefectCollection>()
.AndIF(!string.IsNullOrEmpty(queryFQCShow.Workorder), (t1, t2, t3) => t1.Workorder.Contains(queryFQCShow.Workorder))
.AndIF(!string.IsNullOrEmpty(queryFQCShow.ProductName), (t1, t2, t3) => t1.productionName.Contains(queryFQCShow.ProductName))
.AndIF(!string.IsNullOrEmpty(queryFQCShow.ProductCode), (t1, t2, t3) => t1.productionCode.Contains(queryFQCShow.ProductCode))
.AndIF(!string.IsNullOrEmpty(queryFQCShow.CheckName), (t1, t2, t3) => t3.CheckName.Contains(queryFQCShow.CheckName))
.AndIF(!string.IsNullOrEmpty(queryFQCShow.DefectName), (t1, t2, t3) => t3.CheckName.Contains(queryFQCShow.DefectName))
.AndIF(queryFQCShow.SearchDateTime != null && queryFQCShow.SearchDateTime.Length >= 2 && queryFQCShow.SearchDateTime[0] > DateTime.MinValue, (t1, t2, t3) => t3.CheckDatetime > queryFQCShow.SearchDateTime[0])
.AndIF(queryFQCShow.SearchDateTime != null && queryFQCShow.SearchDateTime.Length >= 2 && queryFQCShow.SearchDateTime[1] > DateTime.MinValue, (t1, t2, t3) => t3.CheckDatetime > queryFQCShow.SearchDateTime[1]);
Context.Queryable<ProWorkorder>().RightJoin<ProReportwork01>((t1,t2)=>t1.Workorder==t2.Workorder)
.RightJoin<QcFinishedproductDefectCollection>((t1,t2,t3)=>
}
}
}