Sfoglia il codice sorgente

1.日历查询和删除

2.年假规则保存方法修改
main
wangqiang 1 giorno fa
parent
commit
32fa3f367c

+ 27
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/controller/NjBalanceManageDetailController.java Vedi File

@@ -1,10 +1,14 @@
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.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.zhushi.entity.NjBalanceManageDetailDTO;
import com.ruoyi.zhushi.service.NjBalanceManageDetailService;
import lombok.RequiredArgsConstructor;
@@ -12,6 +16,12 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

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

/**
* 打卡控制台
*/
@@ -39,4 +49,21 @@ public class NjBalanceManageDetailController extends BaseController {
}


@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 Vedi File

@@ -23,6 +23,6 @@ public class NjRuleConfigDTO extends BaseEntity {

private Boolean generationCycle;

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

}

+ 4
- 0
zs-manager/src/main/java/com/ruoyi/zhushi/service/NjBalanceManageDetailService.java Vedi File

@@ -6,12 +6,16 @@ import com.ruoyi.zhushi.entity.NjBalanceManageDTO;
import com.ruoyi.zhushi.entity.NjBalanceManageDetail;
import com.ruoyi.zhushi.entity.NjBalanceManageDetailDTO;

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

public interface NjBalanceManageDetailService {

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

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 Vedi File

@@ -20,9 +20,11 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
@Transactional()
public class NjBalanceManageDetailServiceImpl implements NjBalanceManageDetailService {
@@ -77,9 +79,49 @@ public class NjBalanceManageDetailServiceImpl implements NjBalanceManageDetailSe
if (i==1&&j==1) {
return true;
} 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 Vedi File

@@ -2,21 +2,29 @@ package com.ruoyi.zhushi.service.impl;

import cn.hutool.core.bean.BeanUtil;
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.toolkit.Wrappers;
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.exception.GlobalException;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserService;
import com.ruoyi.zhushi.entity.*;
import com.ruoyi.zhushi.mapper.NjRuleConfigAndUserMapper;
import com.ruoyi.zhushi.mapper.NjRuleConfigMapper;
import com.ruoyi.zhushi.service.NjBalanceManageService;
import com.ruoyi.zhushi.service.NjRuleConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

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

@@ -28,7 +36,11 @@ public class NjRuleConfigServiceImpl implements NjRuleConfigService {

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

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

@@ -42,16 +54,10 @@ public class NjRuleConfigServiceImpl implements NjRuleConfigService {

njRuleConfigDTOS.forEach(nj -> {
if(!nj.getApplicableRange()){
List<DkUsers> users = new ArrayList<>();
LambdaQueryWrapper<NjRuleConfigAndUser> njRuleConfigAndUserLambdaQueryWrapper = Wrappers.lambdaQuery();
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);
}
});

@@ -60,6 +66,7 @@ public class NjRuleConfigServiceImpl implements NjRuleConfigService {

@Override
public Boolean addRule(NjRuleConfigDTO njRuleConfigDTO) {
Long s = System.currentTimeMillis();
// 定义实体
NjRuleConfig njRuleConfig = new NjRuleConfig();
// 拷贝属性
@@ -73,17 +80,28 @@ public class NjRuleConfigServiceImpl implements NjRuleConfigService {
// 定义集合
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();
// 根据userId 查询用户信息
/*LambdaQueryWrapper<NjRuleConfigAndUser> queryWrapper = new LambdaQueryWrapper<>();

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

njRuleConfigAndUser.setNjRuleConfigId(njRuleConfig.getId());
njRuleConfigAndUser.setRuleName(njRuleConfig.getRuleName());
@@ -91,12 +109,19 @@ public class NjRuleConfigServiceImpl implements NjRuleConfigService {
njRuleConfigAndUser.setUserName(member.getUserName());
njRuleConfigAndUser.setNickName(member.getNickName());
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);
}
}

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

}


Loading…
Annulla
Salva