From db52209b0d830d00c7ec807e2b66d94079d4aff6 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 26 六月 2025 10:17:33 +0800
Subject: [PATCH] 2025-06-26

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java |   17 +++
 ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java               |    2 
 ltkj-admin/src/main/resources/sql/泾川项目以及价格存储过程.sql                               |  273 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java                     |    3 
 4 files changed, 294 insertions(+), 1 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
index f418e9f..e7a3bd5 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
@@ -9,6 +9,7 @@
 
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.pinyin.PinyinUtil;
 import cn.hutool.json.JSONUtil;
 import com.ltkj.hosp.idutil.IdUtils;
@@ -19,6 +20,7 @@
 import com.ltkj.hosp.service.*;
 import com.ltkj.hosp.sqlDomain.*;
 import com.ltkj.system.service.ISysMenuService;
+import com.ltkj.web.wxUtils.HttpClientUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -490,4 +492,19 @@
         return AjaxResult.success(numbers);
     }
 
+    @GetMapping("/syncHisData")
+    public AjaxResult syncHisData(@RequestParam(value = "tbzd",required = false,defaultValue = "true") Boolean tbzd) {
+        if (tbzd) {
+            String apiUrl = configService.selectConfigByKey("common_api_url");
+            if (StrUtil.isBlank(apiUrl)) {
+                return AjaxResult.error("鏈厤缃甤ommon_api_url");
+            }
+            HttpClientUtils instance = HttpClientUtils.getInstance();
+            String sendHttpGet = instance.sendHttpGet(apiUrl);
+            if (!sendHttpGet.equals("success")) return AjaxResult.error("鍚屾澶辫触");
+        }
+        testMapper.updTbProHisPrice();
+        return AjaxResult.success();
+    }
+
 }
diff --git a/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java b/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java
index 312dce9..c319280 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java
@@ -449,7 +449,7 @@
      * @param httpGet
      * @return
      */
-    private String sendHttpsGet(HttpGet httpGet) {
+    public String sendHttpsGet(HttpGet httpGet) {
         CloseableHttpClient httpClient = null;
         CloseableHttpResponse response = null;
         HttpEntity entity = null;
diff --git "a/ltkj-admin/src/main/resources/sql/\346\263\276\345\267\235\351\241\271\347\233\256\344\273\245\345\217\212\344\273\267\346\240\274\345\255\230\345\202\250\350\277\207\347\250\213.sql" "b/ltkj-admin/src/main/resources/sql/\346\263\276\345\267\235\351\241\271\347\233\256\344\273\245\345\217\212\344\273\267\346\240\274\345\255\230\345\202\250\350\277\207\347\250\213.sql"
new file mode 100644
index 0000000..f9615b0
--- /dev/null
+++ "b/ltkj-admin/src/main/resources/sql/\346\263\276\345\267\235\351\241\271\347\233\256\344\273\245\345\217\212\344\273\267\346\240\274\345\255\230\345\202\250\350\277\207\347\250\213.sql"
@@ -0,0 +1,273 @@
+CREATE TABLE `tb_proprice_his` (
+   `pro_id` bigint DEFAULT NULL COMMENT '灏忛」id',
+   `old_price` varchar(255) DEFAULT NULL,
+   `new_price` varchar(255) DEFAULT NULL,
+   `time` datetime DEFAULT CURRENT_TIMESTAMP
+);
+
+
+CREATE TABLE `tb_project_price_history` (
+    `pro_id` bigint DEFAULT NULL COMMENT '灏忛」id',
+    `old_price` varchar(255) DEFAULT NULL,
+    `new_price` varchar(255) DEFAULT NULL,
+    `time` datetime DEFAULT CURRENT_TIMESTAMP
+) COMMENT='his鍚屾浠锋牸鍘嗗彶璁板綍琛�';
+
+DROP PROCEDURE IF EXISTS `tb_check_hisproject`;
+CREATE DEFINER=`root`@`%` PROCEDURE `tb_check_hisproject`()
+BEGIN
+    # 瀛愰」涓存椂琛�
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_proid;
+# 澶ч」涓存椂琛�
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_parent_proid;
+# 琚仠鐢ㄧ殑澶ч」涓存椂琛�
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_parent_updated;
+
+    CREATE TEMPORARY TABLE temp_tb_check_hisproject_proid(id BIGINT,p_id BIGINT);
+    CREATE TEMPORARY TABLE temp_tb_check_hisproject_parent_proid(id BIGINT);
+    CREATE TEMPORARY TABLE temp_tb_check_hisproject_parent_updated (id BIGINT);
+
+# 鎻愬彇椤圭洰琛╤isxmdm鍦╤is琛ㄤ笉瀛樺湪鐨勫皬椤�
+    INSERT INTO temp_tb_check_hisproject_proid (id,p_id)
+    SELECT tp.pro_id,tp.pro_parent_id
+    FROM tj_project tp
+    WHERE tp.pro_status = 0
+      AND tp.pro_parent_id <> 0
+      AND tp.deleted = 0
+      AND tp.his_xmbm <> ''
+      AND tp.pro_parent_id = 1633660948860522504
+      AND NOT EXISTS (
+        SELECT 1
+        FROM ltkj_mxjfxmzd lm
+        WHERE lm.xmdm = tp.his_xmbm
+    );
+
+# 鏍规嵁鎻愬彇鐨勫皬椤规嬁澶ч」
+    INSERT INTO temp_tb_check_hisproject_parent_proid
+    SELECT p.p_id FROM temp_tb_check_hisproject_proid p GROUP BY p.p_id;
+
+# 淇敼瀛愰」鐘舵�佷负鍋滅敤
+    UPDATE tj_project t1 JOIN temp_tb_check_hisproject_proid t2 ON t1.pro_id = t2.id SET t1.pro_status = 1;
+# 淇敼鐖堕」鐘舵�佷负鍋滅敤
+    INSERT INTO temp_tb_check_hisproject_parent_updated (id)
+    SELECT p.pro_id
+    FROM tj_project p
+             JOIN temp_tb_check_hisproject_parent_proid t ON p.pro_id = t.id
+    WHERE NOT EXISTS (
+        SELECT 1
+        FROM tj_project AS child
+        WHERE child.pro_parent_id = p.pro_id
+          AND child.pro_status = 0
+          AND child.deleted = 0
+          AND child.his_xmbm <> ''
+    );
+    UPDATE tj_project p JOIN temp_tb_check_hisproject_parent_updated t ON p.pro_id = t.id SET p.pro_status = 1;
+
+# 濂楅銆佺粍鍚堜腑绉婚櫎鏈惎鐢ㄩ」鐩�
+    DELETE FROM tj_package_project WHERE pro_id IN (SELECT id FROM temp_tb_check_hisproject_parent_updated);
+    DELETE FROM tj_grouping_pro WHERE pro_id IN (SELECT id FROM temp_tb_check_hisproject_parent_updated);
+    DELETE FROM tj_zhxmglpro WHERE pro_id IN (SELECT id FROM temp_tb_check_hisproject_parent_updated);
+
+# 璋冪敤鍚屾浠锋牸瀛樺偍杩囩▼
+    CALL tb_hisprodj();
+
+    # 淇敼椤圭洰浠锋牸
+--  UPDATE tj_project a
+--     JOIN temp_tb_check_hisproject_parent_proid b ON a.pro_id = b.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;
+--
+--   -- 4 鍚屾濂楅鍏宠仈椤圭洰琛ㄤ环鏍�
+--
+--      UPDATE tj_package_project a  JOIN tj_project b ON a.pro_id=b.pro_id
+--
+--      SET a.price_now = b.pro_price * (a.limits/10),
+--      a.price_ord = b.pro_price
+--      WHERE a.pro_id= b.pro_id AND b.pro_id IN (select id from temp_tb_check_hisproject_parent_proid);
+--
+--
+-- 	-- 5 鍚屾濂楅浠锋牸
+--        UPDATE tj_package aa
+--        JOIN (
+--        	SELECT
+--        		a.pac_id,
+--        		SUM( a.price_now ) pr,
+--           sum(a.price_ord) olpr
+--        	FROM
+--        		tj_package_project a
+--        	GROUP BY
+--        		a.pac_id
+--        	) bb
+--        	SET aa.price = bb.olpr ,
+--         aa.new_price = bb.pr
+--        WHERE
+--        	aa.pac_id = bb.pac_id;
+--
+-- -- 鍗曚綅濂楅鏄庣粏椤圭洰
+--      update tj_grouping_pro a
+--      join  tj_project b ON a.pro_id=b.pro_id
+--      SET a.ys_price = b.pro_price * (a.limits/10),
+--      a.pro_price = b.pro_price
+--      WHERE a.pro_id= b.pro_id;
+--   -- 鍗曚綅濂楅鎬讳环
+--      UPDATE tj_dw_grouping aa
+--        JOIN (
+--        	SELECT
+--        		a.grouping_id,
+--        		SUM( a.ys_price ) pr,
+--           sum(a.pro_price) olpr
+--        	FROM
+--        		tj_grouping_pro a
+--        	GROUP BY
+--        		a.grouping_id
+--        	) bb
+--        	SET aa.price = bb.olpr ,
+--         aa.ys_price = bb.pr
+--        WHERE
+--        	aa.id = bb.grouping_id;
+--
+-- DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_proid;
+-- DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_parent_proid;
+
+# 瀛愰」涓存椂琛�
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_proid;
+# 澶ч」涓存椂琛�
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_parent_proid;
+# 琚仠鐢ㄧ殑澶ч」涓存椂琛�
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_check_hisproject_parent_updated;
+END
+
+
+DROP PROCEDURE IF EXISTS `tb_hisprodj`;
+CREATE DEFINER=`root`@`localhost` PROCEDURE `tb_hisprodj`()
+BEGIN
+
+-- 1 鍚屾鐖堕」鐩搴斿瓙椤圭殑鏁伴噺(椤圭洰鏁伴噺鍜宧is涓暟閲忎笉涓�鑷寸殑椤圭洰)
+
+
+--   UPDATE tj_project a
+-- 	   LEFT JOIN tj_project b ON a.pro_id = b.pro_parent_id
+-- 	   LEFT JOIN ltkj_jfzhglmxjfxmzd c ON a.his_xmbm = c.zhxmdm AND c.xmdm=b.his_xmbm
+-- 	   LEFT JOIN ltkj_mxjfxmzd d ON c.xmdm = d.xmdm
+-- 	   SET b.sl=c.sl
+-- 	   WHERE
+-- 	   a.deleted = 0
+-- 	   AND b.deleted = 0
+-- 	   AND b.sl != c.sl
+-- 	   AND b.pro_name NOT LIKE '%璐�%' AND b.pro_name NOT LIKE '闈欒剦閲囪';
+
+-- 2 鍚屾鏄庣粏椤圭洰浠ュ強鏄庣粏椤圭洰瀵瑰簲鐨勭埗椤圭洰
+
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_hisdj_parent_ids;
+
+    CREATE TEMPORARY TABLE temp_tb_hisdj_parent_ids (id BIGINT);
+-- 鏌ヨhis鍜屼綋妫�鍗曢」浠锋牸涓嶅搴旂殑鎵�鏈夊ぇ椤筰d
+    INSERT INTO temp_tb_hisdj_parent_ids (id)
+    SELECT DISTINCT a.pro_parent_id
+    FROM tj_project a
+    JOIN ltkj_mxjfxmzd b ON a.his_xmbm = b.xmdm
+    WHERE a.deleted = 0 and a.pro_status=0 AND a.pro_parent_id != 0 AND a.pro_price <> b.xmdj ;
+
+    delete from  tb_proprice_his;
+    -- 鏌ヨ 鎵�鏈夊瓙椤圭洰鐨勪环鏍煎強椤圭洰id
+    INSERT INTO tb_proprice_his(pro_id,old_price,new_price)
+    SELECT a.pro_id,a.pro_price,b.xmdj  FROM tj_project a
+    JOIN ltkj_mxjfxmzd b ON a.his_xmbm = b.xmdm
+    join temp_tb_hisdj_parent_ids d on d.id = a.pro_parent_id
+    WHERE a.deleted = 0 and a.pro_status=0 AND a.pro_parent_id != 0 AND a.pro_price <> b.xmdj  AND a.his_xmbm IS NOT NULL AND a.his_xmbm <> '';
+
+    UPDATE tj_project a
+    JOIN tb_proprice_his b ON a.pro_id = b.pro_id
+    SET a.pro_price = b.new_price,
+        a.hisdj = b.new_price
+    WHERE a.deleted = 0  and a.pro_status=0;
+
+    UPDATE tj_project a
+    JOIN temp_tb_hisdj_parent_ids b ON a.pro_id = b.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;
+
+
+
+  -- 4 鍚屾濂楅鍏宠仈椤圭洰琛ㄤ环鏍�
+
+     UPDATE tj_package_project a  JOIN tj_project b ON a.pro_id=b.pro_id
+
+     SET a.price_now = b.pro_price * (a.limits/10),
+     a.price_ord = b.pro_price
+     WHERE a.pro_id= b.pro_id;
+
+
+
+	-- 5 鍚屾濂楅浠锋牸
+       UPDATE tj_package aa
+       JOIN (
+       	SELECT
+       		a.pac_id,
+       		SUM( a.price_now ) pr,
+          sum(a.price_ord) olpr
+       	FROM
+       		tj_package_project a
+       	GROUP BY
+       		a.pac_id
+       	) bb
+       	SET aa.price = bb.olpr ,
+        aa.new_price = bb.pr
+       WHERE
+       	aa.pac_id = bb.pac_id;
+
+-- 鍗曚綅濂楅鏄庣粏椤圭洰
+     update tj_grouping_pro a
+     join  tj_project b ON a.pro_id=b.pro_id
+     SET a.ys_price = b.pro_price * (a.limits/10),
+     a.pro_price = b.pro_price
+     WHERE a.pro_id= b.pro_id;
+  -- 鍗曚綅濂楅鎬讳环
+     UPDATE tj_dw_grouping aa
+       JOIN (
+       	SELECT
+       		a.grouping_id,
+       		SUM( a.ys_price ) pr,
+          sum(a.pro_price) olpr
+       	FROM
+       		tj_grouping_pro a
+       	GROUP BY
+       		a.grouping_id
+       	) bb
+       	SET aa.price = bb.olpr ,
+        aa.ys_price = bb.pr
+       WHERE
+       	aa.id = bb.grouping_id;
+
+    DROP TEMPORARY TABLE IF EXISTS temp_tb_hisdj_parent_ids;
+
+   insert into tb_project_price_history
+   select * from tb_proprice_his;
+
+
+END
+
+
+# 灏嗗椁� 缁勫悎 鍗曚綅濂楅涓� 鎵�鏈夎兏鑵硅繛閫忛」鐩浛鎹负鑳搁儴姝d綅鐗�
+UPDATE tj_package_project SET pro_id = 1740177341251154261,price_now = 40,limits = 10,price_ord = 40 WHERE pro_id = 1633660948860522504;
+UPDATE tj_grouping_pro a
+    JOIN (
+        SELECT id FROM tj_grouping_pro WHERE pro_id = 1633660948860522504
+    ) b ON a.id = b.id
+SET a.pro_id = 1740177341251154261,
+    a.pro_name = '鑳搁儴姝d綅鐗�',
+    a.pro_py_name = 'xbzwp',
+    a.pro_price = 40,
+    a.limits = 10,
+    a.ys_price = 40;
+call tb_check_hisproject();
diff --git a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java
index c2e2b2e..390cf0f 100644
--- a/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java
+++ b/ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java
@@ -514,4 +514,7 @@
             "V_TJ_JCBGXX_NEWTJ a  WHERE a.HIS_ID=#{tjNum} AND a.HOSTPITALID = #{hosp}")
     List<Map<String, Object>> sysgetCcXZxYyPacsLtkjExamJcsqd(@Param("tjNum") String tjNum,@Param("hosp") String hosp);
 
+    @DataSource(value = DataSourceType.MASTER)
+    @Select("call pro_tbDictAfter()")
+    void updTbProHisPrice();
 }

--
Gitblit v1.8.0