From 3e7400102c64317b90e124e39e5dfa84b79618a2 Mon Sep 17 00:00:00 2001 From: maxiangong <298222784@qq.com> Date: Thu, 11 Jun 2026 14:01:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=91=E7=9A=84=E5=BE=85=E5=8A=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feign/IMesApprovalRecordClient.java | 47 +++- .../pojo/dto/MesApprovalRecordFeignDTO.java | 47 ++++ .../entity/MesApprovalFlowDefPermEntity.java | 37 +++ .../MesApprovalRecordHandleLogEntity.java | 39 +++ .../MesApprovalRecordPermissionEntity.java | 35 +++ .../common/pojo/vo/MyMesApprovalRecordVO.java | 14 +- .../MesApprovalRecordController.java | 8 +- .../common/feign/MesApprovalRecordClient.java | 38 ++- .../common/mapper/ApprovalRecordMapper.xml | 69 ++++++ .../mapper/MesApprovalFlowDefPermMapper.java | 8 + .../mapper/MesApprovalFlowDefPermMapper.xml | 20 ++ .../MesApprovalRecordHandleLogMapper.java | 7 + .../MesApprovalRecordHandleLogMapper.xml | 20 ++ .../mapper/MesApprovalRecordMapper.java | 56 +++-- .../MesApprovalRecordPermissionMapper.java | 9 + .../MesApprovalRecordPermissionMapper.xml | 20 ++ .../IMesApprovalFlowDefPermService.java | 7 + .../IMesApprovalRecordHandleLogService.java | 7 + .../IMesApprovalRecordPermissionService.java | 7 + .../service/IMesApprovalRecordService.java | 81 ++++++- .../MesApprovalFlowDefPermServiceImpl.java | 11 + ...MesApprovalFlowDefinitionServiceImpl.java} | 2 +- ...va => MesApprovalFlowUserServiceImpl.java} | 2 +- ...MesApprovalRecordHandleLogServiceImpl.java | 13 + ...esApprovalRecordPermissionServiceImpl.java | 11 + .../impl/MesApprovalRecordServiceImpl.java | 228 ++++++++++++++---- .../OemSettlementApprovalServiceImpl.java | 10 +- .../service/impl/OemStatementServiceImpl.java | 35 ++- 28 files changed, 781 insertions(+), 107 deletions(-) create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/dto/MesApprovalRecordFeignDTO.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowDefPermEntity.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordHandleLogEntity.java create mode 100644 blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordPermissionEntity.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.xml create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowDefPermService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordHandleLogService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordPermissionService.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowDefPermServiceImpl.java rename blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/{IMesApprovalFlowDefinitionServiceImpl.java => MesApprovalFlowDefinitionServiceImpl.java} (70%) rename blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/{IMesApprovalFlowUserServiceImpl.java => MesApprovalFlowUserServiceImpl.java} (80%) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordHandleLogServiceImpl.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordPermissionServiceImpl.java diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/feign/IMesApprovalRecordClient.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/feign/IMesApprovalRecordClient.java index 532f306ff..90ee5a961 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/feign/IMesApprovalRecordClient.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/feign/IMesApprovalRecordClient.java @@ -26,6 +26,7 @@ package org.springblade.desk.common.feign; import org.springblade.core.tool.api.R; +import org.springblade.desk.common.pojo.dto.MesApprovalRecordFeignDTO; import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -38,27 +39,47 @@ import org.springframework.web.bind.annotation.RequestBody; * @since 2026-02-26 */ @FeignClient( - value = "blade-desk" + value = "blade-desk" ) public interface IMesApprovalRecordClient { String API_PREFIX = "/feign/client/mesApprovalRecord"; - String SAVE = API_PREFIX + "/save"; - String UPDATE = API_PREFIX + "/update"; + String CREATE_APPROVAL = API_PREFIX + "/createApproval"; + String PASS_APPROVAL = API_PREFIX + "/passApproval"; + String PENDING_APPROVAL = API_PREFIX + "/pendingApproval"; + String REJECT_APPROVAL = API_PREFIX + "/rejectApproval"; + + + /** + * 创建审核记录 + * + * @param mesApprovalRecord + * @return + */ + @PostMapping(CREATE_APPROVAL) + R createApproval(@RequestBody MesApprovalRecordFeignDTO mesApprovalRecord); + + /** + * 审核成功记录状态流转 + * @param mesApprovalRecord + * @return + */ + @PostMapping(PASS_APPROVAL) + R passApproval(@RequestBody MesApprovalRecordFeignDTO mesApprovalRecord); /** - * 新增审批记录表 - * @param mesApprovalRecord 审批记录表 - * @return 结果 + * 审核中增加审核人记录 + * @param mesApprovalRecord + * @return */ - @PostMapping(SAVE) - R save(@RequestBody MesApprovalRecordEntity mesApprovalRecord); + @PostMapping(PENDING_APPROVAL) + R pendingApproval(@RequestBody MesApprovalRecordFeignDTO mesApprovalRecord); /** - * 修改审批记录表 - * @param mesApprovalRecord 审批记录表 - * @return 结果 + * 审核失败记录状态流转 + * @param mesApprovalRecord + * @return */ - @PostMapping(UPDATE) - R update(@RequestBody MesApprovalRecordEntity mesApprovalRecord); + @PostMapping(REJECT_APPROVAL) + R rejectApproval(@RequestBody MesApprovalRecordFeignDTO mesApprovalRecord); } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/dto/MesApprovalRecordFeignDTO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/dto/MesApprovalRecordFeignDTO.java new file mode 100644 index 000000000..c8480a719 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/dto/MesApprovalRecordFeignDTO.java @@ -0,0 +1,47 @@ +package org.springblade.desk.common.pojo.dto; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +/** + * 待办审核记录Feign数据传输对象实体类 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class MesApprovalRecordFeignDTO { + + /** + * 业务ID + */ + private Long bizId; + + /** + * 业务类型 + */ + private String bizType; + + /** + * 审批用户 + */ + private Long approvalUser; + + /** + * 审批时间 + */ + private Date approvalTime; + + /** + * 角色ID集合 + */ + private List roleIds; + + /** + * 用户ID集合 + */ + private List userIds; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowDefPermEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowDefPermEntity.java new file mode 100644 index 000000000..dcab5ea18 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowDefPermEntity.java @@ -0,0 +1,37 @@ +package org.springblade.desk.common.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 审批流定义权限表 + */ +@Data +@TableName("MES_APPROVAL_FLOW_DEF_PERM") +@Schema(description = "MesApprovalFlowDefPerm对象") +@EqualsAndHashCode(callSuper = true) +public class MesApprovalFlowDefPermEntity extends BaseEntity { + + /** + * 定义ID + */ + @Schema(description = "定义ID") + private Long definitionId; + + /** + * 权限类型:0-角色,1-用户 + */ + @Schema(description = "权限类型:0-角色,1-用户") + private Integer permissionType; + + /** + * 权限ID:角色ID,用户ID + */ + @Schema(description = "权限ID:角色ID,用户ID") + private Long permissionId; + + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordHandleLogEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordHandleLogEntity.java new file mode 100644 index 000000000..c47fedb9a --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordHandleLogEntity.java @@ -0,0 +1,39 @@ +package org.springblade.desk.common.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +import java.util.Date; + +/** + * 审批记录处理日志表实体类 + */ +@Data +@TableName("MES_APPROVAL_RECORD_HANDLE_LOG") +@Schema(description = "MesApprovalRecordHandleLog对象") +@EqualsAndHashCode(callSuper = true) +public class MesApprovalRecordHandleLogEntity extends BaseEntity { + + + /** + * 审批记录ID + */ + @Schema(description = "审批记录ID") + private Long recordId; + + /** + * 审批人 + */ + @Schema(description = "审批人") + private Long approvalUser; + + /** + * 审批时间 + */ + @Schema(description = "审批时间") + private Date approvalTime; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordPermissionEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordPermissionEntity.java new file mode 100644 index 000000000..e4c00803e --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalRecordPermissionEntity.java @@ -0,0 +1,35 @@ +package org.springblade.desk.common.pojo.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.core.mp.base.BaseEntity; + +/** + * 审批记录权限表实体类 + */ +@Data +@TableName("MES_APPROVAL_RECORD_PERMISSION") +@Schema(description = "MesApprovalRecordPermission对象") +@EqualsAndHashCode(callSuper = true) +public class MesApprovalRecordPermissionEntity extends BaseEntity { + + /** + * 审批记录ID + */ + @Schema(description = "审批记录ID") + private Long recordId; + + /** + * 权限类型:0-角色,1-用户 + */ + @Schema(description = "权限类型:0-角色,1-用户") + private Integer permissionType; + + /** + * 权限ID:角色ID,用户ID + */ + @Schema(description = "权限ID:角色ID,用户ID") + private Long permissionId; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MyMesApprovalRecordVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MyMesApprovalRecordVO.java index e4862aabe..4d00904d3 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MyMesApprovalRecordVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MyMesApprovalRecordVO.java @@ -3,6 +3,8 @@ package org.springblade.desk.common.pojo.vo; import lombok.Data; import lombok.EqualsAndHashCode; +import java.util.Date; + /** * @author 石玖洲 * @Description 我的审批VO展示类 @@ -12,9 +14,15 @@ import lombok.EqualsAndHashCode; @Data public class MyMesApprovalRecordVO extends MesApprovalRecordVO{ - private String statusName; - private String createUserName; - private String statusList; + private Integer approvalStatus; + + private String approvalStatusName; + + private Date approvalTime; + + private String startTime; + + private String endTime; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/controller/MesApprovalRecordController.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/controller/MesApprovalRecordController.java index 3a14ea97f..fb5dfacf2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/controller/MesApprovalRecordController.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/controller/MesApprovalRecordController.java @@ -34,6 +34,7 @@ import lombok.AllArgsConstructor; import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; @@ -67,10 +68,9 @@ public class MesApprovalRecordController extends BladeController { */ @GetMapping("/pageMyApprovalRecord") @Operation(summary = "获取我的审批分页", description = "传入mesApprovalRecord") - public R> pageMyApprovalRecord(MyMesApprovalRecordVO mesApprovalRecord, Query query) { -// mesApprovalRecord.setNextRoleId(Long.parseLong(AuthUtil.getUser().getRoleId())); - Page page = new Page<>(query.getCurrent(), query.getSize()); - IPage pages = mesApprovalRecordService.selectMyMesApprovalRecordPage(page, mesApprovalRecord); + public R> pageMyApprovalRecord(MyMesApprovalRecordVO mesApprovalRecord, Query query, BladeUser user) { + Page page = new Page<>(query.getCurrent(), query.getSize()); + IPage pages = mesApprovalRecordService.selectMyMesApprovalRecordPage(page, mesApprovalRecord, user); return R.data(pages); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/feign/MesApprovalRecordClient.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/feign/MesApprovalRecordClient.java index 48dc6ac34..a36deb6ef 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/feign/MesApprovalRecordClient.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/feign/MesApprovalRecordClient.java @@ -29,6 +29,7 @@ import lombok.AllArgsConstructor; import io.swagger.v3.oas.annotations.Hidden; import org.springblade.core.tool.api.R; import org.springblade.desk.common.constant.ApprovalStatusConstant; +import org.springblade.desk.common.pojo.dto.MesApprovalRecordFeignDTO; import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; import org.springblade.desk.common.service.IMesApprovalRecordService; import org.springframework.web.bind.annotation.RestController; @@ -47,15 +48,42 @@ public class MesApprovalRecordClient implements IMesApprovalRecordClient { private final IMesApprovalRecordService mesApprovalRecordService; @Override - public R save(MesApprovalRecordEntity mesApprovalRecord) { - mesApprovalRecord.setStatus(ApprovalStatusConstant.WAITING); - mesApprovalRecordService.save(mesApprovalRecord); + public R createApproval(MesApprovalRecordFeignDTO mesApprovalRecord) { + try { + mesApprovalRecordService.createApproval(mesApprovalRecord.getBizId(), mesApprovalRecord.getBizType(), mesApprovalRecord.getApprovalUser(), mesApprovalRecord.getApprovalTime(), mesApprovalRecord.getRoleIds(), mesApprovalRecord.getUserIds()); + } catch (Exception e) { + return R.fail(e.getMessage()); + } return R.success(); } @Override - public R update(MesApprovalRecordEntity mesApprovalRecord) { - mesApprovalRecordService.updateById(mesApprovalRecord); + public R passApproval(MesApprovalRecordFeignDTO mesApprovalRecord) { + try { + mesApprovalRecordService.passApproval(mesApprovalRecord.getBizId(), mesApprovalRecord.getBizType(), mesApprovalRecord.getApprovalUser(), mesApprovalRecord.getApprovalTime(), mesApprovalRecord.getRoleIds(), mesApprovalRecord.getUserIds()); + } catch (Exception e) { + return R.fail(e.getMessage()); + } + return R.success(); + } + + @Override + public R pendingApproval(MesApprovalRecordFeignDTO mesApprovalRecord) { + try { + mesApprovalRecordService.pendingApproval(mesApprovalRecord.getBizId(), mesApprovalRecord.getBizType(), mesApprovalRecord.getApprovalUser(), mesApprovalRecord.getApprovalTime()); + } catch (Exception e) { + return R.fail(e.getMessage()); + } + return R.success(); + } + + @Override + public R rejectApproval(MesApprovalRecordFeignDTO mesApprovalRecord) { + try { + mesApprovalRecordService.rejectApproval(mesApprovalRecord.getBizId(), mesApprovalRecord.getBizType(), mesApprovalRecord.getApprovalUser(), mesApprovalRecord.getApprovalTime()); + } catch (Exception e) { + return R.fail(e.getMessage()); + } return R.success(); } } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/ApprovalRecordMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/ApprovalRecordMapper.xml index 4a5587f24..37d834c02 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/ApprovalRecordMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/ApprovalRecordMapper.xml @@ -22,6 +22,11 @@ + + + + + + + + + diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.java new file mode 100644 index 000000000..4687fd00c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.java @@ -0,0 +1,8 @@ +package org.springblade.desk.common.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowDefPermEntity; + +public interface MesApprovalFlowDefPermMapper extends BaseMapper { + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.xml new file mode 100644 index 000000000..7a55c7459 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefPermMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.java new file mode 100644 index 000000000..a71656937 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.java @@ -0,0 +1,7 @@ +package org.springblade.desk.common.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalRecordHandleLogEntity; + +public interface MesApprovalRecordHandleLogMapper extends BaseMapper { +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.xml new file mode 100644 index 000000000..a9513c9eb --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordHandleLogMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordMapper.java index 696812548..54f832c75 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordMapper.java @@ -28,6 +28,7 @@ package org.springblade.desk.common.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; +import org.springblade.desk.common.pojo.vo.MesApprovalRecordVO; import org.springblade.desk.common.pojo.vo.MyHistoryMesApprovalRecordVO; import org.springblade.desk.common.pojo.vo.MyMesApprovalRecordVO; @@ -41,22 +42,43 @@ import java.util.List; */ public interface MesApprovalRecordMapper extends BaseMapper { - /** - * 自定义分页 - * - * @param page 分页参数 - * @param mesApprovalRecord 查询参数 - * @return List - */ - List selectMyMesApprovalRecordPage(IPage page, MyMesApprovalRecordVO mesApprovalRecord); - - /** - * 自定义分页 - * - * @param page 分页参数 - * @param mesApprovalRecord 查询参数 - * @return List - */ - List selectMyHistoryMesApprovalRecordPage(IPage page, MyHistoryMesApprovalRecordVO mesApprovalRecord); + /** + * 自定义分页 + * + * @param page 分页参数 + * @param mesApprovalRecord 查询参数 + * @return List + */ + List selectMyMesApprovalRecordPage(IPage page, MyMesApprovalRecordVO mesApprovalRecord); + + /** + * 自定义分页 + * + * @param page 分页参数 + * @param mesApprovalRecord 查询参数 + * @return List + */ + List selectMyHistoryMesApprovalRecordPage(IPage page, MyHistoryMesApprovalRecordVO mesApprovalRecord); + + /** + * 我的待办分页查询 + * + * @param page + * @param loginUserId + * @param userRoleIds + * @param mesApprovalRecord + * @return + */ + List selectMyToDoPage(IPage page, Long loginUserId, String userRoleIds, MyMesApprovalRecordVO mesApprovalRecord); + + /** + * 我的已办分页查询 + * + * @param page + * @param loginUserId + * @param mesApprovalRecord + * @return + */ + List selectMyDonePage(IPage page, Long loginUserId, MyMesApprovalRecordVO mesApprovalRecord); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.java new file mode 100644 index 000000000..1c1f72bb0 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.java @@ -0,0 +1,9 @@ +package org.springblade.desk.common.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalRecordPermissionEntity; + +public interface MesApprovalRecordPermissionMapper extends BaseMapper { + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.xml new file mode 100644 index 000000000..b4635e9fb --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalRecordPermissionMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowDefPermService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowDefPermService.java new file mode 100644 index 000000000..3824a8a35 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowDefPermService.java @@ -0,0 +1,7 @@ +package org.springblade.desk.common.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowDefPermEntity; + +public interface IMesApprovalFlowDefPermService extends BaseService { +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordHandleLogService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordHandleLogService.java new file mode 100644 index 000000000..dbe770bd3 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordHandleLogService.java @@ -0,0 +1,7 @@ +package org.springblade.desk.common.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.common.pojo.entity.MesApprovalRecordHandleLogEntity; + +public interface IMesApprovalRecordHandleLogService extends BaseService { +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordPermissionService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordPermissionService.java new file mode 100644 index 000000000..7635287f3 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordPermissionService.java @@ -0,0 +1,7 @@ +package org.springblade.desk.common.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.common.pojo.entity.MesApprovalRecordPermissionEntity; + +public interface IMesApprovalRecordPermissionService extends BaseService { +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordService.java index 10040a9ed..fb5c78abb 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalRecordService.java @@ -28,12 +28,14 @@ package org.springblade.desk.common.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springblade.core.mp.base.BaseService; +import org.springblade.core.secure.BladeUser; import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; import org.springblade.desk.common.pojo.vo.MesApprovalRecordDetailVO; import org.springblade.desk.common.pojo.vo.MyHistoryMesApprovalRecordVO; import org.springblade.desk.common.pojo.vo.MyMesApprovalRecordVO; import java.util.Date; +import java.util.List; /** * 审批记录表 服务类 @@ -46,11 +48,12 @@ public interface IMesApprovalRecordService extends BaseService + * @param page + * @param mesApprovalRecord + * @param user + * @return */ - IPage selectMyMesApprovalRecordPage(Page page, MyMesApprovalRecordVO mesApprovalRecord); + IPage selectMyMesApprovalRecordPage(Page page, MyMesApprovalRecordVO mesApprovalRecord, BladeUser user); /** * 自定义分页 @@ -71,11 +74,43 @@ public interface IMesApprovalRecordService extends BaseService roleIds); + + /** + * 创建审核记录指定下级用户 + * @param bizId + * @param bizType + * @param approvalUser + * @param approvalTime + * @param userIds + */ + void createApprovalWithUsers(Long bizId, String bizType, Long approvalUser, Date approvalTime, List userIds); + + /** + * 创建审核记录指定下级权限 + * @param bizId + * @param bizType + * @param approvalUser + * @param approvalTime + * @param roleIds + * @param userIds + */ + void createApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime, List roleIds, List userIds); /** * 待办审核通过 @@ -87,13 +122,47 @@ public interface IMesApprovalRecordService extends BaseService roleIds); + + /** + * 待办审核通过指定下级用户 + * + * @param bizId + * @param bizType + * @param approvalUser + * @param approvalTime + * @param userIds + */ + void passApprovalWithUsers(Long bizId, String bizType, Long approvalUser, Date approvalTime, List userIds); + + /** + * 待办审核通过指定下级权限 + * + * @param bizId + * @param bizType + * @param approvalUser + * @param approvalTime + * @param roleIds + * @param userIds + */ + void passApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime, List roleIds, List userIds); + /** * 待办审核驳回 * * @param bizId * @param bizType */ - void rejectApproval(Long bizId, String bizType); + void rejectApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime); /** * 待办审核中 diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowDefPermServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowDefPermServiceImpl.java new file mode 100644 index 000000000..7a477b27c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowDefPermServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.desk.common.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.common.mapper.MesApprovalFlowDefPermMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowDefPermEntity; +import org.springblade.desk.common.service.IMesApprovalFlowDefPermService; +import org.springframework.stereotype.Service; + +@Service +public class MesApprovalFlowDefPermServiceImpl extends BaseServiceImpl implements IMesApprovalFlowDefPermService { +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/IMesApprovalFlowDefinitionServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowDefinitionServiceImpl.java similarity index 70% rename from blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/IMesApprovalFlowDefinitionServiceImpl.java rename to blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowDefinitionServiceImpl.java index e1d39bdaa..05c777d96 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/IMesApprovalFlowDefinitionServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowDefinitionServiceImpl.java @@ -10,7 +10,7 @@ import org.springframework.stereotype.Service; * 审批流定义Service实现类 */ @Service -public class IMesApprovalFlowDefinitionServiceImpl extends BaseServiceImpl implements IMesApprovalFlowDefinitionService { +public class MesApprovalFlowDefinitionServiceImpl extends BaseServiceImpl implements IMesApprovalFlowDefinitionService { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/IMesApprovalFlowUserServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowUserServiceImpl.java similarity index 80% rename from blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/IMesApprovalFlowUserServiceImpl.java rename to blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowUserServiceImpl.java index 274d4149c..9cd9518c3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/IMesApprovalFlowUserServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowUserServiceImpl.java @@ -13,7 +13,7 @@ import java.util.List; * 审批流程用户记录Service实现类 */ @Service -public class IMesApprovalFlowUserServiceImpl extends BaseServiceImpl implements IMesApprovalFlowUserService { +public class MesApprovalFlowUserServiceImpl extends BaseServiceImpl implements IMesApprovalFlowUserService { @Override public List queryByFlowId(Long flowId) { diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordHandleLogServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordHandleLogServiceImpl.java new file mode 100644 index 000000000..9854a8f66 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordHandleLogServiceImpl.java @@ -0,0 +1,13 @@ +package org.springblade.desk.common.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.common.mapper.MesApprovalRecordHandleLogMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalRecordHandleLogEntity; +import org.springblade.desk.common.service.IMesApprovalRecordHandleLogService; +import org.springframework.stereotype.Service; + +@Service +public class MesApprovalRecordHandleLogServiceImpl extends BaseServiceImpl implements IMesApprovalRecordHandleLogService { + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordPermissionServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordPermissionServiceImpl.java new file mode 100644 index 000000000..80cd32a65 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordPermissionServiceImpl.java @@ -0,0 +1,11 @@ +package org.springblade.desk.common.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.common.mapper.MesApprovalRecordPermissionMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalRecordPermissionEntity; +import org.springblade.desk.common.service.IMesApprovalRecordPermissionService; +import org.springframework.stereotype.Service; + +@Service +public class MesApprovalRecordPermissionServiceImpl extends BaseServiceImpl implements IMesApprovalRecordPermissionService { +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordServiceImpl.java index fca4b4d96..56e57b14e 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalRecordServiceImpl.java @@ -25,22 +25,18 @@ */ package org.springblade.desk.common.service.impl; -import cn.hutool.core.util.StrUtil; -import com.alibaba.excel.util.StringUtils; import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import jakarta.annotation.Resource; import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.desk.common.constant.ApprovalStatusConstant; import org.springblade.desk.common.factory.MesApprovalDetailFactory; import org.springblade.desk.common.mapper.MesApprovalRecordMapper; -import org.springblade.desk.common.pojo.entity.MesApprovalFlowDefinitionEntity; -import org.springblade.desk.common.pojo.entity.MesApprovalFlowEntity; -import org.springblade.desk.common.pojo.entity.MesApprovalFlowUserEntity; -import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; +import org.springblade.desk.common.pojo.entity.*; import org.springblade.desk.common.pojo.vo.*; import org.springblade.desk.common.service.*; import org.springblade.system.cache.UserCache; @@ -67,39 +63,28 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl selectMyMesApprovalRecordPage(Page page, MyMesApprovalRecordVO mesApprovalRecord) { - List statusList = null; - if (StringUtils.isNotBlank(mesApprovalRecord.getStatusList())) { - statusList = Arrays.stream(mesApprovalRecord.getStatusList().split(",")) - .filter(StringUtils::isNotBlank) - .map(Integer::valueOf) - .collect(Collectors.toList()); + public IPage selectMyMesApprovalRecordPage(Page page, MyMesApprovalRecordVO mesApprovalRecord, BladeUser user) { + List vos = null; + if (mesApprovalRecord.getStatus() == null || mesApprovalRecord.getStatus() == 0) { + vos = baseMapper.selectMyToDoPage(page, user.getUserId(), user.getRoleId(), mesApprovalRecord); + } else if (mesApprovalRecord.getStatus() == 1) { + vos = baseMapper.selectMyDonePage(page, user.getUserId(), mesApprovalRecord); } - Page mesNotifyMessageVOPage = this.page(page, new LambdaQueryWrapper() - .eq(StrUtil.isNotEmpty(mesApprovalRecord.getBizType()), MesApprovalRecordEntity::getBizType, mesApprovalRecord.getBizType()) - .eq(mesApprovalRecord.getStatus() != null, MesApprovalRecordEntity::getStatus, mesApprovalRecord.getStatus()) - .in(CollectionUtils.isNotEmpty(statusList), MesApprovalRecordEntity::getStatus, statusList) - .like(StrUtil.isNotEmpty(mesApprovalRecord.getContent()), MesApprovalRecordEntity::getContent, mesApprovalRecord.getContent()) - .orderByDesc(MesApprovalRecordEntity::getCreateTime)); - Page page1 = new Page<>(); - if (!mesNotifyMessageVOPage.getRecords().isEmpty()) { - List recordVOList = new ArrayList<>(); - mesNotifyMessageVOPage.getRecords().forEach(entity -> { - MyMesApprovalRecordVO recordVO = new MyMesApprovalRecordVO(); - BeanUtils.copyProperties(entity, recordVO); - recordVO.setCreateUserName(AuthUtil.getUserName()); - recordVO.setStatusName(buildStatusName(recordVO.getStatus())); - recordVOList.add(recordVO); + if (CollectionUtils.isNotEmpty(vos)) { + vos.forEach(vo -> { + vo.setCreateUserName(AuthUtil.getUserName()); + vo.setApprovalStatusName(buildStatusName(vo.getApprovalStatus())); }); - page1.setRecords(recordVOList); - page1.setTotal(page.getTotal()); - page1.setSize(page.getSize()); - page1.setCurrent(page.getCurrent()); - return page1; } - return page1; + return page.setRecords(vos); } private String buildStatusName(Integer status) { @@ -171,7 +156,31 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl roleIds) { + createApproval(bizId, bizType, approvalUser, approvalTime, roleIds, null); + } + + @Override + public void createApprovalWithUsers(Long bizId, String bizType, Long approvalUser, Date approvalTime, List userIds) { + createApproval(bizId, bizType, approvalUser, approvalTime, null, userIds); + } + + /** + * 创建待办 + * + * @param bizId + * @param bizType + * @param roleIds + * @param userIds + */ + @Override + public void createApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime, List roleIds, List userIds) { + // 创建待办 MesApprovalRecordEntity approvalRecord = new MesApprovalRecordEntity(); approvalRecord.setBizId(bizId); @@ -180,7 +189,18 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flowDefinitionList = approvalFlowDefinitionService.list(new LambdaQueryWrapper().eq(MesApprovalFlowDefinitionEntity::getBizType, bizType).orderByAsc(MesApprovalFlowDefinitionEntity::getSort)); + // 查询流程定义 + List flowDefinitionList = approvalFlowDefinitionService.list( + new LambdaQueryWrapper() + .eq(MesApprovalFlowDefinitionEntity::getBizType, bizType) + .orderByAsc(MesApprovalFlowDefinitionEntity::getSort)); + if (CollectionUtils.isEmpty(flowDefinitionList) || flowDefinitionList.size() < 2) { + return; + } + // 构建审批记录权限 + MesApprovalFlowDefinitionEntity currentFlowDefinition = flowDefinitionList.get(1); + createRecordPermission(approvalRecord.getId(), currentFlowDefinition, roleIds, userIds); + List flowList = new ArrayList<>(); for (int i = 0; i < flowDefinitionList.size(); i++) { MesApprovalFlowDefinitionEntity definition = flowDefinitionList.get(i); @@ -196,45 +216,136 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flow.getSort() == 1).findFirst().orElse(null); + MesApprovalFlowEntity firstFlow = flowList.get(0); if (firstFlow != null) { MesApprovalFlowUserEntity flowUser = new MesApprovalFlowUserEntity(); flowUser.setFlowId(firstFlow.getId()); - flowUser.setApprovalUser(approvalRecord.getCreateUser()); - flowUser.setApprovalTime(approvalRecord.getCreateTime()); + flowUser.setApprovalUser(approvalUser); + flowUser.setApprovalTime(approvalTime); approvalFlowUserService.save(flowUser); } } + /** + * 创建审批记录权限 + * + * @param recordId + * @param currentFlowDefinition + * @param roleIds + * @param userIds + */ + private void createRecordPermission(Long recordId, MesApprovalFlowDefinitionEntity currentFlowDefinition, List roleIds, List userIds) { + List recordPermList = new ArrayList<>(); + // 全为空查询默认配置 + if (CollectionUtils.isEmpty(roleIds) && CollectionUtils.isEmpty(userIds)) { + List permList = approvalFlowDefPermService.list(new LambdaQueryWrapper() + .eq(MesApprovalFlowDefPermEntity::getDefinitionId, currentFlowDefinition.getId())); + if (CollectionUtils.isNotEmpty(permList)) { + for (MesApprovalFlowDefPermEntity perm : permList) { + recordPermList.add(buildRecordPermissionEntity(recordId, perm.getPermissionId(), perm.getPermissionType())); + } + } + } + if (CollectionUtils.isNotEmpty(roleIds)) { + for (Long roleId : roleIds) { + recordPermList.add(buildRecordPermissionEntity(recordId, roleId, 0)); + } + } + if (CollectionUtils.isNotEmpty(userIds)) { + for (Long userId : userIds) { + recordPermList.add(buildRecordPermissionEntity(recordId, userId, 1)); + } + } + approvalRecordPermissionService.saveBatch(recordPermList); + } + + /** + * 构建审批记录权限对象 + * + * @param recordId + * @param permissionId + * @param permissionType + * @return + */ + private MesApprovalRecordPermissionEntity buildRecordPermissionEntity(Long recordId, Long permissionId, Integer permissionType) { + MesApprovalRecordPermissionEntity recordPerm = new MesApprovalRecordPermissionEntity(); + recordPerm.setRecordId(recordId); + recordPerm.setPermissionId(permissionId); + recordPerm.setPermissionType(permissionType); + return recordPerm; + } + @Override public void passApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime) { + passApproval(bizId, bizType, approvalUser, approvalTime, null, null); + } + + @Override + public void passApprovalWithRoles(Long bizId, String bizType, Long approvalUser, Date approvalTime, List roleIds) { + passApproval(bizId, bizType, approvalUser, approvalTime, roleIds, null); + } + + @Override + public void passApprovalWithUsers(Long bizId, String bizType, Long approvalUser, Date approvalTime, List userIds) { + passApproval(bizId, bizType, approvalUser, approvalTime, null, userIds); + } + + /** + * 审批通过 + * + * @param bizId + * @param bizType + * @param approvalUser + * @param approvalTime + * @param roleIds + * @param userIds + */ + @Override + public void passApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime, List roleIds, List userIds) { + // 获取当前审批记录 MesApprovalRecordEntity entity = getByBiz(bizId, bizType); if (entity == null || entity.getStatus() != ApprovalStatusConstant.WAITING) { return; } + // 修改当前审批记录为审批通过 MesApprovalRecordEntity upd = new MesApprovalRecordEntity(); upd.setId(entity.getId()); upd.setStatus(ApprovalStatusConstant.PASS); this.updateById(upd); - - List flowList = approvalFlowService.list(new LambdaQueryWrapper().eq(MesApprovalFlowEntity::getBizId, bizId).eq(MesApprovalFlowEntity::getBizType, bizType)); + // 增加审批记录处理日志 + MesApprovalRecordHandleLogEntity handleLog = new MesApprovalRecordHandleLogEntity(); + handleLog.setRecordId(entity.getId()); + handleLog.setApprovalUser(approvalUser); + handleLog.setApprovalTime(approvalTime); + handleLog.setStatus(1); + approvalRecordHandleLogService.save(handleLog); + // 查询审批流程 + List flowList = approvalFlowService.list( + new LambdaQueryWrapper() + .eq(MesApprovalFlowEntity::getBizId, bizId) + .eq(MesApprovalFlowEntity::getBizType, bizType)); + // 获取状态为进行中流程 MesApprovalFlowEntity currentFlow = flowList.stream().filter(flow -> flow.getStatus().equals(2)).findFirst().orElse(null); if (currentFlow != null) { + // 修改当前流程为已完成 MesApprovalFlowEntity currentFlowEntity = new MesApprovalFlowEntity(); currentFlowEntity.setId(currentFlow.getId()); currentFlowEntity.setStatus(3); approvalFlowService.updateById(currentFlowEntity); + // 增加流程节点处理人 MesApprovalFlowUserEntity flowUser = new MesApprovalFlowUserEntity(); flowUser.setFlowId(currentFlow.getId()); flowUser.setApprovalUser(approvalUser); flowUser.setApprovalTime(approvalTime); approvalFlowUserService.save(flowUser); + // 获取下一个节点 Integer nextSort = currentFlow.getNextSort(); if (nextSort == null) { return; } MesApprovalFlowEntity nextFlow = flowList.stream().filter(flow -> flow.getSort().equals(nextSort)).findFirst().orElse(null); if (nextFlow != null) { + // 新增一条审批记录 MesApprovalRecordEntity save = new MesApprovalRecordEntity(); BeanUtils.copyProperties(entity, save); save.setStatus(ApprovalStatusConstant.WAITING); @@ -242,22 +353,35 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flowDefinitionList = approvalFlowDefinitionService.list( + new LambdaQueryWrapper() + .eq(MesApprovalFlowDefinitionEntity::getBizType, bizType) + .eq(MesApprovalFlowDefinitionEntity::getSort, nextFlow.getSort()) + .orderByAsc(MesApprovalFlowDefinitionEntity::getSort)); + if (CollectionUtils.isEmpty(flowDefinitionList) || flowDefinitionList.size() != 1) { + return; + } + MesApprovalFlowDefinitionEntity currentFlowDefinition = flowDefinitionList.get(0); + // 创建审批记录权限 + createRecordPermission(save.getId(), currentFlowDefinition, roleIds, userIds); } } } /** - * 删除待办 + * 审批驳回 * * @param bizId * @param bizType */ @Override - public void rejectApproval(Long bizId, String bizType) { + public void rejectApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime) { MesApprovalRecordEntity entity = getByBiz(bizId, bizType); if (entity == null || entity.getStatus() != ApprovalStatusConstant.WAITING) { return; @@ -266,6 +390,13 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flowList = approvalFlowService.list(new LambdaQueryWrapper().eq(MesApprovalFlowEntity::getBizId, bizId).eq(MesApprovalFlowEntity::getBizType, bizType)); List ids = flowList.stream().map(MesApprovalFlowEntity::getId).collect(Collectors.toList()); approvalFlowService.removeByIds(ids); @@ -273,6 +404,17 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flowList = approvalFlowService.list(new LambdaQueryWrapper().eq(MesApprovalFlowEntity::getBizId, bizId).eq(MesApprovalFlowEntity::getBizType, bizType).eq(MesApprovalFlowEntity::getStatus, 2)); if (CollectionUtils.isEmpty(flowList)) { return; diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemSettlementApprovalServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemSettlementApprovalServiceImpl.java index dcd25ee1b..97b6434f6 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemSettlementApprovalServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/oem/service/impl/OemSettlementApprovalServiceImpl.java @@ -221,7 +221,7 @@ public class OemSettlementApprovalServiceImpl extends BaseServiceImpl priceSheetAllList = new ArrayList<>(); +// priceSheetAllList.add(buildTestPriceVO("Y523", "化学钝化", "21E8-004-30450-H1")); +// priceSheetAllList.add(buildTestPriceVO("Y523", "化学钝化", "21E8-004-30391-H1")); +// priceSheetAllList.add(buildTestPriceVO("Y523", "化学钝化", "21E8-004-1903-H1")); +// priceSheetAllList.add(buildTestPriceVO("Y523", "化学钝化", "21E8-003-1447-H1-W")); +// priceSheetAllList.add(buildTestPriceVO("Y059", "化学钝化", "21E8-883-3317-H1")); +// priceSheetAllList.add(buildTestPriceVO("L339", "化学钝化", "21E8-004-3384-H1")); +// priceSheetAllList.add(buildTestPriceVO("Y523", "化学钝化", "21E8-083-10904-H1")); +// priceSheetAllList.add(buildTestPriceVO("L339", "化学钝化", "21E8-050-2899-H1")); +// priceSheetAllList.add(buildTestPriceVO("L339", "化学钝化", "21E8-003-3981-H1")); +// priceSheetAllList.add(buildTestPriceVO("L339", "化学钝化", "21E8-003-10084-H1-N")); +// priceSheetAllList.add(buildTestPriceVO("Y523", "化学钝化", "21E8-304-2433-H4")); +// return priceSheetAllList; + } + +// private PriceSheetVO buildTestPriceVO(String splycode, String gxInfo, String prtno) { // PriceSheetVO sheet = new PriceSheetVO(); // sheet.setStairflag("1"); -// sheet.setSplycode("Y523"); -// sheet.setGxinfo("化学钝化"); -// sheet.setPrtno("21E8-004-30450-H1"); +// sheet.setSplycode(splycode); +// sheet.setGxinfo(gxInfo); +// sheet.setPrtno(prtno); // sheet.setPrice("100"); // sheet.setStartdat("2026-01-01 00:00:00"); // sheet.setValiddat("2026-12-31 00:00:00"); -// priceSheetAllList.add(sheet); -// return priceSheetAllList; - } +// return sheet; +// } /** * 匹配报价单 @@ -2321,7 +2338,7 @@ public class OemStatementServiceImpl extends BaseServiceImpl