diff --git a/DOAN.Admin.WebApi/Controllers/MES/Quality/FQC/QcFinishedproductDefectController.cs b/DOAN.Admin.WebApi/Controllers/MES/Quality/FQC/QcFinishedproductDefectController.cs index 0afa0c4..b594c0c 100644 --- a/DOAN.Admin.WebApi/Controllers/MES/Quality/FQC/QcFinishedproductDefectController.cs +++ b/DOAN.Admin.WebApi/Controllers/MES/Quality/FQC/QcFinishedproductDefectController.cs @@ -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); + + } + } } diff --git a/DOAN.Model/MES/Quality/FQC/Dto/QueryFQCShowDto.cs b/DOAN.Model/MES/Quality/FQC/Dto/QueryFQCShowDto.cs new file mode 100644 index 0000000..c8140fb --- /dev/null +++ b/DOAN.Model/MES/Quality/FQC/Dto/QueryFQCShowDto.cs @@ -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 + { + /// + ///搜索时间 + /// + public DateTime[] SearchDateTime { get; set; } + + /// + /// 工单号 + /// + public string Workorder { get; set; } + + public string ProductName { get; set; } + + public string ProductCode { get; set; } + + /// + /// 检查人员 + /// + public string CheckName { get; set; } + /// + /// 缺陷名称 + /// + public string DefectName { get; set; } + + } + + + public class ResultFQCShowDto + { + /// + /// 工单号(一旦确定,不可更改) + /// + public string Workorder { get; set; } + + /// + /// 主体品名 + /// + + public string productionName { get; set; } + + /// + /// 主体型号 + /// + + public string productionCode { get; set; } + + + /// + /// 派发数量 + /// + + public int? DispatchNum { get; set; } + + /// + /// 完成数量 + /// + + public int? FinishedNum { get; set; } + + /// + /// 缺陷总数(不合适数) + /// + public int? DefectAllNum { get; set; } + + /// + /// 合格数 + /// + public int? QualifiedNum { get; set; } + + + /// + /// 缺陷详情 + /// + public Dictionary DefectDetailDictionary { get; set; } + + + } +} diff --git a/DOAN.Service/MES/Quality/FQC/IService/IQcFinishedproductDefectService.cs b/DOAN.Service/MES/Quality/FQC/IService/IQcFinishedproductDefectService.cs index 26fc38a..772aa4f 100644 --- a/DOAN.Service/MES/Quality/FQC/IService/IQcFinishedproductDefectService.cs +++ b/DOAN.Service/MES/Quality/FQC/IService/IQcFinishedproductDefectService.cs @@ -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 SearchDefectList(string WorkOrder); + + PagedInfo SearchDefectStatisticsPage(QueryFQCShowDto queryFQCShow); } } diff --git a/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs b/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs index 958e41c..a743a8a 100644 --- a/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs +++ b/DOAN.Service/MES/Quality/FQC/QcFinishedproductDefectService.cs @@ -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().Where(it => it.Workorder == WorkOrder).ToList(); } + /// + /// 分页查询缺陷统计 + /// + /// + /// + public PagedInfo SearchDefectStatisticsPage(QueryFQCShowDto queryFQCShow) + { + var predicate = Expressionable.Create() + .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().RightJoin((t1,t2)=>t1.Workorder==t2.Workorder) + .RightJoin((t1,t2,t3)=> + + + + } + } }