<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.ruoyi.production.mapper.SalesLedgerProductionAccountingMapper">
|
|
<select id="listPage" resultType="com.ruoyi.production.dto.SalesLedgerProductionAccountingDto">
|
SELECT
|
t4.id,
|
t4.finished_num * t4.work_hours as wages,
|
t4.scheduling_user_id,
|
t4.scheduling_user_name,
|
t4.scheduling_date,
|
t4.finished_num,
|
t4.work_hours,
|
t4.process,
|
T1.sales_contract_no,
|
T1.customer_contract_no,
|
T1.project_name,
|
T1.customer_name,
|
t3.product_category,
|
t3.specification_model,
|
t3.unit
|
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
|
<where>
|
t3.type = 1
|
<if test="salesLedgerDto.schedulingUserName != null and salesLedgerDto.schedulingUserName != '' ">
|
AND t4.scheduling_user_name LIKE CONCAT('%',#{salesLedgerDto.schedulingUserName},'%')
|
</if>
|
<if test="salesLedgerDto.customerName != null and salesLedgerDto.customerName != '' ">
|
AND T1.customer_name LIKE CONCAT('%',#{salesLedgerDto.customerName},'%')
|
</if>
|
<if test="salesLedgerDto.customerContractNo != null and salesLedgerDto.customerContractNo !='' ">
|
AND T1.customer_contract_no LIKE CONCAT('%',#{salesLedgerDto.customerContractNo},'%')
|
</if>
|
<if test="salesLedgerDto.salesContractNo != null and salesLedgerDto.salesContractNo != '' ">
|
AND T1.sales_contract_no LIKE CONCAT('%',#{salesLedgerDto.salesContractNo},'%')
|
</if>
|
<if test="salesLedgerDto.projectName != null and salesLedgerDto.projectName != '' ">
|
AND T1.project_name LIKE CONCAT('%',#{salesLedgerDto.projectName},'%')
|
</if>
|
<if test="salesLedgerDto.entryDateStart != null and salesLedgerDto.entryDateStart != '' ">
|
AND t4.scheduling_date >= DATE_FORMAT(#{salesLedgerDto.entryDateStart},'%Y-%m-%d')
|
</if>
|
<if test="salesLedgerDto.entryDateEnd != null and salesLedgerDto.entryDateEnd != '' ">
|
AND t4.scheduling_date <= DATE_FORMAT(#{salesLedgerDto.entryDateEnd},'%Y-%m-%d')
|
</if>
|
</where>
|
group by t4.id
|
order by t4.scheduling_date desc
|
</select>
|
<select id="pageProductionAccounting"
|
resultType="com.ruoyi.production.dto.SalesLedgerProductionAccountingDto">
|
SELECT
|
slpa.scheduling_user_id,
|
slpa.scheduling_user_name,
|
sum(ppout.quantity) as output_num,
|
sum(slpa.finished_num * work_hours) as wages,
|
CONCAT(
|
ROUND(
|
CASE
|
WHEN SUM(ppout.quantity) = 0 OR SUM(ppout.quantity) IS NULL THEN 0
|
ELSE SUM(slpa.finished_num) * 100.0 / SUM(ppout.quantity)
|
END,
|
2
|
),
|
'%'
|
) 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_output ppout ON ppm.id = ppout.product_main_id
|
<where>
|
<if test="ew.schedulingUserName != null and ew.schedulingUserName !=''">
|
and slpa.scheduling_user_name = #{ew.schedulingUserName}
|
</if>
|
<if test="ew.entryDate != null ">
|
and slpa.scheduling_date >= #{ew.entryDate}
|
and slpa.scheduling_date < DATE_ADD(DATE(#{ew.entryDate}), INTERVAL 1 DAY)
|
</if>
|
<if test="ew.entryDateStart != null and ew.entryDateEnd != null">
|
and slpa.scheduling_date >= #{ew.entryDateStart}
|
and slpa.scheduling_date < DATE_ADD(DATE(#{ew.entryDateEnd}), INTERVAL 1 DAY)
|
</if>
|
|
</where>
|
GROUP BY slpa.scheduling_user_name
|
|
</select>
|
|
</mapper>
|