guoyujie
10 小时以前 9ccc8bd3a53160a40cf60f14e5867f6ce9f6c58f
north-glass-erp/src/main/resources/mapper/sd/BomDataMapper.xml
@@ -29,13 +29,20 @@
    <select id="getOrderBomDataMp">
        SELECT  product_id,product_name,SUM(quantity) as quantity,
            SUM(gross_area) as area,SUM(perimeter) as perimeter from sd.order_detail where order_id=#{orderId}
            SUM(gross_area) as area,SUM(perimeter) as perimeter,order_id from sd.order_detail where order_id=#{orderId}
            GROUP BY product_id
    </select>
    <select id="getBOMDetails">
        select *,(consume*price) as materialPric from sd.bom_product as bp left join sd.bom_base as bb on bb.id=bp.base_id
            where bp.product_id = #{productId} ORDER BY product_layer
        select  bp.*,bb.*,(consume*price) as materialPric,od.quantity,pdd.detail_type,
            IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pdd.separation, '$.GlueDepth')),0) as glueDepth,
            CAST(SUBSTRING_INDEX(IFNULL(JSON_UNQUOTE(JSON_EXTRACT(pdd.separation, '$.thickness')), '0mm'), 'mm', 1) AS DECIMAL(10, 2)) AS thickness
               from sd.bom_product as bp
            left join sd.bom_base as bb on bb.id=bp.base_id
            left join ( select order_id,product_id,SUM(quantity) as quantity from sd.order_detail GROUP BY  order_id,product_id
        ) as od on od.product_id = bp.product_id
            left join sd.product_detail as pdd on pdd.prod_id = bp.product_id and pdd.sort_num = bp.product_layer
        where bp.product_id = #{productId} and od.order_id = #{orderId} ORDER BY product_layer
    </select>
    <select id="getOrderBomSumDataMp">
@@ -53,14 +60,19 @@
            bb.type,
            sum(bb.consume) as consume,
            sum(bb.price) as price,
            sum(bb.consume * bb.price) AS materialPrice
            sum(bb.consume * bb.price) AS materialPrice,
            od.quantity,
            pdd.detail_type,
            IFNULL( JSON_UNQUOTE( JSON_EXTRACT( pdd.separation, '$.GlueDepth' )), 0 ) AS glueDepth,
            CAST(
                    SUBSTRING_INDEX( IFNULL( JSON_UNQUOTE( JSON_EXTRACT( pdd.separation, '$.thickness' )), '0mm' ), 'mm', 1 ) AS DECIMAL ( 10, 2 )) AS thickness
        FROM
            sd.bom_product AS bp
                LEFT JOIN sd.bom_base AS bb ON bb.id = bp.base_id
                LEFT JOIN (
                select order_id,product_id from sd.order_detail GROUP BY product_id
                select order_id,product_id,SUM(quantity) as quantity from sd.order_detail GROUP BY  order_id,product_id
            ) as od on od.product_id = bp.product_id
                LEFT JOIN sd.product_detail AS pdd ON pdd.prod_id = bp.product_id  AND pdd.sort_num = bp.product_layer
        WHERE od.order_id=#{orderId}
        GROUP BY bb.material_id
        ORDER BY bp.product_layer