diff --git a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesBookingEntity.java b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesBookingEntity.java index 1448b3fee..c7c189a36 100644 --- a/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesBookingEntity.java +++ b/pjcloud-canteen/pjcloud-canteen-api/src/main/java/com/bsd/pjcloud/canteen/entity/BoxesBookingEntity.java @@ -117,4 +117,7 @@ public class BoxesBookingEntity extends Model { @Schema(description="部门id") private Long deptId; + + @Schema(description="流程实例id") + private String processInstanceId; } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/pom.xml b/pjcloud-canteen/pjcloud-canteen-biz/pom.xml index 92f4abbf9..fd559cc8c 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/pom.xml +++ b/pjcloud-canteen/pjcloud-canteen-biz/pom.xml @@ -92,6 +92,16 @@ pjcloud-upms-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-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesBookingController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesBookingController.java index 9a4283f85..f63abfede 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesBookingController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/BoxesBookingController.java @@ -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 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 = "获得我的预约包厢信息") diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/BoxesBookingServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/BoxesBookingServiceImpl.java index 61c024fa6..75ca310c0 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/BoxesBookingServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/BoxesBookingServiceImpl.java @@ -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 objectObjectHashMap = new HashMap<>(); @@ -71,6 +74,14 @@ public class BoxesBookingServiceImpl extends ServiceImpl stringR = remoteFlowApiFlowService.startProcessInstance(processInstanceParamDto); + booking.setCheckStatus("0"); + booking.setProcessInstanceId(stringR.getData()); + bookingMapper.insert(booking); + // 返回 return R.ok(); } diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/BoxesBookingMapper.xml b/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/BoxesBookingMapper.xml index 834955797..eb39f95a8 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/BoxesBookingMapper.xml +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/resources/mapper/BoxesBookingMapper.xml @@ -20,5 +20,6 @@ + \ No newline at end of file diff --git a/pjcloud-flow/pjcloud-flow-engine/pjcloud-flow-engine-biz/src/main/java/com/bsd/pjcloud/flow/engine/node/impl/AssignUserRoleStrategyImpl.java b/pjcloud-flow/pjcloud-flow-engine/pjcloud-flow-engine-biz/src/main/java/com/bsd/pjcloud/flow/engine/node/impl/AssignUserRoleStrategyImpl.java index d06e191d2..369757110 100644 --- a/pjcloud-flow/pjcloud-flow-engine/pjcloud-flow-engine-biz/src/main/java/com/bsd/pjcloud/flow/engine/node/impl/AssignUserRoleStrategyImpl.java +++ b/pjcloud-flow/pjcloud-flow-engine/pjcloud-flow-engine-biz/src/main/java/com/bsd/pjcloud/flow/engine/node/impl/AssignUserRoleStrategyImpl.java @@ -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 roleIds = node.getNodeUserList().stream().map(NodeUser::getId).collect(Collectors.toList()); // 提取 Optional 结果中的数据 - List data = RetOps.of(remoteUserService.getUserIdListByRoleIdList(roleIds)) + R> userIdListByRoleIdList = remoteUserService.getUserIdListByRoleIdList(roleIds); + List data = RetOps.of(userIdListByRoleIdList) .getData() .orElseGet(Collections::emptyList);