chenlu
2025-03-10 c12e4a831b4210ec886b2537824a464d74b59ff5
north-glass-erp/src/main/resources/mapper/sd/OrderGlassDetailMapper.xml
@@ -17,7 +17,8 @@
            total_area,
            process,
            `group`)
            `group`
            ,arc)
        select
            od.order_id,
            od.order_number,
@@ -25,14 +26,26 @@
            if(pd.glass_sort=1,'(外)',if(pd2.glass_sort=pd.glass_sort,'(内)','')),
            pd.detail,
            if( od.bend_radius!='',
                round(od.width*(od.bend_radius-round(sum(t.thicknessCount),2))/od.bend_radius,1),
                round(od.width*
                      (od.bend_radius-round(
                          sum(t.thicknessCount)-t1.thicknessCount/2
                          ,2))
                          /od.bend_radius
                    ,1),
                od.width
              ),
              )
               ,
            od.height,
            od.area,
            od.gross_area,
            pd.process,
            pd.glass_group
            pd.glass_group,
            if( od.bend_radius!='',
                round((od.width*(od.bend_radius-(sum(t.thicknessCount)-t1.thicknessCount)))/od.bend_radius,1)
                ,null) as 'arc'
        from sd.product_detail as pd
        left join order_detail as od
            on od.product_id = pd.prod_id and pd.detail_type='glass'
@@ -43,18 +56,23 @@
                a.prod_id,
                a.sort_num,
                a.glass_sort,
                (case
                      when a.sort_num=1
                          then left(detail,LOCATE('mm',detail)-1)/2
                      else
                          left(detail,LOCATE('mm',detail)-1)
                end) as 'thicknessCount'
                left(detail,LOCATE('mm',detail)-1) as 'thicknessCount'
            from product_detail as a
            group  by prod_id,a.sort_num
        ) as t
        ON t.prod_id = od.product_id and t.sort_num <=pd.sort_num
        left join (
            select
                a.prod_id,
                a.sort_num,
                a.glass_sort,
                left(detail,LOCATE('mm',detail)-1) as 'thicknessCount'
            from product_detail as a
            group  by prod_id,a.sort_num
        ) as t1
          ON t1.prod_id = od.product_id and t1.sort_num =pd.sort_num
        where od.order_id = #{orderId}
        group by od.order_number,pd.glass_sort
@@ -74,6 +92,7 @@
        <result column="glass_child" property="glassChild"/>
        <result column="child_width" property="childWidth"/>
        <result column="child_height" property="childHeight"/>
        <result column="arc" property="arc"/>
        <result column="icon" property="icon"/>
        <result column="process" property="process"/>
        <result column="area" property="area"/>
@@ -112,7 +131,7 @@
           a.total_area,
           b.edging_type,
           a.child_width,
           a.child_height,
           a.child_height,a.arc,
           a.icon,
           a.area,
           b.quantity,
@@ -136,7 +155,8 @@
                a.area = #{item.area},
                a.total_area = #{item.area}*b.quantity,
                a.icon = #{item.icon},
                a.process = #{item.process}
                a.process = #{item.process},
                a.arc = #{item.arc}
            where
                a.order_id = b.order_id
                and a.order_id = #{item.orderId}
@@ -147,12 +167,39 @@
    </update>
    <select id="getDifferentSizeNumber">
       select if(count(id)>1,1,0) from (select
          id
       select if(count(id)>0,1,0) from (select
          a.id,a.child_width,b.width
        from order_glass_detail as a
        left join order_detail as b
        on a.order_id = b.order_id and a.order_number = b.order_number
        where a.order_id = #{orderId}
          and a.order_number = #{orderNumber}
        group by child_width,child_height) as c
          and a.child_width != b.width
        ) as c
    </select>
    <select id="getOrderGlassDetailByProductIdGlassChild" >
        select a.glass_child
        from sd.order_glass_detail as a
        where a.order_id = #{orderId}
          and a.order_number = #{orderNumber}
        group by a.glass_child
    </select>
    <select id="getOrderGlassDetailByProductId" >
        select *
        from sd.order_detail od
                 LEFT join sd.order_glass_detail  ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number
        where od.order_id = #{orderId} and od.product_id=#{productId}
          and  ogd.glass_child=#{glassChild}
    </select>
    <select id="getMinIdByGroup" >
        select min(id) from sd.order_glass_detail as a
        where a.order_id = #{orderId}
          and a.order_number = #{orderNumber}
        and a.`group` = #{group}
    </select>
</mapper>