人员配置机构

This commit is contained in:
root
2021-06-29 16:34:02 +08:00
parent 4533960ef9
commit 39e5e4c4c5
22 changed files with 439 additions and 23 deletions
@@ -3,18 +3,18 @@ package com.adc.da.slrs.sarUser.controller;
import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import io.swagger.annotations.ApiOperation;
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.*;
import com.adc.da.slrs.sarUser.entity.TsUser;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.adc.da.base.web.BaseController;
import javax.validation.Valid;
/**
* <p>
* 前端控制器
@@ -40,4 +40,12 @@ public class TsUserController extends BaseController<TsUser> {
return tsUserService.disable(tsUser);
}
@ApiOperation("配置岗位")
@PostMapping("/position")
public ResponseMessage<Object> setPosition(@Valid @RequestBody UserPositionVO userPositionVO){
return tsUserService.setPosition(userPositionVO);
}
}
@@ -2,6 +2,10 @@ package com.adc.da.slrs.sarUser.dao;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* <p>
@@ -13,4 +17,31 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface TsUserDao extends BaseMapper<TsUser> {
/**
* 查询用户已经绑定的岗位ID
*/
@Select("select position_id from ts_user_position where user_id=#{userId}")
List<String> selectPositionIds(String userId);
/**
* 添加岗位
* @param userId:用户ID
* @param positionId:岗位ID
*/
@Insert("insert into ts_user_position (user_id,position_id) values (#{userId},#{positionId})")
void addPosition(String userId, String positionId);
/**
* 解绑岗位
* @param userId:用户ID
* @param positionId:岗位ID
*/
void delPosition(String userId, String positionId);
/**
* 通过岗位ID查询用户及其岗位
* @param institutionId:岗位ID
* @return List<TsUser>
*/
List<TsUser> getUserAndPosition(String institutionId);
}
@@ -2,10 +2,14 @@ package com.adc.da.slrs.sarUser.entity;
import com.adc.da.base.entity.BaseEntity;
import java.math.BigDecimal;
import com.adc.da.slrs.sarPosition.entity.TsPosition;
import com.baomidou.mybatisplus.annotation.TableId;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.List;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
@@ -133,5 +137,9 @@ public class TsUser extends BaseEntity {
@TableField("SSO_ID")
private String ssoId;
@ApiModelProperty(value = "岗位")
@TableField(exist = false)
private List<TsPosition> positions;
}
@@ -0,0 +1,14 @@
package com.adc.da.slrs.sarUser.entity;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.util.List;
@Data
public class UserPositionVO {
@NotNull(message = "userId不能为空")
private String userId;
@NotNull(message = "positionIds不能为空")
private List<String> positionIds;
}
@@ -2,6 +2,7 @@ package com.adc.da.slrs.sarUser.service;
import com.adc.da.http.ResponseMessage;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
@@ -30,4 +31,11 @@ public interface ITsUserService extends IService<TsUser> {
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> disable(TsUser tsUser);
/**
* 配置岗位
* @param userPositionVO :用户、岗位ID
* @return ResponseMessage<Object>
*/
ResponseMessage<Object> setPosition(UserPositionVO userPositionVO);
}
@@ -4,13 +4,17 @@ import com.adc.da.http.ResponseMessage;
import com.adc.da.http.Result;
import com.adc.da.slrs.sarUser.entity.TsUser;
import com.adc.da.slrs.sarUser.dao.TsUserDao;
import com.adc.da.slrs.sarUser.entity.UserPositionVO;
import com.adc.da.slrs.sarUser.service.ITsUserService;
import com.adc.da.utils.util.ListUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
/**
* <p>
@@ -32,9 +36,7 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
*/
@Override
public List<TsUser> getUserByInstitutionId(String institutionId) {
QueryWrapper<TsUser> userQueryWrapper=new QueryWrapper<>();
userQueryWrapper.eq("institution_id",institutionId);
return tsUserDao.selectList(userQueryWrapper);
return tsUserDao.getUserAndPosition(institutionId);
}
/**
@@ -64,4 +66,33 @@ public class TsUserServiceImpl extends ServiceImpl<TsUserDao, TsUser> implements
tsUserDao.updateById(user);
return Result.success();
}
/**
* 配置岗位
* @param userPositionVO :用户、岗位ID
* @return ResponseMessage<Object>
*/
@Override
@Transactional
public ResponseMessage<Object> setPosition(UserPositionVO userPositionVO) {
TsUser tsUser=tsUserDao.selectById(userPositionVO.getUserId());
if(tsUser==null){
return Result.error("该用户不存在");
}
List<String> oldPositionIds=tsUserDao.selectPositionIds(userPositionVO.getUserId());
Map<String,List<String>> ids= ListUtil.difList(userPositionVO.getPositionIds(),oldPositionIds);
List<String> insertIds=ids.get("insert");
List<String> deleteIds=ids.get("delete");
if(insertIds!=null&&insertIds.size()>0){
for(String positionId:insertIds){
tsUserDao.addPosition(userPositionVO.getUserId(),positionId);
}
}
if(deleteIds!=null&&deleteIds.size()>0){
for(String positionId:deleteIds){
tsUserDao.delPosition(userPositionVO.getUserId(),positionId);
}
}
return Result.success();
}
}