From ef5b4a78ec2201b46cb0c9a59fc2cb036bd13f38 Mon Sep 17 00:00:00 2001
From: chenlu <1320612696@qq.com>
Date: 星期五, 18 七月 2025 15:05:21 +0800
Subject: [PATCH] 次破报表添加报工审核状态条件
---
north-glass-erp/src/main/resources/mapper/pp/GlassOptimize.xml | 412 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 364 insertions(+), 48 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 f6f616d..afbd97d 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"/>
@@ -93,37 +95,45 @@
<!--绗竴娆′紭鍖栨煡璇�-->
<select id="firstOptimization">
- ( SELECT
- c.project_no,
- d.child_width as 'width',
- d.child_height as 'height',
- c.quantity,
- o.shape,
- concat( c.process_id, '-', c.technology_number ) AS 'process_id',
- c.technology_number,
- d.glass_child,
- o.product_name,
- o.price,
- o.remarks,
- o.building_number,
- round( d.area * c.quantity, 4 ) as 'area',
- c.order_number,
- d.icon,
- op.project_name
- FROM
- pp.flow_card c
- LEFT JOIN sd.order_detail o ON c.order_id = o.order_id
- AND c.order_number = o.order_number
- LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
- AND c.order_number = d.order_number
- AND c.technology_number = d.technology_number
- INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no
- WHERE
- c.project_no IS NOT NULL
- and c.project_no = #{projectNo}
- ORDER BY
- c.process_id,
- c.order_number
+ (SELECT
+ c.project_no,
+ d.child_width as 'width',
+ d.child_height as 'height',
+ c.quantity,
+ o.shape,
+ concat( c.process_id, '-', c.technology_number ) AS 'process_id',
+ c.process_id AS 'process_ids',
+ c.technology_number as layer,
+ c.layers_number as total_layer,
+ d.glass_child,
+ o.product_name,
+ o.price,
+ o.remarks,
+ o.building_number,
+ round( d.area * c.quantity, 4 ) as 'area',
+ c.order_number,
+ d.icon,
+ op.project_name,
+ 0 as patch_state,
+ a.id as rackNo
+ FROM
+ pp.flow_card c
+ LEFT JOIN sd.order_detail o ON c.order_id = o.order_id
+ AND c.order_number = o.order_number
+ LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
+ AND c.order_number = 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
+ (select (@row_number := @row_number + 1) as id,process_id as process_id,technology_number as technology_number from (select process_id,technology_number from pp.flow_card tt where project_no =#{projectNo} group by process_id,technology_number) tt,(select @row_number := 0) as t) a
+ on a.process_id=c.process_id and a.technology_number=c.technology_number
+ WHERE
+ c.project_no IS NOT NULL
+ and c.project_no = #{projectNo}
+ ORDER BY
+ a.id,
+ c.process_id,
+ c.order_number
) union
(
SELECT
@@ -133,7 +143,9 @@
c.patch_num as quantity,
o.shape,
concat( c.process_id, '-', c.technology_number ) AS 'process_id',
- c.technology_number,
+ c.process_id AS 'process_ids',
+ c.technology_number as layer,
+ fc.layers_number as total_layer,
d.glass_child,
o.product_name,
o.price,
@@ -142,7 +154,9 @@
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,
+ a.id as rackNo
FROM
pp.patch_log c
LEFT JOIN sd.order_detail o ON c.order_id = o.order_id
@@ -151,26 +165,33 @@
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
+ left join
+ (select (@row_number := @row_number + 1) as id,process_id as process_id,technology_number as technology_number from (select process_id,technology_number from pp.flow_card tt where project_no =#{projectNo} group by process_id,technology_number) tt,(select @row_number := 0) as t) a
+ on a.process_id=c.process_id and a.technology_number=c.technology_number
WHERE
c.project_no IS NOT NULL
and c.project_no = #{projectNo}
ORDER BY
+ a.id,
c.process_id,
c.order_sort)
</select>
- <!--绗竴娆′紭鍖栨煡璇�-->
+ <!--浼樺寲鏌ヨ-->
<select id="analogComputationOptimization">
SELECT
h.project_no,
- h.layout_id,
+ h.layout_id as rackNo,
h.width AS width,
h.height AS height,
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 +200,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
@@ -215,6 +237,57 @@
ORDER BY
LENGTH( h.layout_id ),
h.layout_id;
+ </select>
+
+
+ <select id="getOptimizeDetail">
+ SELECT
+ h.project_no,
+ h.heat_layout_id as rackNo,
+ h.o_width AS width,
+ h.o_height AS height,
+ (h.height-h.o_height)/2 as shortGrind1,
+ (h.height-h.o_height)/2 as shortGrind2,
+ (h.width-h.o_width)/2 as longGrind2,
+ (h.width-h.o_width)/2 as longGrind1,
+ count( 1 ) AS quantity,
+ o.shape,
+ concat( h.process_id, '-', h.layer ) AS 'process_id',
+ h.process_id as process_ids,
+ h.layer,
+ h.total_layer as total_layer,
+ d.glass_child,
+ o.product_name,
+ o.price,
+ o.remarks,
+ o.building_number,
+ round( d.area * count( 1 ), 4 ) AS 'area',
+ c.order_number,
+ d.icon,
+ o.price,
+ h.patch_state
+ from
+ pp.`optimize_detail` h
+ LEFT JOIN pp.flow_card c ON h.process_id = c.process_id
+ AND h.layer = c.technology_number
+ AND h.order_sort = c.order_number
+ LEFT JOIN sd.order_detail o ON c.order_id = o.order_id
+ AND c.order_number = o.order_number
+ LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id
+ AND c.order_number = d.order_number
+ AND c.technology_number = d.technology_number
+ WHERE
+ h.project_no =#{projectNo}
+ GROUP BY
+ h.project_no,
+ h.heat_layout_id,
+ h.width,
+ h.height,
+ h.process_id,
+ h.layer,
+ c.order_number
+ ORDER BY
+ h.heat_layout_id;
</select>
<!--宸ョ▼淇℃伅娴佺▼鍗�-->
@@ -263,6 +336,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 +367,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 +387,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 +414,8 @@
i.id AS id,
'' AS producer,
i.quantity AS available_quantity,
+ null as processingQuantity,
+ 0 as materialType,
i.width,
i.height,
i.thickness,
@@ -464,7 +545,7 @@
鏁伴噺 as quantity,
褰㈢姸 as shape,
椤圭洰 as project,
- 鍗曠墖鍚嶇О as glass_child,
+ 浜у搧鍚嶇О as glass_child,
闈㈢Н as area,
GlassType as glassType,
patch_state
@@ -480,7 +561,7 @@
鏁伴噺 as quantity,
褰㈢姸 as shape,
椤圭洰 as project,
- 鍗曠墖鍚嶇О as glass_child,
+ 浜у搧鍚嶇О as glass_child,
闈㈢Н as area,
GlassType as glassType,
patch_state
@@ -496,7 +577,7 @@
鏁伴噺 as quantity,
褰㈢姸 as shape,
椤圭洰 as project,
- 鍗曠墖鍚嶇О as glass_child,
+ 浜у搧鍚嶇О as glass_child,
闈㈢Н as area,
GlassType as glassType,
patch_state
@@ -531,6 +612,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 +632,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 +647,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 +684,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
@@ -614,7 +727,8 @@
p.remark,
a.name,
p.create_time,
- p.update_time
+ p.update_time,
+ p.optimize_state
FROM
(
pp.optimize_project p
@@ -622,7 +736,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 +830,7 @@
`g`.`area`,
`g`.`icon`
</select>
+
<select id="selectComputeDetailMpPatchState">
select `l`.`order_id` AS order_id,
@@ -844,6 +959,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 +1026,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 +1100,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 +1248,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">
@@ -984,7 +1283,7 @@
JSON_EXTRACT( oc.config_detail, '$.load_length' ) as load_length,
JSON_EXTRACT( oc.config_detail, '$.x_space' ) as x_space,
JSON_EXTRACT( oc.config_detail, '$.y_space' ) as y_space
- from pp.optimize_admin oa left join pp.optimize_config oc on oa.h_id=oc.id where name='admin'
+ from pp.optimize_admin oa where config_type=1 and creater=#{username}
</select>
<select id="getEdgeTrimming">
@@ -994,7 +1293,7 @@
JSON_EXTRACT( oc.config_detail, '$.down_trim' ) as downTrim,
JSON_EXTRACT( oc.config_detail, '$.auto_fill_trim' ) as autoFillTrim,
JSON_EXTRACT( oc.config_detail, '$.quick_trim' ) as quickTrim
- from pp.optimize_config oc where config_type=5
+ from pp.optimize_config oc where config_type=5 and creater=#{username}
</select>
<select id="getGrindingTrimming">
@@ -1005,12 +1304,12 @@
JSON_EXTRACT( oc.config_detail, '$.auto_fill_edge' ) as autoFillEdge,
JSON_EXTRACT( oc.config_detail, '$.quick_edge' ) as quickEdge,
JSON_EXTRACT( oc.config_detail, '$.min_auto_lenght' ) as minAutoLenght
- from pp.optimize_config oc where config_type=4
+ from pp.optimize_config oc where config_type=4 and creater=#{username}
</select>
<update id="updateOptimizeConfig">
UPDATE pp.optimize_config set config_detail=#{json},create_time=now()
- where config_type=#{type}
+ where config_type=#{type} and creater=#{username}
</update>
<select id="simulatedTypesettingUsingOpt">
@@ -1054,6 +1353,23 @@
c.order_number
</select>
+ <select id="getFlowCardListSimulated">
+ SELECT 娴佺▼鍗″彿 as process_id,
+ 灞� as technology_number,
+ 鎬诲眰鏁� as TotalFloors,
+ 瑙勬牸 as TotalNumber,
+ 鏁伴噺 as quantity,
+ 褰㈢姸 as shape,
+ 椤圭洰 as project,
+ 浜у搧鍚嶇О as glass_child,
+ 闈㈢Н as area,
+ GlassType as glassType,
+ patch_state
+ FROM pp.v_optimize_process_normal where
+ CONCAT( JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.color' )) )= #{optionVal}
+ order by deliveryDate desc
+ </select>
+
--
Gitblit v1.8.0