zhaowenxuan
2025-06-05 8b5f92972cf09ff0e52b5d15f44ba11e579a5928
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -95,6 +95,7 @@
import org.springframework.http.HttpRequest;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.NoTransactionException;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
@@ -143,8 +144,8 @@
    private ITbTransitionService transitionService;
    @Resource
    private ISysConfigService configService;
    @Value("${path.filePath}")
    private String value;
//    @Value("${path.filePath}")
//    private String value;
    @Resource
    private ITjOrderRemarkService remarkService;
    @Resource
@@ -1033,16 +1034,17 @@
            if (null != tjReservation.getPacId()) tjOrder.setPacId(tjReservation.getPacId());
            if (null != tjReservation.getTjCategory()) tjOrder.setTjCategory(tjReservation.getTjCategory());
            if (null != tjReservation.getGroupingId()) {
                TjDwGrouping dwGrouping = dwGroupingService.getById(tjReservation.getGroupingId());
                tjOrder.setGroupId(tjReservation.getGroupingId());
                tjOrder.setFirmDeptId(tjReservation.getPacId());
                tjOrder.setFirmDeptId(dwGrouping.getDwDeptId());
            }
            tjReservation.setIsExpire(1);
            tjReservationService.updateById(tjReservation);
            if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
                tjOrder.setTjType("1");
            } else if (tjOrder.getTjType().equals("2")) {
                tjOrder.setTjType("2");
            }
//            if (null != tjReservation.getTeamNo() && tjOrder.getTjType().equals("1")) {
//                tjOrder.setTjType("1");
//            } else if (tjOrder.getTjType().equals("2")) {
//                tjOrder.setTjType("2");
//            }
        }
        if (StringUtil.isBlank(tjOrder.getFirmId())) {
            tjOrder.setFirmId("0");
@@ -1087,6 +1089,7 @@
                return result;
            }
        }catch (Exception e){
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            log.error(String.valueOf(e),e.getMessage());
            e.printStackTrace();
        }
@@ -1096,7 +1099,8 @@
        return AjaxResult.error();
    }
    @Transactional(propagation = Propagation.REQUIRES_NEW, isolation = Isolation.READ_COMMITTED)
    @Transactional(propagation = Propagation.REQUIRED)
    public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) {
        //获取拼接前缀
@@ -1132,6 +1136,7 @@
                }
            } catch (Exception e) {
                log.error(e.getMessage());
                throw new IllegalStateException();
            }finally {
                a++;
            }
@@ -1227,15 +1232,21 @@
            /*调用his接口*/
            String config = configService.selectConfigByKey("sfkqdyhis");
            if (null != config && config.equals("Y")) {
                AjaxResult result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder);
                if (!result.get("code").toString().equals("200")) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    Object jzh = result.get("jzh");
                    if (null != jzh && null != jzh.toString()) {
                        hisApiMethod.ZfHisApiMethod(jzh.toString());
                AjaxResult result = null;
                try {
                    result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder);
                    if (!result.get("code").toString().equals("200")) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        Object jzh = result.get("jzh");
                        if (null != jzh && null != jzh.toString()) {
                            hisApiMethod.ZfHisApiMethod(jzh.toString());
                        }
                        log.info("该登记人挂号失败, 就诊号为: " + tjOrder.getCardId());
                        return AjaxResult.error("挂号失败!" + result.get("msg").toString());
                    }
                    log.info("该登记人挂号失败, 就诊号为: " + tjOrder.getCardId());
                    return AjaxResult.error("挂号失败!" + result.get("msg").toString());
                } catch (NoTransactionException e) {
                    log.error(e.getMessage());
                    throw new RuntimeException(e);
                }
                log.info("该登记人的his就诊号是: " + tjOrder.getCardId());
@@ -1250,27 +1261,29 @@
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                }*/
                // 查询 对接Lis、Pacs申请如果类型包含在配置内则使用对接lis、pacs
                if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
                    // 这是上面个人方法引入数据
                    tjFlowingWater.setPayStasus(1L);
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                    AjaxResult ajaxResult = hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder, sysUser, result);
                    if (!ajaxResult.get("code").toString().equals("200")) return ajaxResult;
                    tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                            sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                    remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                    List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                    xdPictureService.saveBatch(xdPictureList);
//                    List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
//                    addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                } else {
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                    List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                    addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                    hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
                try {
                    if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
                        // 这是上面个人方法引入数据
                        tjFlowingWater.setPayStasus(1L);
                        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                        AjaxResult ajaxResult = hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder, sysUser, result);
                        if (!ajaxResult.get("code").toString().equals("200")) return ajaxResult;
                        tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                                sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                        remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                        List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                        xdPictureService.saveBatch(xdPictureList);
                    } else {
                        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                        hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
                    }
                    return AjaxResult.success(tjNumber);
                } catch (Exception e) {
                    log.error(e.getMessage());
                    throw new RuntimeException(e);
                }
                return AjaxResult.success(tjNumber);
            } else {
                tjCustomer.setCardId(tjOrder.getTjNumber());
                tjCustomerService.updateById(tjCustomer);
@@ -1369,91 +1382,103 @@
            String drrysfsf = configService.selectConfigByKey("drrysfsf");
            if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
                if(StringUtil.isNotBlank(drrysfsf) && drrysfsf.equalsIgnoreCase("Y")){
                    if(null != tjReservation){
                        return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
                    }else {
                        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                        AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
                        if (error != null) return error;
                        return AjaxResult.success(tjNumber);
                    }
                }
                return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
            try {
                if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
                    if(StringUtil.isNotBlank(drrysfsf) && drrysfsf.equalsIgnoreCase("Y")){
                        if(null != tjReservation){
                            return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
                        }else {
                            newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                            AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
                            if (error != null) return error;
            } else {
                newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
                if (error != null) return error;
//                List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
//                addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                            return AjaxResult.success(tjNumber);
                        }
                    }
                    return isUseLisAndPacsRegister(tjOrder, tjCustomer, tjReservation, tjFlowingWater, sysUser, discount, tjNumber);
                } else {
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                    AjaxResult error = isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
                    if (error != null) return error;
                }
            } catch (Exception e) {
                log.error(e.getMessage());
                throw new RuntimeException(e);
            }
            return AjaxResult.success(tjNumber);
//            pacsApiMethodService.OrderAdd(tjCustomer,tjOrder);
//            return AjaxResult.success(tjNumber);
        }
        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        return AjaxResult.error();
    }
    private AjaxResult isUseLisAndPacsRegister(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, SysUser sysUser, BigDecimal discount, String tjNumber) {
        log.info("签到登记进入未收费方法");
        // 这是上面个人方法引入数据
        tjFlowingWater.setPayStasus(1L);
        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
        tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
        remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
        List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
        xdPictureService.saveBatch(xdPictureList);
        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
        log.info("签到登记:采样数据查询个数"+detailList.size());
        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
        return AjaxResult.success(tjNumber);
        try {
            log.info("签到登记进入未收费方法");
            // 这是上面个人方法引入数据
            tjFlowingWater.setPayStasus(1L);
            newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
            tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
            remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
            List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
            xdPictureService.saveBatch(xdPictureList);
            List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
            log.info("签到登记:采样数据查询个数"+detailList.size());
            addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
            return AjaxResult.success(tjNumber);
        } catch (Exception e) {
            log.error(e.getMessage());
            throw new RuntimeException(e);
        }
    }
    public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
        tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
        if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
            tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(),
                    String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
        } else {
            tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
        }
        try {
            tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
            if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
                tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(),
                        String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
            } else {
                tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
            }
        tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
            tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
        //添加remark表数据
        if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
            remarkService.saveJSYTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
            //添加remark表数据
            if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
                remarkService.saveJSYTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
        } else {
            remarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
            } else {
                remarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
        }
        //判断是否交钱
        if ("1".equals(tjOrder.getTjType())) {
            if (null != tjReservation && tjReservation.getPayType() == 1) {
            }
            //判断是否交钱
            if ("1".equals(tjOrder.getTjType())) {
                if (null != tjReservation && tjReservation.getPayType() == 1) {
                    tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                            sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                    remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                    List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                    xdPictureService.saveBatch(xdPictureList);
                }
            }
            if (tjFlowingWater.getPayStasus() == 1L) {
                tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                        sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn());
                tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith());
                tjFlowingWater.setPayType(4L);
                tjFlowingWaterService.updateById(tjFlowingWater);
                remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
    //            asyncService.addTjChargingStandard(tjOrder, transitionService.getTbTransitionListByCusId(tjCustomer.getCusIdcard(), tjOrder.getCardId()), sysUser);
                List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                xdPictureService.saveBatch(xdPictureList);
            }
        }
        if (tjFlowingWater.getPayStasus() == 1L) {
            tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
            tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn());
            tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith());
            tjFlowingWater.setPayType(4L);
            tjFlowingWaterService.updateById(tjFlowingWater);
            remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
//            asyncService.addTjChargingStandard(tjOrder, transitionService.getTbTransitionListByCusId(tjCustomer.getCusIdcard(), tjOrder.getCardId()), sysUser);
            List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
            xdPictureService.saveBatch(xdPictureList);
        } catch (Exception e) {
            log.error(e.getMessage());
            throw new RuntimeException(e);
        }
    }
@@ -1481,6 +1506,10 @@
            List<TbTransition> list = tbTransitionService.list(wrapper);
            BigDecimal zongjia = new BigDecimal("0.0");
            String tjfhisxmbm = configService.selectConfigByKey("tjfhisxmbm");
            String lycdzjhmxj = configService.selectConfigByKey("lycdzjhmxj");
            for (TbTransition transition : list) {
                LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                wrapper1.eq(TjProject::getProId, transition.getProId());
@@ -1505,7 +1534,25 @@
                array.add(obj);
                zongjia = zongjia.add(allPrice);
            }
            map.put("feiYongInfoList", array);
            if(StringUtil.isNotBlank(lycdzjhmxj) && lycdzjhmxj.equalsIgnoreCase("N")){
                map.put("feiYongInfoList", array);
            }else {
                zongjia = tjFlowingWater.getPaidIn();
                JSONArray zjarray = JSONUtil.createArray();
                JSONObject obj = JSONUtil.createObj();
                int sl = 1;
                obj.putOpt("danJia", zongjia);
                obj.putOpt("jieSuanJe", zongjia);
                obj.putOpt("shuliang", sl);
                obj.putOpt("zhiXingKs", "100");
                obj.putOpt("zhiXingKsMc","体检中心");
                obj.putOpt("shouFeiXmId", tjfhisxmbm);
                obj.putOpt("shouFeiXmMc", "体检费");
                zjarray.add(obj);
                map.put("feiYongInfoList", zjarray);
            }
            log.info("调用His接口前 收费总价:{}", zongjia.toString());
            String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
@@ -1648,12 +1695,17 @@
        if (null != cusIds && !cusIds.isEmpty()) {
            ExecutorService threadPools = Executors.newFixedThreadPool(cusIds.size());
            for (String cusId : cusIds) {
                threadPools.execute(new Runnable() {
                    @Override
                    public void run() {
                        getAjaxResults(cusId);
                    }
                });
//                threadPools.execute(new Runnable() {
//                    @Override
//                    public void run() {
                try {
                    getAjaxResults(cusId);
                } catch (Exception e) {
                }
//                    }
//                });
            }
            LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
            wq.in(TjCustomer::getCusIdcard, cusIds);
@@ -1699,72 +1751,17 @@
            }
            // TODO 因为有体检号会查出空数据 先使用死数据  打印导诊单
            if (!tjNumbers.isEmpty()) {
            /*    Map<String, Object> map = null;
                try {
                    map = PDFDocumentUtil.getDocument();
                    Document document = (Document) map.get("document");
//                    for (int i = 0; i < tjNumbers.size(); i++) {
                    int i = 0;
                    for (String tjNumber : tjNumbers) {
                        try {
                            List<Map<String, Object>> djdInfos = tjOrderService.selectDjdInfo(tjNumber);
                            Map<String, Object> userInfo = tjOrderService.selectDjdUserInfo(tjNumber);
                            if(null !=userInfo && null !=djdInfos && !djdInfos.isEmpty()){
                                LocalDateTime tjsj = (LocalDateTime) userInfo.get("tjsj");
                                DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm");
                                String time = null;
                                if (tjsj != null) {
                                    time = dateFormat.format(tjsj);
                                }
                                PDFDocumentUtil.makeUserInfoTable(document, (String) userInfo.get("tjname"), (String) userInfo.get("sex")
                                        , (String) userInfo.get("tjh"), (String) userInfo.get("lxdh"), (String) userInfo.get("tjname"), time);
                                PDFDocumentUtil.makeTjInfo(document, djdInfos);
                                // 多条则换页
                                if (i + 1 < tjNumbers.size()) {
                                    document.newPage();
                                }
                            }
                        } catch (DocumentException | IOException e) {
                            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                            //这里删除的是这个人所有项目包括补录项目
                            TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                            tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
                            remarkService.deletedOrderRemarkByTjNum(tjNumber);
                            tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
//                transitionService.deletedTbTransitionByTjNum(tjNum);
                            tjSamplingMapper.deleteByTjNumAndCusId(order.getTjNumber(), order.getUserId());
                            TjReservation reservation = tjReservationService.getById(order.getReservationId());
                            if(null !=reservation){
                                reservation.setIsExpire(2);
                                tjReservationService.updateById(reservation);
                                transitionService.updateTbTransitionByTjNum(tjNumber);
                            }
                            e.printStackTrace();
                        }
                    }
//                    }
                    document.close();
                    ByteArrayOutputStream outputStream = (ByteArrayOutputStream) map.get("stream");
                    String encodeToString = java.util.Base64.getEncoder().encodeToString(outputStream.toByteArray());
                    return AjaxResult.success().put("file", encodeToString);
                } catch (IOException | DocumentException e) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    e.printStackTrace();
                }*/
                Map<String,Object> map=new HashMap<>();
                map.put("tjh",tjNumbers);
                return AjaxResult.success("操作成功",map);
            }
            if (!errTjh.isEmpty()){
                Map<String,Object> map=new HashMap<>();
                map.put("errtjh",errTjh);
                return AjaxResult.success("以上人员签到失败",map);
            }
            return AjaxResult.success();
            return AjaxResult.error();
        }
//        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
        return AjaxResult.error();
@@ -1843,51 +1840,59 @@
                    tjReservationService.updateById(tjReservation);
//                    return AjaxResult.error("对不起您的预约已超时请重新预约");
                }*/
                LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>();
                qw.eq(TjCustomer::getCusIdcard, cusIdcard);
                TjCustomer tjCustomer1 = tjCustomerService.getOne(qw);
                if (tjCustomer1 != null) {
                    tjCustomer1.setTjType(tjReservation.getTjType());
                    tjCustomer1.setCusName(tjReservation.getName());
                    tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex()));
                    tjCustomer1.setCusBrithday(tjReservation.getBirthday());
                    tjCustomer1.setCusPhone(tjReservation.getPhoe());
                    tjCustomer1.setCusEmail(tjReservation.getEmail());
                    tjCustomer1.setCusAddr(tjReservation.getAddress());
                    tjCustomer1.setCusMarryStatus(String.valueOf(tjReservation.getMarriage()));
                    tjCustomer1.setCusNational(String.valueOf(tjReservation.getNation()));
                    tjCustomer1.setIdType(tjReservation.getIdType());
                    tjCustomer1.setAge(tjReservation.getAge());
                    tjCustomer1.setAgeUnit(tjReservation.getAgeUnit());
                    tjCustomer1.setCareer(tjReservation.getCareer());
                    tjCustomerService.updateById(tjCustomer1);
                } else {
                    TjCustomer tjCustomer = new TjCustomer();
                    tjCustomer.setCusIdcard(tjReservation.getIdCard());
                    tjCustomer.setCusName(tjReservation.getName());
                    tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex()));
                    tjCustomer.setCusBrithday(tjReservation.getBirthday());
                    tjCustomer.setCusPhone(tjReservation.getPhoe());
                    tjCustomer.setCusEmail(tjReservation.getEmail());
                    tjCustomer.setCusAddr(tjReservation.getAddress());
                    tjCustomer.setCusMarryStatus(String.valueOf(tjReservation.getMarriage()));
                    tjCustomer.setCusNational(String.valueOf(tjReservation.getNation()));
                    tjCustomer.setIdType(tjReservation.getIdType());
                    tjCustomer.setAge(tjReservation.getAge());
                    tjCustomer.setAgeUnit(tjReservation.getAgeUnit());
                    tjCustomer.setCareer(tjReservation.getCareer());
                    tjCustomer.setDwPhone(tjReservation.getDwPhone());
                    tjCustomer.setCardId(tjReservation.getCardId());
                    tjCustomer.setIndexCard(tjReservation.getIndexCard());
                    //截取密码自动生成set进去
                    String substring = cusIdcard.substring(cusIdcard.length() - 6);
                    substring = DigestUtils.md5DigestAsHex(substring.getBytes());
                    tjCustomer.setCusPassword(substring);
                    tjCustomer.setTjType(tjReservation.getTjType());
                    tjCustomerService.save(tjCustomer);
                try {
                    LambdaQueryWrapper<TjCustomer> qw = new LambdaQueryWrapper<>();
                    qw.eq(TjCustomer::getCusIdcard, cusIdcard);
                    TjCustomer tjCustomer1 = tjCustomerService.getOne(qw);
                    if (tjCustomer1 != null) {
                        tjCustomer1.setTjType(tjReservation.getTjType());
                        tjCustomer1.setCusName(tjReservation.getName());
                        tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex()));
                        tjCustomer1.setCusBrithday(tjReservation.getBirthday());
                        tjCustomer1.setCusPhone(tjReservation.getPhoe());
                        tjCustomer1.setCusEmail(tjReservation.getEmail());
                        tjCustomer1.setCusAddr(tjReservation.getAddress());
                        tjCustomer1.setCusMarryStatus(String.valueOf(tjReservation.getMarriage()));
                        tjCustomer1.setCusNational(String.valueOf(tjReservation.getNation()));
                        tjCustomer1.setIdType(tjReservation.getIdType());
                        tjCustomer1.setAge(tjReservation.getAge());
                        tjCustomer1.setAgeUnit(tjReservation.getAgeUnit());
                        tjCustomer1.setCareer(tjReservation.getCareer());
                        tjCustomerService.updateById(tjCustomer1);
                    } else {
                        TjCustomer tjCustomer = new TjCustomer();
                        tjCustomer.setCusIdcard(tjReservation.getIdCard());
                        tjCustomer.setCusName(tjReservation.getName());
                        tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex()));
                        tjCustomer.setCusBrithday(tjReservation.getBirthday());
                        tjCustomer.setCusPhone(tjReservation.getPhoe());
                        tjCustomer.setCusEmail(tjReservation.getEmail());
                        tjCustomer.setCusAddr(tjReservation.getAddress());
                        tjCustomer.setCusMarryStatus(String.valueOf(tjReservation.getMarriage()));
                        tjCustomer.setCusNational(String.valueOf(tjReservation.getNation()));
                        tjCustomer.setIdType(tjReservation.getIdType());
                        tjCustomer.setAge(tjReservation.getAge());
                        tjCustomer.setAgeUnit(tjReservation.getAgeUnit());
                        tjCustomer.setCareer(tjReservation.getCareer());
                        tjCustomer.setDwPhone(tjReservation.getDwPhone());
                        tjCustomer.setCardId(tjReservation.getCardId());
                        tjCustomer.setIndexCard(tjReservation.getIndexCard());
                        //截取密码自动生成set进去
                        String substring = cusIdcard.substring(cusIdcard.length() - 6);
                        substring = DigestUtils.md5DigestAsHex(substring.getBytes());
                        tjCustomer.setCusPassword(substring);
                        tjCustomer.setTjType(tjReservation.getTjType());
                        tjCustomerService.save(tjCustomer);
                    }
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            }else {
                throw new RuntimeException();
            }
        }else {
            throw new RuntimeException();
        }
    }
@@ -1980,7 +1985,7 @@
            //获取拼接前缀
            String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
//            String tjNumber = (sysUser.getUserName() + idUtils.getTjNumber());
            String tjNumber = idUtils.getTjNumber();
            String tjNumber = idUtils.getNewTjNumberRedisLockAndMysql();
            if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber;
@@ -2224,9 +2229,11 @@
                    transitionService.saveRedisTransitionByPacId(cusId, cardId, pacId);
                    //补差价
                    List<Map<String, Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId.toString(), cusId);
                    List<Map<String, Object>> cjMaps = transitionService.addTbhuoquxiangmuchajia(pacId.toString(), cusId);
                    if (null != cjMaps && !cjMaps.isEmpty()) {
                        log.info("该套餐"+pacId+"中有差价:"+cjMaps.size()+"个");
                        for (Map<String, Object> cjMap : cjMaps) {
                            log.info("添加临时表套餐数据时所选的差价为:"+ cjMap.get("cj").toString());
                            transitionService.buxiangmuchajia(cusId, pacId.toString(), cjMap.get("xmid").toString(), new BigDecimal(cjMap.get("cj").toString()));
                        }
                    }
@@ -3096,9 +3103,9 @@
            TjReport tjReport = new TjReport();
            tjReport.setTjNumber(String.valueOf(tjNumber));
            tjReport.setPath(urlValue + outputFileName1);
            String outputPath1 = value + File.separator;
            String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
            tjReport.setReport(pdfBinary);
//            String outputPath1 = value + File.separator;
//            String pdfBinary = getPDFBinary(outputPath1 + outputFileName1);
//            tjReport.setReport(pdfBinary);
            tjReport.setType("体检报告");
            tjReport.setPrint("pdf");
            tjReportService.save(tjReport);
@@ -3229,13 +3236,14 @@
        TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
        if (null != order) {
//            String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
//            if (null != payByTjNum) {
//                return AjaxResult.error("该用户已收费不可撤销签到!");
//            }
            if (null != order.getFinishTime()) return AjaxResult.error("该人员已签离,不可撤销!!!");
            Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
            String username = SecurityUtils.getUsername();
            LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TjCustomer::getCusId, order.getUserId());
            TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
            String s = configService.selectConfigByKey("is_request_common_his_api");
//            if (null != s && s.equals("Y") && "2".equals(order.getTjType())) {
@@ -3249,9 +3257,7 @@
                wrapper1.eq(TjFlowingWater::getOrderId, order.getOrderId());
                wrapper1.orderByDesc(TjFlowingWater::getJxbz);
                List<TjFlowingWater> list = tjFlowingWaterService.list(wrapper1);
                LambdaQueryWrapper<TjCustomer> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjCustomer::getCusId, order.getUserId());
                TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
                for (TjFlowingWater water : list) {
                    if (water.getPayStasus() == 0L) {
@@ -3261,11 +3267,18 @@
                    }
                }
                log.info("工号为: "+username+" 的用户即将撤销 体检号为:"+tjNum+" 的体检记录;" );
                AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, tjNum);
                if (error != null && !error.get("code").toString().equals("200")) return error;
                if (error != null && !error.get("code").toString().equals("200")){
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+tjNum+" 并且未支付的体检记录;" );
                    return error;
                }
                AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, tjNum);
                if (error1 != null && !error.get("code").toString().equals("200")) return error1;
                if (error1 != null && !error.get("code").toString().equals("200"))
                {
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+tjNum+" 并且已支付的体检记录;" );
                    return error1;
                }
            } else {
                tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
                tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
@@ -3273,10 +3286,8 @@
                tjFlowingWaterService.deleteTjFlowingWaterByOrderId(String.valueOf(order.getOrderId()));
                transitionService.deletedTbTransitionByTjNum(tjNum);
                ycxmService.delOrderYcXmJyByTjh(tjNum);
                TjCustomer customer = tjCustomerService.getById(order.getUserId());
                customer.setCardId("0");
                tjCustomerService.updateById(customer);
                tjCustomer.setCardId("0");
                tjCustomerService.updateById(tjCustomer);
                xdPictureService.deleteTjXdPictureBytjNum(tjNum);
                tjSamplingMapper.deleteByTjNumAndCusId(tjNum, order.getUserId());
            }
@@ -3486,11 +3497,9 @@
    public AjaxResult revokeTjOrderByTjh(@RequestParam @ApiParam(value = "体检号") String tjNum) {
        TjOrder order = tjOrderService.getOrderByTjNum(tjNum);
        String username = SecurityUtils.getUsername();
        log.info("工号为: "+username+" 的用户即将强制撤销 体检号为:"+tjNum+" 的体检记录;" );
        if (null != order) {
//            String payByTjNum = tjOrderService.isPayByTjNum(String.valueOf(order.getOrderId()));
//            if (null != payByTjNum) {
//                return AjaxResult.error("该用户已收费不可撤销签到!");
//            }
            //这里删除的是这个人所有项目包括补录项目
            tjOrderService.deleteTjOrderByOrderId(order.getOrderId());
            tjOrderDetailService.deleteTjOrderDetailByOrderDetailId(String.valueOf(order.getOrderId()));
@@ -3548,7 +3557,10 @@
        }
        TjOrder order = tjOrderService.getOrderByTjNum(dto.getTjh());
        String username = SecurityUtils.getUsername();
        if (null != order) {
            log.info("工号为: "+username+" 的用户即将撤销 体检号为:"+dto.getTjh()+"补录单号为: " + dto.getBldhs()+ " 的 补录体检记录;" );
            String configByKey = configService.selectConfigByKey("sfkqdyhis");
            if (null != configByKey && configByKey.equals("Y")) {
                log.info("dto的数据是" + JSONUtil.toJsonStr(dto));
@@ -3610,10 +3622,18 @@
                wrapper.eq(TjCustomer::getCusId, order.getUserId());
                TjCustomer tjCustomer = tjCustomerService.getOne(wrapper);
                AjaxResult error = zuofeiWeiZhifu(weizhifu, tjCustomer, apiUrl, hospbm, order, true, dto.getTjh());
                if (error != null && !error.get("code").toString().equals("200")) return error;
                if (error != null && !error.get("code").toString().equals("200"))
                {
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+dto.getTjh()+"补录单号为: " + dto.getBldhs()+ " 并且未支付的补录体检记录;" );
                    return error;
                }
                AjaxResult error1 = zuofeiYiZhifu(yizhifu, tjCustomer, order, apiUrl, hospbm, false, dto.getTjh());
                if (error1 != null && !error.get("code").toString().equals("200")) return error1;
                if (error1 != null && !error.get("code").toString().equals("200"))
                {
                    log.info("工号为: "+username+" 的用户正在撤销 体检号为:"+dto.getTjh()+"补录单号为: " + dto.getBldhs()+ " 并且已支付的补录体检记录;" );
                    return error1;
                }
                return AjaxResult.success();
            } else {
                try {
@@ -3969,16 +3989,6 @@
    @GetMapping(value = "newgetTransitionList")
    @ApiOperation(value = "最新查询过渡表数据")
    public AjaxResult newgetTransitionList(@RequestParam @ApiParam(value = "客户id") String cusId) {
//        String pacId = transitionService.getTbTransitionPacId(cusId);
//        if(StringUtil.isNotBlank(pacId)){
//            //补差价
//            List<Map<String,Object>> cjMaps = groupingProService.huoquxiangmuchajia(pacId, cusId);
//            if(null !=cjMaps && !cjMaps.isEmpty()){
//                for (Map<String, Object> cjMap : cjMaps) {
//                    transitionService.buxiangmuchajia(cusId,pacId,cjMap.get("xmid").toString(),new BigDecimal(cjMap.get("cj").toString()));
//                }
//            }
//        }
        List<TbTransition> list = transitionService.newgetTransitionList(cusId);
        return AjaxResult.success(list);
    }