From f379dade90ec59e08c037cba4917308e3dfdb928 Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期二, 08 七月 2025 17:02:06 +0800 Subject: [PATCH] 调整审批记录的保存方式 --- blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java | 78 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 77 insertions(+), 1 deletions(-) diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java index ae3d979..5160903 100644 --- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java +++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java @@ -1,12 +1,19 @@ package org.springblade.mdm.flow.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.flowable.task.api.Task; import org.springblade.core.mp.base.BizServiceImpl; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.utils.DateUtil; import org.springblade.mdm.flow.entity.ApproveRecord; import org.springblade.mdm.flow.mapper.ApproveRecordMapper; import org.springblade.mdm.flow.vo.ApproveRecordVO; +import org.springblade.mdm.program.entity.ProcessProgRef; +import org.springblade.mdm.program.service.ProcessProgRefService; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.List; @@ -20,8 +27,77 @@ @Service @AllArgsConstructor public class ApproveRecordService extends BizServiceImpl<ApproveRecordMapper, ApproveRecord> { - + private final ProcessProgRefService processProgRefService; public List<ApproveRecordVO> listByNcProgramId(Long ncProgramId) { return this.getBaseMapper().listByNcProgramId(ncProgramId); } + + public void saveApproveRecords(Task task, String processInstanceId, String operateResult, String comment) { + LambdaQueryWrapper<ProcessProgRef> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessProgRef::getProcessInstanceId, processInstanceId); + List<ProcessProgRef> refList = processProgRefService.list(queryWrapper); + if(!refList.isEmpty()) { + for (ProcessProgRef refObj : refList) { + ApproveRecord rec = new ApproveRecord(); + rec.setTaskName(task.getName()); + rec.setComment(comment); + rec.setNcProgramId(refObj.getNcProgramId()); + rec.setOperateResult(operateResult);//瀹℃壒缁撴灉 + rec.setOperateTime(DateUtil.now()); + rec.setProcessInstanceId(processInstanceId); + rec.setUserId(AuthUtil.getUserId()); + rec.setUserNickname(AuthUtil.getNickName()); + + save(rec); + } + + //妫�鏌cprogram涓簄ull鐨勬暟鎹� + updateApproveRecords(processInstanceId); + }else{ + //濡傛灉杩樻病鏈夊叧鑱旂殑绋嬪簭鏁版嵁锛屽垯鎻掑叆涓�涓猵rogramId涓簄ull鐨� + ApproveRecord rec = new ApproveRecord(); + rec.setTaskName(task.getName()); + rec.setProcessInstanceId(processInstanceId); + rec.setOperateResult(operateResult); + rec.setOperateTime(DateUtil.now()); + rec.setNcProgramId(null);//绌虹殑绋嬪簭id + rec.setUserId(AuthUtil.getUserId()); + rec.setUserNickname(AuthUtil.getNickName()); + + save(rec); + } + } + + void updateApproveRecords(String processInstanceId) { + LambdaQueryWrapper<ProcessProgRef> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProcessProgRef::getProcessInstanceId, processInstanceId).isNull(ProcessProgRef::getNcProgramId); + List<ProcessProgRef> refList = processProgRefService.list(queryWrapper); + if(refList.isEmpty()) { + return; + } + List<ApproveRecord> records = this.lambdaQuery().isNull(ApproveRecord::getNcProgramId).eq(ApproveRecord::getProcessInstanceId, processInstanceId).list(); + if(records.isEmpty()) { + return; + } + + for(ApproveRecord record:records) { + + for(int j=0;j< refList.size();j++) { + ProcessProgRef refObj = refList.get(j); + + ApproveRecord record2 = new ApproveRecord(); + BeanUtils.copyProperties(record, record2); + record2.setNcProgramId(refObj.getNcProgramId()); + + if(j>0){ + record2.setId(null); + save(record2); + }else{ + updateById(record2); + } + } + + } + + } } -- Gitblit v1.9.3