zhaowenxuan
7 天以前 db52209b0d830d00c7ec807e2b66d94079d4aff6
2025-06-26
3个文件已修改
1个文件已添加
295 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/wxUtils/HttpClientUtils.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/resources/sql/泾川项目以及价格存储过程.sql 273 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TestMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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("未配置common_api_url");
            }
            HttpClientUtils instance = HttpClientUtils.getInstance();
            String sendHttpGet = instance.sendHttpGet(apiUrl);
            if (!sendHttpGet.equals("success")) return AjaxResult.error("同步失败");
        }
        testMapper.updTbProHisPrice();
        return AjaxResult.success();
    }
}
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;
ltkj-admin/src/main/resources/sql/ãþ´¨ÏîÄ¿ÒÔ¼°¼Û¸ñ´æ´¢¹ý³Ì.sql
New file
@@ -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);
# æå–项目表hisxmdm在his表不存在的小项
    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 åŒæ­¥çˆ¶é¡¹ç›®å¯¹åº”子项的数量(项目数量和his中数量不一致的项目)
--   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和体检单项价格不对应的所有大项id
    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
# å°†å¥—餐 ç»„合 å•位套餐中 æ‰€æœ‰èƒ¸è…¹è¿žé€é¡¹ç›®æ›¿æ¢ä¸ºèƒ¸éƒ¨æ­£ä½ç‰‡
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 = '胸部正位片',
    a.pro_py_name = 'xbzwp',
    a.pro_price = 40,
    a.limits = 10,
    a.ys_price = 40;
call tb_check_hisproject();
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();
}