[新增] 上传报告流程开发

This commit is contained in:
bupengxiang
2023-05-09 09:08:46 +08:00
parent 57909fe2e2
commit d570492906
42 changed files with 237 additions and 161 deletions
@@ -13,9 +13,7 @@ import com.adc.da.wkflow.util.ImpulseSenderUtils;
import com.adc.da.wkflow.util.activiti.ActivitiTools;
import com.adc.da.wkflow.util.wrapper.WrapMapper;
import com.adc.da.wkflow.util.wrapper.Wrapper;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -155,6 +153,7 @@ public class ActivitDefineController {
String id = jsonObject.getString("id");
String userId = jsonObject.getString("loginUserId");
String bpnId = jsonObject.getString("bpnId");
String reportId = jsonObject.getString("reportId");
Object dataMsg = jsonObject.get("dataMsg");
Object approveData =jsonObject.get("approveData");
@@ -187,9 +186,9 @@ public class ActivitDefineController {
busProcessName.setCreatUserName(byId.getUsname());
busProcessName.setPrcNum((String) prcNameAndPrcNum.get("prcNum"));
busProcessName.setPrcType(prcType);
String data = JSON.toJSONString(dataMsg, SerializerFeature.DisableCircularReferenceDetect);
String dateId = activitDefineService.saveOrUpdateDate(prcType,data,task.getId(),pi.getId());
busProcessName.setDataId(dateId);
// String data = JSON.toJSONString(dataMsg, SerializerFeature.DisableCircularReferenceDetect);
// String dateId = activitDefineService.saveOrUpdateDate(prcType,data,task.getId(),pi.getId(),reportId);
// busProcessName.setDataId(dateId);
// busProcessName.setPrcName((String) prcNameAndPrcNum.get("prcName"));
busProcessName.setPrcName(jsonObject.getString("prcName"));
busProcessName.setSubmitStatus(SubmitStatusEnum.SUBMIT.getValue());
@@ -210,9 +209,9 @@ public class ActivitDefineController {
one.setPrcId(pi.getId());
one.setSubmitStatus(SubmitStatusEnum.SUBMIT.getValue());
one.setCreatTime(sdf.format(new Date()));
String data = JSON.toJSONString(dataMsg, SerializerFeature.DisableCircularReferenceDetect);
String dateId = activitDefineService.saveOrUpdateDate(prcType,data,task.getId(),pi.getId());
one.setDataId(dateId);
// String data = JSON.toJSONString(dataMsg, SerializerFeature.DisableCircularReferenceDetect);
// String dateId = activitDefineService.saveOrUpdateDate(prcType,data,task.getId(),pi.getId(),reportId);
// one.setDataId(dateId);
ibusprocessnameService.save(one);
}
@@ -1,10 +1,13 @@
package com.adc.da.wkflow.business_activiti.service;
import com.adc.da.report.dao.mysql.PowerApplyActDao;
import com.adc.da.report.dao.mysql.ReportLabelDao;
import com.adc.da.report.dao.mysql.TtReportManageActDao;
import com.adc.da.report.eo.PowerApplyAct;
import com.adc.da.report.eo.ReportLabelEntity;
import com.adc.da.report.eo.TtReportManageAct;
import com.adc.da.report.service.IPowerApplyActService;
import com.adc.da.report.service.IReportLabelService;
import com.adc.da.report.service.ITtReportManageActService;
import com.adc.da.util.utils.StringUtils;
import com.alibaba.fastjson.JSONObject;
@@ -13,7 +16,6 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
@@ -35,47 +37,44 @@ public class ActivitDefineService {
@Autowired
ITtReportManageActService ttReportManageActService;
@Autowired
private ReportLabelDao reportLabelDao;
@Autowired
private IReportLabelService iReportLabelService;
//保存data数据
public String saveOrUpdateDate(String prcType, String dataJson,String taskId,String prcId) {
String dataId = UUID.randomUUID().toString().replaceAll("-","");
public String saveOrUpdateDate(String prcType, String dataJson,String taskId,String prcId,String reportId) {
if (StringUtils.isBlank(reportId)){
reportId = UUID.randomUUID().toString().replace("-","");
}
if ("1".equals(prcType)){
List<PowerApplyAct> powerApplyActs = JSONObject.parseArray(dataJson, PowerApplyAct.class);
for (PowerApplyAct powerApplyAct : powerApplyActs) {
powerApplyAct.setId(UUID.randomUUID().toString().replaceAll("-",""));
powerApplyAct.setDataId(dataId);
powerApplyAct.setDataId(reportId);
powerApplyAct.setTaskId(taskId);
powerApplyAct.setPrcId(prcId);
powerApplyAct.setDelFlag(0);
powerApplyAct.setCreateDate(new Date());
}
powerApplyActDao.batchInsert(powerApplyActs);
}else if ("2".equals(prcType)){
}else if ("4".equals(prcType)){
TtReportManageAct ttReportManageAct = JSONObject.parseObject(dataJson, TtReportManageAct.class);
ttReportManageAct.setDataId(dataId);
ttReportManageAct.setDataId(reportId);
ttReportManageAct.setTaskId(taskId);
ttReportManageAct.setPrcId(prcId);
ttReportManageAct.setDelFlag(0);
ttReportManageAct.setCreateDate(new Date());
ttReportManageActService.saveOrUpdateSingle(ttReportManageAct);
//权限
List<PowerApplyAct> powerApplyActs = new ArrayList<>();
List<PowerApplyAct> powerList = ttReportManageAct.getPowerList();
for (PowerApplyAct powerApplyAct : powerList) {
if (StringUtils.isEmpty(powerApplyAct.getId())){
powerApplyAct.setId(UUID.randomUUID().toString().replaceAll("-",""));
powerApplyAct.setReportId(ttReportManageAct.getId());
powerApplyAct.setDataId(dataId);
// powerApplyAct.setTaskId(taskId);
powerApplyAct.setPrcId(prcId);
powerApplyAct.setDelFlag(0);
powerApplyAct.setCreateDate(new Date());
powerApplyActs.add(powerApplyAct);
}
}
if (powerApplyActs.size()>0){
powerApplyActDao.batchInsert(powerApplyActs);
}
//插入报表标签关系表
//修改报表标签关系表(先删后增)
iReportLabelService.deleteReportLabelByReportId(new String[]{reportId});
ttReportManageAct.getLabelList().forEach((label) -> {
ReportLabelEntity reportLabelEntity = new ReportLabelEntity(com.adc.da.util.utils.UUID.randomUUID10()
,ttReportManageAct.getDataId(), label);
reportLabelDao.insert(reportLabelEntity);
});
}
return dataId;
return reportId;
}
}
@@ -4,8 +4,8 @@ import cn.hutool.core.util.StrUtil;
import com.adc.da.login.util.UserUtils;
import com.adc.da.report.dao.mysql.PowerApplyActDao;
import com.adc.da.report.dao.mysql.TtReportManageActDao;
import com.adc.da.report.eo.TtReportManageAct;
import com.adc.da.report.vo.PowerApplyActPageVO;
import com.adc.da.report.vo.TtReportManageActPageVO;
import com.adc.da.sys.service.iservice.IUserEoService;
import com.adc.da.sys.vo.UserVO;
import com.adc.da.util.exception.AdcDaBaseException;
@@ -282,6 +282,7 @@ public class TodoTaskController {
public Wrapper<String> completeTaskByUserId(@RequestBody ApproveDataVO busMes) {
log.info("!!!!!!!!!!!!!TaskId!!!!!!!!!!!!!!!"+busMes.getTaskId());
String dataJson = busMes.getDataJson();
String reportId = busMes.getReportId();
if (busMes.getTaskId() != null && !busMes.getTaskId().equals("")) {
Task task = taskService.createTaskQuery().taskId(busMes.getTaskId()).singleResult();
if(task!=null){
@@ -297,7 +298,8 @@ public class TodoTaskController {
ibusProcessApproveService.save(busProcessApprove);
if (StringUtils.isNotEmpty(dataJson)){
//根据业务情况 对业务数据进行saveOrupdate
activitDefineService.saveOrUpdateDate(busMes.getPrcType(),dataJson, task.getId(),task.getProcessInstanceId());
activitDefineService.saveOrUpdateDate(busMes.getPrcType(),dataJson, task.getId(),
task.getProcessInstanceId(),reportId);
}
taskService.complete(busMes.getTaskId());
}
@@ -444,11 +446,9 @@ public class TodoTaskController {
String string = JSONArray.toJSONString(powerApplyActs);
//去对应的 数据表查数据
busProcessNewVO.setDataJson(string);
}else if ("2".equals(prcType)){
TtReportManageActPageVO ttReportManageActPageVO = ttReportManageActDao.selectByDataId(dataId);
List<PowerApplyActPageVO> powerApplyActs = powerApplyActDao.selectListByPrcId(ttReportManageActPageVO.getPrcId());
ttReportManageActPageVO.setPowerList(powerApplyActs);
String string = JSONArray.toJSONString(ttReportManageActPageVO);
}else if ("4".equals(prcType)){
TtReportManageAct ttReportManageAct = ttReportManageActDao.selectByDataId(dataId);
String string = JSONArray.toJSONString(ttReportManageAct);
//去对应的 数据表查数据
busProcessNewVO.setDataJson(string);
}
@@ -458,23 +458,27 @@ public class TodoTaskController {
private BusProcessNewVO queryDetailDate(BusProcessNew busProcessNew, String prcType, Integer tag) {
BusProcessNewVO busProcessNewVO = new BusProcessNewVO();
BeanUtils.copyProperties(busProcessNew,busProcessNewVO);
String pId = busProcessNew.getPId();
String dataId = busProcessNew.getDataId();
if ("1".equals(prcType)){
List<PowerApplyActPageVO> powerApplyActs = new ArrayList<>();
if (tag == 1){
if (StringUtils.isBlank(pId)){
//代办查看详情
powerApplyActs = powerApplyActDao.selectListBydataIdNodel(dataId);
}else {
powerApplyActs = powerApplyActDao.selectListBydataId(dataId);
}else {
powerApplyActs = powerApplyActDao.selectListByPrcId(pId);
}
String string = JSONArray.toJSONString(powerApplyActs);
//去对应的 数据表查数据
busProcessNewVO.setDataJson(string);
}else if("2".equals(prcType)){
TtReportManageActPageVO ttReportManageActPageVO = ttReportManageActDao.selectByDataId(dataId);
List<PowerApplyActPageVO> powerApplyActs = powerApplyActDao.selectListByPrcId(ttReportManageActPageVO.getPrcId());
ttReportManageActPageVO.setPowerList(powerApplyActs);
String string = JSONArray.toJSONString(ttReportManageActPageVO);
}else if("4".equals(prcType)){
TtReportManageAct ttReportManageAct = new TtReportManageAct();
if (StringUtils.isBlank(pId)){
ttReportManageAct = ttReportManageActDao.selectByDataId(dataId);
}else {
ttReportManageAct = ttReportManageActDao.selectByPrcId(pId);
}
String string = JSONArray.toJSONString(ttReportManageAct);
//去对应的 数据表查数据
busProcessNewVO.setDataJson(string);
}
@@ -491,6 +495,7 @@ public class TodoTaskController {
public Wrapper<String> saveTaskFirst(@RequestBody ApproveDataVO approveDataVO) {
String dataJson = approveDataVO.getDataJson();
String submitJson = approveDataVO.getSubmitJson();
String reportId = approveDataVO.getReportId();
String saveId = null;
String dataId = null;
if (approveDataVO.getId() != null && !approveDataVO.getId().equals("")) {
@@ -509,7 +514,7 @@ public class TodoTaskController {
if (StringUtils.isNotEmpty(dataJson)){
//根据业务情况 对业务数据进行saveOrupdate
dataId = activitDefineService.saveOrUpdateDate(approveDataVO.getPrcType(), dataJson, null,
null);
null,reportId);
busProcessName.setDataId(dataId);
}
iBusProcessNameService.saveOrUpdate(busProcessName);
@@ -521,7 +526,7 @@ public class TodoTaskController {
if (StringUtils.isNotEmpty(dataJson)) {
//根据业务情况 对业务数据进行saveOrupdate
dataId = activitDefineService.saveOrUpdateDate(approveDataVO.getPrcType(), dataJson,
approveDataVO.getTaskId(),"");
approveDataVO.getTaskId(),"",reportId);
busProcessName.setDataId(dataId);
}
busProcessName.setPrcType(approveDataVO.getPrcType());
@@ -43,9 +43,9 @@ public class BusProcessNameServiceImpl extends ServiceImpl<BusProcessNameMapper,
Map<String,Object> result = new HashMap<>();
String prcName = "";
String prcNum = "";
if(StringUtils.equals(FlowTypeEnum.BGQXSQLC.getValue(), prcType)){
prcName = FlowTypeEnum.BGQXSQLC.getPrcName();
prcNum = FlowTypeEnum.BGQXSQLC.getPrcNum();
if(StringUtils.equals(FlowTypeEnum.XZSQ.getValue(), prcType)){
prcName = FlowTypeEnum.XZSQ.getPrcName();
prcNum = FlowTypeEnum.XZSQ.getPrcNum();
}else if (StringUtils.equals(FlowTypeEnum.SCBGLC.getValue(), prcType)){
prcName = FlowTypeEnum.SCBGLC.getPrcName();
prcNum = FlowTypeEnum.SCBGLC.getPrcNum();
@@ -34,4 +34,6 @@ public class ApproveDataVO {
private String prcName;
private String reportId;
}
@@ -5,8 +5,10 @@ package com.adc.da.wkflow.enums;
*/
public enum FlowTypeEnum {
BGQXSQLC("1","报告权限申请流程","QXSQ","报告权限申请流程",""),
SCBGLC("2","上传报告流程","SCBG","上传报告流程",""),
XZSQ("1","下载申请流程","QXSQ","下载申请流程",""),
YLSQ("2","预览申请流程","QXSQ","预览申请流程",""),
YLXZSQ("3","预览+下载申请流程","QXSQ","预览+下载申请流程",""),
SCBGLC("4","上传审批流程","SCBG","上传审批流程",""),
;
private String value;
@@ -1,6 +1,7 @@
package com.adc.da.wkflow.listener.SCBG;
import com.adc.da.login.util.UserUtils;
import com.adc.da.report.dao.mysql.ReportDao;
import com.adc.da.report.dao.mysql.TtReportManageActDao;
import com.adc.da.report.eo.TtReportManageAct;
import com.adc.da.wkflow.business_main.entity.BusProcessApprove;
@@ -24,6 +25,7 @@ public class oneApplyAfter implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
TtReportManageActDao ttReportManageActDao = SpringContextUtil.getBean(TtReportManageActDao.class);
ReportDao reportDao = SpringContextUtil.getBean(ReportDao.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessApproveService approveService = SpringContextUtil.getBean(IBusProcessApproveService.class);
//查询task任务
@@ -52,6 +54,10 @@ public class oneApplyAfter implements TaskListener {
String s = object.getString("flag") == "" || object.getString("flag") == null ? FlagEnum.AGREE.getValue() : object.getString("flag");
// 1: 同意 2:退回
delegateTask.setVariable("flag",s);
if ("1".equals(s)){
// ttReportManageActService.saveReport(ttReportManageAct);
reportDao.saveReportAct(ttReportManageAct);
}
}
}
@@ -50,6 +50,5 @@ public class reEditAfter implements TaskListener {
JSONObject object = JSONObject.parseObject(fromValsJson);
delegateTask.setVariable("oneApprove",object.getString("oneApprove"));
delegateTask.setVariable("twoApprove",object.getString("twoApprove"));
}
}
@@ -50,7 +50,6 @@ public class startAfter implements TaskListener {
JSONObject object = JSONObject.parseObject(fromValsJson);
//审批人
delegateTask.setVariable("oneApprove",object.getString("oneApprove"));
delegateTask.setVariable("twoApprove",object.getString("twoApprove"));
//发起人
delegateTask.setVariable("userId",object.getString("userId"));
}
@@ -1,70 +0,0 @@
package com.adc.da.wkflow.listener.SCBG;
import com.adc.da.login.util.UserUtils;
import com.adc.da.report.dao.mysql.PowerApplyActDao;
import com.adc.da.report.dao.mysql.TtReportManageActDao;
import com.adc.da.report.eo.PowerApplyAct;
import com.adc.da.report.eo.TtReportManageAct;
import com.adc.da.report.service.ITtReportManageActService;
import com.adc.da.wkflow.business_main.entity.BusProcessApprove;
import com.adc.da.wkflow.business_main.entity.BusProcessNew;
import com.adc.da.wkflow.business_main.service.IBusProcessApproveService;
import com.adc.da.wkflow.business_main.service.IBusProcessNewService;
import com.adc.da.wkflow.listener.FlagEnum;
import com.adc.da.wkflow.util.SpringContextUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.List;
/**
* 上传报告 发起流程
*/
public class twoApplyAfter implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
PowerApplyActDao powerApplyActDao = SpringContextUtil.getBean(PowerApplyActDao.class);
TtReportManageActDao ttReportManageActDao = SpringContextUtil.getBean(TtReportManageActDao.class);
ITtReportManageActService ttReportManageActService = SpringContextUtil.getBean(ITtReportManageActService.class);
IBusProcessNewService busBean = SpringContextUtil.getBean(IBusProcessNewService.class);
IBusProcessApproveService approveService = SpringContextUtil.getBean(IBusProcessApproveService.class);
//查询task任务
LambdaQueryWrapper<TtReportManageAct> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TtReportManageAct::getTaskId, delegateTask.getId());
List<TtReportManageAct> ttReportManageActs = ttReportManageActDao.selectList(queryWrapper);
TtReportManageAct ttReportManageAct = new TtReportManageAct();
if (ttReportManageActs.size()>0){
ttReportManageAct = ttReportManageActs.get(0);
List<PowerApplyAct> powerApplyActs = powerApplyActDao.selectActListBydataId(ttReportManageAct.getCreateUserId());
for (PowerApplyAct powerApplyAct : powerApplyActs) {
powerApplyAct.setReportId(ttReportManageAct.getId());
}
ttReportManageAct.setPowerList(powerApplyActs);
}
//构建工作流代办
BusProcessNew busProcessNew = new BusProcessNew();
busProcessNew.setUserId(UserUtils.getUserId());
busProcessNew.setPId(delegateTask.getProcessInstanceId());
busProcessNew.setTaskInfo(delegateTask.getEventName());
busProcessNew.setTaskId(delegateTask.getId());
busProcessNew.setDataId(ttReportManageAct.getDataId());
busBean.save(busProcessNew);
//审批结果
LambdaQueryWrapper<BusProcessApprove> approveWrapper = new LambdaQueryWrapper<>();
approveWrapper.eq(BusProcessApprove::getTaskId, delegateTask.getId());
List<BusProcessApprove> list = approveService.list(approveWrapper);
String fromValsJson = list.get(0).getFromValsJson();
JSONObject object = JSONObject.parseObject(fromValsJson);
String s = object.getString("flag") == "" || object.getString("flag") == null ? FlagEnum.AGREE.getValue() : object.getString("flag");
// 1: 同意 2:退回
delegateTask.setVariable("flag",s);
if ("1".equals(s)){
ttReportManageActService.saveReport(ttReportManageAct);
}
}
}
@@ -69,7 +69,13 @@ public class ImpulseSenderUtils {
String prcType = entry.getKey();
FlowTypeEnum flowTypeEnumByValue = FlowTypeEnum.getFlowTypeEnumByValue(prcType);
switch (flowTypeEnumByValue){
case BGQXSQLC:
case XZSQ:
bgqxsqNumber = new AtomicInteger(count);
case YLSQ:
bgqxsqNumber = new AtomicInteger(count);
case YLXZSQ:
bgqxsqNumber = new AtomicInteger(count);
case SCBGLC:
bgqxsqNumber = new AtomicInteger(count);
break;
}
@@ -88,13 +94,21 @@ public class ImpulseSenderUtils {
throw new ActivitiException("非法的流程类型: " + flowType);
}
switch (flowTypeEnum){
case BGQXSQLC:
case XZSQ:
number = bgqxsqNumber.incrementAndGet();
checkNumberLegitimate(number,"报告权限申请流程");
checkNumberLegitimate(number,"下载申请流程");
break;
case YLSQ:
number = bgqxsqNumber.incrementAndGet();
checkNumberLegitimate(number,"预览申请流程");
break;
case YLXZSQ:
number = bgqxsqNumber.incrementAndGet();
checkNumberLegitimate(number,"预览+下载申请流程");
break;
case SCBGLC:
number = bgqxsqNumber.incrementAndGet();
checkNumberLegitimate(number,"上传报告流程");
checkNumberLegitimate(number,"上传审批流程");
break;
default:
throw new ActivitiException("流程类型 " + flowType + " 非法!");