更新0804
This commit is contained in:
parent
17b5bbf83b
commit
cf9b1f9234
@ -2602,14 +2602,17 @@ public class AppInspectionPartnerServiceImpl extends ServiceImpl<AppInspectionPa
|
||||
).reversed());
|
||||
|
||||
// 对每个员工的 children 按 count 降序排序
|
||||
// 对每个员工的 children:先移除 count == 0 的项,再按 count 降序排序
|
||||
staffCount.forEach(staff -> {
|
||||
List<Map<String, Object>> children = (List<Map<String, Object>>) staff.get("children");
|
||||
if (children != null) {
|
||||
children.removeIf(child -> ((Long) child.getOrDefault("count", 0L)) == 0L);
|
||||
children.sort(Comparator.comparingLong(
|
||||
(Map<String, Object> child) -> (Long) child.getOrDefault("count", 0L)
|
||||
).reversed());
|
||||
}
|
||||
});
|
||||
|
||||
return staffCount;
|
||||
}
|
||||
|
||||
|
@ -200,27 +200,7 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
List<UserDTO> tenantAdmin = roleApi.selectUserListByRoleCode(SecurityFrameworkUtils.getLoginUser().getTenantId(), "tenant_admin");
|
||||
String content = String.join(",", keys);
|
||||
if (CollUtil.isNotEmpty(tenantAdmin)) {
|
||||
// 判断是服务套餐是检测还是驾校
|
||||
switch (inspectionFile.getServicePackageId()) {
|
||||
case "jiance":
|
||||
for (UserDTO userDTO : tenantAdmin) {
|
||||
noticeService.sentMessage(userDTO.getId(), content);
|
||||
}
|
||||
break;
|
||||
case "jiaxiao":
|
||||
for (UserDTO userDTO : tenantAdmin) {
|
||||
// 准备发送参数
|
||||
Map<String, Object> templateParams = new HashMap<>();
|
||||
// 发送模版内容
|
||||
templateParams.put("text", content);
|
||||
commonNotifyMessageSendService.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
|
||||
.setUserId(userDTO.getId())
|
||||
.setTemplateCode(TICKET_EMPLOY)
|
||||
.setSystemCode(SystemEnum.SCHOOL.getCode())
|
||||
.setTemplateParams(templateParams));
|
||||
}
|
||||
break;
|
||||
}
|
||||
this.sendMessage(tenantAdmin.stream().map(UserDTO::getId).collect(Collectors.toList()), content, inspectionFile.getServicePackageId());
|
||||
}
|
||||
} catch (IllegalAccessException e) {
|
||||
throw new RuntimeException(e);
|
||||
@ -759,4 +739,26 @@ public class InspectionFileServiceImpl extends ServiceImpl<InspectionFileMapper,
|
||||
return parentFiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送消息
|
||||
* @param userIdS 接收人id集合
|
||||
* @param text 消息内容
|
||||
* @param code 服务套餐id
|
||||
*/
|
||||
public void sendMessage(List<Long> userIdS, String text, String code) {
|
||||
// 准备发送参数
|
||||
Map<String, Object> templateParams = new HashMap<>();
|
||||
// 发送模版内容
|
||||
templateParams.put("text", text);
|
||||
// 发送站内信
|
||||
userIdS.forEach(userId -> {
|
||||
commonNotifyMessageSendService.sendSingleMessageToAdmin(new NotifySendSingleToUserReqDTO()
|
||||
.setUserId(userId)
|
||||
.setTemplateCode(TICKET_EMPLOY)
|
||||
.setSystemCode(code)
|
||||
.setTemplateParams(templateParams));
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -2,22 +2,42 @@ package cn.iocoder.yudao.module.base.controller.admin;
|
||||
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.common.CommonErrorCodeConstants;
|
||||
import cn.iocoder.yudao.common.SystemEnum;
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.base.entity.RepairStaff;
|
||||
import cn.iocoder.yudao.module.base.entity.RepairStaffSaveVo;
|
||||
import cn.iocoder.yudao.module.base.service.RepairStaffService;
|
||||
import cn.iocoder.yudao.module.staff.entity.CompanyStaff;
|
||||
import cn.iocoder.yudao.module.staff.service.CompanyStaffService;
|
||||
import cn.iocoder.yudao.module.staff.vo.CompanyStaffRespVO;
|
||||
import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
|
||||
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO;
|
||||
import cn.iocoder.yudao.module.system.controller.admin.user.vo.user.UserPageReqVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO;
|
||||
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.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/base/repair-staff")
|
||||
@RequiredArgsConstructor
|
||||
@ -25,6 +45,8 @@ public class RepairStaffController {
|
||||
private final AdminUserService userService;
|
||||
private final RoleService roleService;
|
||||
|
||||
private final RepairStaffService repairStaffService;
|
||||
|
||||
/**
|
||||
* 获取维修员工信息
|
||||
*
|
||||
@ -36,7 +58,7 @@ public class RepairStaffController {
|
||||
// 查询信息
|
||||
AdminUserDO user = userService.getUser(id);
|
||||
if (user == null) {
|
||||
return CommonResult.error(400,"用户不存在");
|
||||
return CommonResult.error(400, "用户不存在");
|
||||
}
|
||||
|
||||
// 查询对应角色
|
||||
@ -53,7 +75,40 @@ public class RepairStaffController {
|
||||
.collect(Collectors.toList());
|
||||
repairStaff.setRoles(weixiuRoleDOS);
|
||||
|
||||
return CommonResult.success(repairStaff);
|
||||
return success(repairStaff);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增员工
|
||||
*
|
||||
* @param repairStaff 员工信息
|
||||
* @return
|
||||
*/
|
||||
@PostMapping
|
||||
public CommonResult<?> addStaff(@RequestBody RepairStaffSaveVo repairStaff) {
|
||||
repairStaffService.addStaff(repairStaff);
|
||||
return CommonResult.ok();
|
||||
}
|
||||
|
||||
@GetMapping("/listSelectUser")
|
||||
public CommonResult<?> listSelectUser(@Valid UserPageReqVO pageReqVO){
|
||||
// 查询目前所有的userId
|
||||
RolePageReqVO role = new RolePageReqVO();
|
||||
role.setPageNo(1);
|
||||
role.setPageSize(1000000);
|
||||
IPage<UserDTO> userDTOIPage = roleService.selectListByRoleIdRepair(role);
|
||||
// 获取所有的userId
|
||||
List<Long> ids = userDTOIPage.getRecords().stream().map(UserDTO::getId).collect(Collectors.toList());
|
||||
pageReqVO.setUserIds(ids);
|
||||
// 获得用户分页列表
|
||||
PageResult<AdminUserDO> pageResult = userService.getUserPage(pageReqVO);
|
||||
return success(new PageResult<>(pageResult.getList(), pageResult.getTotal()));
|
||||
}
|
||||
|
||||
@DeleteMapping("/deleteStaff")
|
||||
public CommonResult<?> deleteStaff(Long id) {
|
||||
repairStaffService.deleteStaff(id);
|
||||
return CommonResult.ok();
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,21 @@
|
||||
package cn.iocoder.yudao.module.base.entity;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.system.api.user.dto.UserDTO;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@Data
|
||||
public class RepairStaffSaveVo {
|
||||
/**
|
||||
* 选择的员工
|
||||
*/
|
||||
public List<UserDTO> repairStaffs;
|
||||
/**
|
||||
* 角色id
|
||||
*/
|
||||
private Set<Long> roleIds = Collections.emptySet();
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package cn.iocoder.yudao.module.base.service;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.base.entity.RepairStaffSaveVo;
|
||||
|
||||
public interface RepairStaffService {
|
||||
/**
|
||||
* 新增员工
|
||||
*
|
||||
* @param repairStaff
|
||||
*/
|
||||
public void addStaff(RepairStaffSaveVo repairStaff);
|
||||
|
||||
/**
|
||||
* 删除员工
|
||||
* @param id
|
||||
*/
|
||||
void deleteStaff(Long id);
|
||||
}
|
@ -0,0 +1,133 @@
|
||||
package cn.iocoder.yudao.module.base.service.impl;
|
||||
|
||||
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.iocoder.yudao.common.CommonErrorCodeConstants;
|
||||
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.staff.entity.CompanyStaff;
|
||||
import cn.iocoder.yudao.module.staff.service.CompanyStaffService;
|
||||
import cn.iocoder.yudao.module.staff.service.UniqueCodeService;
|
||||
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
||||
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.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 org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class RepairStaffServiceImpl implements RepairStaffService {
|
||||
|
||||
private final AdminUserService userService;
|
||||
|
||||
private final RoleService roleService;
|
||||
|
||||
private final PermissionService permissionService;
|
||||
|
||||
private final CompanyStaffService companyStaffService;
|
||||
|
||||
private final DeptApi deptApi;
|
||||
|
||||
private final AdminUserApi adminUserApi;
|
||||
|
||||
private final UniqueCodeService uniqueCodeService;
|
||||
|
||||
public void addStaff(RepairStaffSaveVo repairStaff) {
|
||||
// 获取当前登录用户的详细信息
|
||||
AdminUserRespDTO loginUser = getLoginUser();
|
||||
// 1. 分配角色
|
||||
repairStaff.getRepairStaffs().forEach(item -> {
|
||||
permissionService.assignUserRoleByServicePackageId(item.getId(), repairStaff.getRoleIds(), SystemEnum.REPAIR.getCode());
|
||||
});
|
||||
// 2. 查看员工表中是否存在
|
||||
List<Long> oldIds = repairStaff.getRepairStaffs().stream().map(UserDTO::getId).collect(Collectors.toList());
|
||||
List<CompanyStaff> staffList = companyStaffService.list(Wrappers.<CompanyStaff>lambdaQuery()
|
||||
.in(CompanyStaff::getUserId, oldIds));
|
||||
|
||||
// 获取员工表中已有的用户ID集合
|
||||
Set<Long> existUserIds = staffList.stream()
|
||||
.map(CompanyStaff::getUserId)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
// 找出不存在于员工表中的用户ID
|
||||
List<UserDTO> notExistUsers = repairStaff.getRepairStaffs().stream()
|
||||
.filter(user -> !existUserIds.contains(user.getId()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
/* 插入员工库 */
|
||||
DeptRespDTO loginDept = getLoginDept(loginUser.getDeptId());
|
||||
|
||||
// 添加员工
|
||||
if (CollectionUtil.isNotEmpty(notExistUsers)) {
|
||||
List<CompanyStaff> companyStaffs = new ArrayList<>();
|
||||
for (UserDTO notExistUser : notExistUsers) {
|
||||
CompanyStaff companyStaff = new CompanyStaff();
|
||||
|
||||
// 1 获取当前登录用户的企业信息给添加的员工
|
||||
// 2 生成唯一推广码
|
||||
String uniqueCode = uniqueCodeService.createUniqueCode();
|
||||
if (!ObjectUtil.isNotEmpty(uniqueCode)) {
|
||||
throw exception(CommonErrorCodeConstants.UNIQUE_CODE_CREATE_REPEAT);
|
||||
}
|
||||
companyStaff.setCorpId(loginDept.getCorpId());
|
||||
companyStaff.setUserId(notExistUser.getId());
|
||||
companyStaff.setName(notExistUser.getNickname());
|
||||
companyStaff.setTel(notExistUser.getUsername());
|
||||
companyStaff.setUniqueCode(uniqueCode);
|
||||
|
||||
companyStaffs.add(companyStaff);
|
||||
}
|
||||
companyStaffService.saveBatch(companyStaffs);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除员工
|
||||
*
|
||||
* @param id
|
||||
*/
|
||||
@Override
|
||||
public void deleteStaff(Long id) {
|
||||
boolean remove = companyStaffService.remove(Wrappers.<CompanyStaff>lambdaQuery()
|
||||
.eq(CompanyStaff::getUserId, id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前登录用户的部门详细信息
|
||||
*
|
||||
* @param deptId 部门ID
|
||||
* @author 小李
|
||||
* @date 17:28 2024/8/9
|
||||
**/
|
||||
private DeptRespDTO getLoginDept(Long deptId) {
|
||||
return deptApi.getDept(deptId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前登录用户的详细信息
|
||||
*
|
||||
* @author 小李
|
||||
* @date 17:27 2024/8/9
|
||||
**/
|
||||
private AdminUserRespDTO getLoginUser() {
|
||||
Long userId = SecurityFrameworkUtils.getLoginUserId();
|
||||
return adminUserApi.getUser(userId);
|
||||
}
|
||||
}
|
@ -393,7 +393,7 @@ public class RoleServiceImpl implements RoleService {
|
||||
*
|
||||
* @param roleId
|
||||
* @return
|
||||
*/
|
||||
*/
|
||||
@Override
|
||||
public List<UserDTO> getListByUserId(Integer roleId) {
|
||||
List<UserDTO> userDTOS = userRoleMapper.selectByRoleId(roleId);
|
||||
|
@ -97,7 +97,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
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 dl_repair_worker dsc ON dsc.user_id = su.id
|
||||
INNER JOIN company_staff dsc ON dsc.user_id = su.id
|
||||
<where>
|
||||
su.deleted = 0 and sr2.service_package_id = 'weixiu'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user