104 lines
3.7 KiB
Java
104 lines
3.7 KiB
Java
|
|
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<RotaBMapper, RotaB> {
|
||
|
|
|
||
|
|
|
||
|
|
public Map<String,List<RotaB>> query(String yearMonth) {
|
||
|
|
List<RotaB> 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<RotaB> 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<RotaUserDto> userDtoList = RotaDto.getUserDtoList();
|
||
|
|
List<RotaB> 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<RotaB> dateList(String rotaDate) {
|
||
|
|
return this.baseMapper.dateList(rotaDate);
|
||
|
|
}
|
||
|
|
|
||
|
|
public Long checkPhone(String value){
|
||
|
|
return this.baseMapper.queryUser(value);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void saveImportData(ArrayList<RotaVo> successArrayList) {
|
||
|
|
List<RotaB> list = new ArrayList<>();
|
||
|
|
for(RotaVo vo : successArrayList){
|
||
|
|
Date stm = vo.getStm();
|
||
|
|
Date etm = vo.getEtm();
|
||
|
|
List<Date> 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);
|
||
|
|
}
|
||
|
|
}
|