package cn.gistack.sm.reportFlood.service.impl;
|
|
import cn.gistack.flow.core.constant.ProcessConstant;
|
import cn.gistack.flow.core.feign.IFlowClient;
|
import cn.gistack.sm.reportFlood.entity.ReportFloodHandle;
|
import cn.gistack.sm.reportFlood.mapper.ReportFloodHandleMapper;
|
import cn.gistack.sm.reportFlood.service.IReportFloodHandleService;
|
import cn.gistack.sm.reportFlood.vo.ReportFloodHandleVO;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import lombok.AllArgsConstructor;
|
import org.springblade.core.mp.base.BaseServiceImpl;
|
import org.springblade.core.tool.api.R;
|
import org.springblade.core.tool.support.Kv;
|
import org.springblade.core.tool.utils.StringUtil;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import java.util.HashMap;
|
import java.util.Map;
|
|
import static org.springblade.core.launch.constant.FlowConstant.TASK_USR_PREFIX;
|
|
@Service
|
@AllArgsConstructor
|
public class ReportFloodHandleServiceImpl extends BaseServiceImpl<ReportFloodHandleMapper, ReportFloodHandle> implements IReportFloodHandleService {
|
|
private final IFlowClient flowClient;
|
|
@Override
|
public IPage<ReportFloodHandle> selectPages(IPage<ReportFloodHandle> page, ReportFloodHandle reportFloodHandle) {
|
return page.setRecords(baseMapper.selectPages(page,reportFloodHandle));
|
}
|
|
@Override
|
@Transactional
|
public Boolean completeProcess(ReportFloodHandleVO reportFloodHandleVO) {
|
//保存数据
|
boolean save = save(reportFloodHandleVO);
|
|
String taskId = reportFloodHandleVO.getTaskId();
|
String processInstanceId = reportFloodHandleVO.getProcessInstanceId();
|
String comment = "完成";
|
// 创建变量
|
Map<String, Object> variables = new HashMap<>();
|
if (variables == null) {
|
variables = Kv.create();
|
}
|
variables.put("taskUser", StringUtil.format("{}{}", TASK_USR_PREFIX, reportFloodHandleVO.getTaskUser()));
|
variables.put(ProcessConstant.REPORT_KEY,reportFloodHandleVO.getReport());
|
variables.put(ProcessConstant.TODEPT_KEY,reportFloodHandleVO.getToDept());
|
R r = flowClient.completeTask(taskId, processInstanceId, comment, variables);
|
return r.isSuccess() && save;
|
}
|
}
|