yangys
23 小时以前 4ab2cb495ccece311bbd8d0ecb992c7de0bc8500
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/ApproveRecordService.java
@@ -4,6 +4,7 @@
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;
@@ -28,11 +29,15 @@
@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);
@@ -40,11 +45,12 @@
         for (ProcessProgRef refObj : refList) {
            ApproveRecord rec = new ApproveRecord();
            rec.setTaskName(task.getName());
            rec.setComment(comment);
            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());
@@ -52,12 +58,16 @@
         }
         //检查ncprogram为null的数据
         updateApproveRecords(processInstanceId);
         updateApproveRecords(processInstanceId,refList);
      }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.setNcProgramId(null);//空的程序id
@@ -68,10 +78,12 @@
      }
   }
   void updateApproveRecords(String processInstanceId) {
      LambdaQueryWrapper<ProcessProgRef> queryWrapper = new LambdaQueryWrapper<>();
      queryWrapper.eq(ProcessProgRef::getProcessInstanceId, processInstanceId).isNull(ProcessProgRef::getNcProgramId);
      List<ProcessProgRef> refList =  processProgRefService.list(queryWrapper);
   /**
    * 更新以前无文件时候的数据。
    * @param processInstanceId
    */
   void updateApproveRecords(String processInstanceId,List<ProcessProgRef> refList) {
      if(refList.isEmpty()) {
         return;
      }
@@ -89,10 +101,10 @@
            BeanUtils.copyProperties(record, record2);
            record2.setNcProgramId(refObj.getNcProgramId());
            if(j>0){
            if(j>0){//后续数据需要新增数据
               record2.setId(null);
               save(record2);
            }else{
            }else{//第一条是更新原纪录
               updateById(record2);
            }
         }