技术监督退运流程

This commit is contained in:
hzj
2024-04-16 15:10:54 +08:00
parent dfd38dbb24
commit ba2df7c268
13 changed files with 644 additions and 27 deletions

View File

@@ -24,8 +24,10 @@ public enum ProcessResponseEnum {
TERMINAL_ID_REPEAT("A00351","终端编号已存在"),
NO_PERMISSION("A00357","当前登录人无权限此项操作"),
SUPV_PLAN_REPEAT("A00568","监督计划名称已存在")
;
SUPV_PLAN_REPEAT("A00568","监督计划名称已存在"),
NO_UPDATE("A00568","该申请单非新建,驳回状态不准许更新"),
;
private final String code;

View File

@@ -14,8 +14,11 @@ public enum ThsFlowTypeEnum {
rGeneralSurvey("电站普测计划",1),
rLoadTypeUser("干扰源用户新建计划",2)
rLoadTypeUser("干扰源用户新建计划",2),
powerQualityManagement("电能质量管理",3),
monitoringReturned("监测设备退运",4),
monitoringSwitch("监测设备接入",5),
monitoringAccept("监测设备验收",6),

View File

@@ -0,0 +1,110 @@
package com.njcn.process.pojo.param;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
/**
*
* Description:
* Date: 2024/4/15 16:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class RFlowProcessParm {
/**
* 申请流程类型
*/
@ApiModelProperty(value = "申请流程类型")
private Integer applyType;
@ApiModelProperty(value = "申请单类型")
private Integer type;
/**
* 单位ID
*/
@ApiModelProperty(value = "单位ID")
private String orgNo;
/**
* 申请单详情
*/
@ApiModelProperty(value = "申请单详情")
private String applicationFormText;
/**
* 文件路径
*/
@ApiModelProperty(value = "文件路径")
private String filePath;
/**
* 上传时间
*/
@ApiModelProperty(value = "上传时间")
private LocalDate uploadTime;
/**
* 审核人
*/
@ApiModelProperty(value = "审核人")
private String checker;
/**
* 审核人名称
*/
@ApiModelProperty(value = "审核人名称")
private String checkerName;
/**
* 流程状态1-新建2-待审核3-驳回4-归档)
*/
@ApiModelProperty(value = "流程状态")
private String processStatus;
@ApiModelProperty(value = "操作1-保存2-直接提交审核")
private String operate ;
@Data
public static class RFlowProcessUpdate extends RFlowProcessParm {
@ApiModelProperty("id")
private String Id;
}
@Data
public static class RFlowProcessCheck extends RFlowProcessParm {
@ApiModelProperty("id")
private String Id;
/**
* 审核备注
*/
@ApiModelProperty(value = "审核备注")
private String description;
/**
* 状态0-不通过1-通过)
*/
@ApiModelProperty(value = "状态")
private Integer checkStatus;
}
}

View File

@@ -0,0 +1,102 @@
package com.njcn.process.pojo.po;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.bo.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDate;
/**
*
* Description:
* Date: 2024/4/15 16:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "r_flow_process")
public class RFlowProcessPO extends BaseEntity {
/**
* 申请流程id
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
private String id;
/**
* 申请表单类型
*/
@TableField(value = "`type`")
private String type;
/**
* 单位ID
*/
@TableField(value = "org_no")
private String orgNo;
/**
* 申请单详情
*/
@TableField(value = "application_form_text")
private String applicationFormText;
/**
* 文件路径
*/
@TableField(value = "file_path")
private String filePath;
/**
* 上传时间
*/
@TableField(value = "upload_time")
private LocalDate uploadTime;
/**
* 审核名称
*/
@TableField(value = "checker_name")
private String checkerName;
/**
* 审核人
*/
@TableField(value = "checker")
private String checker;
/**
* 审核备注
*/
@TableField(value = "description")
private String description;
/**
* 状态0-不通过1-通过)
*/
@TableField(value = "check_status")
private Integer checkStatus;
/**
* 流程状态1-新建2-待审核3-驳回4-已审核5-已归档)
*/
@TableField(value = "process_status")
private Integer processStatus;
/**
* 申请流程类型
*/
@TableField(value = "apply_type")
private Integer applyType;
}

View File

@@ -0,0 +1,100 @@
package com.njcn.process.controller;
import com.njcn.common.pojo.annotation.OperateInfo;
import com.njcn.common.pojo.constant.OperateType;
import com.njcn.common.pojo.enums.common.LogEnum;
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.HttpResultUtil;
import com.njcn.minioss.bo.MinIoUploadResDTO;
import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.process.pojo.param.RFlowProcessParm;
import com.njcn.process.service.RFlowProcessPOService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
/**
* Description:
* 接口文档访问地址http://serverIP:port/swagger-ui.html
* Date: 2022/11/11 14:50【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Slf4j
@RestController
@RequestMapping("/rFlowProcess")
@Api(tags = "申请单")
@AllArgsConstructor
public class RFlowProcessController extends BaseController {
private final RFlowProcessPOService rFlowProcessPOService;
private final FileStorageUtil fileStorageUtil;
/**
* @Description: 新增申请单
* @Param: [rGeneralSurveyPlanAddParm]
* @return: com.njcn.common.pojo.response.HttpResult<java.lang.Boolean>
* @Author: clam
* @Date: 2022/11/22
*/
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/add")
@ApiOperation("新增申请单")
@ApiImplicitParam(name = "rFlowProcessParm", value = "新增普测计划参数", required = true)
public HttpResult<Boolean> add(@RequestBody @Validated RFlowProcessParm rFlowProcessParm) {
String methodDescribe = getMethodDescribe("add");
Boolean addFlag = rFlowProcessPOService.add(rFlowProcessParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, addFlag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/update")
@ApiOperation("更新申请单")
@ApiImplicitParam(name = "rFlowProcessParm", value = "新增普测计划参数", required = true)
public HttpResult<Boolean> update(@RequestBody @Validated RFlowProcessParm.RFlowProcessUpdate rFlowProcessParm) {
String methodDescribe = getMethodDescribe("update");
Boolean addFlag = rFlowProcessPOService.update(rFlowProcessParm);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, addFlag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/check")
@ApiOperation("审核申请单")
@ApiImplicitParam(name = "rFlowProcessCheck", value = "新增普测计划参数", required = true)
public HttpResult<Boolean> check(@RequestBody @Validated RFlowProcessParm.RFlowProcessCheck rFlowProcessCheck) {
String methodDescribe = getMethodDescribe("check");
Boolean addFlag = rFlowProcessPOService.check(rFlowProcessCheck);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, addFlag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/file")
@ApiOperation("归档")
public HttpResult<Boolean> file(@RequestParam String id) {
String methodDescribe = getMethodDescribe("file");
Boolean addFlag = rFlowProcessPOService.file(id);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, addFlag, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.UPLOAD)
@PostMapping("/uploadFile")
@ApiOperation("上传文件")
@ApiImplicitParam(name = "file", value = "文件", required = true)
public HttpResult<MinIoUploadResDTO> uploadFile(@RequestParam("file") MultipartFile file){
String methodDescribe = getMethodDescribe("uploadFile");
String filePath = fileStorageUtil.getFileUrl( fileStorageUtil.uploadMultipart(file, OssPath.ELECTRICITY_QUALITY));
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS,new MinIoUploadResDTO(file.getOriginalFilename(),filePath), methodDescribe);
}
}

View File

@@ -7,24 +7,15 @@ import com.njcn.common.utils.HttpResultUtil;
import com.njcn.process.pojo.dto.flowable.FlowProcDefDto;
import com.njcn.process.pojo.dto.flowable.FlowSaveXmlVo;
import com.njcn.process.service.flowable.IFlowDefinitionService;
import com.njcn.process.service.flowable.IFlowTaskService;
import com.njcn.web.controller.BaseController;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.IOUtils;
import org.flowable.common.engine.api.FlowableObjectNotFoundException;
import org.flowable.engine.HistoryService;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.repository.Deployment;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.io.ByteArrayInputStream;
@@ -35,8 +26,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import static cn.hutool.core.util.CharsetUtil.UTF_8;
/**
* pqs
* 工作流

View File

@@ -15,15 +15,8 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
/**
@@ -53,6 +46,13 @@ public class FlowTaskController extends BaseController {
return null;
}
@ApiOperation(value = "工作流_流转")
@PostMapping(value = "/toNextTaskUser")
public HttpResult toNextTaskUser(@RequestBody FlowTaskVo flowTaskVo) {
flowTaskService.toNextTaskUser(flowTaskVo);
return null;
}
/**

View File

@@ -0,0 +1,14 @@
package com.njcn.process.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.njcn.process.pojo.po.RFlowProcessPO;
/**
* Description:
* Date: 2024/4/16 8:49【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RFlowProcessPOMapper extends BaseMapper<RFlowProcessPO> {
}

View File

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.njcn.process.mapper.RFlowProcessPOMapper">
<resultMap id="BaseResultMap" type="com.njcn.process.pojo.po.RFlowProcessPO">
<!--@mbg.generated-->
<!--@Table r_flow_process-->
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="type" jdbcType="VARCHAR" property="type" />
<result column="org_no" jdbcType="VARCHAR" property="orgNo" />
<result column="application_form_text" jdbcType="VARCHAR" property="applicationFormText" />
<result column="file_path" jdbcType="VARCHAR" property="filePath" />
<result column="upload_time" jdbcType="DATE" property="uploadTime" />
<result column="checker_name" jdbcType="VARCHAR" property="checkerName" />
<result column="checker" jdbcType="VARCHAR" property="checker" />
<result column="description" jdbcType="VARCHAR" property="description" />
<result column="check_status" jdbcType="VARCHAR" property="checkStatus" />
<result column="process_status" jdbcType="VARCHAR" property="processStatus" />
<result column="apply_type" jdbcType="VARCHAR" property="applyType" />
<result column="Create_By" jdbcType="CHAR" property="createBy" />
<result column="Create_Time" jdbcType="TIMESTAMP" property="createTime" />
<result column="Update_By" jdbcType="CHAR" property="updateBy" />
<result column="Update_Time" jdbcType="TIMESTAMP" property="updateTime" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, `type`, org_no, application_form_text, file_path, upload_time, checker_name,
checker, description, check_status, process_status, apply_type, Create_By, Create_Time,
Update_By, Update_Time
</sql>
</mapper>

View File

@@ -0,0 +1,24 @@
package com.njcn.process.service;
import com.njcn.process.pojo.param.RFlowProcessParm;
import com.njcn.process.pojo.po.RFlowProcessPO;
import com.baomidou.mybatisplus.extension.service.IService;
/**
*
* Description:
* Date: 2024/4/15 16:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
public interface RFlowProcessPOService extends IService<RFlowProcessPO>{
Boolean add(RFlowProcessParm rFlowProcessParm);
Boolean update(RFlowProcessParm.RFlowProcessUpdate rFlowProcessParm);
Boolean check(RFlowProcessParm.RFlowProcessCheck rFlowProcessCheck);
Boolean file(String id);
}

View File

@@ -18,11 +18,16 @@ import com.njcn.device.biz.pojo.dto.LineALLInfoDTO;
import com.njcn.oss.constant.OssPath;
import com.njcn.oss.utils.FileStorageUtil;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.enums.ThsFlowTypeEnum;
import com.njcn.process.mapper.*;
import com.njcn.process.pojo.param.*;
import com.njcn.process.pojo.po.*;
import com.njcn.process.pojo.vo.*;
import com.njcn.process.pojo.vo.flowable.FlowTaskVo;
import com.njcn.process.service.IssuesService;
import com.njcn.process.service.flowable.IFlowDefinitionService;
import com.njcn.process.service.flowable.IFlowInstanceService;
import com.njcn.process.service.flowable.IFlowTaskService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
import com.njcn.system.enums.DicDataTypeEnum;
@@ -32,16 +37,14 @@ import com.njcn.user.pojo.vo.PvTerminalTreeVO;
import com.njcn.web.utils.RequestUtil;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.flowable.task.api.Task;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@@ -76,7 +79,16 @@ public class IssuesServiceImpl implements IssuesService {
private final FileStorageUtil fileStorageUtil;
private final CommLineClient commLineClient;
private final FlowableAssMapper flowableAssMapper;
private final IFlowDefinitionService iFlowDefinitionService;
private final IFlowInstanceService iFlowInstanceService;
private final IFlowTaskService iFlowTaskService;
private final FlowFormAssMapper flowFormAssMapper;
/**
* 新增电能质量问题流程表信息
*/
@@ -136,6 +148,9 @@ public class IssuesServiceImpl implements IssuesService {
excessive.setPowerQualityProblemNo(powerQualityProblemNo);
excessive.setDataDate(localDateTime);
excessiveMapper.insert(excessive);
//生成电能质量工作流
createflow(powerQualityProblemNo,1);
}
/**
@@ -154,6 +169,9 @@ public class IssuesServiceImpl implements IssuesService {
generalSurvey.setPowerQualityProblemNo(powerQualityProblemNo);
generalSurvey.setDataDate(localDateTime);
generalSurveyMapper.insert(generalSurvey);
//生成电能质量工作流
createflow(powerQualityProblemNo,4);
}
/**
@@ -172,6 +190,8 @@ public class IssuesServiceImpl implements IssuesService {
complaint.setPowerQualityProblemNo(powerQualityProblemNo);
complaint.setDataDate(localDateTime);
complaintMapper.insert(complaint);
//生成电能质量工作流
createflow(powerQualityProblemNo,3);
}
/**
@@ -190,6 +210,35 @@ public class IssuesServiceImpl implements IssuesService {
abnormal.setPowerQualityProblemNo(powerQualityProblemNo);
abnormal.setDataDate(localDateTime);
abnormalMapper.insert(abnormal);
//生成电能质量工作流
createflow(powerQualityProblemNo,2);
}
public Boolean createflow(String thsIndex ,Integer type) {
String userId = RequestUtil.getUserIndex();
//绑定工作流
Map<String, Object> map = new HashMap<>();
//开始流程
FlowFormAss flowFormAss = flowFormAssMapper.selectOne(new LambdaQueryWrapper<FlowFormAss>().eq(FlowFormAss::getFormId, 3));
if (Objects.isNull(flowFormAss)) {
throw new BusinessException("当前功能未绑定流程,请先绑定流程");
}
map.put("type",type);
String processId = iFlowDefinitionService.startProcessInstanceById(flowFormAss.getDefinitionId(), thsIndex, ThsFlowTypeEnum.powerQualityManagement.getCode(), map);
Task task = iFlowTaskService.getTask(processId);
FlowTaskVo flowTaskVo = new FlowTaskVo();
flowTaskVo.setTaskId(task.getId());
flowTaskVo.setInstanceId(processId);
flowTaskVo.setComment(RequestUtil.getUserNickname() + "发起电能质量申请");
map.put("auditFlag",1);
flowTaskVo.setVariables(map);
iFlowTaskService.complete(flowTaskVo);
return true;
}
/**

View File

@@ -0,0 +1,185 @@
package com.njcn.process.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.process.enums.ProcessResponseEnum;
import com.njcn.process.enums.ThsFlowTypeEnum;
import com.njcn.process.mapper.FlowFormAssMapper;
import com.njcn.process.mapper.FlowableAssMapper;
import com.njcn.process.mapper.RFlowProcessPOMapper;
import com.njcn.process.pojo.param.RFlowProcessParm;
import com.njcn.process.pojo.po.FlowFormAss;
import com.njcn.process.pojo.po.FlowableAss;
import com.njcn.process.pojo.po.RFlowProcessPO;
import com.njcn.process.pojo.vo.flowable.FlowTaskVo;
import com.njcn.process.service.RFlowProcessPOService;
import com.njcn.process.service.flowable.IFlowDefinitionService;
import com.njcn.process.service.flowable.IFlowInstanceService;
import com.njcn.process.service.flowable.IFlowTaskService;
import com.njcn.process.utils.FlowableUtils;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.web.utils.RequestUtil;
import lombok.RequiredArgsConstructor;
import org.flowable.task.api.Task;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
*
* Description:
* Date: 2024/4/15 16:24【需求编号】
*
* @author clam
* @version V1.0.0
*/
@Service
@RequiredArgsConstructor
public class RFlowProcessPOServiceImpl extends ServiceImpl<RFlowProcessPOMapper, RFlowProcessPO> implements RFlowProcessPOService{
private final FlowableAssMapper flowableAssMapper;
private final FlowFormAssMapper flowFormAssMapper;
private final DicDataFeignClient dicDataFeignClient;
private final IFlowDefinitionService iFlowDefinitionService;
private final IFlowInstanceService iFlowInstanceService;
private final IFlowTaskService iFlowTaskService;
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean add(RFlowProcessParm rFlowProcessParm) {
RFlowProcessPO rFlowProcessPO = new RFlowProcessPO();
BeanUtils.copyProperties(rFlowProcessParm,rFlowProcessPO);
rFlowProcessPO.setProcessStatus(1);
this.save(rFlowProcessPO);
String businessId = rFlowProcessPO.getId();
//生成新建工作流
createflow(businessId, rFlowProcessParm.getApplyType(), rFlowProcessParm.getType());
//生成提交审核工作流
if(Objects.equals(rFlowProcessParm.getOperate(),"2")){
createCheckflow(businessId);
}
//修改状态
rFlowProcessPO.setProcessStatus(2);
this.updateById(rFlowProcessPO);
return true;
}
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean update(RFlowProcessParm.RFlowProcessUpdate rFlowProcessParm) {
RFlowProcessPO byId = this.getById(rFlowProcessParm.getId());
if(byId.getProcessStatus()==1||byId.getProcessStatus()==3){
BeanUtils.copyProperties(rFlowProcessParm,byId);
this.updateById(byId);
}else {
throw new BusinessException(ProcessResponseEnum.NO_UPDATE);
}
return null;
}
//审核
@Override
@Transactional(rollbackFor = {Exception.class})
public Boolean check(RFlowProcessParm.RFlowProcessCheck rFlowProcessCheck) {
boolean result = true;
UpdateWrapper<RFlowProcessPO> updateWrapper = new UpdateWrapper();
updateWrapper.eq("id", rFlowProcessCheck.getId());
updateWrapper.set("description", rFlowProcessCheck.getDescription());
updateWrapper.set("check_status", rFlowProcessCheck.getCheckStatus());
updateWrapper.set("process_status",rFlowProcessCheck.getCheckStatus()==1?3:4);
result = this.update(updateWrapper);
//流程审核
FlowableAss flowableAss = flowableAssMapper.selectOne(new LambdaQueryWrapper<FlowableAss>().eq(FlowableAss::getType, ThsFlowTypeEnum.monitoringReturned.getCode()).eq(FlowableAss::getThsIndex,rFlowProcessCheck.getId()));
if(Objects.isNull(flowableAss)){
throw new BusinessException("当前功能未绑定流程,请联系管理员处理");
}
FlowableUtils.dealAuditResult(flowableAss,rFlowProcessCheck.getCheckStatus()+"",iFlowTaskService,rFlowProcessCheck.getDescription());
return result;
}
@Override
public Boolean file(String id) {
boolean result = true;
UpdateWrapper<RFlowProcessPO> updateWrapper = new UpdateWrapper();
updateWrapper.eq("id", id);
updateWrapper.set("process_status",5);
result = this.update(updateWrapper);
//流程审核
FlowableAss flowableAss = flowableAssMapper.selectOne(new LambdaQueryWrapper<FlowableAss>().eq(FlowableAss::getType, ThsFlowTypeEnum.monitoringReturned.getCode()).eq(FlowableAss::getThsIndex,id));
if(Objects.isNull(flowableAss)){
throw new BusinessException("当前功能未绑定流程,请联系管理员处理");
}
Task task = iFlowTaskService.getTask(flowableAss.getExecIndex());
FlowTaskVo flowTaskVo = new FlowTaskVo();
flowTaskVo.setTaskId(task.getId());
flowTaskVo.setComment(RequestUtil.getUserNickname() + "进行归档" );
flowTaskVo.setInstanceId(flowableAss.getExecIndex());
iFlowTaskService.complete(flowTaskVo);
return result;
}
//新建流程
public Boolean createflow(String businessId ,Integer applyType,Integer type ) {
String userId = RequestUtil.getUserIndex();
//绑定工作流
Map<String, Object> map = new HashMap<>();
//开始流程
FlowFormAss flowFormAss = flowFormAssMapper.selectOne(new LambdaQueryWrapper<FlowFormAss>().eq(FlowFormAss::getFormId, applyType));
if (Objects.isNull(flowFormAss)) {
throw new BusinessException("当前功能未绑定流程,请先绑定流程");
}
//如何applyType==3 电能质量管理下有3个子流程
map.put("type",type);
String processId = iFlowDefinitionService.startProcessInstanceById(flowFormAss.getDefinitionId(), businessId, ThsFlowTypeEnum.monitoringReturned.getCode(), map);
Task task = iFlowTaskService.getTask(processId);
FlowTaskVo flowTaskVo = new FlowTaskVo();
flowTaskVo.setTaskId(task.getId());
flowTaskVo.setInstanceId(processId);
flowTaskVo.setComment(RequestUtil.getUserNickname() + "发起电能质量申请");
flowTaskVo.setVariables(map);
iFlowTaskService.complete(flowTaskVo);
return true;
}
//提交审核工作流
public Boolean createCheckflow(String businessId ) {
//流程审核
FlowableAss flowableAss = flowableAssMapper.selectOne(new LambdaQueryWrapper<FlowableAss>().eq(FlowableAss::getType, ThsFlowTypeEnum.monitoringReturned.getCode()).eq(FlowableAss::getThsIndex,businessId));
if(Objects.isNull(flowableAss)){
throw new BusinessException("当前功能未绑定流程,请联系管理员处理");
}
RFlowProcessPO byId = this.getById(businessId);
Task taskNext = iFlowTaskService.getTask(flowableAss.getExecIndex());
FlowTaskVo flowTaskVoNext = new FlowTaskVo();
flowTaskVoNext.setTaskId(taskNext.getId());
flowTaskVoNext.setAssignee(byId.getChecker());
iFlowTaskService.toNextTaskUser(flowTaskVoNext);
return true;
}
}