律所系统后端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

132 lines
5.3 KiB

<?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="net.lab1024.sa.admin.module.cost.dao.FirmReportsDao">
<!-- 查询结果列 -->
<sql id="base_columns">
t_firm_reports.id,
t_firm_reports.firm_id as firmId,
t_firm_reports.user_id as userId,
t_firm_reports.declare_year as declareYear,
t_firm_reports.declare_quarter as declareQuarter,
t_firm_reports.revenue as revenue,
t_firm_reports.total_cost as totalCost,
t_firm_reports.public_welfare_cost as publicWelfareCost,
t_firm_reports.cost_income_ratio as costIncomeRatio,
t_firm_reports.actual_public_welfare_cost as actualPublicWelfareCost,
t_firm_reports.actual_cost_income_ratio as actualCostIncomeRatio,
t_firm_reports.approval_status as approvalStatus,
t_firm_reports.submission_time as submissionTime,
t_firm_reports.approver_id as approverId,
t_firm_reports.create_time as createTime,
t_firm_reports.update_time as updateTime,
t_firm_reports.del_flag as delFlag,
t_firm_reports.declare_month as declareMonth
</sql>
<update id="commit">
UPDATE t_firm_reports
SET approval_status = 3
WHERE id IN
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
#{item}
</foreach>
</update>
<!-- 批量驳回 -->
<update id="reject">
UPDATE t_firm_reports
SET approval_status = 0
WHERE id IN
<foreach item="item" collection="list" separator="," open="(" close=")" index="">
#{item}
</foreach>
</update>
<!-- 分页查询 -->
<select id="queryPage" resultType="net.lab1024.sa.admin.module.cost.domain.vo.FirmReportsVO">
SELECT
<include refid="base_columns"/>
FROM t_firm_reports
<where>
del_flag = 0
<if test="queryForm.firmId != null and queryForm.firmId != ''">
AND t_firm_reports.firm_id = #{queryForm.firmId}
</if>
<if test="queryForm.includeSubmitted != null and queryForm.includeSubmitted and queryForm.userId != null">
AND (t_firm_reports.approval_status >= 3 OR t_firm_reports.user_id = #{queryForm.userId})
</if>
<if test="queryForm.includeSubmitted != null and queryForm.includeSubmitted and (queryForm.userId == null or queryForm.userId == '')">
AND t_firm_reports.approval_status >= 0
</if>
<if test="queryForm.userId != null and (queryForm.includeSubmitted == null or queryForm.includeSubmitted == false)">
AND t_firm_reports.user_id = #{queryForm.userId}
</if>
<if test="queryForm.declareYear != null">
AND t_firm_reports.declare_year = #{queryForm.declareYear}
</if>
<if test="queryForm.declareQuarter != null">
AND t_firm_reports.declare_quarter = #{queryForm.declareQuarter}
</if>
<if test="queryForm.declareMonth != null">
AND t_firm_reports.declare_month = #{queryForm.declareMonth}
</if>
<if test="queryForm.approvalStatus != null">
AND t_firm_reports.approval_status = #{queryForm.approvalStatus}
</if>
</where>
ORDER BY t_firm_reports.update_time DESC
</select>
<!-- 根据季度、年度和律所 ID 查询报表 -->
<select id="selectList" resultType="net.lab1024.sa.admin.module.cost.domain.entity.FirmReportsEntity">
SELECT *
FROM t_firm_reports
WHERE del_flag = 0
AND declare_quarter = #{declareQuarter}
AND declare_year = #{declareYear}
AND firm_id = #{firmId}
LIMIT 1
</select>
<select id="query" resultType="java.lang.Boolean">
SELECT
CASE WHEN EXISTS(
SELECT 1
FROM t_firm_reports
WHERE del_flag = 0 and approval_status = 3
AND declare_quarter = #{currentQuarter}
AND declare_year = #{currentYear}
AND firm_id = #{departmentId}
) THEN true ELSE false END
</select>
<select id="firmReportsCost" resultType="java.lang.Long">
SELECT ifnull(SUM(total_cost),0)
FROM t_firm_reports
WHERE del_flag = 0 and approval_status = 3
AND declare_year = #{currentYear}
AND firm_id = #{departmentId}
</select>
<select id="income" resultType="net.lab1024.sa.admin.module.cost.domain.vo.FirmReportsCountVO">
SELECT
SUM(revenue) as revenue,
SUM(total_cost) as totalCost
FROM t_firm_reports
WHERE del_flag = 0 and approval_status = 3
AND declare_year = #{currentYear}
AND firm_id = #{departmentId}
</select>
<!-- 根据律所ID、年份和季度查询成本管理表记录 -->
<select id="selectByFirmIdYearAndQuarter" resultType="net.lab1024.sa.admin.module.cost.domain.entity.FirmReportsEntity">
SELECT
*
FROM
t_firm_reports
WHERE
del_flag = 0
AND firm_id = #{firmId}
AND declare_year = #{year}
AND declare_quarter = #{quarter}
</select>
</mapper>