From 4ee53f8b43e850d2b35d5b1eb979d7b0bc2fbcd4 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 30 五月 2024 10:52:26 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/ERP_override
---
north-glass-erp/src/main/resources/mapper/pp/Report.xml | 339 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 338 insertions(+), 1 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/pp/Report.xml b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
index 1e0a20f..4a7553f 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/Report.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/Report.xml
@@ -85,6 +85,24 @@
<result column="bend_radius" property="bendRadius"/>
</resultMap>
+ <resultMap id="damageReportMap" type="com.example.erp.dto.pp.DamageReportDTO">
+ <result column="order_id" property="orderId"/>
+ <result column="reporting_work_time" property="reportingWorkTime"/>
+ <result column="area" property="area"/>
+ <result column="breakage_quantity" property="breakageQuantity"/>
+ <result column="project" property="project"/>
+ <result column="process_id" property="processId"/>
+ <result column="order_number" property="orderNumber"/>
+ <result column="technology_number" property="technologyNumber"/>
+ <result column="responsible_process" property="responsibleProcess"/>
+ <result column="responsible_team" property="responsibleTeam"/>
+ <result column="responsible_equipment" property="responsibleEquipment"/>
+ <result column="breakage_type" property="breakageType"/>
+ <result column="breakage_reason" property="breakageReason"/>
+ <result column="personnel" property="personnel"/>
+ <result column="glass_child" property="glassChild"/>
+ </resultMap>
+
<!-- 娴佺▼鍗¤繘搴�-->
<select id="processCardProgressMp">
@@ -365,7 +383,7 @@
order by fc.process_id, fc.order_number, fc.technology_number
</select>
- <select id="selectDamageReportMp">
+ <select id="selectDamageReportMp" resultMap="damageReportMap">
SELECT
o.order_id,
o.project,
@@ -393,8 +411,88 @@
rw.reporting_work_time between #{selectTime1} and #{selectTime2}
AND dd.available = 0
AND LENGTH( rw.process_id )= 14
+ <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
+ and o.order_id regexp #{damageReportDTO.orderId}
+ </if>
+ <if test="damageReportDTO.project != null and damageReportDTO.project != ''">
+ and o.project regexp #{damageReportDTO.project}
+ </if>
+ <if test="damageReportDTO.processId != null and damageReportDTO.processId != ''">
+ and rw.process_id regexp #{damageReportDTO.processId}
+ </if>
+ <if test="damageReportDTO.orderNumber != null and damageReportDTO.orderNumber != ''">
+ and dd.order_number regexp #{damageReportDTO.orderNumber}
+ </if>
+ <if test="damageReportDTO.technologyNumber != null and damageReportDTO.technologyNumber != ''">
+ and dd.technology_number regexp #{damageReportDTO.technologyNumber}
+ </if>
+ <if test="damageReportDTO.responsibleProcess != null and damageReportDTO.responsibleProcess != ''">
+ and dd.responsible_process regexp #{damageReportDTO.responsibleProcess}
+ </if>
+ <if test="damageReportDTO.responsibleTeam != null and damageReportDTO.responsibleTeam != ''">
+ and dd.responsible_team regexp #{damageReportDTO.responsibleTeam}
+ </if>
+ <if test="damageReportDTO.responsibleEquipment != null and damageReportDTO.responsibleEquipment != ''">
+ and dd.responsible_equipment regexp #{damageReportDTO.responsibleEquipment}
+ </if>
+ <if test="damageReportDTO.breakageType != null and damageReportDTO.breakageType != ''">
+ and dd.breakage_type regexp #{damageReportDTO.breakageType}
+ </if>
+ <if test="damageReportDTO.breakageReason != null and damageReportDTO.breakageReason != ''">
+ and dd.breakage_reason regexp #{damageReportDTO.breakageReason}
+ </if>
GROUP BY
dd.id
+ limit #{offset},#{pageSize};
+ </select>
+
+ <select id="getDamageReportPageTotal">
+ SELECT
+ CEILING(count(dd.id)/#{pageSize}) as 'pageTotal',
+ count(distinct dd.id) as 'total'
+ FROM
+ sd.ORDER AS o
+ LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
+ LEFT JOIN reporting_work AS rw ON rw.order_id = o.order_id
+ LEFT JOIN damage_details AS dd ON dd.reporting_work_id = rw.reporting_work_id
+ AND dd.order_number = ogd.order_number
+ AND dd.technology_number = ogd.technology_number
+ WHERE
+ rw.reporting_work_time between #{selectTime1} and #{selectTime2}
+ AND dd.available = 0
+ AND LENGTH( rw.process_id )= 14
+ <if test="damageReportDTO.orderId != null and damageReportDTO.orderId != ''">
+ and o.order_id regexp #{damageReportDTO.orderId}
+ </if>
+ <if test="damageReportDTO.project != null and damageReportDTO.project != ''">
+ and o.project regexp #{damageReportDTO.project}
+ </if>
+ <if test="damageReportDTO.processId != null and damageReportDTO.processId != ''">
+ and rw.process_id regexp #{damageReportDTO.processId}
+ </if>
+ <if test="damageReportDTO.orderNumber != null and damageReportDTO.orderNumber != ''">
+ and dd.order_number regexp #{damageReportDTO.orderNumber}
+ </if>
+ <if test="damageReportDTO.technologyNumber != null and damageReportDTO.technologyNumber != ''">
+ and dd.technology_number regexp #{damageReportDTO.technologyNumber}
+ </if>
+ <if test="damageReportDTO.responsibleProcess != null and damageReportDTO.responsibleProcess != ''">
+ and dd.responsible_process regexp #{damageReportDTO.responsibleProcess}
+ </if>
+ <if test="damageReportDTO.responsibleTeam != null and damageReportDTO.responsibleTeam != ''">
+ and dd.responsible_team regexp #{damageReportDTO.responsibleTeam}
+ </if>
+ <if test="damageReportDTO.responsibleEquipment != null and damageReportDTO.responsibleEquipment != ''">
+ and dd.responsible_equipment regexp #{damageReportDTO.responsibleEquipment}
+ </if>
+ <if test="damageReportDTO.breakageType != null and damageReportDTO.breakageType != ''">
+ and dd.breakage_type regexp #{damageReportDTO.breakageType}
+ </if>
+ <if test="damageReportDTO.breakageReason != null and damageReportDTO.breakageReason != ''">
+ and dd.breakage_reason regexp #{damageReportDTO.breakageReason}
+ </if>
+
+ limit #{offset},#{pageSize};
</select>
<select id="splittingDetailsOutsideMp">
@@ -670,4 +768,243 @@
GROUP BY
ou.width,ou.height,material_code
</select>
+
+ <select id="exportCrossProcessBreakingMp">
+ select rw.reporting_work_id,
+ rw.reporting_work_time,
+ dd.responsible_process,
+ dd.responsible_team,
+ dd.breakage_type,
+ dd.breakage_reason,
+ ROUND((dd.breakage_quantity)) as breakage_quantity,
+ round(ogd.child_width * ogd.child_height * (dd.breakage_quantity) / 1000000, 2) as area,
+ rw.this_process,
+ o.project,
+ o.order_id,
+ ogd.glass_child
+ from damage_details as dd
+ left join reporting_work as rw
+ on rw.reporting_work_id = dd.reporting_work_id
+ left join sd.order as o
+ on rw.order_id = o.order_id
+ left join sd.order_glass_detail as ogd
+ on ogd.order_id = o.order_id and ogd.order_number = dd.order_number
+ and ogd.technology_number and dd.technology_number
+ where date(rw.reporting_work_time) >= #{dates[0]}
+ and date(rw.reporting_work_time) <= #{dates[1]}
+ and rw.this_worn_quantity > 0
+ and dd.available = 0
+ and reviewed_state != 2
+ and rw.this_process != dd.responsible_process
+ GROUP BY dd.id
+ order by dd.id desc
+ </select>
+
+ <select id="exportDamageReportMp">
+ SELECT o.order_id,
+ o.project,
+ rw.process_id,
+ dd.order_number,
+ dd.technology_number,
+ date(rw.reporting_work_time) as reporting_work_time,
+ dd.responsible_process,
+ dd.responsible_team,
+ dd.responsible_equipment,
+ dd.breakage_type,
+ dd.breakage_reason,
+ dd.breakage_quantity,
+ round(ogd.child_width * ogd.child_height * dd.breakage_quantity / 1000000, 2) as area,
+ IFNULL(dd.responsible_personnel, '') as personnel,
+ ogd.glass_child
+ FROM sd.ORDER AS o
+ LEFT JOIN sd.order_glass_detail AS ogd ON ogd.order_id = o.order_id
+ LEFT JOIN reporting_work AS rw ON rw.order_id = o.order_id
+ LEFT JOIN damage_details AS dd ON dd.reporting_work_id = rw.reporting_work_id
+ AND dd.order_number = ogd.order_number
+ AND dd.technology_number = ogd.technology_number
+ WHERE date(rw.reporting_work_time) >= #{dates[0]}
+ and date(rw.reporting_work_time) <= #{dates[1]}
+ AND dd.available = 0
+ AND LENGTH(rw.process_id) = 14
+ GROUP BY dd.id
+ </select>
+
+ <select id="exportOrderPlanDecompositionMp">
+ SELECT
+ o.order_id,
+ o.customer_name,
+ o.project,
+ o.batch,
+ o.quantity,
+ o.area,
+ date(fc.create_time) as create_time,
+ date(orw.startTime) as startTime,
+ oopd.completionsNum,
+ sum( DISTINCT fc.received_quantity ) AS received_quantity,
+ sum( DISTINCT fc.quantity - fc.received_quantity ) AS receivedNo,
+ IF(fc.quantity=fc.received_quantity,'宸叉竻鍗�','') as accomplish,
+ DATEDIFF(
+ MAX( rw.reporting_work_time ),
+ min( rw.reporting_work_time ))+1 AS daysDifference
+ FROM
+ sd.`order` AS o
+ LEFT JOIN flow_card AS fc ON fc.order_id = o.order_id
+ LEFT JOIN (
+ SELECT
+ a.order_id,
+ MIN( b.reporting_work_time ) AS startTime
+ FROM
+ sd.`order` AS a
+ LEFT JOIN reporting_work AS b ON a.order_id = b.order_id
+ WHERE
+ b.this_process = '鍒囧壊'
+ AND date(a.create_time) >= #{dates[0]}
+ and date(a.create_time) <= #{dates[1]}
+
+ GROUP BY
+ a.order_id
+ ) AS orw ON orw.order_id = o.order_id
+ LEFT JOIN (
+ SELECT
+ a.order_id,
+ SUM( b.reporting_work_num ) AS completionsNum
+ FROM
+ sd.`order` AS a
+ LEFT JOIN sd.order_process_detail AS b ON a.order_id = b.order_id
+ WHERE
+ b.process = '鍖呰'
+ AND date(a.create_time) >= #{dates[0]}
+ and date(a.create_time) <= #{dates[1]}
+ GROUP BY
+ a.order_id
+ ) AS oopd ON oopd.order_id = o.order_id
+ LEFT JOIN reporting_work AS rw ON rw.order_id = fc.order_id
+ AND rw.process_id = fc.process_id
+ WHERE
+ date(o.create_time) >= #{dates[0]}
+ and date(o.create_time) <= #{dates[1]}
+ AND fc.create_time IS NOT NULL
+ GROUP BY
+ o.order_id
+ </select>
+
+ <select id="exportProcessToBeCompletedMp">
+ select DATE(o.create_time) as create_time,
+ DATE(o.delivery_date) as delivery_date,
+ o.order_id,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ o.batch,
+ od.order_number,
+ ogd.technology_number,
+ ogd.glass_child,
+ ogd.child_width,
+ ogd.child_height,
+ od.quantity,
+ ROUND(ogd.child_width * ogd.child_height / 1000000, 2) as childArea,
+ ROUND(ogd.child_width * ogd.child_height * od.quantity / 1000000, 2) as actualArea,
+ odpd.reporting_work_num as completeNum,
+ ROUND(ogd.child_width * ogd.child_height * odpd.reporting_work_num / 1000000,
+ 2) as completeArea,
+ od.quantity - odpd.reporting_work_num as incompleteNum,
+ ROUND(ogd.child_width * ogd.child_height * (od.quantity - odpd.reporting_work_num) / 1000000,
+ 2) as incompleteArea,
+ od.product_name
+
+ from sd.order_detail AS od
+ LEFT JOIN sd.order_glass_detail AS ogd
+ ON od.order_id = ogd.order_id
+ AND od.order_number = ogd.order_number
+ LEFT JOIN flow_card AS fc
+ ON fc.order_id = ogd.order_id
+ and fc.production_id = ogd.production_id
+ AND fc.order_number = ogd.order_number
+ AND fc.technology_number = ogd.technology_number
+ left join sd.order_process_detail as odpd
+ ON odpd.order_id = fc.order_id
+ AND odpd.order_number = fc.order_number
+ AND odpd.technology_number = fc.technology_number
+ and odpd.process_id = fc.process_id
+ left join sd.`order` as o
+ on o.order_id = od.order_id
+ where LENGTH(fc.process_id) = 14
+ and odpd.process = #{process}
+ and date(o.create_time) >= #{date[0]}
+ and date(o.create_time) <= #{date[1]}
+ and position(ifnull(#{inputVal},'') in od.order_id)
+ and position(ifnull(#{project},'') in o.project)
+ and od.quantity > odpd.reporting_work_num
+
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by fc.process_id, fc.order_number, fc.technology_number
+ </select>
+
+ <select id="exportWorkInProgressMp">
+ select #{process} as thisProcess,
+ fc.process_id,
+ o.customer_name,
+ o.project,
+ o.order_id,
+ o.batch,
+ od.shape,
+ ogd.order_number,
+ ogd.technology_number,
+ ogd.process,
+ od.quantity,
+ ogd.child_width,
+ ogd.child_height,
+ odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num as stockNum,
+ ROUND(ogd.child_width * ogd.child_height *
+ (odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num) / 1000000, 2) as stockArea,
+ od.product_name,
+ od.bend_radius
+
+ from sd.order_detail AS od
+ LEFT JOIN sd.order_glass_detail AS ogd
+ ON od.order_id = ogd.order_id
+ AND od.order_number = ogd.order_number
+ LEFT JOIN flow_card AS fc
+ ON fc.order_id = ogd.order_id
+ and fc.production_id = ogd.production_id
+ AND fc.order_number = ogd.order_number
+ AND fc.technology_number = ogd.technology_number
+ left join sd.order_process_detail as odpd
+ ON odpd.order_id = fc.order_id
+ AND odpd.order_number = fc.order_number
+ AND odpd.technology_number = fc.technology_number
+ and odpd.process_id = fc.process_id
+ left join sd.order_process_detail as odpds
+ ON odpds.id = odpd.id - 1
+ left join
+ (SELECT sum(rw.rework_num) as 'patchNumSum',
+ rw.process_id,
+ rw.order_sort,
+ rw.technology_number,
+ rwk.this_process
+ from rework as rw
+ LEFT JOIN
+ reporting_work as rwk
+ on rw.reporting_work_id = rwk.reporting_work_id
+ where rwk.this_process = #{process}
+ and rw.review_status = 1
+ GROUP BY rw.process_id, rw.order_sort, rw.technology_number) as c
+ on c.process_id = fc.process_id
+ and c.order_sort = fc.order_number
+ and c.technology_number = fc.technology_number
+ left join sd.`order` as o
+ on o.order_id = od.order_id
+ where LENGTH(fc.process_id) = 14
+ and odpds.reporting_work_num_count + ifnull(c.patchNumSum, 0) - odpd.reporting_work_num_count -
+ odpd.broken_num != 0
+ and odpd.process = #{process} and date(o.create_time) >= #{date[0]}
+ and date(o.create_time) <= #{date[1]}
+ and position(ifnull(#{inputVal},'') in od.order_id)
+ and position(ifnull(#{project},'') in o.project)
+
+ group by fc.process_id, fc.order_number, fc.technology_number
+ order by fc.process_id, fc.order_number, fc.technology_number
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0