|
|
|
|
|
|
|
|
|
|
|
|
|
|
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; |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
|
|
|
|