This commit is contained in:
zjf committed 2025-02-05 18:20:26 +08:00
1 parent 0e2f1aa17a
commit db7359b046
6 files changed
+49 -3

No files matched your search

@@ -117,4 +117,7 @@ public class BoxesBookingEntity extends Model<BoxesBookingEntity> {
@Schema(description="部门id")
private Long deptId;
@Schema(description="流程实例id")
private String processInstanceId;
}
@@ -92,6 +92,16 @@
<artifactId>pjcloud-upms-api</artifactId>
<version>5.7.0</version>
</dependency>
<dependency>
<groupId>com.bsd</groupId>
<artifactId>pjcloud-flow-task-api</artifactId>
<version>5.7.0</version>
</dependency>
<dependency>
<groupId>com.bsd</groupId>
<artifactId>pjcloud-common-seata</artifactId>
<version>5.7.0</version>
</dependency>
<!--必备: log 依赖-->
<dependency>
<groupId>com.bsd</groupId>
@@ -10,6 +10,8 @@ import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.log.annotation.SysLog;
import com.bsd.pjcloud.canteen.entity.BoxesBookingEntity;
import com.bsd.pjcloud.canteen.service.BoxesBookingService;
import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordParamDto;
import org.apache.seata.spring.annotation.GlobalTransactional;
import org.springframework.security.access.prepost.PreAuthorize;
import com.bsd.pjcloud.common.excel.annotation.ResponseExcel;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
@@ -18,6 +20,7 @@ import org.springframework.http.HttpHeaders;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Operation;
import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@@ -123,12 +126,28 @@ public class BoxesBookingController {
@PostMapping("/create")
@Operation(summary = "新增预约")
@Transactional
@GlobalTransactional
public R<Long> createBooking(@RequestBody AppMakeSaveReqVO createReqVO) {
return boxesBookingService.createBooking(createReqVO);
}
@PostMapping("/flow-callback")
@Operation(summary = "流程节点回调通知")
public R createBooking(@RequestBody ProcessNodeRecordParamDto processNodeRecordParamDto) {
// String flowId = processNodeRecordParamDto.getFlowId();
// BoxesBookingEntity boxesBookingEntity = new BoxesBookingEntity();
// boxesBookingEntity.setProcessInstanceId(flowId);
// boxesBookingEntity.setCheckStatus();
// boxesBookingService.update()
System.out.println(processNodeRecordParamDto);
return R.ok();
}
//-------------app------------------
// @GetMapping("/getMyBookingPage")
// @Operation(summary = "获得我的预约包厢信息")
@@ -11,6 +11,8 @@ import com.bsd.pjcloud.canteen.vo.AppMakeSaveReqVO;
import com.bsd.pjcloud.common.core.util.BeanUtils;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.flow.task.api.feign.RemoteFlowApiFlowService;
import com.bsd.pjcloud.flow.task.dto.ProcessInstanceParamDto;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -32,8 +34,9 @@ public class BoxesBookingServiceImpl extends ServiceImpl<BoxesBookingMapper, Box
private final BoxesBookingMapper bookingMapper;
private final BoxesAvailabilityMapper bookingAvailabilityMapper;
private final RemoteFlowApiFlowService remoteFlowApiFlowService;
@Override
@Transactional
public R createBooking(AppMakeSaveReqVO createReqVO) {
BoxesInfoEntity infoDO = boxesInfoMapper.selectById(createReqVO.getBoxesId());
if (infoDO == null) {
@@ -54,7 +57,7 @@ public class BoxesBookingServiceImpl extends ServiceImpl<BoxesBookingMapper, Box
booking.setUserId(loginUserId);
booking.setBookingDate(LocalDate.parse(createReqVO.getBxDate()));
booking.setDeptId(infoDO.getDeptId());
bookingMapper.insert(booking);
//todo 工作流部分,待定
// Map<String, Object> objectObjectHashMap = new HashMap<>();
@@ -71,6 +74,14 @@ public class BoxesBookingServiceImpl extends ServiceImpl<BoxesBookingMapper, Box
// bookingDO.setProcessInstanceId(processInstanceId);
// bookingMapper.updateById(bookingDO);
// 启动流程
ProcessInstanceParamDto processInstanceParamDto = new ProcessInstanceParamDto();
processInstanceParamDto.setFlowId("P20250205113641052EBCRV");
R<String> stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto);
booking.setCheckStatus("0");
booking.setProcessInstanceId(stringR.getData());
bookingMapper.insert(booking);
// 返回
return R.ok();
}
@@ -20,5 +20,6 @@
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="deptId" column="dept_id"/>
<result property="processInstanceId" column="process_instance_id"/>
</resultMap>
</mapper>
@@ -1,6 +1,7 @@
package com.bsd.pjcloud.flow.engine.node.impl;
import com.bsd.pjcloud.admin.api.feign.RemoteUserService;
import com.bsd.pjcloud.common.core.util.R;
import com.bsd.pjcloud.common.core.util.RetOps;
import com.bsd.pjcloud.flow.engine.node.AssignUserStrategy;
import com.bsd.pjcloud.flow.task.constant.ProcessInstanceConstant;
@@ -40,7 +41,8 @@ public class AssignUserRoleStrategyImpl implements AssignUserStrategy {
// 使用 lambda 表达式和方法引用从 NodeUser 列表中提取角色 ID
List<Long> roleIds = node.getNodeUserList().stream().map(NodeUser::getId).collect(Collectors.toList());
// 提取 Optional 结果中的数据
List<Long> data = RetOps.of(remoteUserService.getUserIdListByRoleIdList(roleIds))
R<List<Long>> userIdListByRoleIdList = remoteUserService.getUserIdListByRoleIdList(roleIds);
List<Long> data = RetOps.of(userIdListByRoleIdList)
.getData()
.orElseGet(Collections::emptyList);