| | |
| | | <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"/> |
| | |
| | | <select id="projectInfoMp"> |
| | | SELECT |
| | | f.order_number, |
| | | g.child_width , |
| | | g.child_height , |
| | | g.child_width as 'width', |
| | | g.child_height as 'height', |
| | | f.quantity , |
| | | d.shape , |
| | | op.process_cards , |
| | |
| | | f.technology_number , |
| | | g.glass_child , |
| | | g.icon, |
| | | op.project_name |
| | | op.project_name, |
| | | d.processing_note |
| | | FROM |
| | | ((pp.flow_card AS f |
| | | LEFT JOIN sd.order_detail AS d ON (((f.order_id = d.order_id) AND (f.order_number = d.order_number)))) |
| | |
| | | f.order_number; |
| | | </select> |
| | | |
| | | <!--第一次优化查询--> |
| | | <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.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 |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | c.patch_num as quantity, |
| | | o.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, |
| | | o.product_name, |
| | | o.price, |
| | | o.remarks, |
| | | o.building_number, |
| | | 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 |
| | | FROM |
| | | pp.patch_log c |
| | | LEFT JOIN sd.order_detail o ON c.order_id = o.order_id |
| | | AND c.order_sort = o.order_number |
| | | LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id |
| | | 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="directOptimization"> |
| | | (SELECT |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | c.quantity, |
| | | 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, |
| | | 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, |
| | | o.processing_note AS processingNote, |
| | | o.project AS projectName, |
| | | od.product_name AS productName, |
| | | od.building_number AS buildingNumber |
| | | FROM |
| | | pp.flow_card c |
| | | 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 sd.ORDER o ON o.order_id = c.order_id |
| | | LEFT JOIN order_detail od ON c.order_id = od.order_id |
| | | WHERE |
| | | c.project_no IS NOT NULL |
| | | and c.project_no = #{projectNo} |
| | | ORDER BY |
| | | c.process_id, |
| | | c.order_number |
| | | ) union |
| | | ( |
| | | SELECT |
| | | c.project_no, |
| | | d.child_width as 'width', |
| | | d.child_height as 'height', |
| | | c.patch_num as quantity, |
| | | 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, |
| | | 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, |
| | | o.processing_note AS processingNote, |
| | | o.project AS projectName, |
| | | od.product_name AS productName, |
| | | od.building_number AS buildingNumber |
| | | FROM |
| | | pp.patch_log c |
| | | LEFT JOIN sd.order_glass_detail d ON c.order_id = d.order_id |
| | | 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 sd.ORDER o ON o.order_id = c.order_id |
| | | LEFT JOIN order_detail od ON c.order_id = od.order_id |
| | | 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 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, |
| | | 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_heat_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.layout_id, |
| | | h.width, |
| | | h.height, |
| | | h.process_id, |
| | | h.layer, |
| | | d.area, |
| | | c.quantity, |
| | | d.child_width, |
| | | d.child_height, |
| | | o.shape, |
| | | d.glass_child, |
| | | o.product_name, |
| | | o.price, |
| | | o.remarks, |
| | | o.building_number, |
| | | c.order_number, |
| | | d.icon, |
| | | o.price |
| | | ORDER BY |
| | | LENGTH( h.layout_id ), |
| | | h.layout_id; |
| | | </select> |
| | | |
| | | |
| | | <!--优化查询--> |
| | | <select id="computeAndOptimization"> |
| | | SELECT |
| | | c.rack AS rackNo, |
| | | h.layout_id as heatLayoutId, |
| | | h.width AS width, |
| | | h.height AS height, |
| | | count( 1 ) AS quantity, |
| | | concat( h.process_id, '-', h.layer ) AS processId, |
| | | h.process_id as process_ids, |
| | | h.layer, |
| | | c.layers_number as totalLayer, |
| | | round( d.area * count( 1 ), 4 ) AS 'area', |
| | | c.order_number, |
| | | h.order_sort AS orderSort, |
| | | d.icon AS markIcon, |
| | | h.patch_state AS patchState, |
| | | d.process, |
| | | o.order_id AS orderNo, |
| | | o.customer_name AS customerName, |
| | | o.processing_note AS processingNote, |
| | | o.project AS projectName, |
| | | od.product_name AS productName, |
| | | od.building_number AS buildingNumber |
| | | from |
| | | pp.`optimize_heat_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_glass_detail d ON c.order_id = d.order_id |
| | | 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 |
| | | WHERE |
| | | h.project_no = #{projectNo} |
| | | GROUP BY |
| | | h.layout_id, |
| | | h.width, |
| | | h.height, |
| | | h.process_id, |
| | | h.layer, |
| | | d.area, |
| | | c.quantity, |
| | | d.child_width, |
| | | d.child_height, |
| | | c.order_number, |
| | | d.icon |
| | | ORDER BY |
| | | LENGTH( h.layout_id ), |
| | | h.layout_id; |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="getOptimizeDetail"> |
| | | SELECT |
| | | h.project_no, |
| | | h.rack_no 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.rack_no, |
| | | h.width, |
| | | h.height, |
| | | h.process_id, |
| | | h.layer, |
| | | c.order_number |
| | | ORDER BY |
| | | h.rack_no; |
| | | </select> |
| | | |
| | | <!--工程信息流程卡--> |
| | | <select id="getProcessCardMp"> |
| | | SELECT |
| | | fc.process_id, |
| | | fc.order_number, |
| | | fc.quantity, |
| | | CONCAT(fc.technology_number, '/', COUNT(fc.technology_number)) AS layer, |
| | | CONCAT(fc.technology_number, '/', COUNT(fc.layers_number)) AS layer, |
| | | so.project, |
| | | CONCAT(sd.child_width, ' × ', sd.child_height) AS sizes |
| | | FROM |
| | |
| | | fc.order_number |
| | | </select> |
| | | |
| | | <select id="getFlowCardList"> |
| | | SELECT * |
| | | FROM |
| | | pp.flow_card AS fc |
| | | WHERE |
| | | fc.project_no = #{projectNo} |
| | | |
| | | </select> |
| | | |
| | | <select id="getPatchLogList"> |
| | | SELECT * |
| | | FROM |
| | | pp.patch_log |
| | | WHERE |
| | | project_no = #{projectNo} |
| | | |
| | | </select> |
| | | |
| | | <!--库存信息--> |
| | | <select id="materialStoreMp"> |
| | | SELECT |
| | | i.id AS id, |
| | | i.producer AS producer, |
| | | i.available_quantity AS available_quantity, |
| | | 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, |
| | |
| | | ( |
| | | (`s`.`type` = '原片') |
| | | AND (`i`.`optimize_state` = 1) |
| | | AND (`i`.`available_quantity` > 0) |
| | | AND (`i`.`available_quantity`-i.plan_quantity > 0) |
| | | AND JSON_EXTRACT(s.json, '$.thickness') = #{thickness} |
| | | AND JSON_EXTRACT(s.json, '$.model') = #{model} |
| | | ) |
| | | ORDER BY |
| | | `i`.`available_quantity` DESC ; |
| | | </select> |
| | | |
| | | <!--余料信息--> |
| | | <select id="surplusMaterialsMp"> |
| | | SELECT |
| | | i.id AS id, |
| | | '' AS producer, |
| | | i.quantity AS available_quantity, |
| | | null as processingQuantity, |
| | | 0 as materialType, |
| | | i.width, |
| | | i.height, |
| | | i.thickness, |
| | | i.colour AS name, |
| | | i.colour |
| | | FROM mm.surplus_materials as i |
| | | WHERE |
| | | i.quantity>0 and i.colour=#{model} and i.thickness=#{thickness} |
| | | ORDER BY |
| | | i.quantity DESC ; |
| | | </select> |
| | | |
| | | <!--库存余料信息--> |
| | | <select id="materialStoreSurplusMp"> |
| | | (SELECT |
| | | 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, |
| | | JSON_EXTRACT(s.json, '$.name') AS name, |
| | | JSON_EXTRACT(s.json, '$.model') AS model |
| | | FROM mm.material_inventory as `i` |
| | | LEFT JOIN mm.material_store as s ON ( |
| | | ( |
| | | `i`.`material_code` = `s`.`id` |
| | | ) |
| | | ) |
| | | WHERE |
| | | ( |
| | | (`s`.`type` = '原片') |
| | | AND (`i`.`optimize_state` = 1) |
| | | AND (`i`.`available_quantity`-i.plan_quantity > 0) |
| | | AND JSON_EXTRACT(s.json, '$.thickness') = #{thickness} |
| | | AND JSON_EXTRACT(s.json, '$.model') = #{model} |
| | | ) |
| | | ORDER BY |
| | | `i`.`available_quantity` DESC) union |
| | | (SELECT |
| | | i.id AS id, |
| | | '' AS producer, |
| | | i.quantity AS available_quantity, |
| | | null as processingQuantity, |
| | | 0 as materialType, |
| | | i.width, |
| | | i.height, |
| | | i.thickness, |
| | | i.colour AS name, |
| | | i.colour |
| | | FROM mm.surplus_materials as i |
| | | WHERE |
| | | i.quantity>0 and i.colour=#{model} and i.thickness=#{thickness} |
| | | ORDER BY |
| | | i.quantity DESC ); |
| | | </select> |
| | | |
| | | |
| | | <select id="materialStoreOptimizeUse"> |
| | | select ms.id AS id, |
| | | ou.use_count AS processingQuantity, |
| | | ou.width, |
| | | ou.height, |
| | | ou.left_trim as leftTrim, |
| | | ou.down_trim as downTrim, |
| | | ou.up_trim as upTrim, |
| | | 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 |
| | | 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> |
| | | |
| | | <select id="selectWordOrder" resultMap="wordOrderMap"> |
| | |
| | | AND pd.glass_sort = fc.technology_number |
| | | WHERE |
| | | CONCAT( JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.color' )) )= #{optionVal} |
| | | and ISNULL(fc.project_no) |
| | | and ISNULL(fc.project_no) and fc.layout_status=1 |
| | | GROUP BY |
| | | fc.process_id, |
| | | fc.technology_number |
| | | ORDER BY |
| | | fc.process_id, |
| | | fc.technology_number |
| | | </select> |
| | | |
| | | <select id="getFlowCardListWhole"> |
| | | 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_whole where |
| | | CONCAT( JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.color' )) )= #{optionVal} |
| | | </select> |
| | | |
| | | <select id="getFlowCardListNormal"> |
| | | 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} |
| | | </select> |
| | | |
| | | <select id="getFlowCardListPatch"> |
| | | 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_patch where |
| | | CONCAT( JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.thickness' )), JSON_UNQUOTE( JSON_EXTRACT( GlassType, '$.color' )) )= #{optionVal} |
| | | </select> |
| | | |
| | | <select id="getFlowCardListModify"> |
| | | 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, |
| | | 占用 as occupyState |
| | | FROM pp.v_optimize_porject_modify_merg where |
| | | GlassType REGEXP #{type} and GlassType REGEXP #{thickness} |
| | | and (工程号 is null or 工程号 = #{projectNO}) order by 占用,patch_state,流程卡号 |
| | | </select> |
| | | |
| | | <!--工程管理--> |
| | |
| | | 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`, |
| | |
| | | `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} |
| | |
| | | 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> |
| | | |
| | | <!--删除工程--> |
| | | <delete id="deleteProjectMp"> |
| | | delete from pp.optimize_project |
| | | where project_no = #{projectNumber} |
| | | </delete> |
| | | |
| | | <delete id="deleteOptimizeHeatDetail"> |
| | | delete from pp.optimize_heat_detail |
| | | where project_no = #{projectNumber} |
| | | </delete> |
| | | |
| | | <delete id="deleteOptimizeHeatLayout"> |
| | | delete from pp.optimize_heat_layout |
| | | where project_no = #{projectNumber} |
| | | </delete> |
| | | |
| | | <delete id="deleteOptimizeDetail"> |
| | | 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 |
| | | where project_no = #{projectNumber} and process_id= #{processId} and layer= #{layer} and order_sort= #{orderSort} |
| | | and heat_layout_id is null limit 0,1; |
| | | </select> |
| | | |
| | | <select id="selectOptimizeHeatDetail"> |
| | | select * from pp.optimize_heat_detail |
| | | where project_no = #{projectNumber} |
| | | </select> |
| | | |
| | | <select id="getProjectListMp"> |
| | | SELECT |
| | | p.id, |
| | | p.project_no, |
| | | p.project_no as projectNumber, |
| | | p.project_name, |
| | | p.glass_type, |
| | | p.glass_thickness, |
| | | p.type, |
| | | p.state, |
| | | p.glass_total, |
| | | p.glass_total as quantity, |
| | | p.glass_total_area, |
| | | p.process_qty, |
| | | p.process_cards, |
| | | p.remark, |
| | | a.name, |
| | | p.create_time, |
| | | p.update_time |
| | | p.update_time, |
| | | p.optimize_state |
| | | FROM |
| | | ( |
| | | pp.optimize_project p |
| | |
| | | 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 |
| | |
| | | |
| | | <!--模拟计算查询流程卡--> |
| | | <select id="selectProjectComputeMp"> |
| | | SELECT |
| | | fc.process_id, |
| | | fc.technology_number, |
| | | fc.project_no, |
| | | fcss.TotalFloors, |
| | | COUNT(fc.order_number) AS TotalNumber, |
| | | SUM(fc.quantity) AS quantity, |
| | | ROUND(SUM(od.width * od.height * fc.quantity / 1000000), 2) AS area, |
| | | o.project, |
| | | ogd.glass_child, |
| | | od.shape |
| | | FROM |
| | | pp.flow_card AS fc |
| | | LEFT JOIN sd.`order` AS o ON fc.order_id = o.order_id |
| | | LEFT JOIN sd.order_detail AS od ON od.order_id = fc.order_id AND od.order_number = fc.order_number |
| | | 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 |
| | | LEFT JOIN ( |
| | | SELECT |
| | | fcs.process_id, |
| | | fcs.order_number, |
| | | COUNT(DISTINCT fcs.technology_number) AS TotalFloors |
| | | FROM |
| | | pp.flow_card AS fcs |
| | | GROUP BY |
| | | fcs.process_id, fcs.order_number |
| | | ) AS fcss |
| | | ON fcss.process_id = fc.process_id AND fcss.order_number = fc.order_number |
| | | WHERE |
| | | fc.project_no = #{projectNo} |
| | | GROUP BY |
| | | fc.process_id, fc.technology_number |
| | | ORDER BY |
| | | fc.process_id, fc.technology_number; |
| | | select |
| | | 流程卡号 as processId, |
| | | 层 as technologyNumber, |
| | | 总层数 as total_layers, |
| | | 规格 as TotalNumber, |
| | | 数量 as total_num, |
| | | 项目 as project, |
| | | 产品名称 as glass_child, |
| | | 面积 as total_area, |
| | | tempering as tempering, |
| | | merge as merge, |
| | | patch_state as patch_state, |
| | | 0 as allow_rotate, |
| | | 0 as curtain_wall, |
| | | 0 as priority_level, |
| | | 1 as is_must |
| | | from pp.v_optimize_init_project_process_summary where project_no = #{projectNo} |
| | | </select> |
| | | |
| | | <select id="selectProjectCount"> |
| | | select * from pp.optimize_project where project_no=#{projectNo} |
| | | </select> |
| | | |
| | | <!--模拟计算流程卡详情--> |
| | | <select id="selectComputeDetailMp"> |
| | | <select id="selectComputeDetailMp1"> |
| | | SELECT |
| | | d.width AS width, |
| | | d.height AS height, |
| | |
| | | WHERE |
| | | p.state IN (1, 2) |
| | | AND f.process_id = #{processId} |
| | | </select> |
| | | |
| | | |
| | | <!--模拟计算流程卡详情2--> |
| | | <select id="selectComputeDetailMp"> |
| | | select `f`.`order_id` AS order_id, |
| | | `f`.`order_number` AS order_number, |
| | | `d`.`width` AS maxwidth, |
| | | `d`.`height` AS maxheight, |
| | | `g`.`child_width` AS width, |
| | | `g`.`child_height` AS height, |
| | | `f`.`process_id` AS process_id, |
| | | sum(`f`.`quantity`) AS quantity, |
| | | `f`.`technology_number` AS technology_number, |
| | | `d`.`building_number` AS building_number, |
| | | `d`.`shape` AS shape, |
| | | sum(round((`g`.`area` * `f`.`quantity`), 4)) AS area, |
| | | `g`.`icon` AS icon |
| | | from (( |
| | | `pp`.`flow_card` `f` |
| | | left join `sd`.`order_detail` `d` on (((`f`.`order_id` = `d`.`order_id`) |
| | | and (`f`.`order_number` = `d`.`order_number`)))) |
| | | left join `sd`.`order_glass_detail` `g` on (((`f`.`order_id` = `g`.`order_id`) |
| | | and (`f`.`order_number` = `g`.`order_number`) |
| | | and (`f`.`technology_number` = `g`.`technology_number`)))) |
| | | where (`f`.`layout_status` != 0) |
| | | and f.process_id = #{processId} |
| | | and f.technology_number = #{technologyNumber} |
| | | group by `f`.`process_id`, |
| | | `f`.`technology_number`, |
| | | `f`.`order_id`, |
| | | `f`.`order_number`, |
| | | `d`.`width`, |
| | | `d`.`height`, |
| | | `g`.`child_width`, |
| | | `g`.`child_height`, |
| | | `f`.`quantity`, |
| | | `d`.`building_number`, |
| | | `d`.`shape`, |
| | | `g`.`area`, |
| | | `g`.`icon` |
| | | </select> |
| | | |
| | | |
| | | <select id="selectComputeDetailMpPatchState"> |
| | | select `l`.`order_id` AS order_id, |
| | | `l`.`order_sort` AS order_number, |
| | | `d`.`width` AS maxwidth, |
| | | `d`.`height` AS maxheight, |
| | | `g`.`child_width` AS width, |
| | | `g`.`child_height` AS height, |
| | | `l`.`process_id` AS process_id, |
| | | `l`.`patch_num` AS quantity, |
| | | `l`.`technology_number` AS technology_number, |
| | | `d`.`building_number` AS building_number, |
| | | `d`.`shape` AS shape, |
| | | round((`g`.`area` * `l`.`patch_num`), 4) AS area, |
| | | `g`.`icon` AS icon |
| | | from ((( |
| | | `pp`.`patch_log` `l` |
| | | left join (select `pp`.`optimize_project`.`project_no` AS `project_no` |
| | | from `pp`.`optimize_project` |
| | | where ((`optimize_project`.`state` = 1)or (`optimize_project`.`state` = 2))) `p` on ((`l`.`project_no` = `p`.`project_no`))) |
| | | left join `sd`.`order_detail` `d` on (((`l`.`order_id` = `d`.`order_id`)and (`l`.`order_sort` = `d`.`order_number`)))) |
| | | left join `sd`.`order_glass_detail` `g` on (((`l`.`order_id` = `g`.`order_id`)and (`l`.`order_sort` = `g`.`order_number`) |
| | | and (`l`.`technology_number` = `g`.`technology_number`)))) |
| | | where `l`.process_id = #{processId} |
| | | and `l`.technology_number = #{technologyNumber} |
| | | group by `l`.`process_id`, |
| | | `l`.`technology_number`, |
| | | `l`.`order_id`, |
| | | `l`.`order_sort`, |
| | | `d`.`width`, |
| | | `d`.`height`, |
| | | `g`.`child_width`, |
| | | `g`.`child_height`, |
| | | `l`.`patch_num`, |
| | | `d`.`building_number`, |
| | | `d`.`shape`, |
| | | `g`.`area`, |
| | | `g`.`icon` |
| | | </select> |
| | | |
| | | <select id="getProcessCardDetailmMp"> |
| | |
| | | </select> |
| | | |
| | | <update id="updateFlowCardProject"> |
| | | UPDATE pp.flow_card set project_no=#{projectId} |
| | | UPDATE pp.flow_card set project_no=#{projectId},layout_status=2 |
| | | where process_id=#{processId} and technology_number=#{technologyNumber} |
| | | </update> |
| | | |
| | | <update id="updatePatchLogProject"> |
| | | UPDATE pp.patch_log set project_no=#{projectId} |
| | | where process_id=#{processId} and technology_number=#{technologyNumber} |
| | | </update> |
| | | |
| | | <update id="updateFlowCardProjectReturn"> |
| | | UPDATE pp.flow_card set project_no=null,layout_status=1 |
| | | where process_id=#{processId} and technology_number=#{technologyNumber} and project_no=#{projectId} |
| | | </update> |
| | | |
| | | <update id="updatePatchLogProjectReturn"> |
| | | UPDATE pp.patch_log set project_no=null |
| | | where process_id=#{processId} and technology_number=#{technologyNumber} and project_no=#{projectId} |
| | | </update> |
| | | |
| | | <select id="getSelectArea"> |
| | |
| | | group by fc.process_id,fc.technology_number |
| | | </select> |
| | | |
| | | <select id="getSelectAreaPatchLog"> |
| | | select |
| | | sum(patch_area) |
| | | from pp.patch_log |
| | | where process_id=#{processId} and technology_number=#{technologyNumber} |
| | | 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} |
| | | </update> |
| | | |
| | | <insert id="addProjectMp"> |
| | | insert into pp.optimize_project (project_no, project_name, order_glass_type, order_glass_thickness) |
| | | values (#{projectId}, #{projectNmae}, #{glassType}, #{glassThickness}) |
| | | insert into pp.optimize_project (project_no, project_name, order_glass_type, order_glass_thickness,glass_type, glass_thickness, |
| | | glass_total,glass_total_area,type,state,process_qty,process_cards) |
| | | values (#{projectId}, #{projectNmae}, #{glassType}, #{glassThickness}, #{glassType}, #{glassThickness},#{sumQuantity}, #{sumArea}, |
| | | #{type},1,#{processIdCount},#{processId}) |
| | | </insert> |
| | | |
| | | |
| | | <insert id="addSimulation" parameterType="map"> |
| | | <foreach collection="projectdetail" item="glass"> |
| | | 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 ( |
| | | #{inputValues.project_no}, |
| | | #{glass.process_id}, |
| | | #{glass.width}, |
| | | #{glass.height}, |
| | | #{glass.x_coordinate}, |
| | | #{glass.y_coordinate}, |
| | | #{glass.angle}, |
| | | #{userName}, |
| | | NOW(), |
| | | NOW(), |
| | | 0, |
| | | #{glass.layers_number}, |
| | | #{glass.order_number}, |
| | | #{glass.tempering_layout_id}, |
| | | #{glass.tempering_feed_sequence}, |
| | | null, |
| | | #{glass.width}, |
| | | #{glass.height}, |
| | | null, |
| | | null |
| | | ); |
| | | </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"> |
| | | INSERT INTO pp.optimize_heat_layout ( |
| | | project_no, |
| | | layout_id, |
| | | glass_qty, |
| | | glass_area, |
| | | layout_rate, |
| | | creater, |
| | | create_time, |
| | | intRemark, |
| | | strRemark |
| | | ) VALUES ( |
| | | #{inputValues.project_no}, |
| | | #{glass.tempering_layout_id}, |
| | | #{glass.glass_total}, |
| | | #{glass.area}, |
| | | #{glass.ratio}, |
| | | 1, |
| | | NOW(), |
| | | null, |
| | | null |
| | | ); |
| | | </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, |
| | | p_width, |
| | | p_height, |
| | | width, |
| | | height, |
| | | x_axis, |
| | | y_axis, |
| | | patch_state, |
| | | mark_icon, |
| | | isRotate, |
| | | glass_point, |
| | | rack_no |
| | | ) 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}, |
| | | #{glass.isRotate}, |
| | | #{glass.glassPoint}, |
| | | #{glass.rackNo} |
| | | ); |
| | | </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, |
| | | realwidth, |
| | | realheight, |
| | | usage_rate, |
| | | stock_code, |
| | | up_trim, |
| | | down_trim, |
| | | left_trim, |
| | | right_trim, |
| | | count, |
| | | glass_count, |
| | | glass_area, |
| | | create_time |
| | | ) VALUES ( |
| | | #{projectId}, |
| | | #{glass.stockId}, |
| | | #{glass.width}, |
| | | #{glass.height}, |
| | | #{glass.realWidth}, |
| | | #{glass.realHeight}, |
| | | #{glass.usageRate}, |
| | | #{glass.stockCode}, |
| | | #{glass.upTrim}, |
| | | #{glass.downTrim}, |
| | | #{glass.leftTrim}, |
| | | #{glass.rightTrim}, |
| | | #{glass.count}, |
| | | #{glass.glassQuantity}, |
| | | #{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> |
| | | <insert id="addOptimizeOffcut"> |
| | | INSERT INTO pp.optimize_offcut ( |
| | | project_no, |
| | | stock_id, |
| | | width, |
| | | height, |
| | | x_axis, |
| | | y_axis, |
| | | model, |
| | | thickness |
| | | ) VALUES ( |
| | | #{projectId}, |
| | | #{map.stockSort}, |
| | | #{map.width}, |
| | | #{map.height}, |
| | | #{map.x}, |
| | | #{map.y}, |
| | | #{glassType}, |
| | | #{glassThickness} |
| | | |
| | | ) |
| | | </insert> |
| | | <insert id="addUpdateOffcut"> |
| | | INSERT INTO pp.optimize_offcut ( |
| | | project_no, |
| | | stock_id, |
| | | width, |
| | | height, |
| | | x_axis, |
| | | y_axis, |
| | | model, |
| | | thickness |
| | | ) VALUES ( |
| | | #{processId}, |
| | | 1, |
| | | #{detail.width}, |
| | | #{detail.height}, |
| | | #{detail.x}, |
| | | #{detail.y}, |
| | | #{glassType}, |
| | | #{glassThickness}) |
| | | </insert> |
| | | |
| | | |
| | | <!--模拟计算工程更新--> |
| | | <update id="addratioProjectResult" parameterType="map"> |
| | | UPDATE pp.optimize_project |
| | | SET |
| | | tempering_state = 1, |
| | | furnaces_qty=#{resultSum[0]}, |
| | | load_rate=#{resultSum[1]}, |
| | | chaos_pct = #{inputValues.chaos_pct}, |
| | | max_load_pct = #{inputValues.max_load_pct}, |
| | | max_area=#{inputValues.max_area}, |
| | | max_qty=#{inputValues.max_qty}, |
| | | load_width=#{inputValues.load_width}, |
| | | load_length=#{inputValues.load_length}, |
| | | x_space=#{inputValues.x_space}, |
| | | y_space=#{inputValues.y_space} |
| | | WHERE |
| | | project_no = #{inputValues.project_no} |
| | | |
| | | </update> |
| | | |
| | | <!--优化设置保存--> |
| | | <update id="optimizeParmsSave"> |
| | | update erp_user_info.user as u |
| | | set u.optimize_parms = #{jsonString} where user_name=#{username} |
| | | </update> |
| | | |
| | | <update id="updateOptimizeResult"> |
| | | update pp.optimize_project_file as u |
| | | set u.content = #{jsonString} |
| | | where u.project_no=#{processId} and type='优化结果' |
| | | </update> |
| | | |
| | | <update id="updateOptimizeDetail"> |
| | | update pp.optimize_detail |
| | | set heat_layout_id=#{layoutId},heat_layout_sort=#{sort},glass_id=concat(process_id,'|',#{layoutId},'|',#{sort}) |
| | | where id=#{id}; |
| | | </update> |
| | | |
| | | |
| | | |
| | | <select id="selectOptimizeResult"> |
| | | SELECT content as Layouts |
| | | FROM pp.optimize_project_file |
| | | WHERE project_no=#{processId} and type='优化结果'; |
| | | </select> |
| | | |
| | | <select id="getTemperedConfiguration"> |
| | | select JSON_EXTRACT( oc.config_detail, '$.glass_thickness' ) as glass_thickness, |
| | | JSON_EXTRACT( oc.config_detail, '$.glass_type' ) as glass_type, |
| | | JSON_EXTRACT( oc.config_detail, '$.tempering_time' ) as tempering_time, |
| | | JSON_EXTRACT( oc.config_detail, '$.load_width' ) as load_width, |
| | | 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 where config_type=1 and creater=#{username} |
| | | </select> |
| | | |
| | | <select id="getEdgeTrimming"> |
| | | select JSON_EXTRACT( oc.config_detail, '$.left_trim' ) as leftTrim, |
| | | JSON_EXTRACT( oc.config_detail, '$.up_trim' ) as upTrim, |
| | | JSON_EXTRACT( oc.config_detail, '$.right_trim' ) as rightTrim, |
| | | 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 and creater=#{username} |
| | | </select> |
| | | |
| | | <select id="getGrindingTrimming"> |
| | | select JSON_EXTRACT( oc.config_detail, '$.left_edge' ) as leftEdge, |
| | | JSON_EXTRACT( oc.config_detail, '$.up_edge' ) as upEdge, |
| | | JSON_EXTRACT( oc.config_detail, '$.right_edge' ) as rightEdge, |
| | | JSON_EXTRACT( oc.config_detail, '$.down_edge' ) as downEdge, |
| | | 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 and creater=#{username} |
| | | </select> |
| | | |
| | | |
| | | <select id="getGrindingOptimize"> |
| | | select |
| | | CAST(REPLACE(JSON_EXTRACT( oc.config_detail, '$.left_edge' ), '"', '') AS DECIMAL(10,2)) as leftGrind, |
| | | CAST(REPLACE(JSON_EXTRACT( oc.config_detail, '$.up_edge' ), '"', '') AS DECIMAL(10,2)) as upGrind, |
| | | CAST(REPLACE(JSON_EXTRACT( oc.config_detail, '$.right_edge' ), '"', '') AS DECIMAL(10,2)) as rightGrind, |
| | | CAST(REPLACE(JSON_EXTRACT( oc.config_detail, '$.down_edge' ), '"', '') AS DECIMAL(10,2)) as downGrind |
| | | 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} and creater=#{username} |
| | | </update> |
| | | <update id="updateFlowCardRack"> |
| | | UPDATE pp.flow_card |
| | | SET rack = #{rackValue} |
| | | WHERE process_id = #{processId} AND technology_number = #{technologyNumber} |
| | | </update> |
| | | <update id="updateNormalDetails"> |
| | | UPDATE pp.optimize_detail |
| | | SET |
| | | x_axis = #{detail.x}, |
| | | y_axis = #{detail.y} |
| | | WHERE |
| | | project_no = #{processId} AND polys_id = #{detail.polySort} |
| | | </update> |
| | | |
| | | <select id="simulatedTypesettingUsingOpt"> |
| | | 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.process_id IN |
| | | <foreach item="item" index="index" collection="processId" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | and c.technology_number IN |
| | | <foreach item="item" index="index" collection="technologyNumber" open="(" separator="," close=")"> |
| | | #{item} |
| | | </foreach> |
| | | ORDER BY |
| | | c.process_id, |
| | | 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> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <!--模拟计算查询流程卡第三方--> |
| | | <select id="selectProjectComputeMpThirdParty"> |
| | | select |
| | | process_id as processId, |
| | | layer as technologyNumber, |
| | | total_layer as total_layers, |
| | | filmsid as TotalNumber, |
| | | sum(glass_total) as total_num, |
| | | product_name as glass_child, |
| | | 0 as tempering, |
| | | 0 as allow_rotate, |
| | | 0 as curtain_wall, |
| | | 0 as priority_level, |
| | | 1 as is_must |
| | | from pp.other_flow_card where project_no = #{projectNo} group by process_id,layer |
| | | </select> |
| | | |
| | | <!--模拟计算流程卡详情第三方--> |
| | | <select id="selectComputeDetailMpThirdParty"> |
| | | select |
| | | process_id as process_id, |
| | | width as width, |
| | | height as height, |
| | | width as maxwidth, |
| | | height as maxheight, |
| | | order_number as order_number, |
| | | glass_total as quantity, |
| | | layer as technology_number, |
| | | 0 as patch_state |
| | | from pp.other_flow_card where process_id = #{processId} and layer=#{technologyNumber} |
| | | </select> |
| | | |
| | | <!--第一次优化查询--> |
| | | <select id="firstOptimizationThirdParty"> |
| | | select |
| | | project_no, |
| | | concat( process_id, '-', layer ) AS process_id, |
| | | width, |
| | | height, |
| | | layer, |
| | | glass_total as quantity, |
| | | product_name, |
| | | order_number |
| | | from pp.other_flow_card where project_no = #{projectNo} |
| | | </select> |
| | | |
| | | <select id="analogComputationOptimizationThirdParty"> |
| | | SELECT |
| | | h.project_no, |
| | | h.layout_id, |
| | | h.width AS width, |
| | | h.height AS height, |
| | | count( 1 ) AS quantity, |
| | | concat( h.process_id, '-', h.layer ) AS 'process_id', |
| | | h.layer, |
| | | c.order_number |
| | | from |
| | | pp.`optimize_heat_detail` h |
| | | LEFT JOIN pp.other_flow_card c ON h.process_id = c.process_id |
| | | AND h.layer = c.technology_number |
| | | AND h.order_sort = c.order_number |
| | | WHERE |
| | | h.project_no = #{projectNo} |
| | | GROUP BY |
| | | h.project_no, |
| | | h.layout_id, |
| | | h.width, |
| | | h.height, |
| | | h.process_id, |
| | | h.layer, |
| | | c.quantity, |
| | | c.order_number |
| | | ORDER BY |
| | | LENGTH( h.layout_id ), |
| | | h.layout_id; |
| | | </select> |
| | | |
| | | <!--工程信息流程卡--> |
| | | <select id="getProcessCardMpThirdParty"> |
| | | SELECT |
| | | fc.process_id, |
| | | fc.order_number, |
| | | fc.glass_total as quantity, |
| | | CONCAT(fc.layer, '/', COUNT(fc.total_layer)) AS layer, |
| | | CONCAT(fc.width, ' × ', fc.height) AS sizes |
| | | FROM |
| | | pp.other_flow_card AS fc |
| | | WHERE |
| | | fc.project_no = #{projectNo} |
| | | GROUP BY |
| | | fc.layer, |
| | | fc.order_number |
| | | </select> |
| | | <select id="getProjectByProjectNoSv" resultType="java.util.Map"> |
| | | SELECT |
| | | p.id, |
| | | p.project_no as projectNumber, |
| | | p.project_name, |
| | | p.glass_type, |
| | | p.glass_thickness, |
| | | p.type, |
| | | p.state, |
| | | p.glass_total as quantity, |
| | | p.glass_total_area, |
| | | p.process_qty, |
| | | p.process_cards, |
| | | p.remark, |
| | | a.name, |
| | | p.create_time, |
| | | p.update_time, |
| | | p.optimize_state |
| | | FROM |
| | | ( |
| | | pp.optimize_project p |
| | | LEFT JOIN pp.optimize_admin a ON (( |
| | | p.creater = a.Id |
| | | ))) |
| | | WHERE |
| | | ( p.state = 1 ) and p.tempering_state=0 and optimize_state=0 and p.project_no = #{projectNo} |
| | | ORDER BY |
| | | p.create_time DESC, |
| | | p.project_no |
| | | |
| | | </select> |
| | | |
| | | <delete id="deleteOptimizeDetailThirdParty"> |
| | | delete from pp.other_flow_card |
| | | where project_no = #{projectNumber} |
| | | </delete> |
| | | <delete id="deleteOptimizeOffcut"> |
| | | DELETE |
| | | FROM |
| | | pp.optimize_offcut |
| | | WHERE |
| | | project_no = #{projectNumber} |
| | | </delete> |
| | | <delete id="deleteOffcutDetails"> |
| | | delete from pp.optimize_offcut where project_no = #{processId} |
| | | </delete> |
| | | |
| | | |
| | | <select id="selectOptimizeProject"> |
| | | select |
| | | project_no as engineerId, |
| | | project_name as engineerName, |
| | | avg_cut_pct as avgAvailability, |
| | | valid_cut_pct as validAvailability, |
| | | last_cut_pct as lastAvailability, |
| | | glass_total as glassTotal, |
| | | glass_total_area as glassTotalArea, |
| | | raw_stock_qty as planPatternTotal, |
| | | raw_stock_area as planPatternTotalArea, |
| | | glass_thickness as thickness, |
| | | glass_type as filmsId |
| | | from |
| | | pp.optimize_project |
| | | where |
| | | project_no = #{projectNo} |
| | | </select> |
| | | |
| | | <select id="selectOptimizeLayout"> |
| | | select |
| | | ol.project_no as engineeringId, |
| | | op.glass_type as filmsId, |
| | | ol.realwidth as rawGlassWidth, |
| | | ol.realheight as rawGlassHeight, |
| | | op.glass_thickness as rawGlassThickness, |
| | | ol.stock_id rawSequence |
| | | from |
| | | pp.optimize_layout ol |
| | | left join pp.optimize_project op on ol.project_no = op.project_no |
| | | where |
| | | ol.project_no = #{projectNo} |
| | | order by |
| | | ol.stock_id |
| | | </select> |
| | | |
| | | |
| | | <select id="selectOptimizeDetail"> |
| | | select |
| | | opd.glass_id as glassId, |
| | | opd.project_no as engineerId, |
| | | opd.process_id as flowCardId, |
| | | od.order_id as orderNumber, |
| | | opd.order_sort as productSortNumber, |
| | | IF(LOCATE('中空', ogd.process ) > 0, JSON_UNQUOTE(JSON_EXTRACT(pd.separation, "$.lowE")), 0) as hollowCombineDirection, |
| | | opd.o_width as width, |
| | | opd.o_height as height, |
| | | op.glass_thickness as thickness, |
| | | op.glass_type as filmsId, |
| | | opd.total_layer as totalLayer, |
| | | opd.layer, |
| | | opd.stock_id as rawSequence, |
| | | opd.p_width as edgWidth, |
| | | opd.p_height as edgHeight, |
| | | opd.x_axis as xAxis, |
| | | opd.y_axis as yAxis, |
| | | if(opd.o_width!=opd.width,1,0) as rawAngle, |
| | | opd.heat_layout_id as temperingLayoutId, |
| | | opd.heat_layout_sort as temperingFeedSequence, |
| | | ohd.x_axis as xCoordinate, |
| | | ohd.y_axis as yCoordinate, |
| | | ohd.rotate_angle as angle, |
| | | IF(LOCATE('中空', ogd.process ) > 0 or LOCATE('夹层', ogd.process ) > 0, 1, 0) as isMultiple, |
| | | od.width as maxWidth, |
| | | od.height as maxHeight, |
| | | opd.mark_icon as markIcon, |
| | | fc.`merge` as combine, |
| | | concat( opd.process_id, '/', opd.layer ) as flowCardSequence, |
| | | ogd.process |
| | | from |
| | | pp.optimize_detail opd |
| | | left join pp.optimize_project op on op.project_no = opd.project_no |
| | | left join pp.flow_card fc on opd.process_id = fc.process_id |
| | | and opd.layer = fc.technology_number |
| | | and opd.order_sort = order_number |
| | | left join sd.`order` o on fc.order_id = o.order_id |
| | | left join sd.order_detail od on fc.order_id = od.order_id |
| | | and fc.order_number = od.order_number |
| | | left join sd.order_glass_detail ogd on fc.order_id = ogd.order_id |
| | | and fc.order_number = ogd.order_number |
| | | and ogd.technology_number = fc.technology_number |
| | | left join pp.optimize_heat_detail ohd on ohd.layout_id = opd.heat_layout_id |
| | | and ohd.sort = opd.heat_layout_sort and ohd.project_no=opd.project_no |
| | | left join sd.product_detail pd on od.product_id=pd.prod_id and opd.layer=pd.glass_sort |
| | | where |
| | | opd.project_no = #{projectNo} |
| | | </select> |
| | | |
| | | <select id="selectFlowCardInfoList"> |
| | | select |
| | | fc.process_id as flowCardId, |
| | | ogd.child_width as width, |
| | | ogd.child_height as height, |
| | | REPLACE (JSON_UNQUOTE( JSON_EXTRACT( pd.separation, '$.thickness' )), 'mm', '' ) as thickness, |
| | | JSON_UNQUOTE(JSON_EXTRACT( pd.separation, '$.color' )) as filmsId, |
| | | fc.layers_number as totalLayer, |
| | | fc.technology_number as layer, |
| | | fc.quantity as glassTotal, |
| | | od.order_number as orderNumber, |
| | | od.product_name as productName, |
| | | o.customer_name as customerName |
| | | from |
| | | pp.flow_card fc |
| | | left join sd.`order` o on fc.order_id = o.order_id |
| | | left join sd.order_detail od on fc.order_id = od.order_id |
| | | and fc.order_number = od.order_number |
| | | left join sd.order_glass_detail ogd on fc.order_id = ogd.order_id |
| | | and fc.order_number = ogd.order_number |
| | | and ogd.technology_number = fc.technology_number |
| | | left join sd.product p on od.product_id = p.id |
| | | left join sd.product_detail pd on od.product_id = pd.prod_id |
| | | and fc.technology_number = pd.glass_sort |
| | | where |
| | | project_no =#{projectNo} |
| | | </select> |
| | | <select id="getGlassInfo" resultType="java.util.Map"> |
| | | select |
| | | project_no, |
| | | glass_type, |
| | | glass_thickness |
| | | from |
| | | pp.optimize_project |
| | | where |
| | | project_no = #{projectId} |
| | | </select> |
| | | <select id="getOptimizeLayoutsInfo" resultType="java.util.Map"> |
| | | SELECT |
| | | width, |
| | | height, |
| | | realwidth, |
| | | realheight, |
| | | stock_id AS stockId, |
| | | stock_code AS stockCode, |
| | | usage_rate AS usageRate, |
| | | up_trim AS upTrim, |
| | | down_trim AS downTrim, |
| | | left_trim AS leftTrim, |
| | | right_trim AS rightTrim, |
| | | count AS quantity, |
| | | glass_count AS glassQuantity |
| | | FROM |
| | | pp.optimize_layout |
| | | where |
| | | project_no = #{projectId} |
| | | </select> |
| | | <select id="getOptimizeDetailsInfo" resultType="java.util.Map"> |
| | | SELECT |
| | | 0 As isRemain, |
| | | width AS realWidth, |
| | | height AS realHeight, |
| | | p_width AS width, |
| | | p_height AS height, |
| | | process_id AS processId, |
| | | layer, |
| | | total_layer AS totalLayer, |
| | | order_sort As orderSort, |
| | | stock_id AS layoutId, |
| | | stock_number AS glassSort, |
| | | x_axis AS x, |
| | | y_axis AS y, |
| | | mark_icon AS markIcon, |
| | | isRotate, |
| | | glass_point AS glassPoint, |
| | | rack_no As rackNo |
| | | FROM |
| | | pp.optimize_detail |
| | | WHERE |
| | | project_no = #{projectId} |
| | | </select> |
| | | <select id="getOptimizeOffsetsInfo" resultType="java.util.Map"> |
| | | SELECT |
| | | 1 AS isRemain, |
| | | 0 AS isRotate, |
| | | width AS realWidth, |
| | | height AS realHeight, |
| | | width AS width, |
| | | height AS height, |
| | | stock_id AS stockSort, |
| | | x_axis AS x, |
| | | y_axis AS y, |
| | | model AS glassType, |
| | | thickness AS glassThickness |
| | | FROM |
| | | pp.optimize_offcut |
| | | WHERE |
| | | project_no = #{projectId} |
| | | </select> |
| | | |
| | | |
| | | </mapper> |