diff --git a/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/IntegratedFlowConstant.java b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/IntegratedFlowConstant.java new file mode 100644 index 00000000..0fe22e2e --- /dev/null +++ b/pjcloud-integrated/pjcloud-integrated-api/src/main/java/com/bsd/pjcloud/integrated/constant/IntegratedFlowConstant.java @@ -0,0 +1,17 @@ +package com.bsd.pjcloud.integrated.constant; + +import lombok.Data; + +@Data +public final class IntegratedFlowConstant { + + /** + * 访客预约 + */ + public static final String INTEGRATED_VISITOR= "INTEGRATED_VISITOR"; + + + + + +} diff --git a/pjcloud-integrated/pjcloud-integrated-biz/pom.xml b/pjcloud-integrated/pjcloud-integrated-biz/pom.xml index 7177e748..5561f5f8 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/pom.xml +++ b/pjcloud-integrated/pjcloud-integrated-biz/pom.xml @@ -64,6 +64,17 @@ pjcloud-integrated-api 5.7.0 + + + com.bsd + pjcloud-flow-task-api + 5.7.0 + + + com.bsd + pjcloud-common-seata + 5.7.0 + com.bsd diff --git a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java index 4e930eaa..e42de1ce 100644 --- a/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java +++ b/pjcloud-integrated/pjcloud-integrated-biz/src/main/java/com/bsd/pjcloud/integrated/service/impl/VisitorsServiceImpl.java @@ -1,7 +1,15 @@ package com.bsd.pjcloud.integrated.service.impl; 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.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.dto.visitors.app.VisitorsAppDTO; import com.bsd.pjcloud.integrated.dto.visitors.app.VisitorsCarAppDTO; import com.bsd.pjcloud.integrated.entity.VisitorsCarEntity; @@ -11,6 +19,7 @@ import com.bsd.pjcloud.integrated.mapper.VisitorsMapper; import com.bsd.pjcloud.integrated.service.VisitorsService; import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.List; @@ -26,9 +35,33 @@ import java.util.List; public class VisitorsServiceImpl extends ServiceImpl implements VisitorsService { private final VisitorsCarMapper visitorsCarMapper; + + private final RemoteUserService remoteUserService; + + private final RemoteFlowApiFlowService remoteFlowApiFlowService; @Override + @Transactional public Object vistorsSave(VisitorsAppDTO visitors) { + + //发起流程 + R 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 stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); + if (!stringR.isOk() || stringR.getData() == null) { + throw new ServiceException("流程实例启动失败: " + stringR.getMsg()); + } + String processInstanceId = stringR.getData(); + VisitorsEntity bean = BeanUtils.toBean(visitors, VisitorsEntity.class); + bean.setProcessInstanceId(processInstanceId); + bean.setCheckStatus(TaskCheckStatusEnum.PADDING.getCode()); + + int insert = baseMapper.insert(bean); List visitorsCarAppDTOList = visitors.getVisitorsCarAppDTOList(); if (!CollectionUtils.isEmpty(visitorsCarAppDTOList)){ List visitorsCarEntities = BeanUtils.toBean(visitorsCarAppDTOList, VisitorsCarEntity.class); @@ -37,6 +70,6 @@ public class VisitorsServiceImpl extends ServiceImpl> findRolesByCodes(@RequestBody List codes) { @@ -141,7 +146,9 @@ public class SysRoleController { @GetMapping("/isMchUser") public R isMchUser() { - List roleIds = SecurityUtils.getRoleIds(); + Long id = SecurityUtils.getUser().getId(); + List sysUserRoles = sysUserRoleService.list(Wrappers.lambdaQuery().eq(SysUserRole::getUserId, id)); + List roleIds = sysUserRoles.stream().map(sysUserRole -> sysUserRole.getRoleId()).collect(Collectors.toList()); List list = sysRoleService.list(Wrappers.lambdaQuery().eq(SysRole::getRoleCode, "MCH_USER")); if (CollectionUtils.isEmpty(list) || CollUtil.isEmpty(roleIds) || !roleIds.contains(list.get(0).getRoleId())){ return R.ok(false);