简体中文
Groovy代码示例
约 254 字小于 1 分钟
2026-01-09
/**
* @author admin01
* @codeName 打印打印
* @description 怎么传参数
* @createTime 2024-07-08
*/
Map map = [:]
// instanceId 66867287a1267e7b18549747
// dataId 664dd64ff7239000076e0adf
// instanceId = "66867287a1267e7b18549747"
def (Boolean err, List instanceList, String errMsg) = Fx.approval.findTasks(instanceId)
List printList = []
instanceList.each { inst ->
List opinions = ((Map) inst).opinions as List
opinions.eachWithIndex { opin, i ->
Map newOpin = [:]
// 审批节点名称
newOpin.task_name = ((Map) inst).task_name
// 处理人
String replyUser = ((List) ((Map) opin).reply_user)[0]
def (Boolean err1, Map userInfo, String errMsg1) = Fx.org.findUserById(replyUser)
if(!err1){
newOpin.reply_user = userInfo.full_name
} else {
log.info(errMsg1)
}
// 处理结果
String type = ((Map) opin).action_type
if(type == 'agree'){
newOpin.action_type = '通过'
} else if(type == 'reject'){
newOpin.action_type = '驳回'
} else if(type == 'cancel'){
newOpin.action_type = '取消'
}
// 处理意见
newOpin.opinion = ((Map) opin).opinion
// 审批节点名称需要进行合并,初始化 colspan、rowspan
Map spanTaskName = [task_name: [colspan: 1, rowspan: 1]]
newOpin.span = spanTaskName
printList.add(newOpin)
}
}
// 上面生成了一个标准的关系性数据,需要将其分组计算得出需要对 task_name 合并行
Map groupedByTaskName = printList.groupBy { ((Map) it).task_name }.collectEntries { [(it.key): (it.value)] }
groupedByTaskName.each { entry ->
def taskList = entry.value as List<Map>
if (taskList.size() <= 1) return
taskList.eachWithIndex { task, i ->
Map span = ((Map) task).span as Map
Map taskNameSpan = span.task_name as Map
if (i == 0) {
taskNameSpan.rowspan = taskList.size()
} else {
taskNameSpan.rowspan = 0
}
}
}
map.put('instanceList', printList)
return map