zjh
2024-09-11 3844954e02e67611fd57dafa236ee2c20e258b78
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -386,6 +386,7 @@
                                   @ApiParam (value = "显示条数(默认10)") @RequestParam (defaultValue = "10") Integer pageSize,
                                   @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,
@@ -459,6 +460,12 @@
        if (null != tjNum) {
            wq.eq(TjOrder::getTjNumber, tjNum);
        }
        if (null != xmmc) {
            wq.in(TjOrder::getTjNumber, projectService.getTjNumLIstByXmmx(xmmc));
        }
        wq.orderByDesc(TjOrder::getCreateTime);
        Page<TjOrder> page2 = tjOrderService.page(page1, wq);
        List<TjOrder> list = page2.getRecords();
@@ -470,7 +477,6 @@
                    order.setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                    order.setTjCustomerName(tjCustomer.getCusName());
                    order.setTjCustomerPhone(tjCustomer.getCusPhone());
//                    order.setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
                    order.setTjCusIdCard(tjCustomer.getCusIdcard());
                    order.setCareer(tjCustomer.getCareer());
                    order.setIdType(tjCustomer.getIdType());
@@ -484,7 +490,7 @@
                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());
                    }
@@ -510,7 +516,7 @@
            LambdaQueryWrapper<TjCustomer> wqq = new LambdaQueryWrapper<>();
            wqq.like(TjCustomer::getCusName, name);
            List<TjCustomer> customerList = tjCustomerService.list(wqq);
            if (null != customerList && customerList.size() > 0) {
            if (null != customerList && !customerList.isEmpty()) {
                List<TjOrder> list = new ArrayList<>();
                for (TjCustomer customer : customerList) {
                    LambdaQueryWrapper<TjOrder> wq = new LambdaQueryWrapper<>();
@@ -520,7 +526,7 @@
                    list.addAll(tjOrderService.list(wq));
                }
                List<TjOrder> collect = null;
                if (list.size() > 0) {
                if (!list.isEmpty()) {
                    for (int i = 0; i < list.size(); i++) {
                        TjCustomer tjCustomer = tjCustomerService.getById(list.get(i).getUserId());
@@ -530,7 +536,7 @@
                        }
                        list.get(i).setTjCustomerSex(tjCustomer.getCusSex());
                        list.get(i).setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                        list.get(i).setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
                        list.get(i).setTjCustomerName(tjCustomer.getCusName());
                        list.get(i).setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
                        list.get(i).setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
@@ -591,7 +597,7 @@
                }
                list.get(i).setTjCustomerSex(tjCustomer.getCusSex());
                list.get(i).setTjCustomerAge(DateUtil.ageOfNow(tjCustomer.getCusBrithday()));
                list.get(i).setTjCustomerName(MatchUtils.hideCusName(tjCustomer.getCusName()));
                list.get(i).setTjCustomerName(tjCustomer.getCusName());
                list.get(i).setTjCustomerPhone(MatchUtils.hidePhoneNum(tjCustomer.getCusPhone()));
                if (tjCustomer.getCusIdcard() != null) {
                    list.get(i).setTjCusIdCard(MatchUtils.hideIdCardNum(tjCustomer.getCusIdcard()));
@@ -887,7 +893,7 @@
            return AjaxResult.error("不可重复登记");
        }
        TjFlowingWater tjFlowingWater = new TjFlowingWater();
        LambdaQueryWrapper<TjReservation> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjReservation::getIdCard, tjCustomer.getCusIdcard());
        wq1.eq(TjReservation::getIsExpire, 2);
@@ -899,7 +905,7 @@
//            if (DateUtil.endOfDay(new Date()).before(tjReservation.getReservationTime())) {
//                return AjaxResult.error("未到预约时间");
//            }
            if (DateUtil.endOfDay(tjReservation.getReservationTime()).before(new Date())) {
            if (DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(),tjReservation.getYxts())).before(new Date())) {
                tjReservation.setIsExpire(1);
                tjReservationService.updateById(tjReservation);
                return AjaxResult.error("对不起您的预约已超时请重新预约");
@@ -952,6 +958,9 @@
            tjOrder.setFinishTime(new Date());
            tjOrder.setCheckStatus(1);
            tjOrder.setStatus(TjConstants.TJ_WAIT);
            tjFlowingWater.setPayStasus(1L);
        }else {
            tjFlowingWater.setPayStasus(0L);
        }
        if (tjOrderService.save(tjOrder)) {
@@ -967,8 +976,7 @@
            cusNumber += 1;
            tjCustomer.setCusNumber(cusNumber);
            BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount()));
            TjFlowingWater tjFlowingWater = new TjFlowingWater();
            tjFlowingWater.setPayStasus(0L);
            if ("1".equals(tjOrder.getTjType())) {
                if (null != tjReservation && tjReservation.getPayType() == 1) {
                    tjFlowingWater.setPayStasus(3L);
@@ -1030,6 +1038,44 @@
            }
            //修改每项的原价现价 //修改临时表体检号
            transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), discount, tjOrder.getTjNumber());
            /*调用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());
                    }
                    return AjaxResult.error("挂号失败!" + result.get("msg").toString());
                }
                log.info("该登记人的his就诊号是: "+tjOrder.getCardId());
                //团体
                if ("1".equals(tjOrder.getTjType())) {
                    asyncService.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);
                }
                hisApiMethod.tijianshenqing(tjCustomer,DateUtil.format(date1,"yyyy-MM-dd HH:mm:ss"),tjOrder.getCardId());
                return AjaxResult.success(tjNumber);
            } else {
                tjCustomer.setCardId(tjOrder.getTjNumber());
                tjCustomerService.updateById(tjCustomer);
                transitionService.updateCardIdByTjNumAndIdCard(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), tjOrder.getTjNumber());
                tjOrder.setCardId(tjOrder.getTjNumber());
                tjOrderService.updateById(tjOrder);
            }
            //团体
            if ("1".equals(tjOrder.getTjType())) {
                asyncService.ttextracted(tjOrder, tjCustomer, sysUser, tjReservation, tjFlowingWater);
@@ -1038,46 +1084,6 @@
            if ("2".equals(tjOrder.getTjType())) {
                //asyncService.newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
            }
            //调用SQL server拿取收费情况
            //根据配置调取存储过程 将临时表数据存入预约表2023.12.12
//            final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
//            if ("Y".equals(getInfoFromSqlData)){
//                List<LtkjMiddleHead> one = testMapper.saveMiddleHeadByPatId(tjCustomer.getCusIdcard());
//                if (one!=null){
//                    for (LtkjMiddleHead ltkjMiddleHead : one) {
//                        DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
//                        headService.save(ltkjMiddleHead);
//                        DynamicDataSourceContextHolder.clearDataSourceType();
//                        List<LtkjMiddleDetail> detailList = testMapper.getMiddleDetailByHeadId(ltkjMiddleHead.getFeadId());
//                        if (detailList!=null){
//                            for (LtkjMiddleDetail ltkjMiddleDetail : detailList) {
//                                DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
//                                middleDetailService.save(ltkjMiddleDetail);
//                                DynamicDataSourceContextHolder.clearDataSourceType();
//                            }
//                        }
//                    }
//
//                }
//            }
            /*调用his接口*/
            String config = configService.selectConfigByKey("sfkqdyhis");
            if (null != config && config.equals("Y")) {
                AjaxResult result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder.getOrderId());
                if (!result.get("code").toString().equals("200")) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("挂号失败!" + result.get("msg").toString());
                }
            } else {
                tjCustomer.setCardId(tjOrder.getTjNumber());
                tjCustomerService.updateById(tjCustomer);
                transitionService.updateCardIdByTjNumAndIdCard(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), tjOrder.getTjNumber());
                tjOrder.setCardId(tjOrder.getTjNumber());
                tjOrderService.updateById(tjOrder);
            }
            return AjaxResult.success(tjNumber);
        }
@@ -1550,143 +1556,32 @@
                redisCache.deleteCacheMapValue(cardId + cusId + "cusId", cardId + cusId);
            }
        }
//        List<TbTransition> tbTransitionList = null;
//        if (!redisCache.hasKey(cardId + cusId)) {
//            tbTransitionList = new ArrayList<>();
//        } else {
//            tbTransitionList = redisCache.getCacheList(cardId + cusId);
//        }
        //套餐
        /*套餐*/
        if (null != packId && !packId.equals("")) {
            Long pacId = Long.valueOf(packId.toString());
            List<TbTransition> list = transitionService.getTbTransitionListByCusIdAndPac(cusId, String.valueOf(pacId));
            if (null == list || list.size() == 0) {
            if (null == list || list.isEmpty()) {
                transitionService.deletedTbTransitionListByCusIdAndPac(cusId, cardId);
//                if (redisCache.hasKey(cardId + cusId + "cusId"))
//                    redisCache.deleteCacheMapValue(cardId + cusId + "cusId", cardId + cusId);
//                if (redisCache.hasKey(cardId + cusId)) {
//                    tbTransitionList = new ArrayList<>();
//                    redisCache.deleteObject(cardId + cusId);
//                }
                List<TjPackageProject> ppList = tjPackageProjectService.getTjPackageProjectListByPacId(String.valueOf(pacId));
                if (null != ppList && ppList.size() > 0) {
                if (null != ppList && !ppList.isEmpty()) {
                    transitionService.saveRedisTransitionByPacId(cusId, cardId, pacId);
                    //异步保存数据库
//                    asyncService.addRedisTransitionPac(cusId, pacId, ppList);
//                    asyncService.saveRedisTransitionByPacId(cusId, cardId, pacId, null);
//                    for (TjPackageProject tjPackageProject : ppList) {
//                        TjProject project = projectService.getTjProjectById(String.valueOf(tjPackageProject.getProId()));
//                        if (null != project) {
//
//                            BigDecimal divide = BigDecimal.valueOf(0);
//                            if (tjPackageProject.getPriceNow().compareTo(BigDecimal.valueOf(0)) == 0 || project.getProPrice().compareTo(BigDecimal.valueOf(0)) == 0) {
//                                divide = BigDecimal.valueOf(0);
//                            } else {
//                                divide = tjPackageProject.getPriceNow().divide(project.getProPrice(), 5, RoundingMode.HALF_DOWN);
//                            }
//                            List<TjProject> tjProSonList = projectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
//                            if (null != tjProSonList && tjProSonList.size() > 0) {
//                                //addRedisTransitionPac(cusId, tbTransitionList, pacId, tjPackageProject, project, divide, tjProSonList);
//                                for (TjProject tjProject : tjProSonList) {
//                                    TbTransition tbTransition = new TbTransition();
//                                    tbTransition.setCusId(cusId);
//                                    tbTransition.setPacId(pacId);
//                                    if (null != tjPackageProject.getPriceNow() && divide.compareTo(BigDecimal.valueOf(0)) > 0) {
//                                        tbTransition.setNowPrice(tjProject.getProPrice().multiply(divide).setScale(2, RoundingMode.HALF_DOWN));
//                                        tbTransition.setOrdPrice(tjProject.getProPrice().multiply(divide).setScale(2, RoundingMode.HALF_DOWN));
//                                    } else {
//                                        tbTransition.setNowPrice(BigDecimal.valueOf(0.00));
//                                        tbTransition.setOrdPrice(BigDecimal.valueOf(0.00));
//                                    }
//                                    tbTransition.setParentProId(project.getProId());
//                                    tbTransition.setParentProName(project.getProName());
//                                    tbTransition.setProId(tjProject.getProId());
//                                    tbTransition.setProName(tjProject.getProName());
//                                    tbTransition.setPacName(tjPackageService.getById(tbTransition.getPacId()).getPacName());
//                                    tbTransition.setProType(tjProject.getProType());
//                                    tbTransition.setProCheckMethod(tjProject.getProCheckMethod());
//                                    tbTransitionList.add(tbTransition);
//                                }
//
//                            }
//                        }
//                    }
                }
            }
        }
        //单项
        if (null != proIds && proIds.size() > 0) {
        if (null != proIds && !proIds.isEmpty()) {
            //异步保存数据库表
//            asyncService.saveRedisTransitionByPacId(cusId, cardId, null, proIds);
            for (Long proId : proIds) {
                TjProject project = projectService.selectTjProjectByProId(proId);
                if (null != project) { //&& (!project.getProName().contains("静脉采血")|| !project.getProName().contains("费"))
                if (null != project) {
                    List<TbTransition> transitionList = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId));
                    if (null == transitionList || transitionList.size() == 0) {
                    if (null == transitionList || transitionList.isEmpty()) {
                        transitionService.saveRedisTransitionByProId(cusId, cardId, proId);
                    }
                }
//            if(null !=project) transitionService.saveRedisTransitionByProId(cusId,cardId, proId);
            }
//            for (Long proId : proIds) {
//                List<TbTransition> transitions = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(proId));
//                if (null != transitions && transitions.size() > 0) {
//                    continue;
//                }
//                TjProject tjProject = projectService.getTjProjectById(String.valueOf(proId));
//                if (null != tjProject) {
////                    List<TjProject> tjProSonList = projectService.getTjProjectListBySoneId(String.valueOf(project.getProId()));
////                    if (null != tjProSonList && tjProSonList.size() > 0) {
////                        for (TjProject tjProject : tjProSonList) {
////                    List<TbTransition> transitionss = transitionService.getTbTransitionListByCusIdAndPacIdAndProId(cusId, String.valueOf(tjProject.getProId()));
////                    if (null != transitionss && transitionss.size() > 0) {
////                        continue;
////                    }
//                    TbTransition tbTransition = new TbTransition();
//                    tbTransition.setCusId(cusId);
//                    tbTransition.setPacId(null);
//                    if (null != tjProject.getProPrice()) {
//                        tbTransition.setOrdPrice(tjProject.getProPrice());
//                        tbTransition.setNowPrice(tjProject.getProPrice());
//                    } else {
//                        tbTransition.setOrdPrice(BigDecimal.valueOf(0.00));
//                        tbTransition.setNowPrice(BigDecimal.valueOf(0.00));
//                    }
//                    tbTransition.setParentProId(tjProject.getProParentId());
//                    if (tjProject.getProParentId() != null) {
//                        TjProject byId = projectService.getById(tjProject.getProParentId());
//                        if (null != byId) {
//                            tbTransition.setParentProName(byId.getProName());
//                        }
//                    }
//                    tbTransition.setParentProName("");
//
//                    tbTransition.setProId(tjProject.getProId());
//                    tbTransition.setProName(tjProject.getProName());
//                    tbTransition.setProType(tjProject.getProType());
//                    tbTransition.setProCheckMethod(tjProject.getProCheckMethod());
//                    tbTransitionList.add(tbTransition);
////                        }
////                    }
//                }
//            }
        }
//        if (null != tbTransitionList && tbTransitionList.size() > 0) {
//            if (redisCache.hasKey(cardId + cusId)) {
//                redisCache.deleteObject(cardId + cusId);
//                redisCache.setCacheList(cardId + cusId, tbTransitionList);
//                redisCache.setCacheMapValue(cardId + cusId + "cusId", cardId + cusId, getMaps(cusId, cardId));
//            } else {
//                redisCache.setCacheList(cardId + cusId, tbTransitionList);
//                redisCache.setCacheMapValue(cardId + cusId + "cusId", cardId + cusId, getMaps(cusId, cardId));
//            }
//            List<Map<String, Object>> map1 = getMap(cusId, cardId, tbTransitionList);
//            return AjaxResult.success();
//        }
        return AjaxResult.success();
    }
@@ -2357,14 +2252,13 @@
    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()));
            tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()),tjOrder.getCardId());
        } else {
            tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
            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()));
        //修改每项的原价现价 //修改临时表体检号
        transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), discount, tjOrder.getTjNumber());
        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()));
@@ -2389,7 +2283,6 @@
            tjFlowingWaterService.updateById(tjFlowingWater);
            asyncService.addTjChargingStandard(tjOrder, transitionService.getTbTransitionListByCusId(tjCustomer.getCusIdcard(), tjOrder.getCardId()), sysUser);
        }
//        System.out.println("这段代码时间" + (System.currentTimeMillis() - l));
    }
@@ -2828,6 +2721,12 @@
                    if (advIds.containsAll(dto.getBldhs()) && cateFeeAll.compareTo(BigDecimal.ZERO) != 0) {
                        return AjaxResult.error("改项目已缴费不可撤销!!!");
                    }
                }
                boolean b = hisApiMethod.ZfBlXm(dto.getBldhs(), order);
                if(!b){
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("撤销失败,调用作废出现失败");
                }
            }
            for (String bldh : dto.getBldhs()) {
@@ -2851,7 +2750,7 @@
        String result1 = getAjaxResult(result);
        JSONObject object = getJSONObject(result1);
        String code = object.getStr("ResultCode");
        if (null != code && code.equals("200")) {
        if (null != code && code.equals("0")) {
        }
        return AjaxResult.success();