SELECT a.* FROM (
SELECT b.* FROM (
SELECT DISTINCT
if(bwah.`NAME` is null,'',bwah.`NAME`) as name,bwah.ID_NUMBER as idNumber,
IF(bwah.EXIT_TIME is NULL, 1,0) as isJob,
sdd.`name` as postName,pc.org_name as orgName,bp.name as proName,bp.status,
bs.SUB_NAME as subName,bst.`NAME` as teamName,pc.id as orgId,bwah.PROJECT_ID as proId,bwah.EIN_TIME
FROM bm_worker_attend_history bwah
left join bm_worker bw on bw.id_number = bwah.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id=bwah.POST_ID
LEFT JOIN bm_subcontractor bs ON bs.id=bwah.SUB_ID
LEFT JOIN bm_sub_team bst ON bst.id=bwah.TEAM_ID
LEFT JOIN bm_project bp ON bp.id=bwah.PROJECT_ID
LEFT JOIN pm_company pc ON pc.id=bp.company_id
WHERE bwah.IS_ACTIVE='1' and bw.IS_ACTIVE='1'
= #{params.startTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) <= #{params.endTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) >= #{params.endTime}),LEFT(bwah.EIN_TIME,10) <= #{params.endTime})
]]>
and pc.ID =#{params.companyId}
and pc.ID =#{params.companyIds}
and bp.ID=#{params.proId}
and bwah.name like concat ('%',#{params.name},'%')
and bwah.ID_NUMBER=#{params.idNumber}
and bst.name like concat ('%',#{params.teamName},'%')
and pc.org_name=#{params.orgName}
and bp.name=#{params.proName}
and bs.sub_name=#{params.subName}
and bp.status=#{params.status}
and bwah.SUB_ID=#{params.subId}
and bw.name like concat ('%',#{params.workerName},'%')
UNION
SELECT DISTINCT
if(bwah.`NAME` is null,'',bwah.`NAME`) as name,bwah.ID_NUMBER as idNumber,
IF(bwah.EXIT_TIME is NULL, 1,0) as isJob,
sdd.`name` as postName,pc.org_name as orgName,bp.name as proName,bp.status,
bs.SUB_NAME as subName,bst.`NAME` as teamName,pc.id as orgId,bwah.PROJECT_ID as proId,bwah.EIN_TIME
FROM bm_worker_attend_history bwah
left join bm_worker bw on bw.id_number = bwah.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id=bwah.POST_ID
LEFT JOIN bm_subcontractor bs ON bs.id=bwah.SUB_ID
LEFT JOIN bm_sub_team bst ON bst.id=bwah.TEAM_ID
left join fc_face_contrast ffc on ffc.ID_NUMBER = bwah.ID_NUMBER AND bwah.PROJECT_ID = ffc.PRO_ID
LEFT JOIN bm_project bp ON bp.id=bwah.PROJECT_ID
LEFT JOIN pm_company pc ON pc.id=bp.company_id
WHERE bwah.IS_ACTIVE='1' and bw.IS_ACTIVE='1'
and ffc.CURRENT_DAY BETWEEN #{params.startTime} AND #{params.endTime}
= #{params.startTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) <= #{params.endTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) >= #{params.endTime}),LEFT(bwah.EIN_TIME,10) <= #{params.endTime})
]]>
and pc.ID =#{params.companyId}
and pc.ID =#{params.companyIds}
and bp.ID=#{params.proId}
and bwah.name like concat ('%',#{params.name},'%')
and ffc.ID_NUMBER=#{params.idNumber}
and bst.name like concat ('%',#{params.teamName},'%')
and pc.org_name=#{params.orgName}
and bp.name=#{params.proName}
and bs.sub_name=#{params.subName}
and bp.status=#{params.status}
and bwah.SUB_ID=#{params.subId}
and bw.name like concat ('%',#{params.workerName},'%')
)b
and b.isJob = #{params.isJob}
ORDER BY b.EIN_TIME DESC
)a
GROUP BY a.idNumber,a.proId
limit #{offset}, #{limit}
select count(1) as num
from
(
SELECT a.* FROM (
SELECT b.* FROM (
SELECT DISTINCT
if(bwah.`NAME` is null,'',bwah.`NAME`) as name,bwah.ID_NUMBER as idNumber,
IF(bwah.EXIT_TIME is NULL, 1,0) as isJob,
sdd.`name` as postName,pc.org_name as orgName,bp.name as proName,bp.status,
bs.SUB_NAME as subName,bst.`NAME` as teamName,pc.id as orgId,bwah.PROJECT_ID as proId,bwah.EIN_TIME
FROM bm_worker_attend_history bwah
left join bm_worker bw on bw.id_number = bwah.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id=bwah.POST_ID
LEFT JOIN bm_subcontractor bs ON bs.id=bwah.SUB_ID
LEFT JOIN bm_sub_team bst ON bst.id=bwah.TEAM_ID
LEFT JOIN bm_project bp ON bp.id=bwah.PROJECT_ID
LEFT JOIN pm_company pc ON pc.id=bp.company_id
WHERE bwah.IS_ACTIVE='1' and bw.IS_ACTIVE='1'
= #{params.startTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) <= #{params.endTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) >= #{params.endTime}),LEFT(bwah.EIN_TIME,10) <= #{params.endTime})
]]>
and pc.ID =#{params.companyId}
and pc.ID =#{params.companyIds}
and bp.ID=#{params.proId}
and bwah.name like concat ('%',#{params.name},'%')
and bwah.ID_NUMBER=#{params.idNumber}
and bst.name like concat ('%',#{params.teamName},'%')
and pc.org_name=#{params.orgName}
and bp.name=#{params.proName}
and bs.sub_name=#{params.subName}
and bp.status=#{params.status}
and bwah.SUB_ID=#{params.subId}
and bw.name like concat ('%',#{params.workerName},'%')
UNION
SELECT DISTINCT
if(bwah.`NAME` is null,'',bwah.`NAME`) as name,bwah.ID_NUMBER as idNumber,
IF(bwah.EXIT_TIME is NULL, 1,0) as isJob,
sdd.`name` as postName,pc.org_name as orgName,bp.name as proName,bp.status,
bs.SUB_NAME as subName,bst.`NAME` as teamName,pc.id as orgId,bwah.PROJECT_ID as proId,bwah.EIN_TIME
FROM bm_worker_attend_history bwah
left join bm_worker bw on bw.id_number = bwah.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id=bwah.POST_ID
LEFT JOIN bm_subcontractor bs ON bs.id=bwah.SUB_ID
LEFT JOIN bm_sub_team bst ON bst.id=bwah.TEAM_ID
left join fc_face_contrast ffc on ffc.ID_NUMBER = bwah.ID_NUMBER AND bwah.PROJECT_ID = ffc.PRO_ID
LEFT JOIN bm_project bp ON bp.id=bwah.PROJECT_ID
LEFT JOIN pm_company pc ON pc.id=bp.company_id
WHERE bwah.IS_ACTIVE='1' and bw.IS_ACTIVE='1'
and ffc.CURRENT_DAY BETWEEN #{params.startTime} AND #{params.endTime}
= #{params.startTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) <= #{params.endTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) >= #{params.endTime}),LEFT(bwah.EIN_TIME,10) <= #{params.endTime})
]]>
and pc.ID =#{params.companyId}
and pc.ID =#{params.companyIds}
and bp.ID=#{params.proId}
and bwah.name like concat ('%',#{params.name},'%')
and ffc.ID_NUMBER=#{params.idNumber}
and bst.name like concat ('%',#{params.teamName},'%')
and pc.org_name=#{params.orgName}
and bp.name=#{params.proName}
and bs.sub_name=#{params.subName}
and bp.status=#{params.status}
and bwah.SUB_ID=#{params.subId}
and bw.name like concat ('%',#{params.workerName},'%')
)b
and b.isJob = #{params.isJob}
ORDER BY b.EIN_TIME DESC
)a
GROUP BY a.idNumber,a. proId
) res
SELECT a.* FROM (
SELECT b.* FROM (
SELECT DISTINCT
if(bwah.`NAME` is null,'',bwah.`NAME`) as name,bwah.ID_NUMBER as idNumber,
sdd.`name` as postName,pc.org_name as orgName,bp.name as proName,bp.status,
bs.SUB_NAME as subName,bst.`NAME` as teamName,pc.id as orgId,bwah.PROJECT_ID as proId,bwah.EIN_TIME
FROM bm_worker_attend_history bwah
left join bm_worker bw on bw.id_number = bwah.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id=bwah.POST_ID
LEFT JOIN bm_subcontractor bs ON bs.id=bwah.SUB_ID
LEFT JOIN bm_sub_team bst ON bst.id=bwah.TEAM_ID
LEFT JOIN bm_project bp ON bp.id=bwah.PROJECT_ID
LEFT JOIN pm_company pc ON pc.id=bp.company_id
WHERE bwah.IS_ACTIVE='1' and bw.IS_ACTIVE='1'
= #{params.startTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) <= #{params.endTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) >= #{params.endTime}),LEFT(bwah.EIN_TIME,10) <= #{params.endTime})
]]>
and pc.ID =#{params.companyId}
and pc.ID =#{params.companyIds}
and bp.ID=#{params.proId}
and bwah.name like concat ('%',#{params.name},'%')
and bwah.ID_NUMBER=#{params.idNumber}
and bst.name like concat ('%',#{params.teamName},'%')
and pc.org_name=#{params.orgName}
and bp.name=#{params.proName}
and bs.sub_name=#{params.subName}
and bp.status=#{params.status}
UNION
SELECT DISTINCT
if(bwah.`NAME` is null,'',bwah.`NAME`) as name,bwah.ID_NUMBER as idNumber,
sdd.`name` as postName,pc.org_name as orgName,bp.name as proName,bp.status,
bs.SUB_NAME as subName,bst.`NAME` as teamName,pc.id as orgId,bwah.PROJECT_ID as proId,bwah.EIN_TIME
FROM bm_worker_attend_history bwah
left join bm_worker bw on bw.id_number = bwah.id_number
LEFT JOIN sys_dic_detail sdd ON sdd.id=bwah.POST_ID
LEFT JOIN bm_subcontractor bs ON bs.id=bwah.SUB_ID
LEFT JOIN bm_sub_team bst ON bst.id=bwah.TEAM_ID
left join fc_face_contrast ffc on ffc.ID_NUMBER = bwah.ID_NUMBER AND bwah.PROJECT_ID = ffc.PRO_ID
LEFT JOIN bm_project bp ON bp.id=bwah.PROJECT_ID
LEFT JOIN pm_company pc ON pc.id=bp.company_id
WHERE bwah.IS_ACTIVE='1' and bw.IS_ACTIVE='1'
and ffc.CURRENT_DAY BETWEEN #{params.startTime} AND #{params.endTime}
= #{params.startTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) <= #{params.endTime}
or LEFT(bwah.EIN_TIME,10) <= #{params.startTime} and LEFT(bwah.EXIT_TIME,10) >=#{params.startTime} and LEFT(bwah.EXIT_TIME,10) >= #{params.endTime}),LEFT(bwah.EIN_TIME,10) <= #{params.endTime})
]]>
and pc.ID =#{params.companyId}
and pc.ID =#{params.companyIds}
and bp.ID=#{params.proId}
and bwah.name like concat ('%',#{params.name},'%')
and ffc.ID_NUMBER=#{params.idNumber}
and bst.name like concat ('%',#{params.teamName},'%')
and pc.org_name=#{params.orgName}
and bp.name=#{params.proName}
and bs.sub_name=#{params.subName}
and bp.status=#{params.status}
)b
ORDER BY b.EIN_TIME DESC
)a
GROUP BY a.idNumber,a. proId
SELECT ffc.ID_NUMBER as idNumber,ffc.CURRENT_DAY as currentDay,bp.ID as proId
FROM fc_face_contrast ffc
LEFT JOIN bm_project bp ON bp.id=ffc.PRO_ID
LEFT JOIN bm_worker_record bwr ON bwr.ID_NUMBER=ffc.ID_NUMBER
LEFT JOIN bm_worker bw ON bw.ID_NUMBER= bwr.ID_NUMBER
WHERE ffc.is_active='1' AND ffc.AUDIT_STATUS='1' AND bwr.IS_ACTIVE='1' AND bwr.examine_status='1'
AND ffc.CURRENT_DAY BETWEEN #{startTime} AND #{endTime}
AND bw.name=#{name}
AND bp.company_Id=#{companyId}
AND ffc.PRO_ID=#{proId}
AND ffc.ID_NUMBER=#{idNumber}
SELECT *
FROM (SELECT su.USERNAME as name, ffc.PHOTO_PATH as photoPath, ffc.ADD_TIME as addTime,
ffc.CURRENT_DAY as currentDay, ffc.upload_time as uploadTime
FROM fc_face_contrast ffc
LEFT JOIN sys_user su ON su.id=ffc.USER_ID
WHERE ffc.is_active = '1'
and ffc.CURRENT_DAY BETWEEN #{startTime} AND #{endTime}
AND ffc.PRO_ID = #{proId}
and ffc.ID_NUMBER = #{idNumber}
order BY ffc.ADD_TIME desc limit 10000
) a
GROUP BY a.currentDay
SELECT a.* FROM (
SELECT
ffc.id,
ffc.USER_ID as userId,
ffc.ID_NUMBER as idNumber,
ffc.PRO_ID as proId,
ffc.name,
bp.name as proName,
ffc.CURRENT_DAY as currentDay,
if(ffc.IS_SUCCESS =0,'未打卡','已打卡') as success,
ffc.WORK_HOURS as workHours,
ffc.OVER_HOURS as overHours,
CASE ffc.AUDIT_STATUS WHEN '0' THEN '待审核' WHEN '1' THEN '有效' WHEN '2' THEN'无效' END as auditStatus,
u.USERNAME as AUDITOR,
ffc.AUDITOR as auditorId,
ffc.AUDIT_TIME as auditTime,
ffc.AUDIT_REMARK as auditRemark,
ffc.lon,
ffc.lat,
ffc.ADD_TIME as addTime
FROM fc_face_contrast ffc
LEFT JOIN bm_project bp ON bp.id=ffc.PRO_ID
LEFT JOIN sys_user u ON u.id=ffc.AUDITOR
WHERE ffc.is_active='1'
AND ffc.CURRENT_DAY = #{params.currentDay}
AND ffc.PRO_ID=#{params.proId}
and ffc.ID_NUMBER=#{params.idNumber} AND ffc.AUDIT_STATUS = '1'
GROUP BY ffc.ADD_TIME desc
ORDER BY ffc.ADD_TIME DESC
)a
LIMIT 1
SELECT a.* FROM (
SELECT ffc.CURRENT_DAY as currentDay,
CASE ffc.AUDIT_STATUS WHEN '0' THEN '待审核' WHEN '1' THEN '有效' WHEN '2' THEN '无效' END as auditStatus
FROM fc_face_contrast ffc
WHERE ffc.is_active = '1'
AND ffc.CURRENT_DAY BETWEEN #{startTime} AND #{endTime}
AND ffc.PRO_ID = #{proId}
and ffc.ID_NUMBER = #{idNumber}
GROUP BY ffc.ADD_TIME desc
)a
GROUP BY a.currentDay desc
SELECT ffc.NAME as name
FROM fc_face_contrast ffc
WHERE ffc.ID_NUMBER = #{idNumber} limit 1
select *
from fc_face_contrast
where CURRENT_DAY = #{currentDay}
and ID_NUMBER = #{idNumber}
and PRO_ID = #{proId} AND AUDIT_STATUS = 1
order by ADD_TIME desc limit 1
select name as proName
from bm_project
where ID = #{proId}
select bwr.ID_NUMBER,
ffc.WORK_HOURS as kqCounts,
ffc.OVER_HOURS as jbCounts,
bwr.PROJECT_ID as proId
from bm_worker_record bwr
LEFT JOIN fc_face_contrast ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER
where ffc.PRO_ID = #{proId}
and bwr.ID_NUMBER = #{idNumber}
and ffc.CURRENT_DAY = #{time}
and bwr.IS_ACTIVE = '1'
AND bwr.examine_status = '1'
AND ffc.AUDIT_STATUS = '1'
AND ffc.is_active = '1'
order by ffc.ADD_TIME desc limit 1
select count(1) as num
from (
select DISTINCT PRO_ID
from fc_face_contrast
where ID_NUMBER =
#{idNumber}
and CURRENT_DAY
BETWEEN
#{sTime}
AND
#{eTime}
) res
select EIN_TIME as einTime,EXIT_TIME as exitTime from bm_worker_attend_history
where ID_NUMBER = #{idNumber} and PROJECT_ID = #{proId}
order by EIN_TIME desc -- limit 1
SELECT a.* FROM (
SELECT ffc.id,ffc.USER_ID as userId, ffc.ID_NUMBER as idNumber, ffc.PRO_ID as proId,
ffc.name,bp.name as proName,ffc.CURRENT_DAY as currentDay,
if(ffc.IS_SUCCESS =0,'未打卡','已打卡') as success,
ffc.WORK_HOURS as workHours,ffc.OVER_HOURS as overHours,
CASE ffc.AUDIT_STATUS WHEN '0' THEN '待审核' WHEN '1' THEN '有效' WHEN '2' THEN'无效' END as auditStatus,
u.USERNAME as AUDITOR,ffc.AUDIT_TIME as auditTime,ffc.AUDIT_REMARK as auditRemark,ffc.lon,ffc.lat,ffc.ADD_TIME as addTime
FROM fc_face_contrast ffc
LEFT JOIN bm_project bp ON bp.id=ffc.PRO_ID
LEFT JOIN sys_user u ON u.id=ffc.AUDITOR
WHERE ffc.is_active='1' AND ffc.CURRENT_DAY = #{bean.currentDay}
AND ffc.PRO_ID=#{bean.proId}
and ffc.ID_NUMBER=#{bean.idNumber}
GROUP BY ffc.ADD_TIME desc
ORDER BY ffc.ADD_TIME DESC
)a
LIMIT 1
SELECT
left(bwah.EIN_TIME,10) AS einTime,
left(bwah.EXIT_TIME,10) AS exitTime,
bwah.ID_NUMBER AS idNumber
FROM
bm_worker_attend_history bwah
WHERE bwah.PROJECT_ID = #{proId}
AND bwah.ID_NUMBER = #{idNumber}
ORDER BY bwah.EIN_TIME asc
SELECT
ffc.CURRENT_DAY currentDay
FROM
fc_face_contrast ffc
WHERE
ffc.ID_NUMBER = #{idNumber}
AND ffc.CURRENT_DAY >= #{einTime}
GROUP BY ffc.CURRENT_DAY
ORDER BY ffc.CURRENT_DAY
select AUDIT_STATUS as auditStatus
from fc_face_contrast
where CURRENT_DAY = #{currentDay}
and ID_NUMBER = #{idNumber}
and PRO_ID = #{proId}
order by ADD_TIME desc limit 1
select SUBSTR(EIN_TIME,1,10) as einTime,SUBSTR(EXIT_TIME,1,10) as exitTime from bm_worker_attend_history
where ID_NUMBER = #{idNumber} and PROJECT_ID = #{proId}
order by EIN_TIME asc
SELECT
bwr.ID_NUMBER,
sum( ffc.WORK_HOURS ) AS kqCounts,
sum( ffc.OVER_HOURS ) AS jbCounts
FROM
bm_worker_record bwr
INNER JOIN (
SELECT ID_NUMBER, CURRENT_DAY, PRO_ID, WORK_HOURS, OVER_HOURS
FROM fc_face_contrast
WHERE AUDIT_STATUS = '1'
AND is_active = '1'
and PRO_ID = #{proId}
AND CURRENT_DAY BETWEEN #{einTime} AND #{exitTime}
GROUP BY ID_NUMBER, CURRENT_DAY
) ffc ON ffc.ID_NUMBER = bwr.ID_NUMBER
WHERE
bwr.ID_NUMBER = #{idNumber}
AND bwr.IS_ACTIVE = '1'
AND bwr.examine_status = '1'
GROUP BY
ffc.ID_NUMBER
select count(1) from (
SELECT
bp.id,
bp.name as proName,
count(ffc.id) as workNum,
CURRENT_DAY
FROM
bm_project bp
LEFT JOIN fc_face_contrast ffc ON bp.ID = ffc.PRO_ID and ffc.IS_ACTIVE = '1'
where bp.is_active = '1' and CURRENT_DAY BETWEEN #{params.startTime} and #{params.endTime}
AND bp.status = #{params.status}
AND bp.id = #{params.proId}
GROUP BY CURRENT_DAY
) a
SELECT *,count(idNumber) as workNum from (
SELECT
bp.id as proId,
bp.name as proName,
'0' as proId,
'全部工程' as proName,
#{params.allNum} as entranceNum,
ffc.ID_NUMBER as idNumber,
CURRENT_DAY as `time`
FROM
bm_project bp
LEFT JOIN fc_face_contrast ffc ON bp.ID = ffc.PRO_ID and ffc.IS_ACTIVE = '1'
where bp.is_active = '1' and CURRENT_DAY BETWEEN #{params.startTime} and #{params.endTime}
AND bp.status = #{params.status}
AND bp.id = #{params.proId}
GROUP BY ffc.CURRENT_DAY,ffc.ID_NUMBER
)aa
GROUP BY aa.`time`
limit #{offset}, #{limit}
SELECT
count( 1 )
FROM
bm_worker_record bwr
LEFT JOIN bm_worker bw ON bw.ID_NUMBER = bwr.ID_NUMBER and bw.is_active = '1'
LEFT JOIN bm_project bp ON bp.ID = bwr.PROJECT_ID and bp.is_active = '1'
WHERE bwr.IS_ACTIVE = '1'
AND bwr.ein_status = '1'
and bw.name is not null
AND bp.status = #{params.status}
AND bp.id = #{params.proId}
select count(1) from(
SELECT
bw.ID_NUMBER as idNumber
FROM
bm_worker_record bwr
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'
LEFT JOIN sys_dic_detail sdd on sdd.id = bwr.POST_ID and sdd.dic_type = '3' and sdd.is_active = '1'
LEFT JOIN bm_subcontractor bs on bwr.SUB_ID = bs.ID and bs.is_active = '1'
LEFT JOIN bm_sub_team bst on bst.id = bwr.TEAM_ID and bst.is_active = '1'
LEFT JOIN fc_face_contrast ffc ON bwr.ID_NUMBER = ffc.ID_NUMBER and ffc.IS_ACTIVE = '1'
AND ffc.CURRENT_DAY = #{params.startTime}
where bwr.ein_status = '1' and bwr.IS_ACTIVE = '1' and bw.name is not null
AND bp.id = #{params.proId}
AND
(
instr(bw.name,#{params.keyWord}) > 0
or instr(bs.SUB_NAME,#{params.keyWord}) > 0
or instr(bst.`NAME`,#{params.keyWord}) > 0
)
GROUP BY bw.ID_NUMBER
)a
SELECT
bw.name,
bw.ID_NUMBER as idNumber,
bw.phone,
sdd.`name` as postName,
bp.`NAME` as proName,
bs.SUB_NAME as subName,
bst.`NAME` as teamName,
IF(ffc.ID_NUMBER is null,'未考勤','已考勤') as att
FROM
bm_worker_record bwr
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'
LEFT JOIN sys_dic_detail sdd on sdd.id = bwr.POST_ID and sdd.dic_type = '3' and sdd.is_active = '1'
LEFT JOIN bm_subcontractor bs on bwr.SUB_ID = bs.ID and bs.is_active = '1'
LEFT JOIN bm_sub_team bst on bst.id = bwr.TEAM_ID and bst.is_active = '1'
LEFT JOIN fc_face_contrast ffc ON bwr.ID_NUMBER = ffc.ID_NUMBER and ffc.IS_ACTIVE = '1'
AND ffc.CURRENT_DAY = #{params.startTime}
where bwr.ein_status = '1' and bwr.IS_ACTIVE = '1' and bw.name is not null
AND bp.id = #{params.proId}
AND
(
instr(bw.name,#{params.keyWord}) > 0
or instr(bs.SUB_NAME,#{params.keyWord}) > 0
or instr(bst.`NAME`,#{params.keyWord}) > 0
)
GROUP BY bw.ID_NUMBER
limit #{offset}, #{limit}
SELECT
bwah.ID_NUMBER AS idNumber,
bwah.EIN_TIME
FROM
(select * from bm_worker_attend_history WHERE is_active = '1'
and bwah.org_id = #{params.companyIds}
and bwah.project_id = #{params.proId}
and bwah.ID_NUMBER = #{params.idNumber}
) bwah
INNER JOIN bm_worker bw ON bw.id_number = bwah.id_number and bw.is_active ='1'
LEFT JOIN bm_sub_team bst ON bst.id = bwah.TEAM_ID
WHERE
bwah.IS_ACTIVE = '1'
AND bw.IS_ACTIVE = '1'
GROUP BY
bwah.id_Number
SELECT
bwah.ID_NUMBER as idNumber,
bwah.EIN_TIME,
bwah.exit_time
FROM bm_worker_attend_history bwah
WHERE bwah.IS_ACTIVE='1'
and bwah.id_Number = #{idNumber}
and bwah.org_id = #{params.companyIds}
and bwah.project_id = #{params.proId}
and bwah.ID_NUMBER = #{params.idNumber}
insert
into
fc_face_contrast
(
ID_NUMBER,
PRO_ID,
CURRENT_DAY,
ADD_TIME,
IS_SUCCESS,
AUDITOR,
AUDIT_STATUS,
AUDIT_TIME,
WORK_HOURS,
OVER_HOURS,
lon,
lat,
is_push,
is_active)
values(
#{idNumber},
#{proId},
#{currentDay},
#{addTime},
#{success},
#{auditor},
#{auditStatus},
#{auditTime},
#{workHours},
#{overHours},
#{lon},
#{lat},
'0',
'1'
);
update fc_face_contrast
set ADD_TIME = #{addTime},
IS_SUCCESS = #{success},
AUDITOR = #{auditor},
AUDIT_STATUS = #{auditStatus},
AUDIT_TIME = #{auditTime},
WORK_HOURS = #{workHours},
OVER_HOURS = #{overHours}
where ID = #{id} and is_active = 1;
insert
into
fc_face_contrast_update_history
(
id,
ID_NUMBER,
PRO_ID,
CURRENT_DAY,
ADD_TIME,
IS_SUCCESS,
AUDITOR,
AUDIT_STATUS,
AUDIT_TIME,
AUDIT_REMARK,
WORK_HOURS,
OVER_HOURS,
lon,
lat,
is_push,
is_active,
ORIGINAL_ID)
values(
#{id},
#{idNumber},
#{proId},
#{currentDay},
#{addTime},
#{success},
#{auditor},
#{auditStatus},
#{auditTime},
#{auditRemark},
#{workHours},
#{overHours},
#{lon},
#{lat},
'0',
'1',
#{originalRecordId}
);
select
ffcuh.id,
bw.NAME,
bp.name as proName,
ffcuh.CURRENT_DAY as currentDay,
if(ffcuh.IS_SUCCESS = 0,
'未打卡',
'已打卡') as success,
ffcuh.WORK_HOURS as workHours,
ffcuh.OVER_HOURS as overHours,
case
ffcuh.AUDIT_STATUS when '0' then '待审核'
when '1' then '有效'
when '2' then '无效'
end as auditStatus,
u.USERNAME as AUDITOR,
ffcuh.AUDIT_TIME as auditTime,
ffcuh.AUDIT_REMARK as auditRemark,
ffcuh.lon,
ffcuh.lat,
ffcuh.ADD_TIME as addTime,
ffcuh.ORIGINAL_ID as originalRecordId
from
fc_face_contrast_update_history ffcuh
left join bm_project bp on
bp.id = ffcuh.PRO_ID
left join sys_user u on
u.id = ffcuh.AUDITOR
left join bm_worker bw on
ffcuh.ID_NUMBER = bw.ID_NUMBER
where
ffcuh.is_active = '1'
and ffcuh.CURRENT_DAY >= #{params.currentDayStart}
and ffcuh.CURRENT_DAY <= #{params.currentDayEnd}
and ffcuh.PRO_ID = #{params.proId}
and U.USERNAME like concat('%', #{params.auditorName}, '%')
and ffcuh.id = #{params.originalRecordId}
and ffcuh.ORIGINAL_ID is not null
order by ffcuh.AUDIT_TIME DESC
select count(*) from ( ) AS C
limit #{offset}, #{limit}