update code
parent
88326fad41
commit
62a7807720
|
@ -52,6 +52,10 @@ export function queryAttendanceData(data){
|
|||
return request({
|
||||
url: `/project/attendanceWorker/queryAttendanceData?pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
|
||||
method: 'post',
|
||||
data:data
|
||||
data:{
|
||||
...data,
|
||||
index:((data.pageNum||1)-1)*data.pageSize,
|
||||
size:data.pageSize
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -105,9 +105,12 @@ public class SurProjectAttendanceUserController extends BaseController
|
|||
}
|
||||
|
||||
@PostMapping("/queryAttendanceData")
|
||||
public TableDataInfo queryAttendanceData(@RequestBody SurProjectAttendanceCfg where){
|
||||
startPage();
|
||||
public TableDataInfo queryAttendanceData(@RequestBody SurProjectAttendanceUser where){
|
||||
long cnt=surProjectAttendanceUserService.countAttendance(where);
|
||||
List<SurProjectAttendanceUser> list =surProjectAttendanceUserService.queryAttendanceData(where);
|
||||
return getDataTable(list);
|
||||
TableDataInfo dataInfo=new TableDataInfo();
|
||||
dataInfo.setTotal(cnt);
|
||||
dataInfo.setRows(list);
|
||||
return dataInfo;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,7 @@ import com.ruoyi.common.annotation.Excel;
|
|||
import com.ruoyi.common.core.domain.BaseEntity;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 考勤人员基本属性对象 sur_project_attendance_user
|
||||
|
@ -213,6 +214,16 @@ public class SurProjectAttendanceUser extends BaseEntity
|
|||
private Long subDeptId;
|
||||
private Long deptId;
|
||||
|
||||
private List<String> workerIds;
|
||||
|
||||
public List<String> getWorkerIds() {
|
||||
return workerIds;
|
||||
}
|
||||
|
||||
public void setWorkerIds(List<String> workerIds) {
|
||||
this.workerIds = workerIds;
|
||||
}
|
||||
|
||||
private int size;
|
||||
|
||||
public int getSize() {
|
||||
|
|
|
@ -77,10 +77,21 @@ public interface SurProjectAttendanceUserMapper
|
|||
*/
|
||||
public int batchSurProjectAttendanceUser(List<SurProjectAttendanceUser> surProjectAttendanceUserList);
|
||||
|
||||
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceCfg where);
|
||||
/**
|
||||
* 下面三个方法完成考勤记录分页查询
|
||||
* countAttendance 获取总记录条数
|
||||
* queryAttendanceUsers 获取当前页workerIds
|
||||
* queryAttendanceByUserIds 根据workerIds查询一页数据然后组装
|
||||
* @param where
|
||||
* @return
|
||||
*/
|
||||
public List<SurProjectAttendanceUser> queryAttendanceByUserIds(SurProjectAttendanceUser where);
|
||||
public long countAttendance(SurProjectAttendanceCfg where);
|
||||
public List<SurProjectAttendanceUser> queryAttendanceUsers(SurProjectAttendanceUser where);
|
||||
|
||||
public long countTodayAttendance(SurProjectAttendanceUser where);
|
||||
|
||||
|
||||
public List<SurProjectAttendanceUser> todayAttendance(SurProjectAttendanceUser where);
|
||||
public List<SurProjectAttendanceUser> todayAttendanceData(List<String> list);
|
||||
}
|
||||
|
|
|
@ -79,9 +79,11 @@ public interface ISurProjectAttendanceUserService
|
|||
|
||||
public void add(SurProjectAttendanceUser user);
|
||||
|
||||
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceCfg where);
|
||||
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceUser where);
|
||||
|
||||
public long countTodayAttendance(SurProjectAttendanceUser where);
|
||||
|
||||
public List<SurProjectAttendanceUser> todayAttendance(SurProjectAttendanceUser where);
|
||||
|
||||
public long countAttendance(SurProjectAttendanceUser where);
|
||||
}
|
||||
|
|
|
@ -141,8 +141,19 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceCfg where) {
|
||||
return surProjectAttendanceUserMapper.queryAttendanceData(where);
|
||||
public List<SurProjectAttendanceUser> queryAttendanceData(SurProjectAttendanceUser where) {
|
||||
List<SurProjectAttendanceUser> list= surProjectAttendanceUserMapper.queryAttendanceUsers(where);
|
||||
List<String> workerIds=new ArrayList<>();
|
||||
for(SurProjectAttendanceUser u: list){
|
||||
workerIds.add(u.getWorkerId());
|
||||
}
|
||||
where.setWorkerIds(workerIds);
|
||||
List<SurProjectAttendanceUser> datas=surProjectAttendanceUserMapper.todayAttendanceData(workerIds);
|
||||
for (SurProjectAttendanceUser u:list) {
|
||||
u.setInTime(findDate(datas,u,"E"));
|
||||
u.setOutTime(findDate(datas,u,"L"));
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -169,6 +180,15 @@ public class SurProjectAttendanceUserServiceImpl implements ISurProjectAttendanc
|
|||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long countAttendance(SurProjectAttendanceUser user) {
|
||||
SurProjectAttendanceCfg where=new SurProjectAttendanceCfg();
|
||||
where.setCreateBy(user.getCreateBy());
|
||||
where.setSubDeptId(user.getSubDeptId());
|
||||
where.setProjectId(user.getProjectId());
|
||||
return surProjectAttendanceUserMapper.countAttendance(where);
|
||||
}
|
||||
|
||||
private Date findDate(List<SurProjectAttendanceUser> datas, SurProjectAttendanceUser u, String type) {
|
||||
for (SurProjectAttendanceUser user:datas) {
|
||||
if(user.getWorkerId().equals(u.getWorkerId()) && user.getName().equals(type)){
|
||||
|
|
|
@ -299,6 +299,39 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
) m left join sur_project_attendance_user n on m.workerId=n.workerId
|
||||
) oo
|
||||
</select>
|
||||
|
||||
<select id="countAttendance" resultType="Long" parameterType="SurProjectAttendanceCfg">
|
||||
select count(1) cnt from sur_project_attendance_user u, sur_project_attendance_cfg c,view_sur_project_attendance_group g
|
||||
where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId
|
||||
and u.workerid in(
|
||||
SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=date(#{createBy}) AND cfgid IN (
|
||||
SELECT id FROM sur_project_attendance_cfg WHERE project_id=#{projectId} AND sub_dept_id=#{subDeptId}
|
||||
)
|
||||
)
|
||||
</select>
|
||||
<select id="queryAttendanceByUserIds" parameterType="SurProjectAttendanceUser" resultMap="SurProjectAttendanceUserResult">
|
||||
select workerid,attendance_type name,min(attendance_time) inTime,max(attendance_time) max from sur_project_attendance_data
|
||||
where DATE(attendance_time)=date(#{createBy})
|
||||
<if test="workerIds !=null and workerIds.size()>0">
|
||||
and workerid in
|
||||
<foreach collection="workerIds" item="item" index="index" open="(" close=")" separator=",">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
group by workerid,attendance_type
|
||||
</select>
|
||||
<select id="queryAttendanceUsers" parameterType="SurProjectAttendanceUser" resultMap="SurProjectAttendanceUserResult">
|
||||
|
||||
select u.* from sur_project_attendance_user u, sur_project_attendance_cfg c,view_sur_project_attendance_group g
|
||||
where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId
|
||||
and u.workerid in(
|
||||
SELECT workerid FROM sur_project_attendance_data WHERE DATE(attendance_time)=date(#{createBy}) AND cfgid IN (
|
||||
SELECT id FROM sur_project_attendance_cfg WHERE project_id=#{projectId} AND sub_dept_id=#{subDeptId}
|
||||
)
|
||||
)
|
||||
order by u.id limit #{index},#{size}
|
||||
</select>
|
||||
|
||||
<select id="countTodayAttendance" resultType="Long" parameterType="SurProjectAttendanceUser">
|
||||
select count(1) cnt from sur_project_attendance_user u, sur_project_attendance_cfg c,view_sur_project_attendance_group g
|
||||
where u.cfgid=c.id and u.state=0 and u.companyId=g.companyId
|
||||
|
|
Loading…
Reference in New Issue