提交 6d2ed11a authored 作者: 李秋林's avatar 李秋林

1、岗位绑定考勤规则;2、创建SysPostDto与SysPost解耦;3、创建user时绑定岗位;4、创建UserDto与SysUser解偶

上级 0d4eb407
......@@ -2,6 +2,8 @@ package com.sfa.system.controller;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.sfa.system.domain.dao.ISysPostDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -21,7 +23,6 @@ import com.sfa.common.log.enums.BusinessType;
import com.sfa.common.security.annotation.RequiresPermissions;
import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.system.domain.entity.SysPost;
import com.sfa.system.service.ISysPostService;
/**
* 岗位信息操作处理
......@@ -33,7 +34,7 @@ import com.sfa.system.service.ISysPostService;
public class SysPostController extends BaseController
{
@Autowired
private ISysPostService postService;
private ISysPostDao postService;
/**
* 获取岗位列表
......@@ -84,6 +85,7 @@ public class SysPostController extends BaseController
return error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
}
post.setCreateBy(SecurityUtils.getUsername());
post.setCreateUserId(SecurityUtils.getUserId());
return toAjax(postService.insertPost(post));
}
......
......@@ -24,7 +24,7 @@ import com.sfa.system.api.RemoteFileService;
import com.sfa.system.api.domain.SysFile;
import com.sfa.system.api.domain.SysUser;
import com.sfa.system.api.model.LoginUser;
import com.sfa.system.service.ISysUserService;
import com.sfa.system.domain.dao.ISysUserDao;
/**
* 个人信息 业务处理
......@@ -36,7 +36,7 @@ import com.sfa.system.service.ISysUserService;
public class SysProfileController extends BaseController
{
@Autowired
private ISysUserService userService;
private ISysUserDao userService;
@Autowired
private TokenService tokenService;
......
......@@ -26,7 +26,7 @@ import com.sfa.system.api.domain.SysUser;
import com.sfa.system.domain.entity.SysUserRole;
import com.sfa.system.service.ISysDeptService;
import com.sfa.system.service.ISysRoleService;
import com.sfa.system.service.ISysUserService;
import com.sfa.system.domain.dao.ISysUserDao;
/**
* 角色信息
......@@ -41,7 +41,7 @@ public class SysRoleController extends BaseController
private ISysRoleService roleService;
@Autowired
private ISysUserService userService;
private ISysUserDao userService;
@Autowired
private ISysDeptService deptService;
......
......@@ -5,6 +5,8 @@ import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.sfa.system.domain.dao.ISysPostDao;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
......@@ -35,9 +37,8 @@ import com.sfa.system.api.model.LoginUser;
import com.sfa.system.service.ISysConfigService;
import com.sfa.system.service.ISysDeptService;
import com.sfa.system.service.ISysPermissionService;
import com.sfa.system.service.ISysPostService;
import com.sfa.system.service.ISysRoleService;
import com.sfa.system.service.ISysUserService;
import com.sfa.system.domain.dao.ISysUserDao;
/**
* 用户信息
......@@ -49,7 +50,7 @@ import com.sfa.system.service.ISysUserService;
public class SysUserController extends BaseController
{
@Autowired
private ISysUserService userService;
private ISysUserDao userService;
@Autowired
private ISysRoleService roleService;
......@@ -58,7 +59,7 @@ public class SysUserController extends BaseController
private ISysDeptService deptService;
@Autowired
private ISysPostService postService;
private ISysPostDao postService;
@Autowired
private ISysPermissionService permissionService;
......@@ -204,29 +205,29 @@ public class SysUserController extends BaseController
/**
* 新增用户
*/
@RequiresPermissions("system:user:add")
@Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysUser user)
{
deptService.checkDeptDataScope(user.getDeptId());
roleService.checkRoleDataScope(user.getRoleIds());
if (!userService.checkUserNameUnique(user))
{
return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
}
else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
{
return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
}
else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
{
return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setCreateBy(SecurityUtils.getUsername());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
return toAjax(userService.insertUser(user));
}
// @RequiresPermissions("system:user:add")
// @Log(title = "用户管理", businessType = BusinessType.INSERT)
// @PostMapping
// public AjaxResult add(@Validated @RequestBody UserVo userVo)
// {
// deptService.checkDeptDataScope(userVo.getDeptId());
// roleService.checkRoleDataScope(userVo.getRoleIds());
// if (!userService.checkUserNameUnique(user))
// {
// return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
// }
// else if (StringUtils.isNotEmpty(user.getPhonenumber()) && !userService.checkPhoneUnique(user))
// {
// return error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
// }
// else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user))
// {
// return error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
// }
// userVo.setCreateBy(SecurityUtils.getUsername());
// userVo.setPassword(SecurityUtils.encryptPassword(userVo.getPassword()));
// return toAjax(userService.insertUser(userVo));
// }
/**
* 修改用户
......
......@@ -3,9 +3,10 @@ package com.sfa.system.controller.core;
import java.util.List;
import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.system.pojo.request.MdmKqRuleVo;
import com.sfa.system.pojo.response.MdmKqRuleDto;
import com.sfa.system.service.core.MdmKqRuleService;
import com.sfa.system.service.core.IMdmKqRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
......@@ -31,15 +32,15 @@ import com.sfa.common.core.web.controller.BaseController;
@RequestMapping("/kq_rule")
public class KqRuleCoreController extends BaseController {
@Autowired
private MdmKqRuleService mdmKqRuleService;
private IMdmKqRuleService IMdmKqRuleService;
/**
* 查询考勤规则列表
*/
@RequiresPermissions("gen:rule:list")
@GetMapping("/list")
public List<MdmKqRuleDto> list(MdmKqRuleVo mdmKqRuleVo) {
return mdmKqRuleService.selectMdmKqRuleList(mdmKqRuleVo);
@PostMapping("/list")
public List<MdmKqRuleDto> list(@RequestBody MdmKqRuleVo mdmKqRuleVo) {
return IMdmKqRuleService.selectMdmKqRuleList(mdmKqRuleVo);
}
// /**
......@@ -61,7 +62,7 @@ public class KqRuleCoreController extends BaseController {
@RequiresPermissions("gen:rule:query")
@GetMapping(value = "/{ruleId}")
public MdmKqRuleDto getInfo(@PathVariable("ruleId") Long ruleId) {
return mdmKqRuleService.selectMdmKqRuleByRuleId(ruleId);
return IMdmKqRuleService.selectMdmKqRuleByRuleId(ruleId);
}
/**
......@@ -71,7 +72,11 @@ public class KqRuleCoreController extends BaseController {
@Log(title = "考勤规则", businessType = BusinessType.INSERT)
@PostMapping("/add")
public void add(@RequestBody @Validated MdmKqRuleVo mdmKqRuleVo) {
mdmKqRuleService.insertMdmKqRule(mdmKqRuleVo);
Long userId = SecurityUtils.getUserId();
String username = SecurityUtils.getUsername();
mdmKqRuleVo.setCreateBy(username);
mdmKqRuleVo.setCreateUserId(userId);
IMdmKqRuleService.insertMdmKqRule(mdmKqRuleVo);
}
/**
......@@ -80,8 +85,12 @@ public class KqRuleCoreController extends BaseController {
@RequiresPermissions("gen:rule:edit")
@Log(title = "考勤规则", businessType = BusinessType.UPDATE)
@PutMapping("/put")
public void edit(@RequestBody @Validated MdmKqRuleVo mdmKqRuleVo) {
mdmKqRuleService.updateMdmKqRule(mdmKqRuleVo);
public void edit(@RequestBody MdmKqRuleVo mdmKqRuleVo) {
Long userId = SecurityUtils.getUserId();
String username = SecurityUtils.getUsername();
mdmKqRuleVo.setUpdateBy(username);
mdmKqRuleVo.setUpdateUserId(userId);
IMdmKqRuleService.updateMdmKqRule(mdmKqRuleVo);
}
// /**
......
package com.sfa.system.controller.core;
import com.sfa.common.log.annotation.Log;
import com.sfa.common.log.enums.BusinessType;
import com.sfa.common.security.annotation.RequiresPermissions;
import com.sfa.common.security.utils.SecurityUtils;
import com.sfa.system.api.pojo.request.UserVo;
import com.sfa.system.service.ISysDeptService;
import com.sfa.system.service.ISysRoleService;
import com.sfa.system.service.core.ISysUserCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author : liqiulin
* @date : 2024-10-30 17
* @describe :
*/
@RestController
@RequestMapping("/user")
public class SysUserCoreController {
@Autowired
private ISysRoleService roleService;
@Autowired
private ISysDeptService deptService;
@Autowired
private ISysUserCoreService sysUserService;
/**
* 新增用户
*/
@RequiresPermissions("system:user:add")
@Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping
public void add(@Validated @RequestBody UserVo userVo)
{
deptService.checkDeptDataScope(userVo.getDeptId());
roleService.checkRoleDataScope(userVo.getRoleIds());
userVo.setCreateUserId(SecurityUtils.getUserId());
userVo.setCreateBy(SecurityUtils.getUsername());
userVo.setPassword(SecurityUtils.encryptPassword(userVo.getPassword()));
sysUserService.insertUser(userVo);
}
}
......@@ -3,7 +3,7 @@ package com.sfa.system.controller.query;
import com.sfa.common.core.web.controller.BaseController;
import com.sfa.system.pojo.request.GeneralQueryVo;
import com.sfa.system.pojo.response.GeneralQueryResponse;
import com.sfa.system.service.query.GeneralQueryService;
import com.sfa.system.service.query.IGeneralQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -17,7 +17,7 @@ import org.springframework.web.bind.annotation.*;
public class GeneralQueryController extends BaseController {
@Autowired
GeneralQueryService generalQueryService;
IGeneralQueryService IGeneralQueryService;
/**
* 根据开窗ID查询数据
......@@ -25,7 +25,7 @@ public class GeneralQueryController extends BaseController {
*/
@PostMapping("/window")
public GeneralQueryResponse queryTableDatas(@RequestBody GeneralQueryVo generalQueryVo){
return generalQueryService.queryTableDatas(generalQueryVo);
return IGeneralQueryService.queryTableDatas(generalQueryVo);
}
}
package com.sfa.system.domain.dao;
import com.sfa.system.domain.wq.MdmKqRuleWq;
import com.sfa.system.pojo.request.MdmKqRuleVo;
import com.sfa.system.pojo.response.MdmKqRuleDto;
......@@ -10,7 +11,7 @@ import java.util.List;
* @date : 2024-10-29 14
* @describe :
*/
public interface MdmKqRuleDao {
public interface IMdmKqRuleDao {
/**
* 查询考勤规则
......@@ -20,13 +21,15 @@ public interface MdmKqRuleDao {
*/
public MdmKqRuleDto selectMdmKqRuleByRuleId(Long ruleId);
public MdmKqRuleDto selectMdmKqRuleByRuleNum(String ruleNum);
/**
* 查询考勤规则列表
*
* @param mdmKqRuleVo 考勤规则
* @param mdmKqRuleWq 查询条件合集
* @return 考勤规则集合
*/
public List<MdmKqRuleDto> selectMdmKqRuleList(MdmKqRuleVo mdmKqRuleVo);
public List<MdmKqRuleDto> selectMdmKqRuleList(MdmKqRuleWq mdmKqRuleWq);
/**
* 新增考勤规则
......
package com.sfa.system.service;
package com.sfa.system.domain.dao;
import java.util.List;
import com.sfa.system.domain.entity.SysPost;
import com.sfa.system.pojo.response.SysPostDto;
/**
* 岗位信息 服务层
*
* @author ruoyi
*/
public interface ISysPostService
public interface ISysPostDao
{
/**
* 查询岗位信息集合
......@@ -96,4 +97,6 @@ public interface ISysPostService
* @return 结果
*/
public int updatePost(SysPost post);
SysPostDto selectPostByPostCode(String postCode);
}
package com.sfa.system.service;
package com.sfa.system.domain.dao;
import java.util.List;
import com.sfa.system.api.domain.SysUser;
import com.sfa.system.api.pojo.request.UserVo;
/**
* 用户 业务层
*
* @author ruoyi
*/
public interface ISysUserService
public interface ISysUserDao
{
/**
* 根据条件分页查询用户列表
......@@ -107,10 +108,10 @@ public interface ISysUserService
/**
* 新增用户信息
*
* @param user 用户信息
* @param userVo 用户信息
* @return 结果
*/
public int insertUser(SysUser user);
public int insertUser(UserVo userVo);
/**
* 注册用户信息
......
package com.sfa.system.domain.dao.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.CheckedException;
import com.sfa.common.core.exception.WXLSQLException;
import com.sfa.system.domain.dao.MdmKqRuleDao;
import com.sfa.system.domain.dao.IMdmKqRuleDao;
import com.sfa.system.domain.entity.MdmKqRule;
import com.sfa.system.domain.mapper.MdmKqRuleMapper;
import com.sfa.system.domain.wq.MdmKqRuleWq;
import com.sfa.system.pojo.request.MdmKqRuleVo;
import com.sfa.system.pojo.response.MdmKqRuleDto;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -23,7 +26,7 @@ import java.util.Objects;
* @describe :
*/
@Service
public class IMdmKqRuleDao implements MdmKqRuleDao {
public class MdmKqRuleDaoImpl implements IMdmKqRuleDao {
@Autowired
private MdmKqRuleMapper mdmKqRuleMapper;
......@@ -39,15 +42,22 @@ public class IMdmKqRuleDao implements MdmKqRuleDao {
return transitionDto(mdmKqRule);
}
@Override
public MdmKqRuleDto selectMdmKqRuleByRuleNum(String ruleNum) {
MdmKqRule mdmKqRule = mdmKqRuleMapper.selectByRuleNum(ruleNum);
return transitionDto(mdmKqRule);
}
/**
* 查询考勤规则列表
*
* @param mdmKqRuleVo 考勤规则
* @param mdmKqRuleWq 考勤规则查询条件
* @return 考勤规则
*/
@Override
public List<MdmKqRuleDto> selectMdmKqRuleList(MdmKqRuleVo mdmKqRuleVo) {
List<MdmKqRule> mdmKqRules = mdmKqRuleMapper.selectList(new QueryWrapper<>());
public List<MdmKqRuleDto> selectMdmKqRuleList(MdmKqRuleWq mdmKqRuleWq) {
LambdaQueryWrapper<MdmKqRule> qw = buildWrapper(mdmKqRuleWq);
List<MdmKqRule> mdmKqRules = mdmKqRuleMapper.selectList(qw);
return transitionDtos(mdmKqRules);
}
......@@ -59,6 +69,12 @@ public class IMdmKqRuleDao implements MdmKqRuleDao {
*/
@Override
public int insertMdmKqRule(MdmKqRuleVo mdmKqRuleVo) {
LambdaQueryWrapper<MdmKqRule> qw = buildWrapper(new MdmKqRuleWq().setRuleName(mdmKqRuleVo.getRuleName()));
MdmKqRule mdmKqRule = mdmKqRuleMapper.selectOne(qw);
if (!Objects.isNull(mdmKqRule)){
throw new CheckedException(ECode.DB_TABLE_UNIQUE_EXIST, "考勤名称");
}
try {
MdmKqRule mdo = new MdmKqRule();
BeanUtils.copyProperties(mdmKqRuleVo, mdo);
......@@ -66,7 +82,7 @@ public class IMdmKqRuleDao implements MdmKqRuleDao {
} catch (Exception e) {
String eMsg = e.getCause().getMessage();
if (eMsg.contains("for key 'mdm_kq_rule_unique'")) {
throw new WXLSQLException(ECode.API_ERROR, "考勤编码");
throw new WXLSQLException(ECode.DB_TABLE_UNIQUE_EXIST, "考勤编码");
}
return -1;
}
......@@ -80,17 +96,17 @@ public class IMdmKqRuleDao implements MdmKqRuleDao {
*/
@Override
public int updateMdmKqRule(MdmKqRuleVo mdmKqRuleVo) {
try {
MdmKqRule mdo = new MdmKqRule();
BeanUtils.copyProperties(mdmKqRuleVo, mdo);
return mdmKqRuleMapper.updateById(mdo);
} catch (Exception e) {
String eMsg = e.getCause().getMessage();
if (eMsg.contains("for key 'mdm_kq_rule_unique'")) {
throw new WXLSQLException(ECode.API_ERROR, "考勤编码");
}
return -1;
LambdaQueryWrapper<MdmKqRule> qw = new LambdaQueryWrapper<>();
qw.eq(MdmKqRule::getRuleId,mdmKqRuleVo.getRuleId())
.eq(MdmKqRule::getFlag,mdmKqRuleVo.getFlag());
MdmKqRule mdmKqRuleDo = mdmKqRuleMapper.selectOne(qw);
if (Objects.isNull(mdmKqRuleDo)){
throw new CheckedException(ECode.DB_TABLE_FLAG_NOTEXIST);
}
MdmKqRule mdo = new MdmKqRule();
BeanUtils.copyProperties(mdmKqRuleVo, mdo);
mdo.setFlag(mdo.getFlag()+1);
return mdmKqRuleMapper.updateById(mdo);
}
/**
......@@ -115,6 +131,23 @@ public class IMdmKqRuleDao implements MdmKqRuleDao {
return mdmKqRuleMapper.deleteMdmKqRuleByRuleId(ruleId);
}
private LambdaQueryWrapper<MdmKqRule> buildWrapper(MdmKqRuleWq mdmKqRuleWq) {
LambdaQueryWrapper<MdmKqRule> queryWrapper = new LambdaQueryWrapper<>();
if (!StringUtils.isBlank(mdmKqRuleWq.getRuleName())){
queryWrapper.eq(MdmKqRule::getRuleName,mdmKqRuleWq.getRuleName());
}
if (!StringUtils.isBlank(mdmKqRuleWq.getRuleNameLike())){
queryWrapper.like(MdmKqRule::getRuleName,mdmKqRuleWq.getRuleNameLike());
}
if (!StringUtils.isBlank(mdmKqRuleWq.getCreateByLike())){
queryWrapper.like(MdmKqRule::getCreateBy,mdmKqRuleWq.getCreateByLike());
}
queryWrapper.eq(MdmKqRule::getDelFlag,"0");
return queryWrapper;
}
/**
* DO to DTO (单个对象)
*
......
package com.sfa.system.service.impl;
package com.sfa.system.domain.dao.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import com.sfa.system.domain.dao.ISysPostDao;
import com.sfa.system.pojo.response.SysPostDto;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sfa.common.core.constant.UserConstants;
......@@ -9,7 +15,7 @@ import com.sfa.common.core.utils.StringUtils;
import com.sfa.system.domain.entity.SysPost;
import com.sfa.system.domain.mapper.SysPostMapper;
import com.sfa.system.domain.mapper.SysUserPostMapper;
import com.sfa.system.service.ISysPostService;
import org.springframework.util.CollectionUtils;
/**
* 岗位信息 服务层处理
......@@ -17,7 +23,7 @@ import com.sfa.system.service.ISysPostService;
* @author ruoyi
*/
@Service
public class SysPostServiceImpl implements ISysPostService
public class SysPostDaoImpl implements ISysPostDao
{
@Autowired
private SysPostMapper postMapper;
......@@ -161,7 +167,7 @@ public class SysPostServiceImpl implements ISysPostService
@Override
public int insertPost(SysPost post)
{
return postMapper.insertPost(post);
return postMapper.insert(post);
}
/**
......@@ -175,4 +181,40 @@ public class SysPostServiceImpl implements ISysPostService
{
return postMapper.updatePost(post);
}
@Override
public SysPostDto selectPostByPostCode(String postCode) {
SysPost sysPost = postMapper.selectPostByPostCode(postCode);
return transitionDto(sysPost);
}
/**
* DO to DTO (单个对象)
*
* @param ydos DO对象List
* @return DTO对象
*/
private List<SysPostDto> transitionDtos(List<SysPost> ydos) {
if (CollectionUtils.isEmpty(ydos)) {
return new ArrayList<>();
}
List<SysPostDto> dtos = new ArrayList<>(ydos.size() * 2);
for (SysPost ydo : ydos) {
dtos.add(transitionDto(ydo));
}
return dtos;
}
private SysPostDto transitionDto(SysPost ydo) {
SysPostDto dto = null;
if (Objects.isNull(ydo)) {
return dto;
}
dto = new SysPostDto();
BeanUtils.copyProperties(ydo, dto);
return dto;
}
}
package com.sfa.system.service.impl;
package com.sfa.system.domain.dao.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.Validator;
import com.sfa.common.core.enums.ECode;
import com.sfa.common.core.exception.WXLSQLException;
import com.sfa.common.core.utils.bean.BeanUtils;
import com.sfa.system.api.pojo.request.UserVo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -29,7 +34,7 @@ import com.sfa.system.domain.mapper.SysUserPostMapper;
import com.sfa.system.domain.mapper.SysUserRoleMapper;
import com.sfa.system.service.ISysConfigService;
import com.sfa.system.service.ISysDeptService;
import com.sfa.system.service.ISysUserService;
import com.sfa.system.domain.dao.ISysUserDao;
/**
* 用户 业务层处理
......@@ -37,9 +42,9 @@ import com.sfa.system.service.ISysUserService;
* @author ruoyi
*/
@Service
public class SysUserServiceImpl implements ISysUserService
public class SysUserDaoImpl implements ISysUserDao
{
private static final Logger log = LoggerFactory.getLogger(SysUserServiceImpl.class);
private static final Logger log = LoggerFactory.getLogger(SysUserDaoImpl.class);
@Autowired
private SysUserMapper userMapper;
......@@ -253,20 +258,31 @@ public class SysUserServiceImpl implements ISysUserService
/**
* 新增保存用户信息
*
* @param user 用户信息
* @param userVo 用户信息参数
* @return 结果
*/
@Override
@Transactional(rollbackFor = Exception.class)
public int insertUser(SysUser user)
{
// 新增用户信息
int rows = userMapper.insertUser(user);
// 新增用户岗位关联
insertUserPost(user);
// 新增用户与角色管理
insertUserRole(user);
return rows;
public int insertUser(UserVo userVo) {
try {
SysUser user = new SysUser();
BeanUtils.copyProperties(userVo, user);
// 新增用户信息
int rows = userMapper.insert(user);
// 新增用户岗位关联
insertUserPost(user);
// 新增用户与角色管理
insertUserRole(user);
return rows;
} catch (Exception e) {
String eMsg = e.getCause().getMessage();
if (eMsg.contains("for key 'unique_phonenumber'")) {
throw new WXLSQLException(ECode.DB_TABLE_UNIQUE_EXIST, "手机号");
} else if (eMsg.contains("for key 'unique_user_name'")) {
throw new WXLSQLException(ECode.DB_TABLE_UNIQUE_EXIST, "登录账号");
}
throw new WXLSQLException(ECode.DB_TABLE_UPDATE_ERROR);
}
}
/**
......
package com.sfa.system.domain.entity;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
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.sfa.common.core.annotation.Excel;
import com.sfa.common.core.annotation.Excel.ColumnType;
import com.sfa.common.core.web.domain.BaseEntity;
import com.sfa.common.core.web.domain.BaseDo;
import lombok.Data;
/**
* 岗位表 sys_post
*
* @author ruoyi
*/
public class SysPost extends BaseEntity
@TableName(value ="sys_post")
@Data
public class SysPost extends BaseDo
{
private static final long serialVersionUID = 1L;
/** 岗位序号 */
@Excel(name = "岗位序号", cellType = ColumnType.NUMERIC)
@TableId(type = IdType.AUTO)
private Long postId;
/** 岗位编码 */
......@@ -34,91 +37,98 @@ public class SysPost extends BaseEntity
@Excel(name = "岗位排序")
private Integer postSort;
/** 考勤规则ID */
private String ruleNum;
/** 考勤规则名称 */
private String ruleName;
/** 状态(0正常 1停用) */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/** 用户是否存在此岗位标识 默认不存在 */
@TableField(exist = false)
private boolean flag = false;
public Long getPostId()
{
return postId;
}
public void setPostId(Long postId)
{
this.postId = postId;
}
@NotBlank(message = "岗位编码不能为空")
@Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
public String getPostCode()
{
return postCode;
}
public void setPostCode(String postCode)
{
this.postCode = postCode;
}
@NotBlank(message = "岗位名称不能为空")
@Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
public String getPostName()
{
return postName;
}
public void setPostName(String postName)
{
this.postName = postName;
}
@NotNull(message = "显示顺序不能为空")
public Integer getPostSort()
{
return postSort;
}
public void setPostSort(Integer postSort)
{
this.postSort = postSort;
}
public String getStatus()
{
return status;
}
public void setStatus(String status)
{
this.status = status;
}
public boolean isFlag()
{
return flag;
}
public void setFlag(boolean flag)
{
this.flag = flag;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("postId", getPostId())
.append("postCode", getPostCode())
.append("postName", getPostName())
.append("postSort", getPostSort())
.append("status", getStatus())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.toString();
}
//
// public Long getPostId()
// {
// return postId;
// }
//
// public void setPostId(Long postId)
// {
// this.postId = postId;
// }
//
// @NotBlank(message = "岗位编码不能为空")
// @Size(min = 0, max = 64, message = "岗位编码长度不能超过64个字符")
// public String getPostCode()
// {
// return postCode;
// }
//
// public void setPostCode(String postCode)
// {
// this.postCode = postCode;
// }
//
// @NotBlank(message = "岗位名称不能为空")
// @Size(min = 0, max = 50, message = "岗位名称长度不能超过50个字符")
// public String getPostName()
// {
// return postName;
// }
//
// public void setPostName(String postName)
// {
// this.postName = postName;
// }
//
// @NotNull(message = "显示顺序不能为空")
// public Integer getPostSort()
// {
// return postSort;
// }
//
// public void setPostSort(Integer postSort)
// {
// this.postSort = postSort;
// }
//
// public String getStatus()
// {
// return status;
// }
//
// public void setStatus(String status)
// {
// this.status = status;
// }
//
// public boolean isFlag()
// {
// return flag;
// }
//
// public void setFlag(boolean flag)
// {
// this.flag = flag;
// }
//
// @Override
// public String toString() {
// return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
// .append("postId", getPostId())
// .append("postCode", getPostCode())
// .append("postName", getPostName())
// .append("postSort", getPostSort())
// .append("status", getStatus())
// .append("createBy", getCreateBy())
// .append("createTime", getCreateTime())
// .append("updateBy", getUpdateBy())
// .append("updateTime", getUpdateTime())
// .append("remark", getRemark())
// .toString();
// }
}
......@@ -4,6 +4,7 @@ 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.sfa.common.core.web.domain.BaseDo;
import com.sfa.common.core.web.domain.BaseEntity;
import lombok.Data;
......@@ -13,7 +14,7 @@ import lombok.Data;
*/
@TableName(value ="sys_query")
@Data
public class SysQuery extends BaseEntity {
public class SysQuery extends BaseDo {
/**
* 开窗查询ID
*/
......
......@@ -64,4 +64,6 @@ public interface MdmKqRuleMapper extends BaseMapper<MdmKqRule> {
* @return 结果
*/
public int deleteMdmKqRuleByRuleIds(Long[] ruleIds);
MdmKqRule selectByRuleNum(String ruleNum);
}
package com.sfa.system.domain.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.sfa.system.domain.entity.SysPost;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 岗位信息 数据层
*
......@@ -13,7 +14,7 @@ import org.springframework.stereotype.Repository;
*/
@Repository
@Mapper
public interface SysPostMapper
public interface SysPostMapper extends BaseMapper<SysPost>
{
/**
* 查询岗位数据集合
......@@ -101,4 +102,6 @@ public interface SysPostMapper
* @return 结果
*/
public SysPost checkPostCodeUnique(String postCode);
SysPost selectPostByPostCode(String postCode);
}
......@@ -2,6 +2,7 @@ package com.sfa.system.domain.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import com.sfa.system.api.domain.SysUser;
......@@ -14,7 +15,7 @@ import org.springframework.stereotype.Repository;
*/
@Repository
@Mapper
public interface SysUserMapper
public interface SysUserMapper extends BaseMapper<SysUser>
{
/**
* 根据条件分页查询用户列表
......
package com.sfa.system.domain.wq;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* @author : liqiulin
* @date : 2024-10-30 11
* @describe :
*/
@Data
@Accessors(chain = true)
public class MdmKqRuleWq {
private String ruleName;
private String ruleNameLike;
private String createByLike;
}
......@@ -9,6 +9,7 @@ import lombok.NoArgsConstructor;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.time.LocalTime;
import java.util.Date;
/**
* @author : liqiulin
......@@ -61,11 +62,16 @@ public class MdmKqRuleVo {
@NotNull(message = "下班时间范围不可为空")
private LocalTime thiEndtime;
/** 创建人 */
/** 创建/修改者 */
private String createBy;
private Long createUserId;
private String updateBy;
private Long updateUserId;
/** 备注 */
private String remark;
/** 记录版本 */
private Long flag;
}
......@@ -20,6 +20,8 @@ public class GeneralQueryResponse <T> {
*/
Object boxhead;
String queryNum;
/**
* 查询信息
*/
......
......@@ -56,6 +56,9 @@ public class MdmKqRuleDto {
/** 更新时间 */
private Date updateTime;
/** 记录版本 */
private Long flag;
/** 备注 */
private String remark;
}
package com.sfa.system.pojo.response;
import com.sfa.common.core.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
/**
* @author : liqiulin
* @date : 2024-10-30 18
* @describe :
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SysPostDto {
/** 岗位序号 */
@Excel(name = "岗位序号", cellType = Excel.ColumnType.NUMERIC)
private Long postId;
/** 岗位编码 */
@Excel(name = "岗位编码")
private String postCode;
/** 岗位名称 */
@Excel(name = "岗位名称")
private String postName;
/** 岗位排序 */
@Excel(name = "岗位排序")
private Integer postSort;
/** 考勤规则ID */
private String ruleNum;
/** 考勤规则名称 */
private String ruleName;
/** 状态(0正常 1停用) */
@Excel(name = "状态", readConverterExp = "0=正常,1=停用")
private String status;
/** 用户是否存在此岗位标识 默认不存在 */
private boolean flag = false;
/** 创建者 */
private String createBy;
/** 创建者 */
private Long createUserId;
/** 创建时间 */
private Date createTime;
/** 更新者 */
private String updateBy;
/** 更新者 */
private Long updateUserId;
/** 更新时间 */
private Date updateTime;
/** 备注 */
private String remark;
}
......@@ -10,7 +10,7 @@ import java.util.List;
* @date : 2024-10-29 14
* @describe :
*/
public interface MdmKqRuleService {
public interface IMdmKqRuleService {
List<MdmKqRuleDto> selectMdmKqRuleList(MdmKqRuleVo mdmKqRuleVo);
......
package com.sfa.system.service.core;
import com.sfa.system.api.pojo.request.UserVo;
/**
* @author : liqiulin
* @date : 2024-10-30 17
* @describe :
*/
public interface ISysUserCoreService {
void insertUser(UserVo userVo);
}
package com.sfa.system.service.core.impl;
import com.sfa.system.domain.dao.MdmKqRuleDao;
import com.sfa.system.domain.entity.MdmKqRule;
import com.sfa.system.domain.dao.IMdmKqRuleDao;
import com.sfa.system.domain.wq.MdmKqRuleWq;
import com.sfa.system.pojo.request.MdmKqRuleVo;
import com.sfa.system.pojo.response.MdmKqRuleDto;
import com.sfa.system.service.core.MdmKqRuleService;
import com.sfa.system.service.core.IMdmKqRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -16,28 +16,29 @@ import java.util.List;
* @describe :
*/
@Service
public class IMdmKqRuleService implements MdmKqRuleService {
public class IMdmKqRuleServiceImpl implements IMdmKqRuleService {
@Autowired
MdmKqRuleDao mdmKqRuleDao;
IMdmKqRuleDao IMdmKqRuleDao;
@Override
public List<MdmKqRuleDto> selectMdmKqRuleList(MdmKqRuleVo mdmKqRuleVo) {
return mdmKqRuleDao.selectMdmKqRuleList(mdmKqRuleVo);
public List<MdmKqRuleDto> selectMdmKqRuleList(MdmKqRuleVo ruleVo) {
MdmKqRuleWq mdmKqRuleWq = new MdmKqRuleWq().setRuleNameLike(ruleVo.getRuleName()).setCreateByLike(ruleVo.getCreateBy());
return IMdmKqRuleDao.selectMdmKqRuleList(mdmKqRuleWq);
}
@Override
public MdmKqRuleDto selectMdmKqRuleByRuleId(Long ruleId) {
return mdmKqRuleDao.selectMdmKqRuleByRuleId(ruleId);
return IMdmKqRuleDao.selectMdmKqRuleByRuleId(ruleId);
}
@Override
public void insertMdmKqRule(MdmKqRuleVo mdmKqRuleVo) {
mdmKqRuleDao.insertMdmKqRule(mdmKqRuleVo);
IMdmKqRuleDao.insertMdmKqRule(mdmKqRuleVo);
}
@Override
public void updateMdmKqRule(MdmKqRuleVo mdmKqRuleVo) {
mdmKqRuleDao.updateMdmKqRule(mdmKqRuleVo);
IMdmKqRuleDao.updateMdmKqRule(mdmKqRuleVo);
}
}
package com.sfa.system.service.core.impl;
import com.sfa.system.api.pojo.request.UserVo;
import com.sfa.system.domain.dao.ISysPostDao;
import com.sfa.system.domain.dao.ISysUserDao;
import com.sfa.system.pojo.response.SysPostDto;
import com.sfa.system.service.core.ISysUserCoreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Objects;
/**
* @author : liqiulin
* @date : 2024-10-30 17
* @describe :
*/
@Service
public class SysUserCoreServiceImpl implements ISysUserCoreService {
@Autowired
ISysUserDao sysUserDao;
@Autowired
ISysPostDao sysPostService;
@Override
public void insertUser(UserVo userVo) {
SysPostDto sysPostDto = sysPostService.selectPostByPostCode(userVo.getPostCode());
// 关联岗位、考勤规则
if (Objects.nonNull(sysPostDto)){
userVo.setPostCode(sysPostDto.getPostCode())
.setPostName(sysPostDto.getPostName())
.setRuleNum(sysPostDto.getRuleNum())
.setRuleName(sysPostDto.getRuleName());
}
sysUserDao.insertUser(userVo);
}
}
......@@ -8,6 +8,6 @@ import com.sfa.system.pojo.response.GeneralQueryResponse;
* @date : 2024-10-24 15
* @describe :
*/
public interface GeneralQueryService {
public interface IGeneralQueryService {
GeneralQueryResponse queryTableDatas(GeneralQueryVo generalQueryVo);
}
......@@ -6,7 +6,7 @@ import com.sfa.system.domain.entity.SysQuery;
import com.sfa.system.domain.mapper.SysQueryMapper;
import com.sfa.system.pojo.request.GeneralQueryVo;
import com.sfa.system.pojo.response.GeneralQueryResponse;
import com.sfa.system.service.query.GeneralQueryService;
import com.sfa.system.service.query.IGeneralQueryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -21,7 +21,7 @@ import java.util.Objects;
* @describe :
*/
@Service
public class IGeneralQueryService implements GeneralQueryService {
public class IGeneralQueryServiceImpl implements IGeneralQueryService {
@Autowired
SysQueryMapper sysQueryMapper;
......@@ -54,8 +54,9 @@ public class IGeneralQueryService implements GeneralQueryService {
List<HashMap<String,Object>> objs= sysQueryMapper.queryTableDatas(sqlBu.toString());
List<Map> boxhead = JSONArray.parseArray(sysQuery.getBoxhead(),Map.class);
generalQueryResponse.setBoxhead(boxhead)
.setQueryNum(sysQuery.getQueryNum())
.setQueryDisplay(JSONArray.parseArray(sysQuery.getQueryDisplay(), Map.class))
.setRows(objs);;
.setRows(objs);
return generalQueryResponse;
}
......
......@@ -17,14 +17,16 @@
<result property="flag" column="flag" />
<result property="delFlag" column="del_flag" />
<result property="createBy" column="create_by" />
<result property="createUserId" column="create_user_id" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateUserId" column="update_user_id" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectMdmKqRuleVo">
select rule_id, rule_num, rule_name, fir_begintime, fir_endtime, sec_begintime, sec_endtime, thi_begintime, thi_endtime, flag, del_flag, create_by, create_time, update_by, update_time, remark from mdm_kq_rule
select rule_id, rule_num, rule_name, fir_begintime, fir_endtime, sec_begintime, sec_endtime, thi_begintime, thi_endtime, flag, del_flag, create_by, create_user_id, create_time, update_by, update_user_id, update_time, remark from mdm_kq_rule
</sql>
<select id="selectMdmKqRuleList" parameterType="com.sfa.system.domain.entity.MdmKqRule" resultMap="MdmKqRuleResult">
......@@ -117,4 +119,9 @@
#{ruleId}
</foreach>
</delete>
<select id="selectByRuleNum" resultMap="MdmKqRuleResult">
<include refid="selectMdmKqRuleVo"/>
where rule_num = #{ruleNum} and del_flag = '0';
</select>
</mapper>
\ No newline at end of file
......@@ -8,17 +8,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<id property="postId" column="post_id" />
<result property="postCode" column="post_code" />
<result property="postName" column="post_name" />
<result property="ruleNum" column="rule_num" />
<result property="ruleName" column="rule_name" />
<result property="postSort" column="post_sort" />
<result property="status" column="status" />
<result property="createBy" column="create_by" />
<result property="createUserId" column="create_user_id" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateUserId" column="update_user_id" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
</resultMap>
<sql id="selectPostVo">
select post_id, post_code, post_name, post_sort, status, create_by, create_time, remark
select post_id, post_code, post_name, rule_num, rule_name, post_sort, status, create_by, create_user_id, create_time, update_by, update_user_id, update_time, remark
from sys_post
</sql>
......@@ -45,6 +49,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectPostVo"/>
where post_id = #{postId}
</select>
<select id="selectPostByPostCode" resultMap="SysPostResult">
<include refid="selectPostVo"/>
where post_id = #{postCode}
</select>
<select id="selectPostListByUserId" parameterType="Long" resultType="Long">
select p.post_id
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论