zhaowenxuan
2024-07-25 3125fb7ad8311a5de530dcd71a51fc79fb5323a7
ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReportController.java
@@ -3,6 +3,7 @@
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -14,6 +15,10 @@
import com.ltkj.framework.config.UserHoder;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.LtkjExamJcbgd;
import com.ltkj.hosp.sqlDomain.LtkjExamJcsqd;
import com.ltkj.hosp.sqlDomain.LtkjHybgd;
import com.ltkj.hosp.sqlDomain.LtkjHysqd;
import com.ltkj.mall.mallOrderUtils.TjConstants;
import com.ltkj.web.config.pdfutils.PDFBinaryUtil;
import io.swagger.annotations.Api;
@@ -32,6 +37,7 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.math.BigDecimal;
import java.net.URL;
import java.util.*;
import java.util.stream.Collectors;
@@ -50,35 +56,35 @@
    @Resource
    private ITjReportService reportService;
    @Resource
    private ITjCustomerService customerService;
    @Autowired
    private ITjOrderService orderService;
    @Autowired
    private ITjOrderDetailService detailService;
    @Resource
    private ITjProjectService projectService;
    @Resource
    private ITjOrderRemarkService remarkService;
    @Resource
    private ITjStandardService standardService;
    @Resource
    private ITjAdviceService adviceService;
    @Resource
    private IDictCompService compService;
    @Resource
    private ITjReportTemplateService reportTemplateService;
    @Value("${path.filePath}")
    private String value;
    @Resource
    private LtkjHybgdService ltkjHybgdService;
    @Resource
    private LtkjHysqdService ltkjHysqdService;
    @Resource
    private LtkjExamJcbgdService jcbgdService;
    @Resource
    private LtkjExamJcsqdService jcsqdService;
    /**
     * 小程序查询体检报告列表
@@ -124,7 +130,7 @@
    public AjaxResult getRelativeReportList(@RequestParam @ApiParam(value = "姓名") String cusName,
                                            @RequestParam @ApiParam(value = "身份证号") String cusIdcard) {
        LambdaQueryWrapper<TjCustomer> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjCustomer::getCusName, cusName);
        wq1.like(TjCustomer::getCusName, cusName);
        wq1.eq(TjCustomer::getCusIdcard, cusIdcard);
        TjCustomer customer = customerService.getOne(wq1);
        if (null != customer) {
@@ -166,6 +172,7 @@
        TjCustomer customer = customerService.getOne(wq22);
        LambdaQueryWrapper<TjOrderRemark> wqm = new LambdaQueryWrapper<>();
        wqm.eq(TjOrderRemark::getTjNumber, tjNumber);
        wqm.in(TjOrderRemark::getDeptId,"100", "240", "253", "254", "255", "257", "258", "259", "269", "270");
        List<TjOrderRemark> remarkList = remarkService.list(wqm);
        List<Map<String, Object>> abnormalList = new ArrayList<>();
        if (null != remarkList && remarkList.size() > 0) {
@@ -200,26 +207,27 @@
                            }
                            LambdaQueryWrapper<TjProject> wqqqq = new LambdaQueryWrapper<>();
                            wqqqq.eq(TjProject::getProId, tjOrderDetail.getProId());
                            wqqqq.eq(TjProject::getNeedReport,"Y");
                            tjOrderDetail.setProject(projectService.getOne(wqqqq));
                            LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>();
                            wq6.eq(TjStandard::getProId, tjOrderDetail.getProId());
                            List<TjStandard> list2 = standardService.list(wq6);
                            if (list2.size() == 0) {
                                tjOrderDetail.setStandard(null);
                            } else if (list2.size() == 1) {
                                tjOrderDetail.setStandard(list2.get(0));
                            } else {
                                for (TjStandard tjStandard : list2) {
                                    LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
                                    if (tjStandard.getTjSex() != null) {
                                        wq8.eq(TjStandard::getTjSex, customer.getCusSex());
                                    }
                                    if (tjStandard.getTjType() != null) {
                                        wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())));
                                    }
                                    tjOrderDetail.setStandard(standardService.getOne(wq8));
                                }
                            }
                            //                            LambdaQueryWrapper<TjStandard> wq6 = new LambdaQueryWrapper<>();
//                            wq6.eq(TjStandard::getProId, tjOrderDetail.getProId());
//                            List<TjStandard> list2 = standardService.list(wq6);
//                            if (list2.size() == 0) {
//                                tjOrderDetail.setStandard(null);
//                            } else if (list2.size() == 1) {
//                                tjOrderDetail.setStandard(list2.get(0));
//                            } else {
//                                for (TjStandard tjStandard : list2) {
//                                    LambdaQueryWrapper<TjStandard> wq8 = new LambdaQueryWrapper<>();
//                                    if (tjStandard.getTjSex() != null) {
//                                        wq8.eq(TjStandard::getTjSex, customer.getCusSex());
//                                    }
//                                    if (tjStandard.getTjType() != null) {
//                                        wq8.eq(TjStandard::getTjType, StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())));
//                                    }
//                                    tjOrderDetail.setStandard(standardService.getOne(wq8));
//                                }
//                            }
                        }
                        LambdaQueryWrapper<TjAdvice> wq3 = new LambdaQueryWrapper<>();
                        wq3.eq(TjAdvice::getProId, remark.getProId());
@@ -241,6 +249,84 @@
        return AjaxResult.success("该客户在没有体检项目数据!");
    }
    @GetMapping("/getHyReportByTjNumber")
    @ApiOperation(value = "小程序-体检化验报告查询详情")
    public AjaxResult getHyReportByTjNumber(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjOrder::getTjNumber, tjNumber);
        wq1.eq(TjOrder::getCheckStatus, 1);
        TjOrder one = orderService.getOne(wq1);
        if (one == null) {
            return AjaxResult.success("体检暂未完成!!");
        }
        List<LtkjHysqd> hysqdList = ltkjHysqdService.getLtkjHysqdByTjh(one.getCardId());
        if(null !=hysqdList && hysqdList.size()>0){
            List<Map<String, Object>> list = new ArrayList<>();
            for (LtkjHysqd hysqd : hysqdList) {
                Map<String, Object> map = new HashMap<>();
                map.put("parent",hysqd.getXmmc());
                List<LtkjHybgd> hybgdList = ltkjHybgdService.getJianYanBaoGaoDanList(hysqd.getTmh());
                if(null !=hybgdList && hybgdList.size()>0){
                    for (LtkjHybgd hybgd : hybgdList) {
                        String jyjg = hybgd.getJyjg();
                        String fwz = hybgd.getFwz();
                        if (jyjg != null && StrUtil.isNotBlank(jyjg) && fwz != null && StrUtil.isNotBlank(fwz)){
                            try {
                                String[] fwzs = fwz.split("-");
                                BigDecimal min = new BigDecimal(fwzs[0]);
                                BigDecimal max = new BigDecimal(fwzs[1]);
                                BigDecimal jyjgval = new BigDecimal(jyjg);
                                // 比较检验结果和范围值
                                if (jyjgval.compareTo(min) < 0) {
                                    // jyjg 小于范围最小值,添加下箭头
                                    jyjg = jyjg + "   ↓";
                                } else if (jyjgval.compareTo(max) > 0) {
                                    // jyjg 大于范围最大值,添加上箭头
                                    jyjg = jyjg + "   ↑";
                                }
                                hybgd.setJyjg(jyjg);
                            } catch (Exception ignored) {}
                        }
                    }
                }
                map.put("sons",hybgdList);
                list.add(map);
            }
            return AjaxResult.success(list);
        }
        return AjaxResult.success("该客户在没有体检项目数据!");
    }
    @GetMapping("/getJcReportByTjNumber")
    @ApiOperation(value = "小程序-体检检查报告查询详情")
    public AjaxResult getJcReportByTjNumber(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjOrder::getTjNumber, tjNumber);
        wq1.eq(TjOrder::getCheckStatus, 1);
        TjOrder one = orderService.getOne(wq1);
        if (one == null) {
            return AjaxResult.success("体检暂未完成!!");
        }
        List<LtkjExamJcsqd> jcsqdList = jcsqdService.getLtkjJcsqdByTjh(one.getCardId());
        if(null !=jcsqdList && jcsqdList.size()>0){
            List<Map<String, Object>> list = new ArrayList<>();
            for (LtkjExamJcsqd jcsqd : jcsqdList) {
                Map<String, Object> map = new HashMap<>();
                map.put("parent",jcsqd.getJcxmmc());
                map.put("jcbx",jcsqd.getJgbx());
                List<LtkjExamJcbgd> jcbgdList = jcbgdService.getJianJcBaoGaoDanList(jcsqd.getTmh());
                map.put("sons",jcbgdList);
                list.add(map);
            }
            return AjaxResult.success(list);
        }
        return AjaxResult.success("该客户在没有体检项目数据!");
    }
    /**
     * 小程序点击体检报告查询详情,显示身高体重体重指数收缩压舒张压