zjh
2025-06-09 a5b599d34b1cbe6f4e84708d1165cce6fb9ef896
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAskMedicalHistoryController.java
@@ -5,10 +5,15 @@
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;
@@ -41,17 +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);
    }
    /**
@@ -89,10 +104,11 @@
    @GetMapping(value = "/getInfoById")
    @ApiOperation(value = "根据客户id获取问诊详细信息")
    public AjaxResult getInfoById(@RequestParam String tjNumber) {
        if (null != tjNumber && !"".equals(tjNumber)) {
            LambdaQueryWrapper<TjAskMedicalHistory> wq = new LambdaQueryWrapper<>();
            wq.eq(TjAskMedicalHistory::getTjNum, tjNumber);
            TjAskMedicalHistory one = tjAskMedicalHistoryService.getOne(wq);
        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) {
                LambdaQueryWrapper<TjAskWorkLog> wqq = new LambdaQueryWrapper<>();
                wqq.eq(TjAskWorkLog::getTjNumber, tjNumber);
@@ -110,27 +126,42 @@
                    askWorkLog.setHarmTypeLogs(skuNos);
                }
                TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                one.setTjLx(order.getTjCategory());
                LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                final List<TjAskHistorys> list11 = historysService.list(wqq111);
                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 one1 = tjOrderService.getOne(wqqq);
                a.setCusId(one1.getUserId());
                TjCustomer byId11 = customerService.getById(a.getCusId());
                if (byId11 != null) {
                    a.setCusName(MatchUtils.hideCusName(byId11.getCusName()));
                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);
            }
        }
        return AjaxResult.success();
        return AjaxResult.error("查无此人");
    }
    /**
@@ -175,11 +206,247 @@
    /**
     * 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) {
    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端");
        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 {
            b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
        }
        if (b) {
            List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
            if (tjAskHistorysList != null && !tjAskHistorysList.isEmpty()) {
                for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
                    tjAskHistorys.setDataType(1);
                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
                    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.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<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();
    }
    /**
     * 删除病史或症状
     * @param historyId
     * @return
     */
    @PostMapping("/removeAskHistorys")
    public AjaxResult removeAskHistorys(@RequestBody List<String > historyId){
        return toAjax(historysService.removeByIds(historyId));
    }
    /**
     * 小程序根据客户身份证号获取问诊详细信息
     */
    @GetMapping(value = "/appGetInfoById")
    @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) {
                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);
            }
        }
        return AjaxResult.error("查无此人");
    }
    /**
     * 小程序修改问诊
     */
    @ApiOperation(value = "小程序修改问诊")
    @PostMapping("/appEdit")
    public AjaxResult appEdit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
        LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
        wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
        tjAskWorkLogService.remove(wq);
@@ -231,68 +498,6 @@
                            }
                        }
                    }
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }
            }
            return AjaxResult.success();
        }
        return AjaxResult.error();
        //return toAjax(tjAskMedicalHistoryService.updateTjAskMedicalHistory(tjAskMedicalHistory));
    }
    /**
     * 小程序根据客户身份证号获取问诊详细信息
     */
    @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());
            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());
                }
                return AjaxResult.success(a);
            }
        }
        return AjaxResult.error("查无此人");
    }
    /**
     * 小程序修改问诊
     */
    @ApiOperation(value = "小程序修改问诊")
    @PostMapping("/appEdit")
    public AjaxResult appEdit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
        boolean b = false;
        tjAskMedicalHistory.setFromBy("小程序端");
        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();
                    }