Browse Source

flowable 抄送

master
yxt_djz 2 years ago
parent
commit
6fcd9c21f1
  1. 5
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFallback.java
  2. 7
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFeign.java
  3. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/FlowableApplication.java
  4. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.java
  5. 114
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  6. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableService.java
  7. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/process/ProcessService.java
  8. 19
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/feign/MessageFeign.java
  9. 21
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/feign/form/MessageFlowVo.java
  10. 33
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/feign/form/MessageFlowableQuery.java
  11. 7
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFallback.java
  12. 14
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFeign.java
  13. 24
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/PCHistTaskListAndCommentList.java
  14. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowcc/SysFlowccFeign.java
  15. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowcc/SysFlowccFeignFallback.java
  16. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java
  17. 5
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java
  18. 22
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/UserByRolesAndOrgQuery.java
  19. 60
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java
  20. 1
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowcc/SysFlowccMapper.java
  21. 20
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowcc/SysFlowccRest.java
  22. 6
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowcc/SysFlowccService.java
  23. 5
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java
  24. 21
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java
  25. 1
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserrole/SysUserRoleMapper.java
  26. 10
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserrole/SysUserRoleMapper.xml
  27. 3
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserrole/SysUserRoleService.java

5
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFallback.java

@ -9,6 +9,11 @@ import java.util.Map;
@Component
public class FlowableFallback implements FlowableFeign {
@Override
public ResultBean cc(Map<String,Object> map) {
return null;
}
@Override
public ResultBean businessStart(BusinessVariables bv) {
return null;

7
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flow/FlowableFeign.java

@ -18,6 +18,13 @@ import java.util.Map;
path = "v1/flow",
fallback = FlowableFallback.class)
public interface FlowableFeign {
/**
* 抄送
*
* @return
*/
@PostMapping("/cc")
public ResultBean cc(@RequestBody Map<String,Object> map);
/**
* 业务系统发起流程申请
*

2
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/FlowableApplication.java

@ -18,7 +18,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
"org.flowable.ui.modeler", "org.flowable.ui.common","com.yxt.anrui.flowable.*"
})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal"})
@EnableFeignClients(basePackages = {"com.yxt.anrui.portal.*","com.yxt.anrui.flowable.*"})
public class FlowableApplication {
public static void main(String[] args) {

2
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableMapper.java

@ -15,4 +15,6 @@ public interface FlowableMapper extends BaseMapper<Flowable> {
FlowProcinst getFlowProcinstById(@Param("id") String id);
@Select("select * from act_hi_procinst where proc_inst_id_=#{id}")
Map<String, String> getProcessInstanceById(@Param("id") String procInsId);
@Select("select * from act_re_procdef where id_=#{id}")
Map<String, String> getProcessDefByDefId(@Param("id") String id);
}

114
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java

@ -26,6 +26,7 @@
package com.yxt.anrui.flowable.biz.flow;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.flowable.api.flow.*;
@ -33,9 +34,15 @@ import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.feign.MessageFeign;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccFeign;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserByRolesAndOrgQuery;
import com.yxt.anrui.portal.api.sysuser.UserQuery;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
@ -44,9 +51,11 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.HistoryService;
import org.flowable.engine.TaskService;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -83,6 +92,101 @@ public class FlowableRest implements FlowableFeign {
protected TaskService taskService;
@Resource
private ProcessService processService;
@Resource
private SysFlowccFeign sysFlowccFeign;
@Autowired
private MessageFeign messageFeign;
@Resource
protected HistoryService historyService;
/**
* 流程抄送的功能
* @param map
* @return
*/
@Override
public ResultBean cc(Map<String,Object> map) {
log.info("FlowableRest-cc:{}",JSONObject.toJSONString(map));
Object bv1 = map.get("bv");
BusinessVariables bv= new BusinessVariables();
BeanUtil.copyProperties(bv1,bv);
Object uff1 = map.get("uff");
UpdateFlowFieldVo uff= new UpdateFlowFieldVo();
BeanUtil.copyProperties(uff1,uff);
//流程定义的id
String modelId = bv.getModelId();
//抄送的角色的sid
ResultBean<SysFlowccVo> roleSidByModelId = sysFlowccFeign.getRoleSidByModelId(modelId);
//组织机构sid
String orgSidPath = bv.getOrgSidPath();
if(!roleSidByModelId.getSuccess()){
return roleSidByModelId;
}
SysFlowccVo data = roleSidByModelId.getData();
if(StringUtils.isBlank(data.getRoleSid())){
return ResultBean.fireFail().setMsg("抄送失败,没有配置对应的角色!");
}
List<String> list = Arrays.asList(data.getRoleSid().split(","));
UserByRolesAndOrgQuery userQuery = new UserByRolesAndOrgQuery();
userQuery.setRoleSids(list);
userQuery.setOrgSidPath(orgSidPath);
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRoles(userQuery).getData();
if(sysUserVos==null||sysUserVos.size()<1){
return ResultBean.fireFail().setMsg("抄送失败,没有用户!");
}
StringBuilder userName=new StringBuilder();
StringBuilder userSids=new StringBuilder();
sysUserVos.forEach(f->{
userName.append(f.getName()).append(",");
userSids.append(f.getSid()).append(",");
});
userSids.deleteCharAt(userSids.length()-1);
//抄送的业务逻辑
MessageFlowableQuery mfq = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
mfq.setUfVo(messageFlowVo);
//移动端的参数
//Map<String,Object> app = (Map<String, Object>) bv.getFormVariables().get("app");
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery()
.includeProcessVariables().taskId(bv.getTaskId()).singleResult();
if(historicTaskInstance==null){
log.info("抄送失败:没有获取到业务参数!");
return ResultBean.fireFail().setMsg("抄送失败!");
}
Map<String, Object> processVariables = historicTaskInstance.getProcessVariables();
if(historicTaskInstance==null){
log.info("抄送失败:没有获取到业务参数!");
return ResultBean.fireFail().setMsg("抄送失败!");
}
Map<String,Object> app=new HashMap<>();
if(processVariables.get("app")!=null){
app= (Map<String, Object>) processVariables.get("app");
}
log.info("抄送方法-historicTaskInstance:{}",JSONObject.toJSONString(historicTaskInstance));
mfq.setAppMap(app);
mfq.setBusinessSid(bv.getBusinessSid());
mfq.setMsgContent( "系统抄送的流程审批,请查看");
// act_re_procdef
Map<String,String> process= processService.getProcessDefByDefId(historicTaskInstance.getProcessDefinitionId());
log.info("抄送成功-process:{}",process);
if(process==null){
return ResultBean.fireFail().setMsg("抄送失败,流程定义不存在!");
}
mfq.setModuleName(process.get("NAME_"));
mfq.setMsgTitle(process.get("NAME_"));
mfq.setUserSids(userSids.toString());
ResultBean<String> resultBean = messageFeign.pushMessageCC(mfq);
log.info("抄送成功:{}",userName.toString());
log.info("抄送成功-resultBean:{}",resultBean);
if(!resultBean.getSuccess()){
log.info("抄送失败,同送消息异常!:{}",JSONObject.toJSONString(resultBean));
return ResultBean.fireFail().setMsg("抄送失败,同送消息异常!");
}
return ResultBean.fireSuccess().setMsg("抄送"+userName.toString()+"成功!");
}
@Override
public ResultBean businessStart(BusinessVariables bv) {
return flowableService.businessStart( bv);
@ -193,7 +297,15 @@ public class FlowableRest implements FlowableFeign {
Logger log= LoggerFactory.getLogger(FlowableRest.class);
@Override
public ResultBean<UpdateFlowFieldVo> handleProsess(BusinessVariables dto) {
return handleProsess(dto,true);
ResultBean<UpdateFlowFieldVo> updateFlowFieldVoResultBean = handleProsess(dto, true);
if(updateFlowFieldVoResultBean.getSuccess()){
HashMap<String, Object> map = new HashMap<>();
map.put("bv",dto);
map.put("uff",updateFlowFieldVoResultBean.getData());
cc(map);
}
return updateFlowFieldVoResultBean;
}
/**

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableService.java

@ -274,4 +274,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
public Map<String, String> getProcessInstanceById(String procInsId) {
return baseMapper.getProcessInstanceById(procInsId);
}
public Map<String, String> getProcessDefByDefId(String processDefinitionId) {
return baseMapper.getProcessDefByDefId(processDefinitionId);
}
}

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/process/ProcessService.java

@ -160,4 +160,8 @@ public class ProcessService {
public Map<String, String> getProcessInstanceById(String procInsId) {
return flowableService.getProcessInstanceById(procInsId);
}
public Map<String, String> getProcessDefByDefId(String processDefinitionId) {
return flowableService.getProcessDefByDefId(processDefinitionId);
}
}

19
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/feign/MessageFeign.java

@ -0,0 +1,19 @@
package com.yxt.anrui.flowable.feign;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@Api(tags = "消息体")
@FeignClient(
contextId = "message-center-Message",
name = "message-center",
path = "v1/message")
public interface MessageFeign {
@ApiOperation("流程审批推送消息")
@PostMapping("/pushMessageCC")
ResultBean<String> pushMessageCC(@RequestBody MessageFlowableQuery query);
}

21
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/feign/form/MessageFlowVo.java

@ -0,0 +1,21 @@
package com.yxt.anrui.flowable.feign.form;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/25 15:58
* @Description
*/
@Data
public class MessageFlowVo implements Vo {
private String sid;
private String procDefId;
private String nodeState;
private String procInsId;
private String taskDefKey;
private String taskId;
private String nextNodeUserSids;
}

33
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/feign/form/MessageFlowableQuery.java

@ -0,0 +1,33 @@
package com.yxt.anrui.flowable.feign.form;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/8/25 15:12
* @Description
*/
@Data
public class MessageFlowableQuery implements Query {
@ApiModelProperty("业务sid")
private String businessSid;
@ApiModelProperty("模块名称")
private String moduleName;
@ApiModelProperty("消息内容")
private String msgContent;
@ApiModelProperty("消息标题")
private String msgTitle;
@ApiModelProperty("流程相关参数")
private MessageFlowVo ufVo;
@ApiModelProperty("app所需参数")
private Map<String,Object> appMap;
@ApiModelProperty("申请人")
private String applicationName;
@ApiModelProperty("抄送的用户的sid")
private String userSids;
}

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

@ -9,6 +9,8 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
@Component
public class FlowableFallback implements FlowableFeign{
/* @Override
@ -56,6 +58,11 @@ public class FlowableFallback implements FlowableFeign{
return null;
}
@Override
public ResultBean<List<PCHistTaskListAndCommentList>> flowRecordAndComment(String procInsId, String deployId) {
return null;
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
return null;

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

@ -13,6 +13,8 @@ import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "Flowable")
@FeignClient(
contextId = "anrui-portal-flow-Flowable",
@ -124,6 +126,18 @@ public interface FlowableFeign {
public ResultBean<FlowRecordVo> flowRecord(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId,
@ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId);
/**
* 流程历史流转记录 包含了评论的数据
*
* @param procInsId 流程实例id
* @param deployId 目前没用
* @return
*/
@ApiOperation(value = "流程历史流转记录")
@GetMapping(value = "/task/flowRecordAndComment/{procInsId}/{deployId}")
public ResultBean<List<PCHistTaskListAndCommentList>>flowRecordAndComment(@ApiParam(value = "流程实例id") @PathVariable(value = "procInsId") String procInsId,
@ApiParam(value = "目前没用") @PathVariable(value = "deployId") String deployId);
/**
* 驳回任务
*

24
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/PCHistTaskListAndCommentList.java

@ -0,0 +1,24 @@
package com.yxt.anrui.portal.api.flow;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.Map;
@Data
public class PCHistTaskListAndCommentList {
private static final long serialVersionUID = -3272069366532392941L;
@ApiModelProperty(value = "流程状态")
@JsonProperty("state")
private String state;
@ApiModelProperty(value = "时间")
@JsonProperty("time")
private Date time;
@ApiModelProperty(value = "审批记录")
@JsonProperty("flowableRecordVo")
private Map<String,Object> flowableRecordVo;
@ApiModelProperty("流程评论")
@JsonProperty("processCommentVo")
private Map<String,Object> processCommentVo;
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowcc/SysFlowccFeign.java

@ -75,4 +75,9 @@ public interface SysFlowccFeign {
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<SysFlowccDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("根据流程的id查询抄送的角色")
@PostMapping("/getRoleSidByModelId/{modelId}")
@ResponseBody
public ResultBean<SysFlowccVo> getRoleSidByModelId(@PathVariable("modelId") String modelId);
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowcc/SysFlowccFeignFallback.java

@ -69,4 +69,9 @@ public class SysFlowccFeignFallback implements SysFlowccFeign {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-portal/sysflowcc/fetchDetailsBySid无法访问");
}
@Override
public ResultBean<SysFlowccVo> getRoleSidByModelId(String modelId) {
return null;
}
}

4
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeign.java

@ -248,5 +248,7 @@ public interface SysUserFeign {
@GetMapping(value = "/getOrgListByUserSid")
ResultBean<List<OrgList>> getOrgListByUserSid(@RequestParam("userSid") String userSid);
@ApiOperation(value = "根据多个角色sid以及机构sid获取本机构链角色的用户")
@PostMapping(value = "/getUserByRoles")
ResultBean<List<SysUserVo>> getUserByRoles(@RequestBody UserByRolesAndOrgQuery userQuery);
}

5
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/SysUserFeignFallback.java

@ -225,4 +225,9 @@ public class SysUserFeignFallback implements SysUserFeign {
public ResultBean<List<OrgList>> getOrgListByUserSid(String userSid) {
return null;
}
@Override
public ResultBean<List<SysUserVo>> getUserByRoles(UserByRolesAndOrgQuery userQuery) {
return null;
}
}

22
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysuser/UserByRolesAndOrgQuery.java

@ -0,0 +1,22 @@
package com.yxt.anrui.portal.api.sysuser;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/6/21 8:47
* @Description
*/
@Data
public class UserByRolesAndOrgQuery implements Query {
@ApiModelProperty(value = "角色sid必传项")
private List<String> roleSids;
@ApiModelProperty(value = "用户部门sid路径是必传项")
private String orgSidPath;
}

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

@ -27,6 +27,7 @@ package com.yxt.anrui.portal.biz.flow;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxt.anrui.flowable.api.processcomment.ProcessCommentFeign;
import com.yxt.anrui.portal.api.flow.*;
import com.yxt.anrui.portal.api.flow.app.FlowTaskDoQuery;
import com.yxt.anrui.portal.api.flow.app.FlowTaskDoVo;
@ -35,6 +36,10 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.SysUser;
import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.anrui.portal.biz.sysuser.SysUserService;
import com.yxt.anrui.terminal.api.app.flowable.AppFlowableRecordAndCommentVo;
import com.yxt.anrui.terminal.api.app.flowable.AppFlowableRecordQuery;
import com.yxt.anrui.terminal.api.app.flowable.AppFlowableRecordVo;
import com.yxt.anrui.terminal.api.app.flowable.ProcessCommentVo;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -44,6 +49,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -71,6 +79,8 @@ public class FlowableRest implements FlowableFeign {
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysUserService sysUserService;
@Autowired
private ProcessCommentFeign processCommentFeign;
/*
@Override
@ -142,6 +152,56 @@ public class FlowableRest implements FlowableFeign {
return resultBean;
}
@Override
public ResultBean<List<PCHistTaskListAndCommentList>> flowRecordAndComment(String procInsId, String deployId) {
ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(procInsId, deployId);
com.yxt.anrui.flowable.api.flowtask.FlowRecordVo flowRecordVo = flowRecordVoResultBean.getData();
// private List<com.yxt.anrui.flowable.api.flowtask.FlowTask> flowList = new ArrayList<>();
List<PCHistTaskListAndCommentList> flowList = new ArrayList<>();
//流转记录
List<com.yxt.anrui.flowable.api.flowtask.FlowTask> flowList1 = flowRecordVo.getFlowList();
flowList1.forEach(f->{
PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList();
a.setTime(f.getFinishTime()==null?new Date():f.getFinishTime());
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
a.setFlowableRecordVo(stringObjectMap);
a.setState(0+"");
flowList.add(a);
});
//评论记录
ResultBean<List<ProcessCommentVo>> commentList = getCommentList(procInsId,deployId);
commentList.getData().forEach(f->{
PCHistTaskListAndCommentList a=new PCHistTaskListAndCommentList();
Date time = f.getCreateTime();
a.setTime(time);
f.setTitle(f.getTaskUserInfo().getAssigneeName()+"添加了评论");
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
a.setProcessCommentVo(stringObjectMap);
a.setState(1+"");
flowList.add(a);
});
flowList.sort((t1, t2) -> t2.getTime().compareTo(t1.getTime()));
//flowRecordVo.setFlowList(flowList);
ResultBean<List<PCHistTaskListAndCommentList>> resultBean = new ResultBean<List<PCHistTaskListAndCommentList>>().success();
resultBean.setData(flowList);
return resultBean;
}
public ResultBean<List<ProcessCommentVo>> getCommentList(String procInsId, String deployId) {
ResultBean<List<ProcessCommentVo>> rb = ResultBean.fireFail();
ResultBean<List<com.yxt.anrui.flowable.api.processcomment.ProcessCommentVo>> commentList = processCommentFeign.getCommentList(procInsId);
List<ProcessCommentVo> list=new ArrayList<>();
commentList.getData().forEach(f->{
ProcessCommentVo processCommentVo = new ProcessCommentVo();
BeanUtil.copyProperties(f,processCommentVo);
processCommentVo.setCreateTime(f.getTime());
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(f.getTime());
processCommentVo.setTime(format);
list.add(processCommentVo);
});
return rb.success().setData(list);
}
@Override
public ResultBean taskReject(String businessSid, FlowTaskVo flowTaskVo) {
return flowableService.taskReject(businessSid, flowTaskVo);

1
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowcc/SysFlowccMapper.java

@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccDetailsVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

20
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowcc/SysFlowccRest.java

@ -25,6 +25,9 @@
*********************************************************/
package com.yxt.anrui.portal.biz.sysflowcc;
import com.yxt.anrui.portal.api.sysuserrole.SysUserRole;
import com.yxt.anrui.portal.api.sysuserrole.SysUserRoleFeign;
import com.yxt.anrui.portal.biz.sysuserrole.SysUserRoleService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -62,7 +65,8 @@ public class SysFlowccRest implements SysFlowccFeign {
@Autowired
private SysFlowccService sysFlowccService;
@Autowired
private SysUserRoleService sysUserRoleService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
@ -102,4 +106,18 @@ public class SysFlowccRest implements SysFlowccFeign {
vo.setRoleNames(Arrays.asList(roleNames));
return rb.success().setData(vo);
}
@Override
public ResultBean<SysFlowccVo> getRoleSidByModelId(String modelId) {
ResultBean<List<String>> rb = ResultBean.fireFail();
ResultBean<SysFlowccVo> roleSidByModelId = sysFlowccService.getRoleSidByModelId(modelId);
/*if(!roleSidByModelId.getSuccess()){
return rb;
}*/
/*SysFlowccVo data = roleSidByModelId.getData();
String roleSid = data.getRoleSid();
List<String> list = Arrays.asList(roleSid.split(","));
ResultBean<List<String>> userIdListByRoleSid = sysUserRoleService.getUserSidListByRoleSid(list);*/
return roleSidByModelId;
}
}

6
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowcc/SysFlowccService.java

@ -147,4 +147,10 @@ public class SysFlowccService extends MybatisBaseService<SysFlowccMapper, SysFlo
BeanUtil.copyProperties(entity, vo);
return vo;
}
public ResultBean<SysFlowccVo> getRoleSidByModelId(String modelId) {
ResultBean<SysFlowccVo> rb = ResultBean.fireFail();
SysFlowccVo sysFlowccVo = baseMapper.selectByFlowKey(modelId);
return rb.success().setData(sysFlowccVo);
}
}

5
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java

@ -644,4 +644,9 @@ public class SysUserRest implements SysUserFeign {
public ResultBean<List<OrgList>> getOrgListByUserSid(String userSid) {
return sysUserService.getOrgListByUserSid(userSid);
}
@Override
public ResultBean<List<SysUserVo>> getUserByRoles(UserByRolesAndOrgQuery userQuery) {
return sysUserService.getUserByRoles(userQuery);
}
}

21
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserService.java

@ -41,6 +41,7 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@ -1322,4 +1323,24 @@ public class SysUserService extends MybatisBaseService<SysUserMapper, SysUser> {
}
return rb.success();
}
public ResultBean<List<SysUserVo>> getUserByRoles(UserByRolesAndOrgQuery userQuery) {
List<String> roleSids = userQuery.getRoleSids();
String orgSidPath = userQuery.getOrgSidPath();
List<SysUserVo> list=new ArrayList<>();
for(String s:roleSids){
UserQuery uq=new UserQuery();
uq.setRoleSid(s);
uq.setOrgSidPath(orgSidPath);
ResultBean<List<SysUserVo>> userByRole = getUserByRole(uq);
if(userByRole.getSuccess()){
List<SysUserVo> data = userByRole.getData();
data.forEach( f->{
list.add(f);
});
}
}
ResultBean<List<SysUserVo>> objectResultBean = ResultBean.fireSuccess();
return objectResultBean.setData(list);
}
}

1
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserrole/SysUserRoleMapper.java

@ -50,4 +50,5 @@ public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
List<String> getUserRoleSidByUserSid(@Param("userSid")String userSid);
List<String> getUserIdListByRoleSid(@Param("roleList") List<String> roleList);
List<String> getUserSidListByRoleSid(@Param("roleList") List<String> roleList);
}

10
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserrole/SysUserRoleMapper.xml

@ -28,4 +28,14 @@
</foreach>
GROUP BY sur.userSid
</select>
<select id="getUserSidListByRoleSid" resultType="String">
SELECT su.sid
FROM sys_user_role sur
INNER JOIN sys_user su ON sur.userSid=su.sid
WHERE sur.roleSid IN
<foreach collection="roleList" item="item" separator="," open="(" close=")" index="">
#{item, jdbcType=VARCHAR}
</foreach>
GROUP BY sur.userSid
</select>
</mapper>

3
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuserrole/SysUserRoleService.java

@ -120,4 +120,7 @@ public class SysUserRoleService extends MybatisBaseService<SysUserRoleMapper, Sy
public ResultBean<List<String>> getUserIdListByRoleSid(List<String> roleList) {
return new ResultBean<List<String>>().success().setData(baseMapper.getUserIdListByRoleSid(roleList));
}
public ResultBean<List<String>> getUserSidListByRoleSid(List<String> roleList) {
return new ResultBean<List<String>>().success().setData(baseMapper.getUserSidListByRoleSid(roleList));
}
}
Loading…
Cancel
Save