Browse Source

移动端总已办接口

master
dimengzhe 3 years ago
parent
commit
3275ddc259
  1. 9
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFallback.java
  2. 23
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFeign.java
  3. 55
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/app/FlowTaskFinishVo.java
  4. 10
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java
  5. 88
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java

9
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFallback.java

@ -13,11 +13,20 @@ import java.util.Map;
@Component
public class FlowableFallback implements FlowableFeign{
@Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
return null;
}
@Override
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
return null;
}
@Override
public ResultBean myprocess( String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
return null;
}
@Override
public ResultBean todoTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {
return null;

23
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFeign.java

@ -22,6 +22,18 @@ import java.util.Map;
path = "v1/flow",
fallback = FlowableFallback.class)
public interface FlowableFeign {
/**
* 业务系统发起流程申请
*
* @param procDefId 流程定义id
* @param userSid 用户sid
* @param variables form参数
* @return
*/
@PostMapping("/businessStart/{procDefId}/{userSid}")
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
/**
* 流程定义列表 一般业务中不需要查询该列表
@ -34,6 +46,17 @@ public interface FlowableFeign {
public ResultBean processPagerList(@ApiParam(value = "当前页码", required = true) @RequestParam("pageNum") Integer pageNum,
@ApiParam(value = "每页条数", required = true) @RequestParam("pageSize") Integer pageSize);
/**
* 我的流程 我发起的流程
*
* @param userSid 用户sid
* @param taskQueryPagerQuery 查询参数
* @return
*/
@PostMapping("/myprocess/{userSid}")
public ResultBean myprocess(@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody PagerQuery<FlowTaskQuery> taskQueryPagerQuery);
/**
* 待办列表
*

55
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/app/FlowTaskFinishVo.java

@ -0,0 +1,55 @@
package com.yxt.anrui.portal.api.flow.app;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/7/29 17:31
* @Description
*/
@Data
public class FlowTaskFinishVo implements Vo {
private static final long serialVersionUID = -5936470750210770833L;
@ApiModelProperty(value = "流程id")
private String deployId;
@ApiModelProperty(value = "流程实例id")
private String procInsId;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty("节点id")
private String taskDefKey;
@ApiModelProperty(value = "app集合")
private AppVo appVariables;
@ApiModelProperty(value = "环节名称")
private String taskName;
@ApiModelProperty(value = "发起部门")
private String startDeptName;
@ApiModelProperty(value = "发起人")
private String startUserName;
@ApiModelProperty(value = "工作名称")
private String procDefName;
@ApiModelProperty(value = "提交日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date processCreateTime;
@ApiModelProperty(value = "发起日期")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date createTime;
@JsonIgnore
private Map<String, Object> processVariables;
@ApiModelProperty("办理的url")
@JsonIgnore
private SysProUrlVo sysProUrlVo;
@ApiModelProperty("任务执行人名称")
@JsonProperty("currentHandle")
private String assigneeName;
}

10
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java

@ -70,11 +70,21 @@ public class FlowableRest implements FlowableFeign {
@Autowired
private SysUserService sysUserService;
@Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
return flowableService.businessStart(procDefId, userSid, variables);
}
@Override
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
return flowableService.processPagerList(pageNum, pageSize);
}
@Override
public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
return flowableService.myprocess(userSid, taskQueryPagerQuery);
}
@Override
public ResultBean todoTaskList(String userSid, PagerQuery<TaskQuery> pQuery) {

88
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java

@ -45,6 +45,7 @@ import com.yxt.anrui.portal.api.flow.*;
import com.yxt.anrui.portal.api.flow.app.AppVo;
import com.yxt.anrui.portal.api.flow.app.FlowTaskDoQuery;
import com.yxt.anrui.portal.api.flow.app.FlowTaskDoVo;
import com.yxt.anrui.portal.api.flow.app.FlowTaskFinishVo;
import com.yxt.anrui.portal.biz.appsubsetversion.AppSubsetVersionService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ConstantUtils;
@ -319,7 +320,7 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
// if (incomingSourceRef.contains("start")) {
map.put("flowState",nodeState);
map.put("flowState", nodeState);
// }
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
@ -347,7 +348,6 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
sysFormLinkFeign.updateFiled(map);
return resultBean.success();
}*/
public void stopProcess(FlowTaskVo flowTaskVo) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(flowTaskVo, fl);
@ -556,4 +556,88 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
page.setTotal(resultBean.getData().getTotal());
return rb.success().setData(page);
}
public ResultBean<PagerVo<FlowTaskFinishVo>> finishApp(PagerQuery<FlowTaskDoQuery> pagerQuery) {
ResultBean<PagerVo<FlowTaskFinishVo>> rb = ResultBean.fireFail();
PagerQuery<BusinessTaskQuery> taskQueryPagerQuery = new PagerQuery<>();
taskQueryPagerQuery.setCurrent(pagerQuery.getCurrent()).setSize(pagerQuery.getSize());
FlowTaskDoQuery params = pagerQuery.getParams();
String names = params.getNames();
String userSid = params.getUserSid();
BusinessTaskQuery taskQuery = new BusinessTaskQuery();
List<BusinessTaskParam> taskParamList = new ArrayList<>();
if (StringUtils.isNotBlank(names)) {
BusinessTaskParam taskParam = new BusinessTaskParam();
taskParam.setField("proDefName");
taskParam.setValue(names);
taskParam.setSqlOperationSymbol(SQLOperationSymbol.LIKE);
taskParamList.add(taskParam);
}
taskQuery.setFields(taskParamList);
taskQueryPagerQuery.setParams(taskQuery);
ResultBean<Page<FlowTaskDto>> resultBean = flowTaskFeign.businessDoneListForApp(userSid, taskQueryPagerQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg("流程错误");
}
PagerVo<FlowTaskFinishVo> page = new PagerVo<>();
List<FlowTaskFinishVo> voList = Optional.ofNullable(resultBean.getData().getRecords()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), FlowTaskFinishVo.class)).collect(Collectors.toList());
voList.removeAll(Collections.singleton(null));
//定义的app的sid的index集合
Map<String, List<Integer>> appVer = new HashMap<>();
for (int i = 0; i < voList.size(); i++) {
FlowTaskFinishVo f = voList.get(i);
Map<String, Object> flowMap = f.getProcessVariables();
Map<String, Object> appMap = ConstantUtils.getMap(flowMap, "app");
String json = JSONObject.toJSONString(appMap);
System.out.println(json);
AppVo appVo = new AppVo();
appVo.setJson(json);
//app版本的sid
String appSid = "";
//app版本的类型
String type = "";
if (f.getSysProUrlVo() != null) {
appVo.setModuleAction(f.getSysProUrlVo().getUrl());
appSid = f.getSysProUrlVo().getModulePluginName();
}
//根据appSid查询最新版本的app插件包:以及类型:2插件,1框架
if (StringUtils.isNotBlank(appSid)) {
if (appSid.contains("#")) {
type = Arrays.asList(appSid.split("#")).get(1);
}
}
if ("1".equals(type)) {
//框架
} else if ("2".equals(type)) {
//插件
String appSid2 = appSid.substring(0, appSid.indexOf("#"));
List<Integer> integers = appVer.get(appSid2);
if (integers == null) {
integers = new ArrayList<>();
}
integers.add(i);
appVer.put(appSid2, integers);
}
appVo.setType(type);
voList.get(i).setAppVariables(appVo);
}
// 循环取map:若为同一个app版本,则只查询一次
for (String key : appVer.keySet()) {
AppSubsetVersionVo appSubsetVersions = appSubsetVersionService.selectByAppSidOne(key);
if (appSubsetVersions != null) {
List<Integer> integers = appVer.get(key);
for (int i = 0; i < integers.size(); i++) {
voList.get(i).getAppVariables().setPath(appSubsetVersions.getUpdateUrl());
voList.get(i).getAppVariables().setModuleVersion(appSubsetVersions.getVersionCode());
voList.get(i).getAppVariables().setModulePluginName(appSubsetVersions.getModulePluginName());
}
}
}
page.setRecords(voList);
page.setCurrent(resultBean.getData().getCurrent());
page.setSize(resultBean.getData().getSize());
page.setTotal(resultBean.getData().getTotal());
return rb.success().setData(page);
}
}

Loading…
Cancel
Save