| | |
| | | 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; |
| | |
| | | @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); |
| | |
| | | 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()); |
| | | |
| | |
| | | } |
| | | |
| | | //检查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 |
| | |
| | | } |
| | | } |
| | | |
| | | 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; |
| | | } |
| | |
| | | BeanUtils.copyProperties(record, record2); |
| | | record2.setNcProgramId(refObj.getNcProgramId()); |
| | | |
| | | if(j>0){ |
| | | if(j>0){//后续数据需要新增数据 |
| | | record2.setId(null); |
| | | save(record2); |
| | | }else{ |
| | | }else{//第一条是更新原纪录 |
| | | updateById(record2); |
| | | } |
| | | } |