|
@@ -2901,17 +2901,18 @@
|
|
|
ORDER BY project.id, task.start_date
|
|
|
</select>
|
|
|
<select id="getFTETaskPlanData" resultType="java.util.Map">
|
|
|
- select t.id, u.plate1 area, p.project_code projectCode,p.project_name projectName,u.name userName, te.plan_hours planHours
|
|
|
+ select t.id, u.plate1 area, p.project_code projectCode,p.project_name projectName,u.name userName, sum(daily.work_hour) planHours, date_format(MIN(daily.`allocate_date`) , '%Y-%m-%d') startDate, date_format(MAX(daily.allocate_date),'%Y-%m-%d') endDate
|
|
|
,p.category_name categoryName,p.incharger_id inchargerId,p.associate_degree_names associateDegreeNames,tg.name groupName,
|
|
|
stages.stages_name stagesName,t.name taskName,te.first_auditor_id firstAuditorId, te.second_auditor_id secondAuditorId,t.task_status auditStatus
|
|
|
,u.department_id departmentId,u.role_name roleName,t.task_plan_type taskPlanType,u.id userId,u.corpwx_userid as corpwxUserId,department.corpwx_deptid as corpwxDeptId,department.dd_deptid as corpDdDeptId
|
|
|
from task t
|
|
|
- left join stages on stages.id = t.stages_id
|
|
|
- left join task_group tg on tg.id=t.group_id
|
|
|
- left join project p on t.project_id=p.id
|
|
|
- LEFT JOIN task_executor te on t.id=te.task_id
|
|
|
- INNER JOIN user u on u.id=te.executor_id
|
|
|
- left join department on department.department_id = u.department_id
|
|
|
+ LEFT JOIN stages ON stages.id = t.stages_id
|
|
|
+ LEFT JOIN task_group tg ON tg.id=t.group_id
|
|
|
+ LEFT JOIN project p ON t.project_id=p.id
|
|
|
+ LEFT JOIN task_daily_allocate daily ON daily.`task_id` = t.id
|
|
|
+ LEFT JOIN USER u ON u.id= daily.`user_id`
|
|
|
+ LEFT JOIN department ON department.department_id = u.department_id
|
|
|
+ LEFT JOIN task_executor te ON te.task_id = daily.`task_id` AND te.`executor_id` = daily.`user_id`
|
|
|
WHERE u.company_id=#{companyId}
|
|
|
<if test="area!=null and area != '' ">
|
|
|
and u.plate1 = #{area}
|
|
@@ -2925,45 +2926,21 @@
|
|
|
#{item}
|
|
|
</foreach>
|
|
|
</if>
|
|
|
- <if test=" startDate!= null and endDate!= null">
|
|
|
- AND
|
|
|
- (
|
|
|
- (
|
|
|
- (t.start_date IS NULL OR t.start_date <= #{startDate}) AND (t.end_date >= #{startDate} AND t.end_date <= #{endDate})
|
|
|
- )
|
|
|
- OR
|
|
|
- (
|
|
|
- (t.end_date IS NULL OR t.end_date >= #{endDate}) AND (t.start_date >= #{startDate} AND t.start_date <= #{endDate})
|
|
|
- )
|
|
|
- OR
|
|
|
- (
|
|
|
- t.start_date IS NOT NULL AND t.end_date IS NOT NULL AND t.start_date >= #{startDate}
|
|
|
- AND t.start_date <= #{endDate} AND t.end_date >= #{startDate} AND t.end_date <= #{endDate}
|
|
|
- )
|
|
|
- OR
|
|
|
- (
|
|
|
- t.start_date IS NOT NULL AND t.end_date IS NOT NULL AND t.start_date <= #{startDate} AND t.end_date > #{endDate}
|
|
|
- )
|
|
|
- )
|
|
|
- </if>
|
|
|
- <if test=" startDate != null and endDate == null">
|
|
|
- AND (t.end_date IS NOT NULL and t.end_date >= #{startDate})
|
|
|
- </if>
|
|
|
- <if test=" startDate == null and endDate != null">
|
|
|
- AND (t.start_date IS NOT NULL and t.start_date <= #{endDate})
|
|
|
- </if>
|
|
|
+ and daily.`allocate_date` BETWEEN #{startDate} AND #{endDate}
|
|
|
+ GROUP BY t.id, daily.`user_id`
|
|
|
<if test="start!=null and size !=null">
|
|
|
limit #{start},#{size}
|
|
|
</if>
|
|
|
</select>
|
|
|
<select id="getFTETaskPlanDataCount" resultType="java.lang.Integer">
|
|
|
- select count(1) from task t
|
|
|
- left join stages on stages.id = t.stages_id
|
|
|
- left join task_group tg on tg.id=t.group_id
|
|
|
- left join project p on t.project_id=p.id
|
|
|
- LEFT JOIN task_executor te on t.id=te.task_id
|
|
|
- INNER JOIN user u on u.id=te.executor_id
|
|
|
- left join department on department.department_id = u.department_id
|
|
|
+ select count(distinct t.id, daily.`user_id`) from task t
|
|
|
+ LEFT JOIN stages ON stages.id = t.stages_id
|
|
|
+ LEFT JOIN task_group tg ON tg.id=t.group_id
|
|
|
+ LEFT JOIN project p ON t.project_id=p.id
|
|
|
+ LEFT JOIN task_daily_allocate daily ON daily.`task_id` = t.id
|
|
|
+ LEFT JOIN USER u ON u.id= daily.`user_id`
|
|
|
+ LEFT JOIN department ON department.department_id = u.department_id
|
|
|
+ LEFT JOIN task_executor te ON te.task_id = daily.`task_id` AND te.`executor_id` = daily.`user_id`
|
|
|
WHERE u.company_id=#{companyId}
|
|
|
<if test="area!=null and area != '' ">
|
|
|
and u.plate1 = #{area}
|
|
@@ -2977,33 +2954,7 @@
|
|
|
#{item}
|
|
|
</foreach>
|
|
|
</if>
|
|
|
- <if test=" startDate!= null and endDate!= null">
|
|
|
- AND
|
|
|
- (
|
|
|
- (
|
|
|
- (t.start_date IS NULL OR t.start_date <= #{startDate}) AND (t.end_date >= #{startDate} AND t.end_date <= #{endDate})
|
|
|
- )
|
|
|
- OR
|
|
|
- (
|
|
|
- (t.end_date IS NULL OR t.end_date >= #{endDate}) AND (t.start_date >= #{startDate} AND t.start_date <= #{endDate})
|
|
|
- )
|
|
|
- OR
|
|
|
- (
|
|
|
- t.start_date IS NOT NULL AND t.end_date IS NOT NULL AND t.start_date >= #{startDate}
|
|
|
- AND t.start_date <= #{endDate} AND t.end_date >= #{startDate} AND t.end_date <= #{endDate}
|
|
|
- )
|
|
|
- OR
|
|
|
- (
|
|
|
- t.start_date IS NOT NULL AND t.end_date IS NOT NULL AND t.start_date <= #{startDate} AND t.end_date > #{endDate}
|
|
|
- )
|
|
|
- )
|
|
|
- </if>
|
|
|
- <if test=" startDate != null and endDate == null">
|
|
|
- AND (t.end_date IS NOT NULL and t.end_date >= #{startDate})
|
|
|
- </if>
|
|
|
- <if test=" startDate == null and endDate != null">
|
|
|
- AND (t.start_date IS NOT NULL and t.start_date <= #{endDate})
|
|
|
- </if>
|
|
|
+ and daily.`allocate_date` BETWEEN #{startDate} AND #{endDate}
|
|
|
</select>
|
|
|
<select id="getRelatedProjectIds" resultType="java.lang.Integer">
|
|
|
SELECT DISTINCT pl.project_id
|