82 lines
4.1 KiB
XML
82 lines
4.1 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.sixHundred.dao.BankIssuingHundredDao">
|
|
|
|
<select id="selectBankIssuingHundred"
|
|
resultType="com.bonus.gzrn.rnbmw.sixHundred.entity.BankIssuingHundredBean">
|
|
select
|
|
FORMAT((count(a.ID_NUMBER) - count(yearwage.idCard)) / count(a.ID_NUMBER) * 100, 0) as proportion,
|
|
IFNULL(IFNULL(FORMAT(avg(nowwage.actualAmount), 0), 0),
|
|
IFNULL(FORMAT(avg(lastwage.actualAmount), 0), 0)) as averageWage,
|
|
IFNULL(IFNULL(sum(nowwage.actualAmount > 100000), 0),
|
|
IFNULL(sum(lastwage.actualAmount > 100000), 0)) as monthOver100000,
|
|
sum(yearwage.actualAmount > 300000) as yearOver300000,
|
|
sum(CASE WHEN MONTH ( CURRENT_DATE ( ) ) - 2 >= MONTH ( maxATT ) THEN 1
|
|
WHEN MONTH ( CURRENT_DATE ( ) ) - 2 >= MONTH ( maxWage ) THEN 1 ELSE 0 END
|
|
) AS departureNotPushPersonNum
|
|
from (
|
|
select bwr.ID_NUMBER from bm_worker_record bwr
|
|
left join fc_face_contrast ffc on ffc.ID_NUMBER = bwr.ID_NUMBER and ffc.is_push = 1 and ffc.CURRENT_DAY like concat
|
|
('%',DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m'),'%')
|
|
where bwr.PROJECT_ID = #{proId} AND bwr.is_ein_push = 1 AND bwr.ein_status = 1
|
|
GROUP BY ffc.ID_NUMBER
|
|
) a left join (
|
|
select bwpsi.idCard, bwpsi.actualAmount from bm_worker_provide_salary_info bwpsi
|
|
where bwpsi.pro_id = #{proId} and bwpsi.is_push = 1
|
|
and bwpsi.payMonth = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y%m')
|
|
) lastwage on lastwage.idCard = a.ID_NUMBER
|
|
left join (
|
|
select bwpsi.idCard, bwpsi.actualAmount from bm_worker_provide_salary_info bwpsi
|
|
where bwpsi.pro_id = #{proId} and bwpsi.is_push = 1
|
|
and bwpsi.payMonth = DATE_FORMAT(MONTH(CURDATE()), '%Y%m')
|
|
) nowwage on nowwage.idCard = a.ID_NUMBER
|
|
left join (
|
|
select bwpsi.idCard, sum(bwpsi.actualAmount) as actualAmount from bm_worker_provide_salary_info bwpsi
|
|
where bwpsi.pro_id = #{proId} and bwpsi.is_push = 1
|
|
and bwpsi.payMonth like concat ('%', YEAR(CURDATE()),'%')
|
|
GROUP BY bwpsi.idCard
|
|
) yearwage on yearwage.idCard = a.ID_NUMBER
|
|
left join (
|
|
SELECT bw.ID_NUMBER, MAX( ffc.CURRENT_DAY ) AS maxAtt, MAX( bwpsi.payMonth ) AS maxWage
|
|
FROM bm_worker bw
|
|
LEFT JOIN bm_worker_record bwr ON bwr.ID_NUMBER = bw.ID_NUMBER
|
|
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER AND is_push = 1
|
|
LEFT JOIN bm_worker_provide_salary_info bwpsi ON bwpsi.idCard = bwr.ID_NUMBER and bwpsi.is_push = 1
|
|
WHERE bw.ID_NUMBER IS NOT NULL AND bwr.PROJECT_ID = #{proId}
|
|
AND bwr.is_ein_push = 1 AND bwr.ein_status = 1
|
|
GROUP BY bw.ID_NUMBER
|
|
) max on max.ID_NUMBER = a.ID_NUMBER
|
|
</select>
|
|
|
|
<select id="selectYearOver300000Table"
|
|
resultType="com.bonus.gzrn.rnbmw.sixHundred.entity.SixHundredContentBean">
|
|
select a.name, a.idCard from (
|
|
select bw.name, bwpsi.idCard, sum(bwpsi.actualAmount) as actualAmount from bm_worker_provide_salary_info bwpsi
|
|
left join bm_worker bw on bw.ID_NUMBER = bwpsi.idCard
|
|
where bwpsi.pro_id = #{proId} and bwpsi.is_push = 1
|
|
and bwpsi.payMonth like concat ('%', YEAR(CURDATE()),'%')
|
|
GROUP BY bwpsi.idCard
|
|
) a where a.actualAmount > 300000
|
|
</select>
|
|
|
|
<select id="selectMonthOver100000Table"
|
|
resultType="com.bonus.gzrn.rnbmw.sixHundred.entity.SixHundredContentBean">
|
|
SELECT a.NAME, a.idCard FROM (
|
|
SELECT a.NAME, a.idCard, IFNULL( nowwage.actualAmount, a.actualAmount ) AS actualAmount FROM
|
|
(
|
|
SELECT bw.NAME, bwpsi.idCard, bwpsi.actualAmount FROM bm_worker_provide_salary_info bwpsi
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwpsi.idCard
|
|
WHERE bwpsi.pro_id = #{proId} AND bwpsi.is_push = 1
|
|
AND bwpsi.payMonth = DATE_FORMAT( DATE_SUB( CURDATE( ), INTERVAL 1 MONTH ), '%Y%m' )
|
|
) a
|
|
LEFT JOIN (
|
|
SELECT bw.NAME, bwpsi.idCard, bwpsi.actualAmount FROM bm_worker_provide_salary_info bwpsi
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwpsi.idCard
|
|
WHERE bwpsi.pro_id = #{proId} AND bwpsi.is_push = 1
|
|
AND bwpsi.payMonth = DATE_FORMAT( MONTH ( CURDATE( ) ), '%Y%m' )
|
|
) nowwage ON nowwage.idCard = a.idCard
|
|
) a
|
|
WHERE a.actualAmount > 100000
|
|
</select>
|
|
</mapper> |