<?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.account.mapper.AccountIncomeMapper">
|
|
<select id="accountIncomeListPage" resultType="com.ruoyi.account.pojo.AccountIncome">
|
SELECT
|
ai.id,
|
ai.business_id,
|
ai.business_type,
|
ai.income_date,
|
ai.income_type,
|
ai.customer_name,
|
ai.income_money,
|
ai.income_described,
|
ai.income_method,
|
ai.invoice_number,
|
ai.note,
|
CASE
|
WHEN TRIM(IFNULL(ai.input_user, '')) REGEXP '^[0-9]+$'
|
THEN COALESCE(ui.nick_name, ai.input_user)
|
ELSE ai.input_user
|
END AS input_user,
|
ai.input_time,
|
ai.create_time,
|
ai.create_user,
|
ai.update_time,
|
ai.update_user,
|
ai.tenant_id
|
FROM account_income ai
|
LEFT JOIN sys_user ui ON TRIM(IFNULL(ai.input_user, '')) REGEXP '^[0-9]+$'
|
AND ui.user_id = CAST(TRIM(ai.input_user) AS UNSIGNED)
|
AND ui.del_flag = '0'
|
where
|
1=1
|
<if test="accountIncome.entryDateStart != null and accountIncome.entryDateStart != '' ">
|
AND ai.income_date >= DATE_FORMAT(#{accountIncome.entryDateStart},'%Y-%m-%d')
|
</if>
|
<if test="accountIncome.entryDateEnd != null and accountIncome.entryDateEnd != '' ">
|
AND ai.income_date <= DATE_FORMAT(#{accountIncome.entryDateEnd},'%Y-%m-%d')
|
</if>
|
<if test="accountIncome.incomeType != null and accountIncome.incomeType != '' ">
|
AND ai.income_type = #{accountIncome.incomeType}
|
</if>
|
<if test="accountIncome.incomeMethodLabel != null and accountIncome.incomeMethodLabel != ''">
|
AND (
|
(
|
ai.business_type = 1
|
AND ai.income_method in
|
<foreach collection="accountIncome.receiptPaymentMethodList" item="method" open="(" separator="," close=")">
|
#{method}
|
</foreach>
|
)
|
OR
|
(
|
ai.business_type is null
|
AND ai.income_method in
|
<foreach collection="accountIncome.paymentMethodList" item="method" open="(" separator="," close=")">
|
#{method}
|
</foreach>
|
)
|
)
|
</if>
|
<if test="(accountIncome.incomeMethodLabel == null or accountIncome.incomeMethodLabel == '') and accountIncome.incomeMethod != null and accountIncome.incomeMethod != '' ">
|
AND ai.income_method = #{accountIncome.incomeMethod}
|
</if>
|
</select>
|
<select id="accountIncomeExport" resultType="com.ruoyi.account.pojo.AccountIncome">
|
SELECT
|
ai.id,
|
ai.business_id,
|
ai.business_type,
|
ai.income_date,
|
ai.income_type,
|
ai.customer_name,
|
ai.income_money,
|
ai.income_described,
|
ai.income_method,
|
ai.invoice_number,
|
ai.note,
|
CASE
|
WHEN TRIM(IFNULL(ai.input_user, '')) REGEXP '^[0-9]+$'
|
THEN COALESCE(ui.nick_name, ai.input_user)
|
ELSE ai.input_user
|
END AS input_user,
|
ai.input_time,
|
ai.create_time,
|
ai.create_user,
|
ai.update_time,
|
ai.update_user,
|
ai.tenant_id
|
FROM account_income ai
|
LEFT JOIN sys_user ui ON TRIM(IFNULL(ai.input_user, '')) REGEXP '^[0-9]+$'
|
AND ui.user_id = CAST(TRIM(ai.input_user) AS UNSIGNED)
|
AND ui.del_flag = '0'
|
where
|
1=1
|
<if test="accountIncome.entryDateStart != null and accountIncome.entryDateStart != '' ">
|
AND ai.income_date >= DATE_FORMAT(#{accountIncome.entryDateStart},'%Y-%m-%d')
|
</if>
|
<if test="accountIncome.entryDateEnd != null and accountIncome.entryDateEnd != '' ">
|
AND ai.income_date <= DATE_FORMAT(#{accountIncome.entryDateEnd},'%Y-%m-%d')
|
</if>
|
<if test="accountIncome.incomeType != null and accountIncome.incomeType != '' ">
|
AND ai.income_type = #{accountIncome.incomeType}
|
</if>
|
<if test="accountIncome.incomeMethod != null and accountIncome.incomeMethod != '' ">
|
AND ai.income_method = #{accountIncome.incomeMethod}
|
</if>
|
</select>
|
<select id="report" resultType="com.ruoyi.account.dto.AccountDto2">
|
SELECT
|
sdd.dict_label typeName,
|
ifnull(sum(income_money),0) account
|
FROM account_income ai
|
left join sys_dict_data sdd on ai.income_type = sdd.dict_value and sdd.dict_type='income_types'
|
where
|
1=1
|
<if test="dateQueryDto.entryDateStart != null and dateQueryDto.entryDateStart != '' ">
|
AND income_date >= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d')
|
</if>
|
<if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != '' ">
|
AND income_date <= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d')
|
</if>
|
group by income_type
|
</select>
|
<select id="report1" resultType="java.math.BigDecimal">
|
SELECT
|
ifnull(sum(income_money),0) account
|
FROM account_income ai
|
where
|
income_type=#{dictValue}
|
<if test="dateQueryDto.entryDateStart != null and dateQueryDto.entryDateStart != '' ">
|
AND income_date >= DATE_FORMAT(#{dateQueryDto.entryDateStart},'%Y-%m-%d')
|
</if>
|
<if test="dateQueryDto.entryDateEnd != null and dateQueryDto.entryDateEnd != '' ">
|
AND income_date <= DATE_FORMAT(#{dateQueryDto.entryDateEnd},'%Y-%m-%d')
|
</if>
|
</select>
|
|
<select id="selectIncomeStats"
|
resultType="com.ruoyi.home.dto.IncomeExpenseAnalysisDto">
|
SELECT DATE_FORMAT(income_date, #{dateFormat}) AS dateStr,
|
IFNULL(SUM(income_money), 0) AS amount
|
FROM account_income
|
WHERE income_date BETWEEN #{startDate} AND #{endDate}
|
# AND business_type = 1
|
GROUP BY dateStr
|
ORDER BY dateStr
|
|
</select>
|
|
<update id="syncReceiptIncomeDatesFromReceiptPayment">
|
UPDATE account_income ai
|
INNER JOIN receipt_payment rp ON ai.business_id = rp.id AND ai.business_type = 1
|
SET ai.income_date = DATE(rp.receipt_payment_date),
|
ai.input_time = DATE(rp.receipt_payment_date),
|
ai.create_time = DATE(rp.receipt_payment_date),
|
ai.update_time = DATE(rp.receipt_payment_date)
|
WHERE rp.receipt_payment_date IS NOT NULL
|
AND ai.income_type = '3'
|
AND ai.business_type = 1
|
</update>
|
|
</mapper>
|