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