From ffd5abc74eea1f6ee6433ac11e401aaa57bcc4ab Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期二, 08 七月 2025 22:37:50 +0800 Subject: [PATCH] 接口文档描述修改 --- blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java | 88 +++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 87 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..d644a61 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,20 @@ package org.springblade.mdm.flow.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +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 +28,86 @@ @Service @AllArgsConstructor public class ApproveRecordService extends BizServiceImpl<ApproveRecordMapper, ApproveRecord> { - + private final ProcessProgRefService processProgRefService; + private final FlowCommonService flowCommonService; public List<ApproveRecordVO> listByNcProgramId(Long ncProgramId) { return this.getBaseMapper().listByNcProgramId(ncProgramId); } + + public void saveApproveRecords(Task task, String processInstanceId, String operateResult, String comment) { + + String processDefinitionKey = flowCommonService.getDefinitionKey(processInstanceId); + + 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==null? StringUtils.EMPTY:comment); + rec.setNcProgramId(refObj.getNcProgramId()); + rec.setOperateResult(operateResult);//瀹℃壒缁撴灉 + rec.setOperateTime(DateUtil.now()); + rec.setProcessInstanceId(processInstanceId); + rec.setProcessDefinitionKey(processDefinitionKey); + rec.setUserId(AuthUtil.getUserId()); + rec.setUserNickname(AuthUtil.getNickName()); + + save(rec); + } + + //妫�鏌cprogram涓簄ull鐨勬暟鎹� + updateApproveRecords(processInstanceId,refList); + }else{ + //濡傛灉杩樻病鏈夊叧鑱旂殑绋嬪簭鏁版嵁锛屽垯鎻掑叆涓�涓猵rogramId涓簄ull鐨� + ApproveRecord rec = new ApproveRecord(); + rec.setTaskName(task.getName()); + rec.setComment(comment==null? StringUtils.EMPTY:comment); + rec.setProcessInstanceId(processInstanceId); + rec.setProcessDefinitionKey(processDefinitionKey); + rec.setOperateResult(operateResult); + rec.setOperateTime(DateUtil.now()); + rec.setNcProgramId(null);//绌虹殑绋嬪簭id + rec.setUserId(AuthUtil.getUserId()); + rec.setUserNickname(AuthUtil.getNickName()); + + save(rec); + } + } + + /** + * 鏇存柊浠ュ墠鏃犳枃浠舵椂鍊欑殑鏁版嵁銆� + * @param processInstanceId + */ + void updateApproveRecords(String processInstanceId,List<ProcessProgRef> refList) { + + 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