更新0811

This commit is contained in:
xyc 2025-08-11 17:44:13 +08:00
parent b0bb97d65f
commit ef6727ba08
20 changed files with 239 additions and 24 deletions

View File

@ -130,4 +130,7 @@ public class CompanyStaff extends TenantBaseDO {
/** 附件的名称们手动填写逗号分隔没有也要占位和下面的urls对应 */
private String fileNames;
/** 文件夹id */
private String folderId;
}

View File

@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.staff.mapper;
import cn.iocoder.yudao.module.staff.entity.CompanyStaff;
import cn.iocoder.yudao.module.staff.vo.CompanyStaffReqVO;
import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -27,4 +28,13 @@ public interface CompanyStaffMapper extends BaseMapper<CompanyStaff> {
* @return cn.iocoder.yudao.module.staff.entity.CompanyStaff
**/
CompanyStaffRespVO selectMyAdviser(@Param("tenantId") Long tenantId, @Param("userId") Long userId);
/**
* @description: 查询员工信息
* @param id id
* @return: cn.iocoder.yudao.module.system.api.user.dto.UserDTO
* @author
* @date: 2025/8/11 13:32
*/
UserDTO getStaff(Long id);
}

View File

@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.staff.entity.CompanyStaff;
import cn.iocoder.yudao.module.staff.vo.CompanyStaffReqVO;
import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO;
import cn.iocoder.yudao.module.system.api.permission.dto.RoleReqDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -158,4 +159,12 @@ public interface CompanyStaffService extends IService<CompanyStaff> {
**/
void updateByExistUser(CompanyStaffRespVO staffRespVO);
/**
* @description: 通过员工id查询员工信息
* @param: id
* @return: cn.iocoder.yudao.module.system.api.user.dto.UserDTO
* @author
* @date: 2025/8/11 13:24
*/
UserDTO getStaff(Long id);
}

View File

@ -751,4 +751,17 @@ public class CompanyStaffServiceImpl extends ServiceImpl<CompanyStaffMapper, Com
baseMapper.updateById(staffRespVO);
}
}
/**
* @param id
* @description: 通过员工id查询员工信息
* @param: id
* @return: cn.iocoder.yudao.module.system.api.user.dto.UserDTO
* @author
* @date: 2025/8/11 13:24
*/
@Override
public UserDTO getStaff(Long id) {
return baseMapper.getStaff(id);
}
}

View File

@ -115,4 +115,42 @@
AND bcm.tenant_id = #{tenantId}
LIMIT 1
</select>
<select id="getStaff" resultType="cn.iocoder.yudao.module.system.api.user.dto.UserDTO"
parameterType="java.lang.Long">
SELECT
su.id,
su.username,
su.nickname,
su.user_type,
su.remark,
su.dept_id,
su.mobile,
su.password,
su.sex,
su.open_id,
su.tenant_id,
su.status,
su.avatar AS avatar,
dsc.folder_id AS folderId,
GROUP_CONCAT(DISTINCT sr2.name SEPARATOR ',') AS roleNames
FROM
system_users su
LEFT JOIN
system_user_role sr ON su.id = sr.user_id AND sr.deleted = 0
LEFT JOIN
system_role sr2 ON sr.role_id = sr2.id
INNER JOIN
company_staff dsc ON dsc.user_id = su.id
<where>
su.deleted = 0
AND sr2.service_package_id = 'weixiu' AND dsc.deleted = 0
<if test="userId != null">
AND su.id = #{userId}
</if>
</where>
GROUP BY
su.id
ORDER BY
su.nickname
</select>
</mapper>

View File

@ -41,7 +41,7 @@
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>

View File

@ -55,6 +55,11 @@ public class InspectionConstants {
*/
public static final String JY_DRIVER_STAFF_KEY = "jystaff";
/**
* key的类型为员工
*/
public static final String WX_DRIVER_STAFF_KEY = "wxstaff";
/**
* key的类型为设备
*/

View File

@ -16,6 +16,7 @@ public enum InspectionFileEnum {
student("student","驾校学员文件夹"),
WX_EQUIPMENT("wx_equipment","维修设备文件夹"),
JY_EQUIPMENT("jy_equipment","救援设备文件夹"),
WX_STAFF("wxstaff", "维修员工文件夹"),
INSPECTION_CUSTOMER("small_inspection_member_folder", "检测客户资料夹"),
;

View File

@ -116,6 +116,7 @@ public interface IInspectionFileService extends IService<InspectionFile> {
Long addFolder(String folderName, String key);
Long addFolderForDevice(String folderName, String key, String servicePackageId);
Long addFolderForJx(String folderName, String key);
Long addFolderForWx(String folderName, String key);
Long addFolderForJy(String folderName, String key);
/**

View File

@ -572,6 +572,36 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
return inspectionFile.getId();
}
@Override
public Long addFolderForWx(String folderName, String key) {
//根据key找到对应的文件夹id
InspectionFile fatherFolder = baseMapper.selectOne(new LambdaQueryWrapper<InspectionFile>().eq(InspectionFile::getDefaultKey, key));
//如果默认文件夹为空就新建
if (fatherFolder == null) {
fatherFolder = new InspectionFile();
fatherFolder.setFileName(InspectionFileEnum.getDescByType(key));
fatherFolder.setType(InspectionConstants.INSPECTION_FOLDER);
fatherFolder.setDefaultKey(key);
fatherFolder.setServicePackageId("weixiu");
baseMapper.insert(fatherFolder);
fatherFolder.setFileCode(fatherFolder.getId() + ",");
baseMapper.updateById(fatherFolder);
}
InspectionFile inspectionFile = new InspectionFile();
inspectionFile.setFatherId(fatherFolder.getId());
inspectionFile.setFileName(folderName + InspectionConstants.INSPECTION_FOLDER_SUFFIX);
inspectionFile.setType(InspectionConstants.INSPECTION_FOLDER);
inspectionFile.setIsStaffFile(InspectionConstants.INSPECTION_IS_STAFF_FILE);
inspectionFile.setServicePackageId("weixiu");
baseMapper.insert(inspectionFile);
inspectionFile.setFileCode(inspectionFile.getId() + ",");
baseMapper.updateById(inspectionFile);
return inspectionFile.getId();
}
@Override
public Long addFolderForJy(String folderName, String key) {
//根据key找到对应的文件夹id

View File

@ -41,6 +41,12 @@
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>dl-module-inspection</artifactId>
<version>2.1.0-jdk8-snapshot</version>
<scope>compile</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>8</maven.compiler.source>

View File

@ -56,8 +56,8 @@ public class RepairStaffController {
@GetMapping("/get")
public CommonResult<?> getRepairStaff(Long id) {
// 查询信息
AdminUserDO user = userService.getUser(id);
if (user == null) {
UserDTO staff = repairStaffService.getStaff(id);
if (staff == null) {
return CommonResult.error(400, "用户不存在");
}
@ -67,7 +67,7 @@ public class RepairStaffController {
roleDOS = Collections.emptyList();
}
RepairStaff repairStaff = BeanUtil.copyProperties(user, RepairStaff.class);
RepairStaff repairStaff = BeanUtil.copyProperties(staff, RepairStaff.class);
// 过滤出服务套餐为 weixiu
List<RoleDO> weixiuRoleDOS = roleDOS.stream()
@ -91,7 +91,7 @@ public class RepairStaffController {
}
@GetMapping("/listSelectUser")
public CommonResult<?> listSelectUser(@Valid UserPageReqVO pageReqVO){
public CommonResult<?> listSelectUser(@Valid UserPageReqVO pageReqVO) {
// 查询目前所有的userId
RolePageReqVO role = new RolePageReqVO();
role.setPageNo(1);
@ -100,15 +100,28 @@ public class RepairStaffController {
// 获取所有的userId
List<Long> ids = userDTOIPage.getRecords().stream().map(UserDTO::getId).collect(Collectors.toList());
pageReqVO.setUserIds(ids);
pageReqVO.setUserType("01");
// 获得用户分页列表
PageResult<AdminUserDO> pageResult = userService.getUserPage(pageReqVO);
return success(new PageResult<>(pageResult.getList(), pageResult.getTotal()));
}
@DeleteMapping("/deleteStaff")
public CommonResult<?> deleteStaff(Long id) {
repairStaffService.deleteStaff(id);
public CommonResult<?> deleteStaff(@RequestBody List<Long> ids) {
repairStaffService.deleteStaff(ids);
return CommonResult.ok();
}
/**
* @description: 员工新增文件夹
* @param: userId 员工id
* @return: cn.iocoder.yudao.framework.common.pojo.CommonResult<?>
* @author
* @date: 2025/8/11 11:50
*/
@PostMapping("/addFolder")
public CommonResult<?> addFolder(@RequestBody Long userId) {
return success(repairStaffService.addFolder(userId));
}
}

View File

@ -55,4 +55,9 @@ public class RepairStaff {
*/
private String roleNames;
List<RoleDO> roles;
/**
* 文件夹id
*/
private String folderId;
}

View File

@ -2,6 +2,9 @@ package cn.iocoder.yudao.module.base.service;
import cn.iocoder.yudao.module.base.entity.RepairStaffSaveVo;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import java.util.List;
public interface RepairStaffService {
/**
@ -12,8 +15,29 @@ public interface RepairStaffService {
public void addStaff(RepairStaffSaveVo repairStaff);
/**
* 删除员工
* @param id
* @description: 删除员工
* @param ids
* @return: void
* @author
* @date: 2025/8/11 14:06
*/
void deleteStaff(Long id);
void deleteStaff(List<Long> ids);
/**
* @description: 员工新增文件夹
* @param: userId
* @return: java.lang.Long
* @author
* @date: 2025/8/11 11:51
*/
Long addFolder(Long userId);
/**
* @description: 查询员工信息
* @param id
* @return: cn.iocoder.yudao.module.system.api.user.dto.UserDTO
* @author
* @date: 2025/8/11 13:22
*/
UserDTO getStaff(Long id);
}

View File

@ -8,6 +8,8 @@ import cn.iocoder.yudao.common.SystemEnum;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.base.entity.RepairStaffSaveVo;
import cn.iocoder.yudao.module.base.service.RepairStaffService;
import cn.iocoder.yudao.module.constant.InspectionConstants;
import cn.iocoder.yudao.module.inspection.service.IInspectionFileService;
import cn.iocoder.yudao.module.staff.entity.CompanyStaff;
import cn.iocoder.yudao.module.staff.service.CompanyStaffService;
import cn.iocoder.yudao.module.staff.service.UniqueCodeService;
@ -16,12 +18,15 @@ import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
import cn.iocoder.yudao.module.system.service.permission.RoleService;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
@ -33,6 +38,7 @@ import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionU
@Service
@RequiredArgsConstructor
@Slf4j
public class RepairStaffServiceImpl implements RepairStaffService {
private final AdminUserService userService;
@ -49,6 +55,8 @@ public class RepairStaffServiceImpl implements RepairStaffService {
private final UniqueCodeService uniqueCodeService;
private final IInspectionFileService inspectionFileService;
public void addStaff(RepairStaffSaveVo repairStaff) {
// 获取当前登录用户的详细信息
AdminUserRespDTO loginUser = getLoginUser();
@ -104,9 +112,46 @@ public class RepairStaffServiceImpl implements RepairStaffService {
* @param id
*/
@Override
public void deleteStaff(Long id) {
public void deleteStaff(List<Long> ids) {
boolean remove = companyStaffService.remove(Wrappers.<CompanyStaff>lambdaQuery()
.eq(CompanyStaff::getUserId, id));
.in(CompanyStaff::getUserId, ids));
}
/**
* @param userId
* @description: 员工新增文件夹
* @param: userId
* @return: java.lang.Long
* @author
* @date: 2025/8/11 11:51
*/
@Override
@Transactional
public Long addFolder(Long userId) {
AdminUserDO user = userService.getUser(userId);
if (ObjectUtil.isNotEmpty(user)) {
Long folderId = inspectionFileService.addFolderForWx(user.getNickname(), InspectionConstants.WX_DRIVER_STAFF_KEY);
//修改文件夹id
companyStaffService.update(Wrappers.<CompanyStaff>lambdaUpdate().eq(CompanyStaff::getUserId, userId).set(CompanyStaff::getFolderId, folderId));
return folderId;
} else {
log.error("用户不存在");
return null;
}
}
/**
* @param id
* @description: 查询员工信息
* @return: cn.iocoder.yudao.module.system.api.user.dto.UserDTO
* @author
* @date: 2025/8/11 13:22
*/
@Override
public UserDTO getStaff(Long id) {
return companyStaffService.getStaff(id);
}
/**

View File

@ -63,4 +63,9 @@ public class UserDTO {
*/
private String roleNames;
/**
* 文件夹id
*/
private String folderId;
}

View File

@ -45,4 +45,6 @@ public class UserPageReqVO extends PageParam {
@Schema(description = "用户编号列表", example = "1024")
private List<Long> userIds;
private String userType;
}

View File

@ -71,6 +71,7 @@ public interface AdminUserMapper extends BaseMapperX<AdminUserDO> {
.notIn(CollUtil.isNotEmpty(reqVO.getUserIds()), AdminUserDO::getId, reqVO.getUserIds())
// 这里加了个模糊查询用户名称搜索时可以模糊查用户昵称
.likeIfPresent(AdminUserDO::getNickname, reqVO.getUsername())
.eq(ObjectUtil.isNotEmpty(reqVO.getUserType()),AdminUserDO::getUserType, reqVO.getUserType())
.eqIfPresent(AdminUserDO::getStatus, reqVO.getStatus())
.betweenIfPresent(AdminUserDO::getCreateTime, reqVO.getCreateTime())
.inIfPresent(AdminUserDO::getDeptId, deptIds)

View File

@ -259,8 +259,8 @@ public class PermissionServiceImpl implements PermissionService {
//根据角色code查出对应的角色列表
List<RoleDO> roleDOList = roleService.getRoleListByCodesTenant(roleCodes);
Set<Long> roleIds = new HashSet<>();
roleDOList.forEach(item->roleIds.add(item.getId()));
this.assignUserRole(userId,roleIds);
roleDOList.forEach(item -> roleIds.add(item.getId()));
this.assignUserRole(userId, roleIds);
}
@Override
@ -381,22 +381,25 @@ public class PermissionServiceImpl implements PermissionService {
/**
* 根据权限ID拿拥有该权限的所有人
*
* @param roleId 权限ID
* @author 小李
* @date 10:25 2024/8/26
* @param roleId 权限ID
**/
public List<Long> getUserIdByRoleId(Long roleId){
public List<Long> getUserIdByRoleId(Long roleId) {
List<UserRoleDO> userRoleDOS = userRoleMapper.selectList(new LambdaQueryWrapperX<UserRoleDO>().eq(UserRoleDO::getRoleId, roleId));
List<Long> userIds = userRoleDOS.stream().map(item -> item.getUserId()).collect(Collectors.toList());
return userIds;
}
/**
* 赋予用户角色
*
* @param userId
* @param roleIds
* @param servicePackageId
* @param userId 用户ID
* @param roleIds 角色ID
* @param servicePackageId 服务包ID
* @description: 赋予用户角色-根据服务id
* @return: void
* @author
* @date: 2025/8/11 16:26
*/
@Override
public void assignUserRoleByServicePackageId(Long userId, Set<Long> roleIds, String servicePackageId) {

View File

@ -134,13 +134,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
su.tenant_id,
su.status,
su.avatar AS avatar,
dsc.folder_id AS folderId,
GROUP_CONCAT(DISTINCT sr2.name SEPARATOR ',') AS roleNames
from system_users su
left join system_user_role sr on su.id = sr.user_id and sr.deleted = 0
left join system_role sr2 on sr.role_id = sr2.id
INNER JOIN company_staff dsc ON dsc.user_id = su.id
<where>
su.deleted = 0 and sr2.service_package_id = 'weixiu'
su.deleted = 0 and sr2.service_package_id = 'weixiu' and dsc.deleted = 0
<if test="role.nickname != null">
and (su.nickname like CONCAT('%',#{role.nickname},'%') OR su.username like
@ -256,6 +257,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT sur.*
FROM system_user_role sur
LEFT JOIN system_role sr ON sur.role_id = sr.id
WHERE sur.user_id = #{userId} AND sr.service_package_id = #{servicePackageId}
WHERE sur.user_id = #{userId} AND sr.service_package_id = #{servicePackageId} AND sur.deleted = 0 AND sr.deleted = 0
</select>
</mapper>