loadDetail
@loadDetail($src, $fieldId, $strTableName, $key, $target, $other, $systemId)
#function loadDetail($src, $fieldId, $strTableName, $key, $target, $other, $systemId)
#if ($vs.util.isNull($other))
#set($other = $vs.util.newMap())
#end
#set($ids = @collectSet($src, $fieldId))
$where.put($key, $ids)
#set($list = $vs.util.newList())
#if ($vs.util.isString($systemId))
#set($list = @remoteList($strTableName, '*', $where))
#else
#set($list = $vs.dbTools.select($strTableName, $where))
#end
#set($group = @list2group($list, $key))
@listPut($src, $group, $fieldId, $target)
#foreach ($row in $src)
#if (!$vs.util.isList($row.get($target)))
$row.put($target, $vs.util.newList())
#end
#end
return $src
#end
#function collectSet($list, $fieldId)
#set($result = $vs.util.newList())
#if (!$vs.util.isList($list))
return $result
#end
#set($set = $vs.util.newList())
#foreach($row in $list)
#set($value = $row)
#if ($vs.util.isNotNull($fieldId))
#set($value = $row.get($fieldId))
#end
#if ($vs.util.isNotNull($value) and !$set.contains($value))
$result.add($value)
$set.add($value)
#end
#end
return $result
#end
#function remoteList($systemId, $strTableName, $strColumns, $where)
#set($strSql = `
select
${$strColumns}
from
${strTableName}
where 1 = 1
`)
#set($strSql = @andWhere($where))
return $vs.dbTools.remoteList($systemId, $strSql ,$where)
#end
#function list2group($list, $fieldId)
#set($group = $vs.util.newMap())
#if($vs.util.isBlankOne($list, $fieldId))
return $group
#end
#foreach($item in $list)
#set($fieldValue = $item.get($fieldId))
#set($list = $group.get($fieldValue))
#if (!$vs.util.isList($list))
#set($list = $vs.util.newList())
$group.put($fieldValue, $list)
#end
$list.add($item)
#end
return $group
#end
#function listPut($list, $dataMap, $keyFieldId, $dataFieldId)
#if ($vs.util.isBlankOne($list, $dataMap, $keyFieldId))
return $list
#end
#if ($vs.util.isNull($dataFieldId))
#set($dataFieldId = 'data')
#end
#foreach($item in $list)
#set($fieldValue = $item.get($keyFieldId))
#set($data = $dataMap.get($fieldValue))
$item.put($dataFieldId, $data)
#end
return $list
#end