zhaowenxuan
2025-06-06 57c0be167c21c6841e18d7c6e78a5fae678e8dd1
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
@@ -8,6 +8,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.common.core.domain.entity.SysMenu;
@@ -15,6 +16,7 @@
import com.ltkj.framework.datasource.DynamicDataSourceContextHolder;
import com.ltkj.hosp.domain.DictHosp;
import com.ltkj.hosp.domain.TjJcycxm;
import com.ltkj.hosp.domain.TjOrder;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.service.*;
@@ -231,6 +233,25 @@
    private void tbjianyan(String s,String hosp) {
        try {
            String isWsByView = configService.selectConfigByKey("is_ws_by_view");
            if (StrUtil.isNotBlank(isWsByView) && isWsByView.equals("Y")){
                List<LtkjHysqd> sqd = testMapper.getWsHySqdByView(s);
                if (sqd != null && !sqd.isEmpty()){
                    for (LtkjHysqd hysqd : sqd) {
                        LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh());
                        if (null != jybgid) {
                            ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh());
                            ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh());
                        }
                        if (ltkjHysqdService.save(hysqd)) {
                            List<LtkjHybgd> wsbg = testMapper.getWsHyBgdByView(hysqd.getTmh());
                            ltkjHybgdService.saveBatch(wsbg);
                        }
                    }
                }
            }
            List<Aws> awsList = testMapper.getWsxmLtkjHysqdByLisViBySLAVEWS(s);
            if(null !=awsList && !awsList.isEmpty()){
                log.info("外送项目个数->{} 结果",awsList.size());
@@ -277,18 +298,20 @@
        String yqbm = configService.selectConfigByKey("common_api_service_hospbm");
        try {
            List<LtkjExamJcsqd> jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(s,hosp);
            log.info("手动同步检查申请单数据:"+jcsqdList);
            if (null != jcsqdList && !jcsqdList.isEmpty()) {
                DynamicDataSourceContextHolder.clearDataSourceType();
                jcsqdService.deletedLtkjJcsqdByTjhAndTmh(s);
                jcbgdService.deletedLtkjJcbgdByTjhAndTmh(s);
                jcsqdService.saveBatch(jcsqdList);
                List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(s,hosp);
                DynamicDataSourceContextHolder.clearDataSourceType();
//                DynamicDataSourceContextHolder.clearDataSourceType();
                log.info("手动同步检查报告单数据:"+jcbgdList);
                if (null != jcbgdList && !jcbgdList.isEmpty()) jcbgdService.saveBatch(jcbgdList);
                jcycxmService.deletedByTjh(s);
                for (LtkjExamJcsqd jcsqd : jcsqdList) {
                    if(StringUtil.isNotBlank(jcsqd.getJgzt())){
                        String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("。|;|;");
                        jcycxmService.deletedByTjh(s);
                        for (String jg : split) {
                            if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                    && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见")
@@ -315,6 +338,46 @@
        }
    }
    @GetMapping ("/chaxunjyjcwsxmjg")
    @ApiOperation(value = "查询检验检查项目结果接口")
    public AjaxResult chaxunjyjcwsxmjg(@RequestParam @ApiParam(value = "jy检验 jc检查 jyjc检验和检查") String tblx,
                                           @ApiParam(value = "体检号")@RequestParam String tjh, HttpServletRequest request) {
        String hospId = request.getHeader("hospId");
        log.info("手动查询检验或检查结果开始->{}{}",hospId,DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
        try {
            switch (tblx){
                case "jy":
                    List<Map<String, Object>> hysqdList = testMapper.sysgetCcXZxYyLtkjHysqdByLisVi(tjh,hospId);
                    if (null != hysqdList && !hysqdList.isEmpty()) {
                        for (Map<String, Object> map : hysqdList) {
                            List<Map<String, Object>> hybgdList = testMapper.sysgetCcXZxYyLtkjHybgdByLisVi(map.get("条码号").toString());
                            map.put("jybgd",hybgdList);
                        }
                        DynamicDataSourceContextHolder.clearDataSourceType();
                    }
                    log.info("当前查询的是->{} 结果","检验");
                  return AjaxResult.success(hysqdList);
                case "jc":
                    List<Map<String, Object>> jcsqdList = testMapper.sysgetCcXZxYyPacsLtkjExamJcsqd(tjh,hospId);
                    DynamicDataSourceContextHolder.clearDataSourceType();
                    log.info("当前查询的是->{} 结果","检查");
                    return AjaxResult.success(jcsqdList);
                default:
                    log.info("没有找到所匹配的同步类型");
//                    return AjaxResult.error("没有找到所匹配的同步类型!");
            }
            log.info("手动查询检验或检查结果开始->{}",DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
            return AjaxResult.error("没有找到所匹配的同步类型!");
        } catch (Exception e) {
            log.error(String.valueOf(e));
            return AjaxResult.error();
        }
    }
@@ -367,41 +430,74 @@
    @GetMapping ("/tjjcycxm")//同步his项目单价信息
//    @PreAuthorize("@ss.hasPermi('system:config:tbhisproprice')")
    @ApiOperation (value = "tjjcycxm")
    public AjaxResult tjjcycxm() {
        String yqbm = configService.selectConfigByKey("common_api_service_hospbm");
        List<String> jc = orderService.getJianChaTjNum();
        if (null != jc && !jc.isEmpty()) {
            for (String s : jc) {
                jcycxmService.deletedByTjh(s);
                List<LtkjExamJcsqd> list = jcsqdService.getLtkjJcsqdByTjh(s);
                if(null !=list && !list.isEmpty()){
                    for (LtkjExamJcsqd jcsqd : list) {
                        if(StringUtil.isNotBlank(jcsqd.getJgzt())){
    public AjaxResult tjjcycxm(@ApiParam("体检号") @RequestParam(required = false)String tjh) {
        String yqbm = configService.selectConfigByKey("dqyyyqbm");
        if(StringUtil.isNotBlank(tjh)){
            extracted(tjh, yqbm);
        }else {
            List<String> jc = orderService.getJianChaTjNum();
            if (null != jc && !jc.isEmpty()) {
                for (String s : jc) {
                    extracted(s, yqbm);
                }
            }
        }
        return AjaxResult.success();
    }
                            String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("。|;|;");
                            for (String jg : split) {
                                if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                        && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见")
                                        && !jg.contains("未见明显")&& !jg.contains("正常")&& !jg.contains("双侧椎间孔无狭窄")&& !jg.contains("无殊")){
                                    TjJcycxm jcycxm=new TjJcycxm();
                                    jcycxm.setTjh(s);
                                    jcycxm.setYqid(yqbm);
                                    String[] split1 = jcsqd.getJcxmid().split(";");
                                    jcycxm.setProId(split1[0]);
                                    jcycxm.setProName(jcsqd.getJcxmmc());
                                    jcycxm.setCreateTime(new Date());
                                    jcycxm.setJcjg(jg);
                                    jcycxmService.save(jcycxm);
                                }
                            }
    private void extracted(String s, String yqbm) {
        TjOrder order = orderService.getOrderByTjNum(s);
        jcycxmService.deletedByTjh(order.getCardId());
        List<LtkjExamJcsqd> list = jcsqdService.getLtkjJcsqdByTjh(order.getCardId());
        if(null !=list && !list.isEmpty()){
            for (LtkjExamJcsqd jcsqd : list) {
                if(StringUtil.isNotBlank(jcsqd.getJgzt())){
                    String regex = configService.selectConfigByKey("jcycxmzz");
                    if(StringUtil.isBlank(regex)) regex= "。|;|;|,|,";
                    System.out.println("jcycxmzz值为"+regex);
                    String[] split = jcsqd.getJgzt().replaceAll("\n", "").split(regex);
                    for (String jg : split) {
                        if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                && !jg.contains("未见明显异常") && !jg.matches("\\d+")  && !jg.contains("未见占位") && !jg.contains("未见")
                                && !jg.contains("未见明显")&& !jg.contains("正常")&& !jg.contains("双侧椎间孔无狭窄")&& !jg.contains("无殊")){
                            TjJcycxm jcycxm=new TjJcycxm();
                            jcycxm.setTjh(s);
                            jcycxm.setYqid(yqbm);
                            String[] split1 = jcsqd.getJcxmid().split(";");
                            jcycxm.setProId(split1[0]);
                            jcycxm.setProName(jcsqd.getJcxmmc());
                            jcycxm.setCreateTime(new Date());
                            jcycxm.setJcjg(jg);
                            jcycxmService.save(jcycxm);
                        }
                    }
                }
            }
        }
    }
    @GetMapping ("/shoudongtbjcbgdsj")
    @ApiOperation(value = "手动同步检查报告单结果接口")
    public AjaxResult shoudongtbjcbgdsj(HttpServletRequest request) {
        String hospId = request.getHeader("hospId");
        log.info("手动同步检验或检查结果开始->{}{}",hospId,DateUtil.format(new Date(),"yyyy-MM-dd HH:mm:ss"));
        try {
            List<String> jc = orderService.shoudongtbjcbgdsj();
            for (String s : jc) {
                jcbgdService.deletedLtkjJcbgdByTjhAndTmh(s);
                List<LtkjExamJcbgd> jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(s,hospId);
                log.info("手动同步检查报告单数据:"+jcbgdList);
                if (null != jcbgdList && !jcbgdList.isEmpty()) jcbgdService.saveBatch(jcbgdList);
            }
             log.info("当前同步的是->{} 结果","检查");
            return AjaxResult.success("同步成功");
        } catch (Exception e) {
            log.error(String.valueOf(e));
        }
        return AjaxResult.success();
    }