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

279 lines
8.9 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.TaskDao">
<update id="updateAttendanceReview">
update fc_face_contrast ffc
INNER JOIN (
SELECT ID FROM fc_face_contrast where upload_time>'2022-06-29 18:00:00' and AUDIT_STATUS='0' and is_active = '1'
)ffcx ON ffc.id = ffcx.id
set AUDITOR = '-1',AUDIT_STATUS='1',AUDIT_REMARK='系统超时自动审核',AUDIT_TIME = now(),WORK_HOURS = '1'
</update>
<update id="updatePayrollCreditTime">
update bm_worker_provide_salary_info set balanceDate = #{payDate},payMonth = #{payMonth}
where idCard = #{idCard} and submitBatchNo = #{submitBatchNo}
</update>
<select id="getGiveLikeData" resultType="com.bonus.gzrn.rnbmw.push.entity.MapBean">
SELECT
a.id_number AS `key`,
a.pro_id AS `value`
FROM
(
SELECT
bwg.id_number,
bwg.pro_id,
bwg.org_id,
COUNT( id_number ) AS likeData,
IFNULL( brs.red_num, '100' ) AS num
FROM
bm_worker_give bwg
LEFT JOIN pm_organization po on po.id = bwg.org_id
LEFT JOIN pm_company pc on pc.id = po.COMPANY_ID
LEFT JOIN bm_redlist_set brs ON brs.org_id = pc.id
WHERE
bwg.IS_ACTIVE = '1'
GROUP BY
bwg.id_number,
bwg.pro_id
HAVING
COUNT( id_number ) >= num
) a
LEFT JOIN bm_redlist_worker brw ON brw.ID_NUMBER = a.id_number
-- AND brw.pro_id = a.pro_id
WHERE
brw.ID_NUMBER IS NULL
</select>
<select id="getWorkMsgData" resultType="com.bonus.gzrn.rnbmw.push.entity.RedListOrderBean" parameterType="string">
select bw.name,bw.ID_NUMBER as idNumber,bw.ADDRESS,bw.phone,bwr.POST_ID as postId from bm_worker bw
LEFT JOIN bm_worker_record bwr on bwr.ID_NUMBER = bw.ID_NUMBER
where bw.ID_NUMBER = #{idNumber}
</select>
<select id="getCertificateWarningByThirtyDays"
resultType="com.bonus.gzrn.rnbmw.person.entity.WorkerCertificateUploadBean">
SELECT
bw.NAME,
bw.phone,
bct.`name` AS certificateName,
bwc.stop_date AS stopDate
FROM
bm_worker_certificate bwc
LEFT JOIN bm_certificate_type bct ON bct.id = bwc.certificate_id
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwc.id_number
WHERE
TIMESTAMPDIFF( DAY, DATE_FORMAT( NOW( ), '%Y-%m-%d' ), bwc.stop_date ) &lt; 30
AND TIMESTAMPDIFF( DAY, DATE_FORMAT( NOW( ), '%Y-%m-%d' ), bwc.stop_date ) &gt; 0
</select>
<select id="getRedListNotEntranceData"
resultType="com.bonus.gzrn.rnbmw.push.entity.MsgInformBean">
SELECT
bw.`name`,
brw.id_number,
brw.phone,
IFNULL(bst.name,"") as teamName
FROM
bm_redlist_worker brw
LEFT JOIN bm_worker_record bwr ON brw.id_number = bwr.ID_NUMBER
AND bwr.is_active = '1'
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = brw.id_number
AND bw.is_active = '1'
LEFT JOIN bm_sub_team bst ON bst.id = bwr.TEAM_ID and bst.is_active = '1'
WHERE
bwr.ein_status = '0'
AND TIMESTAMPDIFF( DAY, bwr.EXIT_DATE, DATE_FORMAT( NOW( ), '%Y-%m-%d' ) ) > 7
</select>
<select id="getRedListNotPlayCardData" resultType="com.bonus.gzrn.rnbmw.push.entity.MsgInformBean">
SELECT
a.`NAME`,
a.id_number as idNumber,
a.phone,
COUNT( a.id_number ),
IFNULL(a.teamName,"") as teamName
FROM
(
SELECT
bw.`NAME`,
brw.id_number,
brw.phone,
bst.name as teamName
FROM
bm_redlist_worker brw
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = brw.id_number
AND bw.is_active = '1'
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = brw.id_number
AND ffc.is_active = '1'
LEFT JOIN bm_worker_record bwr ON bw.ID_NUMBER = bwr.id_number AND bwr.is_active = '1'
LEFT JOIN bm_sub_team bst ON bst.id = bwr.TEAM_ID and bst.is_active = '1'
WHERE
ffc.CURRENT_DAY BETWEEN #{now_30}
AND #{now}
GROUP BY
ffc.CURRENT_DAY,
ffc.ID_NUMBER
) a
GROUP BY
a.ID_NUMBER HAVING COUNT( a.id_number ) &lt; 20
</select>
<select id="getOutstandingListNotEntranceData" resultType="com.bonus.gzrn.rnbmw.push.entity.MsgInformBean">
SELECT
bw.`name`,
bot.foreman_idnumber AS idNumber,
bw.phone,
IFNULL(bst.name,"") as teamName
FROM
bm_outstanding_team bot
LEFT JOIN bm_worker_record bwr ON bot.foreman_idnumber = bwr.ID_NUMBER
AND bwr.is_active = '1'
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bot.foreman_idnumber
AND bw.is_active = '1'
LEFT JOIN bm_sub_team bst ON bst.id = bwr.TEAM_ID and bst.is_active = '1'
WHERE
bwr.ein_status = '0'
AND TIMESTAMPDIFF( DAY, bwr.EXIT_DATE, DATE_FORMAT( NOW( ), '%Y-%m-%d' ) ) > 7
</select>
<select id="getOutstandingListNotPlayCardData" resultType="com.bonus.gzrn.rnbmw.push.entity.MsgInformBean">
SELECT
a.`NAME`,
a.foreman_idnumber as idNumber,
a.phone,
COUNT( a.foreman_idnumber ),
IFNULL(a.teamName,"") as teamName
FROM
(
SELECT
bw.`NAME`,
bot.foreman_idnumber,
bw.phone,
bst.name as teamName
FROM
bm_outstanding_team bot
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bot.foreman_idnumber
AND bw.is_active = '1'
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bot.foreman_idnumber
AND ffc.is_active = '1'
LEFT JOIN bm_worker_record bwr ON bw.ID_NUMBER = bwr.id_number AND bwr.is_active = '1'
LEFT JOIN bm_sub_team bst ON bst.id = bwr.TEAM_ID and bst.is_active = '1'
WHERE
ffc.CURRENT_DAY BETWEEN #{now_30}
AND #{now}
GROUP BY
ffc.CURRENT_DAY,
ffc.ID_NUMBER
) a
GROUP BY
a.foreman_idnumber HAVING COUNT( a.foreman_idnumber ) &lt; 20
</select>
<select id="getPayrollCreditData" resultType="string">
SELECT
submitBatchNo
FROM
bm_worker_provide_salary_info
WHERE balanceDate is null or balanceDate = ""
GROUP BY submitBatchNo
</select>
<select id="getOutSevenNotAttendancePerson"
resultType="com.bonus.gzrn.rnbmw.push.entity.attendance.AttDataBean">
SELECT
bw.`NAME`,
bwr.ID_NUMBER as idNumber,
bp.name as projectName,
bw.phone,
ffc.ID_NUMBER
FROM
(SELECT ID_NUMBER,PROJECT_ID FROM bm_worker_record WHERE ein_status = '1' and IS_ACTIVE = '1') bwr
LEFT JOIN
(SELECT
*
FROM
(
SELECT DISTINCT `NAME`, ID_NUMBER, SUB_ID, PRO_ID, TEAM_ID, CURRENT_DAY
FROM fc_face_contrast
WHERE is_active = '1'
AND TIMESTAMPDIFF( DAY, CURRENT_DAY, DATE_FORMAT( NOW( ), '%Y-%m-%d' )) &lt; 8
ORDER BY CURRENT_DAY DESC
) aaa
GROUP BY
ID_NUMBER)
ffc ON bwr.ID_NUMBER = ffc.ID_NUMBER
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER and bw.is_active = '1'
LEFT JOIN bm_project bp ON bwr.PROJECT_ID = bp.id and bp.is_active = '1'
WHERE
ffc.ID_NUMBER IS NULL
</select>
<select id="getOutThreeNotAttendancePerson"
resultType="com.bonus.gzrn.rnbmw.push.entity.attendance.AttDataBean">
SELECT
bw.`NAME`,
bwr.ID_NUMBER as idNumber,
bp.name as projectName,
bw.phone,
ffc.ID_NUMBER
FROM
(SELECT ID_NUMBER,PROJECT_ID FROM bm_worker_record WHERE ein_status = '1' and IS_ACTIVE = '1') bwr
LEFT JOIN
(
SELECT
*
FROM(
SELECT
*
FROM
(
SELECT DISTINCT `NAME`, ID_NUMBER, SUB_ID, PRO_ID, TEAM_ID, CURRENT_DAY
FROM fc_face_contrast
WHERE is_active = '1'
AND TIMESTAMPDIFF( DAY, CURRENT_DAY, DATE_FORMAT( NOW( ), '%Y-%m-%d' )) &lt; 8
ORDER BY CURRENT_DAY DESC
) ffa
GROUP BY
ID_NUMBER
) ffb
where TIMESTAMPDIFF( DAY, CURRENT_DAY, DATE_FORMAT( NOW( ), '%Y-%m-%d' )) > 3
)
ffc ON bwr.ID_NUMBER = ffc.ID_NUMBER
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER and bw.is_active = '1'
LEFT JOIN bm_project bp ON bwr.PROJECT_ID = bp.id and bp.is_active = '1'
where ffc.ID_NUMBER IS NOT NULL
</select>
<select id="getCertificateWarningByPostNoCertificate"
resultType="com.bonus.gzrn.rnbmw.person.entity.WorkerCertificateUploadBean">
SELECT
bw.name,
bw.id_number,
bw.phone,
sdd.name as postName,
GROUP_CONCAT(DISTINCT bct1.name) as postCerName,
GROUP_CONCAT(DISTINCT bct2.name) as wokercerName
FROM
bm_worker_record bwr
INNER JOIN bm_worker bw on bwr.ID_NUMBER = bw.ID_NUMBER and bw.is_active = '1'
inner JOIN sys_dic_detail sdd ON sdd.dic_type = 3 and sdd.id = bwr.POST_ID and sdd.is_active = '1'
LEFT JOIN bm_certificate_post bcp ON bcp.post_id = bwr.POST_ID and bcp.is_active = '1'
LEFT JOIN bm_certificate_type bct1 ON bcp.certificate_id = bct1.id and bct1.is_active = '1'
LEFT JOIN bm_worker_certificate bwc ON bwc.id_number = bw.ID_NUMBER and bwc.is_active = '1'
LEFT JOIN bm_certificate_type bct2 ON bwc.certificate_id = bct2.id and bct2.is_active = '1'
WHERE bwr.ein_status = '1' and bwr.is_active = '1'
GROUP BY bw.id_number having postCerName is not null
</select>
<insert id="insertRedListData" parameterType="com.bonus.gzrn.rnbmw.push.entity.RedListOrderBean">
insert into bm_redlist_worker(name,id_number,address,phone,post,remark,pro_id,add_time)
values(#{name},#{idNumber},#{address},#{phone},#{postId},'',#{proId},#{addTime})
</insert>
<insert id="insertMsgInform">
insert into msg_inform(msg_type, msg_content, phone) values
<foreach item="item" index="index" collection="sevenRedList" separator=",">
(#{item.msgType},#{item.msgContent},#{item.phone})
</foreach>
</insert>
</mapper>