select_contract_status_info.lwm 2.36 KB
Newer Older
Spencer Chang's avatar
Spencer Chang committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
<?xml version="1.0" encoding="UTF-8"?>
<!--
    $Author: hty
    $Date: 2018/5/18 14:54
    $Revision: 1.0 
-->
<bm:model xmlns:bm="http://www.leaf-framework.org/schema/bm" needAccessControl="false">
    <bm:fields>
        <bm:field name="contract_status" databaseType="VARCHAR2" datatype="java.lang.String"/>
        <bm:field name="contract_status_value" databaseType="VARCHAR2" datatype="java.lang.String"/>

        <bm:field name="contract_count" databaseType="NUMBER" datatype="java.lang.Long"/>
        <bm:field name="contract_count_percent" databaseType="NUMBER" datatype="java.lang.Double"/>
        <bm:field name="overdue_count" databaseType="NUMBER" datatype="java.lang.Long"/>
        <bm:field name="contract_sum_count" databaseType="NUMBER" datatype="java.lang.Long"/>
        <bm:field name="current_month_append" databaseType="NUMBER" datatype="java.lang.Double"/>

    </bm:fields>
    <bm:operations>
        <bm:operation name="query">
            <bm:query-sql><![CDATA[
                select
                  c.contract_status                                as contract_status,
                  (select sc.code_value_name
                   from sys_code_values_v sc
                   where sc.code = 'CON500_CONTRACT_STATUS'
                         and sc.code_value = c.contract_status
                  )                                                as contract_status_value,
                  count(c.contract_id)                             as contract_count,
                  count(c.contract_id) / (select count(contract_id)
                                          from con_contract) * 100 as contract_count_percent,
                  sum(case c.overdue_status
                      when 'Y'
                        then 1
                      else 0 end)                                  as overdue_count,
                  (select count(contract_id)
                   from con_contract)                              as contract_sum_count,
                  (select count(contract_id)
                   from con_contract
                   where con_contract.creation_date > (sysdate - to_char(sysdate, 'dd') + 1)
                  )                                                as current_month_append
                from con_contract c

                group by c.contract_status
            ]]></bm:query-sql>
        </bm:operation>
    </bm:operations>
</bm:model>