From 65232e8416d83a977936aa8754c6c662132a1be5 Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期五, 16 五月 2025 15:12:53 +0800
Subject: [PATCH] 提交查询基础数据缓慢问题
---
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 255 +++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 245 insertions(+), 10 deletions(-)
diff --git a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
index c3b5c7c..6c9cab4 100644
--- a/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
+++ b/north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml
@@ -41,6 +41,8 @@
<result property="thickness" column="thickness"/>
<result property="type" column="type"/>
<result property="state" column="state"/>
+ <result property="temperingState" column="Tempering state"/>
+ <result property="optimizeState" column="Optimize state"/>
<result property="quantity" column="quantity"/>
<result property="area" column="area"/>
<result property="processCardQuantity" column="process Card Quantity"/>
@@ -100,7 +102,8 @@
c.quantity,
o.shape,
concat( c.process_id, '-', c.technology_number ) AS 'process_id',
- c.technology_number,
+ c.technology_number as layer,
+ c.layers_number as total_layer,
d.glass_child,
o.product_name,
o.price,
@@ -109,7 +112,8 @@
round( d.area * c.quantity, 4 ) as 'area',
c.order_number,
d.icon,
- op.project_name
+ op.project_name,
+ 0 as patch_state
FROM
pp.flow_card c
LEFT JOIN sd.order_detail o ON c.order_id = o.order_id
@@ -133,7 +137,8 @@
c.patch_num as quantity,
o.shape,
concat( c.process_id, '-', c.technology_number ) AS 'process_id',
- c.technology_number,
+ c.technology_number as layer,
+ fc.layers_number as total_layer,
d.glass_child,
o.product_name,
o.price,
@@ -142,7 +147,8 @@
round( d.area * c.patch_num, 4 ) as 'area',
c.order_sort as order_number,
d.icon,
- op.project_name
+ op.project_name,
+ 1 as patch_state
FROM
pp.patch_log c
LEFT JOIN sd.order_detail o ON c.order_id = o.order_id
@@ -151,6 +157,7 @@
AND c.order_sort = d.order_number
AND c.technology_number = d.technology_number
INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no
+ LEFT JOIN pp.flow_card fc ON c.process_id = fc.process_id and fc.technology_number=c.technology_number
WHERE
c.project_no IS NOT NULL
and c.project_no = #{projectNo}
@@ -160,7 +167,7 @@
</select>
- <!--绗竴娆′紭鍖栨煡璇�-->
+ <!--浼樺寲鏌ヨ-->
<select id="analogComputationOptimization">
SELECT
h.project_no,
@@ -170,7 +177,9 @@
count( 1 ) AS quantity,
o.shape,
concat( h.process_id, '-', h.layer ) AS 'process_id',
+ h.process_id as process_ids,
h.layer,
+ c.layers_number as total_layer,
d.glass_child,
o.product_name,
o.price,
@@ -179,7 +188,8 @@
round( d.area * count( 1 ), 4 ) AS 'area',
c.order_number,
d.icon,
- o.price
+ o.price,
+ h.patch_state
from
pp.`optimize_heat_detail` h
LEFT JOIN pp.flow_card c ON h.process_id = c.process_id
@@ -263,6 +273,8 @@
i.id AS id,
i.producer AS producer,
i.available_quantity-i.plan_quantity AS available_quantity,
+ null as processingQuantity,
+ 1 as materialType,
JSON_EXTRACT(s.json, '$.width') AS width,
JSON_EXTRACT(s.json, '$.height') AS height,
JSON_EXTRACT(s.json, '$.thickness') AS thickness,
@@ -292,6 +304,8 @@
i.id AS id,
'' AS producer,
i.quantity AS available_quantity,
+ null as processingQuantity,
+ 0 as materialType,
i.width,
i.height,
i.thickness,
@@ -310,6 +324,8 @@
i.id AS id,
i.producer AS producer,
i.available_quantity-i.plan_quantity AS available_quantity,
+ null as processingQuantity,
+ 1 as materialType,
JSON_EXTRACT(s.json, '$.width') AS width,
JSON_EXTRACT(s.json, '$.height') AS height,
JSON_EXTRACT(s.json, '$.thickness') AS thickness,
@@ -335,6 +351,8 @@
i.id AS id,
'' AS producer,
i.quantity AS available_quantity,
+ null as processingQuantity,
+ 0 as materialType,
i.width,
i.height,
i.thickness,
@@ -531,6 +549,8 @@
p.`glass_thickness` AS `Thickness`,
p.`type` AS `Type`,
p.`state` AS `State`,
+ p.`tempering_state` AS `Tempering state`,
+ p.`optimize_state` AS `Optimize state`,
p.`glass_total` AS `Quantity`,
p.`glass_total_area` AS `Area`,
p.`process_qty` AS `Process Card Quantity`,
@@ -549,7 +569,8 @@
`p`.`update_time` AS `Modify time`
from pp.optimize_project as p
left join pp.optimize_admin as a on p.creater = a.Id
- where (`p`.`state` > 1)
+ where (`p`.`state` > 0)
+ and (tempering_state>0 or optimize_state>0)
and DATE (`p`.`create_time`) BETWEEN #{startSelectTime} AND #{endSelectTime}
<if test="optimizeProjectMange.projectNumber != null and optimizeProjectMange.projectNumber != ''">
and p.project_no regexp #{optimizeProjectMange.projectNumber}
@@ -563,6 +584,20 @@
<update id="updateProjectStateMp">
update pp.optimize_project as p
set p.state = #{state}
+ where p.project_no = #{projectNumber}
+ </update>
+
+ <!--淇敼妯℃嫙璁$畻宸ョ▼鐘舵��-->
+ <update id="updateProjectTemperingStateMp">
+ update pp.optimize_project as p
+ set p.tempering_state = #{states}
+ where p.project_no = #{projectNumber}
+ </update>
+
+ <!--淇敼浼樺寲宸ョ▼鐘舵��-->
+ <update id="updateProjectOptimizeStateMp">
+ update pp.optimize_project as p
+ set p.optimize_state = #{states}
where p.project_no = #{projectNumber}
</update>
@@ -586,6 +621,21 @@
delete from pp.optimize_detail
where project_no = #{projectNumber}
</delete>
+
+ <delete id="deleteOptimizeLayout">
+ delete from pp.optimize_layout
+ where project_no = #{projectNumber}
+ </delete>
+
+ <delete id="deleteOptimizeProjectFile">
+ delete from pp.optimize_project_file
+ where project_no = #{projectNumber}
+ </delete>
+
+ <update id="updateOptimizeUse">
+ update pp.optimize_use set state=0
+ where project_no = #{projectNumber}
+ </update>
<select id="selectOptimizeDetailById">
select * from pp.optimize_detail
@@ -622,7 +672,7 @@
p.creater = a.Id
)))
WHERE
- ( p.state = 1 )
+ ( p.state = 1 ) and p.tempering_state=0 and optimize_state=0
ORDER BY
p.create_time DESC,
p.project_no
@@ -716,6 +766,7 @@
`g`.`area`,
`g`.`icon`
</select>
+
<select id="selectComputeDetailMpPatchState">
select `l`.`order_id` AS order_id,
@@ -844,6 +895,13 @@
group by process_id,technology_number
</select>
+ <select id="selectPatchLogState">
+ select
+ count(*)
+ from pp.patch_log
+ where process_id=#{processId} and technology_number=#{technologyNumber} and order_sort=#{orderNumber} and project_no=#{projectNo}
+ </select>
+
<update id="updateProjectMp">
update pp.optimize_project set project_name=#{projectNmae},glass_total=#{sumQuantity},glass_total_area= #{sumArea},
type=#{type},process_qty=#{processIdCount},process_cards=#{processId} where project_no=#{projectId}
@@ -904,6 +962,53 @@
);
</foreach>
</insert>
+
+ <insert id="insertOptimizeHeatDetail">
+ INSERT INTO pp.optimize_heat_detail (
+ project_no,
+ process_id,
+ width,
+ height,
+ x_axis,
+ y_axis,
+ rotate_angle,
+ creater,
+ create_time,
+ update_time,
+ patch_state,
+ layer,
+ order_sort,
+ layout_id,
+ sort,
+ glass_id,
+ pair_width,
+ pair_height,
+ intRemark,
+ strRemark
+ ) VALUES (
+ #{projectId},
+ #{processId},
+ #{width},
+ #{height},
+ 0,
+ 0,
+ 0,
+ #{username},
+ NOW(),
+ NOW(),
+ #{patchState},
+ #{technologyNumber},
+ #{orderNumber},
+ 0,
+ #{index},
+ null,
+ #{width},
+ #{height},
+ null,
+ null
+ );
+ </insert>
+
<!--妯℃嫙璁$畻缁撴灉淇濆瓨-->
<insert id="addratioResult" parameterType="map">
<foreach collection="ratioResult" item="glass">
@@ -931,11 +1036,140 @@
</foreach>
</insert>
+ <!--浼樺寲灏忕墖淇濆瓨-->
+ <insert id="addOptimizeDetail" parameterType="map">
+ <foreach collection="object" item="glass">
+ INSERT INTO pp.optimize_detail (
+ project_no,
+ process_id,
+ layer,
+ total_layer,
+ order_sort,
+ stock_id,
+ polys_id,
+ o_width,
+ o_height,
+ width,
+ height,
+ x_axis,
+ y_axis,
+ patch_state,
+ mark_icon
+ ) VALUES (
+ #{projectId},
+ #{glass.processId},
+ #{glass.layer},
+ #{glass.totalLayer},
+ #{glass.orderSort},
+ #{glass.stockSort},
+ #{glass.polySort},
+ #{glass.realwidth},
+ #{glass.realheight},
+ #{glass.width},
+ #{glass.height},
+ #{glass.x},
+ #{glass.y},
+ #{glass.patchState},
+ #{glass.markIcon}
+ );
+ </foreach>
+ </insert>
+
+ <!--浼樺寲缁撴灉json鏍煎紡淇濆瓨-->
+ <insert id="addOptimizeProjectFile" >
+ INSERT INTO pp.optimize_project_file (
+ project_no,
+ type,
+ content,
+ create_time,
+ creater
+ ) VALUES (
+ #{projectId},
+ "浼樺寲缁撴灉",
+ #{object},
+ now(),
+ #{name}
+ );
+ </insert>
+
+ <!--浼樺寲鍘熺墖淇濆瓨-->
+ <insert id="addOptimizeLayout" parameterType="map">
+ <foreach collection="object " item="glass">
+ INSERT INTO pp.optimize_layout (
+ project_no,
+ stock_id,
+ width,
+ height,
+ usage_rate,
+ stock_code,
+ up_trim,
+ down_trim,
+ left_trim,
+ right_trim,
+ glass_count,
+ glass_area,
+ create_time
+ ) VALUES (
+ #{projectId},
+ #{glass.stockId},
+ #{glass.width},
+ #{glass.height},
+ #{glass.usageRate},
+ #{glass.stockCode},
+ #{glass.upTrim},
+ #{glass.downTrim},
+ #{glass.leftTrim},
+ #{glass.rightTrim},
+ #{glass.glassCount},
+ #{glass.glassArea},
+ now()
+ );
+ </foreach>
+ </insert>
+
+ <!--浼樺寲鍘熺墖淇濆瓨-->
+ <insert id="addOptimizeUse" parameterType="map">
+ <foreach collection="object " item="glass">
+ INSERT INTO pp.optimize_use (
+ project_no,
+ raw_stock_code,
+ type,
+ width,
+ height,
+ use_count,
+ not_use_count,
+ state,
+ left_trim,
+ down_trim,
+ right_trim,
+ up_trim,
+ creater,
+ create_time
+ ) VALUES (
+ #{projectId},
+ #{glass.stockCode},
+ 1,
+ #{glass.width},
+ #{glass.height},
+ #{glass.count},
+ #{glass.count},
+ 1,
+ #{glass.leftTrim},
+ #{glass.downTrim},
+ #{glass.rightTrim},
+ #{glass.upTrim},
+ #{name},
+ now()
+ );
+ </foreach>
+ </insert>
+
+
<!--妯℃嫙璁$畻宸ョ▼鏇存柊-->
<update id="addratioProjectResult" parameterType="map">
UPDATE pp.optimize_project
SET
- state = 10,
+ tempering_state = 1,
furnaces_qty=#{resultSum[0]},
load_rate=#{resultSum[1]},
chaos_pct = #{inputValues.chaos_pct},
@@ -950,10 +1184,11 @@
project_no = #{inputValues.project_no}
</update>
+
<!--浼樺寲璁剧疆淇濆瓨-->
<update id="optimizeParmsSave">
update erp_user_info.user as u
- set u.optimize_parms = #{jsonString}
+ set u.optimize_parms = #{jsonString} where user_name=#{username}
</update>
<update id="updateOptimizeResult">
--
Gitblit v1.8.0