290 lines
12 KiB
XML
290 lines
12 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.bonus.gzrn.rnbmw.person.dao.GeneratePayrollDao">
|
|
<select id="getPayrollList" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
select bsb.id ,
|
|
bsb.name ,
|
|
bsb.start_time ,
|
|
bsb.end_time ,
|
|
bsb.creator ,
|
|
bsb.create_time ,
|
|
bsb.people_num ,
|
|
bsb.salary_total ,
|
|
bp.name as proName,
|
|
pc.org_name as companyName
|
|
from bm_salary_book bsb
|
|
left join pm_company pc on pc.ID = bsb.company_id
|
|
left join bm_project bp on bp.ID = bsb.project_id
|
|
where 1=1
|
|
<if test="params.companyId != null and params.companyId != ''">
|
|
and pc.ID = #{params.companyId}
|
|
</if>
|
|
<if test="params.proId != null and params.proId != ''">
|
|
and bsb.project_id = #{params.proId}
|
|
</if>
|
|
<if test="params.keyWord != null and params.keyWord != '' ">
|
|
and (
|
|
bsb.name like concat ('%',#{params.keyWord},'%') or
|
|
bsb.creator like concat ('%',#{params.keyWord},'%') or
|
|
pc.org_name like concat ('%',#{params.keyWord},'%') or
|
|
bp.name like concat ('%',#{params.keyWord},'%')
|
|
)
|
|
</if>
|
|
limit #{offset}, #{limit}
|
|
</select>
|
|
|
|
<select id="getPayrollListCount" resultType="java.lang.Integer">
|
|
SELECT COUNT(*)
|
|
from bm_salary_book bsb
|
|
left join pm_company pc on pc.ID = bsb.company_id
|
|
left join bm_project bp on bp.Id = bsb.project_id
|
|
where 1=1
|
|
<if test="params.companyId != null and params.companyId != ''">
|
|
and pc.ID = #{params.companyId}
|
|
</if>
|
|
<if test="params.proId != null and params.proId != '' ">
|
|
and bsb.project_id = #{params.proId}
|
|
</if>
|
|
<if test="params.keyWord != null and params.keyWord != '' ">
|
|
and (
|
|
bsb.name like concat ('%',#{params.keyWord},'%') or
|
|
bsb.creator like concat ('%',#{params.keyWord},'%') or
|
|
pc.org_name like concat ('%',#{params.keyWord},'%') or
|
|
bp.name like concat ('%',#{params.keyWord},'%')
|
|
)
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getAll" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
select sbd.id_number ,
|
|
sbd.name as personName,
|
|
sbd.bank_number ,
|
|
sbd.bank_name ,
|
|
sbd.bank_brank ,
|
|
sbd.payable_amount ,
|
|
sbd.payin_amount ,
|
|
sbd.pay_date ,
|
|
sbd.pay_month ,
|
|
sbd.is_reissue ,
|
|
sbd.work_days ,
|
|
sbd.finance_sure ,
|
|
sbd.person_sure ,
|
|
sbd.submit_no ,
|
|
sbd.bank_handleno
|
|
from salary_book_details sbd
|
|
where sbd.salary_id = #{params.id}
|
|
<if test="params.keyWord != null and params.keyWord != ''">
|
|
and (
|
|
sbd.name like concat ('%',#{params.keyWord},'%') OR
|
|
sbd.id_number like concat ('%',#{params.keyWord},'%')
|
|
)
|
|
</if>
|
|
limit #{offset}, #{limit}
|
|
</select>
|
|
|
|
<select id="getPersonInfo" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
select sbd.id_number ,
|
|
sbd.name as personName,
|
|
sbd.bank_number ,
|
|
sbd.bank_name ,
|
|
sbd.bank_brank ,
|
|
sbd.payable_amount ,
|
|
sbd.payin_amount ,
|
|
sbd.pay_date ,
|
|
sbd.pay_month ,
|
|
sbd.is_reissue ,
|
|
sbd.work_days ,
|
|
sbd.finance_sure ,
|
|
sbd.person_sure ,
|
|
sbd.submit_no ,
|
|
sbd.bank_handleno
|
|
from salary_book_details sbd
|
|
where sbd.salary_id = #{id} and sbd.id_number = #{idNumber}
|
|
</select>
|
|
|
|
<select id="getPayrollPersonCount" resultType="java.lang.Integer">
|
|
SELECT COUNT(*)
|
|
from salary_book_details sbd
|
|
where sbd.salary_id = #{params.id}
|
|
<if test="params.keyWord != null and params.keyWord != ''">
|
|
and (
|
|
sbd.name like concat ('%',#{params.keyWord},'%') OR
|
|
sbd.id_number like concat ('%',#{params.keyWord},'%')
|
|
)
|
|
</if>
|
|
</select>
|
|
|
|
<update id="updatePayroll">
|
|
update salary_book_details set payable_amount = #{payableAmount},payin_amount = #{payinAmount},
|
|
pay_date = #{payDate},pay_month = #{payMonth},is_reissue = #{isReissue},work_days = #{workDays},
|
|
finance_sure = #{financeSure},person_sure = #{personSure},submit_no = #{submitNo},bank_handleno =#{bankHandleno}
|
|
where id_number = #{idNumber} and salary_id = #{id}
|
|
</update>
|
|
|
|
<delete id="deletePayrollPerson">
|
|
delete from salary_book_details where id_number = #{idNumber}
|
|
</delete>
|
|
<delete id="deletePayroll">
|
|
delete from bm_salary_book where id = #{id}
|
|
</delete>
|
|
|
|
<select id="getWorkDayByIdNumber" resultType="java.lang.String">
|
|
SELECT
|
|
SUM(ffc.WORK_HOURS+ffc.OVER_HOURS) as workDays,ffc.ID_NUMBER
|
|
FROM fc_face_contrast ffc
|
|
WHERE
|
|
ffc.ID_NUMBER = #{idNumber}
|
|
AND ffc.CURRENT_DAY BETWEEN #{startDay} and #{endDay}
|
|
AND AUDIT_STATUS = 1
|
|
</select>
|
|
|
|
<!--//根据公司工程和时间获取生成工资册数据 -->
|
|
<select id="getPayrollDetails" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
SELECT
|
|
ffc.`NAME` as personName,
|
|
ffc.ID_NUMBER ,
|
|
bwc.wageApprovedWay as salaryCalcType,
|
|
bwc.wageCriterion as salaryCalcSta,
|
|
bwp.BANK_CARD as bankNumber,
|
|
bwp.BANK_NAME ,
|
|
bwp.ROLL_BANK_NAME as bankBrank,
|
|
sdd.`name` as workType,
|
|
count(ffc.ID_NUMBER) as workDays,
|
|
bwr.EIN_TIME einTime,
|
|
bwr.EXIT_TIME exitTime,
|
|
bwc.wageApprovedWay wageApprovedWay,
|
|
bwc.wageCriterion wageCriterion
|
|
FROM fc_face_contrast ffc
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_record bwr ON bwr.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
where ffc.PRO_ID = #{params.proId} and ffc.CURRENT_DAY BETWEEN #{params.startTime} and #{params.endTime} and ffc.is_active = 1
|
|
GROUP BY ffc.ID_NUMBER
|
|
limit #{offset}, #{limit}
|
|
</select>
|
|
|
|
|
|
|
|
<select id="getPayrollDetailsCount" resultType="java.lang.Integer">
|
|
SELECT COUNT(1)
|
|
from(
|
|
select ffc.ID_NUMBER
|
|
FROM fc_face_contrast ffc
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_record bwr ON bwr.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
where ffc.PRO_ID = #{params.proId} and ffc.CURRENT_DAY BETWEEN #{params.startTime} and #{params.endTime} and ffc.is_active = 1
|
|
GROUP BY ffc.ID_NUMBER) r
|
|
</select>
|
|
|
|
<insert id="insertPayroll" useGeneratedKeys="true" keyProperty="id">
|
|
insert into bm_salary_book (company_id,project_id,`name`,start_time,end_time,create_time,creator)
|
|
values(#{companyId},#{proId},#{name},#{startTime},#{endTime},now(),#{creator})
|
|
</insert>
|
|
|
|
<insert id="insertSalaryDetails">
|
|
insert into salary_book_details (salary_id,`name`,pro_id,id_number,bank_number,bank_name,bank_brank,payable_amount,payin_amount,work_days,work_type,salary_calc_type,salary_calc_sta,pay_month)
|
|
values(#{id},#{personName},#{proId},#{idNumber},#{bankNumber},#{bankName},#{bankBrank},#{payinAmount},#{payinAmount},#{workDays},#{workType},#{salaryCalcType},#{salaryCalcSta},now())
|
|
</insert>
|
|
|
|
<select id="getProNameById" resultType="string">
|
|
select bp.name
|
|
from bm_project bp
|
|
where bp.ID = #{proId}
|
|
</select>
|
|
|
|
<select id="getNameById" resultType="string">
|
|
select su.USERNAME
|
|
from sys_user su
|
|
where su.ID = #{uploadId}
|
|
</select>
|
|
|
|
<update id="insertOtherSalaryDetails">
|
|
update salary_book_details set pay_date = #{payDate},pay_month = #{payMonth},finance_sure = #{financeSure},person_sure = #{personSure},submit_no = #{submitNo},bank_handleno = #{bankHandleno}
|
|
where salary_id = #{id}
|
|
</update>
|
|
|
|
<select id="getSums" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
select count(id_number) as peopleNum, sum(payin_amount) as salaryTotal
|
|
from salary_book_details sbd
|
|
where salary_id = #{id}
|
|
</select>
|
|
|
|
<update id="insertOtherPayroll">
|
|
update bm_salary_book set people_num = #{peopleNum},salary_total = #{salaryTotal}
|
|
where id = #{id}
|
|
</update>
|
|
|
|
<select id="getExportPayroll" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
SELECT
|
|
ffc.`NAME` as personName,
|
|
ffc.ID_NUMBER ,
|
|
bwc.wageApprovedWay as salaryCalcType,
|
|
bwc.wageCriterion as salaryCalcSta,
|
|
bwp.BANK_CARD as bankNumber,
|
|
bwp.BANK_NAME ,
|
|
bwp.ROLL_BANK_NAME as bankBrank,
|
|
sdd.`name` as workType,
|
|
count(ffc.ID_NUMBER) as workDays,
|
|
case when bwc.wageApprovedWay = '天' then (bwc.wageCriterion * count(ffc.ID_NUMBER)) when bwc.wageApprovedWay = '月' then (bwc.wageCriterion/30 * count(ffc.ID_NUMBER)) end as payinAmount
|
|
FROM fc_face_contrast ffc
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_record bwr ON bwr.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
where ffc.PRO_ID = #{params.proId} and ffc.CURRENT_DAY BETWEEN #{params.startTime} and #{params.endTime}
|
|
GROUP BY ffc.ID_NUMBER
|
|
</select>
|
|
|
|
<!--//根据公司工程和时间获取生成工资册数据-->
|
|
<select id="getPayrollDetailsInfo" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
SELECT
|
|
ffc.`NAME` as personName,
|
|
ffc.ID_NUMBER ,
|
|
bwc.wageApprovedWay as salaryCalcType,
|
|
bwc.wageCriterion as salaryCalcSta,
|
|
bwp.BANK_CARD as bankNumber,
|
|
bwp.BANK_NAME ,
|
|
bwp.ROLL_BANK_NAME as bankBrank,
|
|
sdd.`name` as workType,
|
|
count(ffc.ID_NUMBER) as workDays,
|
|
case when bwc.wageApprovedWay = '天' then (bwc.wageCriterion * count(ffc.ID_NUMBER)) when bwc.wageApprovedWay = '月' then (bwc.wageCriterion/30 * count(ffc.ID_NUMBER)) end as payinAmount
|
|
FROM fc_face_contrast ffc
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN bm_worker_record bwr ON bwr.ID_NUMBER = ffc.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
where ffc.PRO_ID = #{proId} and ffc.CURRENT_DAY BETWEEN #{startTime} and #{endTime}
|
|
GROUP BY ffc.ID_NUMBER
|
|
</select>
|
|
|
|
<select id="exportPayrollInfo" resultType="com.bonus.gzrn.rnbmw.person.entity.GeneratePayrollBean">
|
|
select sbd.id_number ,
|
|
sbd.name as personName,
|
|
sbd.bank_number ,
|
|
sbd.bank_name ,
|
|
sbd.bank_brank ,
|
|
sbd.payable_amount ,
|
|
sbd.payin_amount ,
|
|
sbd.pay_date ,
|
|
sbd.pay_month ,
|
|
sbd.is_reissue ,
|
|
sbd.work_days ,
|
|
sbd.finance_sure ,
|
|
sbd.person_sure ,
|
|
sbd.submit_no ,
|
|
sbd.bank_handleno ,
|
|
bsb.start_time ,
|
|
bsb.end_time ,
|
|
bp.`name` proName
|
|
from salary_book_details sbd
|
|
LEFT JOIN bm_salary_book bsb on bsb.id = sbd.salary_id
|
|
LEFT JOIN bm_project bp on bp.ID = bsb.project_id
|
|
where sbd.salary_id = #{params.id}
|
|
</select>
|
|
|
|
</mapper> |