package com.cloudroam.service.impl;
|
|
import cn.hutool.core.date.DateUnit;
|
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.util.IdUtil;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.cloudroam.common.LocalUser;
|
import com.cloudroam.dto.projectDaily.CreateWithTaskDTO;
|
import com.cloudroam.dto.projectDaily.QueryProjectDailyDTO;
|
import com.cloudroam.dto.projectDailyMain.QueryProjectDailyMainCalenDarDTO;
|
import com.cloudroam.dto.projectDailyMain.QueryProjectDailyMainDTO;
|
import com.cloudroam.common.enumeration.DailyCommitEnum;
|
import com.cloudroam.common.enumeration.DailyConfirmEnum;
|
import com.cloudroam.common.enumeration.DeletedEnum;
|
import com.cloudroam.model.ProjectDailyMainDO;
|
import com.cloudroam.mapper.ProjectDailyMainMapper;
|
import com.cloudroam.model.UserDO;
|
import com.cloudroam.service.ProjectDailyMainService;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.cloudroam.util.DateUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.util.CollectionUtils;
|
|
import java.time.LocalDateTime;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Objects;
|
|
/**
|
* <p>
|
* 服务实现类
|
* </p>
|
*
|
* @author generator@TaoJie
|
* @since 2023-08-17
|
*/
|
@Service
|
public class ProjectDailyMainServiceImpl extends ServiceImpl<ProjectDailyMainMapper, ProjectDailyMainDO> implements ProjectDailyMainService {
|
|
@Override
|
public List<ProjectDailyMainDO> getDailyMainList(QueryProjectDailyMainDTO mainDTO) {
|
|
QueryWrapper<ProjectDailyMainDO> wrapper = new QueryWrapper<>();
|
wrapper.eq("is_deleted", DeletedEnum.DELETED_NO.getCode());
|
wrapper.eq("daily_date",mainDTO.getDailyDate());
|
wrapper.eq("use_id", mainDTO.getUseId());
|
|
return this.baseMapper.selectList(wrapper);
|
}
|
|
@Override
|
@Transactional
|
public boolean createDailyMainDefault(QueryProjectDailyMainDTO dto) {
|
|
UserDO userDO= LocalUser.getLocalUser();
|
|
ProjectDailyMainDO projectDailyMainDO=new ProjectDailyMainDO();
|
//创建
|
projectDailyMainDO.setId(IdUtil.simpleUUID());
|
projectDailyMainDO.setDailyDate(DateUtils.stringToLocalDateTime(dto.getDailyDate()));
|
projectDailyMainDO.setUseId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setUserName(userDO.getNickname());
|
|
|
projectDailyMainDO.setIsCommit(DailyCommitEnum.UNCOMMITED.getCode());
|
projectDailyMainDO.setIsConfirm(DailyConfirmEnum.UNCONFIRM.getCode());
|
|
projectDailyMainDO.setUpdateTime(new Date());
|
projectDailyMainDO.setUpdateUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setUpdateUserName(userDO.getNickname());
|
|
//
|
projectDailyMainDO.setCreateTime(new Date());
|
projectDailyMainDO.setCreateUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setCreateUserName(userDO.getNickname());
|
|
projectDailyMainDO.setIsDeleted(DeletedEnum.DELETED_NO.getCode());
|
|
return this.baseMapper.insert(projectDailyMainDO) > 0;
|
|
|
}
|
|
@Override
|
@Transactional
|
public boolean confirmProjectDailyMain(String dailyDate, String createUserId,Integer confirmCode, String confirmContent) {
|
|
UserDO userDO = LocalUser.getLocalUser();
|
|
// 将queryMain 的记录设置成已经提交
|
ProjectDailyMainDO projectDailyMainDO=new ProjectDailyMainDO();
|
|
QueryWrapper<ProjectDailyMainDO> dailyMainWrapper = new QueryWrapper<ProjectDailyMainDO>();
|
dailyMainWrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
|
dailyMainWrapper.eq("daily_date",dailyDate);
|
if(!"-1".equals(createUserId)) {
|
dailyMainWrapper.eq("create_user_id", createUserId);
|
}
|
|
projectDailyMainDO.setIsConfirm(confirmCode);
|
projectDailyMainDO.setConfirmTime(LocalDateTime.now());
|
projectDailyMainDO.setConfirmUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setConfirmUserName(userDO.getNickname());
|
projectDailyMainDO.setConfirmContent(confirmContent);
|
|
// 如果是确认不通过的情况下,则将提交改为未提交
|
if(Objects.equals(confirmCode, DailyConfirmEnum.UNPASS.getCode())){
|
projectDailyMainDO.setIsCommit(DailyCommitEnum.UNCOMMITED.getCode());
|
projectDailyMainDO.setCommitTime(LocalDateTime.now());
|
projectDailyMainDO.setCommitUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setCommitUserName(userDO.getNickname());
|
}
|
|
return baseMapper.update(projectDailyMainDO,dailyMainWrapper)>0;
|
}
|
|
@Override
|
@Transactional
|
public boolean unConfirmProjectDailyMain(String dailyDate, String createUserId) {
|
UserDO userDO = LocalUser.getLocalUser();
|
|
// 将queryMain 的记录设置成已经提交
|
ProjectDailyMainDO projectDailyMainDO=new ProjectDailyMainDO();
|
|
QueryWrapper<ProjectDailyMainDO> dailyMainWrapper = new QueryWrapper<ProjectDailyMainDO>();
|
dailyMainWrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
|
dailyMainWrapper.eq("daily_date",dailyDate);
|
if(!"-1".equals(createUserId)){
|
dailyMainWrapper.eq("create_user_id",createUserId);
|
}
|
|
// 设置未确认的时候,需要将记录设置为未提交
|
projectDailyMainDO.setIsCommit(DailyCommitEnum.UNCOMMITED.getCode());
|
projectDailyMainDO.setCommitTime(LocalDateTime.now());
|
projectDailyMainDO.setCommitUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setCommitUserName(userDO.getNickname());
|
|
projectDailyMainDO.setIsConfirm(DailyConfirmEnum.UNCONFIRM.getCode());
|
projectDailyMainDO.setConfirmTime(LocalDateTime.now());
|
projectDailyMainDO.setConfirmUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setConfirmUserName(userDO.getNickname());
|
return baseMapper.update(projectDailyMainDO,dailyMainWrapper)>0;
|
}
|
|
@Override
|
@Transactional
|
public boolean unCommitProjectDailyMain(Date dailyDate, String createUserId) {
|
UserDO userDO = LocalUser.getLocalUser();
|
|
// 将queryMain 的记录设置成已经提交
|
ProjectDailyMainDO projectDailyMainDO=new ProjectDailyMainDO();
|
|
QueryWrapper<ProjectDailyMainDO> dailyMainWrapper = new QueryWrapper<ProjectDailyMainDO>();
|
dailyMainWrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
|
dailyMainWrapper.eq("daily_date",dailyDate);
|
dailyMainWrapper.eq("create_user_id",createUserId);
|
|
projectDailyMainDO.setIsCommit(DailyCommitEnum.UNCOMMITED.getCode());
|
projectDailyMainDO.setCommitTime(LocalDateTime.now());
|
projectDailyMainDO.setCommitUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setCommitUserName(userDO.getNickname());
|
|
projectDailyMainDO.setIsConfirm(DailyConfirmEnum.UNCONFIRM.getCode());
|
projectDailyMainDO.setConfirmTime(LocalDateTime.now());
|
projectDailyMainDO.setConfirmUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setConfirmUserName(userDO.getNickname());
|
return baseMapper.update(projectDailyMainDO,dailyMainWrapper)>0;
|
}
|
|
@Override
|
public boolean commit(QueryProjectDailyDTO queryProjectDailyDTO) {
|
UserDO userDO = LocalUser.getLocalUser();
|
|
// 将queryMain 的记录设置成已经提交
|
ProjectDailyMainDO projectDailyMainDO=new ProjectDailyMainDO();
|
|
QueryWrapper<ProjectDailyMainDO> dailyMainWrapper = new QueryWrapper<ProjectDailyMainDO>();
|
dailyMainWrapper.eq("is_deleted",DeletedEnum.DELETED_NO.getCode());
|
dailyMainWrapper.eq("daily_date",queryProjectDailyDTO.getDailyDate());
|
dailyMainWrapper.eq("create_user_id",queryProjectDailyDTO.getCreateUserId());
|
|
projectDailyMainDO.setIsCommit(DailyCommitEnum.COMMITED.getCode());
|
projectDailyMainDO.setCommitTime(LocalDateTime.now());
|
projectDailyMainDO.setCommitUserId(String.valueOf(userDO.getId()));
|
projectDailyMainDO.setCommitUserName(userDO.getNickname());
|
|
|
return baseMapper.update(projectDailyMainDO,dailyMainWrapper)>0;
|
}
|
|
@Override
|
public List<ProjectDailyMainDO> getDailyMainListPersonal(QueryProjectDailyMainCalenDarDTO dto) {
|
QueryWrapper<ProjectDailyMainDO> wrapper = new QueryWrapper<>();
|
wrapper.eq("is_deleted", DeletedEnum.DELETED_NO.getCode());
|
// wrapper.eq("daily_date",dto.getDailyDate());
|
wrapper.eq("use_id", dto.getUserId());
|
String calendarMonth = dto.getCalendarDate().substring(0,dto.getCalendarDate().lastIndexOf("-"));
|
wrapper.like("daily_date",calendarMonth);
|
return this.baseMapper.selectList(wrapper);
|
}
|
|
@Override
|
public int getDailyMainUncommitCount() {
|
final UserDO userDO = LocalUser.getLocalUser();
|
QueryWrapper<ProjectDailyMainDO> wrapper = new QueryWrapper<>();
|
wrapper.eq("is_deleted", DeletedEnum.DELETED_NO.getCode());
|
wrapper.eq("use_id", String.valueOf(userDO.getId()));
|
wrapper.eq("is_commit",DailyCommitEnum.UNCOMMITED.getCode());
|
wrapper.lt("daily_date", DateUtil.format(new Date(), "yyyy-MM-dd"));
|
|
|
return this.baseMapper.selectCount(wrapper);
|
}
|
|
@Override
|
public boolean existsProjectDailyMainByDate(CreateWithTaskDTO createBatchTaskDTO) {
|
LambdaQueryWrapper<ProjectDailyMainDO> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(ProjectDailyMainDO::getIsDeleted, DeletedEnum.DELETED_NO.getCode())
|
.eq(ProjectDailyMainDO::getCreateUserId,createBatchTaskDTO.getUserId())
|
.eq(ProjectDailyMainDO::getDailyDate,createBatchTaskDTO.getDailyDate());
|
|
return baseMapper.selectCount(wrapper)>0;
|
}
|
|
@Override
|
public ProjectDailyMainDO getProjectDailyMainByDate(CreateWithTaskDTO createBatchTaskDTO) {
|
LambdaQueryWrapper<ProjectDailyMainDO> wrapper = new LambdaQueryWrapper<>();
|
wrapper.eq(ProjectDailyMainDO::getIsDeleted, DeletedEnum.DELETED_NO.getCode())
|
.eq(ProjectDailyMainDO::getCreateUserId,createBatchTaskDTO.getUserId())
|
.eq(ProjectDailyMainDO::getDailyDate,createBatchTaskDTO.getDailyDate());
|
|
List<ProjectDailyMainDO> mainDOList = baseMapper.selectList(wrapper);
|
if(!CollectionUtils.isEmpty(mainDOList)){
|
return mainDOList.get(0);
|
}
|
|
return null;
|
}
|
|
|
}
|