diff --git a/aucma-report/src/main/java/com/aucma/report/controller/QualityReportController.java b/aucma-report/src/main/java/com/aucma/report/controller/QualityReportController.java index 146244b..0b3e9fa 100644 --- a/aucma-report/src/main/java/com/aucma/report/controller/QualityReportController.java +++ b/aucma-report/src/main/java/com/aucma/report/controller/QualityReportController.java @@ -4,10 +4,7 @@ import com.aucma.common.core.controller.BaseController; import com.aucma.common.core.domain.AjaxResult; import com.aucma.common.core.page.TableDataInfo; import com.aucma.common.utils.poi.ExcelUtil; -import com.aucma.report.domain.FewerMistakesReport; -import com.aucma.report.domain.ProductTraceabilityReport; -import com.aucma.report.domain.QualityDefectsStatisticalAnalysis; -import com.aucma.report.domain.QualityIssuesReport; +import com.aucma.report.domain.*; import com.aucma.report.service.IQualityReportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -64,6 +61,18 @@ public class QualityReportController extends BaseController { return success(list); } + /** + * 质量缺陷统计分析明细导出 + * @param hashMap + * @return + */ + @PostMapping("/qualityDefectsDetailList/export" ) + public void qualityDefectsDetailListExport(HttpServletResponse response, @RequestParam(required = false) Map hashMap) { + List list = qualityReportService.qualityDefectsDetailListExport(hashMap); + ExcelUtil util = new ExcelUtil<>(QualityDefectsDetail. class); + util.exportExcel(response, list, "质量缺陷统计分析明细" ); + } + /** * 少错件报表 * @param hashMap diff --git a/aucma-report/src/main/java/com/aucma/report/domain/QualityDefectsDetail.java b/aucma-report/src/main/java/com/aucma/report/domain/QualityDefectsDetail.java new file mode 100644 index 0000000..a36bc43 --- /dev/null +++ b/aucma-report/src/main/java/com/aucma/report/domain/QualityDefectsDetail.java @@ -0,0 +1,162 @@ +package com.aucma.report.domain; + +import com.aucma.common.annotation.Excel; +import com.aucma.common.core.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonProperty; + +/** + * 质量缺陷统计分析报表 + * + * @author Yinq + * @date 2024-03-15 + */ +public class QualityDefectsDetail extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * 工厂 + */ + @Excel(name = "工厂") + @JsonProperty("FACTORY_NAME") + private String FACTORY_NAME; + + /** + * 产线 + */ + @Excel(name = "产线") + @JsonProperty("PRODUCT_LINE_NAME") + private String PRODUCT_LINE_NAME; + + /** + * 质检工位编号 + */ + @Excel(name = "质检工位编号") + @JsonProperty("STATION_CODE") + private String STATION_CODE; + + /** + * 质检工位名称 + */ + @Excel(name = "质检工位名称") + @JsonProperty("STATION_NAME") + private String STATION_NAME; + + /** + * 检测数不合格数 + */ + @Excel(name = "检测数不合格数") +// @JsonProperty("REWORK_NUMBER") + private Long REWORK_NUMBER; + + /** + * 序号 + */ + @Excel(name = "序号") + @JsonProperty("REWORK_NUMBER") + private Long SEQ; + + /** + * 缺陷名称 + */ + @Excel(name = "缺陷名称") + @JsonProperty("QUALITY_DEFECT_NAME") + private String QUALITY_DEFECT_NAME; + + /** + * 缺陷数量 + */ + @Excel(name = "缺陷数量") + @JsonProperty("DEFECT_NUMBER") + private Long DEFECT_NUMBER; + + /** + * 缺陷比例(%) + */ + @Excel(name = "比例(%)") + @JsonProperty("比例(%)") + private String RATE; + + public Long getSEQ() { + return SEQ; + } + + public void setSEQ(Long SEQ) { + this.SEQ = SEQ; + } + + public String getQUALITY_DEFECT_NAME() { + return QUALITY_DEFECT_NAME; + } + + public void setQUALITY_DEFECT_NAME(String QUALITY_DEFECT_NAME) { + this.QUALITY_DEFECT_NAME = QUALITY_DEFECT_NAME; + } + + public Long getDEFECT_NUMBER() { + return DEFECT_NUMBER; + } + + public void setDEFECT_NUMBER(Long DEFECT_NUMBER) { + this.DEFECT_NUMBER = DEFECT_NUMBER; + } + + public String getFACTORY_NAME() { + return FACTORY_NAME; + } + + public void setFACTORY_NAME(String FACTORY_NAME) { + this.FACTORY_NAME = FACTORY_NAME; + } + + public String getPRODUCT_LINE_NAME() { + return PRODUCT_LINE_NAME; + } + + public void setPRODUCT_LINE_NAME(String PRODUCT_LINE_NAME) { + this.PRODUCT_LINE_NAME = PRODUCT_LINE_NAME; + } + + public String getSTATION_CODE() { + return STATION_CODE; + } + + public void setSTATION_CODE(String STATION_CODE) { + this.STATION_CODE = STATION_CODE; + } + + public String getSTATION_NAME() { + return STATION_NAME; + } + + public void setSTATION_NAME(String STATION_NAME) { + this.STATION_NAME = STATION_NAME; + } + + public Long getREWORK_NUMBER() { + return REWORK_NUMBER; + } + + public void setREWORK_NUMBER(Long REWORK_NUMBER) { + this.REWORK_NUMBER = REWORK_NUMBER; + } + + public String getRATE() { + return RATE; + } + + public void setRATE(String RATE) { + this.RATE = RATE; + } + + @Override + public String toString() { + return "QualityDefectsStatisticalAnalysis{" + + "FACTORY_NAME='" + FACTORY_NAME + '\'' + + ", PRODUCT_LINE_NAME='" + PRODUCT_LINE_NAME + '\'' + + ", STATION_CODE='" + STATION_CODE + '\'' + + ", STATION_NAME='" + STATION_NAME + '\'' + + ", REWORK_NUMBER=" + REWORK_NUMBER + + ", RATE='" + RATE + '\'' + + '}'; + } +} diff --git a/aucma-report/src/main/java/com/aucma/report/service/IQualityReportService.java b/aucma-report/src/main/java/com/aucma/report/service/IQualityReportService.java index 52f0a80..a065b6b 100644 --- a/aucma-report/src/main/java/com/aucma/report/service/IQualityReportService.java +++ b/aucma-report/src/main/java/com/aucma/report/service/IQualityReportService.java @@ -1,9 +1,6 @@ package com.aucma.report.service; -import com.aucma.report.domain.FewerMistakesReport; -import com.aucma.report.domain.ProductTraceabilityReport; -import com.aucma.report.domain.QualityDefectsStatisticalAnalysis; -import com.aucma.report.domain.QualityIssuesReport; +import com.aucma.report.domain.*; import java.util.HashMap; import java.util.List; @@ -74,4 +71,11 @@ public interface IQualityReportService * @return */ List> productTraceabilityDetailList(Map hashMap); + + /** + * 质量缺陷统计分析明细导出 + * @param hashMap + * @return + */ + List qualityDefectsDetailListExport(Map hashMap); } diff --git a/aucma-report/src/main/java/com/aucma/report/service/impl/QualityReportServiceImpl.java b/aucma-report/src/main/java/com/aucma/report/service/impl/QualityReportServiceImpl.java index 5c306fc..3c850ff 100644 --- a/aucma-report/src/main/java/com/aucma/report/service/impl/QualityReportServiceImpl.java +++ b/aucma-report/src/main/java/com/aucma/report/service/impl/QualityReportServiceImpl.java @@ -1,14 +1,12 @@ package com.aucma.report.service.impl; -import com.aucma.report.domain.FewerMistakesReport; -import com.aucma.report.domain.ProductTraceabilityReport; -import com.aucma.report.domain.QualityDefectsStatisticalAnalysis; -import com.aucma.report.domain.QualityIssuesReport; +import com.aucma.report.domain.*; import com.aucma.report.mapper.GeneralReportMapper; import com.aucma.report.service.IQualityReportService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -108,4 +106,35 @@ public class QualityReportServiceImpl implements IQualityReportService { return reportMapper.productTraceabilityDetailList(hashMap); } + /** + * 质量缺陷统计分析明细导出 + * @param hashMap + * @return + */ + @Override + public List qualityDefectsDetailListExport(Map hashMap) { + ArrayList defectsDetailArrayList = new ArrayList<>(); + List analysisList = this.qualityDefectsStatisticalAnalysisList(hashMap); + for (QualityDefectsStatisticalAnalysis item : analysisList) { + hashMap.put("stationCode",item.getSTATION_CODE()); + List> hashMaps = this.qualityDefectsDetailList(hashMap); + for (HashMap map : hashMaps) { + QualityDefectsDetail defectsDetail = new QualityDefectsDetail(); + defectsDetail.setFACTORY_NAME(item.getFACTORY_NAME()); + defectsDetail.setPRODUCT_LINE_NAME(item.getPRODUCT_LINE_NAME()); + defectsDetail.setSTATION_CODE(item.getSTATION_CODE()); + defectsDetail.setSTATION_NAME(item.getSTATION_NAME()); + defectsDetail.setREWORK_NUMBER(item.getREWORK_NUMBER()); + defectsDetail.setSEQ(Long.valueOf(String.valueOf(map.get("SEQ")))); + defectsDetail.setQUALITY_DEFECT_NAME(String.valueOf(map.get("QUALITY_DEFECT_NAME"))); + defectsDetail.setDEFECT_NUMBER(Long.valueOf(String.valueOf(map.get("DEFECT_NUMBER")))); + defectsDetail.setRATE(String.valueOf(map.get("RATE"))); + defectsDetailArrayList.add(defectsDetail); + + + } + } + return defectsDetailArrayList; + } + } diff --git a/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml b/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml index df1c6e0..dc7296e 100644 --- a/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml +++ b/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml @@ -286,7 +286,7 @@ SELECT DA.QUALITY_DEFECT_NAME, COUNT(*) AS DEFECT_NUMBER, - ROUND(COUNT(*) / TD.ALL_DEFECT * 100, 0) || '%' AS RATE + TO_CHAR(ROUND(COUNT(*) / TD.ALL_DEFECT * 100, 2), 'FM99990.00') || '%' AS RATE FROM ( SELECT RQI.QUALITY_DEFECT_NAME,