This commit is contained in:
zjf committed 2025-04-11 17:31:49 +08:00
1 parent 69f5f948ca
commit de652cce5f
7 files changed
+172 -14

No files matched your search

@@ -0,0 +1,22 @@
package com.bsd.pjcloud.integrated.constant;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 出库入口
*/
@AllArgsConstructor
@Getter
public enum VisitorTypeEnum {
FKSQ("1", "访客申请"),
ZDYQ("2", "主动邀请"),
HTXZ("3", "后台新增")
;
private final String type;
private final String description;
}
@@ -6,6 +6,7 @@ import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
import com.bsd.pjcloud.common.log.annotation.SysLog;
@@ -14,6 +15,7 @@ import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsAppDTO;
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
import com.bsd.pjcloud.integrated.service.VisitorsService;
import com.bsd.pjcloud.integrated.vo.app.visitor.VisitorsAppVo;
import org.springframework.security.access.prepost.PreAuthorize;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -131,16 +133,27 @@ public class VisitorsController {
* @param visitors 访客表
* @return R
*/
@Operation(summary = "app新增访客表" , description = "app新增访客表" )
@SysLog("新增访客表" )
@Operation(summary = "app新增访客" , description = "app新增访客" )
@SysLog("新增访客" )
@PostMapping("/app/save")
@Idempotent(key = "#", expireTime = 10, info = "请勿重复提交")
@Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交")
@Inner(value = false)
public R save(@RequestBody VisitorsAppDTO visitors) {
public R saveFK(@RequestBody VisitorsAppDTO visitors) {
return R.ok(visitorsService.vistorsSave(visitors));
}
/**
* 根据token查询预约的信息
* 通过token查询访客表
* @param
* @return R
*/
@Operation(summary = "通过token查询" , description = "通过token查询" )
@GetMapping("/app/get/{token}" )
public R<VisitorsAppVo> getByToken(@PathVariable("token" ) String token) {
return R.ok(visitorsService.getByToken(token));
}
/**
* 扫码发送请求确认是否能通过
* 通过token查询访客表
@@ -149,7 +162,7 @@ public class VisitorsController {
*/
@Operation(summary = "通过token查询" , description = "通过token查询" )
@GetMapping("/app/check/{token}" )
public R getByToken(@PathVariable("token" ) String token) {
public R checkByToken(@PathVariable("token" ) String token) {
LambdaQueryWrapper<VisitorsEntity> visitorsEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
visitorsEntityLambdaQueryWrapper.eq(VisitorsEntity::getToken,token);
@@ -169,4 +182,25 @@ public class VisitorsController {
return R.ok(true);
}
/**
* 新增拜访
* @param visitors 访客表
* @return R
*/
@Operation(summary = "app新增拜访" , description = "app新增拜访" )
@SysLog("新增拜访" )
@PostMapping("/app/saveBF")
@Idempotent(key = "#mobile", expireTime = 10, info = "请勿重复提交")
public R saveBF(@RequestBody VisitorsAppDTO visitors) {
return R.ok(visitorsService.vistorsBFSave(visitors));
}
@GetMapping("/app/pageBF")
@SysLog("获取我的邀约记录" )
public R getPageBF(@ParameterObject Page page, @ParameterObject VisitorsEntity visitors) {
return R.ok( visitorsService.getPageBF(page, visitors));
}
}
@@ -163,4 +163,12 @@ public class VisitorsEntity extends Model<VisitorsEntity> {
@Schema(description="token")
private String token;
@Schema(description="1 主动申请,2邀约,3 后台创建")
private String type;
@Schema(description="用户id")
private Long userId;
}
@@ -1,8 +1,10 @@
package com.bsd.pjcloud.integrated.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsAppDTO;
import com.bsd.pjcloud.integrated.entity.VisitorsEntity;
import com.bsd.pjcloud.integrated.vo.app.visitor.VisitorsAppVo;
public interface VisitorsService extends IService<VisitorsEntity> {
@@ -13,4 +15,24 @@ public interface VisitorsService extends IService<VisitorsEntity> {
* @return
*/
Object vistorsSave(VisitorsAppDTO visitors);
/**
* 根据token查询访客信息
* @param token
* @return
*/
VisitorsAppVo getByToken(String token);
/**
* 移动端发起拜访
* @param visitors
* @return
*/
Object vistorsBFSave(VisitorsAppDTO visitors);
Object getPageBF(Page page, VisitorsEntity visitors);
}
@@ -1,15 +1,20 @@
package com.bsd.pjcloud.integrated.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.common.core.exception.ServiceException;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService;
import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum;
import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto;
import com.bsd.pjcloud.flow.task.entity.Process;
import com.bsd.pjcloud.integrated.constant.IntegratedFlowConstant;
import com.bsd.pjcloud.integrated.constant.VisitorTypeEnum;
import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsAppDTO;
import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsCarAppDTO;
import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity;
@@ -48,7 +53,6 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
@Override
@Transactional
public Object vistorsSave(VisitorsAppDTO visitors) {
//发起流程
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
if (!processR.isOk() || processR.getData() == null) {
@@ -64,13 +68,14 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
String processInstanceId = stringR.getData();
VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class);
bean.setType(VisitorTypeEnum.FKSQ.getType());
bean.setProcessInstanceId(processInstanceId);
bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
String uniqueToken = UUID.randomUUID().toString();
String token = uniqueToken.replace("-", "");
bean.setToken(token);
baseMapper.insert(bean);
int insert = baseMapper.insert(bean);
List<VisitorsCarAppDTO> visitorsCarAppDTOList = visitors.getVisitorsCarAppDTOList();
if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){
List<VisitorsCarEntity> visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class);
@@ -79,10 +84,75 @@ public class VisitorsServiceImpl extends ServiceImpl<VisitorsMapper, VisitorsEnt
});
visitorsCarMapper.insert(visitorsCarEntities);
}
VisitorsAppVo visitorAppVo = BeanUtils.toBean(bean, VisitorsAppVo.class);
List<VisitorsCarAppVo> visitorsCarAppVos = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarAppVo.class);
visitorAppVo.setVisitorsCarAppVos(visitorsCarAppVos);
return visitorAppVo;
// VisitorsAppVo visitorAppVo = BeanUtils.toBean(bean, VisitorsAppVo.class);
// List<VisitorsCarAppVo> visitorsCarAppVos = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarAppVo.class);
// visitorAppVo.setVisitorsCarAppVos(visitorsCarAppVos);
return insert;
}
@Override
public VisitorsAppVo getByToken(String token) {
LambdaQueryWrapper<VisitorsEntity> visitorsEntityLambdaQueryWrapper = new LambdaQueryWrapper<>();
visitorsEntityLambdaQueryWrapper.eq(VisitorsEntity::getToken,token);
VisitorsEntity visitors = baseMapper.selectOne(visitorsEntityLambdaQueryWrapper);
VisitorsAppVo bean = BeanUtils.toBean(visitors, VisitorsAppVo.class);
List<VisitorsCarEntity> visitorsCarEntities =
visitorsCarMapper.selectList(new LambdaQueryWrapper<VisitorsCarEntity>().eq(VisitorsCarEntity::getVisitorsId, visitors.getId()));
List<VisitorsCarAppVo> visitorsCarAppVos = BeanUtils.toBean(visitorsCarEntities, VisitorsCarAppVo.class);
bean.setVisitorsCarAppVos(visitorsCarAppVos);
return bean;
}
@Override
public Object vistorsBFSave(VisitorsAppDTO visitors) {
//发起流程
R<Process> processR = remoteFlowApiFlowService.getProcessByBusinessKey(IntegratedFlowConstant.INTEGRATED_VISITOR);
if (!processR.isOk() || processR.getData() == null) {
throw new ServiceException("流程配置获取失败: " + processR.getMsg());
}
String flowId = processR.getData().getFlowId();
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
processInstanceParamDto.setFlowId(flowId);
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
if (!stringR.isOk() || stringR.getData() == null) {
throw new ServiceException("流程实例启动失败: " + stringR.getMsg());
}
String processInstanceId = stringR.getData();
Long deptId = SecurityUtils.getUser().getDeptId();
VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class);
bean.setType(VisitorTypeEnum.ZDYQ.getType());
bean.setProcessInstanceId(processInstanceId);
bean.setDeptId(deptId);
bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode());
String uniqueToken = UUID.randomUUID().toString();
String token = uniqueToken.replace("-", "");
bean.setToken(token);
int insert = baseMapper.insert(bean);
List<VisitorsCarAppDTO> visitorsCarAppDTOList = visitors.getVisitorsCarAppDTOList();
if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){
List<VisitorsCarEntity> visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class);
visitorsCarEntities.forEach(i->{
i.setVisitorsId(bean.getId());
});
visitorsCarMapper.insert(visitorsCarEntities);
}
return insert;
}
@Override
public Object getPageBF(Page page, VisitorsEntity visitors) {
Long userId = SecurityUtils.getUser().getId();
LambdaQueryWrapper<VisitorsEntity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(VisitorsEntity::getUserId, userId);
Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of());
pageData.getRecords().forEach(i->{
});
return pageData;
}
@@ -27,5 +27,7 @@
<result property="delFlag" column="del_flag"/>
<result property="tenantId" column="tenant_id"/>
<result property="token" column="token"/>
<result property="type" column="type"/>
<result property="userId" column="user_id"/>
</resultMap>
</mapper>
@@ -15,13 +15,13 @@ public class SmsController {
private final SmsService smsService;
// 简单发送
@PostMapping("/verify-code")
@PostMapping("/sendMsg")
public void sendVerifyCode(@RequestParam String mobile) {
smsService.sendSms(mobile, "20657");
}
// 带参数发送
@PostMapping("/order-notify")
@PostMapping("/sendMsgParams")
@Inner(value = false)
public void sendOrderNotify(
@RequestParam String mobile,