package com.ruoyi.zhushi.controller; | |||||
import com.ruoyi.common.core.controller.BaseController; | |||||
import com.ruoyi.common.core.domain.R; | |||||
import com.ruoyi.common.core.page.TableDataInfo; | |||||
import com.ruoyi.zhushi.entity.NjBalanceManageDTO; | |||||
import com.ruoyi.zhushi.entity.NjRuleConfigDTO; | |||||
import com.ruoyi.zhushi.service.NjBalanceManageService; | |||||
import com.ruoyi.zhushi.service.NjRuleConfigService; | |||||
import lombok.RequiredArgsConstructor; | |||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.validation.annotation.Validated; | |||||
import org.springframework.web.bind.annotation.*; | |||||
/** | |||||
* 打卡控制台 | |||||
*/ | |||||
@Validated | |||||
@RequiredArgsConstructor | |||||
@RestController | |||||
@RequestMapping("/nj/balance/manage") | |||||
@Slf4j | |||||
public class NjBalanceManageController extends BaseController { | |||||
@Autowired | |||||
private NjBalanceManageService njBalanceManageService; | |||||
// 查询当前用户考勤组 | |||||
@GetMapping("/query") | |||||
public TableDataInfo<NjBalanceManageDTO> query(NjBalanceManageDTO njBalanceManageDTO) { | |||||
return njBalanceManageService.queryPageList(njBalanceManageDTO); | |||||
} | |||||
} |
package com.ruoyi.zhushi.controller; | |||||
import com.ruoyi.common.core.controller.BaseController; | |||||
import com.ruoyi.common.core.domain.R; | |||||
import com.ruoyi.common.core.page.TableDataInfo; | |||||
import com.ruoyi.zhushi.entity.DkCheckInRecordDTO; | |||||
import com.ruoyi.zhushi.entity.NjRuleConfigDTO; | |||||
import com.ruoyi.zhushi.service.NjRuleConfigService; | |||||
import lombok.RequiredArgsConstructor; | |||||
import lombok.extern.slf4j.Slf4j; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.validation.annotation.Validated; | |||||
import org.springframework.web.bind.annotation.*; | |||||
/** | |||||
* 打卡控制台 | |||||
*/ | |||||
@Validated | |||||
@RequiredArgsConstructor | |||||
@RestController | |||||
@RequestMapping("/nj/rule/config") | |||||
@Slf4j | |||||
public class NjRuleConfigController extends BaseController { | |||||
@Autowired | |||||
private NjRuleConfigService njRuleConfigService; | |||||
// 查询当前用户考勤组 | |||||
@GetMapping("/queryRuleConfig") | |||||
public TableDataInfo<NjRuleConfigDTO> queryRule(NjRuleConfigDTO njRuleConfigDTO) { | |||||
return njRuleConfigService.queryRuleConfig(njRuleConfigDTO); | |||||
} | |||||
// 新增规则 | |||||
@PostMapping("/addRuleConfig") | |||||
public R<Boolean> addRule(@RequestBody NjRuleConfigDTO njRuleConfigDTO) { | |||||
return R.ok(njRuleConfigService.addRule(njRuleConfigDTO)); | |||||
} | |||||
// 删除规则 | |||||
@GetMapping("/delRule") | |||||
public R<Integer> delRule(@RequestParam("id") long id) { | |||||
return R.ok(njRuleConfigService.delRule(id)); | |||||
} | |||||
// 删除用户 | |||||
@DeleteMapping("/delUser/{id}") | |||||
public R<Void> delUser(@PathVariable Long id) { | |||||
return toAjax(njRuleConfigService.delUser(id)); | |||||
} | |||||
} |
package com.ruoyi.zhushi.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableField; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import com.ruoyi.common.core.domain.BaseEntity; | |||||
import lombok.Data; | |||||
import java.math.BigDecimal; | |||||
@Data | |||||
@TableName("nj_balance_manage") | |||||
public class NjBalanceManage extends BaseEntity { | |||||
@TableId(value = "id", type = IdType.AUTO) | |||||
private long id; | |||||
@TableField(value = "`user_id`") | |||||
private long userId; | |||||
@TableField(value = "`user_name`") | |||||
private String userName; | |||||
@TableField(value = "`nick_name`") | |||||
private String nickName; | |||||
@TableField(value = "`dept_name`") | |||||
private String deptName; | |||||
@TableField(value = "`annual_leave`") | |||||
private BigDecimal annualLeave; | |||||
@TableField(value = "`used_day`") | |||||
private BigDecimal usedDay; | |||||
@TableField(value = "`unused_day`") | |||||
private BigDecimal unusedDay; | |||||
@TableField(value = "`last_year_unused_day`") | |||||
private BigDecimal lastYearUnusedDay; | |||||
@TableField(value = "`is_enable`") | |||||
private Boolean isEnable; | |||||
} |
package com.ruoyi.zhushi.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableField; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import com.ruoyi.common.core.domain.BaseEntity; | |||||
import lombok.Data; | |||||
import java.math.BigDecimal; | |||||
@Data | |||||
public class NjBalanceManageDTO extends BaseEntity { | |||||
private long id; | |||||
private long userId; | |||||
private String userName; | |||||
private String nickName; | |||||
private String deptName; | |||||
private BigDecimal annualLeave; | |||||
private BigDecimal usedDay; | |||||
private BigDecimal unusedDay; | |||||
private BigDecimal lastYearUnusedDay; | |||||
private Boolean isEnable; | |||||
} |
package com.ruoyi.zhushi.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableField; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import com.ruoyi.common.core.domain.BaseEntity; | |||||
import lombok.Data; | |||||
@Data | |||||
@TableName("nj_rule_config") | |||||
public class NjRuleConfig extends BaseEntity { | |||||
@TableId(value = "id", type = IdType.AUTO) | |||||
private long id; | |||||
@TableField(value = "`rule_name`") | |||||
private String ruleName; | |||||
@TableField(value = "`calculation_method`") | |||||
private Integer calculationMethod; | |||||
@TableField(value = "`annualLeave_tiers`") | |||||
private Integer annualLeaveTiers; | |||||
@TableField(value = "`validity_period`") | |||||
private Boolean validityPeriod; | |||||
@TableField(value = "`allow_half_day`") | |||||
private Boolean allowHalfDay; | |||||
@TableField(value = "`applicable_range`") | |||||
private Boolean applicableRange; | |||||
@TableField(value = "`generation_cycle`") | |||||
private Boolean generationCycle; | |||||
} |
package com.ruoyi.zhushi.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableField; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import com.ruoyi.common.core.domain.BaseEntity; | |||||
import lombok.Data; | |||||
@Data | |||||
@TableName("nj_rule_config_and_user") | |||||
public class NjRuleConfigAndUser extends BaseEntity { | |||||
@TableId(value = "id", type = IdType.AUTO) | |||||
private long id; | |||||
@TableField(value = "`nj_rule_config_id`") | |||||
private long njRuleConfigId; | |||||
@TableField(value = "`rule_name`") | |||||
private String ruleName; | |||||
@TableField(value = "`user_id`") | |||||
private long userId; | |||||
@TableField(value = "`user_name`") | |||||
private String userName; | |||||
@TableField(value = "`nick_name`") | |||||
private String nickName; | |||||
@TableField(value = "`dept_name`") | |||||
private String deptName; | |||||
} |
package com.ruoyi.zhushi.entity; | |||||
import com.baomidou.mybatisplus.annotation.IdType; | |||||
import com.baomidou.mybatisplus.annotation.TableField; | |||||
import com.baomidou.mybatisplus.annotation.TableId; | |||||
import com.baomidou.mybatisplus.annotation.TableName; | |||||
import com.ruoyi.common.core.domain.BaseEntity; | |||||
import lombok.Data; | |||||
@Data | |||||
public class NjRuleConfigAndUserDTO extends BaseEntity { | |||||
private long id; | |||||
private long njRuleConfigId; | |||||
private String ruleName; | |||||
private long userId; | |||||
private String userName; | |||||
private String nickName; | |||||
private String deptName; | |||||
} |
package com.ruoyi.zhushi.entity; | |||||
import com.ruoyi.common.core.domain.BaseEntity; | |||||
import lombok.Data; | |||||
import java.util.List; | |||||
@Data | |||||
public class NjRuleConfigDTO extends BaseEntity { | |||||
private long id; | |||||
private String ruleName; | |||||
private Integer calculationMethod; | |||||
private Integer annualLeaveTiers; | |||||
private Boolean validityPeriod; | |||||
private Boolean allowHalfDay; | |||||
private Boolean applicableRange; | |||||
private Boolean generationCycle; | |||||
private List<DkUsers> members; | |||||
} |
package com.ruoyi.zhushi.mapper; | |||||
import com.ruoyi.common.core.mapper.BaseMapperPlus; | |||||
import com.ruoyi.zhushi.entity.NjBalanceManage; | |||||
import com.ruoyi.zhushi.entity.NjBalanceManageDTO; | |||||
import org.apache.ibatis.annotations.Mapper; | |||||
@Mapper | |||||
public interface NjBalanceManageMapper extends BaseMapperPlus<NjBalanceManageMapper, NjBalanceManage, NjBalanceManageDTO> { | |||||
} |
package com.ruoyi.zhushi.mapper; | |||||
import com.ruoyi.common.core.mapper.BaseMapperPlus; | |||||
import com.ruoyi.zhushi.entity.NjRuleConfigAndUser; | |||||
import com.ruoyi.zhushi.entity.NjRuleConfigAndUserDTO; | |||||
import org.apache.ibatis.annotations.Mapper; | |||||
@Mapper | |||||
public interface NjRuleConfigAndUserMapper extends BaseMapperPlus<NjRuleConfigAndUserMapper, NjRuleConfigAndUser, NjRuleConfigAndUserDTO> { | |||||
} |
package com.ruoyi.zhushi.mapper; | |||||
import com.ruoyi.common.core.mapper.BaseMapperPlus; | |||||
import com.ruoyi.zhushi.entity.NjRuleConfig; | |||||
import com.ruoyi.zhushi.entity.NjRuleConfigDTO; | |||||
import org.apache.ibatis.annotations.Mapper; | |||||
@Mapper | |||||
public interface NjRuleConfigMapper extends BaseMapperPlus<NjRuleConfigMapper, NjRuleConfig, NjRuleConfigDTO> { | |||||
} |
package com.ruoyi.zhushi.service; | |||||
import com.ruoyi.common.core.page.TableDataInfo; | |||||
import com.ruoyi.zhushi.entity.NjBalanceManageDTO; | |||||
public interface NjBalanceManageService { | |||||
TableDataInfo<NjBalanceManageDTO> queryPageList(NjBalanceManageDTO njBalanceManageDTO); | |||||
} |
package com.ruoyi.zhushi.service; | |||||
import com.ruoyi.common.core.page.TableDataInfo; | |||||
import com.ruoyi.zhushi.entity.NjRuleConfigDTO; | |||||
public interface NjRuleConfigService { | |||||
TableDataInfo<NjRuleConfigDTO> queryRuleConfig(NjRuleConfigDTO njRuleConfigDTO); | |||||
public Boolean addRule(NjRuleConfigDTO njRuleConfigDTO); | |||||
public int delRule(long id); | |||||
public int delUser(long id); | |||||
} |
package com.ruoyi.zhushi.service.impl; | |||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; | |||||
import com.ruoyi.common.core.page.TableDataInfo; | |||||
import com.ruoyi.zhushi.entity.NjBalanceManage; | |||||
import com.ruoyi.zhushi.entity.NjBalanceManageDTO; | |||||
import com.ruoyi.zhushi.mapper.NjBalanceManageMapper; | |||||
import com.ruoyi.zhushi.service.NjBalanceManageService; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import java.util.List; | |||||
@Service | |||||
public class NjBalanceManageServiceImpl implements NjBalanceManageService { | |||||
@Autowired | |||||
private NjBalanceManageMapper njBalanceManageMapper; | |||||
@Override | |||||
public TableDataInfo<NjBalanceManageDTO> queryPageList(NjBalanceManageDTO njBalanceManageDTO) { | |||||
LambdaQueryWrapper<NjBalanceManage> queryWrapper = new LambdaQueryWrapper<>(); | |||||
queryWrapper.eq(njBalanceManageDTO.getUserName()!= null, NjBalanceManage::getUserName, njBalanceManageDTO.getUserName()); | |||||
queryWrapper.eq(njBalanceManageDTO.getNickName()!= null, NjBalanceManage::getNickName, njBalanceManageDTO.getNickName()); | |||||
List<NjBalanceManageDTO> njBalanceManageDTOS = njBalanceManageMapper.selectVoList(queryWrapper, NjBalanceManageDTO.class); | |||||
return TableDataInfo.build(njBalanceManageDTOS); | |||||
} | |||||
} |
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.toolkit.Wrappers; | |||||
import com.ruoyi.common.annotation.Translation; | |||||
import com.ruoyi.common.core.page.TableDataInfo; | |||||
import com.ruoyi.zhushi.entity.*; | |||||
import com.ruoyi.zhushi.mapper.NjRuleConfigAndUserMapper; | |||||
import com.ruoyi.zhushi.mapper.NjRuleConfigMapper; | |||||
import com.ruoyi.zhushi.service.NjRuleConfigService; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Service; | |||||
import java.util.ArrayList; | |||||
import java.util.List; | |||||
@Service | |||||
public class NjRuleConfigServiceImpl implements NjRuleConfigService { | |||||
@Autowired | |||||
private NjRuleConfigMapper njRuleConfigMapper; | |||||
@Autowired | |||||
private NjRuleConfigAndUserMapper njRuleConfigAndUserMapper; | |||||
@Override | |||||
public TableDataInfo<NjRuleConfigDTO> queryRuleConfig(NjRuleConfigDTO njRuleConfigDTO) { | |||||
LambdaQueryWrapper<NjRuleConfig> queryWrapper = Wrappers.lambdaQuery(); | |||||
queryWrapper.eq(null != njRuleConfigDTO.getRuleName(), NjRuleConfig::getRuleName, njRuleConfigDTO.getRuleName()); | |||||
List<NjRuleConfigDTO> njRuleConfigDTOS = njRuleConfigMapper.selectVoList(queryWrapper, NjRuleConfigDTO.class); | |||||
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); | |||||
} | |||||
}); | |||||
return TableDataInfo.build(njRuleConfigDTOS); | |||||
} | |||||
@Override | |||||
public Boolean addRule(NjRuleConfigDTO njRuleConfigDTO) { | |||||
NjRuleConfig njRuleConfig = new NjRuleConfig(); | |||||
BeanUtil.copyProperties(njRuleConfigDTO, njRuleConfig); | |||||
njRuleConfigMapper.insertOrUpdate(njRuleConfig); | |||||
List<NjRuleConfigAndUser> njRuleConfigAndUsers = new ArrayList<>(); | |||||
if(null != njRuleConfigDTO.getMembers() && njRuleConfigDTO.getMembers().size() > 0){ | |||||
njRuleConfigDTO.getMembers() | |||||
.forEach(user -> { | |||||
NjRuleConfigAndUser njRuleConfigAndUser = new NjRuleConfigAndUser(); | |||||
njRuleConfigAndUser.setNjRuleConfigId(njRuleConfig.getId()); | |||||
njRuleConfigAndUser.setRuleName(njRuleConfig.getRuleName()); | |||||
njRuleConfigAndUser.setUserId(user.getUserId()); | |||||
njRuleConfigAndUser.setUserName(user.getUserName()); | |||||
njRuleConfigAndUser.setNickName(user.getNickName()); | |||||
njRuleConfigAndUsers.add(njRuleConfigAndUser); | |||||
}); | |||||
} | |||||
return njRuleConfigAndUserMapper.insertOrUpdateBatch(njRuleConfigAndUsers); | |||||
} | |||||
@Override | |||||
public int delRule(long id) { | |||||
return njRuleConfigMapper.deleteById(id); | |||||
} | |||||
@Override | |||||
public int delUser(long id) { | |||||
return njRuleConfigAndUserMapper.deleteById(id); | |||||
} | |||||
} |