Browse Source

通用审批相关代码

master
dimengzhe 2 months ago
parent
commit
3456050b12
  1. 2
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowapprover/FlowApprover.java
  2. 3
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Rest.java
  3. 42
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Service.java
  4. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverMapper.java
  5. 34
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverMapper.xml
  6. 6
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverService.java
  7. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcMapper.java
  8. 33
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcMapper.xml
  9. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcService.java
  10. 2
      doc/databases/flowable.sql

2
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowapprover/FlowApprover.java

@ -19,5 +19,5 @@ public class FlowApprover extends BaseEntity {
@ApiModelProperty("审批人sid")
private String approverSid;
@ApiModelProperty("审批人名称")
private String approvalName;
private String approverName;
}

3
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Rest.java

@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowcc.FlowCc;
import com.yxt.anrui.flowable.biz.flow2.FlowRest;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
@ -73,7 +74,7 @@ public class Flow4Rest {
//启动流程
ResultBean<UpdateFlowFieldVo> voResultBean = startProcess(bv);
System.out.println("voResultBean{}" + voResultBean);
return rb.success();
return voResultBean;
}
public ResultBean<UpdateFlowFieldVo> handleProsess(BusinessVariables bv) {

42
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Service.java

@ -245,21 +245,26 @@ public class Flow4Service extends MybatisBaseService<Flow4Mapper, Flowable> {
List<String> approvers = (List<String>) variables.get("approvers");
// 获取抄送人列表
List<String> ccList = (List<String>) variables.get("ccList");
if (approvers != null) {
FlowApproverDto flowApproverDto = new FlowApproverDto();
flowApproverDto.setBusinessSid(bv.getBusinessSid());
flowApproverDto.setApproverSidList(approvers);
ResultBean resultBean = flowApproverService.saveFlowApprover(flowApproverDto);
}
if (ccList != null) {
String ccSids = String.join(",", ccList);
ResultBean<List<SysUserVo>> listResultBean = sysUserFeign.fetchBySids(ccSids);
List<String> ccNameList = listResultBean.getData().stream().map(v -> v.getName()).collect(Collectors.toList());
// 将 List<String> 转换为逗号分隔的字符串
String result = String.join(",", ccNameList);
FlowCc flowCc = new FlowCc();
flowCc.setBusinessSid(bv.getBusinessSid());
flowCc.setCcSids(ccSids);
flowCc.setCcNames(result);
flowCcService.insertFlowCc(flowCc);
}
FlowApproverDto flowApproverDto = new FlowApproverDto();
flowApproverDto.setBusinessSid(bv.getBusinessSid());
flowApproverDto.setApproverSidList(approvers);
ResultBean resultBean = flowApproverService.saveFlowApprover(flowApproverDto);
String ccSids = String.join(",", ccList);
ResultBean<List<SysUserVo>> listResultBean = sysUserFeign.fetchBySids(ccSids);
List<String> ccNameList = listResultBean.getData().stream().map(v -> v.getName()).collect(Collectors.toList());
// 将 List<String> 转换为逗号分隔的字符串
String result = String.join(",", ccNameList);
FlowCc flowCc = new FlowCc();
flowCc.setBusinessSid(bv.getBusinessSid());
flowCc.setCcSids(ccSids);
flowCc.setCcNames(result);
flowCcService.insert(flowCc);
}
/**
@ -355,10 +360,13 @@ public class Flow4Service extends MybatisBaseService<Flow4Mapper, Flowable> {
UpdateFlowFieldVo uff = new UpdateFlowFieldVo();
BeanUtil.copyProperties(uff1, uff);
uff.setTaskDefKey(taskDefKey);
StringBuilder userSids = new StringBuilder();
StringBuilder userName = new StringBuilder();
FlowCc flowCc = flowCcService.selectByBusinessSid(bv.getBusinessSid());
StringBuilder userSids = new StringBuilder(flowCc.getCcSids());
StringBuilder userName = new StringBuilder(flowCc.getCcNames());
if(flowCc != null){
userSids = new StringBuilder(flowCc.getCcSids());
userName = new StringBuilder(flowCc.getCcNames());
}
//抄送的业务逻辑
MessageFlowableQuery mfq = new MessageFlowableQuery();

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

@ -14,4 +14,6 @@ import org.apache.ibatis.annotations.Param;
@Mapper
public interface FlowApproverMapper extends BaseMapper<FlowApprover> {
String selectApproverSid(@Param("businessSid") String businessSid, @Param("sortNo") Integer sortNo);
int insertApprover(FlowApprover flowApprover);
}

34
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverMapper.xml

@ -7,4 +7,38 @@
where businessSid = #{businessSid}
and sortNo = #{sortNo}
</select>
<insert id="insertApprover">
insert into flow_approver
<trim prefix="(" suffix=")" suffixOverrides=",">
sid,
<if test="businessSid != null">
businessSid,
</if>
<if test="approverSid != null">
approverSid,
</if>
<if test="approverName != null">
approverName,
</if>
<if test="sortNo != null">
sortNo,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
UUID(),
<if test="businessSid != null">
#{businessSid},
</if>
<if test="approverSid != null">
#{approverSid},
</if>
<if test="approverName != null">
#{approverName},
</if>
<if test="sortNo != null">
#{sortNo},
</if>
</trim>
</insert>
</mapper>

6
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverService.java

@ -39,15 +39,15 @@ public class FlowApproverService extends MybatisBaseService<FlowApproverMapper,
flowApprover.setApproverSid(approverSid);
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(approverSid);
SysUserVo sysUser = sysUserVoResultBean.getData();
flowApprover.setApprovalName(sysUser.getName());
flowApprover.setApproverName(sysUser.getName());
flowApprover.setSortNo(sortNo);
baseMapper.insert(flowApprover);
baseMapper.insertApprover(flowApprover);
}
}
return rb.success();
}
public String selectApproverSid(String businessSid, Integer sortNo) {
return baseMapper.selectApproverSid(businessSid,sortNo);
return baseMapper.selectApproverSid(businessSid, sortNo);
}
}

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

@ -13,4 +13,6 @@ import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface FlowCcMapper extends BaseMapper<FlowCc> {
FlowCc selectByBusinessSid(String businessSid);
int insertFlowCc(FlowCc flowCc);
}

33
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcMapper.xml

@ -1,4 +1,37 @@
<?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.yxt.anrui.flowable.biz.flowcc.FlowCcMapper">
<select id="selectByBusinessSid" resultType="com.yxt.anrui.flowable.api.flowcc.FlowCc">
select *
from flow_cc
where businessSid = #{businessSid}
</select>
<insert id="insertFlowCc">
insert into flow_cc
<trim prefix="(" suffix=")" suffixOverrides=",">
sid,
<if test="businessSid != null">
businessSid,
</if>
<if test="ccSids != null">
ccSids,
</if>
<if test="ccNames != null">
ccNames,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
UUID(),
<if test="businessSid != null">
#{businessSid},
</if>
<if test="ccSids != null">
#{ccSids},
</if>
<if test="ccNames != null">
#{ccNames},
</if>
</trim>
</insert>
</mapper>

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcService.java

@ -16,4 +16,8 @@ public class FlowCcService extends MybatisBaseService<FlowCcMapper, FlowCc> {
public FlowCc selectByBusinessSid(String businessSid) {
return baseMapper.selectByBusinessSid(businessSid);
}
public int insertFlowCc(FlowCc flowCc) {
return baseMapper.insertFlowCc(flowCc);
}
}

2
doc/databases/flowable.sql

@ -15,7 +15,7 @@ CREATE TABLE `flow_approver`
`businessSid` varchar(64) DEFAULT NULL COMMENT '申请sid',
`sortNo` int(32) DEFAULT NULL COMMENT '序号',
`approverSid` varchar(64) DEFAULT NULL COMMENT '审批人sid',
`approvalName` varchar(64) DEFAULT NULL COMMENT '审批人名称',
`approverName` varchar(64) DEFAULT NULL COMMENT '审批人名称',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB

Loading…
Cancel
Save