From 174cc2a8aa52f00334e0e9a3a0ea91b2e3e7acd3 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期四, 30 十月 2025 16:20:41 +0800
Subject: [PATCH] 修改次破报表翻页汇总不正确问题
---
north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml | 153 +++++++++++++++++++++++++++++++--------------------
1 files changed, 93 insertions(+), 60 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
index 1b27a76..019a91b 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/FolwCard.xml
@@ -12,6 +12,7 @@
<result column="layout_status" property="layoutStatus"/>
<result column="merge" property="merge"/>
<result column="rack" property="rack"/>
+ <result column="compute_gross_area" property="computeGrossArea"/>
<!--鎺ユ敹鍏朵粬澶栭敭瀹炰綋绫绘暟鎹�-->
<association property="order" javaType="com.example.erp.entity.sd.Order">
<result column="project" property="project"/>
@@ -24,6 +25,8 @@
<result column="salesman" property="salesman"/>
<result column="processing_note" property="processingNote"/>
<result column="delivery_address" property="deliveryAddress"/>
+ <result column="create_time" property="createTime"/>
+ <result column="update_time" property="updateTime"/>
</association>
<association property="orderDetail" javaType="com.example.erp.entity.sd.OrderDetail">
<result column="product_id" property="productId"/>
@@ -31,7 +34,6 @@
<result column="compute_gross_area" property="computeGrossArea"/>
<result column="processing_note" property="processingNote"/>
<result column="quantity" property="quantity"/>
- <result column="compute_gross_area" property="computeGrossArea"/>
<result column="perimeter" property="perimeter"/>
<result column="order_number" property="orderNumber"/>
<result column="width" property="width"/>
@@ -55,6 +57,75 @@
<!-- 娴佺▼鍗$鐞嗘煡璇�-->
<select id="selectFlowCard" resultMap="flowCardMap">
+ select
+ a.order_Id,
+ a.process_Id,
+ c.product_id,
+ c.product_name,
+ b.project,
+ sum(a.quantity) as quantity,
+ sum(a.quantity) * c.area as compute_gross_area,
+ a.founder,
+ c.processing_note,
+ b.customer_name,
+ layout_status as layout_status,
+ a.merge,
+ a.rack,
+ b.batch,
+ b.create_time,
+ b.update_time
+ from (select id,order_id,process_id,order_number, quantity,founder,max(layout_status) as layout_status,create_time,max(merge) as merge,rack from flow_card
+ group by process_Id,order_number) as a
+ left join sd.`order` as b on a.order_Id=b.order_id
+ left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
+ where date(a.create_time)>=#{selectTime1} and date(a.create_time) <= #{selectTime2}
+ and b.create_order>0
+ <if test="flowCard.orderId != null and flowCard.orderId != ''">
+ and a.order_id regexp #{flowCard.orderId}
+ </if>
+ <if test="flowCard.processId != null and flowCard.processId != ''">
+ and a.process_Id regexp #{flowCard.processId}
+ </if>
+ <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
+ and c.product_id regexp #{flowCard.orderDetail.productId}
+ </if>
+ <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
+ and c.product_name regexp #{flowCard.orderDetail.productName}
+ </if>
+
+ <if test="flowCard.order.project != null and flowCard.order.project!= ''">
+ and b.project regexp #{flowCard.order.project}
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '涓嶅彲鎺掔増'">
+ and a.layout_status regexp 0
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '鍙帓鐗�'">
+ and a.layout_status regexp 1
+ </if>
+ <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '宸叉帓鐗�'">
+ and a.layout_status regexp 2
+ </if>
+ <if test="flowCard.merge != null">
+ and a.merge regexp #{flowCard.merge}
+ </if>
+ <if test="flowCard.rack != null and flowCard.rack != ''">
+ and a.rack regexp #{flowCard.rack}
+ </if>
+ <if test="flowCard.order.customerName != null and flowCard.order.customerName!= ''">
+ and b.customer_name regexp #{flowCard.order.customerName}
+ </if>
+ group by a.process_Id
+ ORDER BY a.id desc
+ limit #{offset},#{pageSize};
+ </select>
+
+
+ <select id="getPageTotal">
+ SELECT SUM(quantity) as quantity,
+ SUM(compute_gross_area) as computeGrossArea,
+ CEILING(count(fcd.process_Id)/100) as 'pageTotal',
+ count(distinct fcd.process_Id) as 'total'
+ from (
select
a.order_Id,
a.process_Id,
@@ -112,49 +183,7 @@
</if>
group by a.process_Id
ORDER BY a.id desc
- limit #{offset},#{pageSize};
- </select>
-
-
- <select id="getPageTotal">
- select
- CEILING(count(a.process_Id)/#{pageSize}) as 'pageTotal',
- count(distinct a.process_Id) as 'total'
- from flow_card as a left join sd.`order` as b on a.order_Id=b.order_id
- left join sd.order_detail as c on a.order_Id=c.order_id and a.order_Number=c.order_number
- where date(a.create_time)>=#{selectTime1} and date(a.create_time) <= #{selectTime2}
- and b.create_order>0
- <if test="flowCard.orderId != null and flowCard.orderId != ''">
- and a.order_id regexp #{flowCard.orderId}
- </if>
- <if test="flowCard.processId != null and flowCard.processId != ''">
- and a.process_Id regexp #{flowCard.processId}
- </if>
- <if test="flowCard.orderDetail.productId != null and flowCard.orderDetail.productId != ''">
- and c.product_id regexp #{flowCard.orderDetail.productId}
- </if>
- <if test="flowCard.orderDetail.productName != null and flowCard.orderDetail.productName!= ''">
- and c.product_name regexp #{flowCard.orderDetail.productName}
- </if>
-
- <if test="flowCard.order.project != null and flowCard.order.project!= ''">
- and b.project regexp #{flowCard.order.project}
- </if>
- <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '涓嶅彲鎺掔増'">
- and a.layout_status regexp 0
- </if>
- <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '鍙帓鐗�'">
- and a.layout_status regexp 1
- </if>
- <if test="flowCard.layoutStatus != null and flowCard.layoutStatus != '' and flowCard.layoutStatus == '宸叉帓鐗�'">
- and a.layout_status regexp 2
- </if>
- <if test="flowCard.merge != null">
- and a.merge regexp #{flowCard.merge}
- </if>
-
- ORDER BY a.id desc
- limit #{offset},#{pageSize};
+ ) as fcd
</select>
<!--鍒嗘灦鏌ヨ-->
@@ -298,7 +327,7 @@
ods.S03,
ods.S04,
ods.S05,
- od.building_number
+ od.building_number as 'buildingNumber'
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
@@ -534,7 +563,8 @@
</select>
<select id="selectPrintFlowCard">
- select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness
+ select op.project_no,glass_total,glass_total_area,labelPrintNum,processPrintNum,glass_type,glass_thickness,
+ GROUP_CONCAT(DISTINCT o.order_id SEPARATOR '~') as order_id
from pp.optimize_project as op
left join pp.flow_card as fc on op.project_no=fc.project_no
left join sd.`order` as o on o.order_id=fc.order_id
@@ -786,7 +816,7 @@
fcs.technology_number = fc.technology_number
and fcs.process = #{process}
where fc.process_id = #{processId}
- and position(fc.technology_number in #{technologyNumber})
+ and FIND_IN_SET(fc.technology_number , #{technologyNumber})
group by fc.process_id, fc.order_number
<choose>
<!-- 褰� landingSequence != 1 涓� flashback != 1 鏃讹紝鎸� landing_sequence 鍊掑簭 -->
@@ -1454,7 +1484,7 @@
from sd.order_detail as od
left join flow_card as fc on od.order_id = fc.order_id and od.order_number = fc.order_number
where fc.process_id = #{processId}
- and POSITION(fc.technology_number in #{technologyNumber})
+ and FIND_IN_SET(fc.technology_number , #{technologyNumber})
GROUP BY other_columns
order by IF(fc.sort != NULL or fc.sort != '', fc.sort, fc.order_number)
</select>
@@ -1604,7 +1634,7 @@
fcs.technology_number = fc.technology_number
and fcs.process = #{process}
where fc.process_id = #{processId}
- and position(fc.technology_number in #{technologyNumber})
+ and FIND_IN_SET(fc.technology_number , #{technologyNumber})
group by fc.process_id, fc.order_number, fc.technology_number
<choose>
<when test="landingSequence != 1 and flashback != 1">
@@ -2793,6 +2823,7 @@
left join sd.order_glass_detail as ogd
on ogd.order_id = fc.order_id and ogd.order_number = fc.order_number and
ogd.technology_number = fc.technology_number
+
where fc.process_id = #{processId}
and fc.order_number = #{orderNumber}
group by fc.process_id,od.order_number, width, height
@@ -2980,25 +3011,25 @@
contacts,
delivery_address as deliveryAddress,
od.processing_note as processingNote,
- od.width,
- od.height,
+ opt.width,
+ opt.height,
opl.glass_count as flowQuantity,
CONCAT(
- TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width AS CHAR))),
+ opt.width,
' X ',
- TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height AS CHAR))),
+ opt.height,
' = ',opl.glass_count ) as size,
CONCAT(
od.order_number,') ',
- TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width AS CHAR))),
+ opt.width,
' X ',
- TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height AS CHAR))),
+ opt.height,
' = ',opl.glass_count ) as numberSize,
CONCAT(
od.order_number,')',' ',
- TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.width AS CHAR))),
+ opt.width,
' X ',
- TRIM(TRAILING '.' FROM TRIM(TRAILING '0' FROM CAST(od.height AS CHAR)))) as numberSizeQuantity,
+ opt.height) as numberSizeQuantity,
od.order_number as orderNumber,
fc.technology_number as technologyNumber,
od.building_number as buildingNumber,
@@ -3027,7 +3058,8 @@
'鏂囨湰' as custom3,
'鏂囨湰' as custom4,
'鏂囨湰' as custom5,
- od.quantity
+ od.quantity,
+ CONCAT(opt.stock_id,"/",opt.polys_id) as stockPolysId
from optimize_detail as opt
left join optimize_layout as opl on opl.project_no=opt.project_no and opl.stock_id=opt.stock_id
left join flow_card as fc on opt.project_no=fc.project_no and opt.process_id=fc.process_id and opt.layer=fc.technology_number and opt.order_sort=fc.order_number
@@ -3508,7 +3540,8 @@
fcs.technology_number = fc.technology_number
and fcs.process = #{process}
where fc.process_id = #{processId}
- and position(fc.technology_number in #{compound})
+ and
+ FIND_IN_SET(fc.technology_number , #{compound})
group by fc.process_id, fc.order_number
<choose>
<when test="landingSequence != 1 and flashback != 1">
@@ -3564,7 +3597,7 @@
fcs.technology_number = fc.technology_number
and fcs.process = #{process}
where fc.process_id = #{processId}
- and position(fc.technology_number in #{compound})
+ and FIND_IN_SET(fc.technology_number , #{compound})
group by fc.process_id, fc.order_number
<choose>
<when test="landingSequence != 1 and flashback != 1">
--
Gitblit v1.8.0