From cb8b30ba759c17e7adcd913331cc429d280fe4e3 Mon Sep 17 00:00:00 2001 From: zhouhy Date: Fri, 10 May 2024 16:07:15 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E5=8F=91=E6=B3=A1=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E3=80=81=E8=BF=94=E4=BF=AE=E7=8E=87=E3=80=81=E7=84=8A=E6=BC=8F?= =?UTF-8?q?=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ProductionReportController.java | 12 + .../domain/BoxTraceabilityDetailReport.java | 314 ++++++++++++++++++ .../aucma/report/domain/RepairRateReport.java | 19 ++ .../report/mapper/GeneralReportMapper.java | 8 + .../service/IProductionReportService.java | 2 +- .../impl/ProductionReportServiceImpl.java | 13 +- .../impl/QualityReportServiceImpl.java | 221 +++++++++++- .../mapper/report/GeneralReportMapper.xml | 204 ++++++++++++ 8 files changed, 775 insertions(+), 18 deletions(-) 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 b07c053..42b77c3 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 @@ -155,6 +155,18 @@ public class ProductionReportController extends BaseController { return getDataTable(list); } + /** + * 发泡箱体追溯详情报表 + * @param hashMap + * @return + */ + @GetMapping("/boxTraceabilityDetailReportUpdate") + public TableDataInfo boxTraceabilityDetailReportUpdate(@RequestParam(required = false) Map hashMap) { + startPage(); + List list = productionReportService.boxTraceabilityDetailReport(hashMap); + return getDataTable(list); + } + /** * 发泡箱体追溯报表导出 * @param hashMap 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 index 2727ade..722003c 100644 --- a/aucma-report/src/main/java/com/aucma/report/domain/BoxTraceabilityDetailReport.java +++ b/aucma-report/src/main/java/com/aucma/report/domain/BoxTraceabilityDetailReport.java @@ -4,7 +4,10 @@ import com.aucma.common.annotation.Excel; import com.aucma.common.core.domain.BaseEntity; import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.ArrayList; import java.util.Date; +import java.util.List; +import java.util.Map; /** * 发泡箱体追溯报表 @@ -106,7 +109,318 @@ public class BoxTraceabilityDetailReport extends BaseEntity { private String productLineCode; + //扫描时间 + private Date SCAN_TIME; + + //执行顺序 + private String EXECUTION_SORT; + + //产线编号 + private String PRODUCT_LINE_CODE; + + private String CODE1000; + private String CODE1001; + private String CODE1002; + private String CODE1004; + private String CODE1005; + private String CODE1006; + private String CODE1007; + private String CODE1008; + private String CODE1009; + private String CODE1010; + private String CODE1011; + private String CODE1012; + private String CODE1020; + private String CODE1105; + private String CODE1109; + private String CODE2001; + private String CODE2002; + private String CODE2003; + private String CODE2005; + private String CODE2006; + private String CODE2007; + private String CODE2008; + private String CODE2009; + private String CODE2010; + private String CODE2011; + private String CODE2012; + private String CODE2013; + private String CODE2014; + private String CODE2015; + private String CODE2016; + private String CODE2020; + + public String getEXECUTION_SORT() { + return EXECUTION_SORT; + } + + public void setEXECUTION_SORT(String EXECUTION_SORT) { + this.EXECUTION_SORT = EXECUTION_SORT; + } + + public String getPRODUCT_LINE_CODE() { + return PRODUCT_LINE_CODE; + } + + public void setPRODUCT_LINE_CODE(String PRODUCT_LINE_CODE) { + this.PRODUCT_LINE_CODE = PRODUCT_LINE_CODE; + } + + public String getCODE1000() { + return CODE1000; + } + + public void setCODE1000(String CODE1000) { + this.CODE1000 = CODE1000; + } + + public String getCODE1001() { + return CODE1001; + } + + public void setCODE1001(String CODE1001) { + this.CODE1001 = CODE1001; + } + + public String getCODE1002() { + return CODE1002; + } + + public void setCODE1002(String CODE1002) { + this.CODE1002 = CODE1002; + } + + public String getCODE1004() { + return CODE1004; + } + + public void setCODE1004(String CODE1004) { + this.CODE1004 = CODE1004; + } + + public String getCODE1005() { + return CODE1005; + } + + public void setCODE1005(String CODE1005) { + this.CODE1005 = CODE1005; + } + + public String getCODE1006() { + return CODE1006; + } + + public void setCODE1006(String CODE1006) { + this.CODE1006 = CODE1006; + } + + public String getCODE1007() { + return CODE1007; + } + + public void setCODE1007(String CODE1007) { + this.CODE1007 = CODE1007; + } + + public String getCODE1008() { + return CODE1008; + } + + public void setCODE1008(String CODE1008) { + this.CODE1008 = CODE1008; + } + + public String getCODE1009() { + return CODE1009; + } + + public void setCODE1009(String CODE1009) { + this.CODE1009 = CODE1009; + } + + public String getCODE1010() { + return CODE1010; + } + + public void setCODE1010(String CODE1010) { + this.CODE1010 = CODE1010; + } + + public String getCODE1011() { + return CODE1011; + } + + public void setCODE1011(String CODE1011) { + this.CODE1011 = CODE1011; + } + + public String getCODE1012() { + return CODE1012; + } + + public void setCODE1012(String CODE1012) { + this.CODE1012 = CODE1012; + } + + public String getCODE1020() { + return CODE1020; + } + + public void setCODE1020(String CODE1020) { + this.CODE1020 = CODE1020; + } + + public String getCODE1105() { + return CODE1105; + } + + public void setCODE1105(String CODE1105) { + this.CODE1105 = CODE1105; + } + + public String getCODE1109() { + return CODE1109; + } + + public void setCODE1109(String CODE1109) { + this.CODE1109 = CODE1109; + } + public String getCODE2001() { + return CODE2001; + } + + public void setCODE2001(String CODE2001) { + this.CODE2001 = CODE2001; + } + + public String getCODE2002() { + return CODE2002; + } + + public void setCODE2002(String CODE2002) { + this.CODE2002 = CODE2002; + } + + public String getCODE2003() { + return CODE2003; + } + + public void setCODE2003(String CODE2003) { + this.CODE2003 = CODE2003; + } + + public String getCODE2005() { + return CODE2005; + } + + public void setCODE2005(String CODE2005) { + this.CODE2005 = CODE2005; + } + + public String getCODE2006() { + return CODE2006; + } + + public void setCODE2006(String CODE2006) { + this.CODE2006 = CODE2006; + } + + public String getCODE2007() { + return CODE2007; + } + + public void setCODE2007(String CODE2007) { + this.CODE2007 = CODE2007; + } + + public String getCODE2008() { + return CODE2008; + } + + public void setCODE2008(String CODE2008) { + this.CODE2008 = CODE2008; + } + + public String getCODE2009() { + return CODE2009; + } + + public void setCODE2009(String CODE2009) { + this.CODE2009 = CODE2009; + } + + public String getCODE2010() { + return CODE2010; + } + + public void setCODE2010(String CODE2010) { + this.CODE2010 = CODE2010; + } + + public String getCODE2011() { + return CODE2011; + } + + public void setCODE2011(String CODE2011) { + this.CODE2011 = CODE2011; + } + + public String getCODE2012() { + return CODE2012; + } + + public void setCODE2012(String CODE2012) { + this.CODE2012 = CODE2012; + } + + public String getCODE2013() { + return CODE2013; + } + + public void setCODE2013(String CODE2013) { + this.CODE2013 = CODE2013; + } + + public String getCODE2014() { + return CODE2014; + } + + public void setCODE2014(String CODE2014) { + this.CODE2014 = CODE2014; + } + + public String getCODE2015() { + return CODE2015; + } + + public void setCODE2015(String CODE2015) { + this.CODE2015 = CODE2015; + } + + public String getCODE2016() { + return CODE2016; + } + + public void setCODE2016(String CODE2016) { + this.CODE2016 = CODE2016; + } + + public String getCODE2020() { + return CODE2020; + } + + public void setCODE2020(String CODE2020) { + this.CODE2020 = CODE2020; + } + + public Date getSCAN_TIME() { + return SCAN_TIME; + } + + public void setSCAN_TIME(Date SCAN_TIME) { + this.SCAN_TIME = SCAN_TIME; + } public String getORDER_CODE() { return ORDER_CODE; diff --git a/aucma-report/src/main/java/com/aucma/report/domain/RepairRateReport.java b/aucma-report/src/main/java/com/aucma/report/domain/RepairRateReport.java index d592360..6ded617 100644 --- a/aucma-report/src/main/java/com/aucma/report/domain/RepairRateReport.java +++ b/aucma-report/src/main/java/com/aucma/report/domain/RepairRateReport.java @@ -47,6 +47,25 @@ public class RepairRateReport extends BaseEntity { // @Excel(name = "目标返修率") @JsonProperty("TARGET") private String TARGET; + //周数 + private String WEEKNUMS; + + public String getWEEKNUMS() { + return WEEKNUMS; + } + public String COLUMN_A; + + public String getCOLUMN_A() { + return COLUMN_A; + } + + public void setCOLUMN_A(String COLUMN_A) { + this.COLUMN_A = COLUMN_A; + } + + public void setWEEKNUMS(String WEEKNUMS) { + this.WEEKNUMS = WEEKNUMS; + } public String getINSPECTOR_TIME() { return INSPECTOR_TIME; 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 d2239a7..769420c 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 @@ -1,6 +1,7 @@ package com.aucma.report.mapper; import com.aucma.report.domain.*; +import org.apache.ibatis.annotations.Param; import java.util.HashMap; import java.util.List; @@ -116,12 +117,16 @@ public interface GeneralReportMapper { */ List boxTraceabilityDetailReport(Map hashMap); + List boxTraceabilityDetailReportUpdate(Map hashMap); + /** * 质量返修率报表 * @param hashMap * @return */ List repairRateReportList(Map hashMap); + List repairRateReportListWeek(Map hashMap); + List repairRateReportListMONTH(Map hashMap); /** * 箱体流转追溯报表 @@ -170,5 +175,8 @@ public interface GeneralReportMapper { * @param hashMap * @return */ + //周 List weldLeakRateList(Map hashMap); + //月 + List weldLeakRateListMonth(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 50acf9a..aa1bc0a 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 @@ -8,7 +8,7 @@ import java.util.Map; /** * PDA管理Service接口 - * + * * @author Yinq * @date 2023-11-21 */ 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 26c6339..9af805c 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,14 +1,17 @@ package com.aucma.report.service.impl; +import com.aucma.common.utils.DateUtils; import com.aucma.report.domain.*; import com.aucma.report.mapper.GeneralReportMapper; import com.aucma.report.service.IProductionReportService; +import com.fasterxml.jackson.databind.ext.SqlBlobSerializer; +import org.apache.ibatis.jdbc.SQL; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; /** * PDA管理Service业务层处理 @@ -76,7 +79,9 @@ public class ProductionReportServiceImpl implements IProductionReportService { */ @Override public List boxTraceabilityDetailReport(Map hashMap) { - return reportMapper.boxTraceabilityDetailReport(hashMap); +// List boxTraceabilityDetailReports = reportMapper.boxTraceabilityDetailReport(hashMap); + List boxTraceabilityDetailReports = reportMapper.boxTraceabilityDetailReportUpdate(hashMap); + return boxTraceabilityDetailReports; } /** 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 98cbc09..112e76d 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,15 +1,21 @@ package com.aucma.report.service.impl; +import cn.hutool.core.collection.ArrayIter; +import com.aucma.common.core.domain.R; +import com.aucma.common.utils.DateUtils; 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; +import java.io.Serializable; +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; /** * PDA管理Service业务层处理 @@ -24,19 +30,21 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 质量缺陷统计分析 + * * @param hashMap * @return */ @Override public List qualityDefectsStatisticalAnalysisList(Map hashMap) { - if (hashMap.containsKey("stationCodeList")){ - hashMap.put("stationCodeList",String.valueOf(hashMap.get("stationCodeList")).split(",")); + if (hashMap.containsKey("stationCodeList")) { + hashMap.put("stationCodeList", String.valueOf(hashMap.get("stationCodeList")).split(",")); } return reportMapper.qualityDefectsStatisticalAnalysisList(hashMap); } /** * 少错件报表 + * * @param hashMap * @return */ @@ -47,6 +55,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 质量问题前80报表 + * * @param hashMap * @return */ @@ -58,6 +67,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 产品追溯报表 + * * @param hashMap * @return */ @@ -68,6 +78,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 测温记录报表 + * * @param hashMap * @return */ @@ -78,6 +89,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 灌注记录报表 + * * @param hashMap * @return */ @@ -88,6 +100,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 质量缺陷统计分析明细 + * * @param hashMap * @return */ @@ -98,6 +111,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 产品追溯明细 + * * @param hashMap * @return */ @@ -108,6 +122,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 质量缺陷统计分析明细导出 + * * @param hashMap * @return */ @@ -116,7 +131,7 @@ public class QualityReportServiceImpl implements IQualityReportService { ArrayList defectsDetailArrayList = new ArrayList<>(); List analysisList = this.qualityDefectsStatisticalAnalysisList(hashMap); for (QualityDefectsStatisticalAnalysis item : analysisList) { - hashMap.put("stationCode",item.getSTATION_CODE()); + hashMap.put("stationCode", item.getSTATION_CODE()); List> hashMaps = this.qualityDefectsDetailList(hashMap); for (HashMap map : hashMaps) { QualityDefectsDetail defectsDetail = new QualityDefectsDetail(); @@ -139,34 +154,167 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 质量返修率报表 + * * @param hashMap * @return */ @Override public List repairRateReportList(Map hashMap) { - if (hashMap.containsKey("stationCodeList")){ + if (hashMap.containsKey("stationCodeList")) { String[] stationCodeLists = String.valueOf(hashMap.get("stationCodeList")).split(","); hashMap.put("stationCodeList", stationCodeLists); for (String station : stationCodeLists) { - if (station.equals("2001") || station.equals("2006")|| station.equals("2007")){ + if (station.equals("2001") || station.equals("2006") || station.equals("2007")) { hashMap.put("leakFlag", "1"); } } - }else { + } else { String[] stationCodeLists = {"null"}; hashMap.put("stationCodeList", stationCodeLists); } - return reportMapper.repairRateReportList(hashMap); + + //日 + if (hashMap.get("month").equals("1")){ + List repairRateReports = reportMapper.repairRateReportList(hashMap); + return repairRateReports; + } + //周 + else if (hashMap.get("month").equals("2")){ + + //将时间扩充到开始时间的周一和结束时间的周末 + String beginTime = getFirstDayOfWeek(String.valueOf(hashMap.get("beginBeginTime"))); + String endTime = getLastDayOfWeek(String.valueOf(hashMap.get("endBeginTime"))); + hashMap.put("year",endTime.substring(0,4)); + hashMap.put("beginBeginTime",beginTime); + hashMap.put("endBeginTime",endTime); + List repairRateReports = reportMapper.repairRateReportListWeek(hashMap); + List collect = repairRateReports.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(RepairRateReport::getCOLUMN_A))),ArrayList::new + )); + List repairRateReportsSumWeek = new ArrayList<>(); + for (int i = 0; i < collect.size(); i++){ + + for (int j=0;j repairRateReports = new ArrayList<>(); + //将时间扩充到开始时间的月初和结束时间的月末 + String beginTime = String.valueOf(hashMap.get("beginBeginTime")).substring(0, 7) + "01"; + String endTime = String.valueOf(hashMap.get("endBeginTime")).substring(0, 7) + "31"; + hashMap.put("beginBeginTime",beginTime); + hashMap.put("endBeginTime",endTime); + if (beginTime.substring(0,4).equals(endTime.substring(0,4))){ + hashMap.put("year",endTime.substring(0,4)); + repairRateReports = reportMapper.repairRateReportListMONTH(hashMap); + } + else { + hashMap.put("year",beginTime.substring(0,4)); + List repairRateReports1 = reportMapper.repairRateReportListMONTH(hashMap); + hashMap.put("year",endTime.substring(0,4)); + List repairRateReports2 = reportMapper.repairRateReportListMONTH(hashMap); + repairRateReports.addAll(repairRateReports1); + repairRateReports.addAll(repairRateReports2); + } + + + List collect = repairRateReports.stream().collect(Collectors.collectingAndThen( + Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(RepairRateReport::getCOLUMN_A))),ArrayList::new + )); + List repairRateReportsSumWeek = new ArrayList<>(); + for (int i = 0; i < collect.size(); i++){ + + for (int j=0;j downgradeProportionReportList(Map hashMap) { - if (!hashMap.containsKey("dateType")){ + if (!hashMap.containsKey("dateType")) { return null; } hashMap.put("timeSub", Integer.parseInt(String.valueOf(hashMap.get("dateType")))); @@ -175,12 +323,13 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 年度不良率同比报表 + * * @param hashMap * @return */ @Override public List adverseRecordYearOnYearList(Map hashMap) { - if (!hashMap.containsKey("year")){ + if (!hashMap.containsKey("year")) { return null; } return reportMapper.adverseRecordYearOnYearList(hashMap); @@ -188,6 +337,7 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 高故障率TOP20报表 + * * @param hashMap * @return */ @@ -198,12 +348,57 @@ public class QualityReportServiceImpl implements IQualityReportService { /** * 焊漏率报表 + * * @param hashMap * @return */ @Override public List weldLeakRateList(Map hashMap) { + if (hashMap.get("month").toString().equals("0")) { + return reportMapper.weldLeakRateList(hashMap); + }else if (hashMap.get("month").toString().equals("1")) { + List weldLeakRateReports = reportMapper.weldLeakRateListMonth(hashMap); + return weldLeakRateReports; + } + String month = hashMap.get("month").toString(); + return reportMapper.weldLeakRateList(hashMap); } + //根据年份获取月份日期 + public String[] getMonthBeginTime(String year) { + String[] array = new String[12]; + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + Calendar cal = Calendar.getInstance(); + cal.set(Calendar.YEAR, Integer.parseInt(year)); + cal.set(Calendar.MONTH,0); + cal.set(Calendar.DATE,1); + cal.set(Calendar.HOUR,0); + cal.set(Calendar.MINUTE,0); + cal.set(Calendar.SECOND,0); + for (int i = 0; i < 12; i++) { + array[i] = sdf.format(cal.getTime()); + cal.add(Calendar.MONTH, 1); + } + return array; + } + //根据年份获取月份日期 + public String[] getMonthEndTime(String year) { + String[] array = new String[12]; + array[0] = year+"-"+"01-31 23:59:59"; + array[1] = year+"-"+"02-29 23:59:59"; + array[2] = year+"-"+"03-31 23:59:59"; + array[3] = year+"-"+"04-31 23:59:59"; + array[4] = year+"-"+"05-31 23:59:59"; + array[5] = year+"-"+"06-31 23:59:59"; + array[6] = year+"-"+"07-31 23:59:59"; + array[7] = year+"-"+"08-31 23:59:59"; + array[8] = year+"-"+"09-31 23:59:59"; + array[9] = year+"-"+"10-31 23:59:59"; + array[10] = year+"-"+"11-31 23:59:59"; + array[11] = year+"-"+"12-31 23:59:59"; +return array; + } + + } diff --git a/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml b/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml index 60e32bf..6f703c5 100644 --- a/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml +++ b/aucma-report/src/main/resources/mapper/report/GeneralReportMapper.xml @@ -826,4 +826,208 @@ ORDER BY WEEK_NUMBER + + + + + + +