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