change - 2025报表需求更新

master
yinq 1 month ago
parent b469df5b5c
commit 4d724fb8ae

@ -48,6 +48,13 @@ public class QualityDefectsStatisticalAnalysis extends BaseEntity {
@JsonProperty("REWORK_NUMBER")
private Long REWORK_NUMBER;
/**
*
*/
@Excel(name = "合计数量")
@JsonProperty("INSPECTION_NUMBER")
private Long INSPECTION_NUMBER;
/**
* (%)
*/
@ -55,6 +62,14 @@ public class QualityDefectsStatisticalAnalysis extends BaseEntity {
@JsonProperty("RATE")
private String RATE;
public Long getINSPECTION_NUMBER() {
return INSPECTION_NUMBER;
}
public void setINSPECTION_NUMBER(Long INSPECTION_NUMBER) {
this.INSPECTION_NUMBER = INSPECTION_NUMBER;
}
public String getFACTORY_NAME() {
return FACTORY_NAME;
}

@ -122,6 +122,22 @@ public class ProductionReportServiceImpl implements IProductionReportService {
* */
public List<MaterialReport> materialReportList(Map hashMap){
List<MaterialReport> Materials = reportMapper.materialReportList(hashMap);
if (Materials.size() > 0){
MaterialReport materialReport = new MaterialReport();
materialReport.setMES_SN_BINDING_COUNT(0);
materialReport.setFINISHED_PRODUCT_SCAN_COUNT(0);
materialReport.setFINISHED_PRODUCT_PALLETIZING_COUNT(0);
materialReport.setMATERIAL_NAME("合计");
for (MaterialReport material : Materials) {
Integer mesSnBindingCount = materialReport.getMES_SN_BINDING_COUNT() + material.getMES_SN_BINDING_COUNT();
Integer finishedProductScanCount = materialReport.getFINISHED_PRODUCT_SCAN_COUNT() + material.getFINISHED_PRODUCT_SCAN_COUNT();
Integer finishedProductPalletizingCount = materialReport.getFINISHED_PRODUCT_PALLETIZING_COUNT() + material.getFINISHED_PRODUCT_PALLETIZING_COUNT();
materialReport.setMES_SN_BINDING_COUNT(mesSnBindingCount);
materialReport.setFINISHED_PRODUCT_SCAN_COUNT(finishedProductScanCount);
materialReport.setFINISHED_PRODUCT_PALLETIZING_COUNT(finishedProductPalletizingCount);
}
Materials.add(materialReport);
}
return Materials;
}
}

@ -161,6 +161,12 @@ public class QualityReportServiceImpl implements IQualityReportService {
*/
@Override
public List<RepairRateReport> repairRateReportList(Map hashMap) {
// if (hashMap.containsKey("PRODUCT_LINE_CODE")) {
// String productLineCode = String.valueOf(hashMap.get("PRODUCT_LINE_CODE"));
// if (productLineCode.equals("MF_01")){
// hashMap.put("PRODUCT_LINE_CODE", "CX_02");
// }
// }
if (hashMap.containsKey("stationCodeList")) {
String[] stationCodeLists = String.valueOf(hashMap.get("stationCodeList")).split(",");
hashMap.put("stationCodeList", stationCodeLists);
@ -182,8 +188,6 @@ public class QualityReportServiceImpl implements IQualityReportService {
}
//周
else if (hashMap.get("month").equals("2")){
Object year = String.valueOf(hashMap.get("year"));
String beginTime = year + "-01-01";
String endTime = year + "-12-31";
@ -194,9 +198,8 @@ public class QualityReportServiceImpl implements IQualityReportService {
List<RepairRateReport> collect = repairRateReports.stream().collect(Collectors.collectingAndThen(
Collectors.toCollection(()->new TreeSet<>(Comparator.comparing(RepairRateReport::getCOLUMN_A))),ArrayList::new
));
List<RepairRateReport> repairRateReportsSumWeek = new ArrayList<>();
for (int i = 0; i < collect.size(); i++){
for (int i = 0; i < collect.size(); i++){
for (int j=0;j<repairRateReports.size();j++){
if (collect.get(i).getCOLUMN_A().equals(repairRateReports.get(j).getCOLUMN_A())&&
collect.get(i).getINSPECTOR_TIME() != repairRateReports.get(j).getINSPECTOR_TIME()
@ -251,11 +254,9 @@ public class QualityReportServiceImpl implements IQualityReportService {
collect.get(i).setINSPECTOR_TIME(collect.get(i).getINSPECTOR_TIME().substring(0,7));
}
return collect;
}
else{
} else{
return reportMapper.repairRateReportList(hashMap);
}
}
/**

@ -287,39 +287,32 @@
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
)
SELECT
ROW_NUMBER() OVER (ORDER BY RATE) AS SEQ,
SELECT ROW_NUMBER() OVER (ORDER BY RATE) AS SEQ,
SD.QUALITY_DEFECT_NAME,
SD.MATERIAL_MODEL,
SD.DEFECT_NUMBER,
RATE
FROM (
SELECT
DA.QUALITY_DEFECT_NAME,
COUNT(*) AS DEFECT_NUMBER,
FROM (SELECT DA.QUALITY_DEFECT_NAME,
DA.MATERIAL_MODEL,
COUNT(*) AS DEFECT_NUMBER,
TO_CHAR(ROUND(COUNT(*) / TD.ALL_DEFECT * 100, 2), 'FM99990.00') || '%' AS RATE
FROM (
SELECT
RQI.QUALITY_DEFECT_NAME,
FROM (SELECT RQI.QUALITY_DEFECT_NAME,
RQI.BAR_CODE,
GET_MATERIAL_TYPE(RQI.MATERIAL_NAME) MATERIAL_MODEL,
RQI.QUALITY_DEFECT_CODE
FROM
REPORT_QUALITY_INSPECTION RQI
WHERE
RQI.TREATMENT_MEASURE = 1
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.TREATMENT_MEASURE = 1
<if test="stationCode != null and stationCode != ''">
AND RQI.STATION_CODE = #{stationCode}
</if>
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY
RQI.QUALITY_DEFECT_NAME, RQI.BAR_CODE, RQI.QUALITY_DEFECT_CODE
) DA
GROUP BY RQI.QUALITY_DEFECT_NAME, RQI.BAR_CODE, GET_MATERIAL_TYPE(RQI.MATERIAL_NAME),
RQI.QUALITY_DEFECT_CODE) DA
CROSS JOIN TotalDefects TD
GROUP BY
DA.QUALITY_DEFECT_NAME, TD.ALL_DEFECT
) SD
ORDER BY DEFECT_NUMBER DESC
GROUP BY DA.QUALITY_DEFECT_NAME, DA.MATERIAL_MODEL, TD.ALL_DEFECT) SD
ORDER BY SD.MATERIAL_MODEL, DEFECT_NUMBER DESC
</select>
<select id="productTraceabilityReportList" resultType="com.aucma.report.domain.ProductTraceabilityReport"
@ -553,18 +546,27 @@
RIGHT JOIN (
SELECT PRODUCT_SCANTIME, COUNT(*) OFF_LINE_NUM
FROM (
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != 'MF_01'">
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
</if>
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
)
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE == 'MF_01'">
SELECT TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') PRODUCT_SCANTIME, RQI.BAR_CODE BOX_CODE
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.STATION_CODE = '6303'
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD'), RQI.BAR_CODE
</if>
)
GROUP BY PRODUCT_SCANTIME) VPO
ON PRODUCT_SCANTIME = RQI.INSPECTOR_TIME
CROSS JOIN (SELECT TO_CHAR(CUSTOM_DATA) TARGET
@ -803,6 +805,9 @@
<if test="FACTORY_CODE != null and FACTORY_CODE != ''">
AND BF.FACTORY_CODE = #{FACTORY_CODE}
</if>
<if test="MATERIAL_MODEL != null and MATERIAL_MODEL != ''">
AND RQI.MATERIAL_NAME like '%' || #{MATERIAL_MODEL} || '%'
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
AND PL2.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
</if>
@ -1039,14 +1044,26 @@
LEFT JOIN (
SELECT PRODUCT_SCANTIME, COUNT(*) OFF_LINE_NUM
FROM (
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != 'MF_01'">
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE == 'MF_01'">
SELECT TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') PRODUCT_SCANTIME, RQI.BAR_CODE BOX_CODE
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.STATION_CODE = '6303'
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD'), RQI.BAR_CODE
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
)
GROUP BY PRODUCT_SCANTIME
) VPO
@ -1095,14 +1112,26 @@
LEFT JOIN (
SELECT PRODUCT_SCANTIME, COUNT(*) OFF_LINE_NUM
FROM (
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != ''">
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE != 'MF_01'">
SELECT TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') PRODUCT_SCANTIME,
VPO.BOX_CODE
FROM C##AUCMA_SCADA.PRODUCT_OFFLINE VPO
WHERE VPO.BOX_CODE IS NOT NULL
AND VPO.PRODUCT_LINE_CODE = #{PRODUCT_LINE_CODE}
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
</if>
<if test="PRODUCT_LINE_CODE != null and PRODUCT_LINE_CODE == 'MF_01'">
SELECT TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') PRODUCT_SCANTIME, RQI.BAR_CODE BOX_CODE
FROM REPORT_QUALITY_INSPECTION RQI
WHERE RQI.STATION_CODE = '6303'
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
AND TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD') BETWEEN #{beginBeginTime} AND #{endBeginTime}
</if>
GROUP BY TO_CHAR(RQI.INSPECTOR_TIME, 'YYYY-MM-DD'), RQI.BAR_CODE
</if>
GROUP BY TO_CHAR(VPO.PRODUCT_SCANTIME, 'YYYY-MM-DD'), VPO.BOX_CODE
)
GROUP BY PRODUCT_SCANTIME
) VPO
@ -1145,6 +1174,9 @@
<if test="orderCode != null and orderCode != ''">
AND BO.ORDER_CODE = #{orderCode}
</if>
<if test="BOX_NAME != null and BOX_NAME != ''">
AND P1.MATERIAL_NAME like '%' || #{BOX_NAME} || '%'
</if>
<if test="linerCode != null and linerCode != ''">
AND CB.LINER_CODE = #{linerCode}
</if>

@ -71,6 +71,7 @@
<if test="uuid != null and uuid != ''">and ei.uuid = #{uuid}</if>
<if test="result != null and result != ''">and ei.result = #{result}</if>
<if test="barcode != null and barcode != ''">and ei.barcode = #{barcode}</if>
<if test="materialModel != null and materialModel != ''">and MI.MATERIAL_SPECIFICATIONS like '%' || #{materialModel} || '%' </if>
<if test="testTime != null and testTime != ''">and ei.testtime = #{testTime}</if>
<if test="testData != null and testData != ''">and ei.testdata = #{testData}</if>
<if test="productLineCode != null and productLineCode != ''">and ei.product_line_code = #{productLineCode}</if>

Loading…
Cancel
Save