-- 流程类型视图，可用于数据集成或流览按钮
if
exists (select * from sysobjects where name = 'workflow_type_info_view')
drop view workflow_type_info_view
    go
create view workflow_type_info_view as
select wb.id,
       wb.workflowname,
       wt.typename,
       wb.workflowdesc,
       (case when wb.version is null then 1 else wb.version end) version
from workflow_base wb
         RIGHT JOIN workflow_type wt on wb.workflowtype = wt.id go


-- 流程表单视图，用于流览按钮或数据集成，配置流程类型表可以用字段联动获取流程表表名
if exists (select * from sysobjects where name = 'workflow_table_view')
drop view workflow_table_view
    go
create view workflow_table_view as
select base.id,
       base.workflowname,
       base.formid,
       bill.tablename,
       (case when base.version is null then 1 else  base.version end) version
from workflow_bill bill
         join workflow_base base on base.formid = bill.id go

-- 流程明细表信息，可用流程主表查询对应的明细表信息，用于流览框
if exists (select * from sysobjects where name = 'workflow_detail_table_view')
drop view workflow_detail_table_view
    go
create view workflow_detail_table_view as
select (bill.id + '-' + base.id) id,
       bill.id                   bill_id,
       base.id                   workflow_id,
       base.workflowname,
       base.formid               main_formid,
       bill.tablename
from workflow_billdetailtable bill
         join workflow_base base on base.formid = bill.billid go

-- 流程和建模字段视图，更具流程和建模的billid可以查询流程和建模中的字段信息
if exists (select * from sysobjects where name = 'workflow_field_table_view')
drop view workflow_field_table_view
    go
create view workflow_field_table_view as
select wb.id,
       wb.fieldname,
       (ht.indexdesc + '：' + wb.fieldname) indexdesc,
       (
           case
               when wb.detailtable is null then (select distinct tablename from workflow_bill where id = wb.billid)
               when wb.detailtable = ''
                   then (select distinct tablename from workflow_bill where id = wb.billid)
               else wb.detailtable
               end
           )                               tablename,
       billid,
       (
           case
               when wb.detailtable = '' then 'main table'
               when wb.detailtable is null then 'main table'
               else wb.detailtable end
           )                               showtablename,
       (case
            when wb.fieldhtmltype = '1' then '单行文本框'
            when wb.FIELDHTMLTYPE = '2' then '多行文本框'
            when wb.FIELDHTMLTYPE = '3' then '流览框'
            when wb.FIELDHTMLTYPE = '4' then 'check框'
            when wb.FIELDHTMLTYPE = '5' then '选择框'
            else '附件上传' end)           fieldhtmltype
from workflow_billfield wb
         left join htmllabelindex ht on wb.fieldlabel = ht.id go

-- 建模表信息视图
if exists (select * from sysobjects where name = 'mode_bill_info_view')
drop view mode_bill_info_view
    go
create view mode_bill_info_view as
select bill.id, bill.tablename, hti.indexdesc
from workflow_bill bill
         left join htmllabelindex hti on hti.id = bill.namelabel
where bill.id < 0
  and bill.tablename like 'uf%' go

-- 流程节点信息视图
if exists (select * from sysobjects where name = 'workflow_node_info_view')
drop view workflow_node_info_view
    go
create view workflow_node_info_view as
select distinct nb.id,
                nb.nodename,
                (case when wb.version is null then 1 else wb.version end) version,
                fn.workflowid
from workflow_nodebase nb
         left join workflow_flownode fn on nb.id = fn.nodeid
         left join workflow_base wb on wb.id = fn.workflowid
    go
