icc的劳务人员,考勤最后是出场就删除在场记录,考勤最后是入场就更新在场时间
This commit is contained in:
parent
f6880f49df
commit
8ff888f270
@ -52,4 +52,10 @@ public interface WorkerAttendancePresenceMapper extends BaseMapper<WorkerAttenda
|
||||
* @return
|
||||
*/
|
||||
List<NumberTimeTableVo> queryPresentTrend(Map<String, Object> map);
|
||||
|
||||
/**
|
||||
* 插入如果记录存在则更新时间,不存在则插入
|
||||
* @param workerAttendancePresence
|
||||
*/
|
||||
void insertOrUpdate(WorkerAttendancePresence workerAttendancePresence);
|
||||
}
|
||||
|
||||
@ -108,4 +108,11 @@
|
||||
) t1
|
||||
GROUP BY t1.daytime
|
||||
</select>
|
||||
|
||||
<insert id="insertOrUpdate">
|
||||
INSERT INTO worker_attendance_presence (id, person_sn, create_time, project_sn)
|
||||
VALUES (#{id}, #{personSn}, #{createTime}, #{projectSn})
|
||||
ON DUPLICATE KEY UPDATE
|
||||
create_time = VALUES(create_time)
|
||||
</insert>
|
||||
</mapper>
|
||||
|
||||
@ -11,15 +11,13 @@ import com.zhgd.xmgl.modules.worker.entity.WorkerAttendance;
|
||||
import com.zhgd.xmgl.modules.worker.entity.WorkerAttendancePresence;
|
||||
import com.zhgd.xmgl.modules.worker.mapper.WorkerAttendancePresenceMapper;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendancePresenceService;
|
||||
import com.zhgd.xmgl.modules.worker.service.IWorkerAttendanceService;
|
||||
import org.apache.commons.collections.MapUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @Description: 考勤当前在场的人
|
||||
@ -36,24 +34,32 @@ public class WorkerAttendancePresenceServiceImpl extends ServiceImpl<WorkerAtten
|
||||
private ProjectMapper projectMapper;
|
||||
@Autowired
|
||||
private IWorkerAttendancePresenceService workerAttendancePresenceService;
|
||||
@Autowired
|
||||
@Lazy
|
||||
private IWorkerAttendanceService workerAttendanceService;
|
||||
|
||||
@Override
|
||||
public void addWorkerAttendancePresence(WorkerAttendance workerAttendance) {
|
||||
SimpleDateFormat sft = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String nowDay = sft.format(new Date());
|
||||
//非今天考勤不计算在场
|
||||
if (workerAttendance.getCreateTime().startsWith(nowDay)) {
|
||||
WorkerAttendance newestRecord = workerAttendanceService.getOne(new LambdaQueryWrapper<WorkerAttendance>()
|
||||
.eq(WorkerAttendance::getPersonSn, workerAttendance.getPersonSn())
|
||||
.orderByDesc(WorkerAttendance::getCreateTime)
|
||||
.last("limit 1")
|
||||
);
|
||||
if (newestRecord == null || DateUtil.compare(DateUtil.parseDateTime(newestRecord.getCreateTime()), DateUtil.parseDateTime(workerAttendance.getCreateTime())) < 0) {
|
||||
newestRecord = workerAttendance;
|
||||
}
|
||||
//考勤最后是出场就删除在场记录
|
||||
//考勤最后是入场就更新在场时间
|
||||
if (Objects.equals(newestRecord.getPassType(), 2)) {
|
||||
QueryWrapper<WorkerAttendancePresence> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(WorkerAttendancePresence::getPersonSn, workerAttendance.getPersonSn())
|
||||
.eq(WorkerAttendancePresence::getProjectSn, workerAttendance.getProjectSn());
|
||||
queryWrapper.lambda().eq(WorkerAttendancePresence::getPersonSn, workerAttendance.getPersonSn());
|
||||
workerAttendancePresenceMapper.delete(queryWrapper);
|
||||
if (workerAttendance.getPassType() == 1) {
|
||||
WorkerAttendancePresence workerAttendancePresence = new WorkerAttendancePresence();
|
||||
workerAttendancePresence.setProjectSn(workerAttendance.getProjectSn());
|
||||
workerAttendancePresence.setPersonSn(workerAttendance.getPersonSn());
|
||||
workerAttendancePresence.setCreateTime(workerAttendance.getCreateTime());
|
||||
workerAttendancePresenceMapper.insert(workerAttendancePresence);
|
||||
}
|
||||
} else {
|
||||
WorkerAttendancePresence workerAttendancePresence = new WorkerAttendancePresence();
|
||||
workerAttendancePresence.setProjectSn(workerAttendance.getProjectSn());
|
||||
workerAttendancePresence.setPersonSn(workerAttendance.getPersonSn());
|
||||
workerAttendancePresence.setCreateTime(newestRecord.getCreateTime());
|
||||
workerAttendancePresenceMapper.insertOrUpdate(workerAttendancePresence);
|
||||
}
|
||||
}
|
||||
|
||||
@ -89,7 +95,6 @@ public class WorkerAttendancePresenceServiceImpl extends ServiceImpl<WorkerAtten
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> getPresentWorkerIdListByRegion(Long regionId, String projectSn) {
|
||||
return workerAttendancePresenceMapper.getPresentWorkerIdListByRegion(regionId, projectSn);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user