zjh
2024-07-03 8aea3ecc955f5c55024686375bc6b2fc3a989a35
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,8 @@
import com.ltkj.framework.config.UserHoder;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.service.*;
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 +35,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;
@@ -79,7 +83,10 @@
    @Value("${path.filePath}")
    private String value;
    @Resource
    private LtkjHybgdService ltkjHybgdService;
    @Resource
    private LtkjHysqdService ltkjHysqdService;
    /**
     * 小程序查询体检报告列表
     */
@@ -166,6 +173,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) {
@@ -241,6 +249,55 @@
        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("该客户在没有体检项目数据!");
    }
    /**
     * 小程序点击体检报告查询详情,显示身高体重体重指数收缩压舒张压