package com.gunshi.project.hsz.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.gunshi.core.dateformat.DateFormatString; import com.gunshi.project.hsz.entity.dto.RotaDto; import com.gunshi.project.hsz.entity.dto.RotaUserDto; import com.gunshi.project.hsz.entity.vo.RotaVo; import com.gunshi.project.hsz.mapper.RotaBMapper; import com.gunshi.project.hsz.model.RotaB; import com.gunshi.project.hsz.util.DateUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * Description: * Created by wanyan on 2024/3/25 * * @author wanyan * @version 1.0 */ @Service @Transactional(rollbackFor = Exception.class) public class RotaService extends ServiceImpl { public Map> query(String yearMonth) { List list = this.baseMapper.query(yearMonth); return list.stream().collect(Collectors.groupingBy(rota -> new SimpleDateFormat(DateFormatString.YYYY_MM_DD).format(rota.getRotaDate()))); } public String editInfo(RotaDto RotaDto) { Date rotaDate = RotaDto.getRotaDate(); //先删除该日期的所有信息 LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(RotaB::getRotaDate,rotaDate); this.remove(queryWrapper); if(RotaDto.getIsHoliday() != null && RotaDto.getIsHoliday() == 1){ RotaB rotaB = new RotaB(); BeanUtils.copyProperties(RotaDto,rotaB,RotaB.class); rotaB.setId(IdWorker.getId()); this.save(rotaB); return "设为放假日成功"; } List userDtoList = RotaDto.getUserDtoList(); List list = userDtoList.stream().map(o -> { RotaB rotaB = new RotaB(); rotaB.setId(IdWorker.getId()); rotaB.setRotaDate(rotaDate); rotaB.setIsHoliday(0); rotaB.setRotaType(o.getRotaType()); rotaB.setUserId(o.getUserId()); return rotaB; }).collect(Collectors.toList()); this.saveBatch(list); return "设置值班信息成功"; } public List dateList(String rotaDate) { return this.baseMapper.dateList(rotaDate); } public Long checkPhone(String value){ return this.baseMapper.queryUser(value); } public void saveImportData(ArrayList successArrayList) { List list = new ArrayList<>(); for(RotaVo vo : successArrayList){ Date stm = vo.getStm(); Date etm = vo.getEtm(); List dates = DateUtil.getDatesBetween(stm, etm); dates.stream().forEach(str->{ RotaB rotaB = new RotaB(); rotaB.setId(IdWorker.getId()); rotaB.setRotaDate(str); rotaB.setIsHoliday(0); rotaB.setRotaType(1); rotaB.setUserId(vo.getLeaderUserId()); list.add(rotaB); RotaB rota = new RotaB(); rota.setId(IdWorker.getId()); rota.setRotaDate(str); rota.setIsHoliday(0); rota.setRotaType(2); rota.setUserId(vo.getDutyUserId()); list.add(rota); }); } this.saveOrUpdateBatch(list); } }