| | |
| | | a.id as rackNo |
| | | FROM |
| | | pp.flow_card c |
| | | LEFT JOIN sd.order_detail o ON c.order_id = o.order_id |
| | | LEFT JOIN sd.order_detail o ON c.order_id = o.order_id and c.order_number = o.order_number |
| | | 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 |
| | |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | (d.child_width + d.child_height) * 2/ 1000 as 'perimeter', |
| | | c.quantity, |
| | | od.shape, |
| | | concat( c.process_id, '-', c.technology_number ) AS 'process_id', |
| | | c.process_id AS processId, |
| | | c.technology_number as layer, |
| | | c.layers_number as totalLayer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * c.quantity, 4 ) as 'area', |
| | | c.order_number, |
| | | d.icon AS markIcon, |
| | | op.project_name, |
| | | 0 as patchState, |
| | | c.rack AS rackNo, |
| | | 0 as heatLayoutId, |
| | | d.process, |
| | | o.order_id AS orderNo, |
| | | o.customer_name AS customerName, |
| | |
| | | AND c.technology_number = d.technology_number |
| | | INNER JOIN pp.optimize_project AS op ON op.project_no = c.project_no |
| | | LEFT JOIN sd.ORDER o ON o.order_id = c.order_id |
| | | LEFT JOIN order_detail od ON c.order_id = od.order_id |
| | | LEFT JOIN sd.order_detail od ON c.order_id = od.order_id |
| | | AND c.order_number = od.order_number |
| | | WHERE |
| | | c.project_no IS NOT NULL |
| | | and c.project_no = #{projectNo} |
| | |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | (d.child_width + d.child_height) * 2/ 1000 as 'perimeter', |
| | | c.patch_num as quantity, |
| | | od.shape, |
| | | concat( c.process_id, '-', c.technology_number ) AS 'process_id', |
| | | c.process_id AS 'process_ids', |
| | | c.technology_number as layer, |
| | | fc.layers_number as total_layer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * c.patch_num, 4 ) as 'area', |
| | | c.order_sort as order_number, |
| | | d.icon, |
| | | op.project_name, |
| | | 1 as patch_state, |
| | | a.id as rackNo, |
| | | 0 as heatLayoutId, |
| | | d.process, |
| | | o.order_id AS orderNo, |
| | | o.customer_name AS customerName, |
| | |
| | | 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 sd.ORDER o ON o.order_id = c.order_id |
| | | LEFT JOIN order_detail od ON c.order_id = od.order_id |
| | | LEFT JOIN sd.order_detail od ON fc.order_id = od.order_id |
| | | AND fc.order_number = od.order_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 |
| | |
| | | <!--优化查询--> |
| | | <select id="computeAndOptimization"> |
| | | SELECT |
| | | c.project_no, |
| | | c.rack AS rackNo, |
| | | h.layout_id as heatLayoutId, |
| | | # h.layout_id as heatLayoutId, |
| | | h.width AS width, |
| | | h.height AS height, |
| | | (h.width + h.height) * 2 / 1000 as 'perimeter', |
| | | od.shape, |
| | | count( 1 ) AS quantity, |
| | | concat( h.process_id, '-', h.layer ) AS processId, |
| | | concat( h.process_id, '-', h.layer ) AS process_id, |
| | | c.process_id AS processId, |
| | | h.process_id as process_ids, |
| | | h.layer, |
| | | c.layers_number as totalLayer, |
| | | d.glass_child, |
| | | od.price, |
| | | od.remarks, |
| | | round( d.area * count( 1 ), 4 ) AS 'area', |
| | | c.order_number, |
| | | h.order_sort AS orderSort, |
| | |
| | | AND c.order_number = d.order_number |
| | | AND c.technology_number = d.technology_number |
| | | LEFT JOIN sd.order o on o.order_id = c.order_id |
| | | LEFT JOIN order_detail od on c.order_id = od.order_id |
| | | LEFT JOIN sd.order_detail od on c.order_id = od.order_id and c.order_number = od.order_number |
| | | WHERE |
| | | h.project_no = #{projectNo} |
| | | GROUP BY |
| | | h.layout_id, |
| | | # h.layout_id, |
| | | h.width, |
| | | h.height, |
| | | h.process_id, |
| | |
| | | ou.right_trim as rightTrim, |
| | | JSON_EXTRACT(ms.json, '$.thickness') AS thickness, |
| | | JSON_EXTRACT(ms.json, '$.name') AS name, |
| | | JSON_EXTRACT(ms.json, '$.model') AS model |
| | | JSON_EXTRACT(ms.json, '$.model') AS model, |
| | | (ou.width * ou.height * ou.use_count / 1000000.0) AS totalArea |
| | | from pp.optimize_use ou |
| | | left join mm.material_store ms on ou.raw_stock_code=ms.id where project_no=#{projectNumber} and state=1 |
| | | </select> |
| | |
| | | <!--修改模拟计算工程状态--> |
| | | <update id="updateProjectTemperingStateMp"> |
| | | update pp.optimize_project as p |
| | | set p.tempering_state = #{states} |
| | | set p.tempering_state = #{states}, |
| | | p.load_rate = NULL, |
| | | p.furnaces_qty = NULL |
| | | where p.project_no = #{projectNumber} |
| | | </update> |
| | | |
| | |
| | | NOW(), |
| | | NOW(), |
| | | 0, |
| | | #{glass.layers_number}, |
| | | #{glass.technology_number}, |
| | | #{glass.order_number}, |
| | | #{glass.tempering_layout_id}, |
| | | #{glass.tempering_feed_sequence}, |
| | |
| | | order_sort, |
| | | stock_id, |
| | | polys_id, |
| | | o_width, |
| | | o_height, |
| | | p_width, |
| | | p_height, |
| | | width, |
| | | height, |
| | | x_axis, |
| | | y_axis, |
| | | patch_state, |
| | | mark_icon, |
| | | isRotate, |
| | | glass_point, |
| | | glass_id, |
| | | rack_no |
| | | ) VALUES ( |
| | | #{projectId}, |
| | |
| | | #{glass.markIcon}, |
| | | #{glass.isRotate}, |
| | | #{glass.glassPoint}, |
| | | CONCAT( |
| | | LPAD(SUBSTR(#{projectId}, 2), 8, '0'), |
| | | LPAD(#{glass.stockSort}, 4, '0'), |
| | | LPAD(#{glass.polySort}, 6, '0') |
| | | ), |
| | | #{glass.rackNo} |
| | | ); |
| | | </foreach> |
| | |
| | | |
| | | <update id="updateOptimizeDetail"> |
| | | update pp.optimize_detail |
| | | set heat_layout_id=#{layoutId},heat_layout_sort=#{sort},glass_id=concat(process_id,'|',#{layoutId},'|',#{sort}) |
| | | set heat_layout_id=#{layoutId},heat_layout_sort=#{sort} |
| | | where id=#{id}; |
| | | </update> |
| | | |
| | |
| | | UPDATE pp.optimize_config set config_detail=#{json},create_time=now() |
| | | where config_type=#{type} and creater=#{username} |
| | | </update> |
| | | <insert id="insertOptimizeConfig"> |
| | | INSERT INTO pp.optimize_config ( |
| | | config_type, |
| | | config_name, |
| | | creater, |
| | | config_detail, |
| | | state, |
| | | create_time |
| | | ) VALUES ( |
| | | #{type}, |
| | | #{configName}, |
| | | #{userName}, |
| | | #{json}, |
| | | 1, |
| | | now() |
| | | ) |
| | | </insert> |
| | | <update id="updateFlowCardRack"> |
| | | UPDATE pp.flow_card |
| | | SET rack = #{rackValue} |
| | |
| | | x_axis = #{detail.x}, |
| | | y_axis = #{detail.y} |
| | | WHERE |
| | | project_no = #{processId} AND polys_id = #{detail.polySort} |
| | | project_no = #{processId} AND polys_id = #{detail.polySort} AND stock_id = #{detail.stockSort} |
| | | </update> |
| | | <update id="updateProjectOptimize"> |
| | | update pp.optimize_project as p |
| | |
| | | p.avg_cut_pct = #{optimalResults.avgCutRate}, |
| | | p.valid_cut_pct = #{optimalResults.validCutRate}, |
| | | p.last_cut_pct = #{optimalResults.lastCutRate}, |
| | | p.raw_stock_qty = #{optimalResults.totalQuantity} |
| | | p.raw_stock_qty = #{optimalResults.totalQuantity}, |
| | | p.raw_stock_area = #{totalArea} |
| | | where p.project_no = #{projectId} |
| | | </update> |
| | | <update id="updateProjectTemperingId"> |
| | | UPDATE pp.optimize_detail |
| | | SET heat_layout_id = NULL, |
| | | heat_layout_sort = NULL |
| | | WHERE project_no = #{projectNumber} |
| | | </update> |
| | | |
| | | <select id="simulatedTypesettingUsingOpt"> |
| | |
| | | ol.realwidth as rawGlassWidth, |
| | | ol.realheight as rawGlassHeight, |
| | | op.glass_thickness as rawGlassThickness, |
| | | ol.stock_id rawSequence |
| | | ol.stock_id as rawSequence, |
| | | ol.usage_rate as usageRate |
| | | from |
| | | pp.optimize_layout ol |
| | | left join pp.optimize_project op on ol.project_no = op.project_no |
| | |
| | | |
| | | |
| | | <select id="selectOptimizeDetail"> |
| | | |
| | | select |
| | | opd.glass_id as glassId, |
| | | opd.project_no as engineerId, |
| | |
| | | opd.mark_icon as markIcon, |
| | | fc.`merge` as combine, |
| | | concat( opd.process_id, '/', opd.layer ) as flowCardSequence, |
| | | ogd.process |
| | | ogd.process, |
| | | if(opd.graph_no=100,0,1) as graphNo |
| | | from |
| | | pp.optimize_detail opd |
| | | left join pp.optimize_project op on op.project_no = opd.project_no |
| | |
| | | SELECT |
| | | width, |
| | | height, |
| | | realwidth, |
| | | realheight, |
| | | realwidth as realWidth, |
| | | realheight as realHeight, |
| | | stock_id AS stockId, |
| | | stock_code AS stockCode, |
| | | usage_rate AS usageRate, |
| | |
| | | <select id="getOptimizeDetailsInfo" resultType="java.util.Map"> |
| | | SELECT |
| | | 0 AS isRemain, |
| | | od.width AS realWidth, |
| | | od.height AS realHeight, |
| | | od.o_width AS realWidth, |
| | | od.o_height AS realHeight, |
| | | od.p_width AS width, |
| | | od.p_height AS height, |
| | | od.process_id AS processId, |
| | |
| | | od.order_sort AS orderSort, |
| | | od.stock_id AS layoutId, |
| | | od.stock_number AS glassSort, |
| | | od.polys_id AS polySort, |
| | | od.x_axis AS x, |
| | | od.y_axis AS y, |
| | | od.mark_icon AS markIcon, |
| | |
| | | o.project AS projectName, |
| | | ord.product_name AS productName, |
| | | ord.building_number AS buildingNumber, |
| | | COALESCE(h.layout_id, 0) as heatLayoutId, |
| | | # COALESCE(h.layout_id, 0) as heatLayoutId, |
| | | od.rack_no AS rackNo |
| | | FROM |
| | | pp.optimize_detail od |
| | | LEFT JOIN pp.flow_card fc on (od.process_id = fc.process_id and od.layer = fc.technology_number and od.order_sort = fc.order_number ) |
| | | LEFT JOIN sd.order_glass_detail ogd ON (fc.order_id = ogd.order_id and od.order_sort = ogd.order_number) |
| | | LEFT JOIN sd.order_glass_detail ogd ON (fc.order_id = ogd.order_id and od.order_sort = ogd.order_number AND ogd.technology_number = fc.technology_number) |
| | | LEFT JOIN sd.ORDER o ON o.order_id = fc.order_id |
| | | LEFT JOIN sd.order_detail ord ON (fc.order_id = ord.order_id and od.order_sort = ord.order_number) |
| | | LEFT JOIN pp.optimize_heat_detail h ON (h.process_id = fc.process_id and od.order_sort = h.sort) |
| | | # LEFT JOIN pp.optimize_heat_detail h ON (h.process_id = fc.process_id and od.order_sort = h.sort) |
| | | WHERE |
| | | od.project_no = #{projectId} |
| | | </select> |
| | |
| | | <select id="getLayoutSetSv" resultType="java.util.Map"> |
| | | SELECT |
| | | project_no, |
| | | width,height, |
| | | usage_rate, |
| | | stock_code |
| | | stock_code as code, |
| | | realwidth AS width, |
| | | realheight AS height, |
| | | usage_rate as usageRate, |
| | | glass_count as polyQuantity, |
| | | glass_area AS polyArea |
| | | |
| | | FROM |
| | | pp.optimize_layout |
| | | WHERE |
| | | project_no = #{processId} |
| | | </select> |
| | | <select id="selectConfigByUserAndType" resultType="java.lang.String"> |
| | | SELECT |
| | | id, |
| | | config_type, |
| | | config_detail, |
| | | creater |
| | | FROM |
| | | pp.optimize_config |
| | | WHERE creater = #{username} AND config_type = #{type} |
| | | </select> |
| | | <select id="getGlassProjectList" resultType="java.util.Map" parameterType="java.lang.String"> |
| | | SELECT |
| | | project_no AS projectId, |
| | | tempering_state |
| | | FROM |
| | | pp.optimize_project |
| | | WHERE |
| | | project_no = #{projectId} |
| | | </select> |
| | | <select id="getProjectState" resultType="java.util.Map" parameterType="java.lang.String"> |
| | | SELECT |
| | | project_no, |
| | | project_name, |
| | | state, |
| | | tempering_state, |
| | | optimize_state |
| | | FROM |
| | | pp.optimize_project |
| | | WHERE |
| | | project_no = #{projectNo} |
| | | </select> |
| | | <select id="optimizeTemp" resultType="java.util.Map" parameterType="java.lang.String"> |
| | | SELECT |
| | | project_no, |
| | | layer, |
| | | o_width as width, |
| | | o_height as height, |
| | | rack_no as rackNo, |
| | | COUNT(*) as quantity, |
| | | ROUND((o_width + o_height) * 2 / 1000, 2) as perimeter, |
| | | ROUND(o_width * o_height * COUNT(*) / 1000000, 4) as area |
| | | FROM |
| | | pp.`optimize_detail` |
| | | WHERE |
| | | project_no = #{projectNo} |
| | | AND process_id = '' |
| | | GROUP BY |
| | | project_no, |
| | | layer, |
| | | o_width, |
| | | o_height, |
| | | REPLACE(REPLACE(rack_no, '+', ''), '#', '') |
| | | ORDER BY |
| | | o_width, |
| | | o_height |
| | | </select> |
| | | <select id="selectTempProject" resultType="java.util.Map" parameterType="java.lang.String"> |
| | | SELECT |
| | | project_no, |
| | | o_width as width, |
| | | o_height as height, |
| | | rack_no as order_number, |
| | | layer as processCard, |
| | | COUNT(*) as quantity, |
| | | ROUND(o_width * o_height * COUNT(*) / 1000000, 4) as Area |
| | | FROM |
| | | pp.`optimize_detail` |
| | | WHERE |
| | | project_no = #{processId} |
| | | AND process_id = '' |
| | | GROUP BY |
| | | project_no, |
| | | layer, |
| | | o_width, |
| | | o_height, |
| | | rack_no |
| | | ORDER BY |
| | | o_width, |
| | | o_height |
| | | </select> |
| | | |
| | | |
| | | </mapper> |