|
@@ -28,7 +28,7 @@
|
|
|
|
|
|
<select id="getUserDataList" resultType="java.util.HashMap" >
|
|
|
SELECT user.id as userId, DATE_FORMAT(a.create_date, '%Y/%m/%d') as createDate,a.start_time as startTime, a.end_time as endTime, a.work_hours as workHours, user.name as username,user.corpwx_userid as corpwxUserid,a.week_day as weekDay,
|
|
|
- week_day_txt as weekDayTxt,card_time as cardTime, outdoor_time as outdoorTime, ask_leave_time as askLeaveTime FROM user_corpwx_time a LEFT JOIN user ON user.`corpwx_userid` = a.corpwx_userid
|
|
|
+ week_day_txt as weekDayTxt,card_time as cardTime, outdoor_time as outdoorTime, ask_leave_time as askLeaveTime FROM user_corpwx_time a LEFT JOIN user ON (user.`corpwx_userid` = a.corpwx_userid or (user.corpwx_userid is null and user.name = a.name))
|
|
|
WHERE a.create_date BETWEEN #{startDate} AND #{endDate}
|
|
|
AND a.company_id = #{companyId}
|
|
|
<if test="deptId != null">
|
|
@@ -40,9 +40,9 @@
|
|
|
<select id="getUserDataRatioList" resultType="java.util.HashMap" >
|
|
|
SELECT user.id AS userId, user.`name` as username, user.`corpwx_userid` as corpwxUserid, IFNULL(card_time.workHours, 0) as workHours, IFNULL(report_time.projectTime, 0) AS projectTime FROM
|
|
|
user LEFT JOIN
|
|
|
- (SELECT a.corpwx_userid, SUM(a.work_hours) AS workHours FROM user_corpwx_time a WHERE a.company_id = #{companyId} AND DATE_FORMAT(a.create_date, '%Y%m') = #{ymonth} GROUP BY a.`corpwx_userid` ) card_time
|
|
|
- ON user.`corpwx_userid` = card_time.corpwx_userid
|
|
|
- LEFT JOIN (SELECT r.creator_id, SUM(r.working_time) AS projectTime FROM report r WHERE r.state = 1 and r.company_id = #{companyId} AND DATE_FORMAT(r.create_date, '%Y%m') = #{ymonth} GROUP BY r.`creator_id` ) report_time
|
|
|
+ (SELECT a.corpwx_userid,a.name, SUM(a.work_hours) AS workHours FROM user_corpwx_time a WHERE a.company_id = #{companyId} AND DATE_FORMAT(a.create_date, '%Y%m') = #{ymonth} GROUP BY a.`corpwx_userid`,a.name ) card_time
|
|
|
+ ON (user.`corpwx_userid` = card_time.corpwx_userid or (user.corpwx_userid is null and user.name = card_time.name))
|
|
|
+ LEFT JOIN (SELECT r.creator_id, SUM(r.working_time) AS projectTime FROM report r WHERE r.company_id = #{companyId} AND DATE_FORMAT(r.create_date, '%Y%m') = #{ymonth} GROUP BY r.`creator_id` ) report_time
|
|
|
ON report_time.creator_id = user.id
|
|
|
WHERE user.company_id=#{companyId}
|
|
|
and (user.`is_active` = 1 OR (user.`is_active` = 0 AND DATE_FORMAT(user.`inactive_date`, '%Y%m') > #{ymonth}))
|