技术监督退运流程
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user