zjh
2025-06-09 a5b599d34b1cbe6f4e84708d1165cce6fb9ef896
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAskMedicalHistoryController.java
@@ -1,13 +1,19 @@
package com.ltkj.web.controller.system;
import java.util.List;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.framework.config.MatchUtils;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.service.*;
import com.ltkj.web.controller.dto.PutAskMedicalHistoryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.val;
@@ -40,11 +46,27 @@
    private ITjCustomerService customerService;
    @Resource
    private ITjCustomerService tjCustomerService;
    @Autowired
    private ITjAskWorkLogService tjAskWorkLogService;
    @Autowired
    private ITjHarmTypeLogService tjHarmTypeLogService;
    @Autowired
    private ITjHarmTypeService tjHarmTypeService;
    @Resource
    private ITjOrderService tjOrderService;
    /**
     * 查询问诊列表
     */
    @GetMapping("/getZhengZhuang")
    @ApiOperation(value = "获取症状接口集")
    public AjaxResult getZhengZhuang() {
        List<DictZhengzhuang> zhengZhuang = tjAskMedicalHistoryService.getZhengZhuang();
        return AjaxResult.success(zhengZhuang);
    }
    /**
@@ -81,23 +103,65 @@
     */
    @GetMapping(value = "/getInfoById")
    @ApiOperation(value = "根据客户id获取问诊详细信息")
    public AjaxResult getInfoById(@RequestParam String userId) {
        if (null != userId && !"".equals(userId)) {
            LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
            wq.eq(TjAskMedicalHistory::getCusId, Long.valueOf(userId));
            TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq);
    public AjaxResult getInfoById(@RequestParam String tjNumber) {
        if (null != tjNumber && !tjNumber.isEmpty()) {
//            LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
//            wq.eq(TjAskMedicalHistory::getTjNum, tjNumber);
//            TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq);
            TjAskMedicalHistory one = tjAskMedicalHistoryService.selectTjAskMedicalHistoryByTjNum(tjNumber);
            if (one != null) {
                return success(tjAskMedicalHistoryService.selectTjAskMedicalHistoryByAskId(one.getAskId()));
                LambdaQueryWrapper<TjAskWorkLog> wqq = new LambdaQueryWrapper<>();
                wqq.eq(TjAskWorkLog::getTjNumber, tjNumber);
                final List<TjAskWorkLog> list = tjAskWorkLogService.list(wqq);
                one.setWorkLogs(list);
                for (TjAskWorkLog askWorkLog : list) {
                    LambdaQueryWrapper<TjHarmTypeLog> wqq1 = new LambdaQueryWrapper<>();
                    wqq1.eq(TjHarmTypeLog::getWorkId, askWorkLog.getId());
                    final List<TjHarmTypeLog> list1 = tjHarmTypeLogService.list(wqq1);
                    List<String> skuNos = list1.stream()
                            .map(TjHarmTypeLog::getAid)
                            .collect(Collectors.toList());
                    askWorkLog.setHarmTypeLogs(skuNos);
                }
                TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                one.setTjLx(order.getTjCategory());
                LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                wqq111.eq(TjAskHistorys::getDataType,1);
                List<TjAskHistorys> list11 = historysService.list(wqq111);
                one.setTjAskHistorysList(list11);
                wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                wqq111.eq(TjAskHistorys::getDataType,2);
                list11 = historysService.list(wqq111);
                one.setZhiyezzList(list11);
                return AjaxResult.success(one);
            }else {
                TjAskMedicalHistory a = new TjAskMedicalHistory();
                LambdaQueryWrapper<TjOrder> wqqq = new LambdaQueryWrapper<>();
                wqqq.eq(TjOrder::getTjNumber, tjNumber);
                final TjOrder order = tjOrderService.getOne(wqqq);
                a.setCusId(order.getUserId());
                a.setTjNum(order.getTjNumber());
                a.setTjLx(order.getTjCategory());
                TjCustomer customer = customerService.getById(a.getCusId());
                if (customer != null) {
                    a.setCusName(customer.getCusName());
                    a.setCusIdCard(customer.getCusIdcard());
                    a.setCusSex(String.valueOf(customer.getCusSex()));
                }
                return AjaxResult.success(a);
            }
            TjAskMedicalHistory a = new TjAskMedicalHistory();
            a.setCusId(Long.valueOf(userId));
            TjCustomer byId = customerService.getById(a.getCusId());
            if (byId != null) {
                a.setCusName(MatchUtils.hideCusName(byId.getCusName()));
            }
            return AjaxResult.success(a);
        }
        return AjaxResult.success();
        return AjaxResult.error("查无此人");
    }
    /**
@@ -109,16 +173,29 @@
    public AjaxResult add(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
        tjAskMedicalHistoryService.insertTjAskMedicalHistory(tjAskMedicalHistory);
        final List<TjAskWorkLog> workLogs = tjAskMedicalHistory.getWorkLogs();
        for (TjAskWorkLog workLog : workLogs) {
            final boolean save = tjAskWorkLogService.save(workLog);
            if (!save){
                return AjaxResult.error();
            }
            List<TjHarmTypeLog> harmTypeLogs = workLog.getHarmTypeLogs();
            for (TjHarmTypeLog harmTypeLog : harmTypeLogs) {
                final boolean save1 = tjHarmTypeLogService.save(harmTypeLog);
                if (!save1){
        if (workLogs != null) {
            for (TjAskWorkLog workLog : workLogs) {
                workLog.setCusId(tjAskMedicalHistory.getCusId());
                workLog.setCusName(tjAskMedicalHistory.getCusName());
                workLog.setTjNumber(tjAskMedicalHistory.getTjNum());
                final boolean save = tjAskWorkLogService.save(workLog);
                if (!save) {
                    return AjaxResult.error();
                }
                List<String> harmTypeLogs = workLog.getHarmTypeLogs();
                if (harmTypeLogs != null) {
                    for (String harmTypeLog : harmTypeLogs) {
                        final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
                        if (byId != null) {
                            TjHarmTypeLog log = new TjHarmTypeLog();
                            log.setAid(byId.getAid());
                            log.setCusId(tjAskMedicalHistory.getCusId());
                            log.setCusName(tjAskMedicalHistory.getCusName());
                            log.setTjNumber(tjAskMedicalHistory.getTjNum());
                            log.setWorkId(workLog.getId());
                            tjHarmTypeLogService.saveOrUpdate(log);
                        }
                    }
                }
            }
        }
@@ -129,49 +206,176 @@
    /**
     * pc端修改问诊
     */
//    @ApiOperation(value = "pc端修改问诊")
//    @Log(title = "问诊", businessType = BusinessType.UPDATE)
//    @PutMapping
//    @Transactional
//    public AjaxResult edit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
//        LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
//        wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
//        tjAskWorkLogService.remove(wq);
//        LambdaQueryWrapper<TjHarmTypeLog> wq1 = new LambdaQueryWrapper<>();
//        wq1.eq(TjHarmTypeLog::getTjNumber, tjAskMedicalHistory.getTjNum());
//        tjHarmTypeLogService.remove(wq1);
//
//
//        boolean b = false;
//        tjAskMedicalHistory.setFromBy("PC端");
//        if (tjAskMedicalHistory.getAskId() != null) {
//            b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
//        } else {
//            b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
//        }
//        if (b) {
//            List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
//            if (tjAskHistorysList != null && tjAskHistorysList.size() > 0) {
//                for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
//                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
//                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
//                    if (!b1) {
//                        return AjaxResult.error();
//                    }
//                }
//            }
//
//            List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
//            if (askWorkLogs != null && askWorkLogs.size() > 0) {
//                for (TjAskWorkLog askWorkLog : askWorkLogs) {
//                    askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
//                    askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
//                    askWorkLog.setTjNumber(tjAskMedicalHistory.getTjNum());
//                    askWorkLog.setAskId(tjAskMedicalHistory.getAskId());
//                    boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog);
//                    List<String> harmTypeLogs = askWorkLog.getHarmTypeLogs();
//                    if (harmTypeLogs != null) {
//                        for (String harmTypeLog : harmTypeLogs) {
//                            final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
//                            if (byId != null) {
//                                TjHarmTypeLog log = new TjHarmTypeLog();
//                                log.setAid(byId.getAid());
//                                log.setCusId(tjAskMedicalHistory.getCusId());
//                                log.setCusName(tjAskMedicalHistory.getCusName());
//                                log.setTjNumber(tjAskMedicalHistory.getTjNum());
//                                log.setWorkId(askWorkLog.getId());
//                                tjHarmTypeLogService.save(log);
//                            }
//                        }
//                    }
//                    if (!b1) {
//                        return AjaxResult.error();
//                    }
//                }
//            }
//            return AjaxResult.success(tjAskMedicalHistory);
//        }
//        return AjaxResult.error();
//        //return toAjax(tjAskMedicalHistoryService.updateTjAskMedicalHistory(tjAskMedicalHistory));
//    }
    /**
     * pc端修改问诊
     */
    @ApiOperation(value = "pc端修改问诊")
    @Log(title = "问诊", businessType = BusinessType.UPDATE)
    @PutMapping
    @Transactional
    public AjaxResult edit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
        boolean b =false;
    public AjaxResult edit(@RequestBody PutAskMedicalHistoryDto askMedicalHistoryDto) {
        TjAskMedicalHistory tjAskMedicalHistory = new TjAskMedicalHistory();
        BeanUtil.copyProperties(askMedicalHistoryDto,tjAskMedicalHistory,true);
        LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
        wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
        tjAskWorkLogService.remove(wq);
        LambdaQueryWrapper<TjHarmTypeLog> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjHarmTypeLog::getTjNumber, tjAskMedicalHistory.getTjNum());
        tjHarmTypeLogService.remove(wq1);
        boolean b = false;
        tjAskMedicalHistory.setFromBy("PC端");
        if (tjAskMedicalHistory.getAskId()!=null){
        JSONArray medicalHistory = askMedicalHistoryDto.getMedicalHistory();
        String medicalHistoryTxt = medicalHistory.stream().map(item -> {
            JSONObject entries = (JSONObject) item;
            return entries.getStr("icdname");
        }).collect(Collectors.joining(","));
        String medicalHistoryIds = medicalHistory.stream().map(item -> {
            JSONObject entries = (JSONObject) item;
            return entries.getStr("id");
        }).collect(Collectors.joining(","));
        tjAskMedicalHistory.setMedicalHistoryIds(medicalHistoryIds);
        tjAskMedicalHistory.setMedicalHistory(medicalHistoryTxt);
        if (tjAskMedicalHistory.getAskId() != null) {
            b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
        }else {
        } else {
            b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
        }
        //boolean b = tjAskMedicalHistoryService.saveOrUpdate(tjAskMedicalHistory);
        if (b){
        if (b) {
            List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
            if (tjAskHistorysList!=null&&tjAskHistorysList.size()>0){
            if (tjAskHistorysList != null && !tjAskHistorysList.isEmpty()) {
                for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
                    tjAskHistorys.setDataType(1);
                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
                    if (!b1){
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }
            }
            List<TjAskHistorys> zhiyezzList = askMedicalHistoryDto.getZhiyezzList();
            if (zhiyezzList != null && !zhiyezzList.isEmpty()) {
                for (TjAskHistorys tjAskHistorys : zhiyezzList) {
                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
                    tjAskHistorys.setDataType(2);
                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }
            }
            List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
            if (askWorkLogs!=null&&askWorkLogs.size()>0){
            if (askWorkLogs != null && !askWorkLogs.isEmpty()) {
                for (TjAskWorkLog askWorkLog : askWorkLogs) {
                    askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
                    askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
                    askWorkLog.setTjNumber(tjAskMedicalHistory.getTjNum());
                    askWorkLog.setAskId(tjAskMedicalHistory.getAskId());
                    boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog);
                    List<TjHarmTypeLog> harmTypeLogs = askWorkLog.getHarmTypeLogs();
                    for (TjHarmTypeLog harmTypeLog : harmTypeLogs) {
                        tjHarmTypeLogService.saveOrUpdate(harmTypeLog);
                    List<String> harmTypeLogs = askWorkLog.getHarmTypeLogs();
                    if (harmTypeLogs != null) {
                        for (String harmTypeLog : harmTypeLogs) {
                            final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
                            if (byId != null) {
                                TjHarmTypeLog log = new TjHarmTypeLog();
                                log.setAid(byId.getAid());
                                log.setCusId(tjAskMedicalHistory.getCusId());
                                log.setCusName(tjAskMedicalHistory.getCusName());
                                log.setTjNumber(tjAskMedicalHistory.getTjNum());
                                log.setWorkId(askWorkLog.getId());
                                tjHarmTypeLogService.save(log);
                            }
                        }
                    }
                    if (!b1){
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }
            }
            return AjaxResult.success();
            return AjaxResult.success(tjAskMedicalHistory);
        }
        return AjaxResult.error();
        //return toAjax(tjAskMedicalHistoryService.updateTjAskMedicalHistory(tjAskMedicalHistory));
    }
    /**
     * 删除病史或症状
     * @param historyId
     * @return
     */
    @PostMapping("/removeAskHistorys")
    public AjaxResult removeAskHistorys(@RequestBody List<String > historyId){
        return toAjax(historysService.removeByIds(historyId));
    }
@@ -179,26 +383,57 @@
     * 小程序根据客户身份证号获取问诊详细信息
     */
    @GetMapping(value = "/appGetInfoById")
    @ApiOperation(value = "小程序根据客户身份证号获取问诊详细信息")
    public AjaxResult appGetInfoById(@RequestParam("cusIdCard") String cusIdCard) {
        LambdaQueryWrapper<TjCustomer> wqqq=new LambdaQueryWrapper<>();
        wqqq.eq(TjCustomer::getCusIdcard,cusIdCard);
        TjCustomer one1 = tjCustomerService.getOne(wqqq);
        if (one1!=null){
            LambdaQueryWrapper<TjAskMedicalHistory> wq=new LambdaQueryWrapper<>();
            wq.eq(TjAskMedicalHistory::getCusId,one1.getCusId());
    @ApiOperation(value = "小程序根据体检号获取问诊详细信息")
    public AjaxResult appGetInfoById(@RequestParam("tjNumber") String tjNumber) {
        if (null != tjNumber && !"".equals(tjNumber)) {
            LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
            wq.eq(TjAskMedicalHistory::getTjNum, tjNumber);
            TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq);
            if (one!=null){
                return success(tjAskMedicalHistoryService.selectTjAskMedicalHistoryByAskId(one.getAskId()));
            }else {
                TjAskMedicalHistory a=new TjAskMedicalHistory();
                a.setCusId(Long.valueOf(one1.getCusId()));
                TjCustomer byId = customerService.getById(a.getCusId());
                if (byId!=null){
                    a.setCusName(byId.getCusName());
            if (one != null) {
                LambdaQueryWrapper<TjAskWorkLog> wqq = new LambdaQueryWrapper<>();
                wqq.eq(TjAskWorkLog::getTjNumber, tjNumber);
                final List<TjAskWorkLog> list = tjAskWorkLogService.list(wqq);
                one.setWorkLogs(list);
                for (TjAskWorkLog askWorkLog : list) {
                    LambdaQueryWrapper<TjHarmTypeLog> wqq1 = new LambdaQueryWrapper<>();
                    wqq1.eq(TjHarmTypeLog::getWorkId, askWorkLog.getId());
                    final List<TjHarmTypeLog> list1 = tjHarmTypeLogService.list(wqq1);
                    List<String> skuNos = list1.stream()
                            .map(TjHarmTypeLog::getAid)
                            .collect(Collectors.toList());
                    askWorkLog.setHarmTypeLogs(skuNos);
                }
                LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                wqq111.eq(TjAskHistorys::getDataType,1);
                List<TjAskHistorys> list11 = historysService.list(wqq111);
                one.setTjAskHistorysList(list11);
                wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                wqq111.eq(TjAskHistorys::getDataType,2);
                list11 = historysService.list(wqq111);
                one.setZhiyezzList(list11);
                TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                one.setTjLx(order.getTjCategory());
                return AjaxResult.success(one);
            }else {
                TjAskMedicalHistory a = new TjAskMedicalHistory();
                LambdaQueryWrapper<TjOrder> wqqq = new LambdaQueryWrapper<>();
                wqqq.eq(TjOrder::getTjNumber, tjNumber);
                final TjOrder one1 = tjOrderService.getOne(wqqq);
                a.setCusId(one1.getUserId());
                TjCustomer byId11 = customerService.getById(a.getCusId());
                if (byId11 != null) {
                    a.setCusName(MatchUtils.hideCusName(byId11.getCusName()));
                }
                return AjaxResult.success(a);
            }
        }
@@ -212,20 +447,58 @@
    @ApiOperation(value = "小程序修改问诊")
    @PostMapping("/appEdit")
    public AjaxResult appEdit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
        boolean b =false;
        tjAskMedicalHistory.setFromBy("小程序端");
        if (tjAskMedicalHistory.getAskId()!=null){
        LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
        wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
        tjAskWorkLogService.remove(wq);
        LambdaQueryWrapper<TjHarmTypeLog> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjHarmTypeLog::getTjNumber, tjAskMedicalHistory.getTjNum());
        tjHarmTypeLogService.remove(wq1);
        boolean b = false;
        tjAskMedicalHistory.setFromBy("PC端");
        if (tjAskMedicalHistory.getAskId() != null) {
            b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
        }else {
        } else {
            b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
        }
        if (b){
        //boolean b = tjAskMedicalHistoryService.saveOrUpdate(tjAskMedicalHistory);
        if (b) {
            List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
            if (tjAskHistorysList!=null&&tjAskHistorysList.size()>0){
            if (tjAskHistorysList != null && tjAskHistorysList.size() > 0) {
                for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
                    if (!b1){
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }
            }
            List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
            if (askWorkLogs != null && askWorkLogs.size() > 0) {
                for (TjAskWorkLog askWorkLog : askWorkLogs) {
                    askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
                    askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
                    askWorkLog.setTjNumber(tjAskMedicalHistory.getTjNum());
                    askWorkLog.setAskId(tjAskMedicalHistory.getAskId());
                    boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog);
                    List<String> harmTypeLogs = askWorkLog.getHarmTypeLogs();
                    if (harmTypeLogs != null) {
                        for (String harmTypeLog : harmTypeLogs) {
                            final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
                            if (byId != null) {
                                TjHarmTypeLog log = new TjHarmTypeLog();
                                log.setAid(byId.getAid());
                                log.setCusId(tjAskMedicalHistory.getCusId());
                                log.setCusName(tjAskMedicalHistory.getCusName());
                                log.setTjNumber(tjAskMedicalHistory.getTjNum());
                                log.setWorkId(askWorkLog.getId());
                                tjHarmTypeLogService.saveOrUpdate(log);
                            }
                        }
                    }
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }