访客修改
This commit is contained in:
1 parent
86f02bf68c
commit
d4b5bb839b
3 files changed
+121
-5
No files matched your search
+3
-5
@@ -17,6 +17,7 @@ import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsYYAppDTO;
|
||||
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
|
||||
import com.bsd.pjcloud.integrated.service.VisitorsService;
|
||||
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo;
|
||||
import com.bsd.pjcloud.integrated.vo.visitor.VisitorsPageVo;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
|
||||
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
|
||||
@@ -54,11 +55,8 @@ public class VisitorsController {
|
||||
@Operation(summary = "分页查询" , description = "分页查询" )
|
||||
@GetMapping("/page" )
|
||||
@PreAuthorize("@pms.hasPermission('integrated_visitors_view')" )
|
||||
public R getVisitorsPage(@ParameterObject Page page, @ParameterObject VisitorsEntity visitors) {
|
||||
LambdaQueryWrapper<VisitorsEntity> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(StrUtil.isNotBlank(visitors.getName()),VisitorsEntity::getName,visitors.getName());
|
||||
wrapper.eq(StrUtil.isNotBlank(visitors.getMobile()),VisitorsEntity::getMobile,visitors.getMobile());
|
||||
return R.ok(visitorsService.page(page, wrapper));
|
||||
public R getVisitorsPage(@ParameterObject Page<VisitorsEntity> page, @ParameterObject VisitorsEntity visitors) {
|
||||
return R.ok(visitorsService.getVisitorsPageWithDeptName(page, visitors));
|
||||
}
|
||||
|
||||
|
||||
|
||||
+9
@@ -10,6 +10,7 @@ import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsYYAppDTO;
|
||||
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
|
||||
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppVo;
|
||||
import com.bsd.pjcloud.integrated.vo.visitor.app.VisitorsAppYYDetailVo;
|
||||
import com.bsd.pjcloud.integrated.vo.visitor.VisitorsPageVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -88,6 +89,14 @@ public interface VisitorsService extends IService<VisitorsEntity> {
|
||||
|
||||
Object receiveYY(VisitorsReceiveAppDTO visitorsReceiveAppDTO);
|
||||
|
||||
/**
|
||||
* 分页查询访客表(包含部门名称回显)
|
||||
* @param page 分页对象
|
||||
* @param visitors 访客表查询条件
|
||||
* @return 分页结果
|
||||
*/
|
||||
Page<VisitorsPageVo> getVisitorsPageWithDeptName(Page<VisitorsEntity> page, VisitorsEntity visitors);
|
||||
|
||||
|
||||
/**
|
||||
* 获取邀约详情
|
||||
|
||||
+109
@@ -28,6 +28,8 @@ import com.bsd.pjcloud.integrated.constant.IntegratedFlowConstant;
|
||||
import com.bsd.pjcloud.integrated.constant.VisitorTypeEnum;
|
||||
import com.bsd.pjcloud.integrated.controller.AppVisitorUserController;
|
||||
import com.bsd.pjcloud.integrated.dto.visitor.app.*;
|
||||
import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsCarAppDTO;
|
||||
import com.bsd.pjcloud.integrated.dto.visitor.app.VisitorsPeopleAppDTO;
|
||||
import com.bsd.pjcloud.integrated.entity.VisitorUserEntity;
|
||||
import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity;
|
||||
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
|
||||
@@ -38,6 +40,7 @@ import com.bsd.pjcloud.integrated.mapper.VisitorsPeopleMapper;
|
||||
import com.bsd.pjcloud.integrated.service.VisitorUserService;
|
||||
import com.bsd.pjcloud.integrated.service.VisitorsService;
|
||||
import com.bsd.pjcloud.integrated.vo.visitor.app.*;
|
||||
import com.bsd.pjcloud.integrated.vo.visitor.VisitorsPageVo;
|
||||
import com.bsd.pjcloud.thirdparty.api.feign.RemoterThirdPartySmsService;
|
||||
import com.bsd.pjcloud.thirdparty.api.feign.RemoterVisitorService;
|
||||
import com.bsd.pjcloud.thirdparty.dto.visitor.AppointmentInfo;
|
||||
@@ -49,6 +52,7 @@ import com.bsd.pjcloud.thirdparty.dto.visitor.request.make.VisitorInfo;
|
||||
import com.bsd.pjcloud.thirdparty.dto.visitor.response.make.AppointmentData;
|
||||
import com.bsd.pjcloud.thirdparty.dto.visitor.response.make.QueryAppointmentRecordsResponse;
|
||||
import com.github.yulichang.toolkit.StrUtils;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.security.oauth2.jwt.Jwt;
|
||||
@@ -605,5 +609,110 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Page<VisitorsPageVo> getVisitorsPageWithDeptName(Page<VisitorsEntity> page, VisitorsEntity visitors) {
|
||||
// 构建查询条件
|
||||
LambdaQueryWrapper<VisitorsEntity> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.eq(StrUtil.isNotBlank(visitors.getType()), VisitorsEntity::getType, visitors.getType());
|
||||
wrapper.eq(StrUtil.isNotBlank(visitors.getName()), VisitorsEntity::getName, visitors.getName());
|
||||
wrapper.eq(StrUtil.isNotBlank(visitors.getMobile()), VisitorsEntity::getMobile, visitors.getMobile());
|
||||
|
||||
// 执行分页查询
|
||||
Page<VisitorsEntity> entityPage = baseMapper.selectPage(page, wrapper);
|
||||
|
||||
// 批量查询部门信息,避免N+1问题
|
||||
List<Long> deptIds = entityPage.getRecords().stream()
|
||||
.map(VisitorsEntity::getDeptId)
|
||||
.filter(Objects::nonNull)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
|
||||
Map<Long, String> deptNameMap = new HashMap<>();
|
||||
if (!deptIds.isEmpty()) {
|
||||
R<Map<Long, SysDept>> deptMapR = remoteDeptService.getDeptByDeptIds(deptIds);
|
||||
if (deptMapR.isOk() && deptMapR.getData() != null) {
|
||||
for (Map.Entry<Long, SysDept> entry : deptMapR.getData().entrySet()) {
|
||||
deptNameMap.put(entry.getKey(), entry.getValue().getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 批量查询车辆信息
|
||||
List<Long> visitorIds = entityPage.getRecords().stream()
|
||||
.map(VisitorsEntity::getId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
final Map<Long, List<VisitorsCarAppDTO>> carMap;
|
||||
final Map<Long, List<VisitorsPeopleAppDTO>> peopleMap;
|
||||
|
||||
if (!visitorIds.isEmpty()) {
|
||||
// 查询车辆信息
|
||||
List<VisitorsCarEntity> carEntities = visitorsCarMapper.selectList(
|
||||
new LambdaQueryWrapper<VisitorsCarEntity>()
|
||||
.in(VisitorsCarEntity::getVisitorsId, visitorIds)
|
||||
);
|
||||
if (!CollectionUtils.isEmpty(carEntities)) {
|
||||
carMap = carEntities.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
VisitorsCarEntity::getVisitorsId,
|
||||
Collectors.mapping(car -> {
|
||||
VisitorsCarAppDTO dto = new VisitorsCarAppDTO();
|
||||
dto.setCarNumber(car.getCarNumber());
|
||||
return dto;
|
||||
}, Collectors.toList())
|
||||
));
|
||||
} else {
|
||||
carMap = new HashMap<>();
|
||||
}
|
||||
|
||||
// 查询随行人员信息
|
||||
List<VisitorsPeopleEntity> peopleEntities = visitorsPeopleMapper.selectList(
|
||||
new LambdaQueryWrapper<VisitorsPeopleEntity>()
|
||||
.in(VisitorsPeopleEntity::getVisitorsId, visitorIds)
|
||||
);
|
||||
if (!CollectionUtils.isEmpty(peopleEntities)) {
|
||||
peopleMap = peopleEntities.stream()
|
||||
.collect(Collectors.groupingBy(
|
||||
VisitorsPeopleEntity::getVisitorsId,
|
||||
Collectors.mapping(people -> {
|
||||
VisitorsPeopleAppDTO dto = new VisitorsPeopleAppDTO();
|
||||
dto.setName(people.getName());
|
||||
dto.setMobile(people.getMobile());
|
||||
return dto;
|
||||
}, Collectors.toList())
|
||||
));
|
||||
} else {
|
||||
peopleMap = new HashMap<>();
|
||||
}
|
||||
} else {
|
||||
carMap = new HashMap<>();
|
||||
peopleMap = new HashMap<>();
|
||||
}
|
||||
|
||||
// 转换为VO
|
||||
List<VisitorsPageVo> voList = entityPage.getRecords().stream().map(entity -> {
|
||||
VisitorsPageVo vo = BeanUtils.toBean(entity, VisitorsPageVo.class);
|
||||
// 设置部门名称
|
||||
if (entity.getDeptId() != null) {
|
||||
vo.setDeptName(deptNameMap.get(entity.getDeptId()));
|
||||
}
|
||||
// 设置车辆信息
|
||||
vo.setCarList(carMap.getOrDefault(entity.getId(), new ArrayList<>()));
|
||||
// 设置随行人员信息
|
||||
vo.setOtherPeople(peopleMap.getOrDefault(entity.getId(), new ArrayList<>()));
|
||||
return vo;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
// 构建返回结果
|
||||
Page<VisitorsPageVo> resultPage = new Page<>();
|
||||
resultPage.setCurrent(entityPage.getCurrent());
|
||||
resultPage.setSize(entityPage.getSize());
|
||||
resultPage.setTotal(entityPage.getTotal());
|
||||
resultPage.setPages(entityPage.getPages());
|
||||
resultPage.setRecords(voList);
|
||||
|
||||
return resultPage;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user