设备开发,岗位开发
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
package com.dc.dc_project.controller;
|
||||
|
||||
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import com.dc.dc_project.common.ResponseResult;
|
||||
import com.dc.dc_project.model.dto.*;
|
||||
import com.dc.dc_project.model.pojo.PersonnelPosition;
|
||||
import com.dc.dc_project.model.pojo.Position;
|
||||
import com.dc.dc_project.service.PositionService;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
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;
|
||||
|
||||
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
|
||||
@RestController
|
||||
@RequestMapping("/position")
|
||||
public class PositionController {
|
||||
|
||||
private final PositionService positionService;
|
||||
|
||||
@PostMapping("/list")
|
||||
public ResponseResult list(@RequestBody PositionQueDto positionDto) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return positionService.getList(positionDto, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
public ResponseResult add(@RequestBody PositionAddDto position) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return positionService.add(position, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
public ResponseResult delete(@RequestBody Position position) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return positionService.delete(position, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
public ResponseResult update(@RequestBody PositionUpdateDto position) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return positionService.updatePosition(position, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/grant")
|
||||
public ResponseResult grant(@RequestBody @Validated PersonnelPositionGrantDto personnelPosition) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return positionService.grant(personnelPosition, userId);
|
||||
}
|
||||
|
||||
@PostMapping("/revoke")
|
||||
public ResponseResult revoke(@RequestBody PersonnelPositionRevokeDto personnelPosition) {
|
||||
Long userId = StpUtil.getLoginIdAsLong();
|
||||
return positionService.revoke(personnelPosition, userId);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.dc.dc_project.model.dto;
|
||||
|
||||
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 jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 人员岗位表
|
||||
* @TableName sys_personnel_position
|
||||
*/
|
||||
@Data
|
||||
public class PersonnelPositionGrantDto {
|
||||
|
||||
@NotNull
|
||||
private Long personnelId;
|
||||
|
||||
|
||||
@NotNull
|
||||
private Long positionId;
|
||||
|
||||
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.dc.dc_project.model.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PersonnelPositionRevokeDto {
|
||||
|
||||
private Long id;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.dc.dc_project.model.dto;
|
||||
|
||||
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 lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 岗位信息表
|
||||
* @TableName sys_position
|
||||
*/
|
||||
@Data
|
||||
public class PositionAddDto {
|
||||
|
||||
|
||||
private String name;
|
||||
|
||||
|
||||
private Long orgId;
|
||||
|
||||
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.dc.dc_project.model.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class PositionQueDto {
|
||||
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
private String remark;
|
||||
|
||||
private Long orgId;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.dc.dc_project.model.dto;
|
||||
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* 岗位信息表
|
||||
* @TableName sys_position
|
||||
*/
|
||||
@Data
|
||||
public class PositionUpdateDto {
|
||||
|
||||
@NotNull
|
||||
private Long id;
|
||||
|
||||
private String name;
|
||||
|
||||
|
||||
private Long orgId;
|
||||
|
||||
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.dc.dc_project.model.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.dc.dc_project.model.pojo.Position;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
@@ -47,5 +48,17 @@ public class PositionVo {
|
||||
*/
|
||||
private Integer isDeleted;
|
||||
|
||||
public static PositionVo potoVo(Position position){
|
||||
PositionVo positionVo = new PositionVo();
|
||||
positionVo.setId(position.getId());
|
||||
positionVo.setName(position.getName());
|
||||
positionVo.setOrgId(position.getOrgId());
|
||||
positionVo.setRemark(position.getRemark());
|
||||
positionVo.setCreatedAt(position.getCreatedAt());
|
||||
positionVo.setUpdatedAt(position.getUpdatedAt());
|
||||
positionVo.setIsDeleted(position.getIsDeleted());
|
||||
return positionVo;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
package com.dc.dc_project.service;
|
||||
|
||||
import com.dc.dc_project.common.ResponseResult;
|
||||
import com.dc.dc_project.model.dto.*;
|
||||
import com.dc.dc_project.model.pojo.PersonnelPosition;
|
||||
import com.dc.dc_project.model.pojo.Position;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
@@ -10,4 +13,51 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
*/
|
||||
public interface PositionService extends IService<Position> {
|
||||
|
||||
/**
|
||||
* 获取岗位列表
|
||||
* @param positionDto
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
ResponseResult getList(PositionQueDto positionDto, Long userId);
|
||||
|
||||
/**
|
||||
* 添加岗位
|
||||
* @param position
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
ResponseResult add(PositionAddDto position, Long userId);
|
||||
|
||||
/**
|
||||
* 删除岗位
|
||||
* @param position
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
ResponseResult delete(Position position, Long userId);
|
||||
|
||||
/**
|
||||
* 修改岗位
|
||||
* @param position
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
ResponseResult updatePosition(PositionUpdateDto position, Long userId);
|
||||
|
||||
/**
|
||||
* 岗位授权
|
||||
* @param personnelPosition
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
ResponseResult grant(PersonnelPositionGrantDto personnelPosition, Long userId);
|
||||
|
||||
/**
|
||||
* 岗位撤销授权
|
||||
* @param personnelPosition
|
||||
* @param userId
|
||||
* @return
|
||||
*/
|
||||
ResponseResult revoke(PersonnelPositionRevokeDto personnelPosition, Long userId);
|
||||
}
|
||||
|
||||
@@ -1,19 +1,125 @@
|
||||
package com.dc.dc_project.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.dc.dc_project.common.ResponseResult;
|
||||
import com.dc.dc_project.common.ResultCode;
|
||||
import com.dc.dc_project.enums.IsDeleted;
|
||||
import com.dc.dc_project.mapper.OrgMapper;
|
||||
import com.dc.dc_project.mapper.PersonnelPositionMapper;
|
||||
import com.dc.dc_project.model.dto.*;
|
||||
import com.dc.dc_project.model.pojo.Org;
|
||||
import com.dc.dc_project.model.pojo.PersonnelPosition;
|
||||
import com.dc.dc_project.model.pojo.Position;
|
||||
import com.dc.dc_project.mapper.PositionMapper;
|
||||
import com.dc.dc_project.model.vo.PositionVo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.dc.dc_project.model.vo.PositionVo.potoVo;
|
||||
|
||||
/**
|
||||
* @author ADMIN
|
||||
* @description 针对表【sys_position(岗位信息表)】的数据库操作Service实现
|
||||
* @createDate 2025-11-14 16:39:29
|
||||
*/
|
||||
@Service
|
||||
@RequiredArgsConstructor(onConstructor_ = @__(@Autowired))
|
||||
public class PositionServiceImpl extends ServiceImpl<PositionMapper, Position>
|
||||
implements PositionService{
|
||||
|
||||
private final OrgMapper orgMapper;
|
||||
private final PersonnelPositionMapper personnelPositionMapper;
|
||||
|
||||
@Override
|
||||
public ResponseResult getList(PositionQueDto positionDto, Long userId) {
|
||||
|
||||
LambdaQueryWrapper<Position> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.like(Position::getName, positionDto.getName())
|
||||
.like(Position::getRemark, positionDto.getRemark())
|
||||
.eq(Position::getId, positionDto.getId())
|
||||
.eq(Position::getIsDeleted, IsDeleted.NO.getCode())
|
||||
.eq(Position::getOrgId, positionDto.getOrgId());
|
||||
|
||||
List<Position> list = list(queryWrapper);
|
||||
List<PositionVo> positionVos = new ArrayList<>(list.size());
|
||||
for (Position position : list){
|
||||
PositionVo positionVo = potoVo(position);
|
||||
LambdaQueryWrapper<Org> orgQueryWrapper = new LambdaQueryWrapper<>();
|
||||
orgQueryWrapper.select(Org::getName).eq(Org::getId, position.getOrgId());
|
||||
positionVo.setOrgName(orgMapper.selectOne(orgQueryWrapper).getName());
|
||||
positionVos.add(positionVo);
|
||||
}
|
||||
|
||||
return ResponseResult.success(positionVos);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult add(PositionAddDto addPosition, Long userId) {
|
||||
Position position = new Position();
|
||||
|
||||
position.setName(addPosition.getName());
|
||||
position.setOrgId(addPosition.getOrgId());
|
||||
position.setRemark(addPosition.getRemark());
|
||||
|
||||
return save(position) ? ResponseResult.success() : ResponseResult.error();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult delete(Position position, Long userId) {
|
||||
|
||||
if(position.getId() == null){
|
||||
return ResponseResult.error("参数错误");
|
||||
}
|
||||
Position position1 = this.getById(position.getId());
|
||||
if (position1 == null) {
|
||||
return ResponseResult.error(ResultCode.FAILURE);
|
||||
}
|
||||
position1.setIsDeleted(IsDeleted.YES.getCode());
|
||||
return updateById(position1) ? ResponseResult.success() : ResponseResult.error();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult updatePosition(PositionUpdateDto updatePosition, Long userId) {
|
||||
|
||||
Position position = this.getById(updatePosition.getId());
|
||||
if (position == null) {
|
||||
return ResponseResult.error(ResultCode.FAILURE);
|
||||
}
|
||||
position.setName(updatePosition.getName() == null ? position.getName() : updatePosition.getName());
|
||||
position.setOrgId(updatePosition.getOrgId() == null ? position.getOrgId() : updatePosition.getOrgId());
|
||||
position.setRemark(updatePosition.getRemark() == null ? position.getRemark() : updatePosition.getRemark());
|
||||
return updateById(position) ? ResponseResult.success() : ResponseResult.error();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult grant(PersonnelPositionGrantDto personnelPosition, Long userId) {
|
||||
|
||||
if(personnelPositionMapper.exists(new LambdaQueryWrapper<PersonnelPosition>()
|
||||
.eq(PersonnelPosition::getPersonnelId, personnelPosition.getPersonnelId())
|
||||
.eq(PersonnelPosition::getPositionId, personnelPosition.getPositionId())
|
||||
)){
|
||||
return ResponseResult.error("已存在");
|
||||
}
|
||||
PersonnelPosition personnelPosition1 = new PersonnelPosition();
|
||||
personnelPosition1.setPersonnelId(personnelPosition.getPersonnelId());
|
||||
personnelPosition1.setPositionId(personnelPosition.getPositionId());
|
||||
personnelPosition1.setRemark(personnelPosition.getRemark());
|
||||
return personnelPositionMapper.insert(personnelPosition1) > 0 ? ResponseResult.success() : ResponseResult.error();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResponseResult revoke(PersonnelPositionRevokeDto personnelPosition, Long userId) {
|
||||
|
||||
if(!personnelPositionMapper.exists(new LambdaQueryWrapper<PersonnelPosition>().eq(PersonnelPosition::getId, personnelPosition.getId()))){
|
||||
return ResponseResult.error("不存在");
|
||||
}
|
||||
return personnelPositionMapper.deleteById(personnelPosition.getId()) > 0 ? ResponseResult.success() : ResponseResult.error();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user