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; /** * 审批记录,用于查询执行轨迹 * * @author yangys */ @Slf4j @Service @AllArgsConstructor public class ApproveRecordService extends BizServiceImpl { private final ProcessProgRefService processProgRefService; private final FlowCommonService flowCommonService; public List listByNcProgramId(Long ncProgramId) { return this.getBaseMapper().listByNcProgramId(ncProgramId); } public void saveApproveRecords(Task task, String processInstanceId, String operateResult, String comment) { String processDefinitionKey = flowCommonService.getDefinitionKey(processInstanceId); 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); } /* public void saveApproveRecordsOld(Task task, String processInstanceId, String operateResult, String comment) { String processDefinitionKey = flowCommonService.getDefinitionKey(processInstanceId); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(ProcessProgRef::getProcessInstanceId, processInstanceId); List 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.setOperateResult(operateResult);//审批结果 rec.setOperateTime(DateUtil.now()); rec.setProcessInstanceId(processInstanceId); rec.setProcessDefinitionKey(processDefinitionKey); rec.setUserId(AuthUtil.getUserId()); rec.setUserNickname(AuthUtil.getNickName()); save(rec); } }else{ //如果还没有关联的程序数据,则插入一个programId为null的 ApproveRecord rec = new ApproveRecord(); rec.setTaskName(task.getName()); rec.setTaskDefinitionId(task.getTaskDefinitionId()); rec.setComment(comment==null? StringUtils.EMPTY:comment); rec.setProcessInstanceId(processInstanceId); rec.setProcessDefinitionKey(processDefinitionKey); rec.setOperateResult(operateResult); rec.setOperateTime(DateUtil.now()); rec.setUserId(AuthUtil.getUserId()); rec.setUserNickname(AuthUtil.getNickName()); save(rec); } } */ }