Просмотр исходного кода

1.日历查询和删除

2.年假规则保存方法修改
main
wangqiang 1 день назад
Родитель
Сommit
32fa3f367c

+ 27
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/controller/NjBalanceManageDetailController.java Просмотреть файл

package com.ruoyi.zhushi.controller; package com.ruoyi.zhushi.controller;


import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaIgnore;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup; import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.zhushi.entity.NjBalanceManageDetailDTO; import com.ruoyi.zhushi.entity.NjBalanceManageDetailDTO;
import com.ruoyi.zhushi.service.NjBalanceManageDetailService; import com.ruoyi.zhushi.service.NjBalanceManageDetailService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;

import javax.validation.constraints.NotEmpty;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

/** /**
* 打卡控制台 * 打卡控制台
*/ */
} }




@SaIgnore
@GetMapping("/calendar_query")
public List<Map<String, String>> calendarQuery() {
return njBalanceManageDetailService.calendarQuery();
}


/**
* 删除站点产品管理
*
* @param ids 主键串
*/
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(njBalanceManageDetailService.deleteByIds(Arrays.asList(ids)));
}
} }

+ 1
- 1
zs-manager/src/main/java/com/ruoyi/zhushi/entity/NjRuleConfigDTO.java Просмотреть файл



private Boolean generationCycle; private Boolean generationCycle;


private List<DkUsers> members;
private List<NjRuleConfigAndUser> members;


} }

+ 4
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/NjBalanceManageDetailService.java Просмотреть файл

import com.ruoyi.zhushi.entity.NjBalanceManageDetail; import com.ruoyi.zhushi.entity.NjBalanceManageDetail;
import com.ruoyi.zhushi.entity.NjBalanceManageDetailDTO; import com.ruoyi.zhushi.entity.NjBalanceManageDetailDTO;


import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map;


public interface NjBalanceManageDetailService { public interface NjBalanceManageDetailService {


TableDataInfo<NjBalanceManageDetailDTO> queryPageList(NjBalanceManageDetailDTO njBalanceManageDetailDTO, PageQuery pageQuery); TableDataInfo<NjBalanceManageDetailDTO> queryPageList(NjBalanceManageDetailDTO njBalanceManageDetailDTO, PageQuery pageQuery);


boolean insert(NjBalanceManageDetailDTO njBalanceManageDetailDTO); boolean insert(NjBalanceManageDetailDTO njBalanceManageDetailDTO);
List<Map<String, String>> calendarQuery();


boolean deleteByIds( Collection<Long> ids);
} }

+ 44
- 2
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/NjBalanceManageDetailServiceImpl.java Просмотреть файл

import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;


import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.LinkedHashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.*;
@Service @Service
@Transactional() @Transactional()
public class NjBalanceManageDetailServiceImpl implements NjBalanceManageDetailService { public class NjBalanceManageDetailServiceImpl implements NjBalanceManageDetailService {
if (i==1&&j==1) { if (i==1&&j==1) {
return true; return true;
} else { } else {
throw new RuntimeException("插入失败!请联系软件部门");
throw new RuntimeException("年假申请失败!请联系软件部门");
} }


} }


@Override
public List<Map<String, String>> calendarQuery() {
// 用一个 Map 记录每个日期对应的人员
Map<String, Set<String>> dateToNamesMap = new HashMap<>();

int currentYear = LocalDate.now().getYear();
QueryWrapper<NjBalanceManageDetail> queryWrapper = new QueryWrapper();
queryWrapper.eq(" YEAR(create_time)",currentYear);
List<NjBalanceManageDetail> list = njBalanceManageDetailMapper.selectList(queryWrapper);


if (list!=null && list.size()>0) {
for (NjBalanceManageDetail njBalanceManageDetail : list) {
String applyDates = njBalanceManageDetail.getApplyDates();
String nickName = njBalanceManageDetail.getNickName();
if (applyDates != null && !applyDates.isEmpty()) {
String[] dates = applyDates.split(",");
for (String date : dates) {
dateToNamesMap
.computeIfAbsent(date, k -> new LinkedHashSet<>())
.add(nickName); // 用 Set 去重
}
}
}
}
// 最后构建List<Map<String, String>> 格式
List<Map<String, String>> resultList = new ArrayList<>();
for (Map.Entry<String, Set<String>> entry : dateToNamesMap.entrySet()) {
Map<String, String> map = new HashMap<>();
map.put(entry.getKey(), String.join(",", entry.getValue()));
resultList.add(map);
}
return resultList;
}

@Override
public boolean deleteByIds(Collection<Long> ids) {
return njBalanceManageDetailMapper.deleteBatchIds(ids)>0;
}

} }

+ 42
- 17
zs-manager/src/main/java/com/ruoyi/zhushi/service/impl/NjRuleConfigServiceImpl.java Просмотреть файл



import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.exception.GlobalException;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.zhushi.entity.*; import com.ruoyi.zhushi.entity.*;
import com.ruoyi.zhushi.mapper.NjRuleConfigAndUserMapper; import com.ruoyi.zhushi.mapper.NjRuleConfigAndUserMapper;
import com.ruoyi.zhushi.mapper.NjRuleConfigMapper; import com.ruoyi.zhushi.mapper.NjRuleConfigMapper;
import com.ruoyi.zhushi.service.NjBalanceManageService; import com.ruoyi.zhushi.service.NjBalanceManageService;
import com.ruoyi.zhushi.service.NjRuleConfigService; import com.ruoyi.zhushi.service.NjRuleConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;


import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@Slf4j
@Service @Service
public class NjRuleConfigServiceImpl implements NjRuleConfigService { public class NjRuleConfigServiceImpl implements NjRuleConfigService {




@Autowired @Autowired
private NjBalanceManageService njBalanceManageService; private NjBalanceManageService njBalanceManageService;
@Autowired
private ISysDeptService iSysDeptService;


@Autowired
private ISysUserService iSysUserService;
@Override @Override
public TableDataInfo<NjRuleConfigDTO> queryRuleConfig(NjRuleConfigDTO njRuleConfigDTO, PageQuery pageQuery) { public TableDataInfo<NjRuleConfigDTO> queryRuleConfig(NjRuleConfigDTO njRuleConfigDTO, PageQuery pageQuery) {




njRuleConfigDTOS.forEach(nj -> { njRuleConfigDTOS.forEach(nj -> {
if(!nj.getApplicableRange()){ if(!nj.getApplicableRange()){
List<DkUsers> users = new ArrayList<>();
LambdaQueryWrapper<NjRuleConfigAndUser> njRuleConfigAndUserLambdaQueryWrapper = Wrappers.lambdaQuery(); LambdaQueryWrapper<NjRuleConfigAndUser> njRuleConfigAndUserLambdaQueryWrapper = Wrappers.lambdaQuery();
njRuleConfigAndUserLambdaQueryWrapper.eq(NjRuleConfigAndUser::getNjRuleConfigId, nj.getId()); njRuleConfigAndUserLambdaQueryWrapper.eq(NjRuleConfigAndUser::getNjRuleConfigId, nj.getId());
List<NjRuleConfigAndUserDTO> njRuleConfigAndUserDTOS = njRuleConfigAndUserMapper.selectVoList(njRuleConfigAndUserLambdaQueryWrapper, NjRuleConfigAndUserDTO.class);
njRuleConfigAndUserDTOS.forEach(njRuleConfigAndUser -> {
DkUsers dkUsers = new DkUsers();
BeanUtil.copyProperties(njRuleConfigAndUser, dkUsers);
users.add(dkUsers);
});
nj.setMembers(users);
List<NjRuleConfigAndUser> njRuleConfigAndUserDTOS = njRuleConfigAndUserMapper.selectVoList(njRuleConfigAndUserLambdaQueryWrapper, NjRuleConfigAndUser.class);
nj.setMembers(njRuleConfigAndUserDTOS);
} }
}); });




@Override @Override
public Boolean addRule(NjRuleConfigDTO njRuleConfigDTO) { public Boolean addRule(NjRuleConfigDTO njRuleConfigDTO) {
Long s = System.currentTimeMillis();
// 定义实体 // 定义实体
NjRuleConfig njRuleConfig = new NjRuleConfig(); NjRuleConfig njRuleConfig = new NjRuleConfig();
// 拷贝属性 // 拷贝属性
// 定义集合 // 定义集合
List<NjRuleConfigAndUser> njRuleConfigAndUsers = new ArrayList<>(); List<NjRuleConfigAndUser> njRuleConfigAndUsers = new ArrayList<>();
// 判断集合是否为空 // 判断集合是否为空
if(null != njRuleConfigDTO.getMembers() && njRuleConfigDTO.getMembers().size() > 0){
Long id =njRuleConfigDTO.getId();




//删除 关联的明细用户信息
QueryWrapper<NjRuleConfigAndUser> deleteWrapper = new QueryWrapper<>();
deleteWrapper.eq("nj_rule_config_id", njRuleConfig.getId());
njRuleConfigAndUserMapper.delete(deleteWrapper);

if (null != njRuleConfigDTO.getMembers() && njRuleConfigDTO.getMembers().size() > 0) {
// 遍历集合 // 遍历集合
for (DkUsers member : njRuleConfigDTO.getMembers()){
for (NjRuleConfigAndUser member : njRuleConfigDTO.getMembers()){
NjRuleConfigAndUser njRuleConfigAndUser = new NjRuleConfigAndUser(); NjRuleConfigAndUser njRuleConfigAndUser = new NjRuleConfigAndUser();
// 根据userId 查询用户信息
/*LambdaQueryWrapper<NjRuleConfigAndUser> queryWrapper = new LambdaQueryWrapper<>();

//判断是否用户是否被其他规则选择
LambdaQueryWrapper<NjRuleConfigAndUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(NjRuleConfigAndUser::getUserId, member.getUserId()); queryWrapper.eq(NjRuleConfigAndUser::getUserId, member.getUserId());
List<NjRuleConfigAndUserDTO> njRuleConfigAndUserDTOS = njRuleConfigAndUserMapper.selectVoList(queryWrapper, NjRuleConfigAndUserDTO.class); List<NjRuleConfigAndUserDTO> njRuleConfigAndUserDTOS = njRuleConfigAndUserMapper.selectVoList(queryWrapper, NjRuleConfigAndUserDTO.class);
if(null != njRuleConfigAndUserDTOS && njRuleConfigAndUserDTOS.size() > 0){ if(null != njRuleConfigAndUserDTOS && njRuleConfigAndUserDTOS.size() > 0){
continue;
}*/
throw new GlobalException(member.getNickName()+"已经被其他考勤规则选择!");
}


njRuleConfigAndUser.setNjRuleConfigId(njRuleConfig.getId()); njRuleConfigAndUser.setNjRuleConfigId(njRuleConfig.getId());
njRuleConfigAndUser.setRuleName(njRuleConfig.getRuleName()); njRuleConfigAndUser.setRuleName(njRuleConfig.getRuleName());
njRuleConfigAndUser.setUserName(member.getUserName()); njRuleConfigAndUser.setUserName(member.getUserName());
njRuleConfigAndUser.setNickName(member.getNickName()); njRuleConfigAndUser.setNickName(member.getNickName());
njRuleConfigAndUser.setJoinedDate(member.getJoinedDate()); njRuleConfigAndUser.setJoinedDate(member.getJoinedDate());
njRuleConfigAndUser.setDeptName(member.getDeptName());
SysUser sysUser = iSysUserService.selectUserById(member.getUserId());
SysDept sysDept = iSysDeptService.selectDeptById(sysUser.getDeptId());
njRuleConfigAndUser.setDeptName(sysDept.getDeptName());

njRuleConfigAndUsers.add(njRuleConfigAndUser); njRuleConfigAndUsers.add(njRuleConfigAndUser);
} }
} }

boolean i = njRuleConfigAndUserMapper.insertOrUpdateBatch(njRuleConfigAndUsers);
Long e = System.currentTimeMillis();
log.info("耗时"+(e-s));
// 批量插入 // 批量插入
return njRuleConfigAndUserMapper.insertOrUpdateBatch(njRuleConfigAndUsers);
return i;


} }



Загрузка…
Отмена
Сохранить