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; /** *

* 服务实现类 *

* * @author generator@TaoJie * @since 2023-08-17 */ @Service public class ProjectDailyMainServiceImpl extends ServiceImpl implements ProjectDailyMainService { @Override public List getDailyMainList(QueryProjectDailyMainDTO mainDTO) { QueryWrapper 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 dailyMainWrapper = new QueryWrapper(); 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 dailyMainWrapper = new QueryWrapper(); 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 dailyMainWrapper = new QueryWrapper(); 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 dailyMainWrapper = new QueryWrapper(); 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 getDailyMainListPersonal(QueryProjectDailyMainCalenDarDTO dto) { QueryWrapper 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 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 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 wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ProjectDailyMainDO::getIsDeleted, DeletedEnum.DELETED_NO.getCode()) .eq(ProjectDailyMainDO::getCreateUserId,createBatchTaskDTO.getUserId()) .eq(ProjectDailyMainDO::getDailyDate,createBatchTaskDTO.getDailyDate()); List mainDOList = baseMapper.selectList(wrapper); if(!CollectionUtils.isEmpty(mainDOList)){ return mainDOList.get(0); } return null; } }