zjh
2024-12-30 1b7ed7edb09aaecf68ddf3396ee007bc6eadf52a
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAskMedicalHistoryController.java
@@ -1,26 +1,25 @@
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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.framework.config.MatchUtils;
import com.ltkj.hosp.domain.TjAskHistorys;
import com.ltkj.hosp.domain.TjCustomer;
import com.ltkj.hosp.service.ITjAskHistorysService;
import com.ltkj.hosp.service.ITjCustomerService;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.service.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.val;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
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.hosp.domain.TjAskMedicalHistory;
import com.ltkj.hosp.service.ITjAskMedicalHistoryService;
import com.ltkj.common.utils.poi.ExcelUtil;
import com.ltkj.common.core.page.TableDataInfo;
@@ -42,12 +41,32 @@
    private ITjCustomerService customerService;
    @Resource
    private ITjCustomerService tjCustomerService;
    @Autowired
    private ITjAskWorkLogService tjAskWorkLogService;
    @Autowired
    private ITjHarmTypeLogService tjHarmTypeLogService;
    @Autowired
    private ITjHarmTypeService tjHarmTypeService;
    @Resource
    private ITjOrderService tjOrderService;
    /**
     * 查询问诊列表
     */
    @PreAuthorize("@ss.hasPermi('hosp:history:list')")
    @GetMapping("/getZhengZhuang")
    @ApiOperation(value = "获取症状接口集")
    public AjaxResult getZhengZhuang() {
        List<DictZhengzhuang> zhengZhuang = tjAskMedicalHistoryService.getZhengZhuang();
        return AjaxResult.success(zhengZhuang);
    }
    /**
     * 查询问诊列表
     */
    @GetMapping("/list")
    public TableDataInfo list(TjAskMedicalHistory tjAskMedicalHistory) {
        startPage();
@@ -58,7 +77,6 @@
    /**
     * 导出问诊列表
     */
    @PreAuthorize("@ss.hasPermi('hosp:history:export')")
    @Log(title = "问诊", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(HttpServletResponse response, TjAskMedicalHistory tjAskMedicalHistory) {
@@ -70,7 +88,6 @@
    /**
     * 获取问诊详细信息
     */
    @PreAuthorize("@ss.hasPermi('hosp:history:query')")
    @GetMapping(value = "/{askId}")
    public AjaxResult getInfo(@PathVariable("askId") Long askId) {
        return success(tjAskMedicalHistoryService.selectTjAskMedicalHistoryByAskId(askId));
@@ -81,33 +98,93 @@
     */
    @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);
                }
                LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                final List<TjAskHistorys> list11 = historysService.list(wqq111);
                one.setTjAskHistorysList(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 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("查无此人");
    }
    /**
     * 新增问诊
     */
    //@PreAuthorize("@ss.hasPermi('hosp:history:add')")
    @Transactional
    @Log(title = "问诊", businessType = BusinessType.INSERT)
    @PostMapping
    public AjaxResult add(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
        return toAjax(tjAskMedicalHistoryService.insertTjAskMedicalHistory(tjAskMedicalHistory));
        tjAskMedicalHistoryService.insertTjAskMedicalHistory(tjAskMedicalHistory);
        final List<TjAskWorkLog> workLogs = tjAskMedicalHistory.getWorkLogs();
        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);
                        }
                    }
                }
            }
        }
        return AjaxResult.success();
    }
@@ -115,30 +192,66 @@
     * pc端修改问诊
     */
    @ApiOperation(value = "pc端修改问诊")
    //@PreAuthorize("@ss.hasPermi('hosp:history:edit')")
    @Log(title = "问诊", businessType = BusinessType.UPDATE)
    @PutMapping
    @Transactional
    public AjaxResult edit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
        boolean b =false;
        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){
        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.size() > 0) {
                for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
                    if (!b1){
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }
            }
            return AjaxResult.success();
            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));
@@ -149,26 +262,46 @@
     * 小程序根据客户身份证号获取问诊详细信息
     */
    @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());
                final List<TjAskHistorys> list11 = historysService.list(wqq111);
                one.setTjAskHistorysList(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()));
                }
                return AjaxResult.success(a);
            }
        }
@@ -182,20 +315,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();
                    }
                }
@@ -208,7 +379,6 @@
    /**
     * 删除问诊
     */
    @PreAuthorize("@ss.hasPermi('hosp:history:remove')")
    @Log(title = "问诊", businessType = BusinessType.DELETE)
    @DeleteMapping("/{askIds}")
    public AjaxResult remove(@PathVariable Long[] askIds) {