weaver-hrm-salary/src/com/engine/salary/mapper/siaccount/InsuranceAccountDetailMappe...

1624 lines
66 KiB
XML

<?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.engine.salary.mapper.siaccount.InsuranceAccountDetailMapper">
<resultMap id="BaseResultMap" type="com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO">
<result column="id" property="id"/>
<result column="employee_id" property="employeeId"/>
<result column="bill_month" property="billMonth"/>
<result column="bill_status" property="billStatus"/>
<result column="payment_status" property="paymentStatus"/>
<result column="supplementary_month" property="supplementaryMonth"/>
<result column="supplementary_projects" property="supplementaryProjects"/>
<result column="resource_from" property="resourceFrom"/>
<result column="social_pay_org" property="socialPayOrg"/>
<result column="social_account" property="socialAccount"/>
<result column="fund_pay_org" property="fundPayOrg"/>
<result column="fund_account" property="fundAccount"/>
<result column="supplement_fund_account" property="supplementFundAccount"/>
<result column="other_pay_org" property="otherPayOrg"/>
<result column="social_scheme_id" property="socialSchemeId"/>
<result column="social_payment_base_string" property="socialPaymentBaseString"/>
<result column="social_payment_com_base_string" property="socialPaymentComBaseString"/>
<result column="fund_scheme_id" property="fundSchemeId"/>
<result column="fund_payment_base_string" property="fundPaymentBaseString"/>
<result column="fund_payment_com_base_string" property="fundPaymentComBaseString"/>
<result column="other_scheme_id" property="otherSchemeId"/>
<result column="other_payment_base_string" property="otherPaymentBaseString"/>
<result column="other_payment_com_base_string" property="otherPaymentComBaseString"/>
<result column="social_per_json" property="socialPerJson"/>
<result column="social_per_sum" property="socialPerSum"/>
<result column="fund_per_json" property="fundPerJson"/>
<result column="fund_per_sum" property="fundPerSum"/>
<result column="other_per_json" property="otherPerJson"/>
<result column="other_per_sum" property="otherPerSum"/>
<result column="per_sum" property="perSum"/>
<result column="social_com_json" property="socialComJson"/>
<result column="social_com_sum" property="socialComSum"/>
<result column="fund_com_json" property="fundComJson"/>
<result column="fund_com_sum" property="fundComSum"/>
<result column="other_com_json" property="otherComJson"/>
<result column="other_com_sum" property="otherComSum"/>
<result column="com_sum" property="comSum"/>
<result column="social_sum" property="socialSum"/>
<result column="fund_sum" property="fundSum"/>
<result column="other_sum" property="otherSum"/>
<result column="total" property="total"/>
<result column="creator" property="creator"/>
<result column="delete_type" property="deleteType"/>
<result column="create_time" property="createTime"/>
<result column="update_time" property="updateTime"/>
<result column="tenant_key" property="tenantKey"/>
<result column="payment_organization" property="paymentOrganization"/>
<result column="subcompany_name" property="subcompanyName"/>
<result column="subcompany_id" property="subcompanyId"/>
<result column="department_name" property="departmentName"/>
<result column="department_id" property="departmentId"/>
<result column="jobtitle_name" property="jobtitleName"/>
<result column="jobtitle_id" property="jobtitleId"/>
<result column="jobcall" property="jobcall"/>
<result column="jobcall_id" property="jobcallId"/>
<result column="status" property="status"/>
</resultMap>
<!-- 表字段 -->
<sql id="baseColumns">
t
.
id
, t.employee_id
, e.status as employee_status
, t.bill_month
, t.bill_status
, t.payment_status
, t.supplementary_month
, t.supplementary_projects
, t.resource_from
, t.social_pay_org
, t.social_account
, t.fund_pay_org
, t.fund_account
, t.supplement_fund_account
, t.other_pay_org
, t.social_scheme_id
, t.social_payment_base_string
, t.social_payment_com_base_string
, t.fund_scheme_id
, t.fund_payment_base_string
, t.fund_payment_com_base_string
, t.other_scheme_id
, t.other_payment_base_string
, t.other_payment_com_base_string
, t.social_per_json
, t.social_per_sum
, t.fund_per_json
, t.fund_per_sum
, t.other_per_json
, t.other_per_sum
, t.per_sum
, t.social_com_json
, t.social_com_sum
, t.fund_com_json
, t.fund_com_sum
, t.other_com_json
, t.other_com_sum
, t.com_sum
, t.social_sum
, t.fund_sum
, t.other_sum
, t.total
, t.creator
, t.delete_type
, t.create_time
, t.update_time
, t.tenant_key
, t.payment_organization
, t.subcompany_name
, t.subcompany_id
, t.department_name
, t.department_id
, t.jobtitle_name
, t.jobtitle_id
, t.jobcall
, t.jobcall_id
, t.status
</sql>
<sql id="baseColumnsNoJoin">
t
.
id
, t.employee_id
, t.bill_month
, t.bill_status
, t.payment_status
, t.supplementary_month
, t.supplementary_projects
, t.resource_from
, t.social_pay_org
, t.social_account
, t.fund_pay_org
, t.fund_account
, t.supplement_fund_account
, t.other_pay_org
, t.social_scheme_id
, t.social_payment_base_string
, t.social_payment_com_base_string
, t.fund_scheme_id
, t.fund_payment_base_string
, t.fund_payment_com_base_string
, t.other_scheme_id
, t.other_payment_base_string
, t.other_payment_com_base_string
, t.social_per_json
, t.social_per_sum
, t.fund_per_json
, t.fund_per_sum
, t.other_per_json
, t.other_per_sum
, t.per_sum
, t.social_com_json
, t.social_com_sum
, t.fund_com_json
, t.fund_com_sum
, t.other_com_json
, t.other_com_sum
, t.com_sum
, t.social_sum
, t.fund_sum
, t.other_sum
, t.total
, t.creator
, t.delete_type
, t.create_time
, t.update_time
, t.tenant_key
, t.payment_organization
</sql>
<sql id="paramSqlCommon">
<if test="param.billMonth != null and param.billMonth != ''">
AND
t.bill_month = #{param.billMonth}
</if>
<if test="param.paymentStatus != null">
AND
t.payment_status = #{param.paymentStatus}
</if>
<if test="param.paymentOrganization != null and param.paymentOrganization != ''">
AND
t.payment_organization = #{param.paymentOrganization}
</if>
<!-- <if test="param.creator != null">-->
<!-- AND-->
<!-- t.creator = #{param.creator}-->
<!-- </if>-->
</sql>
<sql id="paramSql">
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like CONCAT('%',#{param.userName},'%')
)
</if>
<if test="param.workcode != null and param.workcode != ''">
AND e.workcode like CONCAT('%',#{param.workcode},'%')
</if>
<if test="param.employeeIds != null and param.employeeIds.size()>0">
AND t.employee_id IN
<foreach collection="param.employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
<if test="param.recessionMonthList != null and param.recessionMonthList.size()>0">
AND t.bill_month IN
<foreach collection="param.recessionMonthList" open="(" item="recessionMonth" separator="," close=")">
#{recessionMonth}
</foreach>
</if>
<if test="param.taxAgents != null and param.taxAgents.size()>0">
AND t.payment_organization IN
<foreach collection="param.taxAgents" open="(" item="taxAgent" separator="," close=")">
#{taxAgent}
</foreach>
</if>
<if test="param.fixedDepartmentIds != null and param.fixedDepartmentIds.size()>0">
AND t.department_id IN
<foreach collection="param.fixedDepartmentIds" open="(" item="fixedDepartmentId" separator="," close=")">
#{fixedDepartmentId}
</foreach>
</if>
<if test="param.fixedSubCompanyIds != null and param.fixedSubCompanyIds.size()>0">
AND t.subcompany_id IN
<foreach collection="param.fixedSubCompanyIds" open="(" item="fixedSubCompanyId" separator="," close=")">
#{fixedSubCompanyId}
</foreach>
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND e.departmentid IN
<foreach collection="param.departmentIds" open="(" item="departmentId" separator="," close=")">
#{departmentId}
</foreach>
</if>
<if test="param.subCompanyIds != null and param.subCompanyIds.size()>0">
AND e.subcompanyid1 IN
<foreach collection="param.subCompanyIds" open="(" item="subCompanyId" separator="," close=")">
#{subCompanyId}
</foreach>
</if>
</sql>
<sql id="paramSql" databaseId="oracle">
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like '%'||#{param.userName}||'%'
)
</if>
<if test="param.workcode != null and param.workcode != ''">
AND e.workcode like '%'||#{param.workcode}||'%'
</if>
<if test="param.employeeIds != null and param.employeeIds.size()>0">
AND t.employee_id IN
<foreach collection="param.employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
<if test="param.recessionMonthList != null and param.recessionMonthList.size()>0">
AND t.bill_month IN
<foreach collection="param.recessionMonthList" open="(" item="recessionMonth" separator="," close=")">
#{recessionMonth}
</foreach>
</if>
<if test="param.taxAgents != null and param.taxAgents.size()>0">
AND t.payment_organization IN
<foreach collection="param.taxAgents" open="(" item="taxAgent" separator="," close=")">
#{taxAgent}
</foreach>
</if>
<if test="param.fixedDepartmentIds != null and param.fixedDepartmentIds.size()>0">
AND t.department_id IN
<foreach collection="param.fixedDepartmentIds" open="(" item="fixedDepartmentId" separator="," close=")">
#{fixedDepartmentId}
</foreach>
</if>
<if test="param.fixedSubCompanyIds != null and param.fixedSubCompanyIds.size()>0">
AND t.subcompany_id IN
<foreach collection="param.fixedSubCompanyIds" open="(" item="fixedSubCompanyId" separator="," close=")">
#{fixedSubCompanyId}
</foreach>
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND e.departmentid IN
<foreach collection="param.departmentIds" open="(" item="departmentId" separator="," close=")">
#{departmentId}
</foreach>
</if>
<if test="param.subCompanyIds != null and param.subCompanyIds.size()>0">
AND e.subcompanyid1 IN
<foreach collection="param.subCompanyIds" open="(" item="subCompanyId" separator="," close=")">
#{subCompanyId}
</foreach>
</if>
</sql>
<sql id="paramSql" databaseId="sqlserver">
<if test="param.userName != null and param.userName != ''">
AND
(
e.lastname like '%'+#{param.userName}+'%'
)
</if>
<if test="param.workcode != null and param.workcode != ''">
AND e.workcode like '%'+#{param.workcode}+'%'
</if>
<if test="param.employeeIds != null and param.employeeIds.size()>0">
AND t.employee_id IN
<foreach collection="param.employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
<if test="param.recessionMonthList != null and param.recessionMonthList.size()>0">
AND t.bill_month IN
<foreach collection="param.recessionMonthList" open="(" item="recessionMonth" separator="," close=")">
#{recessionMonth}
</foreach>
</if>
<if test="param.taxAgents != null and param.taxAgents.size()>0">
AND t.payment_organization IN
<foreach collection="param.taxAgents" open="(" item="taxAgent" separator="," close=")">
#{taxAgent}
</foreach>
</if>
<if test="param.fixedDepartmentIds != null and param.fixedDepartmentIds.size()>0">
AND t.department_id IN
<foreach collection="param.fixedDepartmentIds" open="(" item="fixedDepartmentId" separator="," close=")">
#{fixedDepartmentId}
</foreach>
</if>
<if test="param.fixedSubCompanyIds != null and param.fixedSubCompanyIds.size()>0">
AND t.subcompany_id IN
<foreach collection="param.fixedSubCompanyIds" open="(" item="fixedSubCompanyId" separator="," close=")">
#{fixedSubCompanyId}
</foreach>
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND e.departmentid IN
<foreach collection="param.departmentIds" open="(" item="departmentId" separator="," close=")">
#{departmentId}
</foreach>
</if>
<if test="param.subCompanyIds != null and param.subCompanyIds.size()>0">
AND e.subcompanyid1 IN
<foreach collection="param.subCompanyIds" open="(" item="subCompanyId" separator="," close=")">
#{subCompanyId}
</foreach>
</if>
</sql>
<sql id="extParamSql">
<if test="param.userName != null and param.userName != ''">
AND
(
e.userName like CONCAT('%',#{param.userName},'%')
)
</if>
<if test="param.workcode != null and param.workcode != ''">
AND e.workcode like CONCAT('%',#{param.workcode},'%')
</if>
<if test="param.employeeIds != null and param.employeeIds.size()>0">
AND t.employee_id IN
<foreach collection="param.employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
<if test="param.recessionMonthList != null and param.recessionMonthList.size()>0">
AND t.bill_month IN
<foreach collection="param.recessionMonthList" open="(" item="recessionMonth" separator="," close=")">
#{recessionMonth}
</foreach>
</if>
<if test="param.taxAgents != null and param.taxAgents.size()>0">
AND t.payment_organization IN
<foreach collection="param.taxAgents" open="(" item="taxAgent" separator="," close=")">
#{taxAgent}
</foreach>
</if>
<if test="param.fixedDepartmentIds != null and param.fixedDepartmentIds.size()>0">
AND t.department_id IN
<foreach collection="param.fixedDepartmentIds" open="(" item="fixedDepartmentId" separator="," close=")">
#{fixedDepartmentId}
</foreach>
</if>
<if test="param.fixedSubCompanyIds != null and param.fixedSubCompanyIds.size()>0">
AND t.subcompany_id IN
<foreach collection="param.fixedSubCompanyIds" open="(" item="fixedSubCompanyId" separator="," close=")">
#{fixedSubCompanyId}
</foreach>
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND e.department_id IN
<foreach collection="param.departmentIds" open="(" item="departmentId" separator="," close=")">
#{departmentId}
</foreach>
</if>
<if test="param.subCompanyIds != null and param.subCompanyIds.size()>0">
AND e.subcompany_id IN
<foreach collection="param.subCompanyIds" open="(" item="subCompanyId" separator="," close=")">
#{subCompanyId}
</foreach>
</if>
</sql>
<sql id="extParamSql" databaseId="oracle">
<if test="param.userName != null and param.userName != ''">
AND
(
e.userName like '%'||#{param.userName}||'%'
)
</if>
<if test="param.workcode != null and param.workcode != ''">
AND e.workcode like '%'||#{param.workcode}||'%'
</if>
<if test="param.employeeIds != null and param.employeeIds.size()>0">
AND t.employee_id IN
<foreach collection="param.employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
<if test="param.recessionMonthList != null and param.recessionMonthList.size()>0">
AND t.bill_month IN
<foreach collection="param.recessionMonthList" open="(" item="recessionMonth" separator="," close=")">
#{recessionMonth}
</foreach>
</if>
<if test="param.taxAgents != null and param.taxAgents.size()>0">
AND t.payment_organization IN
<foreach collection="param.taxAgents" open="(" item="taxAgent" separator="," close=")">
#{taxAgent}
</foreach>
</if>
<if test="param.fixedDepartmentIds != null and param.fixedDepartmentIds.size()>0">
AND t.department_id IN
<foreach collection="param.fixedDepartmentIds" open="(" item="fixedDepartmentId" separator="," close=")">
#{fixedDepartmentId}
</foreach>
</if>
<if test="param.fixedSubCompanyIds != null and param.fixedSubCompanyIds.size()>0">
AND t.subcompany_id IN
<foreach collection="param.fixedSubCompanyIds" open="(" item="fixedSubCompanyId" separator="," close=")">
#{fixedSubCompanyId}
</foreach>
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND e.department_id IN
<foreach collection="param.departmentIds" open="(" item="departmentId" separator="," close=")">
#{departmentId}
</foreach>
</if>
<if test="param.subCompanyIds != null and param.subCompanyIds.size()>0">
AND e.subcompany_id IN
<foreach collection="param.subCompanyIds" open="(" item="subCompanyId" separator="," close=")">
#{subCompanyId}
</foreach>
</if>
</sql>
<sql id="extParamSql" databaseId="sqlserver">
<if test="param.userName != null and param.userName != ''">
AND
(
e.userName like '%'+#{param.userName}+'%'
)
</if>
<if test="param.workcode != null and param.workcode != ''">
AND e.workcode like '%'+#{param.workcode}+'%'
</if>
<if test="param.employeeIds != null and param.employeeIds.size()>0">
AND t.employee_id IN
<foreach collection="param.employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
<if test="param.recessionMonthList != null and param.recessionMonthList.size()>0">
AND t.bill_month IN
<foreach collection="param.recessionMonthList" open="(" item="recessionMonth" separator="," close=")">
#{recessionMonth}
</foreach>
</if>
<if test="param.taxAgents != null and param.taxAgents.size()>0">
AND t.payment_organization IN
<foreach collection="param.taxAgents" open="(" item="taxAgent" separator="," close=")">
#{taxAgent}
</foreach>
</if>
<if test="param.fixedDepartmentIds != null and param.fixedDepartmentIds.size()>0">
AND t.department_id IN
<foreach collection="param.fixedDepartmentIds" open="(" item="fixedDepartmentId" separator="," close=")">
#{fixedDepartmentId}
</foreach>
</if>
<if test="param.fixedSubCompanyIds != null and param.fixedSubCompanyIds.size()>0">
AND t.subcompany_id IN
<foreach collection="param.fixedSubCompanyIds" open="(" item="fixedSubCompanyId" separator="," close=")">
#{fixedSubCompanyId}
</foreach>
</if>
<if test="param.departmentIds != null and param.departmentIds.size()>0">
AND e.department_id IN
<foreach collection="param.departmentIds" open="(" item="departmentId" separator="," close=")">
#{departmentId}
</foreach>
</if>
<if test="param.subCompanyIds != null and param.subCompanyIds.size()>0">
AND e.subcompany_id IN
<foreach collection="param.subCompanyIds" open="(" item="subCompanyId" separator="," close=")">
#{subCompanyId}
</foreach>
</if>
</sql>
<select id="list" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrsa_bill_detail t
left join hrmresource e on e.ID = t.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.departmentid
LEFT JOIN hrmsubcompany c ON c.id = e.subcompanyid1
WHERE t.delete_type = 0
and e.status not in (7)
<include refid="paramSqlCommon"/>
<include refid="paramSql"/>
<!-- 排序 -->
<if test="param.orderRule != null">
ORDER BY ${param.orderRule.orderRule} ${param.orderRule.ascOrDesc}
</if>
</select>
<select id="extList" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrsa_bill_detail t
left join hrsa_external_employee e on e.ID = t.employee_id
LEFT JOIN hrmdepartment d ON d.id = e.department_id
LEFT JOIN hrmsubcompany c ON c.id = e.subcompany_id
WHERE t.delete_type = 0
and e.status not in (7)
<include refid="paramSqlCommon"/>
<include refid="extParamSql"/>
<!-- 排序 -->
</select>
<select id="selectList" resultMap="BaseResultMap">
SELECT
t.id,
t.employee_id,t.social_sum,t.fund_sum,t.other_sum,t.fund_pay_org,t.social_pay_org,
t.other_pay_org, t.payment_status
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.bill_month = #{billMonth}
<if test="paymentOrganization != null">
AND t.payment_organization = #{paymentOrganization}
</if>
</select>
<select id="queryList" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id,t.social_per_json,t.social_com_json,
t.fund_per_json,t.fund_com_json,t.other_per_json,
t.other_com_json,t.social_per_sum,t.social_com_sum,
t.fund_per_sum,t.fund_com_sum,t.other_per_sum,
t.other_com_sum,t.per_sum,t.com_sum,t.payment_status,
t.social_payment_base_string,t.fund_payment_base_string,t.other_payment_base_string
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
-- AND t.payment_status = 0
AND t.bill_month = #{billMonth}
AND t.payment_organization = #{paymentOrganization}
<if test="employeeIds != null and employeeIds.size()>0">
AND employee_id IN
<foreach collection="employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
</select>
<select id="queryNormalList" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id,t.social_per_json,t.social_com_json,
t.social_scheme_id,t.fund_scheme_id,t.other_scheme_id,
t.fund_per_json,t.fund_com_json,t.other_per_json,
t.other_com_json,t.social_per_sum,t.social_com_sum,
t.fund_per_sum,t.fund_com_sum,t.other_per_sum,
t.other_com_sum,t.per_sum,t.com_sum,t.payment_organization,
t.social_payment_base_string, t.fund_payment_base_string, t.other_payment_base_string,
t.social_payment_com_base_string, t.fund_payment_com_base_string, t.other_payment_com_base_string,
t.payment_status
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.payment_status = 0
AND t.bill_month = #{billMonth}
AND t.payment_organization = #{paymentOrganization}
AND employee_id = #{employeeId}
</select>
<select id="querySupplementList" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id,t.social_per_json,t.social_com_json,
t.fund_per_json,t.fund_com_json,t.other_per_json,
t.other_com_json,t.social_per_sum,t.social_com_sum,
t.fund_per_sum,t.fund_com_sum,t.other_per_sum,
t.other_com_sum,t.per_sum,t.com_sum,t.payment_organization,
t.payment_status
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.bill_month = #{billMonth}
AND t.payment_organization = #{paymentOrganization}
AND t.employee_id = #{employeeId}
AND t.supplementary_month = #{supplementaryMonth}
AND t.payment_status = 1
</select>
<select id="querySupplementListByBillMonth" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id,t.supplementary_month,t.supplementary_projects
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.payment_status = 1
AND t.bill_month = #{billMonth}
AND t.payment_organization = #{paymentOrganization}
</select>
<select id="queryBalanceListByBillMonth" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id,t.supplementary_month,t.supplementary_projects
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.payment_status = 4
AND t.bill_month = #{billMonth}
AND t.payment_organization = #{paymentOrganization}
</select>
<select id="queryNormalListByBillMonth" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.payment_status = 0
AND t.bill_month = #{billMonth}
AND t.payment_organization = #{paymentOrganization}
</select>
<select id="selectAccountIds" resultType="java.lang.Long">
SELECT DISTINCT a.ID
FROM (
SELECT t.ID,
social.social_start_time,
social.social_end_time,
fund.fund_start_time,
fund.fund_end_time,
other.other_start_time,
other.other_end_time
FROM (
SELECT e.ID
FROM hrmresource e
LEFT JOIN (SELECT
t.*
FROM
(
SELECT
log.resource_n,
log.dismissdate
FROM
bill_hrmdismiss log ) t) l
ON e.ID = l.resource_n
WHERE(
e.status != '5'
OR l.dismissdate IS NULL
OR l.dismissdate = ''
OR l.dismissdate
> #{time}
)
) t
LEFT JOIN hrsa_social_archives social ON t.ID = social.employee_id
LEFT JOIN hrsa_fund_archives fund ON t.ID = fund.employee_id
LEFT JOIN hrsa_other_archives other ON t.ID = other.employee_id
WHERE (
fund.delete_type = 0 and
fund.fund_start_time IS NOT NULL AND fund.fund_start_time != ''
AND(
fund.fund_end_time IS NULL
OR fund.fund_end_time = ''
OR fund.fund_end_time > #{time}
)
)
OR (
social.delete_type = 0 and
social.social_start_time IS NOT NULL AND social.social_start_time != ''
<if test="paymentOrganization != null">
AND
-- 个税扣缴义务人
social.payment_organization = #{paymentOrganization}
</if>
AND(
social.social_end_time IS NULL
OR social.social_end_time = ''
OR social.social_end_time > #{time}
)
)
OR (
other.delete_type = 0 and
other.other_start_time IS NOT NULL AND other.other_start_time != ''
AND(
other.other_end_time IS NULL
OR other.other_end_time = ''
OR other.other_end_time > #{time}
)
)
) a
</select>
<!-- <select id="selectAccountIds" resultType="java.lang.Long" databaseId="oracle">-->
<!-- SELECT DISTINCT a.ID-->
<!-- FROM (-->
<!-- SELECT t.ID,-->
<!-- social.social_start_time,-->
<!-- social.social_end_time,-->
<!-- fund.fund_start_time,-->
<!-- fund.fund_end_time,-->
<!-- other.other_start_time,-->
<!-- other.other_end_time-->
<!-- FROM (-->
<!-- SELECT e.ID-->
<!-- FROM hrmresource e-->
<!-- LEFT JOIN (SELECT-->
<!-- t.*-->
<!-- FROM-->
<!-- (-->
<!-- SELECT-->
<!-- log.resource_n,-->
<!-- log.dismissdate-->
<!-- FROM-->
<!-- bill_hrmdismiss log ) t) l-->
<!-- ON e.ID = l.resource_n-->
<!-- WHERE(-->
<!-- e.status != '5'-->
<!-- -->
<!-- OR l.dismissdate IS NULL-->
<!-- OR l.dismissdate = ''-->
<!-- OR l.dismissdate-->
<!-- > #{time}-->
<!-- )-->
<!-- ) t-->
<!-- LEFT JOIN hrsa_social_archives social ON t.ID = social.employee_id-->
<!-- LEFT JOIN hrsa_fund_archives fund ON t.ID = fund.employee_id-->
<!-- LEFT JOIN hrsa_other_archives other ON t.ID = other.employee_id-->
<!-- WHERE (-->
<!-- fund.fund_start_time IS NOT NULL-->
<!-- AND(-->
<!-- fund.fund_end_time IS NULL-->
<!-- OR fund.fund_end_time = ''-->
<!-- OR fund.fund_end_time > #{time}-->
<!-- )-->
<!-- )-->
<!-- OR (-->
<!-- social.social_start_time IS NOT NULL-->
<!-- AND(-->
<!-- social.social_end_time IS NULL-->
<!-- OR social.social_end_time = ''-->
<!-- OR social.social_end_time > #{time}-->
<!-- )-->
<!-- )-->
<!-- OR (-->
<!-- other.other_start_time IS NOT NULL-->
<!-- AND(-->
<!-- other.other_end_time IS NULL-->
<!-- OR other.other_end_time = ''-->
<!-- OR other.other_end_time > #{time}-->
<!-- )-->
<!-- )-->
<!-- ) a-->
<!-- </select>-->
<select id="selectEmpByPaymentOrg" resultType="java.lang.Long">
SELECT employee_id
from hrsa_insurance_base_info base
where delete_type = 0
and base.payment_organization = #{paymentOrganization}
</select>
<!-- 根据主键删除记录 -->
<delete id="deleteById" parameterType="com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE id = #{id}
AND delete_type = 0
</delete>
<delete id="batchDeleteNotFile" parameterType="com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO">
DELETE
FROM hrsa_bill_detail
WHERE delete_type = 0
AND bill_month = #{billMonth}
AND bill_status = 0
<if test="paymentOrganization != null">
AND payment_organization = #{paymentOrganization}
</if>
</delete>
<delete id="batchDelSupplementAccountDetails">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE delete_type = 0
AND id IN
<foreach collection="pos" open="(" item="po" separator="," close=")">
#{po.id}
</foreach>
</delete>
<update id="batchUnConfirmedInspectDetails">
UPDATE
hrsa_bill_inspect
SET
inspect_status = 0
WHERE
delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</update>
<update id="batchIgnoreInspectDetails">
UPDATE
hrsa_bill_inspect
SET
inspect_status = 1
WHERE
delete_type = 0
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</update>
<!-- 批量删除 -->
<delete id="batchDelAccountDetails">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE delete_type = 0
AND payment_status = #{paymentStatus}
AND bill_month = #{billMonth}
AND payment_organization = #{paymentOrganization}
<if test="employeeIds != null and employeeIds.size()>0">
AND employee_id IN
<foreach collection="employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</if>
</delete>
<!-- 根据id批量删除 -->
<delete id="batchDelAccountDetailsByIds">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE delete_type = 0
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
</delete>
<delete id="batchDelSupplementDetailsByIds">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE delete_type = 0
AND employee_id IN
<foreach collection="pos" open="(" item="po" separator="," close=")">
#{po.employeeId}
</foreach>
</delete>
<insert id="batchSaveAccountDetails">
INSERT INTO hrsa_bill_detail
(employee_id,bill_month,bill_status,payment_status,supplementary_month,supplementary_projects,resource_from,social_pay_org,social_account,social_scheme_id,social_payment_base_string,
fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json,
social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum,
com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization,
social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string,
subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status)
VALUES
<foreach collection="accounts" item="item" separator=",">
(
#{item.employeeId},
#{item.billMonth},
#{item.billStatus},
#{item.paymentStatus},
#{item.supplementaryMonth},
#{item.supplementaryProjects},
#{item.resourceFrom},
#{item.socialPayOrg},
#{item.socialAccount},
#{item.socialSchemeId},
#{item.socialPaymentBaseString},
#{item.fundPayOrg},
#{item.fundAccount},
#{item.supplementFundAccount},
#{item.fundSchemeId},
#{item.fundPaymentBaseString},
#{item.otherPayOrg},
#{item.otherSchemeId},
#{item.otherPaymentBaseString},
#{item.socialPerJson},
#{item.socialPerSum},
#{item.fundPerJson},
#{item.fundPerSum},
#{item.otherPerJson},
#{item.otherPerSum},
#{item.perSum},
#{item.socialComJson},
#{item.socialComSum},
#{item.fundComJson},
#{item.fundComSum},
#{item.otherComJson},
#{item.otherComSum},
#{item.comSum},
#{item.socialSum},
#{item.fundSum},
#{item.otherSum},
#{item.total},
#{item.creator},
#{item.createTime},
#{item.updateTime},
#{item.deleteType},
#{item.tenantKey},
#{item.paymentOrganization},
#{item.socialPaymentComBaseString},
#{item.fundPaymentComBaseString},
#{item.otherPaymentComBaseString},
#{item.subcompanyName},
#{item.subcompanyId},
#{item.departmentName},
#{item.departmentId},
#{item.jobtitleName},
#{item.jobtitleId},
#{item.jobcall},
#{item.jobcallId},
#{item.status}
)
</foreach>
</insert>
<insert id="batchSaveAccountDetails" databaseId="oracle">
INSERT INTO hrsa_bill_detail
(employee_id,bill_month,bill_status,payment_status,supplementary_month,supplementary_projects,resource_from,social_pay_org,social_account,social_scheme_id,social_payment_base_string,
fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json,
social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum,
com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization,
social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string,
subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status)
<foreach collection="accounts" item="item" separator="union all">
select
#{item.employeeId,jdbcType=DOUBLE},
#{item.billMonth,jdbcType=VARCHAR},
#{item.billStatus,jdbcType=INTEGER},
#{item.paymentStatus,jdbcType=INTEGER},
#{item.supplementaryMonth,jdbcType=VARCHAR},
#{item.supplementaryProjects,jdbcType=VARCHAR},
#{item.resourceFrom,jdbcType=INTEGER},
#{item.socialPayOrg,jdbcType=DOUBLE},
#{item.socialAccount,jdbcType=VARCHAR},
#{item.socialSchemeId,jdbcType=DOUBLE},
#{item.socialPaymentBaseString,jdbcType=VARCHAR},
#{item.fundPayOrg,jdbcType=DOUBLE},
#{item.fundAccount,jdbcType=VARCHAR},
#{item.supplementFundAccount,jdbcType=VARCHAR},
#{item.fundSchemeId,jdbcType=DOUBLE},
#{item.fundPaymentBaseString,jdbcType=VARCHAR},
#{item.otherPayOrg,jdbcType=DOUBLE},
#{item.otherSchemeId,jdbcType=DOUBLE},
#{item.otherPaymentBaseString,jdbcType=VARCHAR},
#{item.socialPerJson,jdbcType=VARCHAR},
#{item.socialPerSum,jdbcType=VARCHAR},
#{item.fundPerJson,jdbcType=VARCHAR},
#{item.fundPerSum,jdbcType=VARCHAR},
#{item.otherPerJson,jdbcType=VARCHAR},
#{item.otherPerSum,jdbcType=VARCHAR},
#{item.perSum,jdbcType=VARCHAR},
#{item.socialComJson,jdbcType=VARCHAR},
#{item.socialComSum,jdbcType=VARCHAR},
#{item.fundComJson,jdbcType=VARCHAR},
#{item.fundComSum,jdbcType=VARCHAR},
#{item.otherComJson,jdbcType=VARCHAR},
#{item.otherComSum,jdbcType=VARCHAR},
#{item.comSum,jdbcType=VARCHAR},
#{item.socialSum,jdbcType=VARCHAR},
#{item.fundSum,jdbcType=VARCHAR},
#{item.otherSum,jdbcType=VARCHAR},
#{item.total,jdbcType=VARCHAR},
#{item.creator,jdbcType=DOUBLE},
#{item.createTime},
#{item.updateTime},
#{item.deleteType},
#{item.tenantKey,jdbcType=VARCHAR},
#{item.paymentOrganization,jdbcType=DOUBLE},
#{item.socialPaymentComBaseString,jdbcType=VARCHAR},
#{item.fundPaymentComBaseString,jdbcType=VARCHAR},
#{item.otherPaymentComBaseString,jdbcType=VARCHAR},
#{item.subcompanyName,jdbcType=VARCHAR},
#{item.subcompanyId,jdbcType=DOUBLE},
#{item.departmentName,jdbcType=VARCHAR},
#{item.departmentId,jdbcType=DOUBLE},
#{item.jobtitleName,jdbcType=VARCHAR},
#{item.jobtitleId,jdbcType=DOUBLE},
#{item.jobcall,jdbcType=VARCHAR},
#{item.jobcallId,jdbcType=DOUBLE},
#{item.status,jdbcType=VARCHAR}
from dual
</foreach>
</insert>
<insert id="batchSaveAccountDetails" databaseId="sqlserver">
<foreach collection="accounts" item="item" separator=";">
INSERT INTO hrsa_bill_detail
(employee_id,bill_month,bill_status,payment_status,supplementary_month,supplementary_projects,resource_from,social_pay_org,social_account,social_scheme_id,social_payment_base_string,
fund_pay_org,fund_account,supplement_fund_account,fund_scheme_id,fund_payment_base_string,other_pay_org,other_scheme_id,other_payment_base_string,social_per_json,
social_per_sum,fund_per_json,fund_per_sum,other_per_json,other_per_sum,per_sum,social_com_json,social_com_sum,fund_com_json,fund_com_sum,other_com_json,other_com_sum,
com_sum,social_sum,fund_sum,other_sum,total,creator,create_time,update_time,delete_type,tenant_key,payment_organization,
social_payment_com_base_string,fund_payment_com_base_string,other_payment_com_base_string,
subcompany_name,subcompany_id,department_name,department_id,jobtitle_name,jobtitle_id,jobcall,jobcall_id,status)
VALUES
(
#{item.employeeId},
#{item.billMonth},
#{item.billStatus},
#{item.paymentStatus},
#{item.supplementaryMonth},
#{item.supplementaryProjects},
#{item.resourceFrom},
#{item.socialPayOrg},
#{item.socialAccount},
#{item.socialSchemeId},
#{item.socialPaymentBaseString},
#{item.fundPayOrg},
#{item.fundAccount},
#{item.supplementFundAccount},
#{item.fundSchemeId},
#{item.fundPaymentBaseString},
#{item.otherPayOrg},
#{item.otherSchemeId},
#{item.otherPaymentBaseString},
#{item.socialPerJson},
#{item.socialPerSum},
#{item.fundPerJson},
#{item.fundPerSum},
#{item.otherPerJson},
#{item.otherPerSum},
#{item.perSum},
#{item.socialComJson},
#{item.socialComSum},
#{item.fundComJson},
#{item.fundComSum},
#{item.otherComJson},
#{item.otherComSum},
#{item.comSum},
#{item.socialSum},
#{item.fundSum},
#{item.otherSum},
#{item.total},
#{item.creator},
#{item.createTime},
#{item.updateTime},
#{item.deleteType},
#{item.tenantKey},
#{item.paymentOrganization},
#{item.socialPaymentComBaseString},
#{item.fundPaymentComBaseString},
#{item.otherPaymentComBaseString},
#{item.subcompanyName},
#{item.subcompanyId},
#{item.departmentName},
#{item.departmentId},
#{item.jobtitleName},
#{item.jobtitleId},
#{item.jobcall},
#{item.jobcallId},
#{item.status}
)
</foreach>
</insert>
<sql id="likeCondition" >
<if test="userName != null and userName != ''">
AND e.lastname like CONCAT('%',#{userName},'%')
</if>
</sql>
<sql id="likeCondition" databaseId="oracle">
<if test="userName != null and userName != ''">
AND e.lastname like '%'||#{userName}||'%'
</if>
</sql>
<sql id="likeCondition" databaseId="sqlserver">
<if test="userName != null and userName != ''">
AND e.lastname like '%'+#{userName}+'%'
</if>
</sql>
<select id="changeList" resultType="com.engine.salary.entity.siarchives.po.InsuranceArchivesEmployeePO">
SELECT DISTINCT
a.employeeId,
a.userName,
a.departmentId,
a.jobNum,
a.telephone,
a.departmentName,
a.position,
a.userStatus,
a.hiredate,
a.dimissionDate,
a.siSchemeId,
a.fundSchemeId,
a.otherSchemeId
FROM
(
SELECT
t.*, social.social_start_time,
social.social_end_time,
fund.fund_start_time,
fund.fund_end_time,
other.other_start_time,
other.other_end_time,
social.social_scheme_id AS siSchemeId,
fund.fund_scheme_id AS fundSchemeId,
other.other_scheme_id AS otherSchemeId
FROM
(
SELECT
e.lastname AS userName,
e.jobtitle AS jobNum,
e.departmentid AS departmentId,
d.departmentname AS departmentName,
e.STATUS AS userStatus,
e.jobtitle AS position,
h.payment_status AS paymentStatus,
e.companystartdate AS hiredate,
l.dismissdate AS dimissionDate,
e.ID AS employeeId,
e.MOBILE AS telephone
FROM
hrsa_bill_detail h
LEFT JOIN hrmresource e ON e.ID = h.employee_id AND h.delete_type = 0
LEFT JOIN bill_hrmdismiss l ON e.ID = l.resource_n
LEFT JOIN hrmdepartment d ON d.ID = e.departmentid
WHERE
e.STATUS = 5 AND h.payment_status = 0
<include refid="likeCondition"/>
AND(l.dismissdate IS NOT NULL)
)AS t
LEFT JOIN hrsa_social_archives social ON t.employeeId = social.employee_id AND social.delete_type = 0
LEFT JOIN hrsa_fund_archives fund ON t.employeeId = fund.employee_id AND fund.delete_type = 0
LEFT JOIN hrsa_other_archives other ON t.employeeId = other.employee_id AND other.delete_type = 0
WHERE
(
fund.fund_start_time IS NOT NULL
AND(
fund.fund_end_time IS NULL
OR fund.fund_end_time = ''
)
)
OR(
social.social_start_time IS NOT NULL
AND(
social.social_end_time IS NULL
OR social.social_end_time = ''
)
)
OR(
other.other_start_time IS NOT NULL
AND(
other.other_end_time IS NULL
OR other.other_end_time = ''
)
)
)a
UNION
SELECT
a.employeeId,
a.userName,
a.departmentId,
a.jobNum,
a.telephone,
a.departmentName,
a.position,
a.userStatus,
a.hiredate,
a.dimissionDate,
a.siSchemeId,
a.fundSchemeId,
a.otherSchemeId
FROM
(
SELECT
t.*, social.social_start_time,
social.social_end_time,
fund.fund_start_time,
fund.fund_end_time,
other.other_start_time,
other.other_end_time,
social.social_scheme_id AS siSchemeId,
fund.fund_scheme_id AS fundSchemeId,
other.other_scheme_id AS otherSchemeId
FROM
(
SELECT
e.lastname AS userName,
e.jobtitle AS jobNum,
e.departmentid AS departmentId,
d.departmentname AS departmentName,
e.STATUS AS userStatus,
e.jobtitle AS position,
e.companystartdate AS hiredate,
l.dismissdate AS dimissionDate,
e.ID AS employeeId,
e.MOBILE AS telephone
FROM
hrmresource e
LEFT JOIN bill_hrmdismiss l ON e.ID = l.resource_n
LEFT JOIN hrmdepartment d ON d.ID = e.departmentid
WHERE
e.STATUS not in (4,5,6,7)
<include refid="likeCondition"/>
AND(
l.dismissdate IS NULL OR l.dismissdate = ''
)
)AS t
LEFT JOIN hrsa_social_archives social ON t.employeeId = social.employee_id AND social.delete_type = 0
LEFT JOIN hrsa_fund_archives fund ON t.employeeId = fund.employee_id AND fund.delete_type = 0
LEFT JOIN hrsa_other_archives other ON t.employeeId = other.employee_id AND other.delete_type = 0
WHERE
(
(
fund.fund_start_time IS NULL
OR fund.fund_start_time = ''
)
AND(
fund.fund_end_time IS NULL
OR fund.fund_end_time = ''
)
)
AND(
(
social.social_start_time IS NULL
OR social.social_start_time = ''
)
AND(
social.social_end_time IS NULL
OR social.social_end_time = ''
)
)
AND(
(
other.other_start_time IS NULL
OR other.other_start_time = ''
)
AND(
other.other_end_time IS NULL
OR other.other_end_time = ''
)
)
)a
</select>
<update id="updateByEmployeeIdAndBillMonth"
parameterType="com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO">
UPDATE hrsa_bill_detail
<set>
<if test="null != socialPerJson and '' != socialPerJson">social_per_json = #{socialPerJson},</if>
<if test="null != socialPerSum and '' != socialPerSum">social_per_sum = #{socialPerSum},</if>
<if test="null != fundPerJson and '' != fundPerJson">fund_per_json = #{fundPerJson},</if>
<if test="null != fundPerSum and '' != fundPerSum">fund_per_sum = #{fundPerSum},</if>
<if test="null != otherPerJson and '' != otherPerJson">other_per_json = #{otherPerJson},</if>
<if test="null != otherPerSum and '' != otherPerSum">other_per_sum = #{otherPerSum},</if>
<if test="null != perSum and '' != perSum">per_sum = #{perSum},</if>
<if test="null != comSum and '' != comSum">com_sum = #{comSum},</if>
<if test="null != socialComJson and '' != socialComJson">social_com_json = #{socialComJson},</if>
<if test="null != socialComSum and '' != socialComSum">social_com_sum = #{socialComSum},</if>
<if test="null != fundComJson and '' != fundComJson">fund_com_json = #{fundComJson},</if>
<if test="null != fundComSum and '' != fundComSum">fund_com_sum = #{fundComSum},</if>
<if test="null != otherComJson and '' != otherComJson">other_com_json = #{otherComJson},</if>
<if test="null != otherComSum and '' != otherComSum">other_com_sum = #{otherComSum},</if>
<if test="null != socialSum and '' != socialSum">social_sum = #{socialSum},</if>
<if test="null != fundSum and '' != fundSum">fund_sum = #{fundSum},</if>
<if test="null != otherSum and '' != otherSum">other_sum = #{otherSum},</if>
<if test="null != total and '' != total">total = #{total},</if>
<if test="null != updateTime">update_time = #{updateTime},</if>
<if test="null != supplementaryMonth and '' != supplementaryMonth">supplementary_month =
#{supplementaryMonth},
</if>
</set>
WHERE id = #{id}
</update>
<select id="listAll" resultMap="BaseResultMap">
SELECT
<include refid="baseColumnsNoJoin"/>
FROM hrsa_bill_detail t
WHERE delete_type = 0
</select>
<update id="batchUpdate" parameterType="java.util.List">
update hrsa_bill_detail
<trim prefix="set" suffixOverrides=",">
<trim prefix="social_payment_base_string =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.socialPaymentBaseString!=null">
when id=#{item.id} then #{item.socialPaymentBaseString}
</if>
</foreach>
</trim>
<trim prefix="fund_payment_base_string =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.fundPaymentBaseString!=null">
when id=#{item.id} then #{item.fundPaymentBaseString}
</if>
</foreach>
</trim>
<trim prefix="other_payment_base_string =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.otherPaymentBaseString!=null">
when id=#{item.id} then #{item.otherPaymentBaseString}
</if>
</foreach>
</trim>
<trim prefix="social_payment_com_base_string =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.socialPaymentComBaseString!=null">
when id=#{item.id} then #{item.socialPaymentComBaseString}
</if>
</foreach>
</trim>
<trim prefix="fund_payment_com_base_string =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.fundPaymentComBaseString!=null">
when id=#{item.id} then #{item.fundPaymentComBaseString}
</if>
</foreach>
</trim>
<trim prefix="other_payment_com_base_string =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.otherPaymentComBaseString!=null">
when id=#{item.id} then #{item.otherPaymentComBaseString}
</if>
</foreach>
</trim>
<trim prefix="social_per_json =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.socialPerJson!=null">
when id=#{item.id} then #{item.socialPerJson}
</if>
</foreach>
</trim>
<trim prefix="social_per_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.socialPerSum!=null">
when id=#{item.id} then #{item.socialPerSum}
</if>
</foreach>
</trim>
<trim prefix="fund_per_json =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.fundPerJson!=null">
when id=#{item.id} then #{item.fundPerJson}
</if>
</foreach>
</trim>
<trim prefix="fund_per_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.fundPerSum!=null">
when id=#{item.id} then #{item.fundPerSum}
</if>
</foreach>
</trim>
<trim prefix="other_per_json =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.otherPerJson!=null">
when id=#{item.id} then #{item.otherPerJson}
</if>
</foreach>
</trim>
<trim prefix="other_per_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.otherPerSum!=null">
when id=#{item.id} then #{item.otherPerSum}
</if>
</foreach>
</trim>
<trim prefix="per_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.perSum!=null">
when id=#{item.id} then #{item.perSum}
</if>
</foreach>
</trim>
<trim prefix="social_com_json =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.socialComJson!=null">
when id=#{item.id} then #{item.socialComJson}
</if>
</foreach>
</trim>
<trim prefix="social_com_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.socialComSum!=null">
when id=#{item.id} then #{item.socialComSum}
</if>
</foreach>
</trim>
<trim prefix="fund_com_json =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.fundComJson!=null">
when id=#{item.id} then #{item.fundComJson}
</if>
</foreach>
</trim>
<trim prefix="fund_com_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.fundComSum!=null">
when id=#{item.id} then #{item.fundComSum}
</if>
</foreach>
</trim>
<trim prefix="other_com_json =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.otherComJson!=null">
when id=#{item.id} then #{item.otherComJson}
</if>
</foreach>
</trim>
<trim prefix="other_com_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.otherComSum!=null">
when id=#{item.id} then #{item.otherComSum}
</if>
</foreach>
</trim>
<trim prefix="com_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.comSum!=null">
when id=#{item.id} then #{item.comSum}
</if>
</foreach>
</trim>
<trim prefix="social_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.socialSum!=null">
when id=#{item.id} then #{item.socialSum}
</if>
</foreach>
</trim>
<trim prefix="fund_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.fundSum!=null">
when id=#{item.id} then #{item.fundSum}
</if>
</foreach>
</trim>
<trim prefix="other_sum =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.otherSum!=null">
when id=#{item.id} then #{item.otherSum}
</if>
</foreach>
</trim>
<trim prefix="total =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.total!=null">
when id=#{item.id} then #{item.total}
</if>
</foreach>
</trim>
<trim prefix="delete_type =case" suffix="end,">
<foreach collection="collection" item="item" index="index">
<if test="item.deleteType!=null">
when id=#{item.id} then #{item.deleteType}
</if>
</foreach>
</trim>
</trim>
where
id in
<foreach collection="collection" item="item" index="index" separator="," open="(" close=")">
#{item.id}
</foreach>
</update>
<select id="getById" resultMap="BaseResultMap">
SELECT
<include refid="baseColumns"/>
FROM
hrsa_bill_detail t
left join hrmresource e on e.ID = t.employee_id
WHERE t.delete_type = 0
and t.id = #{id}
</select>
<update id="updateById" parameterType="com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO">
UPDATE hrsa_bill_detail
<set>
<if test="null != socialPerJson and '' != socialPerJson">social_per_json = #{socialPerJson},</if>
<if test="null != socialPerSum and '' != socialPerSum">social_per_sum = #{socialPerSum},</if>
<if test="null != fundPerJson and '' != fundPerJson">fund_per_json = #{fundPerJson},</if>
<if test="null != fundPerSum and '' != fundPerSum">fund_per_sum = #{fundPerSum},</if>
<if test="null != otherPerJson and '' != otherPerJson">other_per_json = #{otherPerJson},</if>
<if test="null != otherPerSum and '' != otherPerSum">other_per_sum = #{otherPerSum},</if>
<if test="null != perSum and '' != perSum">per_sum = #{perSum},</if>
<if test="null != comSum and '' != comSum">com_sum = #{comSum},</if>
<if test="null != socialComJson and '' != socialComJson">social_com_json = #{socialComJson},</if>
<if test="null != socialComSum and '' != socialComSum">social_com_sum = #{socialComSum},</if>
<if test="null != fundComJson and '' != fundComJson">fund_com_json = #{fundComJson},</if>
<if test="null != fundComSum and '' != fundComSum">fund_com_sum = #{fundComSum},</if>
<if test="null != otherComJson and '' != otherComJson">other_com_json = #{otherComJson},</if>
<if test="null != otherComSum and '' != otherComSum">other_com_sum = #{otherComSum},</if>
<if test="null != socialSum and '' != socialSum">social_sum = #{socialSum},</if>
<if test="null != fundSum and '' != fundSum">fund_sum = #{fundSum},</if>
<if test="null != otherSum and '' != otherSum">other_sum = #{otherSum},</if>
<if test="null != total and '' != total">total = #{total},</if>
<if test="null != updateTime">update_time = #{updateTime},</if>
<if test="null != supplementaryMonth and '' != supplementaryMonth">supplementary_month =
#{supplementaryMonth},
</if>
</set>
WHERE id = #{id}
</update>
<delete id="deleteRecessionData" parameterType="com.engine.salary.entity.siaccount.po.InsuranceAccountDetailPO">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE delete_type = 0
AND bill_month = #{billMonth}
AND payment_status = #{paymentStatus}
AND payment_organization = #{paymentOrganization}
AND supplementary_month = #{supplementaryMonth}
AND employee_id = #{employeeId}
</delete>
<delete id="deleteByIds">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE delete_type = 0
<if test="ids != null and ids.size()>0">
AND id IN
<foreach collection="ids" open="(" item="id" separator="," close=")">
#{id}
</foreach>
</if>
</delete>
<delete id="deleteByEmpIds">
UPDATE hrsa_bill_detail
SET delete_type = 1
WHERE delete_type = 0
AND bill_month = #{billMonth}
AND payment_organization = #{paymentOrganization}
AND employee_id in
<foreach collection="employeeIds" open="(" item="employeeId" separator="," close=")">
#{employeeId}
</foreach>
</delete>
<select id="getOneByBpep" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id,t.social_per_json,t.social_com_json,
t.fund_per_json,t.fund_com_json,t.other_per_json,
t.other_com_json,t.social_per_sum,t.social_com_sum,
t.fund_per_sum,t.fund_com_sum,t.other_per_sum,
t.other_com_sum,t.per_sum,t.com_sum,t.payment_organization,
t.total, t.social_sum, t.fund_sum, t.other_sum,
t.social_scheme_id, t.fund_scheme_id, t.other_scheme_id
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.bill_month = #{billMonth}
AND t.payment_status = #{paymentStatus}
AND t.payment_organization = #{paymentOrganization}
AND t.employee_id = #{employeeId}
</select>
<select id="queryBalanceList" resultMap="BaseResultMap">
SELECT
t.id,t.employee_id,t.social_per_json,t.social_com_json,
t.fund_per_json,t.fund_com_json,t.other_per_json,
t.other_com_json,t.social_per_sum,t.social_com_sum,
t.fund_per_sum,t.fund_com_sum,t.other_per_sum,
t.other_com_sum,t.per_sum,t.com_sum,t.payment_organization,
t.total, t.social_sum, t.fund_sum, t.other_sum, t.bill_month
FROM
hrsa_bill_detail t
WHERE t.delete_type = 0
AND t.bill_month = #{billMonth}
AND t.payment_status = 4
AND t.payment_organization = #{paymentOrganization}
AND t.employee_id = #{employeeId}
</select>
</mapper>