From 2bdd525d521205f0106c6008f4e8e14d7b8051f6 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期一, 01 十二月 2025 09:17:50 +0800
Subject: [PATCH] 订单工艺属性提交
---
north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 167 insertions(+), 10 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml b/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
index f76941b..7e722f7 100644
--- a/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
+++ b/north-glass-erp/src/main/resources/mapper/sd/OrderProcessDetailMapper.xml
@@ -6,7 +6,7 @@
<insert id="insertOrderProcessDetail" >
insert into
- order_process_detail(
+ sd.order_process_detail(
order_id,
order_number,
technology_number,
@@ -71,10 +71,37 @@
<!--鏌ヨ绛涢�夊悗鍞竴鐨勬祦绋嬪崱鍙�-->
<select id="filterOrderProcess">
- select id,process,order_number,technology_number
+ select a.* from( select id as id,process,order_number,technology_number,b.nickname,
+ case b.nickname when '' then 1
+ when null then 1
+ when 'stepC' then 2
+ when 'stepA' then 3
+ when 'stepD' then 4
+ when 'stepB' then 4
+ else 1
+ end as sort,
+ b.sort as 'sort2'
+
+
from order_process_detail
+ left join (select DISTINCT basic_name,nickname,sort from basic_data where basic_category = 'process') as b
+ on b.basic_name = process
where order_id = #{orderId}
- group by process
+ group by process) as a
+ left join (SELECT max(count) as count,process from (SELECT count(opd1.id) as count,opd.process
+ from order_process_detail as opd
+ LEFT JOIN (SELECT id,process_id,order_number,technology_number
+ from order_process_detail
+ where order_id = #{orderId}) as opd1
+ on opd.process_id = opd1.process_id
+ and opd.order_number = opd1.order_number
+ and opd.technology_number = opd1.technology_number
+ and opd.id>=opd1.id
+ where opd.order_id =#{orderId}
+ group by opd.id) as a
+ GROUP BY process) as sort1
+ on sort1.process = a.process
+ order by sort,sort2,sort1.count,id
</select>
@@ -93,18 +120,40 @@
<select id="getGlassLRow">
select
max(a.technology_number) as rowCount,
- RowNum
- from order_process_detail as a
+ RowNum,
+ a.order_number,
+ a.process_id
+ from pp.flow_card as a
left join
(select min((@i:=@i+1)) AS RowNum,c.*
- from sd.order_glass_detail as c,
+ from pp.flow_card as c,
(SELECT @i:=-1) as d
where order_id = #{orderId}
- GROUP BY order_number
+ GROUP BY order_number,process_id
) as b
- on b.order_number = a.order_number
+ on b.id = a.id
where a.order_id = #{orderId}
- group by a.order_number
+ group by a.order_number,a.process_id
+ order by a.process_id,a.order_number
+
+ </select>
+
+ <select id="getProcessGlassLRow">
+ select
+ max(a.technology_number) as rowCount,
+ RowNum
+ from pp.flow_card as a
+ left join
+ (select min((@i:=@i+1)) AS RowNum,c.*
+ from pp.flow_card as c,
+ (SELECT @i:=-1) as d
+ where order_id = #{orderId}
+ GROUP BY process_id
+ ) as b
+ on b.id = a.id
+ where a.order_id = #{orderId}
+ group by a.process_id
+ order by RowNum
</select>
<update id="insertByReportingWorkDetail">
@@ -128,6 +177,7 @@
from order_process_detail as a
left join `order` as b on a.order_id=b.order_id
where b.create_time BETWEEN #{selectTime1} and #{selectTime2}
+ and position(#{orderId} in b.order_id)
group by process
</select>
@@ -143,11 +193,118 @@
left join sd.`order` o2 on c.order_id = o2.order_id,
(SELECT @i:=-1) as d
where o2.create_time BETWEEN #{selectTime1} and #{selectTime2}
+ and position(#{orderId} in o2.order_id)
GROUP BY order_number
) as b
on b.order_number = a.order_number
left join sd.`order` o on a.order_id = o.order_id
- where o.create_time BETWEEN #{selectTime1} and #{selectTime2}
+ where o.create_time BETWEEN #{selectTime1} and #{selectTime2} and position(#{orderId} in o.order_id)
group by a.order_number
</select>
+
+ <select id="selectNextProcess">
+ select a.process from sd.order_process_detail as a,
+ (select id,process from sd.order_process_detail
+ where process_id=#{processId}
+ and position(technology_number in #{technologyNumber})
+ and order_number=#{orderNumber}
+ and process=#{thisProcess}
+ group by process) as b
+ where a.id = b.id + 1
+ and a.process_id=#{processId}
+ and a.order_number=#{orderNumber}
+ and position(a.technology_number in #{technologyNumber})
+
+ </select>
+
+ <select id="selectShiftQuantitySv">
+ select *
+ <if test="step != null and step != ''">
+ ,sum(e.break) as 'breakage_quantity'
+ ,Round(sum(e.break)*e.area,2) as 'breakage_area'
+ </if>
+ <if test="step == null || step == ''">
+ ,e.break as 'breakage_quantity'
+ ,Round(e.break*e.area,2) as 'breakage_area'
+ </if>
+ from(select CAST(concat(b.order_id,'/',a.order_number,'/',a.technology_number) as char ) as 'order_id',
+ c.child_width,
+ c.child_height,
+ a.completed_quantity,
+ a.breakage_quantity as break,
+ a.order_number,
+ b.reporting_work_id,
+ round(c.area*a.completed_quantity,2) as finish_area,
+ c.area
+ from pp.reporting_work as b
+ left join pp.reporting_work_detail as a
+ on a.reporting_work_id = b.reporting_work_id
+ left join sd.order_glass_detail as c
+ on b.order_id = c.order_id
+ and c.order_number = a.order_number
+ and c.technology_number = a.technology_number
+ where b.reviewed_state >=0
+ and b.creator_id = #{creatorId}
+ and UNIX_TIMESTAMP(b.reporting_work_time) BETWEEN UNIX_TIMESTAMP(#{startDatetime}) and UNIX_TIMESTAMP(#{endDatetime})
+ order by b.id desc ) as e
+ <if test="step != null and step != ''">
+ group by e.order_number,e.reporting_work_id
+ </if>
+ </select>
+
+ <select id="getBehindProcess">
+ select group_concat(process) from sd.order_process_detail as a
+ where a.order_id = #{orderId}
+ and a.process_id = #{processId}
+ and a.order_number =#{orderNumber}
+ and a.technology_number =#{technologyNumber}
+ and a.id>(select id
+ from sd.order_process_detail as b
+ where b.order_id = #{orderId}
+ and b.process_id = #{processId}
+ and b.order_number =#{orderNumber}
+ and b.technology_number =#{technologyNumber}
+ and b.process = #{thisProcess}
+ )
+ </select>
+
+ <select id="selectProcessCardProgressSv">
+ select a.*,(b.quantity-b.termination_quantity) as 'quantity'
+ from order_process_detail as a
+ inner join pp.flow_card as b
+ on a.order_id = b.order_id
+ and a.process_id = b.process_id
+ and a.order_number = b.order_number
+ and a.technology_number = b.technology_number
+ where termination_status = 0
+ <if test="orderId != null and orderId != ''">
+ and a.order_id=#{orderId}
+ </if>
+ <if test="processId != null and processId != ''">
+ and a.process_id=#{processId}
+ </if>
+ <if test="orderNumber != null and orderNumber != ''">
+ and a.order_number=#{orderNumber}
+ </if>
+ <if test="technologyNumber != null and technologyNumber != ''">
+ and a.technology_number=#{technologyNumber}
+ </if>
+ <if test="process != null and process != ''">
+ and a.process=#{process}
+ </if>
+
+ </select>
+
+ <select id="selectProcessSort">
+ select a.process,
+ ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS sort,
+ ifnull(b.nickname,"") as recombination
+ from sd.order_process_detail as a
+ inner join sd.basic_data as b
+ on a.process = b.basic_name and b.basic_category = 'process'
+ where a.order_id = #{orderId}
+ and a.process_id = #{processId}
+ and a.order_number =#{orderNumber}
+ and a.technology_number =#{technologyNumber}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0