package com.estate.expert.admin.service.impl; import com.estate.expert.admin.domain.business.sign.work.*; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.enums.BizResultCode; import com.estate.expert.admin.service.common.CrudServiceBaseImpl; import com.estate.expert.admin.service.sign.WorkSignService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import java.util.UUID; /** * 工作签到服务实现 */ @Service public class WorkSignServiceImpl extends CrudServiceBaseImpl implements WorkSignService { private static final Logger log = LoggerFactory.getLogger(WorkSignServiceImpl.class); @Resource private WorkSignRecordRepository repository; @Override public List listRecords(Integer userId, LocalDate date, WorkTimePeriod timePeriod) { return repository.listSignRecord(userId, date.atTime(0, 0), date.atTime(23, 59, 59), timePeriod); } @Override public WorkSignRecord add(User creator, WorkSignRecord entity) { var records = listRecords(creator.getId(), LocalDate.now(), entity.getWorkTimePeriod()); BizResultCode.SIGN_RECORD_EXIST.check(!CollectionUtils.isEmpty(records)); entity.setName(UUID.randomUUID().toString()); return super.add(creator, entity); } @Override public WorkSignRecord add(User creator, WorkSignRecordDto dto, LocalDateTime date) { var entity = toEntity(dto); // var records = listRecords(creator.getId(), LocalDate.from(date), entity.getWorkTimePeriod()); // BizResultCode.SIGN_RECORD_EXIST.check(!CollectionUtils.isEmpty(records)); entity.setName(UUID.randomUUID().toString()); entity.setId(null); entity.setCreator(creator); entity.setCreateTime(date); entity.setUpdateTime(date); return save(entity); } }