zjh
2025-04-18 1630243ed75a92c60d0638e7d14477e4aadcf2b7
zjh20250418
13个文件已修改
1332 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java 161 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java 322 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java 430 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 318 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderYcxmMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjOrderYcxmService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderYcxmServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
@@ -2002,14 +2002,7 @@
            log.error("pacs申请失败 该登记人挂号失败, 就诊号为: " + tjOrder.getCardId());
            return AjaxResult.error("挂号失败!" + result.get("msg").toString());
        }
//        LambdaQueryWrapper<TjOrderDetail> wq2 = new LambdaQueryWrapper<>();
//        wq2.eq(TjOrderDetail::getOrderId, tjOrder.getOrderId());
//        wq2.isNotNull(TjOrderDetail::getFlowingWaterId);
//        wq2.eq(TjOrderDetail::getIsSampling, 0);
//        List<TjOrderDetail> detailList1 = tjOrderDetailService.list(wq2);
        List<TjOrderDetail> detailList1 = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
//        log.info("TjOrderDetail ->{}",JSONUtil.toJsonStr(detailList1));
        tjSysAsyncService.addCaiYangDengJi(detailList1, !detailList1.isEmpty(), tjOrder, sysUser,null);
        String mergeRequest = configService.selectConfigByKey("use_lis_pacs_is_auto_merge_request");
ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
@@ -149,88 +149,103 @@
            String ysmc = configService.selectConfigByKey("request_default_ysmc");
            for (TjProject project : projects) {
                if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
                    if (null != project.getHisXmbm()) {
                        SavePacsApply savePacsApply = new SavePacsApply();
                        savePacsApply.setExamNo(tjOrder.getCardId());
                        savePacsApply.setName(tjCustomer.getCusName());
                        savePacsApply.setSex(tjCustomer.getCusSex() == 1 ? "2" : "1");
                        AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
                        savePacsApply.setAge(String.valueOf(ageResult.getAge()));
                        savePacsApply.setAgeUnit(String.valueOf(ageResult.getUnit()));
                        savePacsApply.setBirthday(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
                        savePacsApply.setCardNumber(tjCustomer.getCusIdcard());
                        savePacsApply.setTel(tjCustomer.getCusPhone());
                        Date date = new Date();
                        String regNo = "M_jk" + tjOrder.getCardId() +"_" + project.getHisXmbm();
                        savePacsApply.setRegNo(regNo);
                        JSONObject jsonObject = JSONUtil.createObj();
                        jsonObject.putOpt("cardId", tjOrder.getCardId());
                        jsonObject.putOpt("regNo", regNo);
                        jsonObject.putOpt("name", tjCustomer.getCusName());
                        array.add(jsonObject);
                        savePacsApply.setCheckItemID(project.getHisXmbm());
                        savePacsApply.setCheckItem(project.getHisXmmc());
                        // TODO 检查部位
                        savePacsApply.setCheckPosition("-");
                        savePacsApply.setAmount(project.getProPrice());
                        savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
                        savePacsApply.setApplyDepment(dept);
                        savePacsApply.setApplyDepmentName("体检中心");
                        savePacsApply.setApplyDoctor(ysbm);
                        savePacsApply.setApplyDoctorName(ysmc);
                        savePacsApply.setExecDepment(dept);
                        savePacsApply.setExecDepmentName("体检中心");
                        savePacsApply.setCreateTime(savePacsApply.getApplyDate());
                        // TODO 检查设备
                        savePacsApply.setDevice("-");
                        // TODO 检查设备类型
                        savePacsApply.setDeviceType("-");
                        log.info("PACS检查申请 ->{}", JSONUtil.toJsonStr(savePacsApply));
                        AjaxResult ajaxResult = savePacsApply(savePacsApply);
                        log.info("返回 ->{}",JSONUtil.toJsonStr(ajaxResult));
                        String result = ajaxResult.get("data").toString();
                        JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result));
                        log.info("PACS请求返回 ->{}", object);
                        String code = object.getStr("ResultCode");
                        allTotal++;
                        if (code.equals("1")) {
                            successPacsList.add(savePacsApply);
                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                            tree.setCardId(tjOrder.getCardId());
                            tree.setPationid(tjCustomer.getPationId());
                            tree.setSqdh(regNo);
                            tree.setFyhj(String.valueOf(project.getProPrice()));
                            tree.setHisXmdm(project.getHisXmbm());
                            tree.setType("检查");
                            tree.setService("pacs");
                            tree.setTjPrice(String.valueOf(project.getProPrice()));
                            LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                            if (project.getSfzhfy().equals("Y"))
                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
                                wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                                wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
                                tree.setXmfl(ejjfxmzd.getYjkmdm());
                    if(project.getSfzhfy().equalsIgnoreCase("Y")){
                        allTotal = getAllTotal(tjOrder, tjCustomer, array, successPacsList, errorPacsList, project, dept, ysbm, ysmc, allTotal);
                    }else {
                        List<TjProject> bySoneId = projectService.getTjProjectListBySoneId(project.getProId().toString());
                        for (TjProject tjProject : bySoneId) {
                            if(project.getProPrice().compareTo(BigDecimal.ZERO) != 0){
                                allTotal = getAllTotal(tjOrder, tjCustomer, array, successPacsList, errorPacsList, tjProject, dept, ysbm, ysmc, allTotal);
                            }
                            tree.setCreateTime(DateUtil.date());
                            ltkjJianchajianyanTreeService.save(tree);
                        } else {
                            errorPacsList.add(savePacsApply);
                        }
                    }
                }
            }
        }
        return allTotal;
    }
    private int getAllTotal(TjOrder tjOrder, TjCustomer tjCustomer, JSONArray array, ArrayList<SavePacsApply> successPacsList, ArrayList<SavePacsApply> errorPacsList, TjProject project, String dept, String ysbm, String ysmc, int allTotal) {
        if (null != project.getHisXmbm()) {
            SavePacsApply savePacsApply = new SavePacsApply();
            savePacsApply.setExamNo(tjOrder.getCardId());
            savePacsApply.setName(tjCustomer.getCusName());
            savePacsApply.setSex(tjCustomer.getCusSex() == 1 ? "2" : "1");
            AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
            savePacsApply.setAge(String.valueOf(ageResult.getAge()));
            savePacsApply.setAgeUnit(String.valueOf(ageResult.getUnit()));
            savePacsApply.setBirthday(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
            savePacsApply.setCardNumber(tjCustomer.getCusIdcard());
            savePacsApply.setTel(tjCustomer.getCusPhone());
            Date date = new Date();
            String regNo = "M_jk" + tjOrder.getCardId() +"_" + project.getHisXmbm();
            savePacsApply.setRegNo(regNo);
            JSONObject jsonObject = JSONUtil.createObj();
            jsonObject.putOpt("cardId", tjOrder.getCardId());
            jsonObject.putOpt("regNo", regNo);
            jsonObject.putOpt("name", tjCustomer.getCusName());
            array.add(jsonObject);
            savePacsApply.setCheckItemID(project.getHisXmbm());
            savePacsApply.setCheckItem(project.getHisXmmc());
            // TODO 检查部位
            savePacsApply.setCheckPosition("-");
            savePacsApply.setAmount(project.getProPrice());
            savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
            savePacsApply.setApplyDepment(dept);
            savePacsApply.setApplyDepmentName("体检中心");
            savePacsApply.setApplyDoctor(ysbm);
            savePacsApply.setApplyDoctorName(ysmc);
            savePacsApply.setExecDepment(dept);
            savePacsApply.setExecDepmentName("体检中心");
            savePacsApply.setCreateTime(savePacsApply.getApplyDate());
            // TODO 检查设备
            savePacsApply.setDevice("-");
            // TODO 检查设备类型
            savePacsApply.setDeviceType("-");
            log.info("PACS检查申请 ->{}", JSONUtil.toJsonStr(savePacsApply));
            AjaxResult ajaxResult = savePacsApply(savePacsApply);
            log.info("返回 ->{}",JSONUtil.toJsonStr(ajaxResult));
            String result = ajaxResult.get("data").toString();
            JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result));
            log.info("PACS请求返回 ->{}", object);
            String code = object.getStr("ResultCode");
            allTotal++;
            if (code.equals("1")) {
                successPacsList.add(savePacsApply);
                LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
                tree.setCardId(tjOrder.getCardId());
                tree.setPationid(tjCustomer.getPationId());
                tree.setSqdh(regNo);
                tree.setFyhj(String.valueOf(project.getProPrice()));
                tree.setHisXmdm(project.getHisXmbm());
                tree.setType("检查");
                tree.setService("pacs");
                tree.setTjPrice(String.valueOf(project.getProPrice()));
                LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
                if (project.getSfzhfy().equals("Y"))
                    wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, project.getHisXmbm());
                else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, project.getHisXmbm());
                List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
                if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
                    String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
                    LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
                    wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
                    LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
                    LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
                    wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
                    LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
                    tree.setXmfl(ejjfxmzd.getYjkmdm());
                }
                tree.setCreateTime(DateUtil.date());
                ltkjJianchajianyanTreeService.save(tree);
            } else {
                errorPacsList.add(savePacsApply);
            }
        }
        return allTotal;
    }
    /*         查询检查结果、更新查询状态           */
    // 调用返回检验结果:
    // exec usp_tjjk_pacsjg ‘体检号’
ltkj-admin/src/main/java/com/ltkj/web/controller/system/SysDeptController.java
@@ -487,245 +487,15 @@
                                          @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                                          @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page,
                                          @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize) {
/*        String userId = SecurityUtils.getLoginUser().getUserId();
        Integer ksId = null;
        SysUser sysUser = null;
        if (null != userId) {
            sysUser = userService.getById(Long.valueOf(userId));
            if (null != sysUser) {
                ksId = Math.toIntExact(sysUser.getDeptId());
            }
        }
        if (ksId == null) {
            return AjaxResult.error("请输入科室id");
        }
        //根据当前登陆的人的科室id,获取该科室下的所有项目
        List<Long> postIds = sysUser.getPostIds();
        List<Long> ksproList = null;
        if (postIds != null) {
            for (Long postId : postIds) {
                LambdaQueryWrapper<SysUserPost> wq111 = new LambdaQueryWrapper<>();
                wq111.eq(SysUserPost::getPostId, postId);
                SysUserPost one = userPostService.getOne(wq111);
                if (one != null) {
                    SysPost byId = postService.getById(one.getPostId());
                    if (byId.getPostName().equals("录入员")) {
                        ksproList = projectService.getKsTjProjectIdListBydeptId(String.valueOf(ksId));
                    }
                }
            }
        } else {
            ksproList = projectService.getKsTjProjectIdList();
        }
        //筛选影像的项目。 A32影像
        if (ksproList.size() == 0) {
            return AjaxResult.error("请完善科室项目信息");
        }
        ksproList = ksproList.stream()
                .filter(element -> element ==1633660948860522589L
//                        ||  element ==1633660948860522504L
//                        ||
//                        element ==1633660948860522507L||  element ==1633660948860522508L
//                        ||
//                        element ==1633660948860522515L||  element ==1633660948860522516L
//                        ||
//                        element ==1633660948860522517L||  element ==1633660948860522519L
//                        ||
//                        element ==1633660948860522524L||  element ==1633660948860522530L
//                        ||
//                        element ==1633660948860522531L||  element ==1633660948860522533L
                )
                .collect(Collectors.toList());*/
//        List<Long> ksproList  = projectService.getYingXiangProId();
//        List<TjCustomer> customerLis = new ArrayList<>();
//
//        //根据体检号查
//        if (null != tjNumber) {
//            List<TjOrder> orderList = orderService.getOrderListByLikeTjNum(tjNumber);
//            if (null == orderList) {
//                return AjaxResult.success("暂时没有数据");
//            }
//            for (TjOrder order : orderList) {
//                List<TjOrderDetail> list = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
//                if (list.size() == 0) {
//                    continue;
//                }
//                LambdaQueryWrapper<TjOrderRemark> wqs = new LambdaQueryWrapper<>();
//                wqs.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
//                wqs.in(TjOrderRemark::getType, 0,3);
//                List<TjOrderRemark> lists = remarkService.list(wqs);
//                TjCustomer customer = customerService.getById(order.getUserId());
//                //遍历项目 判断是否有重大阳性  标记
//                for (TjOrderDetail tjOrderDetail11 : list) {
//                    customer.setIsPositive(tjOrderDetail11.getIsPositive());
//                    if (tjOrderDetail11.getIsPositive()==1){
//                        break;
//                    }
//                }
//                customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
//                customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
//                customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
//                if (null != lists && lists.size() > 0) {
//                    StringBuilder stringBuilder = new StringBuilder();
//                    for (TjOrderRemark remark : lists) {
//                        TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
//                        TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
//                        if (one.getFlowingWaterId() != null) {
//                            stringBuilder.append(byId.getProName()).append(";");
//                        }
//
//                    }
//                    customer.setNotCheckeds(String.valueOf(stringBuilder));
//                    customer.setTjStatus(0L);
//                } else {
//                    customer.setTjStatus(1L);
//                    customer.setNotCheckeds("无");
//                }
//                if (order.getTjType().equals("1")) {
//                    customer.setTjType("团体");
//                }
//                if (order.getTjType().equals("2")) {
//                    customer.setTjType("个人");
//                }
//                customer.setTjTime(order.getCreateTime());
//                customer.setTjNumber(order.getTjNumber());
//                customer.setOrderId(order.getOrderId());
//                customer.setIsHz(order.getIsHz());
//                customerLis.add(customer);
//
//            }
//            if (customerLis.size() > 0) {
//                List<TjCustomer> customerList = customerLis.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
//                Collections.reverse(customerList);
//                Map<String, Object> map = new HashMap<>();
//                map.put("date", customerList);
//                map.put("total", customerLis.size());
//                return AjaxResult.success(map);
//            } else {
//                return AjaxResult.success("暂无数据");
//            }
//        }
//
//        //根据姓名查询
//        if (null != name && !"".equals(name)) {
//            LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
//            wq.like(TjCustomer::getCusName, name);
//            List<TjCustomer> list = customerService.list(wq);
//            List<TjCustomer> list11111 = new ArrayList<>();
//            if (null != list && list.size() > 0) {
//                for (TjCustomer customer : list) {
//                    customer.setCusName(MatchUtils.hideCusName(customer.getCusName()));
//                    customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone()));
//                    customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard()));
//                    List<TjOrder> orderList = orderService.getOrderListByCusId(String.valueOf(customer.getCusId()));
//                    if (null != orderList && orderList.size() > 0) {
//                        for (TjOrder order : orderList) {
//                            List<TjOrderDetail> list111 = Optional.ofNullable(detailService.getTjOrderDetailListByOrderId(String.valueOf(order.getOrderId()))).get();
//                            if (list111.size() == 0) {
//                                continue;
//                            }
//                            //遍历项目 判断是否有重大阳性  标记
//                            for (TjOrderDetail tjOrderDetail11 : list111) {
//                                customer.setIsPositive(tjOrderDetail11.getIsPositive());
//                                if (tjOrderDetail11.getIsPositive()==1){
//                                    break;
//                                }
//                            }
//                            List<TjOrderRemark> lists = remarkService.getTjOrderRemarkListByYjNum(order.getTjNumber());
//                            if (null != lists && lists.size() > 0) {
//                                StringBuilder stringBuilder = new StringBuilder();
//                                for (TjOrderRemark remark : lists) {
//                                    TjProject byId = projectService.selectTjProjectByProId(remark.getProId());
//                                    TjOrderDetail one = detailService.getTjOrderDetailByOrderId(String.valueOf(order.getOrderId()), String.valueOf(byId.getProId()));
//                                    if (one.getFlowingWaterId() != null) {
//                                        stringBuilder.append(byId.getProName()).append(";");
//                                    }
//                                }
//                                customer.setNotCheckeds(String.valueOf(stringBuilder));
//                                if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
//                                customer.setTjStatus(0L);
//                            } else {
//                                customer.setNotCheckeds("无");
//                                customer.setTjStatus(1L);
//                            }
//                            if (order.getTjType().equals("1")) {
//                                customer.setTjType("团体");
//                            }
//                            if (order.getTjType().equals("2")) {
//                                customer.setTjType("个人");
//                            }
//                            customer.setTjTime(order.getCreateTime());
//                            customer.setTjNumber(order.getTjNumber());
//                            customer.setOrderId(order.getOrderId());
//                            customer.setIsHz(order.getIsHz());
//                            list11111.add(customer);
//                        }
//                    }
//                }
//                if (list11111.size() == 0) {
//                    return AjaxResult.success("暂无数据");
//                }
//                Map<String, Object> map = new HashMap<>();
//                List<TjCustomer> customers = list11111.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
//                Collections.reverse(customers);
//                map.put("customers", customers);
//                map.put("total", list11111.size());
//                return AjaxResult.success(map);
//            } else {
//                return AjaxResult.success("暂无数据");
//            }
//        }
//        List<TjCustomer> customerLists = null;
        Map<String, Object> map = null;
        if (type == 0) {
//            Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
//            List<TjCustomer> customers = new ArrayList<>();
//            while(cursor.hasNext()){
//                String s = cursor.next().toString();
//                TjCustomer wj = redisCache.getCacheMapValue(s,"0");
//                if(null !=wj){
//                    customers.add(wj);
//                }
//            }
////            //切记这里一定要关闭,否则会耗尽连接数。报Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a
//            cursor.close();
//            customerLists = redisCache.getCacheMapValue(ksId + "ks", "wj");
            map = deptService.getSysDeptHyAndYxYjWjCustomerList13("A32", name, tjNumber, 0, page, pageSize);
//            customerLists = customers;
        }
        if (type == 1) {
//            Cursor cursor = redisTemplate.executeWithStickyConnection(redisConnection -> new ConvertingCursor<>(redisConnection.scan(options), redisSerializer::deserialize));
//            List<TjCustomer> customers = new ArrayList<>();
//            while(cursor.hasNext()){
//                String s = cursor.next().toString();
//                TjCustomer wj = redisCache.getCacheMapValue(s,"1");
//                if(null !=wj){
//                    customers.add(wj);
//                }
//            }
////            //切记这里一定要关闭,否则会耗尽连接数。报Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisException: Could not get a
//            cursor.close();
//            customerLists = redisCache.getCacheMapValue(ksId + "ks", "yj");
            map = deptService.getSysDeptHyAndYxYjWjCustomerList13("A32", name, tjNumber, 1, page, pageSize);
//            customerLists = customers;
        }
//        asyncService.dockerSetCustomerLisByRedis(ksproList, String.valueOf(ksId));
//        if (customerLists.size() > 0) {
//            Collections.reverse(customerLists);
//            List<TjCustomer> customerList = customerLists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
//            Map<String, Object> map = new HashMap<>();
//            map.put("date", customerList);
//            map.put("total", customerLists.size());
//            return AjaxResult.success(map);
//        } else {
//            AjaxResult map = getAjaxResult(type, page, pageSize, ksproList, customerLis);
//            if (map != null) return map;
//            return AjaxResult.success("暂时没有数据");
        return AjaxResult.success(map);
//        }
    }
@@ -737,23 +507,11 @@
                                    @ApiParam(value = "年龄单位") @RequestParam String patagename,
                                    @ApiParam(value = "生日)") @RequestParam Date patbirth) {
        String format = DateUtil.format(patbirth, "yyyy.MM.dd");
        List<Map<String, Object>> tjYxjcList = testMapper.getTjYxjcList(patname, sex, null);
        return AjaxResult.success(tjYxjcList);
    }
//    @GetMapping("/getSsTjYxjcList")
//    @ApiOperation("查询个人影响检查项目结果集(搜素用)")
//    public AjaxResult getSsTjYxjcList(@ApiParam(value = "姓名") @RequestParam String patname,
//                                    @ApiParam(value = "性别") @RequestParam String sex,
//                                    @ApiParam(value = "年龄") @RequestParam String patage) {
//
//
//        List<Map<String, Object>> tjYxjcList = testMapper.getTjYxjcList(patname,sex,null,null);
//        return AjaxResult.success(tjYxjcList);
//    }
    /**
@@ -764,7 +522,6 @@
     */
    @GetMapping("/getHistory")
    @ApiOperation("查询客户体检历史记录")
    //@PreAuthorize("@ss.hasPermi('system:dept:getHistory')")
    public AjaxResult getHistory(@RequestParam @ApiParam(value = "体检客户id") Long cusId) {
        Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
        Integer ksId = null;
@@ -1064,7 +821,8 @@
    @GetMapping("/getParentList")
    @ApiOperation(value = "医生点击体检信息详情(只显示父项目列表)")
//    修改按照科室查询
    public AjaxResult getParentList(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
    public AjaxResult getParentList(@ApiParam(value = "客户体检号") @RequestParam String tjNumber,
                                    @ApiParam(value = "已检未检状态 0 未检 1已检") @RequestParam Integer type) {
        String userId = SecurityUtils.getLoginUser().getUserId();
        Integer ksId = null;
        SysUser sysUser = null;
@@ -1084,46 +842,38 @@
        SysDept dept = deptService.getById(ksId);
        if(null !=dept && !dept.getDeptName().contains("体检中心")){
            LambdaQueryWrapper<TjFlowingWater> tjFlowingWaterLambdaQueryWrapper = new LambdaQueryWrapper<>();
            tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
            tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getIsAddition, "N");
            TjFlowingWater tjFlowingWater = tjFlowingWaterService.getOne(tjFlowingWaterLambdaQueryWrapper);
            if (null != tjFlowingWater) {
                if (tjFlowingWater.getPayStasus() != 1 && tjFlowingWater.getPayStasus() != 3) {
                    if (configByKey.equals("Y")) {
                        HashMap<String, Object> hisRequestParams = new HashMap<>();
                        // 不在需要身份证号
                        hisRequestParams.put("patientId", tjOrder.getCardId());
                        log.info("ltkj--- " + DateUtil.date() + "操作人id: " + userId + "操作科室: " + sysUser.getDeptId() + "操作的体检人: " + tjNumber);
                        AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
                        if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
                            int sfsf = ltkjJianchajianyanTreeService.getSfsfByCardId(tjOrder.getCardId());
                            if (sfsf > 0) {
                                log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就单数  " + sfsf);
                                log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                                return AjaxResult.error("存在未缴费项目");
        if(type !=1){
            if(null !=dept && !dept.getDeptName().contains("体检中心")){
                LambdaQueryWrapper<TjFlowingWater> tjFlowingWaterLambdaQueryWrapper = new LambdaQueryWrapper<>();
                tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
                tjFlowingWaterLambdaQueryWrapper.eq(TjFlowingWater::getIsAddition, "N");
                TjFlowingWater tjFlowingWater = tjFlowingWaterService.getOne(tjFlowingWaterLambdaQueryWrapper);
                if (null != tjFlowingWater) {
                    if (tjFlowingWater.getPayStasus() != 1 && tjFlowingWater.getPayStasus() != 3) {
                        if (configByKey.equals("Y")) {
                            HashMap<String, Object> hisRequestParams = new HashMap<>();
                            // 不在需要身份证号
                            hisRequestParams.put("patientId", tjOrder.getCardId());
                            log.info("ltkj--- " + DateUtil.date() + "操作人id: " + userId + "操作科室: " + sysUser.getDeptId() + "操作的体检人: " + tjNumber);
                            AjaxResult queryPay = hisApiGetMethodService.getHISDataNew("QueryPay", hisRequestParams);
                            if (Integer.parseInt(queryPay.get("code").toString()) == 200) {
                                int sfsf = ltkjJianchajianyanTreeService.getSfsfByCardId(tjOrder.getCardId());
                                if (sfsf > 0) {
                                    log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就单数  " + sfsf);
                                    log.error("路泰科技---  " + DateUtil.date() + " 存在未缴费项目的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                                    return AjaxResult.error("存在未缴费项目");
                                }
                                extracted(tjOrder, tjFlowingWater);
                            } else {
                                log.error("路泰科技--- " + DateUtil.date() + " 未查询到缴费记录的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                                return AjaxResult.error("未查询到缴费记录");
                            }
                            extracted(tjOrder, tjFlowingWater);
                        } else {
                            log.error("路泰科技--- " + DateUtil.date() + " 未查询到缴费记录的 就诊号  " + tjOrder.getCardId() + " 体检号 " + tjOrder.getTjNumber());
                            return AjaxResult.error("未查询到缴费记录");
                        }
                    }
//                String s = configService.selectConfigByKey("is_request_common_his_api");
//                if (null != s && s.equals("Y")) {
//                    LambdaQueryWrapper<TjFlowingWater> wrapper1 = new LambdaQueryWrapper<>();
//                    wrapper1.eq(TjFlowingWater::getOrderId, tjOrder.getOrderId());
//                    wrapper1.eq(TjFlowingWater::getPayStasus, 0L);
//                    List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper1);
//                    if (!list.isEmpty()) {
//                        return AjaxResult.error("存在未缴费项目");
//                    }
//                }
                } else {
                    log.error("路泰科技--- " + DateUtil.date() + " 未对接his接口 " + " 体检号 " + tjOrder.getTjNumber());
                    return AjaxResult.error("未查询到缴费记录");
                }
            } else {
                log.error("路泰科技--- " + DateUtil.date() + " 未对接his接口 " + " 体检号 " + tjOrder.getTjNumber());
                return AjaxResult.error("未查询到缴费记录");
            }
        }
@@ -1148,9 +898,17 @@
        }
            List<TjOrderRemark> list;
            if(null != sysUser && sysUser.getUserName().equals("10001")){
                list=remarkService.yiShengJianChaGetPrentProCJGLY(tjNumber);
                if(type !=1){
                    list=remarkService.yiShengJianChaGetPrentProCJGLY(tjNumber);
                }else {
                    list=remarkService.yiShengJianChaYjGetPrentProCJGLY(tjNumber);
                }
            }else {
                list= remarkService.yiShengJianChaGetPrentPro(tjNumber, split);
                if(type !=1){
                    list= remarkService.yiShengJianChaGetPrentPro(tjNumber, split);
                }else {
                    list= remarkService.yiShengJianChaYjGetPrentPro(tjNumber, split);
                }
            }
            if (null ==list || list.isEmpty()) {
                return AjaxResult.error("该科室下无项目!");
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -1677,82 +1677,270 @@
    @GetMapping("/getzongjianyishengchakanyichangxiangmu")
    @ApiOperation(value = "总检查看异常项目接口")
    public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) {
        long l = System.currentTimeMillis();
        if (StrUtil.isNotBlank(tjNum)) {
            TjOrder one = orderService.getOrderByTjNum(tjNum);
        try {
            if (StrUtil.isNotBlank(tjNum)) {
                TjOrder one = orderService.getOrderByTjNum(tjNum);
            if (one == null) {
                return AjaxResult.error("暂无数据!!");
                if (one == null) {
                    return AjaxResult.error("暂无数据!!");
                }
                yichangxiangmu(tjNum);
                LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
                wq.eq(TjOrderYcxm::getTjh, tjNum);
                List<TjOrderYcxm> list = ycxmService.list(wq);
                if (null != list && !list.isEmpty()) {
                    Collections.reverse(list);
                    return getOrderYcxmList(list);
                } else {
                    return zongjianyishengchakanyichangxiangmu(tjNum);
                }
            }
            String yqbm = configService.selectConfigByKey("common_api_service_hospbm");
            jcycxmService.deletedByTjh(tjNum);
            configController.zongjianshengchengyichangxiangmu(tjNum, yqbm);
            return AjaxResult.error();
        } catch (Exception ex) {
            //throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return AjaxResult.error();
        }
    }
            LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
            wq.eq(TjOrderYcxm::getTjh, tjNum);
            List<TjOrderYcxm> list = ycxmService.list(wq);
            if (null != list && !list.isEmpty()) {
                Collections.reverse(list);
                Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
                List<Map<String, Object>> maps = new ArrayList<>();
                for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
                    Map<String, Object> parent = new HashMap<>();
                    List<TjOrderDetail> dels = new ArrayList<>();
                    for (TjOrderYcxm ycxm : entry.getValue()) {
                        TjOrderDetail detail = new TjOrderDetail();
                        detail.setOrderDetailId(Long.valueOf(ycxm.getId()));
                        detail.setProName(ycxm.getJcxm());
                        detail.setProResult(ycxm.getJcjg());
                        detail.setStanId(ycxm.getCkfw());
                        detail.setProAdvice(ycxm.getDw());
                        List<Map<String, Object>> btnrlist = new ArrayList<>();
                        String jynr = ycxm.getJynr();
                        JSONArray array = JSONUtil.parseArray(jynr);
                        for (Object object : array) {
                            Map<String, Object> objectMap = new HashMap<>();
                            JSONObject jsonObject = (JSONObject) object;
                            String bt = jsonObject.getStr("bt");
                            String nr = jsonObject.getStr("nr");
                            objectMap.put("bt", bt);
                            objectMap.put("nr", nr);
                            if (null != bt || null != nr) btnrlist.add(objectMap);
    private static AjaxResult getOrderYcxmList(List<TjOrderYcxm> list) {
        try {
            List<Map<String, Object>> maps = getYcxmMapList(list);
            if (!maps.isEmpty()) {
                List<Map<String, Object>> collect1 = maps.stream()
                        .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString()))
                        .collect(Collectors.toList());
                return AjaxResult.success(collect1);
            }
            return AjaxResult.success(maps);
        } catch (Exception ex) {
//            throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return AjaxResult.error();
        }
    }
    private static List<Map<String, Object>> getYcxmMapList(List<TjOrderYcxm> list) {
        try {
            Map<String, List<TjOrderYcxm>> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName));
            List<Map<String, Object>> maps = new ArrayList<>();
            for (Map.Entry<String, List<TjOrderYcxm>> entry : map.entrySet()) {
                Map<String, Object> parent = new HashMap<>();
                List<TjOrderDetail> dels = new ArrayList<>();
                for (TjOrderYcxm ycxm : entry.getValue()) {
                    TjOrderDetail detail = new TjOrderDetail();
                    detail.setOrderDetailId(Long.valueOf(ycxm.getId()));
                    detail.setProName(ycxm.getJcxm());
                    detail.setProResult(ycxm.getJcjg());
                    detail.setStanId(ycxm.getCkfw());
                    detail.setProAdvice(ycxm.getDw());
                    List<Map<String, Object>> btnrlist = new ArrayList<>();
                    String jynr = ycxm.getJynr();
                    JSONArray array = JSONUtil.parseArray(jynr);
                    for (Object object : array) {
                        Map<String, Object> objectMap = new HashMap<>();
                        JSONObject jsonObject = (JSONObject) object;
                        String bt = jsonObject.getStr("bt");
                        String nr = jsonObject.getStr("nr");
                        objectMap.put("bt", bt);
                        objectMap.put("nr", nr);
                        if (null != bt || null != nr) btnrlist.add(objectMap);
                    }
                    detail.setAdvices(btnrlist);
                    dels.add(detail);
                }
                parent.put("proName", entry.getKey());
                parent.put("jyjc", entry.getValue().get(0).getJyjc());
                parent.put("sone", dels);
                maps.add(parent);
            }
            return maps;
        } catch (NumberFormatException ex) {
//            throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return null;
        }
    }
    private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) {
        List<Map<String, Object>> list = new ArrayList<>();
        try {
            List<TjOrderYcxm> tjOrderYcxms = new ArrayList<>();
            TjOrder order = orderService.getOrderByTjNum(tjNumber);
            String xb= customerService.getSexByTjh(tjNumber);
            if (null != order) {
                List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
                List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
                LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
                wq.eq(TjOrderYcxm::getTjh, tjNumber);
                List<TjOrderYcxm> ycxmList = ycxmService.list(wq);
                if (null != remarkList && !remarkList.isEmpty()) {
                    for (TjOrderRemark remark : remarkList) {
                        Map<String, Object> parent = new HashMap<>();
                        if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
                            List<TjOrderDetail> dels = new ArrayList<>();
                            for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                                if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                                    if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) {
                                        if (!tjOrderDetail.getDeptId().equals("2")) {
                                            List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
                                                    , tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "")
                                                            .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", ""), tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber
                                                    , tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "")
                                                            .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", "")
                                                    , tjOrderDetail.getProResult());
                                            if (null != maps && !maps.isEmpty()) {
                                                tjOrderDetail.setAdvices(maps);
                                            }
                                        } else {
                                            String[] split = tjOrderDetail.getProResult().split("。|,|,");
                                            List<Map<String, Object>> mapList = new ArrayList<>();
                                            for (String s : split) {
                                                s = s.replaceAll("\n", "");
                                                //                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
                                                Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0",xb);
                                                if (null != maps && !maps.isEmpty()) {
                                                    Object bt = maps.get("bt");
                                                    Object nr = maps.get("nr");
                                                    if (null != bt || null != nr) mapList.add(maps);
                                                }
                                            }
                                            tjOrderDetail.setAdvices(mapList);
                                        }
                                    }
                                    if (null == ycxmList || ycxmList.isEmpty()) {
                                        TjOrderYcxm ycxm = new TjOrderYcxm();
                                        ycxm.setTjh(tjNumber);
                                        ycxm.setParentName(remark.getProName());
                                        ycxm.setJcxm(tjOrderDetail.getProName());
                                        ycxm.setJcjg(tjOrderDetail.getProResult());
                                        ycxm.setCkfw(tjOrderDetail.getStanId());
                                        ycxm.setDw(tjOrderDetail.getProAdvice());
                                        ycxm.setJynr(JSONUtil.toJsonStr(tjOrderDetail.getAdvices()));
                                        ycxm.setJyjc(remark.getJyjc());
                                        if (ycxmService.save(ycxm)) {
                                            tjOrderYcxms.add(ycxm);
                                        }
                                    }
                                    dels.add(tjOrderDetail);
                                }
                            }
                            if (!dels.isEmpty()) {
                                parent.put("proName", remark.getProName());
                                parent.put("jyjc", remark.getJyjc());
                                parent.put("sone", dels);
                                list.add(parent);
                            }
                        }
                        detail.setAdvices(btnrlist);
                        dels.add(detail);
                    }
                    if (!tjOrderYcxms.isEmpty()) {
                        Collections.reverse(tjOrderYcxms);
                        return getOrderYcxmList(tjOrderYcxms);
                    }
                    parent.put("proName", entry.getKey());
                    parent.put("jyjc", entry.getValue().get(0).getJyjc());
                    parent.put("sone", dels);
                    maps.add(parent);
                }
                List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
            }
            return AjaxResult.success(list);
        } catch (Exception ex) {
//            throw new RuntimeException(ex);
            log.error(ex.getMessage());
            return AjaxResult.success(list);
        }
    }
    private void yichangxiangmu(String tjNumber) {
        try {
            List<TjOrderYcxm> tjOrderYcxmList= ycxmService.selectListByTjh(tjNumber);
            String xb= customerService.getSexByTjh(tjNumber);
            if(null !=tjOrderYcxmList && !tjOrderYcxmList.isEmpty()){
                List<Map<String, Object>> list = new ArrayList<>();
                TjOrder order = orderService.getOrderByTjNum(tjNumber);
                if (null != order) {
                    List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
                    List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
                    if (null != remarkList && !remarkList.isEmpty()) {
                        for (TjOrderRemark remark : remarkList) {
                            Map<String, Object> parent = new HashMap<>();
                            if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
                                List<TjOrderDetail> dels = new ArrayList<>();
                                for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                                    if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                                        if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) {
                                            if (!tjOrderDetail.getDeptId().equals("2")) {
                                                List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
                                                        , tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "")
                                                                .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", ""), tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber
                                                        , tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "")
                                                                .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", "")
                                                        , tjOrderDetail.getProResult());
                List<Map<String, Object>> collect = mapList.stream()
                                                if (null != maps && !maps.isEmpty()) {
                                                    tjOrderDetail.setAdvices(maps);
                                                }
                                            } else {
                                                String[] split = tjOrderDetail.getProResult().split("。|,|,");
                                                List<Map<String, Object>> mapList = new ArrayList<>();
                                                for (String s : split) {
                                                    s = s.replaceAll("\n", "");
                                                    Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0",xb);
                                                    if (null != maps && !maps.isEmpty()) {
                                                        Object bt = maps.get("bt");
                                                        Object nr = maps.get("nr");
                                                        if (null != bt || null != nr) mapList.add(maps);
                                                    }
                                                }
                                                tjOrderDetail.setAdvices(mapList);
                                            }
                                        }
                                        dels.add(tjOrderDetail);
                                    }
                                }
                                if (!dels.isEmpty()) {
                                    parent.put("proName", remark.getProName());
                                    parent.put("jyjc", remark.getJyjc());
                                    parent.put("sone", dels);
                                    list.add(parent);
                                }
                            }
                        }
                    }
                }
                List<Map<String, Object>> maps = getYcxmMapList(tjOrderYcxmList);
                List<Map<String, Object>> collect = list.stream()
                        .filter(b -> maps.stream()
                                .noneMatch(a -> a.get("proName").equals(b.get("proName"))))  // 过滤掉在 maps 中存在的相同元素
                        .collect(Collectors.toList());
                if (!collect.isEmpty()) {
                    maps.addAll(collect);
                }
                if (!maps.isEmpty()) {
                    List<Map<String, Object>> collect1 = maps.stream()
                            .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString()))
                            .collect(Collectors.toList());
                    System.out.println("总检查看异常项目接口总耗时:" + (System.currentTimeMillis() - l));
                    return AjaxResult.success(collect1);
                }
                System.out.println("总检查看异常项目接口总耗时:" + (System.currentTimeMillis() - l));
                return AjaxResult.success(maps);
            } else {
                List<Map<String, Object>> mapList = zongjianyishengchakanyichangxiangmu(tjNum);
                System.out.println("总检查看异常项目接口总耗时:" + (System.currentTimeMillis() - l));
                return AjaxResult.success(mapList);
                if(!collect.isEmpty()){
                    for (Map<String, Object> map : collect) {
                        for (TjOrderDetail detail : (List<TjOrderDetail>) map.get("sone")) {
                            TjOrderYcxm ycxm = new TjOrderYcxm();
                            ycxm.setTjh(tjNumber);
                            ycxm.setParentName(map.get("proName").toString());
                            ycxm.setJcxm(detail.getProName());
                            ycxm.setJcjg(detail.getProResult());
                            ycxm.setCkfw(detail.getStanId());
                            ycxm.setDw(detail.getProAdvice());
                            ycxm.setJynr(JSONUtil.toJsonStr(detail.getAdvices()));
                            ycxm.setJyjc(map.get("jyjc").toString());
                            ycxmService.save(ycxm);
                        }
                    }
                }
            }
        } catch (Exception ex) {
            log.error(ex.getMessage());
        }
        return AjaxResult.error();
    }
    @GetMapping("/delzongjianyishengchakanyichangxiangmu")
@@ -1762,126 +1950,6 @@
        return AjaxResult.success();
    }
    /*private List<Map<String, Object>> zongjianyishengchakanyichangxiangmu(String tjNumber) {
//        asyncService.updateCheckType(tjNumber);
        List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
        List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
        List<Map<String, Object>> list = new ArrayList<>();
        if (null != remarkList && !remarkList.isEmpty()) {
            for (TjOrderRemark remark : remarkList) {
                Map<String, Object> parent = new HashMap<>();
                if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
                    List<TjOrderDetail> dels = new ArrayList<>();
                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                        if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                            if(null !=tjOrderDetail.getProId()&& null !=tjOrderDetail.getYcbz()){
                                if(!tjOrderDetail.getDeptId().equals("2")){
                                    List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
                                            ,"",tjOrderDetail.getYcbz().replaceAll(" ", ""),tjNumber
                                            ,tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "")
                                                    .replaceAll("[ 测定检测]","")
                                            ,tjOrderDetail.getProResult());
                                    if(null !=maps && !maps.isEmpty()){
                                        tjOrderDetail.setAdvices(maps);
                                    }
                                }else {
                                    String[] split = tjOrderDetail.getProResult().split("。|,|,");
                                    List<Map<String,Object>> mapList=new ArrayList<>();
                                    for (String s : split) {
                                                s = s.replaceAll("\n", "");
//                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
                                        Map<String,Object> maps= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(),s,"0");
                                        if(null !=maps && !maps.isEmpty()){
                                            Object bt = maps.get("bt");
                                            Object nr = maps.get("nr");
                                            if(null !=bt || null !=nr) mapList.add(maps);
                                        }
                                    }
                                    tjOrderDetail.setAdvices(mapList);
                                }
                            }
                            dels.add(tjOrderDetail);
                        }
                    }
                    if(!dels.isEmpty()){
                        parent.put("proName",remark.getProName());
                        parent.put("jyjc",remark.getJyjc());
                        parent.put("sone",dels);
                        list.add(parent);
                    }
                }
            }
        }
        return list;
    }*/
    private List<Map<String, Object>> zongjianyishengchakanyichangxiangmu(String tjNumber) {
//        asyncService.updateCheckType(tjNumber);
      String xb= customerService.getSexByTjh(tjNumber);
        List<TjOrderRemark> remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber);
        List<TjOrderDetail> tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber);
        List<Map<String, Object>> list = new ArrayList<>();
        if (null != remarkList && !remarkList.isEmpty()) {
            for (TjOrderRemark remark : remarkList) {
                Map<String, Object> parent = new HashMap<>();
                if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) {
                    List<TjOrderDetail> dels = new ArrayList<>();
                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                        if (remark.getProsId().equals(tjOrderDetail.getProsId())) {
                            if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) {
                                if (!tjOrderDetail.getDeptId().equals("2")) {
                                    List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString()
                                            , tjOrderDetail.getProName().replaceAll("[((][^))]*[))]", "")
                                                    .replaceAll("[ 测定检测 ◆]", "").replaceAll("\\[.*?\\]", "")
                                            , tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber
                                            , tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "")
                                                    .replaceAll("[ 测定检测 ◆]", "").replaceAll("\\[.*?\\]", "")
                                            , tjOrderDetail.getProResult());
                                    if (null != maps && !maps.isEmpty()) {
                                        tjOrderDetail.setAdvices(maps);
                                    }
                                } else {
                                    String[] split = tjOrderDetail.getProResult().split("。|,|,");
                                    List<Map<String, Object>> mapList = new ArrayList<>();
                                    for (String s : split) {
                                        s = s.replaceAll("\n", "");
//                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
                                        Map<String, Object> maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0",xb);
                                        if (null != maps && !maps.isEmpty()) {
                                            Object bt = maps.get("bt");
                                            Object nr = maps.get("nr");
                                            if (null != bt || null != nr) mapList.add(maps);
                                        }
                                    }
                                    tjOrderDetail.setAdvices(mapList);
                                }
                            }
                            dels.add(tjOrderDetail);
                        }
                    }
                    if (!dels.isEmpty()) {
                        parent.put("proName", remark.getProName());
                        parent.put("jyjc", remark.getJyjc());
                        parent.put("sone", dels);
                        list.add(parent);
                    }
                }
            }
        }
        return list;
    }
    @GetMapping("/chushenyemianchakanxiangmujieguo")
    @ApiOperation(value = "初审页面查看项目结果接口")
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -642,82 +642,6 @@
                                     @ApiParam(value = "单位") @RequestParam(required = false) String dw,
                                     @ApiParam(value = "报告开始时间") @RequestParam(required = false) String djbeginTime,
                                     @ApiParam(value = "报告结束时间") @RequestParam(required = false) String djendTime) {
                                    /*        Map<String, Object> map = new HashMap<>();
        List<Long> cusIds = null;
        if (StringUtil.isNotBlank(name)) {
            LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
            wqq.like(TjCustomer::getCusName, name);
            cusIds = tjCustomerService.list(wqq).stream().map(TjCustomer::getCusId).collect(Collectors.toList());
        }
        Page<TjOrder> page1 = new Page<>(pageNum, pageSize);
        LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
        if (dyzt == 0) {
            wq.isNull(TjOrder::getPrintLastTime);
            wq.eq(TjOrder::getHeshouStatus, 1);  //核收状态为1才能打印
        } else {
            wq.isNotNull(TjOrder::getPrintLastTime);
        }
        if (null != djbeginTime && null != djendTime) {
            wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(DateUtil.parseDate(djbeginTime)), DateUtil.endOfDay(DateUtil.parseDate(djendTime)));
        }
        if (null != tjNum) {
            wq.like(TjOrder::getTjNumber, tjNum);
        }
        if (StringUtil.isNotBlank(dw)) {
            wq.like(TjOrder::getFirmName, dw);
        }
        if (null != cusIds && !cusIds.isEmpty()) {
            wq.in(TjOrder::getUserId, cusIds);
        }
        wq.orderByDesc(TjOrder::getCreateTime);
        Page<TjOrder> page2 = tjOrderService.page(page1, wq);
        List<TjOrder> list = page2.getRecords();
        if (list != null) {
            for (int i = 0; i < list.size(); i++) {
                TjCustomer tjCustomer = tjCustomerService.getById(list.get(i).getUserId());
                if (null == tjCustomer) {
                    list.remove(list.get(i));
                    continue;
                }
                list.get(i).setTjCustomerSex(tjCustomer.getCusSex());
                list.get(i).setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                list.get(i).setTjCustomerName(tjCustomer.getCusName());
                list.get(i).setTjCustomerPhone(tjCustomer.getCusPhone());
                if (tjCustomer.getCusIdcard() != null) {
                    list.get(i).setTjCusIdCard(tjCustomer.getCusIdcard());
                }
                if (null != tjCustomer.getCompName()) {
                    list.get(i).setDictCompName(tjCustomer.getCompName());
                } else {
                    String firmId = list.get(i).getFirmId();
                    if (firmId != null && null != iDictCompService.getById(String.valueOf(list.get(i).getFirmId()))) {
                        list.get(i).setDictCompName(iDictCompService.getById(String.valueOf(list.get(i).getFirmId())).getCnName());
                    }
                }
                if (null != list.get(i).getPacId()) {
                    if (null != tjPackageService.getById(list.get(i).getPacId())) {
                        list.get(i).setPacName(tjPackageService.getById(list.get(i).getPacId()).getPacName());
                    }
                    if (null != dwDeptService.getById(list.get(i).getPacId())) {
                        list.get(i).setPacName(dwDeptService.getById(list.get(i).getPacId()).getDwDeptName());
                    }
                }
                //从打印记录查出最新打印时间
//                LambdaQueryWrapper<TjReportPrint> wqqq = new LambdaQueryWrapper<>();
//                wqqq.eq(TjReportPrint::getTjNumber, list.get(i).getTjNumber());
//                wqqq.orderByDesc(TjReportPrint::getPrintTime);
//                wqqq.last("limit 1");
//                TjReportPrint one = tjReportPrintService.getOne(wqqq);
//                if (one != null) {
//                    list.get(i).setPrintLastTime(one.getPrintTime());
//                }
            }
        }
        map.put("list", list);
        map.put("total", page2.getTotal());*/
        if (djbeginTime == null) djbeginTime = "";
        if (djendTime == null) djendTime = "";
        Map<String, Object> map = tjOrderService.getTjBgdyList(pageNum, pageSize, dyzt, tjNum, name, dw, djbeginTime, djendTime);
@@ -923,13 +847,236 @@
    /**
     * 导出体检记录列表
     */
//    @PreAuthorize("@ss.hasPermi('hosp:order:export')")
    @Log(title = "体检记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    @ApiOperation(value = "导出体检记录列表")
    public void export(HttpServletResponse response, TjOrder tjOrder) {
        //List<TjOrder> list = tjOrderService.selectTjOrderList(tjOrder);
        List<TjOrder> list = tjOrderService.selectExportOrderList(tjOrder);
        ExcelUtil<TjOrder> util = new ExcelUtil<TjOrder>(TjOrder.class);
        util.exportExcel(response, list, "体检记录数据");
    }
    @PostMapping("/exportOrderList")
    @ApiOperation(value = "导出体检记录列表")
    public void exportOrderList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer pageNum,
                                   @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize,
                                   @ApiParam(value = "状态") @RequestParam(required = false) Integer zt,
                                   @ApiParam(value = "体检号)") @RequestParam(required = false) String tjNum,
                                   @ApiParam(value = "姓名)") @RequestParam(required = false) String name,
                                   @ApiParam(value = "项目名)") @RequestParam(required = false) String xmmc,
                                   @ApiParam(value = "登记开始时间") @RequestParam(required = false) Date djbeginTime,
                                   @ApiParam(value = "登记结束时间") @RequestParam(required = false) Date djendTime,
                                   @ApiParam(value = "报告开始时间") @RequestParam(required = false) Date bgbeginTime,
                                   @ApiParam(value = "报告结束时间") @RequestParam(required = false) Date bgendTime,
                                   @ApiParam(value = "单位") @RequestParam(required = false) String dw,
                                   HttpServletResponse response) {
        List<Long> cusIds = null;
        if (null != name) {
            LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
            wqq.like(TjCustomer::getCusName, name);
            cusIds = tjCustomerService.list(wqq).stream().map(TjCustomer::getCusId).collect(Collectors.toList());
        }
        Page<TjOrder> page1 = new Page<>(pageNum, pageSize);
        LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
        if (null != djbeginTime && null != djendTime) {
            wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(djbeginTime), DateUtil.endOfDay(djendTime));
        }
        if (null != bgbeginTime && null != bgendTime) {
            wq.between(TjOrder::getCreateTime, DateUtil.beginOfDay(bgbeginTime), DateUtil.endOfDay(bgendTime));
        }
        if (null != tjNum) {
            wq.eq(TjOrder::getTjNumber, tjNum);
        }
        if (null != xmmc) {
            wq.in(TjOrder::getTjNumber, projectService.getTjNumLIstByXmmx(xmmc));
        }
        if (StrUtil.isNotBlank(dw)) {
            wq.like(TjOrder::getFirmName, dw);
        }
        if (null != cusIds && !cusIds.isEmpty()) {
            wq.in(TjOrder::getUserId, cusIds);
        }
        if (null != zt && (zt == 0 || zt == 1 || zt == 2)) {
            List<TjOrder> orders = new ArrayList<>();
            List<TjOrder> tjOrders = null;
            List<TjOrder> orderList = tjOrderService.list(wq);
            if (null != orderList && !orderList.isEmpty()) {
                for (TjOrder order : orderList) {
                    int czwj = remarkService.panduaniscunzaiweijian(order.getTjNumber());
                    int sfwc = remarkService.panduaniswancheng(order.getTjNumber());
                    if (zt == 0 && czwj == 0) {
                        //未检0
                        order.setZt("未检");
                        orders.add(order);
                    }
                    if (zt == 1 && czwj > 0) {
                        //在检1
                        order.setZt("在检");
                        orders.add(order);
                    }
                    if (zt == 2 && sfwc == 0 && order.getCheckStatus() == 0 && order.getCheckTime() == null && order.getHeshouStatus() == 0 && order.getPrintLastTime() == null) {
                        //已完成2
                        order.setZt("已完成");
                        orders.add(order);
                    }
                }
                if (!orders.isEmpty()) {
                    tjOrders = orders.stream().sorted(Comparator.comparing(TjOrder::getCreateTime).reversed())
                            .skip((long) (pageNum - 1) * pageSize).limit(pageSize).collect(Collectors.toList());
                    for (TjOrder order : tjOrders) {
                        TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
                        if (null != tjCustomer) {
                            order.setTjCustomerSex(tjCustomer.getCusSex());
                            order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                            order.setTjCustomerName(tjCustomer.getCusName());
                            order.setTjCustomerPhone(tjCustomer.getCusPhone());
                            order.setTjCusIdCard(tjCustomer.getCusIdcard());
                            order.setCareer(tjCustomer.getCareer());
                            order.setIdType(tjCustomer.getIdType());
                            order.setAgeUnit(tjCustomer.getAgeUnit());
                            order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
                            String firmName = order.getFirmName();
                            if (StringUtil.isNotBlank(firmName)) {
                                order.setDictCompName(firmName);
                            }
                            if (null != order.getPacId()) {
                                if (null != tjPackageService.getById(order.getPacId())) {
                                    order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
                                } else if (null != dwDeptService.getById(order.getPacId())) {
                                    order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
                                }
                            }
                            TjDjdDyjl dycs = djdDyjlService.getDjdDyCsByTjNum(order.getTjNumber());
                            if (null != dycs) order.setDycs(Math.toIntExact(dycs.getDycs()));
                        }
                    }
                }
            }
            ExcelUtil<TjOrder> util = new ExcelUtil<TjOrder>(TjOrder.class);
            util.exportExcel(response, tjOrders, "体检记录数据");
        }
        if (null != zt) {
            if (zt == 3) {
                //已审核
                wq.isNotNull(TjOrder::getCheckTime);
                wq.eq(TjOrder::getCheckStatus, 1);
                wq.isNull(TjOrder::getHeshouTime);
                wq.isNull(TjOrder::getPrintLastTime);
                wq.eq(TjOrder::getHeshouStatus, 0);
            }
            if (zt == 4) {
                //生成报告
                wq.isNotNull(TjOrder::getReportTime);
                wq.isNull(TjOrder::getHeshouTime);
                wq.isNull(TjOrder::getPrintLastTime);
                wq.eq(TjOrder::getHeshouStatus, 0);
            }
            if (zt == 5) {
                //报告核收
                wq.eq(TjOrder::getHeshouStatus, 1);
                wq.isNull(TjOrder::getPrintLastTime);
            }
            if (zt == 6) {
                //已打印
                wq.isNotNull(TjOrder::getPrintLastTime);
                wq.eq(TjOrder::getHeshouStatus, 1);
                wq.isNotNull(TjOrder::getPrintLastTime);
            }
        }
        wq.orderByDesc(TjOrder::getCreateTime);
        Page<TjOrder> page2 = tjOrderService.page(page1, wq);
        List<TjOrder> list = page2.getRecords();
        if (list != null) {
            for (TjOrder order : list) {
                TjCustomer tjCustomer = tjCustomerService.getById(order.getUserId());
                if (null != tjCustomer) {
                    order.setTjCustomerSex(tjCustomer.getCusSex());
                    order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                    order.setTjCustomerName(tjCustomer.getCusName());
                    order.setTjCustomerPhone(tjCustomer.getCusPhone());
                    order.setTjCusIdCard(tjCustomer.getCusIdcard());
                    order.setCareer(tjCustomer.getCareer());
                    order.setIdType(tjCustomer.getIdType());
                    order.setAgeUnit(tjCustomer.getAgeUnit());
                    order.setTjCount(String.valueOf(tjCustomer.getCusNumber()));
                    if (null != tjCustomer.getCompName()) {
                        order.setDictCompName(tjCustomer.getCompName());
                    } else {
                        String firmId = order.getFirmId();
                        if (firmId != null && null != iDictCompService.getById(String.valueOf(order.getFirmId()))) {
                            order.setDictCompName(iDictCompService.getById(String.valueOf(order.getFirmId())).getCnName());
                        }
                    }
                    if (null != order.getPacId()) {
                        if (null != tjPackageService.getById(order.getPacId())) {
                            order.setPacName(tjPackageService.getById(order.getPacId()).getPacName());
                        } else if (null != dwDeptService.getById(order.getPacId())) {
                            order.setPacName(dwDeptService.getById(order.getPacId()).getDwDeptName());
                        }
                    }
                    TjDjdDyjl dycs = djdDyjlService.getDjdDyCsByTjNum(order.getTjNumber());
                    if (null != dycs) order.setDycs(Math.toIntExact(dycs.getDycs()));
                }
                int czwj = remarkService.panduaniscunzaiweijian(order.getTjNumber());
                int sfwc = remarkService.panduaniswancheng(order.getTjNumber());
                Date checkTime = order.getCheckTime();
                Date reportTime = order.getReportTime();
                Integer heshouStatus = order.getHeshouStatus();
                Date lastTime = order.getPrintLastTime();
                if (null != zt) {
                    if (zt == 3) {
                        order.setZt("已审核");
                    }
                    if (zt == 4) {
                        order.setZt("生成报告");
                    }
                    if (zt == 5) {
                        order.setZt("报告核收");
                    }
                    if (zt == 6) {
                        order.setZt("已打印");
                    }
                } else {
                    if (czwj == 0) {
                        //未检0
                        order.setZt("未检");
                    }
                    if (czwj > 0) {
                        //在检1
                        order.setZt("在检");
                    }
                    if (sfwc == 0) {
                        //已完成2
                        order.setZt("已完成");
                    }
                    if (null != checkTime) {
                        //已审核3
                        order.setZt("已审核");
                    }
                    if (null != reportTime) {
                        //生成报告4
                        order.setZt("生成报告");
                    }
                    if (1 == heshouStatus) {
                        //报告核收5
                        order.setZt("报告核收");
                    }
                    if (null != lastTime) {
                        //已打印6
                        order.setZt("已打印");
                    }
                }
            }
        }
        ExcelUtil<TjOrder> util = new ExcelUtil<TjOrder>(TjOrder.class);
        util.exportExcel(response, list, "体检记录数据");
    }
@@ -1236,21 +1383,9 @@
                        hisApiMethod.ZfHisApiMethod(jzh.toString());
                    }
                    log.info("该登记人挂号失败, 就诊号为: " + tjOrder.getCardId());
//                    return AjaxResult.error("挂号失败!" + result.get("msg").toString());
                    throw new IllegalStateException("挂号失败!" + result.get("msg").toString());
                }
                log.info("该登记人的his就诊号是: " + tjOrder.getCardId());
                //团体
/*                if ("1".equals(tjOrder.getTjType())) {
//                            asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
                    ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
                }*/
                //个人
         /*       if ("2".equals(tjOrder.getTjType())) {
                    //asyncService.newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                }*/
                // 查询 对接Lis、Pacs申请如果类型包含在配置内则使用对接lis、pacs
                try {
                    if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
@@ -1269,7 +1404,7 @@
                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                        log.info("调用his开启 进入不收费方法 该方法执行完毕");
                    } else {
                        log.info("调用his开启 进入收费方法 该体检人员不收费:"+tjOrder.getTjNumber());
                        log.info("调用his开启 进入收费方法 该体检人员收费:"+tjOrder.getTjNumber());
                        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
@@ -2049,7 +2184,6 @@
                    xdPictureService.saveBatch(xdPictureList);
                    List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                    addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
//                    return AjaxResult.success(tjNumber);
                }
                tjCustomer.setCardId("0");
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java
@@ -54,13 +54,9 @@
    /**
     * 客户对象
     */
    @Excels({
            @Excel(name = "客户名称", targetAttr = "cusName", type = Excel.Type.EXPORT, defaultValue = "无"),
            @Excel(name = "客户性别", targetAttr = "cusSex", type = Excel.Type.EXPORT, readConverterExp = "0=男,1=女", defaultValue = "无"),
            @Excel(name = "客户电话", targetAttr = "cusPhone", type = Excel.Type.EXPORT, defaultValue = "无"),
    })
    @TableField(exist = false)
    @ApiModelProperty(value = "客户对象")
//    @Excel(name = "客户名称", targetAttr = "cusName", type = Excel.Type.EXPORT, defaultValue = "无")
    private TjCustomer customer;
    /**
@@ -80,7 +76,7 @@
    /**
     * 流水号(时间戳生成)
     */
    @Excel(name = "流水号", defaultValue = "无")
//    @Excel(name = "流水号", defaultValue = "无")
    @ApiModelProperty(value = "流水号")
    @JsonSerialize(using = ToStringSerializer.class)
    private String tjSerialNumber;
@@ -88,19 +84,20 @@
    /**
     * 所选套餐(绑定套餐表)
     */
    @Excel(name = "所选套餐", defaultValue = "无")
//    @Excel(name = "所选套餐", defaultValue = "无")
    @ApiModelProperty(value = "所选套餐")
    @JsonSerialize(using = ToStringSerializer.class)
    private String pacId;
    @TableField(exist = false)
    @Excel(name = "套餐名")
    private String pacName;
    /**
     * 体检完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "体检完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "暂未完成")
    @Excel(name = "完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "暂未完成")
    @ApiModelProperty(value = "体检完成时间")
    @TableField(fill = FieldFill.INSERT_UPDATE, updateStrategy = FieldStrategy.IGNORED)
    private Date finishTime;
@@ -109,7 +106,7 @@
     * 出报告时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "出报告时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "暂无报告")
    @Excel(name = "报告时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "暂无报告")
    @ApiModelProperty(value = "出报告时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date reportTime;
@@ -118,11 +115,12 @@
     * 单位ID(外键)
     */
    @ApiModelProperty(value = "单位ID")
    @Excel(name = "单位ID", defaultValue = "无")
//    @Excel(name = "单位ID", defaultValue = "无")
    @JsonSerialize(using = ToStringSerializer.class)
    private String firmId;
    @ApiModelProperty(value = "单位名称")
    @Excel(name = "单位名")
    private String firmName;
@@ -137,7 +135,7 @@
    /**
     * 在单位工号
     */
    @Excel(name = "在单位工号", defaultValue = "无")
    @Excel(name = "工号", defaultValue = "无")
    @ApiModelProperty(value = "在单位工号")
    @JsonSerialize(using = ToStringSerializer.class)
    private String firmWorkId;
@@ -165,7 +163,7 @@
    /**
     * 总体建议
     */
    @Excel(name = "总体建议", defaultValue = "无")
//    @Excel(name = "总体建议", defaultValue = "无")
    @ApiModelProperty(value = "总体建议")
    private String checkAdvice;
@@ -173,7 +171,7 @@
     * 发布时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "暂未发布")
//    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "暂未发布")
    @ApiModelProperty(value = "发布时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date releaseTime;
@@ -181,14 +179,14 @@
    /**
     * 是否发送邮件
     */
    @Excel(name = "是否发送邮件", readConverterExp = "1=已发送,0=未发送")
//    @Excel(name = "是否发送邮件", readConverterExp = "1=已发送,0=未发送")
    @ApiModelProperty(value = "是否发送邮件")
    private String sendEmail;
    /**
     * 是否发送短信
     */
    @Excel(name = "是否发送短信", readConverterExp = "1=已发送,0=未发送")
//    @Excel(name = "是否发送短信", readConverterExp = "1=已发送,0=未发送")
    @ApiModelProperty(value = "是否发送短信")
    private String sendMessage;
@@ -201,7 +199,7 @@
    /**
     * 是否复检
     */
    @Excel(name = "是否复检", readConverterExp = "1=否,0=是")
//    @Excel(name = "是否复检", readConverterExp = "1=否,0=是")
    @ApiModelProperty(value = "是否复检")
    private Integer isReturn;
@@ -209,7 +207,7 @@
     * 报告最后打印时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = " pc最后打印报告时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "无")
    @Excel(name = " 打印报告时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "无")
    @ApiModelProperty(value = "报告最后打印时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date printLastTime;
@@ -218,7 +216,7 @@
     * 报告最后下载时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "web最后下载报告时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "无")
//    @Excel(name = "web最后下载报告时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss", defaultValue = "无")
    @ApiModelProperty(value = "报告最后下载时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date downloadLastTime;
@@ -229,6 +227,7 @@
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "所在单位名称")
//    @Excel(name = "单位")
    private String dictCompName;
    /**
@@ -236,6 +235,7 @@
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "所选套餐信息名称")
//    @Excel(name = "")
    private String tjPackageName;
    /**
@@ -243,6 +243,7 @@
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "体检记录中的客户名字")
    @Excel(name = "姓名")
    private String tjCustomerName;
    /**
@@ -250,6 +251,7 @@
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "体检记录中的客户性别")
    @Excel(name = "性别",  readConverterExp = "0=男,1=女")
    private Long tjCustomerSex;
    /**
@@ -257,6 +259,7 @@
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "体检记录中的客户年龄")
    @Excel(name = "年龄")
    private Integer tjCustomerAge;
    /**
@@ -264,6 +267,7 @@
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "体检记录中的客户电话")
    @Excel(name = "电话")
    private String tjCustomerPhone;
    /**
@@ -271,6 +275,7 @@
     */
    @TableField(exist = false)
    @ApiModelProperty(value = "体检记录中的客户身份证号码")
    @Excel(name = "身份证号码")
    private String tjCusIdCard;
@@ -382,6 +387,7 @@
     */
    @ApiModelProperty(value = "初审医生")
    private String confirmDoctor;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "初审时间")
    @TableField(fill = FieldFill.UPDATE)
@@ -439,9 +445,11 @@
     * 体检类别
     */
    @ApiModelProperty("体检类别")
    @Excel(name = "体检类别")
    private String tjCategory;
    @ApiModelProperty("就诊编号")
    @Excel(name = "就诊编号")
    private String cardId;
    @ApiModelProperty("预约号")
@@ -456,6 +464,7 @@
    @TableField(exist = false)
    @Excel(name = "体检状态")
    private String zt;
    @Override
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderRemarkMapper.java
@@ -225,12 +225,27 @@
    List<TjOrderRemark> yiShengJianChaGetPrentPro(@Param("tjNumber") String tjNumber,@Param("split") Set<Integer> split);
    @Select({"<script>", "SELECT a.* FROM tj_order_remark a JOIN tj_project b ON b.pro_id=a.pro_id JOIN sys_dept c ON c.dept_id=a.dept_id ",
            " WHERE a.deleted=0 and  b.need_report='Y' AND c.org_type !=1 AND a.type !=2 AND a.tj_number=#{tjNumber} and a.dept_id in ",
            "<foreach collection='split' item='id' open='(' separator=',' close=')'>",
            "#{id}",
            "</foreach>",
            "</script>" })
    List<TjOrderRemark> yiShengJianChaYjGetPrentPro(@Param("tjNumber") String tjNumber,@Param("split") Set<Integer> split);
    @Select("SELECT a.* FROM tj_order_remark a JOIN tj_project b ON b.pro_id=a.pro_id JOIN sys_dept c ON c.dept_id=a.dept_id\n" +
            "\n" +
            "WHERE a.deleted=0 and b.need_report='Y' AND c.org_type !=1 AND !ISNULL(a.sfbz) AND a.type !=2 AND a.tj_number=#{tjNumber} \n")
    List<TjOrderRemark> yiShengJianChaGetPrentProCJGLY(@Param("tjNumber") String tjNumber);
    @Select("SELECT a.* FROM tj_order_remark a JOIN tj_project b ON b.pro_id=a.pro_id JOIN sys_dept c ON c.dept_id=a.dept_id\n" +
            "\n" +
            "WHERE a.deleted=0 and b.need_report='Y' AND c.org_type !=1 AND a.type !=2 AND a.tj_number=#{tjNumber} \n")
    List<TjOrderRemark> yiShengJianChaYjGetPrentProCJGLY(@Param("tjNumber")String tjNumber);
    @Select({"<script>" +
            "SELECT\n" +
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderYcxmMapper.java
@@ -4,6 +4,9 @@
import com.ltkj.hosp.domain.TjOrderYcxm;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
 * ClassName: TjOrderYcxmMapper <br/>
@@ -17,4 +20,8 @@
    @Delete("DELETE FROM tj_order_ycxm WHERE tjh=#{tjh}")
    void delOrderYcXmJyByTjh(String tjh);
    @Select("select * FROM tj_order_ycxm WHERE tjh=#{tjNumber}")
    List<TjOrderYcxm> selectListByTjh(String tjNumber);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderRemarkService.java
@@ -89,8 +89,12 @@
    List<TjOrderRemark> yiShengJianChaGetPrentPro(String tjNumber, Set<Integer> split);
    List<TjOrderRemark> yiShengJianChaYjGetPrentPro(String tjNumber, Set<Integer> split);
    List<TjOrderRemark> yiShengJianChaGetPrentProCJGLY(String tjNumber);
    List<TjOrderRemark> yiShengJianChaYjGetPrentProCJGLY(String tjNumber);
    List<CsProVo> ysjcGetProByTjNumAndOrderId(String tjNumber);
    List<TjOrderRemark> shoufeiyemianyishoufei(String tjNumber,String jxbz);
ltkj-hosp/src/main/java/com/ltkj/hosp/service/TjOrderYcxmService.java
@@ -3,6 +3,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ltkj.hosp.domain.TjOrderYcxm;
import java.util.List;
/**
 * ClassName: TjOrderYcxmService <br/>
 * Description: <br/>
@@ -13,4 +15,6 @@
public interface TjOrderYcxmService extends IService<TjOrderYcxm> {
    void delOrderYcXmJyByTjh(String tjh);
    List<TjOrderYcxm> selectListByTjh(String tjNumber);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderRemarkServiceImpl.java
@@ -174,11 +174,21 @@
    }
    @Override
    public List<TjOrderRemark> yiShengJianChaYjGetPrentPro(String tjNumber, Set<Integer> split) {
        return mapper.yiShengJianChaYjGetPrentPro(tjNumber,split);
    }
    @Override
    public List<TjOrderRemark> yiShengJianChaGetPrentProCJGLY(String tjNumber) {
        return mapper.yiShengJianChaGetPrentProCJGLY(tjNumber);
    }
    @Override
    public List<TjOrderRemark> yiShengJianChaYjGetPrentProCJGLY(String tjNumber) {
        return mapper.yiShengJianChaYjGetPrentProCJGLY(tjNumber);
    }
    @Override
    public List<CsProVo> ysjcGetProByTjNumAndOrderId(String tjNumber) {
        return mapper.ysjcGetProByTjNumAndOrderId(tjNumber);
    }
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
@@ -68,7 +68,7 @@
     */
    @Override
    public List<TjOrder> selectExportOrderList(TjOrder tjOrder) {
        List<TjOrder> tjOrders = tjOrderMapper.selectExportOrderList(tjOrder);
        List<TjOrder> tjOrders = tjOrderMapper.selectTjOrderList(tjOrder);
        for (TjOrder order : tjOrders) {
            if (order.getUserId()!=null){
                TjCustomer byId = customerService.getById(order.getUserId());
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderYcxmServiceImpl.java
@@ -7,6 +7,8 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Collections;
import java.util.List;
/**
 * ClassName: TjOrderYcxmServiceImpl <br/>
@@ -24,4 +26,9 @@
    public void delOrderYcXmJyByTjh(String tjh) {
        mapper.delOrderYcXmJyByTjh(tjh);
    }
    @Override
    public List<TjOrderYcxm> selectListByTjh(String tjNumber) {
        return mapper.selectListByTjh(tjNumber);
    }
}