zhaowenxuan
2025-01-02 4761f2bc70814bde9929f1081a213a9ab38a7393
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,11 @@
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.hosp.vodomain.ShenGaoTiZhongVo;
import com.ltkj.mall.mallOrderUtils.TjConstants;
import com.ltkj.web.config.pdfutils.PDFBinaryUtil;
import io.swagger.annotations.Api;
@@ -32,6 +38,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 +57,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 +131,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 +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) {
@@ -200,26 +208,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 +250,88 @@
        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 + "   ↓";
                                    hybgd.setYcbz("1");
                                } else if (jyjgval.compareTo(max) > 0) {
                                    // jyjg 大于范围最大值,添加上箭头
                                    jyjg = jyjg + "   ↑";
                                    hybgd.setYcbz("1");
                                }else {
                                    hybgd.setYcbz("0");
                                }
                                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("该客户在没有体检项目数据!");
    }
    /**
     * 小程序点击体检报告查询详情,显示身高体重体重指数收缩压舒张压
@@ -248,8 +339,7 @@
    @GetMapping("/getShenGaoTiZhong")
    @ApiOperation(value = "小程序-体检报告查询详情")
    public AjaxResult getShenGaoTiZhong(@RequestParam @ApiParam(value = "体检号") String tjNumber) {
        Map<String, Object> objectMap = new HashMap<>();
        List<Map<String, Object>> list = new ArrayList<>();
//        Map<String, Object> objectMap = new HashMap<>();
        LambdaQueryWrapper<TjOrder> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjOrder::getTjNumber, tjNumber);
        wq1.eq(TjOrder::getCheckStatus, 1);
@@ -258,62 +348,38 @@
            return AjaxResult.success("体检暂未完成!!");
        }
        LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
        wq.eq(TjOrderDetail::getOrderId, one.getOrderId());
        wq.in(TjOrderDetail::getProId, "1633660948860522524");
        final TjOrderDetail one1 = detailService.getOne(wq);
        if (one1 == null) {
            objectMap.put("shenggao", "无");
        } else {
            objectMap.put("shenggao", one1.getProResult());
        }
        LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
        wq2.eq(TjOrderDetail::getOrderId, one.getOrderId());
        wq2.in(TjOrderDetail::getProId, "1633660948860522525");
        final TjOrderDetail one2 = detailService.getOne(wq2);
        if (one2 == null) {
            objectMap.put("tizhong", "无");
        } else {
            objectMap.put("tizhong", one2.getProResult());
        }
        LambdaQueryWrapper<TjOrderDetail> wq3 = new LambdaQueryWrapper<>();
        wq3.eq(TjOrderDetail::getOrderId, one.getOrderId());
        wq3.in(TjOrderDetail::getProId, "1633660948860522526");
        final TjOrderDetail one3 = detailService.getOne(wq3);
        if (one3 == null) {
            objectMap.put("tizhongzhishu", "无");
        } else {
            objectMap.put("tizhongzhishu", one3.getProResult());
        }
        LambdaQueryWrapper<TjOrderDetail> wq4 = new LambdaQueryWrapper<>();
        wq4.eq(TjOrderDetail::getOrderId, one.getOrderId());
        wq4.in(TjOrderDetail::getProId, "1633660948860522527");
        final TjOrderDetail one4 = detailService.getOne(wq4);
        if (one4 == null) {
            objectMap.put("shousuoya", "无");
        } else {
            objectMap.put("shousuoya", one4.getProResult());
        }
        LambdaQueryWrapper<TjOrderDetail> wq5 = new LambdaQueryWrapper<>();
        wq5.eq(TjOrderDetail::getOrderId, one.getOrderId());
        wq5.in(TjOrderDetail::getProId, "1633660948860522528");
        final TjOrderDetail one5 = detailService.getOne(wq5);
        if (one5 == null) {
            objectMap.put("shuzhangya", "无");
        } else {
            objectMap.put("shuzhangya", one5.getProResult());
        }
        return AjaxResult.success(objectMap);
        List<ShenGaoTiZhongVo> maps = detailService.getShenGaoTiZhongList(one.getTjNumber());
//        if(null !=maps && maps.size()>0){
//            for (Map<String, Object> map : maps) {
//                if (map.get("") == null) {
//                    objectMap.put("shenggao", "无");
//                } else {
//                    objectMap.put("shenggao", one1.getProResult());
//                }
//                if (one2 == null) {
//                    objectMap.put("tizhong", "无");
//                } else {
//                    objectMap.put("tizhong", one2.getProResult());
//                }
//                if (one3 == null) {
//                    objectMap.put("tizhongzhishu", "无");
//                } else {
//                    objectMap.put("tizhongzhishu", one3.getProResult());
//                }
//                if (one4 == null) {
//                    objectMap.put("shousuoya", "无");
//                } else {
//                    objectMap.put("shousuoya", one4.getProResult());
//                }
//                if (one5 == null) {
//                    objectMap.put("shuzhangya", "无");
//                } else {
//                    objectMap.put("shuzhangya", one5.getProResult());
//                }
//            }
//        }
        log.info("ltkj {}的体检报告查询详情"+maps,tjNumber);
        return AjaxResult.success(maps);
    }
@@ -376,9 +442,9 @@
        final String substring = uuid.toString().substring(0, 5);
//        String userId = SecurityUtils.getLoginUser().getUsername();
        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + "\\" + substring + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf");
        PDFBinaryUtil.base64StringToPDF(one.getReport(), FileUtil.mkdir(value).getPath() + File.separator + substring + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf");
        //String filePath = one.getPath();
        String filePath = value + "\\" + substring + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf";
        String filePath = value + File.separator + substring + tjNumber + tjCustomer.getCusName() + "_体检报告.pdf";
        File f = new File(filePath);
        if (filePath.isEmpty()) {
            System.out.println("文件不存在!");