|
|
|
|
@ -850,70 +850,134 @@
|
|
|
|
|
)
|
|
|
|
|
GROUP BY WEEK_NUMBER, WEEK_START, WEEK_END
|
|
|
|
|
ORDER BY WEEK_NUMBER
|
|
|
|
|
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="boxTraceabilityDetailReportUpdate" parameterType="java.util.HashMap"
|
|
|
|
|
resultType="com.aucma.report.domain.BoxTraceabilityDetailReport"
|
|
|
|
|
>
|
|
|
|
|
SELECT * FROM (
|
|
|
|
|
SELECT
|
|
|
|
|
DISTINCT TO_CHAR(COMPLETE_DATE, 'YYYY-MM-DD HH24:MI:SS') as SCAN_TIME,
|
|
|
|
|
PB.ORDER_CODE as ORDER_CODE,
|
|
|
|
|
BM.MATERIAL_CODE as MATERIAL_CODE,
|
|
|
|
|
BM.MATERIAL_NAME as MATERIAL_MODEL,
|
|
|
|
|
VMC.MATERIAL_BARCODE as BOX_CODE,
|
|
|
|
|
BE.EXECUTION_SORT AS EXECUTION_SORT,
|
|
|
|
|
BE.PRODUCT_LINE_NAME as SCAN_SPOT,
|
|
|
|
|
BE.PRODUCT_LINE_CODE as PRODUCT_LINE_CODE
|
|
|
|
|
FROM C##AUCMA_SCADA.MATERIAL_COMPLETION VMC
|
|
|
|
|
JOIN RECORD_INSTORE IE ON VMC.MATERIAL_BARCODE = IE.BARCODE_CODE
|
|
|
|
|
LEFT JOIN BASE_PRODUCTLINE BE ON BE.PRODUCT_LINE_CODE = VMC.STATION_NAME
|
|
|
|
|
LEFT JOIN C##AUCMA_SCADA.PRINT_BARCODE PB
|
|
|
|
|
ON PRINT_BARTYPE = 1 AND VMC.MATERIAL_BARCODE = PB.MATERIAL_BARCODE
|
|
|
|
|
LEFT JOIN BASE_MATERIALINFO BM ON BM.MATERIAL_CODE = PB.MATERIAL_CODE
|
|
|
|
|
LEFT JOIN C##AUCMA_SCADA.PRODUCT_OFFLINE PO ON PO.BOX_CODE = PB.MATERIAL_BARCODE
|
|
|
|
|
WHERE PB.MATERIAL_BARCODE IS NOT NULL
|
|
|
|
|
AND PO.BOX_CODE IS NULL
|
|
|
|
|
and PB.ORDER_CODE = #{orderCode}
|
|
|
|
|
and TO_CHAR(COMPLETE_DATE, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{beginBeginTime} AND #{endBeginTime}
|
|
|
|
|
order by VMC.MATERIAL_BARCODE)
|
|
|
|
|
|
|
|
|
|
PIVOT (MAX(SCAN_TIME) FOR PRODUCT_LINE_CODE IN (
|
|
|
|
|
'1000'as code1000,
|
|
|
|
|
'1001'as code1001,
|
|
|
|
|
'1002'as code1002,
|
|
|
|
|
'1004'as code1004,
|
|
|
|
|
'1005'as code1005,
|
|
|
|
|
'1006'as code1006,
|
|
|
|
|
'1007'as code1007,
|
|
|
|
|
'1008'as code1008,
|
|
|
|
|
'1009'as code1009,
|
|
|
|
|
'1010'as code1010,
|
|
|
|
|
'1011'as code1011,
|
|
|
|
|
'1012'as code1012,
|
|
|
|
|
'1020'as code1020,
|
|
|
|
|
'1105'as code1105,
|
|
|
|
|
'1109'as code1109,
|
|
|
|
|
'2001'as code2001,
|
|
|
|
|
'2002'as code2002,
|
|
|
|
|
'2003'as code2003,
|
|
|
|
|
'2005'as code2005,
|
|
|
|
|
'2006'as code2006,
|
|
|
|
|
'2007'as code2007,
|
|
|
|
|
'2008'as code2008,
|
|
|
|
|
'2009'as code2009,
|
|
|
|
|
'2010'as code2010,
|
|
|
|
|
'2011'as code2011,
|
|
|
|
|
'2012'as code2012,
|
|
|
|
|
'2013'as code2013,
|
|
|
|
|
'2014'as code2014,
|
|
|
|
|
'2015'as code2015,
|
|
|
|
|
'2016'as code2016,
|
|
|
|
|
'2020'as code2020
|
|
|
|
|
|
|
|
|
|
))
|
|
|
|
|
ORDER BY BOX_CODE
|
|
|
|
|
SELECT ORDER_CODE,
|
|
|
|
|
MATERIAL_CODE,
|
|
|
|
|
BOX_CODE,
|
|
|
|
|
MATERIAL_MODEL,
|
|
|
|
|
MAX(code1000) code1000,
|
|
|
|
|
MAX(code1001) code1001,
|
|
|
|
|
MAX(code1002) code1002,
|
|
|
|
|
MAX(code1004) code1004,
|
|
|
|
|
MAX(code1005) code1005,
|
|
|
|
|
MAX(code1006) code1006,
|
|
|
|
|
MAX(code1007) code1007,
|
|
|
|
|
MAX(code1008) code1008,
|
|
|
|
|
MAX(code1009) code1009,
|
|
|
|
|
MAX(code1010) code1010,
|
|
|
|
|
MAX(code1011) code1011,
|
|
|
|
|
MAX(code1012) code1012,
|
|
|
|
|
MAX(code1020) code1020,
|
|
|
|
|
MAX(code1105) code1105,
|
|
|
|
|
MAX(code1109) code1109,
|
|
|
|
|
MAX(code2001) code2001,
|
|
|
|
|
MAX(code2002) code2002,
|
|
|
|
|
MAX(code2003) code2003,
|
|
|
|
|
MAX(code2005) code2005,
|
|
|
|
|
MAX(code2006) code2006,
|
|
|
|
|
MAX(code2007) code2007,
|
|
|
|
|
MAX(code2008) code2008,
|
|
|
|
|
MAX(code2009) code2009,
|
|
|
|
|
MAX(code2010) code2010,
|
|
|
|
|
MAX(code2011) code2011,
|
|
|
|
|
MAX(code2012) code2012,
|
|
|
|
|
MAX(code2013) code2013,
|
|
|
|
|
MAX(code2014) code2014,
|
|
|
|
|
MAX(code2015) code2015,
|
|
|
|
|
MAX(code2016) code2016,
|
|
|
|
|
MAX(code2020) code2020
|
|
|
|
|
FROM (
|
|
|
|
|
SELECT BO.ORDER_CODE,
|
|
|
|
|
BO.SALEORDER_CODE,
|
|
|
|
|
BO.SALEORDER_LINENUMBER,
|
|
|
|
|
OM.MATERIAL_CODE,
|
|
|
|
|
BM.MATERIAL_SPECIFICATIONS AS MATERIAL_MODEL,
|
|
|
|
|
OM.BARCODE_CODE BOX_CODE,
|
|
|
|
|
OM.IN_STORE_TIME,
|
|
|
|
|
BO.ORDER_AMOUNT,
|
|
|
|
|
COUNT(*) AS BEFORE_NUMBER,
|
|
|
|
|
MAX(CASE WHEN OL.BOX_CODE IS NULL THEN 0 ELSE 1 END) AS SCAN_NUMBER,
|
|
|
|
|
MAX(CASE WHEN QI.BAR_CODE IS NULL THEN 0 ELSE 1 END) AS SCRAP_NUMBER,
|
|
|
|
|
MC.COMPLETE_DATE,
|
|
|
|
|
PL.EXECUTION_SORT EXECUTION_SORT,
|
|
|
|
|
PL.PRODUCT_LINE_CODE,
|
|
|
|
|
PL.PRODUCT_LINE_NAME
|
|
|
|
|
FROM BASE_ORDERINFO BO
|
|
|
|
|
JOIN BASE_MATERIALINFO BM
|
|
|
|
|
ON BM.MATERIAL_CODE = BO.MATERIAL_CODE AND bm.DISPO IN ('100')
|
|
|
|
|
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
|
|
|
|
|
JOIN BASE_PRODUCTLINE PL ON PL.WORK_CENTER_CODE = OI.WORK_CENTER_CODE
|
|
|
|
|
WHERE IE.STORE_CODE = 'PQK-001'
|
|
|
|
|
<if test="productLineCode != null and productLineCode != ''">AND PL.PRODUCT_LINE_CODE = #{productLineCode}</if>
|
|
|
|
|
<if test="beginBeginTime != null and beginBeginTime != '' and endBeginTime != null and endBeginTime != ''">
|
|
|
|
|
AND TO_CHAR(IE.IN_STORE_TIME, 'YYYY-MM-DD HH24:MI:SS') BETWEEN #{beginBeginTime} AND #{endBeginTime}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="productOrderNo != null and productOrderNo != ''">and BC.ORDER_CODE = #{productOrderNo}</if>
|
|
|
|
|
<if test="orderCode != null and orderCode != ''">and BC.ORDER_CODE = #{orderCode}</if>
|
|
|
|
|
GROUP BY OI.ORDER_CODE, OI.WORK_CENTER_CODE, BC.MATERIAL_CODE,
|
|
|
|
|
IE.BARCODE_CODE) OM
|
|
|
|
|
ON OM.ORDER_CODE = BO.ORDER_CODE AND OM.WORK_CENTER_CODE = BO.WORK_CENTER_CODE
|
|
|
|
|
LEFT JOIN C##AUCMA_SCADA.PRODUCT_OFFLINE OL ON OL.BOX_CODE = OM.BARCODE_CODE
|
|
|
|
|
LEFT JOIN REPORT_QUALITY_INSPECTION QI ON QI.PROCESS_RESULT = '报废重做' AND QI.BAR_CODE = OM.BARCODE_CODE
|
|
|
|
|
LEFT JOIN C##AUCMA_SCADA.MATERIAL_COMPLETION MC ON MC.MATERIAL_BARCODE = OM.BARCODE_CODE
|
|
|
|
|
LEFT JOIN BASE_PRODUCTLINE PL ON PL.PRODUCT_LINE_CODE = MC.STATION_NAME
|
|
|
|
|
WHERE OL.BOX_CODE IS NULL
|
|
|
|
|
<if test="productCode != null and productCode != ''">and BO.MATERIAL_CODE = #{productCode}</if>
|
|
|
|
|
<if test="productModel != null and productModel != ''">and BM.MATERIAL_SPECIFICATIONS LIKE '%' ||
|
|
|
|
|
#{productModel}
|
|
|
|
|
|| '%'
|
|
|
|
|
</if>
|
|
|
|
|
GROUP BY BO.ORDER_CODE, BO.SALEORDER_CODE, BO.SALEORDER_LINENUMBER, OM.MATERIAL_CODE, BM.MATERIAL_SPECIFICATIONS,
|
|
|
|
|
BO.ORDER_AMOUNT, OM.BARCODE_CODE, MC.COMPLETE_DATE, OM.IN_STORE_TIME, PL.EXECUTION_SORT,
|
|
|
|
|
PL.PRODUCT_LINE_CODE,
|
|
|
|
|
PL.PRODUCT_LINE_NAME)
|
|
|
|
|
PIVOT (MAX(COMPLETE_DATE) FOR PRODUCT_LINE_CODE IN (
|
|
|
|
|
'1000' as code1000,
|
|
|
|
|
'1001' as code1001,
|
|
|
|
|
'1002' as code1002,
|
|
|
|
|
'1004' as code1004,
|
|
|
|
|
'1005' as code1005,
|
|
|
|
|
'1006' as code1006,
|
|
|
|
|
'1007' as code1007,
|
|
|
|
|
'1008' as code1008,
|
|
|
|
|
'1009' as code1009,
|
|
|
|
|
'1010' as code1010,
|
|
|
|
|
'1011' as code1011,
|
|
|
|
|
'1012' as code1012,
|
|
|
|
|
'1020' as code1020,
|
|
|
|
|
'1105' as code1105,
|
|
|
|
|
'1109' as code1109,
|
|
|
|
|
'2001' as code2001,
|
|
|
|
|
'2002' as code2002,
|
|
|
|
|
'2003' as code2003,
|
|
|
|
|
'2005' as code2005,
|
|
|
|
|
'2006' as code2006,
|
|
|
|
|
'2007' as code2007,
|
|
|
|
|
'2008' as code2008,
|
|
|
|
|
'2009' as code2009,
|
|
|
|
|
'2010' as code2010,
|
|
|
|
|
'2011' as code2011,
|
|
|
|
|
'2012' as code2012,
|
|
|
|
|
'2013' as code2013,
|
|
|
|
|
'2014' as code2014,
|
|
|
|
|
'2015' as code2015,
|
|
|
|
|
'2016' as code2016,
|
|
|
|
|
'2020' as code2020
|
|
|
|
|
))
|
|
|
|
|
GROUP BY ORDER_CODE, MATERIAL_CODE, BOX_CODE, MATERIAL_MODEL
|
|
|
|
|
ORDER BY BOX_CODE
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<select id="repairRateReportListWeek" resultType="com.aucma.report.domain.RepairRateReport"
|
|
|
|
|
|