liyong
5 天以前 9d5a8f1595089094ff781d9d9e7872f8555404e6
src/main/resources/mapper/production/SalesLedgerProductionAccountingMapper.xml
@@ -22,7 +22,7 @@
        FROM
        sales_ledger_production_accounting t4
        LEFT JOIN sales_ledger T1 ON T1.id = t4.sales_ledger_id
        left join sales_ledger_product t3 on t4.sales_ledger_product_id = t3.id
        left join sales_ledger_product t3 on t4.sales_ledger_product_id = t3.id and slp.type = 1
        <where>
            t3.type = 1
            <if test="salesLedgerDto.schedulingUserName != null and salesLedgerDto.schedulingUserName != '' ">
@@ -68,7 +68,7 @@
        '%'
        ) as output_rate
        FROM sales_ledger_production_accounting slpa
        LEFT JOIN production_product_main ppm ON slpa.sales_ledger_work_id = ppm.id
        LEFT JOIN production_product_main ppm ON slpa.product_main_id = ppm.id
        LEFT JOIN production_product_output ppout ON ppm.id = ppout.product_main_id
        <where>
            <if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
@@ -88,18 +88,36 @@
    </select>
    <select id="selectDailyWagesStats" resultType="java.util.Map">
        SELECT
            DATE_FORMAT(scheduling_date, '%Y-%m-%d') as date,
            SUM(finished_num * work_hours) as wages
        FROM
            sales_ledger_production_accounting
        WHERE
            scheduling_date &gt;= #{startDate}
            AND scheduling_date &lt;= #{endDate}
        GROUP BY
            scheduling_date
        SELECT DATE(ppout.create_time)                                                         AS dateStr,
               SUM(ppout.quantity - IFNULL(ppout.scrap_qty, 0))                                AS numberOfCompleted,
               SUM((ppout.quantity - IFNULL(ppout.scrap_qty, 0)) * IFNULL(pp.salary_quota, 0)) AS amount,
               ROUND(
                       SUM(ppout.quantity - IFNULL(ppout.scrap_qty, 0)) * 100 / NULLIF(SUM(ppout.quantity), 0),
                       2
               )                                                                               AS passRate
        FROM production_product_output ppout
                 LEFT JOIN production_product_main ppm ON ppm.id = ppout.product_main_id
                 LEFT JOIN product_process_route_item ppri ON ppri.id = ppm.product_process_route_item_id
                 LEFT JOIN product_process pp ON pp.id = ppri.process_id
        WHERE ppout.create_time &gt;= #{startDate}
          AND ppout.create_time &lt; #{endDate}
        GROUP BY DATE(ppout.create_time)
        ORDER BY DATE(ppout.create_time);
    </select>
    <select id="getByUserId" resultType="com.ruoyi.production.dto.UserAccountDto">
        select
            slpa.scheduling_user_id as user_id,
            pp.type,
            sum(case when pp.type = 0 then slpa.work_hours else 0 end) as account,
            sum(case when pp.type = 1 then slpa.work_hours else 0 end) as accountBalance
        from sales_ledger_production_accounting slpa
                 left join product_process pp on pp.name = slpa.process
        where  slpa.scheduling_user_id = #{ew.userId}
          and slpa.scheduling_date like concat(#{ew.date}, '%')
        group by slpa.scheduling_user_id
    </select>
</mapper>