zoukankan      html  css  js  c++  java
  • 海南医院帆软报表 最终版本SQL

    1. 挂号微信收入明细

    -- WANTED-1283 门诊查询统计报表-挂号微信收入明细
    select  
        p.name as patientName,                              -- 患者姓名
        p.birthday,                                         -- 出生日期
            bl.outpatient_number as blNumber,                    -- 病历号
        case p.sex     WHEN 1 THEN '' WHEN 2 THEN '' END as sex,    -- 性别                                    
        round((f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount,2) AS guaHaoMoney,
            h.type,
            h.pay_method,
            i.name as payMethod,
            h.flow_fee as weiXinMoney,                                    -- 微信到账
            h.charge as weiXinCharge,                           -- 微信手续
            h.pay_time as payTime,                             -- 缴费时间
        a.create_time,                                       -- 挂号时间
            a.dept_name,                                         -- 挂号科室名称
            a.appointment_doctor_name as doctorName,             -- 挂号医生
        (select t.docname from (
            SELECT u.id AS docid,u1.property_value AS docname
            FROM thc_warehouse.staff_record u
            LEFT JOIN thc_warehouse.staff_record_property u1 ON u1.property_code = 'SXX000083' AND u.id = u1.staff_record_id
        ) t where t.docid = a.creator) AS creater,
        CASE a.subsequent_visit 
            WHEN 0 THEN '初诊' 
            WHEN 1 THEN '复诊' 
            WHEN 2 THEN '转诊' 
            WHEN 3 THEN '急诊'
            WHEN 4 THEN '体检'
            WHEN 5 THEN '简易'
            WHEN 6 THEN '疫苗'
                    WHEN 7 THEN '团队体检'
        END AS isReVisit                            -- 初复诊
        from `thc_arrange`.`bpm_appointment` a
        inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
        inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
        inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
        inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
        inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
        inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
        inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
        
        INNER JOIN `thc_passport`.`patient` p on a.patient_id = p.id
        
        left join `thc_passport`.`patient_org` bl on a.patient_id = bl.patient_id
        left JOIN `thc_rcm`.`pay_payment` i on h.pay_method = i.value and g.clinicID = i.clinicid
    where 1=1 
     and a.del_flag = 0 
     and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     and e.itemClass = 1 and e.returnFlag is NULL
     and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     and h.type = 1 and h.pay_method = 4 -- 微信支付
    ${if(len(creator) == 0,"","and a.creator = '" + creator + "'")}
    ${if(len(dept) == 0,"","and a.dept_id = '" + dept + "'")}
    ${if(len(startTime) == 0,"","and h.pay_time >= '" + startTime + "'")}
    ${if(len(endTime) == 0,"","and h.pay_time <= '" + endTime + "'")}
    
    ORDER BY g.createtime desc,a.create_time desc

    2.挂号患者信息查询

    -- -----------------------
    -- 患者信息查询
    -- -----------------------
    select DISTINCT
        CASE a.appointment_state WHEN -1 THEN '' ELSE '' END AS returnFlag,     -- 退号标志
        CASE a.is_appoint_resource WHEN 0 THEN '' WHEN 1 THEN '' END as isAppointResource,        -- 指定标志
        a.create_time as guaHaoTime,                   -- 挂号时间
        p.create_time as createDocTime,                -- 建档时间
            -- 挂号实收金额
            round((f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount,2) AS realFee,        
            round(t1.realFee,2) as menZenRealMoney,              -- 门诊实收金额
        j.outpatient_number as blNumber,                             -- 病历号
        p.name as patientName,                         -- 患者姓名
        a.dept_name,                                      -- 科室名称
        a.appointment_doctor_name as doctorName,       -- 医生
        CASE a.subsequent_visit                                              -- 初复诊
            WHEN 0 THEN '初诊' 
            WHEN 1 THEN '复诊' 
            WHEN 2 THEN '转诊' 
            WHEN 3 THEN '急诊' 
            WHEN 4 THEN '体检'
            WHEN 5 THEN '简易'
            WHEN 6 THEN '疫苗'
                    WHEN 7 THEN '团队体检'
        END AS isReVisit,                            -- 初复诊
        channel.name as sourceName,                  -- 信息(渠道)来源
        p.birthday,                                  -- 出生日期
       if(i.id_no is null, if(i.other_type is null, null,
            (select e.name from  `thc_warehouse`.`sys_type_info` e 
             JOIN `thc_warehouse`.`sys_type` f ON e.sys_type_id = f.id
             WHERE f.`code` = 'THC_WH_PERSON_CARD' and e.value = i.other_type)
            ), '身份证') as cardType,                            -- 证件类型
        if(i.id_no is null,i.other_no,i.id_no) as cardNo,        -- 证件号码
     CONCAT(t2.province,t2.city,t2.county,t2.addressDetail) as liveAddr, -- 住址
     CONCAT(t2.province2,t2.city2,t2.county2,t2.addressDetail2)    as bornAddr, -- 户籍
    if(locate('',t2.county2) > 0,t2.county2,'') as qu,    --
    a.patient_phone,
    (select t.docname from (
            SELECT u.id AS docid,u1.property_value AS docname
            FROM thc_warehouse.staff_record u
            LEFT JOIN thc_warehouse.staff_record_property u1 ON u1.property_code = 'SXX000083' AND u.id = u1.staff_record_id
        ) t where t.docid = a.creator) AS creater,
    -- a.appointment_starttime, 
            CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime, -- 预约时间
    -- CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
        a.referrer_dept_name,      -- 爱院科室
            a.referrer_name,        -- 爱院人
        a.description    -- 备注
    FROM `thc_arrange`.`bpm_appointment` a
    INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    INNER JOIN `thc_passport`.`patient` p on a.patient_id = p.id
    INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    LEFT JOIN `thc_c_union`.`member_channel` channel on a.channel_id = channel.id
    LEFT JOIN `thc_passport`.`contact` i on a.patient_id = i.patient_id
    LEFT JOIN `thc_passport`.`patient_org` j on a.patient_id = j.patient_id
    
    
    
    left join 
    (
            select 
              aa.id,
            round((ff.preFee - ff.discountFee - ff.promotionBenefitFee - ff.couponFee - ff.itemBenefitFee     - ff.memberCardBenefitFee - ff.itemComInvBenefitFee) * ff.discount,2) AS realFee
            from `thc_arrange`.`bpm_appointment` aa
            inner join `thc_sob`.`bpm_service_order` bb on aa.orderId = bb.id
            inner join `thc_sob`.`bpm_service_order_item` cc on cc.service_order_id =  bb.id and cc.id = aa.`order_item_id`
            inner join `thc_rcm`.`Cs_AccountBill` dd on dd.orderID = bb.id and dd.`isDelete` = 0 and dd.orderSource = 1 and dd.orderType = 3 and dd.returnFlag = 0
            inner join `thc_rcm`.`Cs_AccountBillDetail` ee on dd.id = ee.AccountBillId and ee.itemClass = 1 and ee.returnFlag is NULL
            inner join `thc_rcm`.`Cs_SettlementDetail` ff on ff.accountBillID = dd.id and ff.accountBillDetailID = ee.id
            inner join `thc_rcm`.`Cs_Settlement` gg on gg.id = ff.settlementID  and gg.`isDelete` = 0  and gg.returnFlag = 0 
                                                                             and gg.settlementType=1     -- 门诊收费
            where 1=1 and aa.del_flag = 0
    ) t1 on a.id = t1.id
    
    
    
    
    left join 
    (
            select 
              aa.id,
    -- 住址
    (select city.name from `thc_passport`.`city` where city.id = 
     (if(p.address is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.address,'$.province')))))  as province,
    (select city.name from `thc_passport`.`city` where city.id = 
     (if(p.address is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.address,'$.city')))))  as city,
    (select city.name from `thc_passport`.`city` where city.id = 
     (if(p.address is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.address,'$.county')))))  as county,
    
     if(p.address is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.address,'$.addressDetail')))  as addressDetail,
    
    -- 户籍
    (select city.name from `thc_passport`.`city` where city.id = 
    
     (if(p.household is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.household,'$.province')))))  as province2,
    (select city.name from `thc_passport`.`city` where city.id = 
     (if(p.household is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.household,'$.city')))))  as city2,
    (select city.name from `thc_passport`.`city` where city.id = 
     (if(p.household is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.household,'$.county')))))  as county2,
     if(p.household is null,null, TRIM(BOTH '"' FROM JSON_EXTRACT(p.household,'$.addressDetail')))  as addressDetail2,
            round((ff.preFee - ff.discountFee - ff.promotionBenefitFee - ff.couponFee - ff.itemBenefitFee     - ff.memberCardBenefitFee - ff.itemComInvBenefitFee) * ff.discount,2) AS realFee
            from `thc_arrange`.`bpm_appointment` aa
            inner join `thc_sob`.`bpm_service_order` bb on aa.orderId = bb.id
            inner join `thc_sob`.`bpm_service_order_item` cc on cc.service_order_id =  bb.id and cc.id = aa.`order_item_id`
            inner join `thc_rcm`.`Cs_AccountBill` dd on dd.orderID = bb.id and dd.`isDelete` = 0 and dd.orderSource = 1 and dd.orderType = 3 and dd.returnFlag = 0
            inner join `thc_rcm`.`Cs_AccountBillDetail` ee on dd.id = ee.AccountBillId and ee.itemClass = 1 and ee.returnFlag is NULL
            inner join `thc_rcm`.`Cs_SettlementDetail` ff on ff.accountBillID = dd.id and ff.accountBillDetailID = ee.id
            inner join `thc_rcm`.`Cs_Settlement` gg on gg.id = ff.settlementID  and gg.`isDelete` = 0  and gg.returnFlag = 0 -- 门诊挂号
                                                                             and gg.settlementType=2 -- 非挂号消费类型
            inner join `thc_passport`.`patient` p on aa.patient_id = p.id
            where 1=1 and aa.del_flag = 0
    
    ) t2 on a.id = t2.id
    
    WHERE 1=1
        AND a.del_flag = 0
        AND d.isDelete = 0
        AND d.orderSource = 1
        AND d.orderType = 3
        AND d.returnFlag = 0
        AND e.itemClass = 1
        AND e.returnFlag is NULL
        AND g.settlementType=2
        AND g.isDelete = 0
        AND g.returnFlag = 0 -- 门诊挂号
    
    ${if(len(startTime) == 0,"","AND a.create_time     >= '" + startTime + "'")}
    ${if(len(endTime) == 0,"","AND a.create_time     <= '" + endTime + "'")}
    -- 爱院标志
    ${if(loveYuan == 0,"and a.appointment_state is null","")}
    ${if(loveYuan == 1,"and a.appointment_state is not null","")}
    
    ${if(len(deptId) == 0,"","AND a.dept_id = '" + deptId + "'")}    -- 部门
    ${if(len(doctor) == 0,"","AND a.appointment_doctor_id = '" + doctor + "'")}    -- 医生
    ${if(len(channelId) == 0,"","AND a.channel_id = '" + channelId + "'")}    -- 信息来源
    ${if(len(patientName) == 0,"","AND p.name like '%" + patientName + "%'")}    -- 姓名
    ${if(len(blNumber) == 0,"","AND j.outpatient_number like '%" + blNumber + "%'")}    -- 病历号
    ${if(len(phone) == 0,"","AND a.patient_phone like '%" + phone + "%'")}    -- 电话号
    ${if(len(subVisit) == 0,"","AND a.subsequent_visit = '" + subVisit + "'")}    -- 初复诊
    ${if(len(doctor) == 0,"","and a.appointment_doctor_id = '" + doctor + "'")}    -- 接诊员
    ${if(isReturn == -1,"and a.appointment_state = -1","")}    -- 退号标志
    ${if(isReturn == 0,"and a.appointment_state != -1","")}    -- 退号标志

     3.挂号按来源统计

    select 
        channel.name as name, 
        DATE_FORMAT(a.appointment_date,${if(dateType == 1,"'%Y-%m'","'%Y-%m-%d'")}) as date,     -- 按日期还是月份展示
        IFNULL(count(1),0) as num
    from `thc_arrange`.`bpm_appointment` a
    inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
    inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    left join `thc_c_union`.`member_channel` channel on a.channel_id = channel.id
    where 1=1 
     and a.del_flag = 0 
     and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     and e.itemClass = 1 and e.returnFlag is NULL
     and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     and g.id in (
        SELECT DISTINCT g.id
        from `thc_arrange`.`bpm_appointment` a
        inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
        inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
        inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
        inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
        inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
        inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
      inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
        where 1=1 
         and a.del_flag = 0 
         and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
         and e.itemClass = 1 and e.returnFlag is NULL
         and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
       and h.type = 1 and h.pay_state = 1
    )
    
     and DATE_FORMAT(a.appointment_date,'%Y-%m-%d') >= DATE_FORMAT(${if(len(startTime) == 0, "'0000-01-01'" , "'" + startTime + "'" )},'%Y-%m-%d') 
     and DATE_FORMAT(a.appointment_date,'%Y-%m-%d') <= DATE_FORMAT(${if(len(endTime) == 0,"'9999-01-01'","'" + endTime + "'")},'%Y-%m-%d')
    ${if(len(subVisit) == 0,"","and a.subsequent_visit = '" + subVisit + "'")}
    -- and channel.name is not null
    group by  date_format(a.appointment_date, ${if(dateType == 1,"'%Y-%m'","'%Y-%m-%d'")}), channel.name     -- 按日期还是月份分组查询
    order by a.appointment_date DESC, data_source asc

     3.1有交易流水的条件

        AND g.id IN (
            SELECT DISTINCT g.id 
            FROM `thc_arrange`.`bpm_appointment` a
            INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
            INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
            INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
            INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
            INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
            INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
            INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
            WHERE 1=1
                AND a.del_flag = 0 
                AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
                AND e.itemClass = 1 AND e.returnFlag is NULL
                AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
                AND h.type = 1 
    )

    4.挂号按医生统计

      1 select 
      2     t0.deptName, 
      3     t0.doctorName,
      4     t0.deptId,
      5     t0.doctorId,
      6 t0.startTime,
      7 t0.endTime,
      8     IFNULL(t0.num,0) as num0,
      9     IFNULL(t1.num,0) as num1,
     10     IFNULL(t2.num,0) as num2,
     11     IFNULL(t3.num,0) as num3,
     12     IFNULL(t4.num,0) as num4,
     13     IFNULL(t5.num,0) as num5,
     14     IFNULL(t6.num,0) as num6,
     15     IFNULL(t7.num,0) as num7,
     16     IFNULL(t8.num,0) as num8,
     17     IFNULL(t9.num,0) as num9,
     18     IFNULL(t10.num,0) as num10,
     19     IFNULL(t11.num,0) as num11,
     20         IFNULL(t12.num,0) as num12,
     21         IFNULL(t13.num,0) as num13,
     22     IFNULL(t14.num,0) as num14
     23 from 
     24 -- ------------
     25 -- 总挂号数
     26 -- ------------
     27 (
     28     select t.startTime, t.endTime, count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
     29     (
     30         select
     31             a.data_source,
     32             a.is_appoint_resource,
     33             a.subsequent_visit,
     34             a.appointment_state,
     35             a.dept_id as deptId,
     36           a.appointment_doctor_id as doctorId,
     37             a.dept_name as deptName,
     38             a.create_time,
     39             a.appointment_doctor_name as doctorName, 
     40             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     41             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     42             f.preFee,                     -- 原价
     43             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     44             f.discount
     45         from `thc_arrange`.`bpm_appointment` a 
     46 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     47 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
     48 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     49 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     50 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     51 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     52       where  a.del_flag = 0
     53           AND g.id IN (
     54         SELECT DISTINCT g.id 
     55         FROM `thc_arrange`.`bpm_appointment` a
     56         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     57         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
     58         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     59         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     60         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
     61         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     62         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     63         WHERE 1=1
     64             AND a.del_flag = 0 
     65             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
     66             AND e.itemClass = 1 AND e.returnFlag is NULL
     67             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
     68             AND h.type = 1 and h.pay_state = 1 -- 支付成功
     69 )
     70         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     71         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     72     ) t
     73     where 1=1
     74     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     75     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     76     group by t.deptId,t.doctorId
     77 ) t0
     78 
     79 -- ------------
     80 -- 退号
     81 -- ------------
     82 left join 
     83 (
     84     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
     85     ( 
     86         select 
     87             a.data_source,
     88             a.is_appoint_resource,
     89             a.subsequent_visit,
     90             a.dept_id as deptId,
     91             a.appointment_doctor_id as doctorId,
     92             a.appointment_state,
     93             a.dept_name as deptName,
     94             a.create_time,
     95             a.appointment_doctor_name as doctorName, 
     96             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     97             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     98             f.preFee,                     -- 原价
     99             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    100             f.discount
    101         from `thc_arrange`.`bpm_appointment` a 
    102 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    103 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    104 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    105 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    106 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    107 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    108         where 1=1 and a.del_flag = 0
    109         AND g.id IN (
    110         SELECT DISTINCT g.id 
    111         FROM `thc_arrange`.`bpm_appointment` a
    112         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    113         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    114         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    115         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    116         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    117         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    118         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    119         WHERE 1=1
    120             AND a.del_flag = 0 
    121             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    122             AND e.itemClass = 1 AND e.returnFlag is NULL
    123             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    124             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    125 )
    126  and a.appointment_state = -1
    127         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    128         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    129     ) t
    130     where 1=1
    131     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    132     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    133     group by t.deptId,t.doctorId
    134 ) t1
    135 on t0.deptId = t1.deptId and t0.doctorId = t1.doctorId
    136 
    137 -- ------------
    138 -- 实际挂号数   =    初诊数 + 复诊数 + 转诊数
    139 -- ------------
    140 left join 
    141 (
    142     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    143     ( 
    144         select 
    145             a.data_source,
    146             a.is_appoint_resource,
    147             a.subsequent_visit,
    148             a.dept_id as deptId,
    149             a.appointment_doctor_id as doctorId,
    150             a.appointment_state,
    151             a.dept_name as deptName,
    152             a.create_time,
    153             a.appointment_doctor_name as doctorName, 
    154             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    155             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    156             f.preFee,                     -- 原价
    157             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    158             f.discount
    159         from `thc_arrange`.`bpm_appointment` a
    160         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    161         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    162         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    163         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    164         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    165         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    166         where a.del_flag = 0 and a.subsequent_visit in (0,1,2)
    167         AND g.id IN (
    168         SELECT DISTINCT g.id 
    169         FROM `thc_arrange`.`bpm_appointment` a
    170         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    171         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    172         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    173         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    174         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    175         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    176         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    177         WHERE 1=1
    178             AND a.del_flag = 0 
    179             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    180             AND e.itemClass = 1 AND e.returnFlag is NULL
    181             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    182             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    183 )
    184         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    185         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    186     ) t 
    187     where 1=1
    188     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    189     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    190     group by t.deptId,t.doctorId
    191 ) t2
    192 on t0.deptId = t2.deptId and t0.doctorId = t2.doctorId
    193 
    194 -- ------------
    195 -- 指定
    196 -- ------------    
    197 left join 
    198 (
    199     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    200     ( 
    201         select 
    202             a.data_source,
    203             a.is_appoint_resource,
    204             a.subsequent_visit,
    205             a.dept_id as deptId,
    206             a.appointment_doctor_id as doctorId,
    207             a.appointment_state,
    208             a.dept_name as deptName,
    209             a.create_time,
    210             a.appointment_doctor_name as doctorName, 
    211             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    212             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    213             f.preFee,                     -- 原价
    214             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    215             f.discount
    216         from `thc_arrange`.`bpm_appointment` a
    217         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    218         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    219         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    220         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    221         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    222         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    223         where a.del_flag = 0 and a.is_appoint_resource = 1
    224         AND g.id IN (
    225         SELECT DISTINCT g.id 
    226         FROM `thc_arrange`.`bpm_appointment` a
    227         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    228         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    229         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    230         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    231         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    232         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    233         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    234         WHERE 1=1
    235             AND a.del_flag = 0 
    236             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    237             AND e.itemClass = 1 AND e.returnFlag is NULL
    238             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    239             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    240 )
    241         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    242         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    243     ) t 
    244     where 1=1
    245     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    246     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    247     group by t.deptId,t.doctorId
    248 ) t3
    249 on t0.deptId = t3.deptId and t0.doctorId = t3.doctorId
    250 
    251 
    252 -- ------------
    253 -- 初诊
    254 -- ------------
    255 left join 
    256 (
    257     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    258     ( 
    259         select 
    260             a.data_source,
    261             a.is_appoint_resource,
    262             a.subsequent_visit,
    263             a.dept_id as deptId,
    264             a.appointment_doctor_id as doctorId,
    265             a.appointment_state,
    266             a.dept_name as deptName,
    267             a.create_time,
    268             a.appointment_doctor_name as doctorName, 
    269             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    270             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    271             f.preFee,                     -- 原价
    272             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    273             f.discount
    274         from `thc_arrange`.`bpm_appointment` a
    275         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    276         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    277         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    278         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    279         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    280         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    281         where a.del_flag = 0 and a.subsequent_visit = 0
    282         AND g.id IN (
    283         SELECT DISTINCT g.id 
    284         FROM `thc_arrange`.`bpm_appointment` a
    285         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    286         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    287         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    288         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    289         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    290         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    291         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    292         WHERE 1=1
    293             AND a.del_flag = 0 
    294             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    295             AND e.itemClass = 1 AND e.returnFlag is NULL
    296             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    297             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    298 )
    299         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    300         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    301     ) t 
    302     where 1=1
    303     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    304     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    305     group by t.deptId,t.doctorId
    306 ) t4
    307 on t0.deptId = t4.deptId and t0.doctorId = t4.doctorId
    308 
    309 -- ------------
    310 -- 复诊
    311 -- ------------
    312 left join 
    313 (
    314     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    315     ( 
    316         select 
    317             a.data_source,
    318             a.is_appoint_resource,
    319             a.subsequent_visit,
    320             a.dept_id as deptId,
    321             a.appointment_doctor_id as doctorId,
    322             a.appointment_state,
    323             a.dept_name as deptName,
    324             a.create_time,
    325             a.appointment_doctor_name as doctorName, 
    326             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    327             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    328             f.preFee,                     -- 原价
    329             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    330             f.discount
    331         from `thc_arrange`.`bpm_appointment` a
    332         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    333         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    334         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    335         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    336         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    337         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    338         where a.del_flag = 0 and a.subsequent_visit = 1
    339         AND g.id IN (
    340         SELECT DISTINCT g.id 
    341         FROM `thc_arrange`.`bpm_appointment` a
    342         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    343         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    344         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    345         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    346         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    347         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    348         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    349         WHERE 1=1
    350             AND a.del_flag = 0 
    351             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    352             AND e.itemClass = 1 AND e.returnFlag is NULL
    353             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    354             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    355 )
    356         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    357         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    358     ) t 
    359     where 1=1
    360     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    361     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    362     group by t.deptId,t.doctorId
    363 ) t5
    364 on t0.deptId = t5.deptId and t0.doctorId = t5.doctorId
    365 
    366 
    367 
    368 -- ------------
    369 -- 体检
    370 -- ------------
    371 left join 
    372 (
    373     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    374     ( 
    375         select 
    376             a.data_source,
    377             a.is_appoint_resource,
    378             a.subsequent_visit,
    379             a.dept_id as deptId,
    380             a.appointment_doctor_id as doctorId,
    381             a.appointment_state,
    382             a.dept_name as deptName,
    383             a.create_time,
    384             a.appointment_doctor_name as doctorName, 
    385             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    386             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    387             f.preFee,                     -- 原价
    388             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    389             f.discount
    390         from `thc_arrange`.`bpm_appointment` a
    391         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    392         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    393         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    394         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    395         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    396         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    397         where a.del_flag = 0 and a.subsequent_visit = 4
    398         AND g.id IN (
    399         SELECT DISTINCT g.id 
    400         FROM `thc_arrange`.`bpm_appointment` a
    401         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    402         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    403         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    404         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    405         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    406         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    407         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    408         WHERE 1=1
    409             AND a.del_flag = 0 
    410             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    411             AND e.itemClass = 1 AND e.returnFlag is NULL
    412             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    413             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    414 )
    415         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    416         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    417     ) t 
    418     where 1=1
    419     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    420     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    421     group by t.deptId,t.doctorId
    422 ) t6
    423 on t0.deptId = t6.deptId and t0.doctorId = t6.doctorId
    424 
    425 -- ------------
    426 -- 团队
    427 -- ------------
    428 left join 
    429 (
    430     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    431     ( 
    432         select 
    433             a.data_source,
    434             a.is_appoint_resource,
    435             a.subsequent_visit,
    436             a.dept_id as deptId,
    437           a.appointment_doctor_id as doctorId,
    438             a.appointment_state,
    439             a.dept_name as deptName,
    440             a.create_time,
    441             a.appointment_doctor_name as doctorName, 
    442             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    443             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    444             f.preFee,                     -- 原价
    445             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    446             f.discount
    447         from `thc_arrange`.`bpm_appointment` a
    448         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    449         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    450         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    451         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    452         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    453         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    454         where a.del_flag = 0 and a.subsequent_visit = 7
    455         AND g.id IN (
    456         SELECT DISTINCT g.id 
    457         FROM `thc_arrange`.`bpm_appointment` a
    458         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    459         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    460         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    461         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    462         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    463         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    464         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    465         WHERE 1=1
    466             AND a.del_flag = 0 
    467             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    468             AND e.itemClass = 1 AND e.returnFlag is NULL
    469             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    470             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    471 )
    472         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    473         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    474     ) t 
    475     where 1=1
    476     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    477     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    478     group by t.deptId,t.doctorId
    479 ) t7
    480 on t0.deptId = t7.deptId and t0.doctorId = t7.doctorId
    481 
    482 
    483 -- ------------
    484 -- 简易 
    485 -- ------------
    486 left join 
    487 (
    488     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    489     ( 
    490         select 
    491             a.data_source,
    492             a.is_appoint_resource,
    493             a.subsequent_visit,
    494             a.dept_id as deptId,
    495             a.appointment_doctor_id as doctorId,
    496             a.appointment_state,
    497             a.dept_name as deptName,
    498             a.create_time,
    499             a.appointment_doctor_name as doctorName, 
    500             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    501             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    502             f.preFee,                     -- 原价
    503             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    504             f.discount
    505         from `thc_arrange`.`bpm_appointment` a
    506         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    507         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    508         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    509         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    510         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    511         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    512         where a.del_flag = 0 and a.subsequent_visit = 5
    513         AND g.id IN (
    514         SELECT DISTINCT g.id 
    515         FROM `thc_arrange`.`bpm_appointment` a
    516         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    517         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    518         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    519         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    520         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    521         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    522         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    523         WHERE 1=1
    524             AND a.del_flag = 0 
    525             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    526             AND e.itemClass = 1 AND e.returnFlag is NULL
    527             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    528             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    529 )
    530         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    531         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    532     ) t 
    533     where 1=1
    534     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    535     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    536     group by t.deptId,t.doctorId
    537 ) t8
    538 on t0.deptId = t8.deptId and t0.doctorId = t8.doctorId
    539 
    540 
    541 
    542 -- ------------
    543 -- 转诊
    544 -- ------------
    545 left join 
    546 (
    547     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    548     ( 
    549         select 
    550             a.data_source,
    551             a.is_appoint_resource,
    552             a.subsequent_visit,
    553             a.dept_id as deptId,
    554             a.appointment_doctor_id as doctorId,
    555             a.appointment_state,
    556             a.dept_name as deptName,
    557             a.create_time,
    558             a.appointment_doctor_name as doctorName, 
    559             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    560             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    561             f.preFee,                     -- 原价
    562             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    563             f.discount
    564         from `thc_arrange`.`bpm_appointment` a
    565         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    566         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    567         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    568         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    569         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    570         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    571         where a.del_flag = 0 and a.subsequent_visit = 2
    572         AND g.id IN (
    573         SELECT DISTINCT g.id 
    574         FROM `thc_arrange`.`bpm_appointment` a
    575         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    576         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    577         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    578         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    579         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    580         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    581         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    582         WHERE 1=1
    583             AND a.del_flag = 0 
    584             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    585             AND e.itemClass = 1 AND e.returnFlag is NULL
    586             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    587             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    588 )
    589         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    590         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    591     ) t 
    592     where 1=1
    593     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    594     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    595     group by t.deptId,t.doctorId
    596 ) t9
    597 on t0.deptId = t9.deptId and t0.doctorId = t9.doctorId
    598 
    599 -- ------------
    600 -- 疫苗
    601 -- ------------
    602 left join 
    603 (
    604     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    605     ( 
    606         select 
    607             a.data_source,
    608             a.is_appoint_resource,
    609             a.subsequent_visit,
    610             a.dept_id as deptId,
    611             a.appointment_doctor_id as doctorId,
    612             a.appointment_state,
    613             a.dept_name as deptName,
    614             a.create_time,
    615             a.appointment_doctor_name as doctorName, 
    616             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    617             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    618             f.preFee,                     -- 原价
    619             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    620             f.discount
    621         from `thc_arrange`.`bpm_appointment` a
    622         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    623         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    624         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    625         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    626         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    627         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    628         where a.del_flag = 0 and a.subsequent_visit = 2
    629         AND g.id IN (
    630         SELECT DISTINCT g.id 
    631         FROM `thc_arrange`.`bpm_appointment` a
    632         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    633         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    634         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    635         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    636         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    637         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    638         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    639         WHERE 1=1
    640             AND a.del_flag = 0 
    641             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    642             AND e.itemClass = 1 AND e.returnFlag is NULL
    643             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    644             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    645 )
    646         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    647         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    648     ) t 
    649     where 1=1
    650     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    651     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    652     group by t.deptId,t.doctorId
    653 ) t10
    654 on t0.deptId = t10.deptId and t0.doctorId = t10.doctorId
    655 
    656 -- ------------
    657 -- 微信数
    658 -- ------------
    659 left join 
    660 (
    661     select count(1) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    662     ( 
    663         select 
    664             a.data_source,
    665             a.is_appoint_resource,
    666             a.subsequent_visit,
    667             a.dept_id as deptId,
    668             a.appointment_doctor_id as doctorId,
    669             a.appointment_state,
    670             a.dept_name as deptName,
    671             a.create_time,
    672             a.appointment_doctor_name as doctorName, 
    673             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    674             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    675             f.preFee,                     -- 原价
    676             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    677             f.discount
    678         from `thc_arrange`.`bpm_appointment` a
    679         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    680         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    681         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    682         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    683         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    684         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    685         where a.del_flag = 0 and a.data_source = 2
    686         AND g.id IN (
    687         SELECT DISTINCT g.id 
    688         FROM `thc_arrange`.`bpm_appointment` a
    689         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    690         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    691         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    692         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    693         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    694         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    695         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    696         WHERE 1=1
    697             AND a.del_flag = 0 
    698             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    699             AND e.itemClass = 1 AND e.returnFlag is NULL
    700             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    701             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    702 )
    703         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    704         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    705     ) t
    706     where 1=1
    707     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    708     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    709     group by t.deptId,t.doctorId
    710 ) t11
    711 on t0.deptId = t11.deptId and t0.doctorId = t11.doctorId
    712 
    713 
    714 -- ------------
    715 -- 微信金额
    716 -- ------------
    717 left join 
    718 (
    719     select round(sum(t.preFee),2) as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    720     ( 
    721         select 
    722             a.data_source,
    723             a.is_appoint_resource,
    724             a.subsequent_visit,
    725             a.dept_id as deptId,
    726             a.appointment_doctor_id as doctorId,
    727             a.appointment_state,
    728             a.dept_name as deptName,
    729             a.create_time,
    730             a.appointment_doctor_name as doctorName, 
    731             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    732             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    733             f.preFee,                     -- 原价
    734             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    735             f.discount
    736         from `thc_arrange`.`bpm_appointment` a
    737         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    738         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    739         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    740         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    741         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    742         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    743         where a.del_flag = 0 and a.data_source = 2
    744         AND g.id IN (
    745         SELECT DISTINCT g.id 
    746         FROM `thc_arrange`.`bpm_appointment` a
    747         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    748         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    749         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    750         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    751         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    752         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    753         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    754         WHERE 1=1
    755             AND a.del_flag = 0 
    756             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    757             AND e.itemClass = 1 AND e.returnFlag is NULL
    758             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    759             AND h.type = 1 and h.pay_state = 1 AND h.pay_method = 4 -- 微信支付成功
    760 )
    761         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    762         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    763     ) t 
    764     where 1=1
    765     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    766     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    767     group by t.deptId,t.doctorId
    768 ) t12
    769 on t0.deptId = t12.deptId and t0.doctorId = t12.doctorId
    770 
    771 
    772 -- ------------
    773 -- 应收金额 t12
    774 -- ------------
    775 left join 
    776 (
    777     select round(sum(t.preFee),2)  as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    778     ( 
    779         select 
    780             a.data_source,
    781             a.is_appoint_resource,
    782             a.subsequent_visit,
    783             a.dept_id as deptId,
    784             a.appointment_doctor_id as doctorId,
    785             a.appointment_state,
    786             a.dept_name as deptName,
    787             a.create_time,
    788             a.appointment_doctor_name as doctorName, 
    789             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    790             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    791             f.preFee,                     -- 原价
    792             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    793             f.discount
    794         from `thc_arrange`.`bpm_appointment` a
    795         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    796         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    797         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    798         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    799         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    800         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    801         where  a.del_flag = 0
    802         AND g.id IN (
    803         SELECT DISTINCT g.id 
    804         FROM `thc_arrange`.`bpm_appointment` a
    805         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    806         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    807         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    808         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    809         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    810         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    811         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    812         WHERE 1=1
    813             AND a.del_flag = 0 
    814             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    815             AND e.itemClass = 1 AND e.returnFlag is NULL
    816             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    817             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    818 )
    819         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    820         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    821     ) t 
    822     where 1=1
    823     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    824     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    825     group by t.deptId,t.doctorId
    826 ) t13
    827 on t0.deptId = t13.deptId and t0.doctorId = t13.doctorId
    828 
    829 
    830 
    831 
    832 
    833 -- ------------
    834 -- 实收金额 t13
    835 -- ------------
    836 left join 
    837 (
    838     select round(sum(t.realFee),2)  as num,t.deptId, doctorId,t.deptName,t.create_time,t.doctorName from
    839     ( 
    840         select 
    841             a.data_source,
    842             a.is_appoint_resource,
    843             a.subsequent_visit,
    844             a.dept_id as deptId,
    845           a.appointment_doctor_id as doctorId,
    846             a.appointment_state,
    847             a.dept_name as deptName,
    848             a.create_time,
    849             a.appointment_doctor_name as doctorName, 
    850             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    851             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    852             f.preFee,    
    853         (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    854             f.discount
    855         from `thc_arrange`.`bpm_appointment` a
    856         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    857         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    858         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    859         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    860         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    861         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    862         where  a.del_flag = 0
    863         AND g.id IN (
    864         SELECT DISTINCT g.id 
    865         FROM `thc_arrange`.`bpm_appointment` a
    866         INNER JOIN `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    867         INNER JOIN `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id AND c.id = a.order_item_id
    868         INNER JOIN `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    869         INNER JOIN `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    870         INNER JOIN `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id AND f.accountBillDetailID = e.id
    871         INNER JOIN `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    872         INNER JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    873         WHERE 1=1
    874             AND a.del_flag = 0 
    875             AND d.isDelete = 0 AND d.orderSource = 1 AND d.orderType = 3 AND d.returnFlag = 0
    876             AND e.itemClass = 1 AND e.returnFlag is NULL
    877             AND g.settlementType=2 AND g.`isDelete` = 0  AND g.returnFlag = 0 -- 门诊挂号
    878             AND h.type = 1 and h.pay_state = 1 -- 支付成功
    879 )
    880         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    881         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    882     ) t 
    883     where 1=1
    884     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    885     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    886     group by t.deptId,t.doctorId
    887 ) t14
    888 on t0.deptId = t14.deptId and t0.doctorId = t14.doctorId
    889 
    890 
    891 order by t0.startTime asc
    View Code

    5.挂号按科室统计

       1 select 
       2     t0.deptName, 
       3     t0.deptId,
       4 t0.startTime,
       5 t0.endTime,
       6     IFNULL(t0.num,0) as num0,
       7     IFNULL(t1.num,0) as num1,
       8   IFNULL(t2.num,0) as num2,
       9     IFNULL(t4.num,0) as num4,
      10     IFNULL(t5.num,0) as num5,
      11     IFNULL(t6.num,0) as num6,
      12     IFNULL(t7.num,0) as num7,
      13     IFNULL(t8.num,0) as num8,
      14     IFNULL(t9.num,0) as num9,
      15     IFNULL(t10.num,0) as num10,
      16     IFNULL(t11.num,0) as num11,
      17         IFNULL(t13.num,0) as num13,
      18     IFNULL(t14.num,0) as num14,
      19         IFNULL(t15.num,0) as num15,
      20     IFNULL(t16.num,0) as num16,
      21         IFNULL(t17.num,0) as num17,
      22     IFNULL(t18.num,0) as num18,
      23         IFNULL(t19.num,0) as num19,
      24     IFNULL(t20.num,0) as num20,
      25         IFNULL(t21.num,0) as num21,
      26     IFNULL(t22.num,0) as num22
      27 from 
      28 -- ------------
      29 -- 总挂号数
      30 -- ------------
      31 (
      32     select t.startTime, t.endTime, count(1) as num,t.deptId, t.deptName,t.create_time from
      33     (
      34         select
      35             a.data_source,
      36             a.is_appoint_resource,
      37             a.subsequent_visit,
      38             a.appointment_state,
      39             a.dept_id as deptId,
      40           
      41             a.dept_name as deptName,
      42             a.create_time,
      43             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
      44             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
      45             f.preFee,                     -- 原价
      46             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
      47             f.discount
      48         from `thc_arrange`.`bpm_appointment` a
      49       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
      50         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
      51         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
      52         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
      53         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
      54         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
      55       where 1=1 and a.del_flag = 0 
      56                and g.id in (
      57                 SELECT DISTINCT g.id
      58                 from `thc_arrange`.`bpm_appointment` a
      59                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
      60                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
      61                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
      62                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
      63                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
      64                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
      65             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
      66                 where 1=1 
      67                  and a.del_flag = 0 
      68                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
      69                  and e.itemClass = 1 and e.returnFlag is NULL
      70                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
      71                  and h.type = 1 and h.pay_state = 1
      72         )
      73         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
      74         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
      75     ) t
      76     where 1=1
      77     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
      78     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
      79     group by t.deptId
      80 ) t0
      81 
      82 -- ------------
      83 -- 退号
      84 -- ------------
      85 left join 
      86 (
      87     select count(1) as num,t.deptId, t.deptName,t.create_time from
      88     ( 
      89         select 
      90             a.data_source,
      91             a.is_appoint_resource,
      92             a.subsequent_visit,
      93             a.dept_id as deptId,
      94             a.appointment_state,
      95             a.dept_name as deptName,
      96             a.create_time,
      97             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
      98             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
      99             f.preFee,                     -- 原价
     100             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     101             f.discount
     102         from `thc_arrange`.`bpm_appointment` a
     103       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     104         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     105         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     106         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     107         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     108         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     109         where 1=1 and a.del_flag = 0 AND  a.appointment_state = -1
     110                  and g.id in (
     111                 SELECT DISTINCT g.id
     112                 from `thc_arrange`.`bpm_appointment` a
     113                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     114                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     115                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     116                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     117                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     118                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     119             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     120                 where 1=1 
     121                  and a.del_flag = 0 
     122                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     123                  and e.itemClass = 1 and e.returnFlag is NULL
     124                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     125                  and h.type = 1 and h.pay_state = 1
     126         )
     127         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     128         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     129     ) t
     130     where 1=1
     131     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     132     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     133     group by t.deptId
     134 ) t1
     135 on t0.deptId = t1.deptId
     136 
     137 -- ------------
     138 -- 实际挂号数   =    初诊数 + 复诊数 + 转诊数
     139 -- ------------
     140 left join 
     141 (
     142     select count(1) as num,t.deptId, t.deptName,t.create_time from
     143     ( 
     144         select 
     145             a.data_source,
     146             a.is_appoint_resource,
     147             a.subsequent_visit,
     148             a.dept_id as deptId,
     149             
     150             a.appointment_state,
     151             a.dept_name as deptName,
     152             a.create_time,
     153             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     154             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     155             f.preFee,                     -- 原价
     156             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     157             f.discount
     158         from `thc_arrange`.`bpm_appointment` a
     159       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     160         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     161         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     162         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     163         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     164         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     165         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit in (0,1,2)
     166                  and g.id in (
     167                 SELECT DISTINCT g.id
     168                 from `thc_arrange`.`bpm_appointment` a
     169                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     170                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     171                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     172                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     173                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     174                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     175             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     176                 where 1=1 
     177                  and a.del_flag = 0 
     178                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     179                  and e.itemClass = 1 and e.returnFlag is NULL
     180                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     181                  and h.type = 1 and h.pay_state = 1
     182         )
     183         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     184         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}        
     185     ) t 
     186     where 1=1
     187     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     188     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     189     group by t.deptId
     190 ) t2
     191 on t0.deptId = t2.deptId
     192 
     193 
     194 -- ------------
     195 -- 初诊
     196 -- ------------
     197 left join 
     198 (
     199     select count(1) as num,t.deptId, t.deptName,t.create_time from
     200     ( 
     201         select 
     202             a.data_source,
     203             a.is_appoint_resource,
     204             a.subsequent_visit,
     205             a.dept_id as deptId,
     206             
     207             a.appointment_state,
     208             a.dept_name as deptName,
     209             a.create_time,
     210             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     211             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     212             f.preFee,                     -- 原价
     213             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     214             f.discount
     215         from `thc_arrange`.`bpm_appointment` a
     216       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     217         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     218         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     219         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     220         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     221         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     222         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit = 0
     223                  and g.id in (
     224                 SELECT DISTINCT g.id
     225                 from `thc_arrange`.`bpm_appointment` a
     226                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     227                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     228                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     229                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     230                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     231                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     232             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     233                 where 1=1 
     234                  and a.del_flag = 0 
     235                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     236                  and e.itemClass = 1 and e.returnFlag is NULL
     237                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     238                  and h.type = 1 and h.pay_state = 1
     239         )
     240         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     241         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}    
     242     ) t 
     243     where 1=1
     244     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     245     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     246     group by t.deptId
     247 ) t4
     248 on t0.deptId = t4.deptId
     249 
     250 -- ------------
     251 -- 复诊
     252 -- ------------
     253 left join 
     254 (
     255     select count(1) as num,t.deptId, t.deptName,t.create_time from
     256     ( 
     257         select 
     258             a.data_source,
     259             a.is_appoint_resource,
     260             a.subsequent_visit,
     261             a.dept_id as deptId,
     262             
     263             a.appointment_state,
     264             a.dept_name as deptName,
     265             a.create_time,
     266             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     267             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     268             f.preFee,                     -- 原价
     269             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     270             f.discount
     271         from `thc_arrange`.`bpm_appointment` a
     272       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     273         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     274         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     275         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     276         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     277         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     278         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit = 1
     279                  and g.id in (
     280                 SELECT DISTINCT g.id
     281                 from `thc_arrange`.`bpm_appointment` a
     282                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     283                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     284                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     285                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     286                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     287                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     288             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     289                 where 1=1 
     290                  and a.del_flag = 0 
     291                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     292                  and e.itemClass = 1 and e.returnFlag is NULL
     293                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     294                  and h.type = 1 and h.pay_state = 1
     295         )
     296         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     297         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}        
     298     ) t 
     299     where 1=1
     300     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     301     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     302     group by t.deptId
     303 ) t5
     304 on t0.deptId = t5.deptId
     305 
     306 
     307 
     308 -- ------------
     309 -- 体检
     310 -- ------------
     311 left join 
     312 (
     313     select count(1) as num,t.deptId, t.deptName,t.create_time from
     314     ( 
     315         select 
     316             a.data_source,
     317             a.is_appoint_resource,
     318             a.subsequent_visit,
     319             a.dept_id as deptId,
     320             
     321             a.appointment_state,
     322             a.dept_name as deptName,
     323             a.create_time,
     324             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     325             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     326             f.preFee,                     -- 原价
     327             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     328             f.discount
     329         from `thc_arrange`.`bpm_appointment` a
     330       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     331         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     332         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     333         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     334         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     335         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     336         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit = 4
     337                  and g.id in (
     338                 SELECT DISTINCT g.id
     339                 from `thc_arrange`.`bpm_appointment` a
     340                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     341                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     342                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     343                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     344                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     345                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     346             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     347                 where 1=1 
     348                  and a.del_flag = 0 
     349                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     350                  and e.itemClass = 1 and e.returnFlag is NULL
     351                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     352                  and h.type = 1 and h.pay_state = 1
     353         )
     354         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     355         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}        
     356     ) t 
     357     where 1=1
     358     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     359     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     360     group by t.deptId
     361 ) t6
     362 on t0.deptId = t6.deptId
     363 
     364 -- ------------
     365 -- 团队
     366 -- ------------
     367 left join 
     368 (
     369     select count(1) as num,t.deptId, t.deptName,t.create_time from
     370     ( 
     371         select 
     372             a.data_source,
     373             a.is_appoint_resource,
     374             a.subsequent_visit,
     375             a.dept_id as deptId,
     376             
     377             a.appointment_state,
     378             a.dept_name as deptName,
     379             a.create_time,
     380             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     381             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     382             f.preFee,                     -- 原价
     383             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     384             f.discount
     385         from `thc_arrange`.`bpm_appointment` a
     386       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     387         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     388         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     389         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     390         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     391         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     392         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit = 7
     393                  and g.id in (
     394                 SELECT DISTINCT g.id
     395                 from `thc_arrange`.`bpm_appointment` a
     396                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     397                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     398                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     399                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     400                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     401                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     402             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     403                 where 1=1 
     404                  and a.del_flag = 0 
     405                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     406                  and e.itemClass = 1 and e.returnFlag is NULL
     407                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     408                  and h.type = 1 and h.pay_state = 1
     409         )
     410         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     411         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}    
     412     ) t 
     413     where 1=1
     414     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     415     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     416     group by t.deptId
     417 ) t7
     418 on t0.deptId = t7.deptId
     419 
     420 
     421 -- ------------
     422 -- 简易 
     423 -- ------------
     424 left join 
     425 (
     426     select count(1) as num,t.deptId, t.deptName,t.create_time from
     427     ( 
     428         select 
     429             a.data_source,
     430             a.is_appoint_resource,
     431             a.subsequent_visit,
     432             a.dept_id as deptId,
     433             
     434             a.appointment_state,
     435             a.dept_name as deptName,
     436             a.create_time,
     437             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     438             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     439             f.preFee,                     -- 原价
     440             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     441             f.discount
     442         from `thc_arrange`.`bpm_appointment` a
     443       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     444         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     445         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     446         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     447         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     448         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     449         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit = 5
     450                  and g.id in (
     451                 SELECT DISTINCT g.id
     452                 from `thc_arrange`.`bpm_appointment` a
     453                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     454                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     455                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     456                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     457                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     458                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     459             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     460                 where 1=1 
     461                  and a.del_flag = 0 
     462                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     463                  and e.itemClass = 1 and e.returnFlag is NULL
     464                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     465                  and h.type = 1 and h.pay_state = 1
     466         )
     467         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     468         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}    
     469     ) t 
     470     where 1=1
     471     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     472     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     473     group by t.deptId
     474 ) t8
     475 on t0.deptId = t8.deptId
     476 
     477 
     478 
     479 -- ------------
     480 -- 转诊
     481 -- ------------
     482 left join 
     483 (
     484     select count(1) as num,t.deptId, t.deptName,t.create_time from
     485     ( 
     486         select 
     487             a.data_source,
     488             a.is_appoint_resource,
     489             a.subsequent_visit,
     490             a.dept_id as deptId,
     491             
     492             a.appointment_state,
     493             a.dept_name as deptName,
     494             a.create_time,
     495             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     496             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     497             f.preFee,                     -- 原价
     498             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     499             f.discount
     500         from `thc_arrange`.`bpm_appointment` a
     501       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     502         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     503         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     504         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     505         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     506         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     507         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit = 2
     508                  and g.id in (
     509                 SELECT DISTINCT g.id
     510                 from `thc_arrange`.`bpm_appointment` a
     511                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     512                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     513                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     514                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     515                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     516                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     517             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     518                 where 1=1 
     519                  and a.del_flag = 0 
     520                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     521                  and e.itemClass = 1 and e.returnFlag is NULL
     522                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     523                  and h.type = 1 and h.pay_state = 1
     524         )
     525         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     526         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}        
     527     ) t 
     528     where 1=1
     529     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     530     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     531     group by t.deptId
     532 ) t9
     533 on t0.deptId = t9.deptId
     534 
     535 -- ------------
     536 -- 疫苗
     537 -- ------------
     538 left join 
     539 (
     540     select count(1) as num,t.deptId, t.deptName,t.create_time from
     541     ( 
     542         select 
     543             a.data_source,
     544             a.is_appoint_resource,
     545             a.subsequent_visit,
     546             a.dept_id as deptId,
     547             
     548             a.appointment_state,
     549             a.dept_name as deptName,
     550             a.create_time,
     551             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     552             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     553             f.preFee,                     -- 原价
     554             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     555             f.discount
     556         from `thc_arrange`.`bpm_appointment` a
     557       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     558         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     559         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     560         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     561         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     562         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     563         where 1=1 and a.del_flag = 0 AND  a.subsequent_visit = 2
     564                  and g.id in (
     565                 SELECT DISTINCT g.id
     566                 from `thc_arrange`.`bpm_appointment` a
     567                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     568                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     569                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     570                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     571                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     572                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     573             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     574                 where 1=1 
     575                  and a.del_flag = 0 
     576                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     577                  and e.itemClass = 1 and e.returnFlag is NULL
     578                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     579                  and h.type = 1 and h.pay_state = 1
     580         )
     581         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     582         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     583     ) t 
     584     where 1=1
     585     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     586     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     587     group by t.deptId
     588 ) t10
     589 on t0.deptId = t10.deptId
     590 
     591 -- ------------
     592 -- t11 微信数
     593 -- ------------
     594 left join 
     595 (
     596     select count(1) as num,t.deptId, t.deptName,t.create_time from
     597     ( 
     598         select 
     599             a.data_source,
     600             a.is_appoint_resource,
     601             a.subsequent_visit,
     602             a.dept_id as deptId,
     603             
     604             a.appointment_state,
     605             a.dept_name as deptName,
     606             a.create_time,
     607             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     608             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     609             f.preFee,                     -- 原价
     610             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     611             f.discount
     612         from `thc_arrange`.`bpm_appointment` a
     613       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     614         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     615         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     616         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     617         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     618         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     619         where 1=1 and a.del_flag = 0 AND  a.data_source = 2
     620                  and g.id in (
     621                 SELECT DISTINCT g.id
     622                 from `thc_arrange`.`bpm_appointment` a
     623                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     624                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     625                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     626                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     627                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     628                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     629             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     630                 where 1=1 
     631                  and a.del_flag = 0 
     632                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     633                  and e.itemClass = 1 and e.returnFlag is NULL
     634                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     635                  and h.type = 1 and h.pay_state = 1
     636         )
     637         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     638         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}        
     639     ) t
     640     where 1=1
     641     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     642     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     643     group by t.deptId
     644 ) t11
     645 on t0.deptId = t11.deptId
     646 
     647 
     648 
     649 
     650 -- ------------
     651 -- 挂号费 t13
     652 -- ------------
     653 left join 
     654 (
     655     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
     656     ( 
     657         select 
     658             a.data_source,
     659             a.is_appoint_resource,
     660             a.subsequent_visit,
     661             a.dept_id as deptId,
     662             
     663             a.appointment_state,
     664             a.dept_name as deptName,
     665             a.create_time,
     666             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     667             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     668             f.preFee,                     -- 原价
     669             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     670             f.discount
     671         from `thc_arrange`.`bpm_appointment` a
     672       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     673         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     674         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     675         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     676         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     677         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     678         where  1=1 and a.del_flag = 0
     679                  and g.id in (
     680                 SELECT DISTINCT g.id
     681                 from `thc_arrange`.`bpm_appointment` a
     682                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     683                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     684                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     685                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     686                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     687                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     688             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     689                 where 1=1 
     690                  and a.del_flag = 0 
     691                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     692                  and e.itemClass = 1 and e.returnFlag is NULL
     693                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     694                  and h.type = 1 and h.pay_state = 1
     695         )
     696         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     697         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     698     ) t 
     699     where 1=1
     700     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     701     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     702     group by t.deptId
     703 ) t13
     704 on t0.deptId = t13.deptId
     705 
     706 
     707 
     708 -- ------------
     709 -- 急诊费 t14
     710 -- ------------
     711 left join 
     712 (
     713     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
     714     ( 
     715         select 
     716             a.data_source,
     717             a.is_appoint_resource,
     718             a.subsequent_visit,
     719             a.dept_id as deptId,
     720             
     721             a.appointment_state,
     722             a.dept_name as deptName,
     723             a.create_time,
     724             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     725             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     726             f.preFee,                     -- 原价
     727             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     728             f.discount
     729         from `thc_arrange`.`bpm_appointment` a
     730         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id and b.del_flag = 0
     731         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id` AND c.del_flag = 0
     732         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0
     733         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.isDelete = 0
     734         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id and e.isDelete = 0
     735         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 -- 门诊挂号
     736         where 1=1 and a.del_flag = 0 AND  e.itemCode = 'jiajifei'   -- 加急费:急诊费
     737                  and g.id in (
     738                 SELECT DISTINCT g.id
     739                 from `thc_arrange`.`bpm_appointment` a
     740                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     741                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     742                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     743                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     744                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     745                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     746             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     747                 where 1=1 
     748                  and a.del_flag = 0 
     749                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     750                  and e.itemClass = 1 and e.returnFlag is NULL
     751                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     752                  and h.type = 1 and h.pay_state = 1
     753         )
     754         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     755         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     756     ) t 
     757     where 1=1
     758     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     759     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     760     group by t.deptId
     761 ) t14
     762 on t0.deptId = t14.deptId
     763 
     764 
     765 
     766 
     767 -- ------------
     768 -- 工本费 t15
     769 -- ------------
     770 left join 
     771 (
     772     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
     773     ( 
     774         select 
     775             a.data_source,
     776             a.is_appoint_resource,
     777             a.subsequent_visit,
     778             a.dept_id as deptId,
     779             
     780             a.appointment_state,
     781             a.dept_name as deptName,
     782             a.create_time,
     783             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     784             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     785             f.preFee,                     -- 原价
     786             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     787             f.discount
     788         from `thc_arrange`.`bpm_appointment` a
     789       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     790         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     791         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     792         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     793         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     794         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     795         where 1=1 and a.del_flag = 0 AND  e.itemCode = 'bingliben'    -- 病历本:工本费
     796                  and g.id in (
     797                 SELECT DISTINCT g.id
     798                 from `thc_arrange`.`bpm_appointment` a
     799                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     800                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     801                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     802                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     803                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     804                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     805             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     806                 where 1=1 
     807                  and a.del_flag = 0 
     808                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     809                  and e.itemClass = 1 and e.returnFlag is NULL
     810                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     811                  and h.type = 1 and h.pay_state = 1
     812         )
     813         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     814         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     815     ) t 
     816     where 1=1
     817     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     818     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     819 ) t15
     820 on t0.deptId = t15.deptId
     821 
     822 -- ------------
     823 -- 卡费 t16
     824 -- ------------
     825 left join 
     826 (
     827     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
     828     ( 
     829         select 
     830             a.data_source,
     831             a.is_appoint_resource,
     832             a.subsequent_visit,
     833             a.dept_id as deptId,
     834             
     835             a.appointment_state,
     836             a.dept_name as deptName,
     837             a.create_time,
     838             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     839             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     840             f.preFee,                     -- 原价
     841             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     842             f.discount
     843         from `thc_arrange`.`bpm_appointment` a
     844       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     845         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     846         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     847         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     848         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     849         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     850         where 1=1 and a.del_flag = 0 AND e.itemCode = 'jiuzhenka'    -- 就诊卡:卡费
     851             and g.id in (
     852                 SELECT DISTINCT g.id
     853                 from `thc_arrange`.`bpm_appointment` a
     854                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     855                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
     856                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
     857                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
     858                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     859                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
     860             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
     861                 where 1=1 
     862                  and a.del_flag = 0 
     863                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     864                  and e.itemClass = 1 and e.returnFlag is NULL
     865                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
     866                  and h.type = 1 and h.pay_state = 1
     867         )
     868         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     869         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     870     ) t 
     871     where 1=1
     872     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     873     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     874     group by t.deptId
     875 ) t16
     876 on t0.deptId = t16.deptId
     877 
     878 
     879 
     880 
     881 -- ------------
     882 -- 现金 t17
     883 -- ------------
     884 left join 
     885 (
     886     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
     887     ( 
     888         select 
     889             a.data_source,
     890             a.is_appoint_resource,
     891             a.subsequent_visit,
     892             a.dept_id as deptId,
     893             
     894             a.appointment_state,
     895             a.dept_name as deptName,
     896             a.create_time,
     897             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     898             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     899             f.preFee,                     -- 原价
     900             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     901             f.discount,
     902             h.flow_fee,
     903             h.`charge`,
     904             h.`pay_method`
     905         from `thc_arrange`.`bpm_appointment` a
     906       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     907         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     908         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     909         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     910         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     911         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     912         inner join `thc_rcm`.`pay_trade_log` h on h.`settlement_id` = g.id and h.type = 1
     913         where 1=1 and a.del_flag = 0        -- 门诊
     914      and h.type = 1 and h.pay_state = 1 and h.pay_method = 1      -- 银行卡
     915         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     916         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     917     ) t 
     918     where 1=1
     919     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     920     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     921     group by t.deptId
     922 ) t17
     923 on t0.deptId = t17.deptId
     924 
     925 
     926 -- ------------
     927 -- 银行卡 t18
     928 -- ------------
     929 left join 
     930 (
     931     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
     932     ( 
     933         select 
     934             a.data_source,
     935             a.is_appoint_resource,
     936             a.subsequent_visit,
     937             a.dept_id as deptId,
     938             
     939             a.appointment_state,
     940             a.dept_name as deptName,
     941             a.create_time,
     942             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     943             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     944             f.preFee,                     -- 原价
     945             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     946             f.discount,
     947             h.flow_fee,
     948             h.`charge`,
     949             h.`pay_method`
     950         from `thc_arrange`.`bpm_appointment` a
     951       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     952         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     953         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     954         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     955         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     956         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
     957         inner join `thc_rcm`.`pay_trade_log` h on h.`settlement_id` = g.id and h.type = 1
     958         where 1=1 and a.del_flag = 0   
     959      and h.type = 1 and h.pay_state = 1 and h.pay_method = 2      -- 银行卡
     960         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
     961         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
     962     ) t 
     963     where 1=1
     964     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
     965     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
     966     group by t.deptId
     967 ) t18
     968 on t0.deptId = t18.deptId
     969 
     970 
     971 
     972 -- ------------
     973 -- 预检 t19
     974 -- ------------
     975 left join 
     976 (
     977     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
     978     ( 
     979         select 
     980             a.data_source,
     981             a.is_appoint_resource,
     982             a.subsequent_visit,
     983             a.dept_id as deptId,
     984             
     985             a.appointment_state,
     986             a.dept_name as deptName,
     987             a.create_time,
     988             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
     989             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
     990             f.preFee,                     -- 原价
     991             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
     992             f.discount
     993         from `thc_arrange`.`bpm_appointment` a
     994       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
     995         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
     996         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
     997         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
     998         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
     999         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
    1000 
    1001         where 1=1 and a.del_flag = 0 and e.itemCode = 'yujian'    -- 预检:预存款
    1002 and g.id in (
    1003                 SELECT DISTINCT g.id
    1004                 from `thc_arrange`.`bpm_appointment` a
    1005                 inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    1006                 inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
    1007                 inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    1008                 inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    1009                 inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    1010                 inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    1011             inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    1012                 where 1=1 
    1013                  and a.del_flag = 0 
    1014                  and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    1015                  and e.itemClass = 1 and e.returnFlag is NULL
    1016                  and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    1017                  and h.type = 1 and h.pay_state = 1
    1018         )        
    1019         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    1020         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    1021     ) t 
    1022     where 1=1
    1023     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    1024     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    1025     group by t.deptId
    1026 ) t19
    1027 on t0.deptId = t19.deptId
    1028 
    1029 
    1030 
    1031 -- ------------
    1032 -- 微信金额t20
    1033 -- ------------
    1034 left join 
    1035 (
    1036     select round(sum(t.preFee),2) as num,t.deptId, t.deptName,t.create_time from
    1037     ( 
    1038         select 
    1039             a.data_source,
    1040             a.is_appoint_resource,
    1041             a.subsequent_visit,
    1042             a.dept_id as deptId,
    1043             
    1044             a.appointment_state,
    1045             a.dept_name as deptName,
    1046             a.create_time,
    1047             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    1048             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    1049             f.preFee,                     -- 原价
    1050             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    1051             f.discount
    1052         from `thc_arrange`.`bpm_appointment` a
    1053       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    1054         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
    1055         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    1056         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    1057         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    1058         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
    1059         inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    1060         where 1=1 and a.del_flag = 0 and a.data_source = 2
    1061         and h.type = 1 and h.pay_state = 1 and h.pay_method=4
    1062         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    1063         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}
    1064     ) t 
    1065     where 1=1
    1066     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    1067     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    1068     group by t.deptId
    1069 ) t20
    1070 on t0.deptId = t20.deptId
    1071 
    1072 
    1073 -- ------------
    1074 -- 应收金额 t21
    1075 -- ------------
    1076 left join 
    1077 (
    1078     select round(sum(t.preFee),2)  as num,t.deptId, t.deptName,t.create_time from
    1079     ( 
    1080         select 
    1081             a.data_source,
    1082             a.is_appoint_resource,
    1083             a.subsequent_visit,
    1084             a.dept_id as deptId,
    1085             
    1086             a.appointment_state,
    1087             a.dept_name as deptName,
    1088             a.create_time,
    1089             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    1090             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    1091             f.preFee,                     -- 原价
    1092             (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    1093             f.discount
    1094         from `thc_arrange`.`bpm_appointment` a
    1095       inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    1096         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id = b.id and c.id = a.order_item_id
    1097         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    1098         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    1099         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    1100         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0 and g.returnFlag = 0 -- 门诊挂号
    1101         where 1=1  and a.del_flag = 0
    1102         and g.id in (
    1103     SELECT DISTINCT g.id
    1104     from `thc_arrange`.`bpm_appointment` a
    1105     inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    1106     inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
    1107     inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    1108     inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    1109     inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    1110     inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    1111   inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    1112     where 1=1 
    1113      and a.del_flag = 0 
    1114      and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    1115      and e.itemClass = 1 and e.returnFlag is NULL
    1116      and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    1117    and h.type = 1 and h.pay_state = 1
    1118 )
    1119         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    1120         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}        
    1121     ) t 
    1122     where 1=1
    1123     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    1124     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    1125     group by t.deptId
    1126 ) t21
    1127 on t0.deptId = t21.deptId
    1128 
    1129 
    1130 
    1131 
    1132 
    1133 -- ------------
    1134 -- 实收金额 t22
    1135 -- ------------
    1136 left join 
    1137 (
    1138     select round(sum(t.realFee),2)  as num,t.deptId,t.deptName,t.create_time from
    1139     ( 
    1140         select 
    1141             a.data_source,
    1142             a.is_appoint_resource,
    1143             a.subsequent_visit,
    1144             a.dept_id as deptId,
    1145           
    1146             a.appointment_state,
    1147             a.dept_name as deptName,
    1148             a.create_time,
    1149             CONCAT(a.`appointment_date`," ",a.appointment_starttime) as startTime,
    1150             CONCAT(a.`appointment_date`," ",a.appointment_endtime) as endTime,
    1151             f.preFee,    
    1152         (f.preFee - f.discountFee - f.promotionBenefitFee - f.couponFee - f.itemBenefitFee     - f.memberCardBenefitFee - f.itemComInvBenefitFee) * f.discount AS realFee,
    1153             f.discount
    1154         from `thc_arrange`.`bpm_appointment` a
    1155         inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    1156         inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.`order_item_id`
    1157         inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id and d.`isDelete` = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    1158         inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId and e.itemClass = 1 and e.returnFlag is NULL
    1159         inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    1160         inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    1161         where 1=1 and a.del_flag = 0
    1162         and g.id in (
    1163     SELECT DISTINCT g.id
    1164     from `thc_arrange`.`bpm_appointment` a
    1165     inner join `thc_sob`.`bpm_service_order` b on a.orderId = b.id
    1166     inner join `thc_sob`.`bpm_service_order_item` c on c.service_order_id =  b.id and c.id = a.order_item_id
    1167     inner join `thc_rcm`.`Cs_AccountBill` d on d.orderID = b.id
    1168     inner join `thc_rcm`.`Cs_AccountBillDetail` e on d.id = e.AccountBillId
    1169     inner join `thc_rcm`.`Cs_SettlementDetail` f on f.accountBillID = d.id and f.accountBillDetailID = e.id
    1170     inner join `thc_rcm`.`Cs_Settlement` g on g.id = f.settlementID
    1171   inner JOIN `thc_rcm`.`pay_trade_log` h on h.settlement_id = g.id
    1172     where 1=1 
    1173      and a.del_flag = 0 
    1174      and d.isDelete = 0 and d.orderSource = 1 and d.orderType = 3 and d.returnFlag = 0
    1175      and e.itemClass = 1 and e.returnFlag is NULL
    1176      and g.settlementType=2 and g.`isDelete` = 0  and g.returnFlag = 0 -- 门诊挂号
    1177    and h.type = 1 and h.pay_state = 1
    1178 )
    1179         ${if(len(deptId) == 0,"","and a.dept_id = '" + deptId + "'")}
    1180         ${if(len(doctorId) == 0,"","and a.appointment_doctor_id = '" + doctorId + "'")}    
    1181     ) t
    1182     where 1=1
    1183     ${if(len(startTime) == 0,"","AND t.create_time     >= '" + startTime + "'")}
    1184     ${if(len(endTime) == 0,"","AND t.create_time     <= '" + endTime + "'")}
    1185     group by t.deptId
    1186 ) t22
    1187 on t0.deptId = t22.deptId
    1188 
    1189 
    1190 order by t0.startTime asc
    View Code
  • 相关阅读:
    正则表达式个人总结(二):正则表达式语法的深入理解第二部分
    正则表达式个人总结(一):正则表达式语法的深入理解第一部分
    JS中的函数(二):函数参数(你可能不知道的参数传递)
    字体属性设置(一):谷歌浏览器12px以下字体的显示;方法和原理
    树莓派4B刷固件卸载ROS包
    Kobuki入门
    locobot快速使用
    AX-18A固件修复失败
    locobot 软件配置
    曾经我认为C语言就是个弟弟
  • 原文地址:https://www.cnblogs.com/guchunchao/p/10175413.html
Copyright © 2011-2022 走看看