diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowDefinitionEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowDefinitionEntity.java new file mode 100644 index 000000000..9ee3a1e82 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowDefinitionEntity.java @@ -0,0 +1,42 @@ +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_DEFINITION") +@Schema(description = "MesApprovalFlowDefinition对象") +@EqualsAndHashCode(callSuper = true) +public class MesApprovalFlowDefinitionEntity extends BaseEntity { + + /** + * 业务类型 + */ + @Schema(description = "业务类型") + private String bizType; + + /** + * 节点 + */ + @Schema(description = "节点") + private String node; + + /** + * 序号 + */ + @Schema(description = "序号") + private Integer sort; + + /** + * 下节点序号 + */ + @Schema(description = "序号") + private Integer nextSort; + +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowEntity.java index cb2c20727..d66aa579c 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowEntity.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowEntity.java @@ -47,30 +47,16 @@ public class MesApprovalFlowEntity extends BaseEntity { @Schema(description = "序号") private Integer nextSort; - /** - * 审核人 - */ - @Schema(description = "审核人") - private Long approvalUser; - - /** - * 审核时间 - */ - @Schema(description = "审核时间") - private Date approvalTime; - public MesApprovalFlowEntity(){ } - public MesApprovalFlowEntity(Long bizId, String bizType, String node, Integer sort, Integer nextSort, Long approvalUser, Date approvalTime, Integer status){ + public MesApprovalFlowEntity(Long bizId, String bizType, String node, Integer sort, Integer nextSort, Integer status){ this.bizId = bizId; this.bizType = bizType; this.node = node; this.sort = sort; this.nextSort = nextSort; - this.approvalUser = approvalUser; - this.approvalTime = approvalTime; super.setStatus(status); } } diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowUserEntity.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowUserEntity.java new file mode 100644 index 000000000..752aa6eda --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/entity/MesApprovalFlowUserEntity.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_FLOW_USER") +@Schema(description = "MesApprovalFlowUser对象") +@EqualsAndHashCode(callSuper = true) +public class MesApprovalFlowUserEntity extends BaseEntity { + + /** + * 流程ID + */ + @Schema(description = "流程ID") + private Long flowId; + + /** + * 审核人 + */ + @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/vo/MesApprovalFlowUserVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MesApprovalFlowUserVO.java new file mode 100644 index 000000000..c2edd6944 --- /dev/null +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MesApprovalFlowUserVO.java @@ -0,0 +1,23 @@ +package org.springblade.desk.common.pojo.vo; + +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowUserEntity; + +import java.io.Serial; + +/** + * 审批流程用户记录视图类 + */ +@Data +@EqualsAndHashCode(callSuper = true) +public class MesApprovalFlowUserVO extends MesApprovalFlowUserEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 审批人名称 + */ + private String approvalUserName; +} diff --git a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MesApprovalFlowVO.java b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MesApprovalFlowVO.java index 004cbd2f4..cc5f0b65e 100644 --- a/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MesApprovalFlowVO.java +++ b/blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/common/pojo/vo/MesApprovalFlowVO.java @@ -5,6 +5,7 @@ import lombok.EqualsAndHashCode; import org.springblade.desk.common.pojo.entity.MesApprovalFlowEntity; import java.io.Serial; +import java.util.List; /** * 审批流程VO @@ -17,8 +18,8 @@ public class MesApprovalFlowVO extends MesApprovalFlowEntity { private static final long serialVersionUID = 1L; /** - * 审批人名称 + * 审批人 */ - private String approvalUserName; + private List approvalUserList; } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefinitionMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefinitionMapper.java new file mode 100644 index 000000000..4f90e5276 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefinitionMapper.java @@ -0,0 +1,10 @@ +package org.springblade.desk.common.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowDefinitionEntity; + +/** + * 审批流定义Mapper + */ +public interface MesApprovalFlowDefinitionMapper extends BaseMapper { +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefinitionMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefinitionMapper.xml new file mode 100644 index 000000000..50ed919c3 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowDefinitionMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.java index 0eb568586..bb14ad75d 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.java @@ -11,5 +11,4 @@ import java.util.List; */ public interface MesApprovalFlowMapper extends BaseMapper { - List queryVOList(MesApprovalFlowEntity mesApprovalFlow); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.xml index fbf282d74..15d8ed013 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.xml +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowMapper.xml @@ -10,8 +10,6 @@ - - @@ -21,30 +19,10 @@ - - - - - - \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowUserMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowUserMapper.java new file mode 100644 index 000000000..d7f96433d --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowUserMapper.java @@ -0,0 +1,16 @@ +package org.springblade.desk.common.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowUserEntity; +import org.springblade.desk.common.pojo.vo.MesApprovalFlowUserVO; + +import java.util.List; + +/** + * 审批流程用户Mapper + */ +public interface MesApprovalFlowUserMapper extends BaseMapper { + + List queryByFlowId(Long flowId); + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowUserMapper.xml b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowUserMapper.xml new file mode 100644 index 000000000..5bbba4d4f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/mapper/MesApprovalFlowUserMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/ApprovalRecordDetailStrategy.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/ApprovalRecordDetailStrategy.java index 1e3a1e022..8ee7f6cf2 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/ApprovalRecordDetailStrategy.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/ApprovalRecordDetailStrategy.java @@ -10,7 +10,4 @@ public interface ApprovalRecordDetailStrategy { T getDetail(Long bizId); - void createApproval(Long bizId); - - } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowDefinitionService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowDefinitionService.java new file mode 100644 index 000000000..8bf071804 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowDefinitionService.java @@ -0,0 +1,12 @@ +package org.springblade.desk.common.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowDefinitionEntity; + +/** + * 审批流定义Service + */ +public interface IMesApprovalFlowDefinitionService extends BaseService { + + +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowService.java index 0a207312c..44e8f2623 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowService.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowService.java @@ -11,10 +11,4 @@ import java.util.List; */ public interface IMesApprovalFlowService extends BaseService { - /** - * 根据条件查询VO - * @param mesApprovalFlow - * @return - */ - List queryVOList(MesApprovalFlowEntity mesApprovalFlow); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowUserService.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowUserService.java new file mode 100644 index 000000000..1a4975daa --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/IMesApprovalFlowUserService.java @@ -0,0 +1,17 @@ +package org.springblade.desk.common.service; + +import org.springblade.core.mp.base.BaseService; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowUserEntity; +import org.springblade.desk.common.pojo.vo.MesApprovalFlowUserVO; + +import java.util.List; + +/** + * 审批流程用户记录Service + */ +public interface IMesApprovalFlowUserService extends BaseService { + + List queryByFlowId(Long flowId); + + +} 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 27f3163da..10040a9ed 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 @@ -42,6 +42,7 @@ import java.util.Date; * @since 2026-02-26 */ public interface IMesApprovalRecordService extends BaseService { + /** * 自定义分页 * @@ -68,21 +69,39 @@ public interface IMesApprovalRecordService extends BaseService 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/IMesApprovalFlowUserServiceImpl.java new file mode 100644 index 000000000..274d4149c --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/IMesApprovalFlowUserServiceImpl.java @@ -0,0 +1,22 @@ +package org.springblade.desk.common.service.impl; + +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.desk.common.mapper.MesApprovalFlowUserMapper; +import org.springblade.desk.common.pojo.entity.MesApprovalFlowUserEntity; +import org.springblade.desk.common.pojo.vo.MesApprovalFlowUserVO; +import org.springblade.desk.common.service.IMesApprovalFlowUserService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * 审批流程用户记录Service实现类 + */ +@Service +public class IMesApprovalFlowUserServiceImpl extends BaseServiceImpl implements IMesApprovalFlowUserService { + + @Override + public List queryByFlowId(Long flowId) { + return baseMapper.queryByFlowId(flowId); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowServiceImpl.java index dbc142e1e..2445d50a3 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/MesApprovalFlowServiceImpl.java @@ -3,21 +3,13 @@ package org.springblade.desk.common.service.impl; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.desk.common.mapper.MesApprovalFlowMapper; import org.springblade.desk.common.pojo.entity.MesApprovalFlowEntity; -import org.springblade.desk.common.pojo.vo.MesApprovalFlowVO; import org.springblade.desk.common.service.IMesApprovalFlowService; import org.springframework.stereotype.Service; -import java.util.List; - /** * 审批流程Service实现类 */ @Service public class MesApprovalFlowServiceImpl extends BaseServiceImpl implements IMesApprovalFlowService { - - @Override - public List queryVOList(MesApprovalFlowEntity mesApprovalFlow) { - return baseMapper.queryVOList(mesApprovalFlow); - } } 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 4fda09b1d..fca4b4d96 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 @@ -37,15 +37,12 @@ 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.vo.MesApprovalFlowVO; -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 org.springblade.desk.common.service.ApprovalRecordDetailStrategy; -import org.springblade.desk.common.service.IMesApprovalFlowService; -import org.springblade.desk.common.service.IMesApprovalRecordService; +import org.springblade.desk.common.pojo.vo.*; +import org.springblade.desk.common.service.*; import org.springblade.system.cache.UserCache; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -66,11 +63,15 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl selectMyMesApprovalRecordPage(Page page, MyMesApprovalRecordVO mesApprovalRecord) { List statusList = null; - if(StringUtils.isNotBlank(mesApprovalRecord.getStatusList())){ + if (StringUtils.isNotBlank(mesApprovalRecord.getStatusList())) { statusList = Arrays.stream(mesApprovalRecord.getStatusList().split(",")) .filter(StringUtils::isNotBlank) .map(Integer::valueOf) @@ -78,8 +79,8 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl 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) + .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<>(); @@ -101,10 +102,10 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flowList = approvalFlowService.queryVOList(flowQuery); - detailVO.setFlowList(flowList); + List flowVOS = new ArrayList<>(); + List flowList = approvalFlowService.list(new LambdaQueryWrapper().eq(MesApprovalFlowEntity::getBizId, approvalRecordEntity.getBizId()).eq(MesApprovalFlowEntity::getBizType, approvalRecordEntity.getBizType())); + if (CollectionUtils.isNotEmpty(flowList)) { + for (MesApprovalFlowEntity mesApprovalFlowEntity : flowList) { + MesApprovalFlowVO vo = new MesApprovalFlowVO(); + BeanUtils.copyProperties(mesApprovalFlowEntity, vo); + List approvalUserList = approvalFlowUserService.queryByFlowId(mesApprovalFlowEntity.getId()); + vo.setApprovalUserList(approvalUserList); + flowVOS.add(vo); + } + } + detailVO.setFlowList(flowVOS); ApprovalRecordDetailStrategy strategy = mesApprovalDetailFactory.getStrategy(approvalRecordEntity.getBizType()); - Object detail = strategy.getDetail(approvalRecordEntity.getBizId()); - detailVO.setDetailData(detail); + if (strategy != null) { + Object detail = strategy.getDetail(approvalRecordEntity.getBizId()); + detailVO.setDetailData(detail); + } return detailVO; } @Override - public void updateApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime) { + public void createApproval(Long bizId, String bizType) { + // 创建待办 + MesApprovalRecordEntity approvalRecord = new MesApprovalRecordEntity(); + approvalRecord.setBizId(bizId); + approvalRecord.setBizType(bizType); + approvalRecord.setContent(bizType); + approvalRecord.setStatus(ApprovalStatusConstant.WAITING); + this.save(approvalRecord); + + List flowDefinitionList = approvalFlowDefinitionService.list(new LambdaQueryWrapper().eq(MesApprovalFlowDefinitionEntity::getBizType, bizType).orderByAsc(MesApprovalFlowDefinitionEntity::getSort)); + List flowList = new ArrayList<>(); + for (int i = 0; i < flowDefinitionList.size(); i++) { + MesApprovalFlowDefinitionEntity definition = flowDefinitionList.get(i); + int status; + if (i == 0) { + status = 3; + } else if (i == 1) { + status = 2; + } else { + status = 1; + } + MesApprovalFlowEntity flow = new MesApprovalFlowEntity(bizId, definition.getBizType(), definition.getNode(), definition.getSort(), definition.getNextSort(), status); + flowList.add(flow); + } + approvalFlowService.saveBatch(flowList); + MesApprovalFlowEntity firstFlow = flowList.stream().filter(flow -> flow.getSort() == 1).findFirst().orElse(null); + if (firstFlow != null) { + MesApprovalFlowUserEntity flowUser = new MesApprovalFlowUserEntity(); + flowUser.setFlowId(firstFlow.getId()); + flowUser.setApprovalUser(approvalRecord.getCreateUser()); + flowUser.setApprovalTime(approvalRecord.getCreateTime()); + approvalFlowUserService.save(flowUser); + } + } + + @Override + public void passApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime) { MesApprovalRecordEntity entity = getByBiz(bizId, bizType); if (entity == null || entity.getStatus() != ApprovalStatusConstant.WAITING) { return; @@ -171,23 +217,23 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flowList = approvalFlowService.queryVOList(flowQuery); - MesApprovalFlowVO currentFlow = flowList.stream().filter(flow -> flow.getStatus().equals(2)).findFirst().orElse(null); + 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.setApprovalUser(approvalUser); - currentFlowEntity.setApprovalTime(approvalTime); 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; } - MesApprovalFlowVO nextFlow = flowList.stream().filter(flow -> flow.getSort().equals(nextSort)).findFirst().orElse(null); + MesApprovalFlowEntity nextFlow = flowList.stream().filter(flow -> flow.getSort().equals(nextSort)).findFirst().orElse(null); if (nextFlow != null) { MesApprovalRecordEntity save = new MesApprovalRecordEntity(); BeanUtils.copyProperties(entity, save); @@ -211,7 +257,7 @@ public class MesApprovalRecordServiceImpl extends BaseServiceImpl flowList = approvalFlowService.queryVOList(flowQuery); - List ids = flowList.stream().map(MesApprovalFlowVO::getId).collect(Collectors.toList()); + List 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); } + @Override + public void pendingApproval(Long bizId, String bizType, Long approvalUser, Date approvalTime) { + List flowList = approvalFlowService.list(new LambdaQueryWrapper().eq(MesApprovalFlowEntity::getBizId, bizId).eq(MesApprovalFlowEntity::getBizType, bizType).eq(MesApprovalFlowEntity::getStatus, 2)); + if (CollectionUtils.isEmpty(flowList)) { + return; + } + MesApprovalFlowEntity currentFlow = flowList.get(0); + MesApprovalFlowUserEntity flowUser = new MesApprovalFlowUserEntity(); + flowUser.setFlowId(currentFlow.getId()); + flowUser.setApprovalUser(approvalUser); + flowUser.setApprovalTime(approvalTime); + approvalFlowUserService.save(flowUser); + } + private MesApprovalRecordEntity getByBiz(Long bizId, String bizType) { return this.getOne(new LambdaQueryWrapper() .eq(MesApprovalRecordEntity::getBizType, bizType) diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/OemStatementApprovalServiceImpl.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/OemStatementApprovalServiceImpl.java index d5910a02b..045109f07 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/OemStatementApprovalServiceImpl.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/common/service/impl/OemStatementApprovalServiceImpl.java @@ -1,19 +1,12 @@ package org.springblade.desk.common.service.impl; import jakarta.annotation.Resource; -import org.springblade.desk.common.constant.ApprovalStatusConstant; import org.springblade.desk.common.enums.MesApprovalRecordBizTypeEnum; -import org.springblade.desk.common.pojo.entity.MesApprovalFlowEntity; -import org.springblade.desk.common.pojo.entity.MesApprovalRecordEntity; import org.springblade.desk.common.service.ApprovalRecordDetailStrategy; -import org.springblade.desk.common.service.IMesApprovalFlowService; -import org.springblade.desk.common.service.IMesApprovalRecordService; -import org.springblade.desk.oem.pojo.entity.OemSettlementApprovalEntity; import org.springblade.desk.oem.pojo.vo.OemSettlementApprovalDetailVO; import org.springblade.desk.oem.service.IOemSettlementApprovalService; import org.springframework.stereotype.Service; -import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -24,14 +17,9 @@ import java.util.Map; @Service public class OemStatementApprovalServiceImpl implements ApprovalRecordDetailStrategy> { - @Resource - private IMesApprovalRecordService mesApprovalRecordService; - @Resource - private IMesApprovalFlowService mesApprovalFlowService; @Resource private IOemSettlementApprovalService oemSettlementApprovalService; - @Override public String getBizType() { return MesApprovalRecordBizTypeEnum.OEM_STATEMENT.getDesc(); @@ -47,24 +35,4 @@ public class OemStatementApprovalServiceImpl implements ApprovalRecordDetailStra return resultMap; } - @Override - public void createApproval(Long bizId) { - // 创建待办 - MesApprovalRecordEntity approvalRecord = new MesApprovalRecordEntity(); - approvalRecord.setBizId(bizId); - approvalRecord.setBizType(getBizType()); - approvalRecord.setContent(getBizType()); - approvalRecord.setStatus(ApprovalStatusConstant.WAITING); - mesApprovalRecordService.save(approvalRecord); - // 创建审批流程 - OemSettlementApprovalEntity oemSettlementApproval = oemSettlementApprovalService.getById(bizId); - List flowList = new ArrayList<>(); - flowList.add(new MesApprovalFlowEntity(oemSettlementApproval.getId(), getBizType(), "提交", 1, 2, oemSettlementApproval.getCreateUser(), oemSettlementApproval.getCreateTime(), 3)); - flowList.add(new MesApprovalFlowEntity(oemSettlementApproval.getId(), getBizType(), "一级校对", 2, 3, null, null, 2)); - flowList.add(new MesApprovalFlowEntity(oemSettlementApproval.getId(), getBizType(), "二级校对", 3, 4, null, null, 1)); - flowList.add(new MesApprovalFlowEntity(oemSettlementApproval.getId(), getBizType(), "审核", 4, null, null, null, 1)); - mesApprovalFlowService.saveBatch(flowList); - } - - } 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 d252d807a..dcd25ee1b 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 @@ -245,8 +245,13 @@ public class OemSettlementApprovalServiceImpl extends BaseServiceImpl