Browse Source

Merge remote-tracking branch 'origin/master'

master
ligaode 3 months ago
parent
commit
5f05a48376
  1. 24
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java
  2. 1
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.java
  3. 29
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml
  4. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  5. 7
      anrui-riskcenter-ui/src/api/monthlyallowance/monthlyallowance.js
  6. 39
      anrui-riskcenter-ui/src/views/monthlyallowance/monthlyallowance.vue

24
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java

@ -234,8 +234,10 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId();
adminContains = true;
} else {
userSidForNextNode = listResultBean.getData();
formVariables.put("approvers", listResultBean.getData());
if(!listResultBean.getData().isEmpty()){
userSidForNextNode = listResultBean.getData();
formVariables.put("approvers", listResultBean.getData());
}
}
} else {
//若下一环节用户与系统管理员一致,则自动审批
@ -279,6 +281,7 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
isMultiInstanceTaskNext = true;
} else {
nextUserSid = userSidForNextNode.get(0);
//查询下一环节用户是否有转办人
nextUserSid = change(nextUserSid, bv.getInstanceId());
taskService.setAssignee(task2.getId(), nextUserSid);//将下一环节用户放入流程中
@ -296,6 +299,12 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
}
}else{//会签
Task task2 = tasks.get(0);
vo.setTaskId(task2.getId());
nodeState = task2.getName();
taskDefKey = task2.getTaskDefinitionKey();
}
if (!isMultiInstanceTaskNext) {
//获取该流程所有要走的环节节点
@ -874,10 +883,19 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
if (sysUserVos == null || sysUserVos.size() < 1) {
log.error("下一环节无用户填充管理员用户");
return rb;
}else{
StringBuilder nextNodeUserSids = new StringBuilder();
for (SysUserVo su : sysUserVos) {
nextNodeUserSids.append(su.getSid()).append(",");
}
//符合条件的用户的sid,拼接的字符串
nextNodeUserSids_ = nextNodeUserSids.toString();
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1);
}
} else {
if (sysUserVos == null || sysUserVos.size() < 1) {
continue;
// continue;
nextNodeUserSids_ = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId();
} else {
StringBuilder nextNodeUserSids = new StringBuilder();
for (SysUserVo su : sysUserVos) {

1
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.java

@ -31,6 +31,7 @@ public interface FlowTaskMapper extends BaseMapper<FlowTask> {
List<Map<String,Object>> finishedList1(Map<String, Object> map);
int finishedListCount(Map<String, Object> map);
int finishedListCountOA(Map<String, Object> map);
/**
* 根据流程实例的id查询最新的待办环节

29
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml

@ -200,6 +200,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
</select>
<select id="finishedListCountOA" parameterType="java.util.Map" resultType="int">
SELECT COUNT(DISTINCT ahpi.PROC_INST_ID_)
FROM ACT_HI_PROCINST ahpi
INNER JOIN ( SELECT PROC_INST_ID_ FROM ACT_HI_TASKINST WHERE ASSIGNEE_ =#{userSid} AND END_TIME_ IS NOT NULL ) temp ON ahpi.PROC_INST_ID_ = temp.PROC_INST_ID_
LEFT JOIN ACT_HI_TASKINST ahti ON ahti.PROC_INST_ID_ = temp.PROC_INST_ID_
INNER JOIN `ACT_HI_VARINST` A0 ON ahpi.PROC_INST_ID_ = A0.PROC_INST_ID_
LEFT JOIN ACT_RE_PROCDEF arpd ON ahpi.PROC_DEF_ID_ = arpd.ID_
<where>
<!-- <if test="proDefName != null and proDefName != ''">
AND arpd.NAME_ LIKE concat('%',#{proDefName},'%')
</if>-->
<if test="startDate != null and startDate != ''">
AND ahpi.START_TIME_ <![CDATA[ >= ]]> #{startDate}
</if>
<if test="endDate != null and endDate != ''">
AND ahpi.START_TIME_ <![CDATA[ <= ]]> #{endDate}
</if>
<if test="names != null and names != ''">
and (A0.NAME_ = 'orderNames' and A0.TEXT_ LIKE concat('%',#{names},'%') or arpd.NAME_ LIKE concat('%',#{proDefName},'%'))
</if>
<if test="startUserSid != null and startUserSid != ''">
and A0.NAME_ = 'INITIATOR' and A0.TEXT_ LIKE concat('%',#{startUserSid},'%')
</if>
<if test="category != null and category != ''">
and arpd.CATEGORY_ LIKE concat('%',#{category},'%')
</if>
</where>
</select>
<select id="getLatestTasks" resultType="com.yxt.anrui.flowable.api.flowtask.LatestTaskVo">
SELECT

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

@ -1017,7 +1017,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
paraMap.put("page", (pageNum - 1) * pageSize);
paraMap.put("size", pageSize);
List<Map<String, Object>> maps = baseMapper.finishedList1(paraMap);
int count = baseMapper.finishedListCount(paraMap);
int count = baseMapper.finishedListCountOA(paraMap);
List<FlowTaskDto> hisTaskList = new ArrayList();
for (Map<String, Object> histTask : maps) {
FlowTaskDto flowTask = new FlowTaskDto();

7
anrui-riskcenter-ui/src/api/monthlyallowance/monthlyallowance.js

@ -25,6 +25,13 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
rePushVoucher: function(data) {
return request({
url: '/riskcenter/v1/loanmonthlyaccrualapply/rePushVoucher',
method: 'post',
params: data
})
},
deleteBySids: function(data) {
return request({
url: '/riskcenter/v1/loanmonthlyaccrualapply/deleteBySids',

39
anrui-riskcenter-ui/src/views/monthlyallowance/monthlyallowance.vue

@ -146,6 +146,13 @@ export default {
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toPush',
btnLabel: '重推'
},
{
type: 'danger',
size: 'small',
@ -167,6 +174,7 @@ export default {
tableKey: 0,
list: [],
sids: [], // SIDs
multipleSelection: [],
FormLoading: false,
listLoading: false,
//
@ -242,6 +250,9 @@ export default {
case 'toAdd':
this.toAdd()
break
case 'toPush':
this.toPush()
break
case 'doDel':
this.doDel()
break
@ -255,6 +266,7 @@ export default {
// sid
handleSelectionChange(row) {
const aa = []
this.multipleSelection = row
row.forEach(element => {
aa.push(element.sid)
})
@ -317,6 +329,33 @@ export default {
}
})
},
toPush() {
if (this.sids.length === 1) {
if (this.multipleSelection[0].nodeState !== '已办结') {
this.$message({ showClose: true, type: 'error', message: '请选择状态为已办结的记录进行重推操作' })
return
}
const loading = this.$loading({
lock: true,
text: '数据推送中',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.rePushVoucher({ sid: this.sids[0] }).then((resp) => {
if (resp.success) {
loading.close()
this.$message({ showClose: true, type: 'success', message: '重推成功' })
this.getList()
} else {
loading.close()
}
}).catch(() => {
loading.close()
})
} else {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行重推操作' })
}
},
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)

Loading…
Cancel
Save