zhaowenxuan
3 天以前 c292931f4f2575549af03861a144cac811ce76d1
ltkj-admin/src/main/resources/sql/ɽ¡Ò½.sql
@@ -66,6 +66,7 @@
TRUNCATE TABLE tj_ask_historys;
TRUNCATE TABLE tj_ask_medical_history;
TRUNCATE TABLE tj_ask_work_log;
TRUNCATE TABLE dict_user_info;
# æŸ¥è¯¢å‰ç¼€å€¼
SELECT * FROM (
@@ -81,3 +82,135 @@
  SELECT config_value,'xatlgcyy' as hosp FROM ltkjpeis10_xatlgcyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix'
  ) a ORDER BY a.config_value DESC;
# åŒæ­¥ä»·æ ¼å­˜å‚¨è¿‡ç¨‹
CREATE TABLE tb_proprice_his
(
    pro_id BIGINT NULL ,
    old_price DECIMAL(10,2) NULL,
    new_price DECIMAL(10,2) NULL,
    pro_parent_id BIGINT NULL,
    time DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE DEFINER=`root`@`%` PROCEDURE `pro_tb_his_project`()
BEGIN
    # æ˜¯å¦å¼€å¯åŒæ­¥his项目
    DECLARE isOpenTbHisProject VARCHAR(10);
    # æ˜¯å¦å¼€å¯åŒæ­¥å…¬å…±å¥—餐
    DECLARE isOpenCommonTaoCan VARCHAR(10);
    # æ˜¯å¦å¼€å¯åŒæ­¥å•位套餐
    DECLARE isOpenDeptTaoCan VARCHAR(10);
    main_block: BEGIN
        # å‡Œäº‘价格同步存储过程,his停用的项目不要从套餐 åˆ†ç»„中删除,只修改价格
        # å­˜å‚¨è¿‡ç¨‹è°ƒç”¨å†™åˆ°ä¸­é—´å±‚,加参数配置默认不同步
        SELECT config_value INTO isOpenTbHisProject FROM `sys_config` WHERE config_key = 'isOpenTbHisProject' LIMIT 1;
        SELECT config_value INTO isOpenCommonTaoCan FROM `sys_config` WHERE config_key = 'isOpenCommonTaoCan' LIMIT 1;
        SELECT config_value INTO isOpenDeptTaoCan FROM `sys_config` WHERE config_key = 'isOpenDeptTaoCan' LIMIT 1;
        IF isOpenTbHisProject IS NULL OR isOpenTbHisProject != 'Y' THEN
            LEAVE main_block;
        END IF;
        DELETE FROM tb_proprice_his;
        DROP TEMPORARY TABLE IF EXISTS his_tb_temp_prods;
        CREATE TEMPORARY TABLE his_tb_temp_prods(id BIGINT);
        INSERT INTO his_tb_temp_prods(id,pro_parent_id)
        # å·²åœç”¨é¡¹ç›®ids
        SELECT b.pro_id,b.pro_parent_id FROM (
                                                 SELECT
                                                     a.pro_id,a.his_xmbm,a.pro_parent_id
                                                 FROM
                                                     tj_project a
                                                         LEFT JOIN tj_project b ON a.pro_parent_id = b.pro_id
                                                 WHERE a.pro_parent_id <> 0 AND a.his_xmbm <> '' AND a.pro_status =0 AND a.deleted = 0 AND b.pro_status = 0 AND b.deleted = 0
                                             ) b
                                                 LEFT JOIN ltkj_shanxiqinjdczgzyy_getshoufeixmzd c ON b.his_xmbm = c.shoufeixmid
        WHERE c.shoufeixmid IS NULL OR c.zuofeibz = 1;
        INSERT INTO tb_proprice_his(pro_id) SELECT id FROM his_tb_temp_prods;
        UPDATE tj_project a
            JOIN his_tb_temp_prods b ON a.pro_id = b.pro_id
        SET a.pro_status = 1;
        INSERT INTO  tb_proprice_his (pro_id,old_price,new_price,pro_parent_id)
        # ä»·æ ¼å˜åŠ¨çš„æ•°æ®
        SELECT c.pro_id,c.pro_price,d.danjia,c.pro_parent_id FROM
            (
                SELECT
                    a.pro_id,a.his_xmbm,a.pro_price,a.pro_parent_id
                FROM
                    tj_project a
                        LEFT JOIN tj_project b ON a.pro_parent_id = b.pro_id
                WHERE a.pro_parent_id <> 0 AND a.his_xmbm <> '' AND a.pro_status =0 AND a.deleted = 0 AND b.pro_status = 0 AND b.deleted = 0
            ) c
                LEFT JOIN ltkj_shanxiqinjdczgzyy_getshoufeixmzd d ON c.his_xmbm = d.shoufeixmid
        WHERE d.zuofeibz = 0 AND c.pro_price <> d.danjia AND c.pro_id NOT IN (SELECT id FROM his_tb_temp_prods);
        # ä¿®æ”¹å°é¡¹ä»·æ ¼
        UPDATE tj_project a
            JOIN tb_proprice_his b ON a.pro_id = b.pro_id
        SET a.pro_price = b.new_price;
        # ä¿®æ”¹å¤§é¡¹ä»·æ ¼
        UPDATE tj_project a
            JOIN (SELECT pro_parent_id FROM tb_proprice_his GROUP BY(pro_parent_id)) b ON a.pro_id = b.pro_parent_id
            JOIN (
                SELECT pro_parent_id, SUM(pro_price * sl) AS parentPrice
                FROM tj_project
                WHERE pro_parent_id != 0 and deleted=0 and pro_status=0
                GROUP BY pro_parent_id
            ) d ON a.pro_id = d.pro_parent_id
        SET a.pro_price = d.parentPrice;
        # å¦‚æžœhis停用了,项目也改停用状态,套餐 åˆ†ç»„中的项目不进行删除变动 åªä¿®æ”¹åŽŸä»·ï¼Œä¸€å…±ä¸‰ä¸ªé…ç½® æ˜¯å¦å¼€å¯åŒæ­¥ã€æ˜¯å¦åŒæ­¥å…¬å…±å¥—餐、是否同步单位套餐
        IF isOpenCommonTaoCan = 'Y' THEN
            # åœç”¨é¡¹ç›®
            UPDATE tj_package_project SET price_ord = 0
            WHERE pro_id IN (SELECT pro_id FROM tb_proprice_his WHERE new_price IS NULL);
            # æ”¹ä»·é¡¹ç›®
            UPDATE tj_package_project a
                JOIN tb_proprice_his b ON a.pro_id = b.pro_id
            SET a.price_ord = b.new_price
            WHERE b.new_price IS NOT NULL;
            # ä¿®æ”¹å¥—餐总价
            UPDATE tj_package a
                JOIN (
                    SELECT b.pac_id,SUM(b.price_ord) AS order_price
                    FROM tj_package_project b
                             JOIN tb_proprice_his c ON b.pro_id = c.pro_id
                    GROUP BY b.pac_id
                ) d ON a.pac_id = d.pac_id
            SET a.price = d.order_price;
        END IF;
        IF isOpenDeptTaoCan = 'Y' THEN
            # åœç”¨é¡¹ç›®
            UPDATE tj_grouping_pro a SET pro_price = 0
            WHERE pro_id IN (SELECT pro_id FROM tb_proprice_his WHERE new_price IS NULL);
            # æ”¹ä»·é¡¹ç›®
            UPDATE tj_grouping_pro a
                JOIN tb_proprice_his b ON a.pro_id = b.pro_id
            SET a.pro_price = b.new_price
            WHERE b.new_price IS NOT NULL;
            # ä¿®æ”¹å¥—餐总价
            UPDATE tj_dw_grouping a
                JOIN (
                    SELECT b.grouping_id,SUM(b.pro_price) AS order_price
                    FROM tj_grouping_pro b
                             JOIN tb_proprice_his c ON b.pro_id = c.pro_id
                    GROUP BY b.grouping_id
                ) d ON a.id = d.grouping_id
            SET a.price = d.order_price;
        END IF;
    END main_block;
END