From 2ddca06f57051ce1f63b79a694150a6f5a93336d Mon Sep 17 00:00:00 2001 From: yinq Date: Fri, 22 Mar 2024 12:02:20 +0800 Subject: [PATCH] =?UTF-8?q?change=20-=20=E5=8F=91=E6=B3=A1=E7=AE=B1?= =?UTF-8?q?=E4=BD=93=E8=BF=BD=E6=BA=AF=E6=9F=A5=E8=AF=A2=E5=B7=AE=E5=BC=82?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E6=8A=A5=E8=A1=A8=E9=A1=B5=E9=9D=A2=E4=B8=8E?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductionReportController.java | 29 +++ .../domain/BoxTraceabilityDetailReport.java | 230 ++++++++++++++++++ .../report/mapper/GeneralReportMapper.java | 7 + .../service/IProductionReportService.java | 8 + .../impl/MaterialCompletionServiceImpl.java | 2 +- .../impl/ProductionReportServiceImpl.java | 12 +- .../mapper/report/GeneralReportMapper.xml | 113 +++++++-- 7 files changed, 381 insertions(+), 20 deletions(-) create mode 100644 aucma-report/src/main/java/com/aucma/report/domain/BoxTraceabilityDetailReport.java diff --git a/aucma-report/src/main/java/com/aucma/report/controller/ProductionReportController.java b/aucma-report/src/main/java/com/aucma/report/controller/ProductionReportController.java index 47a9e5e..cffed5f 100644 --- a/aucma-report/src/main/java/com/aucma/report/controller/ProductionReportController.java +++ b/aucma-report/src/main/java/com/aucma/report/controller/ProductionReportController.java @@ -5,6 +5,7 @@ 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.BoxTraceabilityDetailReport; import com.aucma.report.domain.BoxTraceabilityReport; import com.aucma.report.service.IProductionReportService; import org.springframework.beans.factory.annotation.Autowired; @@ -76,6 +77,18 @@ public class ProductionReportController extends BaseController { return getDataTable(list); } + /** + * 发泡箱体追溯详情报表 + * @param hashMap + * @return + */ + @GetMapping("/boxTraceabilityDetailReport") + public TableDataInfo boxTraceabilityDetailReport(@RequestParam(required = false) Map hashMap) { + startPage(); + List list = productionReportService.boxTraceabilityDetailReport(hashMap); + return getDataTable(list); + } + /** * 发泡箱体追溯报表导出 * @param hashMap @@ -83,9 +96,25 @@ public class ProductionReportController extends BaseController { */ @PostMapping("/boxTraceabilityReport/export") public void boxTraceabilityReportExport(HttpServletResponse response, @RequestParam(required = false) Map hashMap) { + hashMap.put("pageNum",null); + hashMap.put("pageSize",null); List list = productionReportService.boxTraceabilityReport(hashMap); ExcelUtil util = new ExcelUtil<>(BoxTraceabilityReport. class); util.exportExcel(response, list, "发泡箱体追溯报表" ); } + /** + * 发泡箱体追溯明细报表导出 + * @param hashMap + * @return + */ + @PostMapping("/boxTraceabilityDetailReport/export") + public void boxTraceabilityDetailReport(HttpServletResponse response, @RequestParam(required = false) Map hashMap) { + hashMap.put("pageNum",null); + hashMap.put("pageSize",null); + List list = productionReportService.boxTraceabilityDetailReport(hashMap); + ExcelUtil util = new ExcelUtil<>(BoxTraceabilityDetailReport. class); + util.exportExcel(response, list, "发泡箱体追溯差异明细报表" ); + } + } diff --git a/aucma-report/src/main/java/com/aucma/report/domain/BoxTraceabilityDetailReport.java b/aucma-report/src/main/java/com/aucma/report/domain/BoxTraceabilityDetailReport.java new file mode 100644 index 0000000..2727ade --- /dev/null +++ b/aucma-report/src/main/java/com/aucma/report/domain/BoxTraceabilityDetailReport.java @@ -0,0 +1,230 @@ +package com.aucma.report.domain; + +import com.aucma.common.annotation.Excel; +import com.aucma.common.core.domain.BaseEntity; +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.Date; + +/** + * 发泡箱体追溯报表 + * + * @author Yinq + * @date 2024-03-15 + */ +public class BoxTraceabilityDetailReport extends BaseEntity { + private static final long serialVersionUID = 1L; + + /** + * SAP订单编号 + */ + @Excel(name = "SAP订单编号") + @JsonProperty("ORDER_CODE") + private String ORDER_CODE; + + /** + * 销售订单编号 + */ + @Excel(name = "销售订单编号") + @JsonProperty("SALEORDER_CODE") + private String SALEORDER_CODE; + + /** + * 销售订单行号 + */ + @Excel(name = "销售订单行号") + @JsonProperty("SALEORDER_LINENUMBER") + private String SALEORDER_LINENUMBER; + + /** + * 物料编号 + */ + @Excel(name = "物料编号") + @JsonProperty("MATERIAL_CODE") + private String MATERIAL_CODE; + + /** + * 产品型号 + */ + @Excel(name = "产品型号") + @JsonProperty("MATERIAL_MODEL") + private String MATERIAL_MODEL; + + /** + * 订单数 + */ + @Excel(name = "订单数") + @JsonProperty("ORDER_AMOUNT") + private Long ORDER_AMOUNT; + + /** + * MES箱体码 + */ + @Excel(name = "MES箱体码") + @JsonProperty("BOX_CODE") + private String BOX_CODE; + + /** + * 泡前入库数 + */ + private Long BEFORE_NUMBER; + + /** + * 扫描下线数 + */ + private Long SCAN_NUMBER; + + /** + * 差异数 + */ + private Long DIFF_NUMBER; + + + /** + * 最后扫描点 + */ + @Excel(name = "最后扫描点") + @JsonProperty("SCAN_SPOT") + private String SCAN_SPOT; + + /** + * 泡前入库时间 + */ + private Date IN_STORE_TIME; + + /** + * 扫描下线时间 + */ + private Date COMPLETE_DATE; + + /** + * 是否报废 + */ + @Excel(name = "是否报废") + @JsonProperty("SCRAP_FLAG") + private String SCRAP_FLAG; + + private String productLineCode; + + + + public String getORDER_CODE() { + return ORDER_CODE; + } + + public void setORDER_CODE(String ORDER_CODE) { + this.ORDER_CODE = ORDER_CODE; + } + + public String getSALEORDER_CODE() { + return SALEORDER_CODE; + } + + public void setSALEORDER_CODE(String SALEORDER_CODE) { + this.SALEORDER_CODE = SALEORDER_CODE; + } + + public String getSALEORDER_LINENUMBER() { + return SALEORDER_LINENUMBER; + } + + public void setSALEORDER_LINENUMBER(String SALEORDER_LINENUMBER) { + this.SALEORDER_LINENUMBER = SALEORDER_LINENUMBER; + } + + public String getMATERIAL_CODE() { + return MATERIAL_CODE; + } + + public void setMATERIAL_CODE(String MATERIAL_CODE) { + this.MATERIAL_CODE = MATERIAL_CODE; + } + + public String getMATERIAL_MODEL() { + return MATERIAL_MODEL; + } + + public void setMATERIAL_MODEL(String MATERIAL_MODEL) { + this.MATERIAL_MODEL = MATERIAL_MODEL; + } + + public Long getORDER_AMOUNT() { + return ORDER_AMOUNT; + } + + public void setORDER_AMOUNT(Long ORDER_AMOUNT) { + this.ORDER_AMOUNT = ORDER_AMOUNT; + } + + public String getBOX_CODE() { + return BOX_CODE; + } + + public void setBOX_CODE(String BOX_CODE) { + this.BOX_CODE = BOX_CODE; + } + + public Long getBEFORE_NUMBER() { + return BEFORE_NUMBER; + } + + public void setBEFORE_NUMBER(Long BEFORE_NUMBER) { + this.BEFORE_NUMBER = BEFORE_NUMBER; + } + + public Long getSCAN_NUMBER() { + return SCAN_NUMBER; + } + + public void setSCAN_NUMBER(Long SCAN_NUMBER) { + this.SCAN_NUMBER = SCAN_NUMBER; + } + + public Long getDIFF_NUMBER() { + return DIFF_NUMBER; + } + + public void setDIFF_NUMBER(Long DIFF_NUMBER) { + this.DIFF_NUMBER = DIFF_NUMBER; + } + + public String getSCAN_SPOT() { + return SCAN_SPOT; + } + + public void setSCAN_SPOT(String SCAN_SPOT) { + this.SCAN_SPOT = SCAN_SPOT; + } + + public Date getIN_STORE_TIME() { + return IN_STORE_TIME; + } + + public void setIN_STORE_TIME(Date IN_STORE_TIME) { + this.IN_STORE_TIME = IN_STORE_TIME; + } + + public Date getCOMPLETE_DATE() { + return COMPLETE_DATE; + } + + public void setCOMPLETE_DATE(Date COMPLETE_DATE) { + this.COMPLETE_DATE = COMPLETE_DATE; + } + + public String getSCRAP_FLAG() { + return SCRAP_FLAG; + } + + public void setSCRAP_FLAG(String SCRAP_FLAG) { + this.SCRAP_FLAG = SCRAP_FLAG; + } + + public String getProductLineCode() { + return productLineCode; + } + + public void setProductLineCode(String productLineCode) { + this.productLineCode = productLineCode; + } +} diff --git a/aucma-report/src/main/java/com/aucma/report/mapper/GeneralReportMapper.java b/aucma-report/src/main/java/com/aucma/report/mapper/GeneralReportMapper.java index 46a5f3f..eafdec5 100644 --- a/aucma-report/src/main/java/com/aucma/report/mapper/GeneralReportMapper.java +++ b/aucma-report/src/main/java/com/aucma/report/mapper/GeneralReportMapper.java @@ -108,4 +108,11 @@ public interface GeneralReportMapper { * @return */ List boxTraceabilityReport(Map hashMap); + + /** + * 发泡箱体追溯详情报表 + * @param hashMap + * @return + */ + List boxTraceabilityDetailReport(Map hashMap); } diff --git a/aucma-report/src/main/java/com/aucma/report/service/IProductionReportService.java b/aucma-report/src/main/java/com/aucma/report/service/IProductionReportService.java index bd4286d..2ce0809 100644 --- a/aucma-report/src/main/java/com/aucma/report/service/IProductionReportService.java +++ b/aucma-report/src/main/java/com/aucma/report/service/IProductionReportService.java @@ -1,5 +1,6 @@ package com.aucma.report.service; +import com.aucma.report.domain.BoxTraceabilityDetailReport; import com.aucma.report.domain.BoxTraceabilityReport; import java.util.HashMap; @@ -49,4 +50,11 @@ public interface IProductionReportService * @return */ List boxTraceabilityReport(Map hashMap); + + /** + * 发泡箱体追溯详情报表 + * @param hashMap + * @return + */ + List boxTraceabilityDetailReport(Map hashMap); } diff --git a/aucma-report/src/main/java/com/aucma/report/service/impl/MaterialCompletionServiceImpl.java b/aucma-report/src/main/java/com/aucma/report/service/impl/MaterialCompletionServiceImpl.java index 92fe64d..c07ce8c 100644 --- a/aucma-report/src/main/java/com/aucma/report/service/impl/MaterialCompletionServiceImpl.java +++ b/aucma-report/src/main/java/com/aucma/report/service/impl/MaterialCompletionServiceImpl.java @@ -93,7 +93,7 @@ public class MaterialCompletionServiceImpl implements IMaterialCompletionService /** * 二线质检存入过点数据 - * + * 质检合格->存质检数据 * @param inspection */ @Override diff --git a/aucma-report/src/main/java/com/aucma/report/service/impl/ProductionReportServiceImpl.java b/aucma-report/src/main/java/com/aucma/report/service/impl/ProductionReportServiceImpl.java index fc7c5c4..29a5972 100644 --- a/aucma-report/src/main/java/com/aucma/report/service/impl/ProductionReportServiceImpl.java +++ b/aucma-report/src/main/java/com/aucma/report/service/impl/ProductionReportServiceImpl.java @@ -1,6 +1,6 @@ package com.aucma.report.service.impl; -import com.aucma.report.domain.BasePdaRecord; +import com.aucma.report.domain.BoxTraceabilityDetailReport; import com.aucma.report.domain.BoxTraceabilityReport; import com.aucma.report.mapper.GeneralReportMapper; import com.aucma.report.service.IProductionReportService; @@ -70,5 +70,15 @@ public class ProductionReportServiceImpl implements IProductionReportService { return reportMapper.boxTraceabilityReport(hashMap); } + /** + * 发泡箱体追溯详情报表 + * @param hashMap + * @return + */ + @Override + public List boxTraceabilityDetailReport(Map hashMap) { + return reportMapper.boxTraceabilityDetailReport(hashMap); + } + } diff --git a/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml b/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml index a4f791d..aec42ef 100644 --- a/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml +++ b/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml @@ -117,19 +117,20 @@ ORDER BY B2.PRODUCT_LINE_CODE, VMC.ORDER_CODE - SELECT FACTORY_NAME, PRODUCT_LINE_NAME, STATION_CODE, STATION_NAME, - COUNT(*) INSPECTION_NUMBER, - SUM(REWORK_NUMBER) REWORK_NUMBER, + COUNT(*) INSPECTION_NUMBER, + SUM(REWORK_NUMBER) REWORK_NUMBER, ROUND((1 - SUM(REWORK_NUMBER) / COUNT(*)) * 100, 2) || '%' RATE FROM ( SELECT FY.FACTORY_NAME, BPP.PRODUCT_LINE_NAME, - BP.PRODUCT_LINE_CODE STATION_CODE, - BP.PRODUCT_LINE_NAME STATION_NAME, + BP.PRODUCT_LINE_CODE STATION_CODE, + BP.PRODUCT_LINE_NAME STATION_NAME, RQI.BAR_CODE, MAX(CASE WHEN RQI.TREATMENT_MEASURE = '1' THEN 1 ELSE 0 END) REWORK_NUMBER FROM REPORT_QUALITY_INSPECTION RQI @@ -157,7 +158,8 @@ GROUP BY FACTORY_NAME, PRODUCT_LINE_NAME, STATION_CODE, STATION_NAME ORDER BY REWORK_NUMBER - SELECT FY.FACTORY_NAME, BPP.PRODUCT_LINE_NAME, TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') INSPECTOR_TIME, @@ -191,14 +193,15 @@ RQI.QUALITY_DEFECT_CODE, RQI.QUALITY_DEFECT_NAME ORDER BY DEFECT_NUMBER DESC - SELECT ZSD.FACTORY_NAME, ZSD.PRODUCT_LINE_CODE, ZSD.PRODUCT_LINE_NAME, ZSD.MATERIAL_MODEL, ZSD.QUALITY_DEFECT_CODE, ZSD.QUALITY_DEFECT_NAME, - COUNT(*) Q_SUM, + COUNT(*) Q_SUM, TO_CHAR(ROUND(COUNT(*) / OS.OFFLINE_NUM * 100, 2), 'FM99990.00') || '%' OFFLINE_NUM FROM ( SELECT BF.FACTORY_NAME, @@ -300,7 +303,8 @@ ORDER BY RATE - SELECT PL.PRODUCT_LINE_CODE, PL.PRODUCT_LINE_NAME, BO.ORDER_CODE, @@ -353,30 +357,32 @@ ORDER BY PL.EXECUTION_SORT, RQI.INSPECTOR_TIME - SELECT ZSD.ORDER_CODE, ZSD.SALEORDER_CODE, ZSD.SALEORDER_LINENUMBER, ZSD.MATERIAL_CODE, ZSD.MATERIAL_MODEL, ZSD.ORDER_AMOUNT, - SUM(ZSD.BEFORE_NUMBER) BEFORE_NUMBER, - SUM(ZSD.SCAN_NUMBER) SCAN_NUMBER, + SUM(ZSD.BEFORE_NUMBER) BEFORE_NUMBER, + SUM(ZSD.SCAN_NUMBER) SCAN_NUMBER, SUM(ZSD.BEFORE_NUMBER) - SUM(ZSD.SCAN_NUMBER) DIFF_NUMBER, - SUM(ZSD.SCRAP_NUMBER) SCRAP_NUMBER + SUM(ZSD.SCRAP_NUMBER) SCRAP_NUMBER FROM (SELECT BO.ORDER_CODE, BO.SALEORDER_CODE, BO.SALEORDER_LINENUMBER, BO.MATERIAL_CODE, - BM.MATERIAL_SPECIFICATIONS MATERIAL_MODEL, + BM.MATERIAL_SPECIFICATIONS MATERIAL_MODEL, OM.BARCODE_CODE, BO.ORDER_AMOUNT, - COUNT(*) BEFORE_NUMBER, + COUNT(*) BEFORE_NUMBER, MAX(CASE WHEN OL.BOX_CODE IS NULL THEN 0 ELSE 1 END) SCAN_NUMBER, MAX(CASE WHEN BF.BAR_CODE IS NULL THEN 0 ELSE 1 END) SCRAP_NUMBER FROM BASE_ORDERINFO BO JOIN BASE_MATERIALINFO BM ON BM.MATERIAL_CODE = BO.MATERIAL_CODE AND bm.DISPO IN ('100') - JOIN (SELECT BC.ORDER_CODE, IE.BARCODE_CODE + JOIN (SELECT OI.ORDER_CODE, OI.WORK_CENTER_CODE, BC.MATERIAL_CODE, IE.BARCODE_CODE, MAX(IE.IN_STORE_TIME) + IN_STORE_TIME FROM RECORD_INSTORE IE JOIN C##AUCMA_SCADA.PRINT_BARCODE BC ON BC.MATERIAL_BARCODE = IE.BARCODE_CODE JOIN BASE_ORDERINFO OI ON OI.ORDER_CODE = BC.ORDER_CODE @@ -387,7 +393,8 @@ AND TO_CHAR(IE.IN_STORE_TIME, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{beginBeginTime} AND #{endBeginTime} and BC.ORDER_CODE = #{productOrderNo} - GROUP BY BC.ORDER_CODE, IE.BARCODE_CODE) OM ON OM.ORDER_CODE = BO.ORDER_CODE + GROUP BY OI.ORDER_CODE, OI.WORK_CENTER_CODE, BC.MATERIAL_CODE, IE.BARCODE_CODE) OM ON OM.ORDER_CODE = + BO.ORDER_CODE LEFT JOIN C##AUCMA_SCADA.PRODUCT_OFFLINE OL ON OL.BOX_CODE = OM.BARCODE_CODE LEFT JOIN (SELECT BAR_CODE, SUM(SCRAP_NUMBER) SCRAP_NUMBER FROM (SELECT QI.BAR_CODE, @@ -398,7 +405,8 @@ GROUP BY BAR_CODE) BF ON BF.BAR_CODE = OM.BARCODE_CODE and BO.MATERIAL_CODE = #{productCode} - and BM.MATERIAL_SPECIFICATIONS LIKE '%' || #{productModel} + and BM.MATERIAL_SPECIFICATIONS LIKE '%' || + #{productModel} || '%' @@ -409,4 +417,73 @@ ZSD.MATERIAL_MODEL, ZSD.ORDER_AMOUNT + +