update code

dev_xds
haha 2024-02-01 23:05:24 +08:00
parent 88326fad41
commit 62a7807720
7 changed files with 92 additions and 8 deletions

View File

@ -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
}
})
}

View File

@ -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;
}
}

View File

@ -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() {

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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)){

View File

@ -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