hd_real_name/target/classes/mappers/person/UploadPayrollMapper.xml

238 lines
10 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.UploadPayrollDao">
<select id="getPayrollList" resultType="com.bonus.gzrn.rnbmw.person.entity.UploadPayrollBean">
select sbu.id ,
sbu.name ,
sbu.creator ,
sbu.create_time ,
sbu.people_num ,
sbu.salary_total ,
sbu.remark ,
sbu.is_push,
sbu.is_handle,
bp.name as proName,
pc.org_name as companyName,
sbu.submitBatchNo
from salary_book_upload sbu
left join pm_company pc on pc.ID = sbu.company_id
left join bm_project bp on bp.ID = sbu.project_id or bp.pro_old_id = sbu.project_id
where sbu.upload_type = #{params.uploadType}
<if test="params.companyId != null and params.companyId != ''">
and pc.ID = #{params.companyId}
</if>
<if test="params.proId != null and params.proId != ''">
and (sbu.project_id = #{params.proId} or bp.id = #{params.proId})
</if>
<if test="params.keyWord != null and params.keyWord != '' ">
and (
sbu.name like concat ('%',#{params.keyWord},'%') or
sbu.creator like concat ('%',#{params.keyWord},'%') or
pc.org_name like concat ('%',#{params.keyWord},'%') or
bp.name like concat ('%',#{params.keyWord},'%')
)
</if>
ORDER BY sbu.create_time DESC
limit #{offset}, #{limit}
</select>
<select id="getPayrollListCount" resultType="java.lang.Integer">
SELECT COUNT(1)
from salary_book_upload sbu
left join pm_company pc on pc.ID = sbu.company_id
left join bm_project bp on bp.ID = sbu.project_id or bp.pro_old_id = sbu.project_id
where sbu.upload_type = #{params.uploadType}
<if test="params.companyId != null and params.companyId != ''">
and pc.ID = #{params.companyId}
</if>
<if test="params.proId != null and params.proId != ''">
and (sbu.project_id = #{params.proId} or bp.id = #{params.proId})
</if>
<if test="params.keyWord != null and params.keyWord != '' ">
and (
sbu.name like concat ('%',#{params.keyWord},'%') or
sbu.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.UploadPayrollBean">
SELECT
bwp.`name` personName,
bwp.idCard idNumber,
bwp.payRollBankCardNum bankNumber,
bwp.payRollBankName bankBrank,
bwp.payrollBank bankName,
bwp.actualAmount payableAmount,
bwp.totalPayAmount payinAmount,
bwp.garnishedWages,
bwp.balanceDate payDate,
bwp.payMonth ,
bwp.isBackPay isReissue,
bwp.settlementAmount workDays,
bwp.financialMark financeSure,
bwp.personalMark personSure,
bwp.submitBatchNo submitBatchNo,
bwp.extFieldOne bankHandleno
FROM bm_worker_provide_salary_info bwp
where bwp.submitBatchNo = #{params.submitBatchNo}
<if test="params.keyWord != null and params.keyWord != ''">
and (
bwp.name like concat ('%',#{params.keyWord},'%') or
bwp.idCard like concat ('%',#{params.keyWord},'%') or
bwp.payRollBankCardNum like concat ('%',#{params.keyWord},'%') or
bwp.payrollBank like concat ('%',#{params.keyWord},'%') or
bwp.payRollBankName like concat ('%',#{params.keyWord},'%')
)
</if>
limit #{offset}, #{limit}
</select>
<select id="getPayrollPersonCount" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM bm_worker_provide_salary_info bwp
where bwp.submitBatchNo = #{params.submitBatchNo}
<if test="params.keyWord != null and params.keyWord != ''">
and (
bwp.name like concat ('%',#{params.keyWord},'%') or
bwp.idCard like concat ('%',#{params.keyWord},'%') or
bwp.payRollBankCardNum like concat ('%',#{params.keyWord},'%') or
bwp.payrollBank like concat ('%',#{params.keyWord},'%') or
bwp.payRollBankName like concat ('%',#{params.keyWord},'%')
)
</if>
</select>
<insert id="insertPayrollDetails">
insert into bm_worker_provide_salary_info (name,pro_id,idCard,payRollBankCardNum,payRollBankName,payRollBank,actualAmount,totalPayAmount,garnishedWages,settlementAmount,isBackPay,balanceDate,payMonth,financialMark,personalMark,submitBatchNo,extFieldOne)
values(#{personName},#{proId},#{idNumber},#{bankNumber},#{bankBrank},#{bankName},#{payinAmount},#{payableAmount}, #{garnishedWages},#{workDays},#{isReissue},#{payDate},#{payMonth},#{financeSure},#{personSure},#{submitBatchNo},#{bankHandleno} )
</insert>
<select id="getPersonInfo" resultType="com.bonus.gzrn.rnbmw.person.entity.UploadPayrollBean">
select
bwp.`name` personName,
bwp.idCard idNumber,
bwp.payRollBankCardNum bankNumber,
bwp.payRollBankName bankBrank,
bwp.payrollBank bankName,
bwp.actualAmount payableAmount,
bwp.totalPayAmount payinAmount,
bwp.balanceDate payDate,
bwp.payMonth ,
bwp.isBackPay isReissue,
bwp.settlementAmount workDays,
bwp.financialMark financeSure,
bwp.personalMark personSure,
bwp.submitBatchNo submitBatchNo,
bwp.extFieldOne bankHandleno
FROM bm_worker_provide_salary_info bwp
where bwp.submitBatchNo = #{submitBatchNo} and bwp.idCard = #{idNumber}
</select>
<!-- balanceDate = #{payDate}, 发放日期改为从人社厅获取-->
<update id="updatePayroll">
UPDATE bm_worker_provide_salary_info set actualAmount = #{payableAmount} ,
totalPayAmount = #{payinAmount},
payMonth = #{payMonth},
isBackPay = #{isReissue},
settlementAmount = #{workDays},
financialMark = #{financeSure},
personalMark = #{personSure},
submitBatchNo = #{submitBatchNo},
extFieldOne = #{bankHandleno}
WHERE idCard = #{idNumber} and submitBatchNo = #{submitBatchNo}
</update>
<update id="salaryBook">
UPDATE salary_book_upload sbp
SET salary_total = ( SELECT sum( actualAmount ) FROM bm_worker_provide_salary_info WHERE submitBatchNo = #{submitBatchNo} )
WHERE
sbp.submitBatchNo = #{submitBatchNo}
</update>
<delete id="deletePayrollPerson">
delete from bm_worker_provide_salary_info where idCard = #{idNumber} and submitBatchNo = #{submitBatchNo}
</delete>
<delete id="deletePerson">
delete from bm_worker_provide_salary_info where submitBatchNo = #{submitBatchNo}
</delete>
<delete id="deletePayroll">
delete from salary_book_upload where submitBatchNo = #{submitBatchNo};
</delete>
<!--查询身份证是否在施工人员信息中-->
<select id="getWorkerByIdNumber" resultType="com.bonus.gzrn.rnbmw.person.entity.UploadPayrollBean">
select distinct bw.ID_NUMBER as idNumber
from bm_worker bw
WHERE bw.IS_ACTIVE = 1 and bw.ID_NUMBER = #{idNumber}
</select>
<select id="getNameById" resultType="string">
select su.USERNAME
from sys_user su
where su.ID = #{uploadId}
</select>
<insert id="insertPayroll">
insert into salary_book_upload (company_id,project_id,name,creator,create_time,people_num,
salary_total,is_push,remark,is_handle,submitBatchNo, upload_type)
values (#{companyId},#{proId},#{name},#{creator},now(),#{peopleNum},
#{salaryTotal},'0',#{remark},'0',#{submitBatchNo},#{uploadType})
</insert>
<select id="getSalaryInfo" resultType="com.bonus.gzrn.rnbmw.person.entity.UploadPayrollBean">
select bwc.wageApprovedWay as salaryCalcType,bwc.wageCriterion as salaryCalcSta
from bm_worker_contract bwc
WHERE bwc.idCard = #{idNumber} and bwc.is_active = '1' limit 0,1
</select>
<select id="getWorkListById" resultType="com.bonus.gzrn.rnbmw.person.entity.UploadPayrollBean">
select bw.ID_NUMBER
from bm_worker bw
where bw.IS_ACTIVE = 1 and bw.ID_NUMBER = #{idNumber}
</select>
<select id="getpayrollPerson" resultType="com.bonus.gzrn.rnbmw.person.entity.UploadPayrollBean" parameterType="com.bonus.gzrn.rnbmw.person.entity.UploadPayrollBean">
select bwp.idCard idNumber
from bm_worker_provide_salary_info bwp
where bwp.idCard = #{idNumber} and bwp.submitBatchNo = #{submitBatchNo}
</select>
<select id="comparisonBatchNo" resultType="java.lang.Integer">
SELECT
COUNT(1)
FROM
salary_book_upload
WHERE
submitBatchNo = #{submitBatchNo}
</select>
<select id="getPersonPushStatus"
resultType="com.bonus.gzrn.rnbmw.push.entity.wages.WorkerProvideSalaryInfoBean">
SELECT
bwpsi.`name`,
bwpsi.idCard,
bwph.id_number
FROM bm_worker_provide_salary_info bwpsi
LEFT JOIN bm_worker_push_history bwph ON bwph.pro_id = bwpsi.pro_id
and bwph.id_number = bwpsi.idCard and bwph.is_active = '1'
left join bm_worker_record bwr on bwr.ID_NUMBER = bwpsi.idCard
WHERE bwpsi.submitBatchNo = #{submitBatchNo}
and if((bwr.ein_status = 0 and bwr.is_ein_push = 1), true,
bwr.PROJECT_ID != bwpsi.pro_id)
GROUP BY bwpsi.idCard
</select>
<select id="getOldProId" resultType="java.lang.String">
select IFNULL( pro_old_id, id ) as proId from bm_project
where id = #{proId}
</select>
<select id="getproIdByIdNumber" resultType="java.lang.String">
select PROJECT_ID from bm_worker_record where ID_NUMBER = #{idCard}
</select>
</mapper>