14ecea8537d5b29ca64c75aad4ff49265018415d..44c1a5542cb3323b748389e9acc18e670f76e836
2025-07-03 zhaowenxuan
2025-07-03
44c1a5 对比 | 目录
2025-07-03 zjh
zjh20250703
126144 对比 | 目录
2025-07-03 zjh
zjh20250703
99d28b 对比 | 目录
2025-07-03 zhaowenxuan
2025-07-03
dedacd 对比 | 目录
18个文件已修改
7个文件已添加
1023 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/ApiJcycpdgjzController.java 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java 83 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java 218 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/websocket/ClientSessionInfo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/websocket/MyWebSocketConfig.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/websocket/interceptor/TokenHandshakeInterceptor.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-framework/src/main/java/com/ltkj/framework/web/exception/GlobalExceptionHandler.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-framework/src/main/java/com/ltkj/framework/web/service/TokenService.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/ApiJcycpdgjz.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/ApiJcycpdgjzMapper.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjHysqdMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ApiJcycpdgjzService.java 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjHysqdService.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/ApiJcycpdgjzServiceImpl.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjHysqdServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/ApiJcycpdgjzMapper.xml 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/hosp/LtkjHysqdMapper.xml 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/config/timer/DefaultScheduled.java
@@ -9,6 +9,7 @@
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.*;
import com.ltkj.system.service.ISysConfigService;
import com.ltkj.web.controller.system.SysConfigController;
import com.ltkj.web.controller.system.TjXdPictureController;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
@@ -66,6 +67,8 @@
    private TjXdtgmdjgService xdtgmdjgService;
    @Resource
    private TjXdPictureController pictureController;
    @Autowired
    private SysConfigController configController;
    private final ReentrantLock reentrantLock = new ReentrantLock();
@@ -150,7 +153,19 @@
                                            if(StringUtil.isNotBlank(jcsqd.getJgzt())){
                                                String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("。|;|;|,|,");
                                                for (String jg : split) {
                                                    if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                                    boolean b = configController.apiJcycpdgjz(jg);
                                                    if(!b){
                                                        TjJcycxm jcycxm=new TjJcycxm();
                                                        jcycxm.setTjh(s);
                                                        jcycxm.setYqid(dqyyyqbm);
                                                        String[] split1 = jcsqd.getJcxmid().split(";");
                                                        jcycxm.setProId(split1[0]);
                                                        jcycxm.setProName(jcsqd.getJcxmmc());
                                                        jcycxm.setCreateTime(new Date());
                                                        jcycxm.setJcjg(jg);
                                                        jcycxmService.save(jcycxm);
                                                    }
                                            /*        if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                                            && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见")
                                                            && !jg.contains("未见明显")&& !jg.contains("正常")&& !jg.contains("双侧椎间孔无狭窄")){
                                                        TjJcycxm jcycxm=new TjJcycxm();
@@ -162,7 +177,7 @@
                                                        jcycxm.setCreateTime(new Date());
                                                        jcycxm.setJcjg(jg);
                                                        jcycxmService.save(jcycxm);
                                                    }
                                                    }*/
                                                }
                                            }
                                        }
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -263,12 +263,14 @@
            lisSaveSqdxxDto.setYbbm(s.substring(s.indexOf("_") + 1));
            String hisBms ="";
            for (TjProject tjProject : entry.getValue()) {
                LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
                dto.setXh(String.valueOf(xh.getAndIncrement() + 1));
                dto.setJyxm(tjProject.getLisXmbm());
                dto.setXmmc(tjProject.getProName());
                dtos.add(dto);
                hisBms+=tjProject.getHisXmbm()+",";
            }
@@ -283,6 +285,19 @@
                log.error("请求失败 ->{}", lisSaveSqdxxDto);
                flag = false;
                break;
            }else {
                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                tree.setCardId(tjOrder.getCardId());
                tree.setPationid(tjCustomer.getPationId());
                tree.setSqdh("jk"+jyxh);
                tree.setFyhj(String.valueOf(allPrice));
                tree.setHisXmdm(hisBms.substring(0,hisBms.length()-1));
                tree.setType("检验");
                tree.setService("lis");
                tree.setTjPrice(String.valueOf(allPrice));
                tree.setCreateTime(DateUtil.date());
                tree.setXmfl(lisSaveSqdxxDto.getYbbm());
                ltkjJianchajianyanTreeService.save(tree);
            }
        }
        return flag;
ltkj-admin/src/main/java/com/ltkj/web/controller/system/ApiJcycpdgjzController.java
New file
@@ -0,0 +1,92 @@
package com.ltkj.web.controller.system;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import com.ltkj.hosp.domain.ApiJcycpdgjz;
import com.ltkj.hosp.service.ApiJcycpdgjzService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ltkj.common.annotation.Log;
import com.ltkj.common.core.controller.BaseController;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.enums.BusinessType;
import com.ltkj.common.utils.poi.ExcelUtil;
import com.ltkj.common.core.page.TableDataInfo;
/**
 * 关键字Controller
 *
 * @author ltkj_赵佳豪&李格
 * @date 2025-07-03
 */
@RestController
@RequestMapping("/system/jcycpdgjz")
public class ApiJcycpdgjzController extends BaseController {
    @Autowired
    private ApiJcycpdgjzService apiJcycpdgjzService;
/**
 * 查询关键字列表
 */
    @GetMapping("/list")
    public TableDataInfo list(ApiJcycpdgjz apiJcycpdgjz) {
        startPage();
        List<ApiJcycpdgjz> list = apiJcycpdgjzService.selectApiJcycpdgjzList(apiJcycpdgjz);
        return getDataTable(list);
    }
    /**
     * 导出关键字列表
     */
    @Log(title = "关键字", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, ApiJcycpdgjz apiJcycpdgjz) {
        List<ApiJcycpdgjz> list = apiJcycpdgjzService.selectApiJcycpdgjzList(apiJcycpdgjz);
        ExcelUtil<ApiJcycpdgjz> util = new ExcelUtil<ApiJcycpdgjz>(ApiJcycpdgjz. class);
        util.exportExcel(response, list, "关键字数据");
    }
    /**
     * 获取关键字详细信息
     */
    @GetMapping(value = "/{id}")
    public AjaxResult getInfo(@PathVariable("id") Long id) {
        return success(apiJcycpdgjzService.selectApiJcycpdgjzById(id));
    }
    /**
     * 新增关键字
     */
    @Log(title = "关键字", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody ApiJcycpdgjz apiJcycpdgjz) {
        return toAjax(apiJcycpdgjzService.save(apiJcycpdgjz));
    }
    /**
     * 修改关键字
     */
    @Log(title = "关键字", businessType = BusinessType.UPDATE)
    @PutMapping
    public AjaxResult edit(@RequestBody ApiJcycpdgjz apiJcycpdgjz) {
        return toAjax(apiJcycpdgjzService.updateById(apiJcycpdgjz));
    }
    /**
     * 删除关键字
     */
    @Log(title = "关键字", businessType = BusinessType.DELETE)
    @DeleteMapping("/{ids}")
    public AjaxResult remove(@PathVariable Long[] ids) {
        return toAjax(apiJcycpdgjzService.deleteApiJcycpdgjzByIds(ids));
    }
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysConfigController.java
@@ -79,6 +79,8 @@
    private AwsService awsService;
    @Autowired
    private IdUtils idUtils;
    @Autowired
    private ApiJcycpdgjzService apiJcycpdgjzService;
    /**
     * 获取参数配置列表
@@ -290,7 +292,19 @@
                        if(StringUtil.isNotBlank(jcsqd.getJgzt())){
                            String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("。|;|;|,|,");
                            for (String jg : split) {
                                if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                boolean b = apiJcycpdgjz(jg);
                                if(!b){
                                    TjJcycxm jcycxm=new TjJcycxm();
                                    jcycxm.setTjh(s);
                                    jcycxm.setYqid(dqyyyqbm);
                                    String[] split1 = jcsqd.getJcxmid().split(";");
                                    jcycxm.setProId(split1[0]);
                                    jcycxm.setProName(jcsqd.getJcxmmc());
                                    jcycxm.setCreateTime(new Date());
                                    jcycxm.setJcjg(jg);
                                    jcycxmService.save(jcycxm);
                                }
                         /*       if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                                        && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见")
                                        && !jg.contains("未见明显")&& !jg.contains("正常")&& !jg.contains("双侧椎间孔无狭窄")){
                                    TjJcycxm jcycxm=new TjJcycxm();
@@ -302,7 +316,7 @@
                                    jcycxm.setCreateTime(new Date());
                                    jcycxm.setJcjg(jg);
                                    jcycxmService.save(jcycxm);
                                }
                                }*/
                            }
                        }
                    }
@@ -440,25 +454,40 @@
    public void zongjianshengchengyichangxiangmu(String s, String yqbm) {
        TjOrder order = orderService.getOrderByTjNum(s);
        jcycxmService.deletedByTjh(s);
        List<LtkjExamJcsqd> list = jcsqdService.getLtkjJcsqdByTjh(order.getCardId());
        if(null !=list && !list.isEmpty()){
            for (LtkjExamJcsqd jcsqd : list) {
                if(StringUtil.isNotBlank(jcsqd.getJgzt())){
                    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);
        if(null != order){
            jcycxmService.deletedByTjh(s);
            List<LtkjExamJcsqd> list = jcsqdService.getLtkjJcsqdByTjh(order.getCardId());
            if(null !=list && !list.isEmpty()){
                for (LtkjExamJcsqd jcsqd : list) {
                    if(StringUtil.isNotBlank(jcsqd.getJgzt())){
                        String[] split = jcsqd.getJgzt().replaceAll("\n", "").split("。|;|;|,|,");
                        for (String jg : split) {
                            boolean b = apiJcycpdgjz(jg);
                            if(!b){
                                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);
                            }
                     /*       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);
                            }*/
                        }
                    }
                }
@@ -507,4 +536,16 @@
        return AjaxResult.success();
    }
    public boolean apiJcycpdgjz(String jg) {
        if(StringUtil.isNotBlank(jg)){
            List<String> gjzList = apiJcycpdgjzService.getGjzList();
            if(null !=gjzList && !gjzList.isEmpty()){
                return gjzList.stream().anyMatch(jg::contains);
            }
        }
        return false;
    }
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -545,7 +545,7 @@
        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjOrder::getUserId, cusId);
        List<TjOrder> orderList = orderService.list(wq1);
        if (null != orderList && orderList.size() > 0) {
        if (null != orderList && !orderList.isEmpty()) {
            List<TjOrder> orderList0 = new ArrayList<>();
            for (TjOrder tjOrder : orderList) {
                LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
@@ -855,14 +855,14 @@
                        if (configByKey.equals("Y")) {
                            HashMap<String, Object> hisRequestParams = new HashMap<>();
                            // 不在需要身份证号
                            hisRequestParams.put("patientId", tjOrder.getCardId());
                                hisRequestParams.put("patientId", tjOrder.getCardId());
                            log.info("ltkj--- " + DateUtil.date() + "操作人id: " + userId + "操作科室: " + sysUser.getDeptId() + "操作的体检人: " + tjNumber);
                            AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
                            if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
                                int sfsf = ltkjJianchajianyanTreeService.getSfsfByCardId(tjOrder.getCardId());
                                int sfsf1 = ltkjJianchajianyanTreeService.getCallSfsfByCardId(tjOrder.getCardId());
                                log.info("存储过程返回的是:  " + sfsf1 + " 代码返回的是  " + sfsf);
                                if (sfsf > 0 || sfsf1 > 0) {
                                if (sfsf1 > 0) {
                                    log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就单数  " + sfsf);
                                    log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                                    return AjaxResult.error("存在未缴费项目");
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysNoticeController.java
@@ -1,10 +1,13 @@
package com.ltkj.web.controller.system;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.core.domain.model.LoginUser;
@@ -12,6 +15,8 @@
import com.ltkj.hosp.domain.SysNoticeUser;
import com.ltkj.hosp.service.SysNoticeUserService;
import com.ltkj.system.service.ISysUserService;
import com.ltkj.web.websocket.ClientSessionInfo;
import com.ltkj.web.websocket.WebSockerManager;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
@@ -31,6 +36,8 @@
import com.ltkj.common.enums.BusinessType;
import com.ltkj.system.domain.SysNotice;
import com.ltkj.system.service.ISysNoticeService;
import org.springframework.web.socket.TextMessage;
import org.springframework.web.socket.WebSocketSession;
/**
 * 公告 信息操作处理
@@ -46,6 +53,8 @@
    private SysNoticeUserService sysNoticeUserService;
    @Autowired
    private ISysUserService userService;
    @Autowired
    private WebSockerManager webSockerManager;
    /**
     * 获取通知公告列表
@@ -113,6 +122,14 @@
                sysNoticeUserService.save(user);
            }
        }else return AjaxResult.error();
        for (Map.Entry<String, ClientSessionInfo> entry : webSockerManager.userSessions.entrySet()) {
            if (!notice.getUserIds().contains(entry.getKey())) continue;
            WebSocketSession session = entry.getValue().getSession();
            try {
                session.sendMessage(new TextMessage(JSONUtil.toJsonStr(notice)));
            } catch (IOException ignored) {
            }
        }
        return AjaxResult.success();
    }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -465,15 +465,22 @@
                        //同步检验
                        if (null != baoGaoDans && baoGaoDans.size() > 0) {
                            Date dates = new Date();
                            Map<String, Object> map = new HashMap<>();
                            map.put("his_registration_id", order.getCardId());
                            map.put("ksbm", "");
                            map.put("pationid", "");
                            map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss"));
                            map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss"));
                            map.put("pagecount", 10);
                            map.put("page", 1);
                            AjaxResult result = controller.Getlabreportinfo(map);
                            String jytbfs = configService.selectConfigByKey("jytbfs");
                            AjaxResult result;
                            if (StrUtil.isBlank(jytbfs) || jytbfs.equalsIgnoreCase("Y")){
                                Map<String, Object> map = new HashMap<>();
                                map.put("his_registration_id", order.getCardId());
                                map.put("ksbm", "");
                                map.put("pationid", "");
                                map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss"));
                                map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss"));
                                map.put("pagecount", 10);
                                map.put("page", 1);
                                result = controller.Getlabreportinfo(map);
                            }else{
                                result = ltkjHysqdService.getAsyncDataByPro("体检中心", order.getCardId(), "''", 100, 1);
                            }
                            String result1 = getAjaxResult(result);
                            JSONObject object = getJSONObject(result1);
                            String code = object.getStr("ResultCode");
@@ -505,68 +512,71 @@
                                hysqd.setShrxm(jsonObject.getStr("JYYSQM"));
                                hysqd.setJybgjg(jsonObject.getStr("JYBGJG"));
                                if (ltkjHysqdService.save(hysqd)) {
                                    Map<String, Object> hashMap = new HashMap<>();
                                    hashMap.put("jybgid", hysqd.getTmh());
                                    AjaxResult bgdres = controller.Getlabdetailinfo(hashMap);
                                    String result2 = getAjaxResult(bgdres);
                                    JSONObject object1 = getJSONObject(result2);
                                    String code1 = object1.getStr("ResultCode");
                                    if (null != code1 && code1.equals("0")) {
                                        JSONArray datas = object1.getJSONArray("ResultData");
                                        for (Object o : datas) {
                                            JSONObject js = (JSONObject) o;
                                    if(StrUtil.isBlank(jytbfs) || jytbfs.equalsIgnoreCase("Y")){
                                        Map<String, Object> hashMap = new HashMap<>();
                                        hashMap.put("jybgid", hysqd.getTmh());
                                        AjaxResult bgdres = controller.Getlabdetailinfo(hashMap);
                                        String result2 = getAjaxResult(bgdres);
                                        JSONObject object1 = getJSONObject(result2);
                                        String code1 = object1.getStr("ResultCode");
                                        if (null != code1 && code1.equals("0")) {
                                            JSONArray datas = object1.getJSONArray("ResultData");
                                            for (Object o : datas) {
                                                JSONObject js = (JSONObject) o;
//                            ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jsonObject.getStr("JYBGID"));
                                            LtkjHybgd bgd = new LtkjHybgd();
                                            bgd.setTmh(hysqd.getTmh());
                                            bgd.setJcxmid(js.getStr("JCZBDM"));
                                            bgd.setJcxm(js.getStr("JCZBMC"));
                                            bgd.setTdh(js.getStr(""));
                                            bgd.setJyjg(js.getStr("JCZBJG"));
                                            bgd.setJgdw(js.getStr("JLDW"));
                                            bgd.setFwzdz(js.getStr(""));
                                            bgd.setFwzgz(js.getStr(""));
                                            bgd.setFwz(js.getStr("CKZFW"));
                                            bgd.setJysj(js.getStr("BGRQ"));
                                            bgd.setJyys(js.getStr("JCRBH"));
                                            bgd.setShsj(js.getStr("BGRQ"));
                                            bgd.setShsj(js.getStr("BGRQ"));
                                            bgd.setShys(js.getStr("SHRBH"));
                                            bgd.setShysmc(js.getStr("SHRXM"));
                                            bgd.setYcbz(js.getStr("YCTS"));
                                                LtkjHybgd bgd = new LtkjHybgd();
                                                bgd.setTmh(hysqd.getTmh());
                                                bgd.setJcxmid(js.getStr("JCZBDM"));
                                                bgd.setJcxm(js.getStr("JCZBMC"));
                                                bgd.setTdh(js.getStr(""));
                                                bgd.setJyjg(js.getStr("JCZBJG"));
                                                bgd.setJgdw(js.getStr("JLDW"));
                                                bgd.setFwzdz(js.getStr(""));
                                                bgd.setFwzgz(js.getStr(""));
                                                bgd.setFwz(js.getStr("CKZFW"));
                                                bgd.setJysj(js.getStr("BGRQ"));
                                                bgd.setJyys(js.getStr("JCRBH"));
                                                bgd.setShsj(js.getStr("BGRQ"));
                                                bgd.setShsj(js.getStr("BGRQ"));
                                                bgd.setShys(js.getStr("SHRBH"));
                                                bgd.setShysmc(js.getStr("SHRXM"));
                                                bgd.setYcbz(js.getStr("YCTS"));
//                            bgd.setTpurl(js.getStr(""));
                                            ltkjHybgdService.save(bgd);
                                                ltkjHybgdService.save(bgd);
                                            }
                                        }
                                    }
                                    Map<String, Object> fbhashMap = new HashMap<>();
                                    fbhashMap.put("jybgid", hysqd.getTmh());
                                    AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap);
                                    String ajaxResult = getAjaxResult(fbres);
                                    JSONObject fbobject = getJSONObject(ajaxResult);
                                    String fbcode = fbobject.getStr("ResultCode");
                                    if (null != fbcode && fbcode.equals("0")) {
                                        JSONArray datas = fbobject.getJSONArray("ResultData");
                                        for (Object o : datas) {
                                            JSONObject js = (JSONObject) o;
                                            LtkjHybgd bgd = new LtkjHybgd();
                                            bgd.setTmh(hysqd.getTmh());
                                            bgd.setJcxmid(hysqd.getXmid());
                                            bgd.setJcxm(hysqd.getXmmc());
                                            bgd.setTdh(js.getStr(""));
                                            bgd.setJyjg(js.getStr("JCJG"));
                                            bgd.setJgdw("/");
                                            bgd.setFwzdz("/");
                                            bgd.setFwzgz("/");
                                            bgd.setFwz("/");
                                            bgd.setJysj(js.getStr("BGRQ"));
                                            bgd.setJyys(hysqd.getSqrxm());
                                            bgd.setShsj(js.getStr("BGRQ"));
                                            bgd.setShys(hysqd.getShrdm());
                                            bgd.setShysmc(hysqd.getShrxm());
                                            ltkjHybgdService.save(bgd);
                                        Map<String, Object> fbhashMap = new HashMap<>();
                                        fbhashMap.put("jybgid", hysqd.getTmh());
                                        AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap);
                                        String ajaxResult = getAjaxResult(fbres);
                                        JSONObject fbobject = getJSONObject(ajaxResult);
                                        String fbcode = fbobject.getStr("ResultCode");
                                        if (null != fbcode && fbcode.equals("0")) {
                                            JSONArray datas = fbobject.getJSONArray("ResultData");
                                            for (Object o : datas) {
                                                JSONObject js = (JSONObject) o;
                                                LtkjHybgd bgd = new LtkjHybgd();
                                                bgd.setTmh(hysqd.getTmh());
                                                bgd.setJcxmid(hysqd.getXmid());
                                                bgd.setJcxm(hysqd.getXmmc());
                                                bgd.setTdh(js.getStr(""));
                                                bgd.setJyjg(js.getStr("JCJG"));
                                                bgd.setJgdw("/");
                                                bgd.setFwzdz("/");
                                                bgd.setFwzgz("/");
                                                bgd.setFwz("/");
                                                bgd.setJysj(js.getStr("BGRQ"));
                                                bgd.setJyys(hysqd.getSqrxm());
                                                bgd.setShsj(js.getStr("BGRQ"));
                                                bgd.setShys(hysqd.getShrdm());
                                                bgd.setShysmc(hysqd.getShrxm());
                                                ltkjHybgdService.save(bgd);
                                            }
                                        }
                                    }else {
                                        saveHybgdPro(hysqd);
                                    }
                                }
                            }
                            //同步化验项目
@@ -779,7 +789,7 @@
                                map.put("page", 1);
                                result = controller.Getlabreportinfo(map);
                            }else {
                                result = ltkjHysqdService.getAsyncDataByPro("体检中心", order.getCardId(), "''", 100, 1, "'1'");
                                result = ltkjHysqdService.getAsyncDataByPro("体检中心", order.getCardId(), "''", 100, 1);
                            }
                            log.info("检验项目查询返回值:      " + JSONUtil.toJsonStr(result));
@@ -816,10 +826,18 @@
                                    List<LtkjHysqd> list = ltkjHysqdService.list(queryWrapper);
                                    if (list.isEmpty())
                                        isInsertHysqd = true;
                                    if (isInsertHysqd) {
                                        saveHysqd(hysqd);
                                    } else {
                                        saveHybgd(hysqd);
                                    if(StrUtil.isBlank(jytbfs) || jytbfs.equalsIgnoreCase("Y")){
                                        if (isInsertHysqd) {
                                            saveHysqd(hysqd);
                                        } else {
                                            saveHybgd(hysqd);
                                        }
                                    }else {
                                        if (isInsertHysqd) {
                                            saveHysqdPro(hysqd);
                                        } else {
                                            saveHybgdPro(hysqd);
                                        }
                                    }
                                }
                            } else {
@@ -946,6 +964,12 @@
        }
    }
    private void saveHysqdPro(LtkjHysqd hysqd) {
        if (ltkjHysqdService.save(hysqd)) {
            saveHybgdPro(hysqd);
        }
    }
    private void saveHybgd(LtkjHysqd hysqd) {
        Map<String, Object> hashMap = new HashMap<>();
        hashMap.put("jybgid", hysqd.getTmh());
@@ -1017,6 +1041,60 @@
        }
    }
    private void saveHybgdPro(LtkjHysqd hysqd) {
        List<Map<String, Object>> mapList = ltkjHysqdService.getAsyncJybgdByPro(hysqd.getTmh());
        log.info("usp_his_getlabdetailinfolttj 返回->\n{}",JSONUtil.toJsonStr(mapList));
        for (Map<String, Object> map : mapList) {
            JSONObject js = JSONUtil.parseObj(map);
            LtkjHybgd bgd = new LtkjHybgd();
            bgd.setTmh(hysqd.getTmh());
            bgd.setJcxmid(js.getStr("JCZBDM"));
            bgd.setJcxm(js.getStr("JCZBMC"));
            bgd.setTdh(js.getStr(""));
            bgd.setJyjg(js.getStr("JCZBJG"));
            bgd.setJgdw(js.getStr("JLDW"));
            bgd.setFwzdz(js.getStr(""));
            bgd.setFwzgz(js.getStr(""));
            bgd.setFwz(js.getStr("CKZFW"));
            bgd.setJysj(js.getStr("BGRQ"));
            bgd.setJyys(js.getStr("JCRBH"));
            bgd.setShsj(js.getStr("BGRQ"));
            bgd.setShsj(js.getStr("BGRQ"));
            bgd.setShys(js.getStr("SHRBH"));
            bgd.setShysmc(js.getStr("SHRXM"));
            bgd.setYcbz(js.getStr("YCTS"));
            bgd.setCreateTime(new Date());
            QueryWrapper<LtkjHybgd> queryWrapper = new QueryWrapper<>(bgd);
            List<LtkjHybgd> list = ltkjHybgdService.list(queryWrapper);
            if (list.isEmpty())
                ltkjHybgdService.save(bgd);
        }
        List<Map<String, Object>> mapList1 = ltkjHysqdService.getAsyncJybgdWswByPro(hysqd.getTmh());
        log.info("usp_his_getlabgermrepinfolttj 返回->\n{}",JSONUtil.toJsonStr(mapList1));
        for (Map<String, Object> map : mapList1) {
            JSONObject js = JSONUtil.parseObj(map);
            LtkjHybgd bgd = new LtkjHybgd();
            bgd.setTmh(hysqd.getTmh());
            bgd.setJcxmid(hysqd.getXmid());
            bgd.setJcxm(hysqd.getXmmc());
            bgd.setTdh(js.getStr(""));
            bgd.setJyjg(js.getStr("JCJG"));
            bgd.setJgdw("/");
            bgd.setFwzdz("/");
            bgd.setFwzgz("/");
            bgd.setFwz("/");
            bgd.setJysj(js.getStr("BGRQ"));
            bgd.setJyys(hysqd.getSqrxm());
            bgd.setShsj(js.getStr("BGRQ"));
            bgd.setShys(hysqd.getShrdm());
            bgd.setShysmc(hysqd.getShrxm());
            QueryWrapper<LtkjHybgd> queryWrapper = new QueryWrapper<>(bgd);
            List<LtkjHybgd> list = ltkjHybgdService.list(queryWrapper);
            if (list.isEmpty())
                ltkjHybgdService.save(bgd);
        }
    }
    //将方法返回值解析成json格式
    public JSONObject getJSONObject(String builder) {
        String Response = JSONUtil.parseObj(builder).getStr("Response");
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1204,9 +1204,12 @@
            boolean b = lock.tryLock(3, TimeUnit.MINUTES);
            if (b) {
                AjaxResult result = processOrderWithTransaction(tjOrder, tjCustomer, tjReservation, tjFlowingWater, mallOrder, sysUser);
                if (!result.get("code").toString().equals("200"))
                if (!result.get("code").toString().equals("200")) {
                    hisApiMethod.ZfHisApiMethod(tjOrder.getCardId());
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                tjOrderService.tjQiandaodengji(tjOrder.getTjNumber());
                }else {
                    tjOrderService.tjQiandaodengji(tjOrder.getTjNumber());
                }
                return result;
            }
        }catch (Exception e){
@@ -1405,7 +1408,10 @@
                        tjFlowingWater.setPayStasus(1L);
                        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                        AjaxResult ajaxResult = hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder, sysUser, result);
                        if (!ajaxResult.get("code").toString().equals("200")) return ajaxResult;
                        if (!ajaxResult.get("code").toString().equals("200")){
                            throw new IllegalStateException("团体申请单发送失败!" + result.get("msg").toString());
//                            return ajaxResult;
                        }
                        tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                                sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                        remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReportController.java
@@ -413,7 +413,7 @@
                    return shengchengbgmoban(tjNumber, tjOrder, tjCustomer, reportTemplate,zongJianYiShiQianMing);
                } catch (Exception e) {
//                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    log.error("生成报告失败:"+e.getMessage(),String.valueOf(e));
                    log.error("生成报告失败:",e);
                    tjOrder.setReportTime(null);
                    tjOrder.setCheckTime(null);
                    tjOrder.setCheckStatus(0);
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjXdPictureController.java
@@ -75,6 +75,8 @@
    private LtkjExamJcsqdService jcsqdService;
    @Autowired
    private TjJcycxmService jcycxmService;
    @Autowired
    private SysConfigController configController;
    /**
     * 查询体检心电图管理列表
     */
@@ -441,7 +443,18 @@
                String s = "。|;|;|,|,";
                String[] split = xdtgmdjg.getJcjl().replaceAll("\n", "。").split(s);
                for (String jg : split) {
                    if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                    boolean b = configController.apiJcycpdgjz(jg);
                    if(!b){
                        TjJcycxm jcycxm=new TjJcycxm();
                        jcycxm.setTjh(xdtgmdjg.getTjh());
                        jcycxm.setYqid("");
                        jcycxm.setProId(xdtgmdjg.getProId());
                        jcycxm.setProName(xdtgmdjg.getProName());
                        jcycxm.setCreateTime(new Date());
                        jcycxm.setJcjg(jg);
                        jcycxmService.save(jcycxm);
                    }
/*                    if(StringUtil.isNotBlank(jg) && !jg.contains("未见异常")
                            && !jg.contains("未见明显异常") && !jg.contains("未见占位") && !jg.contains("未见")
                            && !jg.contains("未见明显")&& !jg.contains("正常")&& !jg.contains("双侧椎间孔无狭窄")){
                        TjJcycxm jcycxm=new TjJcycxm();
@@ -452,7 +465,7 @@
                        jcycxm.setCreateTime(new Date());
                        jcycxm.setJcjg(jg);
                        jcycxmService.save(jcycxm);
                    }
                    }*/
                }
            }
        } catch (Exception e) {
ltkj-admin/src/main/java/com/ltkj/web/websocket/ClientSessionInfo.java
@@ -2,10 +2,12 @@
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.web.socket.WebSocketSession;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ClientSessionInfo {
    private WebSocketSession session;
    private String code;
ltkj-admin/src/main/java/com/ltkj/web/websocket/MyWebSocketConfig.java
@@ -1,5 +1,6 @@
package com.ltkj.web.websocket;
import com.ltkj.web.websocket.interceptor.TokenHandshakeInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
@@ -16,10 +17,12 @@
public class MyWebSocketConfig implements WebSocketConfigurer {
    @Autowired
    private WebSockerManager webSockerManager;
    @Autowired
    private TokenHandshakeInterceptor tokenHandshakeInterceptor;
    @Override
    public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
        registry.addHandler(webSockerManager, "/ws")
//                .addInterceptors(tokenHandshakeInterceptor)
                .addInterceptors(tokenHandshakeInterceptor)
                .setAllowedOrigins("*"); // 允许跨域
    }
}
ltkj-admin/src/main/java/com/ltkj/web/websocket/WebSockerManager.java
@@ -1,6 +1,7 @@
package com.ltkj.web.websocket;
import cn.hutool.json.JSONUtil;
import com.ltkj.common.core.domain.model.LoginUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.CloseStatus;
@@ -9,7 +10,10 @@
import org.springframework.web.socket.handler.TextWebSocketHandler;
import redis.clients.jedis.util.SafeEncoder;
import java.util.ArrayList;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/**
 * @Company: 西安路泰科技有限公司
@@ -20,20 +24,19 @@
@Component
public class WebSockerManager extends TextWebSocketHandler {
    private static final ConcurrentHashMap<Long, ClientSessionInfo> userSessions = new ConcurrentHashMap<>();
    public final ConcurrentHashMap<String, ClientSessionInfo> userSessions = new ConcurrentHashMap<>();
    private static final ConcurrentHashMap<String, WebSocketClientInfo> sessions = new ConcurrentHashMap<>();
    private WebSocketClientInfo getUser(WebSocketSession session) {
//        long uid = Long.parseLong(session.getAttributes().get("uid").toString());
//        String hospId = session.getAttributes().get("hospId").toString();
//        WebSocketClientInfo info = new WebSocketClientInfo();
//        info.setUid(uid);
//        info.setHospId(hospId);
//        return info;
        WebSocketClientInfo clientInfo = new WebSocketClientInfo();
        clientInfo.setUid(123L);
        clientInfo.setHospId("hosp");
        return clientInfo;
        LoginUser loginUser = (LoginUser) session.getAttributes().get("user");
        WebSocketClientInfo info = new WebSocketClientInfo();
        info.setUid(Long.parseLong(loginUser.getUserId()));
        info.setHospId(loginUser.getHospName());
        return info;
//        WebSocketClientInfo clientInfo = new WebSocketClientInfo();
//        clientInfo.setUid(123L);
//        clientInfo.setHospId("hosp");
//        return clientInfo;
    }
    @Override
@@ -41,8 +44,12 @@
        WebSocketClientInfo clientInfo = getUser(session);
//        userSessions.put(clientInfo.getUid(), new ClientSessionInfo(session, clientInfo.getHospId()));
        sessions.put(session.getId(),clientInfo);
        log.info(JSONUtil.toJsonStr(sessions));
        ClientSessionInfo sessionInfo = new ClientSessionInfo();
        sessionInfo.setSession(session);
        sessionInfo.setCode(clientInfo.getHospId());
        userSessions.put(String.valueOf(clientInfo.getUid()), sessionInfo);
        session.sendMessage(new TextMessage("连接成功"));
        log.info("[WebSocket] 在线列表UserIds\n{}",JSONUtil.toJsonStr(new ArrayList<>(userSessions.keySet())));
    }
    @Override
@@ -62,5 +69,7 @@
    @Override
    public void afterConnectionClosed(WebSocketSession session, CloseStatus status) throws Exception {
        log.info("[WebSocket] 连接关闭: " + status);
        WebSocketClientInfo clientInfo = sessions.get(session.getId());
        userSessions.remove(String.valueOf(clientInfo.getUid()));
    }
}
ltkj-admin/src/main/java/com/ltkj/web/websocket/interceptor/TokenHandshakeInterceptor.java
New file
@@ -0,0 +1,59 @@
package com.ltkj.web.websocket.interceptor;
import com.ltkj.common.core.domain.model.LoginUser;
import com.ltkj.framework.web.service.TokenService;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.server.ServerHttpRequest;
import org.springframework.http.server.ServerHttpResponse;
import org.springframework.stereotype.Component;
import org.springframework.web.socket.WebSocketHandler;
import org.springframework.web.socket.server.HandshakeInterceptor;
import java.net.URI;
import java.util.Map;
@Component
public class TokenHandshakeInterceptor implements HandshakeInterceptor {
    @Autowired
    private TokenService tokenService;
    @Override
    public boolean beforeHandshake(ServerHttpRequest request,
                                   ServerHttpResponse response,
                                   WebSocketHandler wsHandler,
                                   Map<String, Object> attributes) {
        URI uri = request.getURI();
        String query = uri.getQuery();
        String token = null;
        if (query != null && query.startsWith("token=")) {
            token = query.substring("token=".length());
        }
        if (token == null) {
            System.out.println("[WebSocket] 令牌无效拒绝");
            return false;
        }
        LoginUser validToken = isValidToken(token);
        if (validToken == null) {
            System.out.println("[WebSocket] 令牌无效拒绝");
            return false;
        }
        attributes.put("user", validToken);
        return true;
    }
    @Override
    public void afterHandshake(ServerHttpRequest request,
                               ServerHttpResponse response,
                               WebSocketHandler wsHandler,
                               Exception exception) {
    }
    private LoginUser isValidToken(String token) {
        String tokenStr = token.replace("Bearer", "").trim();
        Claims claims = tokenService.parseToken(tokenStr);
        return tokenService.getLoginUser(claims);
    }
}
ltkj-framework/src/main/java/com/ltkj/framework/web/exception/GlobalExceptionHandler.java
@@ -54,7 +54,7 @@
        log.error(e.getMessage(), e);
        Integer code = e.getCode();
        return StringUtils.isNotNull(code) ? AjaxResult.error(code, e.getMessage()) : AjaxResult.error(e.getMessage());
//        return AjaxResult.error("数据处理异常,请联系管理员!");
//        return AjaxResult.error("数据正在加载中, 请稍等!");
    }
    /**
@@ -64,7 +64,7 @@
    public AjaxResult handleRuntimeException(RuntimeException e, HttpServletRequest request) {
        String requestURI = request.getRequestURI();
        log.error("请求地址'{}',发生未知异常.", requestURI, e);
        return AjaxResult.error("数据处理异常,请联系管理员!");
        return AjaxResult.error("数据正在加载中, 请稍等!");
    }
    /**
@@ -74,7 +74,7 @@
    public AjaxResult handleException(Exception e, HttpServletRequest request) {
        String requestURI = request.getRequestURI();
        log.error("请求地址'{}',发生系统异常.", requestURI, e);
        return AjaxResult.error("数据处理异常,请联系管理员!");
        return AjaxResult.error("数据正在加载中, 请稍等!");
    }
    /**
ltkj-framework/src/main/java/com/ltkj/framework/web/service/TokenService.java
@@ -73,6 +73,13 @@
        return null;
    }
    public LoginUser getLoginUser(Claims claims){
        // 解析对应的权限以及用户信息
        String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
        String userKey = getTokenKey(uuid);
        return redisCache.getCacheObject(userKey);
    }
    /**
     * 设置用户身份信息
     */
@@ -186,7 +193,7 @@
     * @param token 令牌
     * @return 数据声明
     */
    private Claims parseToken(String token) {
    public Claims parseToken(String token) {
        return Jwts.parser()
                .setSigningKey(secret)
                .parseClaimsJws(token)
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/ApiJcycpdgjz.java
New file
@@ -0,0 +1,31 @@
package com.ltkj.hosp.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.ltkj.common.annotation.Excel;
import com.ltkj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * ClassName: ApiJcycpdgjz <br/>
 * Description: <br/>
 * date: 2025/7/3 15:03<br/>
 *
 * @author zjh<br />
 */
@Data
@ApiModel(value = "体检检查异常判断关键字表")
public class ApiJcycpdgjz extends BaseEntity {
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    /**
     * 单位id
     */
    @Excel(name = "关键字")
    @ApiModelProperty(value = "关键字")
    private String gjz;
}
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/ApiJcycpdgjzMapper.java
New file
@@ -0,0 +1,70 @@
package com.ltkj.hosp.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ltkj.hosp.domain.ApiJcycpdgjz;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * ClassName: ApiJcycpdgjzMapper <br/>
 * Description: <br/>
 * date: 2025/7/3 15:05<br/>
 *
 * @author zjh<br />
 */
@Mapper
public interface ApiJcycpdgjzMapper extends BaseMapper<ApiJcycpdgjz> {
    /**
     * 查询关键字
     *
     * @param id 关键字主键
     * @return 关键字
     */
    public ApiJcycpdgjz selectApiJcycpdgjzById(Long id);
    /**
     * 查询关键字列表
     *
     * @param apiJcycpdgjz 关键字
     * @return 关键字集合
     */
    public List<ApiJcycpdgjz> selectApiJcycpdgjzList(ApiJcycpdgjz apiJcycpdgjz);
    /**
     * 新增关键字
     *
     * @param apiJcycpdgjz 关键字
     * @return 结果
     */
    public int insertApiJcycpdgjz(ApiJcycpdgjz apiJcycpdgjz);
    /**
     * 修改关键字
     *
     * @param apiJcycpdgjz 关键字
     * @return 结果
     */
    public int updateApiJcycpdgjz(ApiJcycpdgjz apiJcycpdgjz);
    /**
     * 删除关键字
     *
     * @param id 关键字主键
     * @return 结果
     */
    public int deleteApiJcycpdgjzById(Long id);
    /**
     * 批量删除关键字
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteApiJcycpdgjzByIds(Long[] ids);
    @Select("select  a.gjz from  api_jcycpdgjz a where  a.deleted=0")
    List<String> getGjzList();
}
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/LtkjHysqdMapper.java
@@ -111,6 +111,14 @@
                                                @Param("str_in")String strIn,
                                                @Param("brid")String brid,
                                                @Param("pagecount")int pagecount,
                                                @Param("page")int page,
                                                @Param("status")String status);
                                                @Param("page")int page);
    @DataSource(value = DataSourceType.SLAVE_HIS)
    @Qualifier(value = "slaveHisDataSource")
    List<Map<String ,Object>> getAsyncHybgdDataByPro(@Param("str_in")String strIn);
    @DataSource(value = DataSourceType.SLAVE_HIS)
    @Qualifier(value = "slaveHisDataSource")
    List<Map<String ,Object>> getAsyncHybgdWswDataByPro(@Param("str_in")String strIn);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ApiJcycpdgjzService.java
New file
@@ -0,0 +1,66 @@
package com.ltkj.hosp.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ltkj.hosp.domain.ApiJcycpdgjz;
import java.util.List;
/**
 * ClassName: ApiJcycpdgjzService <br/>
 * Description: <br/>
 * date: 2025/7/3 15:06<br/>
 *
 * @author zjh<br />
 */
public interface ApiJcycpdgjzService extends IService<ApiJcycpdgjz> {
    /**
     * 查询关键字
     *
     * @param id 关键字主键
     * @return 关键字
     */
    public ApiJcycpdgjz selectApiJcycpdgjzById(Long id);
    /**
     * 查询关键字列表
     *
     * @param apiJcycpdgjz 关键字
     * @return 关键字集合
     */
    public List<ApiJcycpdgjz> selectApiJcycpdgjzList(ApiJcycpdgjz apiJcycpdgjz);
    /**
     * 新增关键字
     *
     * @param apiJcycpdgjz 关键字
     * @return 结果
     */
    public int insertApiJcycpdgjz(ApiJcycpdgjz apiJcycpdgjz);
    /**
     * 修改关键字
     *
     * @param apiJcycpdgjz 关键字
     * @return 结果
     */
    public int updateApiJcycpdgjz(ApiJcycpdgjz apiJcycpdgjz);
    /**
     * 批量删除关键字
     *
     * @param ids 需要删除的关键字主键集合
     * @return 结果
     */
    public int deleteApiJcycpdgjzByIds(Long[] ids);
    /**
     * 删除关键字信息
     *
     * @param id 关键字主键
     * @return 结果
     */
    public int deleteApiJcycpdgjzById(Long id);
    List<String> getGjzList();
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/LtkjHysqdService.java
@@ -1,5 +1,6 @@
package com.ltkj.hosp.service;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.hosp.domain.TjCustomer;
@@ -9,6 +10,7 @@
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @Company: 西安路泰科技有限公司
@@ -32,5 +34,9 @@
    void deletedByTjhAndXmId(String tjh, String xmid);
    AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page,String status);
    AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page);
    List<Map<String ,Object>> getAsyncJybgdByPro(String strIn);
    List<Map<String ,Object>> getAsyncJybgdWswByPro(String strIn);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/ApiJcycpdgjzServiceImpl.java
New file
@@ -0,0 +1,99 @@
package com.ltkj.hosp.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ltkj.common.utils.DateUtils;
import com.ltkj.hosp.domain.ApiJcycpdgjz;
import com.ltkj.hosp.mapper.ApiJcycpdgjzMapper;
import com.ltkj.hosp.service.ApiJcycpdgjzService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
 * ClassName: ApiJcycpdgjzServiceImpl <br/>
 * Description: <br/>
 * date: 2025/7/3 15:06<br/>
 *
 * @author zjh<br />
 */
@Service
public class ApiJcycpdgjzServiceImpl extends ServiceImpl<ApiJcycpdgjzMapper, ApiJcycpdgjz> implements ApiJcycpdgjzService {
    @Autowired
    private ApiJcycpdgjzMapper apiJcycpdgjzMapper;
    /**
     * 查询关键字
     *
     * @param id 关键字主键
     * @return 关键字
     */
    @Override
    public ApiJcycpdgjz selectApiJcycpdgjzById(Long id) {
        return apiJcycpdgjzMapper.selectApiJcycpdgjzById(id);
    }
    /**
     * 查询关键字列表
     *
     * @param apiJcycpdgjz 关键字
     * @return 关键字
     */
    @Override
    public List<ApiJcycpdgjz> selectApiJcycpdgjzList(ApiJcycpdgjz apiJcycpdgjz) {
        return apiJcycpdgjzMapper.selectApiJcycpdgjzList(apiJcycpdgjz);
    }
    /**
     * 新增关键字
     *
     * @param apiJcycpdgjz 关键字
     * @return 结果
     */
    @Override
    public int insertApiJcycpdgjz(ApiJcycpdgjz apiJcycpdgjz) {
        apiJcycpdgjz.setCreateTime(DateUtils.getNowDate());
        return apiJcycpdgjzMapper.insertApiJcycpdgjz(apiJcycpdgjz);
    }
    /**
     * 修改关键字
     *
     * @param apiJcycpdgjz 关键字
     * @return 结果
     */
    @Override
    public int updateApiJcycpdgjz(ApiJcycpdgjz apiJcycpdgjz) {
        apiJcycpdgjz.setUpdateTime(DateUtils.getNowDate());
        return apiJcycpdgjzMapper.updateApiJcycpdgjz(apiJcycpdgjz);
    }
    /**
     * 批量删除关键字
     *
     * @param ids 需要删除的关键字主键
     * @return 结果
     */
    @Override
    public int deleteApiJcycpdgjzByIds(Long[] ids) {
        return apiJcycpdgjzMapper.deleteApiJcycpdgjzByIds(ids);
    }
    /**
     * 删除关键字信息
     *
     * @param id 关键字主键
     * @return 结果
     */
    @Override
    public int deleteApiJcycpdgjzById(Long id) {
        return apiJcycpdgjzMapper.deleteApiJcycpdgjzById(id);
    }
    @Override
    public List<String> getGjzList() {
        return apiJcycpdgjzMapper.getGjzList();
    }
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/LtkjHysqdServiceImpl.java
@@ -1,5 +1,7 @@
package com.ltkj.hosp.service.impl;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.hosp.domain.TjCustomer;
@@ -16,6 +18,7 @@
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * 病种+意见Service业务层处理
@@ -65,7 +68,23 @@
    }
    @Override
    public AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page,String status) {
        return AjaxResult.success().put("ResultData",mapper.getAsyncDataByPro(ksmc,strIn,brid,pagecount,page,status)).put("code",0);
    public AjaxResult getAsyncDataByPro(String ksmc,String strIn,String brid,int pagecount,int page) {
        List<Map<String, Object>> maps = mapper.getAsyncDataByPro(ksmc, strIn, brid, pagecount, page);
        JSONObject entries = JSONUtil.createObj();
        entries.putOpt("ResultCode","0");
        entries.putOpt("ResultData",maps);
        JSONObject object = JSONUtil.createObj();
        object.putOpt("Response",entries);
        return AjaxResult.success().put("data",object).put("code",0);
    }
    @Override
    public List<Map<String ,Object>> getAsyncJybgdByPro(String strIn) {
        return mapper.getAsyncHybgdDataByPro(strIn);
    }
    @Override
    public List<Map<String, Object>> getAsyncJybgdWswByPro(String strIn) {
        return mapper.getAsyncHybgdWswDataByPro(strIn);
    }
}
ltkj-hosp/src/main/resources/mapper/ApiJcycpdgjzMapper.xml
New file
@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ltkj.hosp.mapper.ApiJcycpdgjzMapper">
    <resultMap type="ApiJcycpdgjz" id="ApiJcycpdgjzResult">
            <result property="id" column="id"/>
            <result property="gjz" column="gjz"/>
            <result property="createTime" column="create_time"/>
            <result property="createBy" column="create_by"/>
            <result property="updateTime" column="update_time"/>
            <result property="updateBy" column="update_by"/>
            <result property="deleted" column="deleted"/>
    </resultMap>
    <sql id="selectApiJcycpdgjzVo">
        select id, gjz, create_time, create_by, update_time, update_by, deleted
        from api_jcycpdgjz
    </sql>
    <select id="selectApiJcycpdgjzList" parameterType="ApiJcycpdgjz" resultMap="ApiJcycpdgjzResult">
        <include refid="selectApiJcycpdgjzVo"/>
        <where>
                        <if test="gjz != null  and gjz != ''">
                            and gjz like concat('%', #{gjz}, '%')
                        </if>
        </where>
    </select>
    <select id="selectApiJcycpdgjzById" parameterType="Long"
            resultMap="ApiJcycpdgjzResult">
            <include refid="selectApiJcycpdgjzVo"/>
            where id = #{id}
    </select>
    <insert id="insertApiJcycpdgjz" parameterType="ApiJcycpdgjz" useGeneratedKeys="true"
            keyProperty="id">
        insert into api_jcycpdgjz
        <trim prefix="(" suffix=")" suffixOverrides=",">
                    <if test="gjz != null">gjz,
                    </if>
                    <if test="createTime != null">create_time,
                    </if>
                    <if test="createBy != null">create_by,
                    </if>
                    <if test="updateTime != null">update_time,
                    </if>
                    <if test="updateBy != null">update_by,
                    </if>
                    <if test="deleted != null">deleted,
                    </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                    <if test="gjz != null">#{gjz},
                    </if>
                    <if test="createTime != null">#{createTime},
                    </if>
                    <if test="createBy != null">#{createBy},
                    </if>
                    <if test="updateTime != null">#{updateTime},
                    </if>
                    <if test="updateBy != null">#{updateBy},
                    </if>
                    <if test="deleted != null">#{deleted},
                    </if>
        </trim>
    </insert>
    <update id="updateApiJcycpdgjz" parameterType="ApiJcycpdgjz">
        update api_jcycpdgjz
        <trim prefix="SET" suffixOverrides=",">
                    <if test="gjz != null">gjz =
                        #{gjz},
                    </if>
                    <if test="createTime != null">create_time =
                        #{createTime},
                    </if>
                    <if test="createBy != null">create_by =
                        #{createBy},
                    </if>
                    <if test="updateTime != null">update_time =
                        #{updateTime},
                    </if>
                    <if test="updateBy != null">update_by =
                        #{updateBy},
                    </if>
                    <if test="deleted != null">deleted =
                        #{deleted},
                    </if>
        </trim>
        where id = #{id}
    </update>
    <delete id="deleteApiJcycpdgjzById" parameterType="Long">
        delete
        from api_jcycpdgjz where id = #{id}
    </delete>
    <delete id="deleteApiJcycpdgjzByIds" parameterType="String">
        delete from api_jcycpdgjz where id in
        <foreach item="id" collection="array" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>
</mapper>
ltkj-hosp/src/main/resources/mapper/hosp/LtkjHysqdMapper.xml
@@ -10,8 +10,17 @@
        ${brid},
        ${str_in},
        ${pagecount},
        ${page},
        ${status}
        ${page}
    </select>
    <select id="getAsyncHybgdDataByPro" resultType="java.util.Map">
        exec usp_his_getlabdetailinfolttj
        ${str_in}
    </select>
    <select id="getAsyncHybgdWswDataByPro" resultType="java.util.Map">
        exec usp_his_getlabgermrepinfolttj
        ${str_in}
    </select>
</mapper>