699 lines
25 KiB
XML
699 lines
25 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.push.dao.InfoPushDao">
|
|
|
|
<insert id="addMissEnum" keyColumn="id" useGeneratedKeys="true" keyProperty="id">
|
|
insert into bm_miss_enum(china_des,eng_des) value(#{chinaDes},#{engDes})
|
|
</insert>
|
|
|
|
<insert id="insertFile">
|
|
update bm_miss_enum set pic = #{value} where id = #{key}
|
|
</insert>
|
|
|
|
<update id="updateMissEnumById">
|
|
update bm_miss_enum set china_des = #{chinaDes},eng_des = #{engDes} where id = #{id}
|
|
</update>
|
|
|
|
<delete id="delMissEnum">
|
|
update bm_miss_enum set is_active = '0' where id = #{id}
|
|
</delete>
|
|
|
|
<select id="getInfoPushCount" resultType="java.lang.Integer">
|
|
SELECT
|
|
COUNT(1)
|
|
FROM(
|
|
SELECT
|
|
a.proId
|
|
FROM (
|
|
SELECT
|
|
IFNULL(bpbr.bid_pro_id,bp.id) AS proId,
|
|
bp.pro_old_id AS proOldId,
|
|
IFNULL(bpbr.pro_name,bp.name) AS proName,
|
|
bwr.ein_status,
|
|
bwp.ROLL_BANK_NAME,
|
|
bwp.BANK_NAME,
|
|
bw.ID_NUMBER,
|
|
bwr.FOREMAN_IDNUMBER,
|
|
bwr.PRINCIPAL_IDNUMBER,
|
|
bwc.idCard,
|
|
bwr.is_ein_push,
|
|
bwc.is_push,
|
|
sdd.NAME,
|
|
bp.company_id,
|
|
bp.is_push AS proPushStatus ,
|
|
FIND_IN_SET('1',bpbr.is_multiple) as isMultiple
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bwr.ID_NUMBER and bwc.IS_ACTIVE = '1'
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
LEFT JOIN bm_project_bid_relation bpbr ON FIND_IN_SET(bp.id,bpbr.bid_pro_id)>0 AND bpbr.is_active = '1'
|
|
WHERE bp.is_active = 1 and
|
|
IFNULL(sdd.NAME,'') != '管理人员' and bp.is_active = '1'
|
|
<if test="params.orgId !=null and params.orgId !=''">
|
|
and bp.company_id=#{params.orgId}
|
|
</if>
|
|
<if test="params.proPushStatus !=null and params.proPushStatus !=''">
|
|
and bp.is_push=#{params.proPushStatus}
|
|
</if>
|
|
GROUP BY bwr.ID_NUMBER
|
|
) a
|
|
<where>
|
|
<if test="params.proId !=null and params.proId !=''">
|
|
and a.proId=#{params.proId}
|
|
</if>
|
|
</where>
|
|
GROUP BY a.proId
|
|
)b
|
|
|
|
</select>
|
|
|
|
<select id="getInfoPushList" resultType="com.bonus.gzrn.rnbmw.push.entity.InfoPushBean">
|
|
SELECT
|
|
a.proId,
|
|
a.proOldId,
|
|
a.proName,
|
|
SUM( a.ein_status ) AS onJobNum,
|
|
SUM(
|
|
IF
|
|
(
|
|
( IFNULL( a.ROLL_BANK_NAME, 'ooo' ) != 'ooo' OR IFNULL( a.BANK_NAME, 'ooo' ) != 'ooo' )
|
|
AND LENGTH( a.ID_NUMBER ) = 18
|
|
AND LENGTH( a.FOREMAN_IDNUMBER ) = 18
|
|
AND LENGTH( a.PRINCIPAL_IDNUMBER ) = 18
|
|
AND a.ein_status = '1',
|
|
'1',
|
|
'0'
|
|
)
|
|
) AS intactOnJobNum,
|
|
SUM( IF ( a.ein_status = '0' AND a.is_ein_push = '1', '1', '0' ) ) AS notOnJobNum,
|
|
SUM(
|
|
IF
|
|
(
|
|
( IFNULL( a.ROLL_BANK_NAME, 'ooo' ) != 'ooo' OR IFNULL( a.BANK_NAME, 'ooo' ) != 'ooo' )
|
|
AND LENGTH( a.ID_NUMBER ) = 18
|
|
AND LENGTH( a.FOREMAN_IDNUMBER ) = 18
|
|
AND LENGTH( a.PRINCIPAL_IDNUMBER ) = 18
|
|
AND a.ein_status = '0'
|
|
AND a.is_ein_push = '1',
|
|
'1',
|
|
'0'
|
|
)
|
|
) AS intactNotOnJobNum,
|
|
SUM( IF ( a.ein_status = '1' AND a.is_ein_push = '1', '1', '0' ) ) AS onJobPushNum,
|
|
SUM( IF ( a.ein_status = '0' AND a.is_ein_push = '1', '1', '0' ) ) AS notOnJobPushNum,
|
|
SUM(
|
|
IF
|
|
(
|
|
( IFNULL( a.ROLL_BANK_NAME, 'ooo' ) != 'ooo' OR IFNULL( a.BANK_NAME, 'ooo' ) != 'ooo' )
|
|
AND LENGTH( a.ID_NUMBER ) = 18
|
|
AND LENGTH( a.FOREMAN_IDNUMBER ) = 18
|
|
AND LENGTH( a.PRINCIPAL_IDNUMBER ) = 18
|
|
AND IFNULL( a.idCard, 'ooo' ) != 'ooo',
|
|
'1',
|
|
'0'
|
|
)
|
|
) AS intactContractNum,
|
|
SUM( IF ( a.is_push = '1', '1', '0' ) ) AS contractPushNum,
|
|
a.proPushStatus,
|
|
a.isMultiple,
|
|
COUNT( IF(a.ein_status = '1' AND a.is_ein_push = '1',a.ID_NUMBER,null)) as pushAll,
|
|
COUNT( IF(a.ein_status = '1' AND a.is_ein_push = '1',a.contrastId,null)) as attendanceAll,
|
|
COUNT( IF(a.ein_status = '1' AND a.is_ein_push = '1' AND a.contrastIsPush = '1',a.contrastId,null)) as
|
|
attendancePush
|
|
|
|
FROM (
|
|
SELECT
|
|
DISTINCT
|
|
IFNULL(bpbr.bid_pro_id,bp.id) AS proId,
|
|
bp.pro_old_id AS proOldId,
|
|
IFNULL(bpbr.pro_name,bp.name) AS proName,
|
|
bwr.ein_status,
|
|
bwp.ROLL_BANK_NAME,
|
|
bwp.BANK_NAME,
|
|
bw.ID_NUMBER,
|
|
bwr.FOREMAN_IDNUMBER,
|
|
bwr.PRINCIPAL_IDNUMBER,
|
|
bwc.idCard,
|
|
bwr.is_ein_push,
|
|
bwc.is_push,
|
|
sdd.NAME,
|
|
bp.company_id,
|
|
bp.is_push AS proPushStatus ,
|
|
FIND_IN_SET('1',bpbr.is_multiple) as isMultiple,
|
|
ffc.id as contrastId,
|
|
IF(SUM(ffc.is_push)>0,1,0) as contrastIsPush
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bwr.ID_NUMBER and bwc.IS_ACTIVE = '1'
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
LEFT JOIN bm_project_bid_relation bpbr ON FIND_IN_SET(bp.id,bpbr.bid_pro_id)>0 AND bpbr.is_active = '1'
|
|
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER and ffc.is_active = '1' and ffc.CURRENT_DAY =
|
|
#{params.currentDay}
|
|
WHERE
|
|
IFNULL(sdd.NAME,'') != '管理人员'
|
|
<if test="params.orgId !=null and params.orgId !=''">
|
|
and bp.company_id=#{params.orgId}
|
|
</if>
|
|
<if test="params.proPushStatus !=null and params.proPushStatus !=''">
|
|
and bp.is_push=#{params.proPushStatus}
|
|
</if>
|
|
GROUP BY bwr.ID_NUMBER
|
|
ORDER BY bp.is_push DESC
|
|
) a
|
|
<where>
|
|
<if test="params.proId !=null and params.proId !=''">
|
|
and a.proId=#{params.proId}
|
|
</if>
|
|
</where>
|
|
GROUP BY a.proId
|
|
order by a.proId ASC
|
|
limit #{offset},#{limit}
|
|
</select>
|
|
<select id="getOnJobInfoPushCount" resultType="java.lang.Integer">
|
|
SELECT
|
|
count(1)
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
WHERE
|
|
bp.id = #{params.proId}
|
|
AND sdd.name != '管理人员'
|
|
<if test="params.einStatus !=null and params.einStatus !=''">
|
|
and bwr.ein_status = #{params.einStatus}
|
|
</if>
|
|
<if test="params.isEinPush !=null and params.isEinPush !=''">
|
|
and bwr.is_ein_push=#{params.isEinPush}
|
|
</if>
|
|
<if test="params.isExitPush !=null and params.isExitPush !=''">
|
|
and bwr.is_exit_push=#{params.isExitPush}
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
</select>
|
|
<select id="getOnJobInfoPushList" resultType="com.bonus.gzrn.rnbmw.push.entity.InfoPushBean">
|
|
SELECT
|
|
bw.`NAME`,
|
|
bwr.ID_NUMBER as idNumber,
|
|
bp.`abbreviation` AS proName,
|
|
bwr.EIN_TIME as einTime,
|
|
bwr.EXIT_TIME as exitTime,
|
|
bwr.is_ein_push as isEinPush,
|
|
bwr.ein_push_time as einPushTime,
|
|
bwr.ein_push_content as einPushContent,
|
|
bwr.is_exit_push AS isExitPush,
|
|
bwr.exit_push_time AS exitPushTime,
|
|
bwr.exit_push_content as exitPushContent,
|
|
ffc.id AS contrastId,
|
|
IF
|
|
(
|
|
( IFNULL( bwp.ROLL_BANK_NAME, 'ooo' ) != 'ooo' OR IFNULL( bwp.BANK_NAME, 'ooo' ) != 'ooo' )
|
|
AND LENGTH( bw.ID_NUMBER ) = 18
|
|
AND LENGTH( bwr.FOREMAN_IDNUMBER ) = 18
|
|
AND LENGTH( bwr.PRINCIPAL_IDNUMBER ) = 18,
|
|
'1',
|
|
'0'
|
|
) as isIntact
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER
|
|
AND ffc.is_active = '1'
|
|
AND ffc.CURRENT_DAY = CURDATE()
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
WHERE
|
|
bp.id = #{params.proId}
|
|
AND sdd.name != '管理人员'
|
|
<if test="params.einStatus !=null and params.einStatus !=''">
|
|
and bwr.ein_status = #{params.einStatus}
|
|
</if>
|
|
<if test="params.isEinPush !=null and params.isEinPush !=''">
|
|
and bwr.is_ein_push=#{params.isEinPush}
|
|
</if>
|
|
<if test="params.isExitPush !=null and params.isExitPush !=''">
|
|
and bwr.is_exit_push=#{params.isExitPush}
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
limit #{offset},#{limit}
|
|
</select>
|
|
<select id="getContractInfoPushCount" resultType="java.lang.Integer">
|
|
select count(1) from (
|
|
SELECT
|
|
bw.`NAME`,
|
|
bwr.ID_NUMBER AS idNumber,
|
|
IF
|
|
(
|
|
IFNULL( bwc.idCard, 'ooo' ) != 'ooo'
|
|
AND
|
|
IF
|
|
( bwc.contractType = '电子合同', bwcd.is_sign = '1', 1 = 1 ),
|
|
'1',
|
|
'0'
|
|
) AS conStatus
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id and bwr.is_active = '1'
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID and sdd.is_active = '1'
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bwr.ID_NUMBER and bwc.IS_ACTIVE = '1'
|
|
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bwc.idCard and bwcd.IS_ACTIVE = '1'
|
|
WHERE
|
|
( IFNULL( bwp.ROLL_BANK_NAME, 'ooo' ) != 'ooo' OR IFNULL( bwp.BANK_NAME, 'ooo' ) != 'ooo' )
|
|
AND LENGTH( bw.ID_NUMBER ) = 18
|
|
AND LENGTH( bwr.FOREMAN_IDNUMBER ) = 18
|
|
AND LENGTH( bwr.PRINCIPAL_IDNUMBER ) = 18
|
|
AND sdd.NAME != '管理人员'
|
|
and bp.id = #{params.proId}
|
|
<if test="params.conPush !=null and params.conPush !=''">
|
|
and bwc.is_push=#{params.conPush}
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
GROUP BY bwr.ID_NUMBER
|
|
) a
|
|
where a.conStatus = '1'
|
|
</select>
|
|
|
|
<select id="getContractInfoPushList" resultType="com.bonus.gzrn.rnbmw.push.entity.InfoPushBean">
|
|
select * from (
|
|
SELECT
|
|
bw.`NAME`,
|
|
bwr.ID_NUMBER AS idNumber,
|
|
bp.`abbreviation` AS proName,
|
|
IF
|
|
(
|
|
IFNULL( bwc.idCard, 'ooo' ) != 'ooo'
|
|
AND
|
|
IF
|
|
( bwc.contractType = '电子合同', bwcd.is_sign = '1', 1 = 1 ),
|
|
'1',
|
|
'0'
|
|
) AS conStatus,
|
|
bwc.is_push AS conPush,
|
|
bwc.push_time AS conPushTime
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id and bwr.is_active = '1'
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID and sdd.is_active = '1'
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker_contract bwc ON bwc.idCard = bwr.ID_NUMBER and bwc.IS_ACTIVE = '1'
|
|
LEFT JOIN bm_worker_contract_details bwcd ON bwcd.part_b_idCard = bwc.idCard and bwcd.IS_ACTIVE = '1'
|
|
WHERE
|
|
( IFNULL( bwp.ROLL_BANK_NAME, 'ooo' ) != 'ooo' OR IFNULL( bwp.BANK_NAME, 'ooo' ) != 'ooo' )
|
|
AND LENGTH( bw.ID_NUMBER ) = 18
|
|
AND LENGTH( bwr.FOREMAN_IDNUMBER ) = 18
|
|
AND LENGTH( bwr.PRINCIPAL_IDNUMBER ) = 18
|
|
AND sdd.NAME != '管理人员'
|
|
and bp.id = #{params.proId}
|
|
<if test="params.conPush !=null and params.conPush !=''">
|
|
and bwc.is_push=#{params.conPush}
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
GROUP BY bwr.ID_NUMBER
|
|
) a
|
|
where a.conStatus = '1'
|
|
limit #{offset},#{limit}
|
|
</select>
|
|
<select id="getProject" resultType="com.bonus.gzrn.rnbmw.basic.entity.ProjectBean">
|
|
SELECT
|
|
*
|
|
FROM
|
|
(
|
|
SELECT
|
|
IFNULL( bpbr.bid_pro_id, bp.id ) AS id,
|
|
IFNULL( bpbr.pro_name, bp.NAME ) AS NAME
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_project_bid_relation bpbr ON FIND_IN_SET( bp.id, bpbr.bid_pro_id ) > 0
|
|
AND bpbr.is_active = '1'
|
|
<where>
|
|
bp.IS_ACTIVE = '1'
|
|
<if test="companyId != null and companyId != ''">
|
|
and company_id = #{companyId}
|
|
</if>
|
|
<if test="status != null and status != ''">
|
|
and status = #{status}
|
|
</if>
|
|
</where>
|
|
) a
|
|
GROUP BY
|
|
id
|
|
ORDER BY
|
|
`NAME` ASC
|
|
</select>
|
|
|
|
<select id="selectPhotoByType" resultType="java.lang.String">
|
|
SELECT
|
|
CONCAT( 'http://10.1.0.142:1919/gzrnama/', PHOTO_PATH ) AS path
|
|
FROM
|
|
bm_worker_photo
|
|
WHERE
|
|
PHOTO_TYPE = #{type}
|
|
limit 0,1000
|
|
</select>
|
|
<select id="getSubPro" resultType="com.bonus.gzrn.rnbmw.basic.entity.ProjectBean">
|
|
SELECT
|
|
bp.id AS id,
|
|
bp.NAME AS name
|
|
FROM
|
|
bm_project bp
|
|
where bp.id in (${proId})
|
|
</select>
|
|
|
|
<select id="getMissEnumCount" resultType="java.lang.Integer">
|
|
SELECT
|
|
count(id)
|
|
FROM
|
|
bm_miss_enum
|
|
WHERE
|
|
is_active = '1'
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},eng_des) > 0
|
|
or locate(#{params.keyWord},china_des) > 0
|
|
)
|
|
</if>
|
|
</select>
|
|
|
|
<select id="getMissEnumList" resultType="com.bonus.gzrn.rnbmw.push.entity.wages.MissEnumBean">
|
|
SELECT
|
|
id,
|
|
china_des,
|
|
eng_des,
|
|
pic
|
|
FROM
|
|
bm_miss_enum
|
|
WHERE
|
|
is_active = '1'
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},eng_des) > 0
|
|
or locate(#{params.keyWord},china_des) > 0
|
|
)
|
|
</if>
|
|
limit #{offset},#{limit}
|
|
|
|
</select>
|
|
<select id="getMissEnumById" resultType="com.bonus.gzrn.rnbmw.push.entity.wages.MissEnumBean">
|
|
SELECT
|
|
id,
|
|
china_des,
|
|
eng_des,
|
|
pic
|
|
FROM
|
|
bm_miss_enum
|
|
WHERE
|
|
is_active = '1' and id = #{id}
|
|
</select>
|
|
|
|
<select id="getWorkerAttendanceCount" resultType="java.lang.Integer">
|
|
SELECT count(1) FROM (
|
|
SELECT
|
|
DISTINCT
|
|
IFNULL( bpbr.bid_pro_id, bp.id ) AS proId,
|
|
bp.pro_old_id AS proOldId,
|
|
IFNULL( bpbr.pro_name, bp.NAME ) AS proName,
|
|
bwr.ein_status,
|
|
bwp.ROLL_BANK_NAME,
|
|
bwp.BANK_NAME,
|
|
bw.ID_NUMBER,
|
|
bwr.FOREMAN_IDNUMBER,
|
|
bwr.PRINCIPAL_IDNUMBER,
|
|
bwr.is_ein_push,
|
|
bw.NAME,
|
|
bp.company_id,
|
|
bp.is_push AS proPushStatus,
|
|
FIND_IN_SET( '1', bpbr.is_multiple ) AS isMultiple,
|
|
ffc.id AS contrastId,
|
|
IF
|
|
( SUM( ffc.is_push ) > 0, 1, 0 ) AS contrastIsPush
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
LEFT JOIN bm_project_bid_relation bpbr ON FIND_IN_SET( bp.id, bpbr.bid_pro_id ) > 0
|
|
AND bpbr.is_active = '1'
|
|
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER
|
|
AND ffc.is_active = '1'
|
|
AND ffc.CURRENT_DAY between #{params.startDate} and #{params.endDate}
|
|
WHERE
|
|
IFNULL( sdd.NAME, '' ) != '管理人员' and bwr.is_ein_push = '1'
|
|
and bwr.ein_status = '1' and bp.id = #{params.proId}
|
|
and bw.ID_NUMBER is not null
|
|
<if test="params.conPush !=null and params.conPush !=''">
|
|
and ffc.is_push = #{params.conPush}
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
GROUP BY
|
|
bwr.ID_NUMBER,ffc.CURRENT_DAY
|
|
ORDER BY
|
|
bp.is_push DESC
|
|
) a
|
|
</select>
|
|
|
|
<select id="getWorkerAttendanceList" resultType="com.bonus.gzrn.rnbmw.push.entity.InfoPushBean">
|
|
SELECT DISTINCT
|
|
IFNULL( bpbr.bid_pro_id, bp.id ) AS proId,
|
|
bp.pro_old_id AS proOldId,
|
|
IFNULL( bpbr.pro_name, bp.NAME ) AS proName,
|
|
bwr.ein_status,
|
|
bwp.ROLL_BANK_NAME,
|
|
bwp.BANK_NAME,
|
|
bw.ID_NUMBER,
|
|
bwr.FOREMAN_IDNUMBER,
|
|
bwr.PRINCIPAL_IDNUMBER,
|
|
bwr.is_ein_push,
|
|
bw.NAME,
|
|
bp.company_id,
|
|
bp.is_push AS proPushStatus,
|
|
FIND_IN_SET( '1', bpbr.is_multiple ) AS isMultiple,
|
|
if(ffc.id is null,0,1) AS contrastId,
|
|
IF
|
|
( SUM( ffc.is_push ) > 0, 1, 0 ) AS contrastIsPush,
|
|
ffc.push_time as conPushTime,
|
|
ffc.upload_time as uploadTime,
|
|
ffc.AUDIT_TIME as attAuditTime,
|
|
ffc.add_time as attendanceTime
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
LEFT JOIN bm_project_bid_relation bpbr ON FIND_IN_SET( bp.id, bpbr.bid_pro_id ) > 0
|
|
AND bpbr.is_active = '1'
|
|
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER
|
|
AND ffc.is_active = '1'
|
|
AND ffc.CURRENT_DAY between #{params.startDate} and #{params.endDate}
|
|
WHERE
|
|
IFNULL( sdd.NAME, '' ) != '管理人员' and bwr.is_ein_push = '1'
|
|
and bwr.ein_status = '1' and bp.id = #{params.proId}
|
|
and bw.ID_NUMBER is not null
|
|
<if test="params.conPush !=null and params.conPush !=''">
|
|
and ffc.is_push = #{params.conPush}
|
|
</if>
|
|
<if test="params.attPush !=null and params.attPush !=''">
|
|
<if test='params.attPush == "1"'>
|
|
and ffc.id is not null
|
|
</if>
|
|
<if test='params.attPush == "0"'>
|
|
and ffc.id is null
|
|
</if>
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
GROUP BY
|
|
bwr.ID_NUMBER,ffc.CURRENT_DAY
|
|
ORDER BY
|
|
bw.ID_NUMBER,ffc.CURRENT_DAY DESC
|
|
limit #{offset},#{limit}
|
|
</select>
|
|
<select id="pushPersonSelect" resultType="com.bonus.gzrn.rnbmw.push.entity.InfoPushBean">
|
|
SELECT
|
|
bw.name,
|
|
bwr.id_number,
|
|
bwr.ein_push_time,
|
|
bp.name as proName
|
|
FROM
|
|
bm_worker_record bwr
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_project bp on bwr.project_id = bp.ID
|
|
WHERE
|
|
bwr.project_id = #{params.proId}
|
|
<if test="params.einPushTime !=null and params.einPushTime !=''">
|
|
and DATE_FORMAT(bwr.ein_push_time, '%Y-%m') = #{params.einPushTime}
|
|
</if>
|
|
AND is_ein_push = 1
|
|
limit #{offset},#{limit}
|
|
</select>
|
|
<select id="getWorkerAttendanceByProIdCount" resultType="java.lang.Integer">
|
|
SELECT count(1) FROM (
|
|
SELECT
|
|
DISTINCT
|
|
IFNULL( bpbr.bid_pro_id, bp.id ) AS proId,
|
|
bp.pro_old_id AS proOldId,
|
|
IFNULL( bpbr.pro_name, bp.NAME ) AS proName,
|
|
bwr.ein_status,
|
|
bwp.ROLL_BANK_NAME,
|
|
bwp.BANK_NAME,
|
|
bw.ID_NUMBER,
|
|
bwr.FOREMAN_IDNUMBER,
|
|
bwr.PRINCIPAL_IDNUMBER,
|
|
bwr.is_ein_push,
|
|
bw.NAME,
|
|
bp.company_id,
|
|
bp.is_push AS proPushStatus,
|
|
FIND_IN_SET( '1', bpbr.is_multiple ) AS isMultiple,
|
|
ffc.id AS contrastId,
|
|
IF
|
|
( SUM( ffc.is_push ) > 0, 1, 0 ) AS contrastIsPush
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
LEFT JOIN bm_project_bid_relation bpbr ON FIND_IN_SET( bp.id, bpbr.bid_pro_id ) > 0
|
|
AND bpbr.is_active = '1'
|
|
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER
|
|
AND ffc.is_active = '1'
|
|
AND ffc.CURRENT_DAY between #{params.startDate} and #{params.endDate}
|
|
WHERE
|
|
IFNULL( sdd.NAME, '' ) != '管理人员' and bwr.is_ein_push = '1'
|
|
and bwr.ein_status = '1'
|
|
and bw.ID_NUMBER is not null
|
|
<if test="params.proIds !=null and params.proIds.size() > 0">
|
|
and bp.id in (
|
|
<foreach collection="params.proIds" item="item" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
)
|
|
</if>
|
|
<if test="params.conPush !=null and params.conPush !=''">
|
|
and ffc.is_push = #{params.conPush}
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
GROUP BY
|
|
bwr.ID_NUMBER,ffc.CURRENT_DAY
|
|
ORDER BY
|
|
bp.is_push DESC
|
|
) a
|
|
</select>
|
|
<select id="getWorkerAttendanceByProId" resultType="com.bonus.gzrn.rnbmw.push.entity.InfoPushBean">
|
|
SELECT DISTINCT
|
|
IFNULL( bpbr.bid_pro_id, bp.id ) AS proId,
|
|
bp.pro_old_id AS proOldId,
|
|
IFNULL( bpbr.pro_name, bp.NAME ) AS proName,
|
|
bwr.ein_status,
|
|
bwp.ROLL_BANK_NAME,
|
|
bwp.BANK_NAME,
|
|
bw.ID_NUMBER,
|
|
bwr.FOREMAN_IDNUMBER,
|
|
bwr.PRINCIPAL_IDNUMBER,
|
|
bwr.is_ein_push,
|
|
bw.NAME,
|
|
bp.company_id,
|
|
bp.is_push AS proPushStatus,
|
|
FIND_IN_SET( '1', bpbr.is_multiple ) AS isMultiple,
|
|
if(ffc.id is null,0,1) AS contrastId,
|
|
IF
|
|
( SUM( ffc.is_push ) > 0, 1, 0 ) AS contrastIsPush,
|
|
ffc.push_time as conPushTime,
|
|
ffc.upload_time as uploadTime,
|
|
ffc.AUDIT_TIME as attAuditTime,
|
|
ffc.add_time as attendanceTime
|
|
FROM
|
|
bm_project bp
|
|
LEFT JOIN bm_worker_record bwr ON bwr.PROJECT_ID = bp.id
|
|
LEFT JOIN bm_worker_payroll bwp ON bwp.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER
|
|
LEFT JOIN sys_dic_detail sdd ON sdd.id = bwr.POST_ID
|
|
LEFT JOIN bm_project_bid_relation bpbr ON FIND_IN_SET( bp.id, bpbr.bid_pro_id ) > 0
|
|
AND bpbr.is_active = '1'
|
|
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER
|
|
AND ffc.is_active = '1'
|
|
AND ffc.CURRENT_DAY between #{params.startDate} and #{params.endDate}
|
|
WHERE
|
|
IFNULL( sdd.NAME, '' ) != '管理人员' and bwr.is_ein_push = '1'
|
|
and bwr.ein_status = '1'
|
|
and bw.ID_NUMBER is not null
|
|
<if test="params.proIds !=null and params.proIds.size() > 0">
|
|
and bp.id in (
|
|
<foreach collection="params.proIds" item="item" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
)
|
|
</if>
|
|
<if test="params.conPush !=null and params.conPush !=''">
|
|
and ffc.is_push = #{params.conPush}
|
|
</if>
|
|
<if test="params.attPush !=null and params.attPush !=''">
|
|
<if test='params.attPush == "1"'>
|
|
and ffc.id is not null
|
|
</if>
|
|
<if test='params.attPush == "0"'>
|
|
and ffc.id is null
|
|
</if>
|
|
</if>
|
|
<if test="params.keyWord !=null and params.keyWord !=''">
|
|
and (
|
|
locate(#{params.keyWord},bw.`NAME`) > 0
|
|
or locate(#{params.keyWord},bwr.ID_NUMBER) > 0
|
|
)
|
|
</if>
|
|
GROUP BY
|
|
bwr.ID_NUMBER,ffc.CURRENT_DAY
|
|
ORDER BY
|
|
bw.ID_NUMBER,ffc.CURRENT_DAY DESC
|
|
limit #{offset},#{limit}
|
|
</select>
|
|
|
|
</mapper> |