<#ibiztemplate>
TARGET=PSSYSTEM
</#ibiztemplate>
# 系统概览 iBiz4j Spring R7 dev
<#if 1==2>
## 系统后台体系 iBiz4j Spring R7
<#if sys.getAllPSSysSFPubs()??>
  <#if srfemptylist(sys.getAllPSSysSFPubs())>
  <#else>
  <#list sys.getAllPSSysSFPubs() as pub>
* ${pub.getPSSFStyle().getName()}  
  </#list>
  </#if>
</#if>
## 系统模块
<#--  系统模块  -->
<#if sys.getAllPSSystemModules()??>
  <#if srfemptylist(sys.getAllPSSystemModules())>
   暂无系统模块
  <#else>
  <#list sys.getAllPSSystemModules() as module>
    <#if !module.isSubSysModule()>
### ${module.getName()}

| 实体编号    |    实体名称    |  实体类型     |  备注  |
| --------   |------------| -----   |  -------- | 
      <#if sys.getAllPSDataEntities()??>
        <#list sys.getAllPSDataEntities() as entity>
          <#if (!entity.getPSSystemModule().isSubSysModule() && (module.getId() == entity.getPSSystemModule().getId()) )>
|${entity.getName()}|${entity.getLogicName()}|${srfcodelist2("DEType",entity.getDEType())}|&nbsp;${entity.getMemo()}|
          </#if>
        </#list>
      </#if>
    </#if>
  </#list>
  </#if>
</#if>
<#--  实体信息  
## 实体信息
<#if sys.getAllPSDataEntities()??>
  <#list sys.getAllPSDataEntities() as entity>
### ${entity.getLogicName()}

| 属性名称        |    中文名称    | 类型     |  备注  |
| --------   |------------| -----   |  -------- | 
    <#if entity.getAllPSDEFields()??>
    <#list entity.getAllPSDEFields() as field>
|${field.getName()}|${field.getLogicName()}|${field.getDataType()}|&nbsp;${field.getMemo()}|
    </#list>
    </#if>
  </#list>
</#if>
-->
## 业务流程
<#if srfemptylist(sys.getAllPSWorkflows())>
   暂无业务流程
<#else>
<#list sys.getAllPSWorkflows() as workflow>
### ${workflow.getName()}
</#list>   
</#if>

## 外部系统接口
<#if srfemptylist(sys.getAllPSSubSysServiceAPIs())>
   暂无外部系统接口
<#else>
<#list sys.getAllPSSubSysServiceAPIs() as subapi>
* ${subapi.getName()}
</#list>   
</#if>

## 服务
<#if srfemptylist(sys.getAllPSSysServiceAPIs())>
   暂无服务
<#else>
<#list sys.getAllPSSysServiceAPIs() as api>
* ${api.getName()}
</#list>   
</#if>

## 系统应用
<#if sys.getAllPSApps()??>
<#if srfemptylist(sys.getAllPSApps())>
   暂无系统应用
<#else>
| 应用名称   |   应用类型     |  技术架构 | 技术模板 | 备注 |
| --------  | ------------ | -----------| -----------| -----------|
<#if sys.getAllPSApps()??>
<#list sys.getAllPSApps() as app>
| ${app.getName()}  | ${app.getPSPF().getPSAppType().getName()} | ${app.getPSPF().getName()}| ${app.getPSPFStyle().getName()}  | &nbsp;${app.getMemo()} |
</#list>
</#if>
</#if>
</#if>



<#--  数据库相关信息  -->
## 支持数据库
<#if sys.getAllPSSystemDBConfigs()??>
<#if srfemptylist(sys.getAllPSSystemDBConfigs())>
暂无数据库支持
<#else>
<#list sys.getAllPSSystemDBConfigs() as dbcfg>
### ${dbcfg.getName()}

<#--  表结构  -->
<#list sys.getAllPSDataEntities() as entity>
<#if !entity.getPSSystemModule().isSubSysModule()>
<#if entity.getPSDEDBConfig(dbcfg.getDBType())??>
<#assign dedbconfig=entity.getPSDEDBConfig(dbcfg.getDBType())>

#### **${entity.getLogicName()}** (${dedbconfig.getTableName()})

| 字段        |    中文名称    | 类型    |  长度  |  备注  |
| --------   |------------| :-----:   | :----: | :--------- | 
<#list dedbconfig.getAllPSDEFDTColumns() as decolumn>   
| ${decolumn.getColumnName()}        | ${decolumn.getPSDEField().getLogicName()}  | ${decolumn.getDBDataType()}      |   <#if decolumn.getLength() gt 0>${decolumn.getLength()}</#if>   | <#if decolumn.getPSDEField().isKeyDEField()>主键</#if>&nbsp;${decolumn.getMemo()} |
</#list>

<#if sys.getPSSysDMItems(dbcfg.getName()) ??>
<#list sys.getPSSysDMItems(dbcfg.getName()) as dmitem>
<#if (dmitem.getPSDEId() == entity.getId()) && (dmitem.getPSSystemDBCfgId()==dbcfg.id) && (dmitem.getDBObjType() == 'TABLE')>
<#if dmitem.getCreateSql()?? && dmitem.getCreateSql()?length gt 0>
表
```sql
${dmitem.getCreateSql()}
```
</#if>
</#if>
<#--  
<#if ((dmitem.getPSDEId() == entity.getId()) && dmitem.getPSSystemDBCfgId()==dbcfg.id) && (dmitem.getDBObjType() == 'VIEW')>
<#if dmitem.getCreateSql()?? && dmitem.getCreateSql()?length gt 0>
视图
```sql
${dmitem.getCreateSql()}
```
</#if>
</#if>
  -->
</#list>
</#if>

</#if>
</#if>
</#list>
<#--  表结构  -->
</#list>
</#if>
<#else>
暂无数据库支持
</#if>
<#--  数据字典  -->
## 数据字典

<#if sys.getAllPSCodeLists()??>
<#list sys.getAllPSCodeLists() as codelist>
<#if codelist.getPSCodeListTemplId()?default("")?trim?length gt 0>
<#else>
<#if codelist.getPSSystemModule()??>
<#if (!codelist.getPSSystemModule().isSubSysModule() && !codelist.isSubSysCodeList() && (codelist.getCodeListType() == 'STATIC') )>
## ${codelist.getName()}

| 数据项        |    数据值   |  备注  |
| --------   |------------| --------- | 
<#if codelist.getAllPSCodeItems()??>
<#list codelist.getAllPSCodeItems() as codeitem>
|${codeitem.getName()}|${codeitem.getValue()}|&nbsp;${codeitem.getMemo()}|
</#list>
</#if>
</#if>
</#if>
</#if>
</#list>
</#if>
</#if>