赵文轩
2024-06-07 cf32b62b2baae720a57d66da0b3ba3a105150483
ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
@@ -238,7 +238,12 @@
            tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
        }
        transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(),BigDecimal.valueOf(Long.parseLong(tjFlowingWater.getDiscount())), tjOrder.getTjNumber());
        if (tjFlowingWater.getDiscount() == null) {
            transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), new BigDecimal(10), tjOrder.getTjNumber());
        } else {
            transitionService.updateTbTransitionPriceByCusId(tjCustomer.getCusIdcard(), BigDecimal.valueOf(Long.parseLong(tjFlowingWater.getDiscount())), tjOrder.getTjNumber());
        }
        tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
//        List<TjOrderDetail> list = tjOrderDetailService.getTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()));
//        if (list != null) {
@@ -399,10 +404,10 @@
            TjProject one = projectService.getOne(wq1);
            if (one != null) {
//                if (one.getProParentId() != 0) {
                    tjOrderDetail.setTjStatus(2L);
                    tjOrderDetail.setProResult("弃检");
                    tjOrderDetail.setUpdateTime(new DateTime());
                    tjOrderDetailService.updateById(tjOrderDetail);
                tjOrderDetail.setTjStatus(2L);
                tjOrderDetail.setProResult("弃检");
                tjOrderDetail.setUpdateTime(new DateTime());
                tjOrderDetailService.updateById(tjOrderDetail);
//                } else {
//                    tjOrderDetail.setTjStatus(1L);
//                    tjOrderDetail.setUpdateTime(new DateTime());
@@ -411,7 +416,7 @@
//               LambdaQueryWrapper<TjOrderRemark> wq=new LambdaQueryWrapper<>();
//               wq.eq(TjOrderRemark::getTjNumber,tjNumber);
//               wq.eq(TjOrderRemark::getProId,tjOrderDetail.getProId());
               orderRemarkService.updateTjOrderRemark(tjNumber, String.valueOf(tjOrderDetail.getProId()));
                orderRemarkService.updateTjOrderRemark(tjNumber, String.valueOf(tjOrderDetail.getProId()));
                //给弃检表添加记录
                TjDiscardInspection td = new TjDiscardInspection();
                td.setProId(String.valueOf(one.getProId()));
@@ -450,14 +455,14 @@
    @Async("async")
    public void updateOrdeltile2(TjOrderDetail detail, SysUser sysUser) {
//        for (TjOrderDetail detail : tjOrderDetailList) {
            detail.setTjStatus(1L);
            LambdaQueryWrapper<TjStandard> wq0 = new LambdaQueryWrapper<>();
            wq0.eq(TjStandard::getProId, detail.getProId());
            detail.setUpdateBy(sysUser.getNickName());
            detail.setUpdateTime(new Date());
            detail.setCreateId(String.valueOf(sysUser.getUserId()));
            detail.setUpdateId(String.valueOf(sysUser.getUserId()));
            tjOrderDetailService.updateById(detail);
        detail.setTjStatus(1L);
        LambdaQueryWrapper<TjStandard> wq0 = new LambdaQueryWrapper<>();
        wq0.eq(TjStandard::getProId, detail.getProId());
        detail.setUpdateBy(sysUser.getNickName());
        detail.setUpdateTime(new Date());
        detail.setCreateId(String.valueOf(sysUser.getUserId()));
        detail.setUpdateId(String.valueOf(sysUser.getUserId()));
        tjOrderDetailService.updateById(detail);
//        }
    }
@@ -467,39 +472,95 @@
        List<TjConsumables> list2 = new ArrayList<>();
        String[] tjProIds = tjFlowingWater.getTjProIds();
        for (String tjProId : tjProIds) {
            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
            TjProject project = projectService.selectTjProjectByProId(Long.valueOf(tjProId));
            TjOrderRemark tjOrderRemark = new TjOrderRemark();
            tjOrderRemark.setProId(Long.valueOf(tjProId));
            tjOrderRemark.setProName(project.getProName());
            tjOrderRemark.setDeptId(project.getDeptId());
            tjOrderRemark.setTjNumber(order.getTjNumber());
            tjOrderRemark.setCreateBy(sysUser.getNickName());
            tjOrderRemark.setCreateTime(new Date());
            tjOrderRemark.setUpdateBy(sysUser.getNickName());
            tjOrderRemark.setUpdateTime(new Date());
            tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
            tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
            orderRemarkService.save(tjOrderRemark);
            List<Long> proIds = projectService.getTjProjectListBySoneId(tjProId).stream().map(TjProject::getProId).collect(Collectors.toList());
            TjOrderDetail detail = new TjOrderDetail();
            detail.setTjStatus(0L);
            detail.setOrderId(tjFlowingWater.getOrderId());
            detail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
            detail.setProId(Long.valueOf(tjProId));
            detail.setIsAddition("Y");
            detail.setCreateBy(sysUser.getNickName());
            detail.setCreateTime(new Date());
            detail.setUpdateBy(sysUser.getNickName());
            detail.setUpdateTime(new Date());
            detail.setCreateId(String.valueOf(sysUser.getUserId()));
            detail.setUpdateId(String.valueOf(sysUser.getUserId()));
            tjOrderDetailService.save(detail);
            for (Long proId : proIds) {
            if (null != project && project.getProParentId() == 0) {
                TjOrderRemark tjOrderRemark = new TjOrderRemark();
                tjOrderRemark.setProId(Long.valueOf(tjProId));
                tjOrderRemark.setProName(project.getProName());
                tjOrderRemark.setDeptId(project.getDeptId());
                tjOrderRemark.setTjNumber(order.getTjNumber());
                tjOrderRemark.setCreateBy(sysUser.getNickName());
                tjOrderRemark.setCreateTime(new Date());
                tjOrderRemark.setUpdateBy(sysUser.getNickName());
                tjOrderRemark.setUpdateTime(new Date());
                tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
                tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
                orderRemarkService.save(tjOrderRemark);
                List<Long> proIds = projectService.getTjProjectListBySoneId(tjProId).stream().map(TjProject::getProId).collect(Collectors.toList());
                TjOrderDetail detail = new TjOrderDetail();
                detail.setTjStatus(0L);
                detail.setOrderId(tjFlowingWater.getOrderId());
                detail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                detail.setProId(Long.valueOf(tjProId));
                detail.setIsAddition("Y");
                detail.setCreateBy(sysUser.getNickName());
                detail.setCreateTime(new Date());
                detail.setUpdateBy(sysUser.getNickName());
                detail.setUpdateTime(new Date());
                detail.setCreateId(String.valueOf(sysUser.getUserId()));
                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
                tjOrderDetailService.save(detail);
                for (Long proId : proIds) {
                    TjOrderDetail detail1 = new TjOrderDetail();
                    detail1.setTjStatus(0L);
                    detail1.setOrderId(tjFlowingWater.getOrderId());
                    detail1.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                    detail1.setProId(proId);
                    detail1.setIsAddition("Y");
                    detail.setCreateBy(sysUser.getNickName());
                    detail.setCreateTime(new Date());
                    detail.setUpdateBy(sysUser.getNickName());
                    detail.setUpdateTime(new Date());
                    detail.setCreateId(String.valueOf(sysUser.getUserId()));
                    detail.setUpdateId(String.valueOf(sysUser.getUserId()));
                    tjOrderDetailService.save(detail1);
                }
                wqq.in(TbTransition::getProId, proIds);
            } else {
                wqq.in(TbTransition::getProId, Arrays.asList(tjProIds));
                TjProject projects = projectService.selectTjProjectByProId(Long.valueOf(tjProId));
                if (null != projects) {
                    TjProject projectss = projectService.selectTjProjectByProId(projects.getProParentId());
                    if (null != projectss) {
                        TjOrderRemark tjOrderRemark = new TjOrderRemark();
                        tjOrderRemark.setProId(Long.valueOf(tjProId));
                        tjOrderRemark.setProName(projectss.getProName());
                        tjOrderRemark.setDeptId(projectss.getDeptId());
                        tjOrderRemark.setTjNumber(order.getTjNumber());
                        tjOrderRemark.setCreateBy(sysUser.getNickName());
                        tjOrderRemark.setCreateTime(new Date());
                        tjOrderRemark.setUpdateBy(sysUser.getNickName());
                        tjOrderRemark.setUpdateTime(new Date());
                        tjOrderRemark.setCreateId(String.valueOf(sysUser.getUserId()));
                        tjOrderRemark.setUpdateId(String.valueOf(sysUser.getUserId()));
                        orderRemarkService.save(tjOrderRemark);
                    }
                }
//                List<Long> proIds = projectService.getTjProjectListBySoneId(tjProId).stream().map(TjProject::getProId).collect(Collectors.toList());
                TjOrderDetail detail = new TjOrderDetail();
                detail.setTjStatus(0L);
                detail.setOrderId(tjFlowingWater.getOrderId());
                detail.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                detail.setProId(Long.valueOf(tjProId));
                detail.setIsAddition("Y");
                detail.setCreateBy(sysUser.getNickName());
                detail.setCreateTime(new Date());
                detail.setUpdateBy(sysUser.getNickName());
                detail.setUpdateTime(new Date());
                detail.setCreateId(String.valueOf(sysUser.getUserId()));
                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
                tjOrderDetailService.save(detail);
//                for (Long proId : proIds) {
                TjOrderDetail detail1 = new TjOrderDetail();
                detail1.setTjStatus(0L);
                detail1.setOrderId(tjFlowingWater.getOrderId());
                detail1.setFlowingWaterId(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                detail1.setProId(proId);
                detail1.setProId(Long.valueOf(tjProId));
                detail1.setIsAddition("Y");
                detail.setCreateBy(sysUser.getNickName());
                detail.setCreateTime(new Date());
@@ -508,12 +569,9 @@
                detail.setCreateId(String.valueOf(sysUser.getUserId()));
                detail.setUpdateId(String.valueOf(sysUser.getUserId()));
                tjOrderDetailService.save(detail1);
//                }
            }
            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
            if ( proIds.size() > 0){
                wqq.in(TbTransition::getProId, proIds);
            }
            List<TbTransition> tbTransitionList = transitionService.list(wqq);
            if (null != tbTransitionList && tbTransitionList.size() > 0) {
                for (TbTransition transition : tbTransitionList) {
@@ -537,8 +595,9 @@
                    }
                }
                //父项
                TjProject parentProject = projectService.getById(tjProId);
                if (null != parentProject) {
                TjProject parentProject = projectService.selectTjProjectByProId(Long.valueOf(tjProId));
                if (null != parentProject && parentProject.getProParentId() == 0) {
                    LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
                    wqqq.eq(TjProConsumables::getProId, parentProject.getProId());
                    List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
@@ -546,6 +605,20 @@
                        for (TjProConsumables tjProConsumables : proConsumables) {
                            TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
                            list2.add(tjConsumables);
                        }
                    }
                } else {
                    TjProject parentProjects = projectService.getById(tjProId);
                    if (null != parentProjects) {
                        LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
                        wqqq.eq(TjProConsumables::getProId, parentProjects.getProId());
                        List<TjProConsumables> proConsumables = proConsumablesService.list(wqqq);
                        if (null != proConsumables && proConsumables.size() > 0) {
                            for (TjProConsumables tjProConsumables : proConsumables) {
                                TjConsumables tjConsumables = consumablesService.selectTjConsumablesById(tjProConsumables.getConsumablesId());
                                list2.add(tjConsumables);
                            }
                        }
                    }
                }
@@ -583,17 +656,17 @@
    @Override
    @Async("async")
    public void dockerSetYjCustomerByRedis(Long orderId,Long ksId) {
    public void dockerSetYjCustomerByRedis(Long orderId, Long ksId) {
        //已检(单个存入)0未检,1已检
        getDgYjAjaxResult(orderId,ksId);
        getDgYjAjaxResult(orderId, ksId);
    }
    @Override
    @Async("async")
    public void dockerSetWjCustomerByRedis(Long orderId,Long ksId) {
    public void dockerSetWjCustomerByRedis(Long orderId, Long ksId) {
        //未检(单个存入)0未检,1已检
        getDgWjAjaxResult(orderId,ksId);
        getDgWjAjaxResult(orderId, ksId);
    }
    @Override
@@ -708,9 +781,9 @@
    @Override
    @Async("async")
    public void tjGoutAsync(List<QjDomainVo> domainVos, SysUser sysUser, Set<String> list) {
        Integer day=0;
        Integer day = 0;
        for (QjDomainVo domainVo : domainVos) {
            day=domainVo.getDay();
            day = domainVo.getDay();
            TjOrderRemark remark = orderRemarkService.getById(domainVo.getRemarkId());
            TjOrder order = orderService.getOrderByTjNum(domainVo.getTjNumber());
            //给弃检表添加记录
@@ -753,7 +826,7 @@
            }
        }
        if (list.size() > 0) {
            Date date=new Date();
            Date date = new Date();
            for (String s : list) {
                TjOrder tjOrder = orderService.getOrderByTjNum(s);
                if (null != tjOrder) {
@@ -770,7 +843,7 @@
                    yqOrder.setSex(String.valueOf(customer.getCusSex()));
                    yqOrder.setAge(customer.getAge());
                    yqOrder.setPhone(customer.getCusPhone());
                    yqOrder.setYqTime(DateUtil.offsetDay(date,day));
                    yqOrder.setYqTime(DateUtil.offsetDay(date, day));
                    yqOrder.setOrderTime(tjOrder.getCreateTime());
                    yqOrder.setProIds(orderRemarkService.getTjOrderRemarkProIdList(s));
                    yqOrder.setEmilSend("0");
@@ -1003,8 +1076,12 @@
    @Override
    public void addTjChargingStandard(TjOrder order, List<TbTransition> tbTransitionList, SysUser sysUser) {
        List<TjConsumables> list2=new ArrayList<>();
        List<TjConsumables> list2 = new ArrayList<>();
        for (TbTransition transition : tbTransitionList) {
            if (transition.getNowPrice().compareTo(BigDecimal.valueOf(0)) == 0) {
                continue;
            }
            TjProject tjProject = projectService.selectTjProjectByProId(transition.getProId());
            //子项
@@ -1429,10 +1506,10 @@
                    }
                    LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
                    qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
                    qww.eq(TjOrderDetail::getTjStatus,0);
                    qww.eq(TjOrderDetail::getTjStatus, 0);
                    qww.isNotNull(TjOrderDetail::getFlowingWaterId);
                    List<TjOrderDetail> lists = tjOrderDetailService.list(qww);
                    if (null != lists&&lists.size()>0) {
                    if (null != lists && lists.size() > 0) {
                        continue;
                    }
@@ -1441,7 +1518,7 @@
                        //遍历项目 判断是否有重大阳性  标记
                        for (TjOrderDetail tjOrderDetail11 : lists) {
                            customer.setIsPositive(tjOrderDetail11.getIsPositive());
                            if (tjOrderDetail11.getIsPositive()==1){
                            if (tjOrderDetail11.getIsPositive() == 1) {
                                break;
                            }
                        }
@@ -1517,7 +1594,7 @@
                            //遍历项目 判断是否有重大阳性  标记
                            for (TjOrderDetail tjOrderDetail11 : lists) {
                                customer.setIsPositive(tjOrderDetail11.getIsPositive());
                                if (tjOrderDetail11.getIsPositive()==1){
                                if (tjOrderDetail11.getIsPositive() == 1) {
                                    break;
                                }
                            }
@@ -1547,7 +1624,7 @@
                            StringBuilder stringBuilder = new StringBuilder();
                            for (TjOrderRemark remark : list) {
                                TjProject byId = projectService.getById(remark.getProId());
                                if(null !=byId){
                                if (null != byId) {
                                    stringBuilder.append(byId.getProName()).append(";");
                                }
@@ -1565,7 +1642,7 @@
    }
    //已检(单个存入)0未检,1已检
    public void getDgYjAjaxResult(Long orderId,Long ksId) {
    public void getDgYjAjaxResult(Long orderId, Long ksId) {
        if (null != orderId) {
            TjOrder order = orderService.getById(orderId);
            if (null != order) {
@@ -1576,8 +1653,8 @@
                TjCustomer customer = tjCustomerService.getById(order.getUserId());
                List<TjOrderDetail> lists = tjOrderDetailService.list(qww);
                if (null == lists || lists.size() == 0) {
                    redisCache.deleteCacheMapValue("ks"+ksId+customer.getCusId(),"1");
                    redisCache.setCacheMapValue("ks:"+ksId+":"+customer.getCusId(),"0",customer);
                    redisCache.deleteCacheMapValue("ks" + ksId + customer.getCusId(), "1");
                    redisCache.setCacheMapValue("ks:" + ksId + ":" + customer.getCusId(), "0", customer);
                }
                if (null != customer) {
                    //遍历项目 判断是否有重大阳性  标记
@@ -1615,67 +1692,67 @@
                        customer.setNotCheckeds(String.valueOf(stringBuilder));
                        if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
                    }
                    redisCache.setCacheMapValue("ks:"+ksId+":"+customer.getCusId(),"1",customer);
                    redisCache.setCacheMapValue("ks:" + ksId + ":" + customer.getCusId(), "1", customer);
                }
            }
        }
}
    }
    //未检(单个存入)0未检,1已检
    public void getDgWjAjaxResult(Long orderId,Long ksId) {
                if (null != orderId) {
                    TjOrder order = orderService.getById(orderId);
                    if (null == order) {
                    TjCustomer customer = tjCustomerService.getById(order.getUserId());
                    if (null != customer) {
                        LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
                        qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
                        qww.isNotNull(TjOrderDetail::getFlowingWaterId);
                        List<TjOrderDetail> lists = tjOrderDetailService.list(qww);
                        if (null != lists) {
                            //遍历项目 判断是否有重大阳性  标记
                            for (TjOrderDetail tjOrderDetail11 : lists) {
                                customer.setIsPositive(tjOrderDetail11.getIsPositive());
                                if (tjOrderDetail11.getIsPositive()==1){
                                    break;
                                }
    public void getDgWjAjaxResult(Long orderId, Long ksId) {
        if (null != orderId) {
            TjOrder order = orderService.getById(orderId);
            if (null == order) {
                TjCustomer customer = tjCustomerService.getById(order.getUserId());
                if (null != customer) {
                    LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
                    qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
                    qww.isNotNull(TjOrderDetail::getFlowingWaterId);
                    List<TjOrderDetail> lists = tjOrderDetailService.list(qww);
                    if (null != lists) {
                        //遍历项目 判断是否有重大阳性  标记
                        for (TjOrderDetail tjOrderDetail11 : lists) {
                            customer.setIsPositive(tjOrderDetail11.getIsPositive());
                            if (tjOrderDetail11.getIsPositive() == 1) {
                                break;
                            }
                        }
                        customer.setCusName(hideCusName(customer.getCusName()));
                        customer.setCusPhone(hidePhoneNum(customer.getCusPhone()));
                        customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
                        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());
                        customer.setTjCategory(order.getTjCategory());
                        customer.setTjStatus(0L);
                        LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
                        wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
                        wq.in(TjOrderRemark::getType, 0, 3);
                        List<TjOrderRemark> list = orderRemarkService.list(wq);
                        if (null != list && list.size() > 0) {
                            StringBuilder stringBuilder = new StringBuilder();
                            for (TjOrderRemark remark : list) {
                                TjProject byId = projectService.getById(remark.getProId());
                                stringBuilder.append(byId.getProName()).append(";");
                            }
                            customer.setNotCheckeds(String.valueOf(stringBuilder));
                            if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
                        }
//                        redisCache.setCacheMapValue("ks"+ksId+":"+customer.getCusId(),"1",customer);
                        redisCache.setCacheMapValue("ks"+ksId+":"+customer.getCusId(),"0",customer);
                    }
                    customer.setCusName(hideCusName(customer.getCusName()));
                    customer.setCusPhone(hidePhoneNum(customer.getCusPhone()));
                    customer.setCusIdcard(hideIdCardNum(customer.getCusIdcard()));
                    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());
                    customer.setTjCategory(order.getTjCategory());
                    customer.setTjStatus(0L);
                    LambdaQueryWrapper<TjOrderRemark> wq = new LambdaQueryWrapper<>();
                    wq.eq(TjOrderRemark::getTjNumber, order.getTjNumber());
                    wq.in(TjOrderRemark::getType, 0, 3);
                    List<TjOrderRemark> list = orderRemarkService.list(wq);
                    if (null != list && list.size() > 0) {
                        StringBuilder stringBuilder = new StringBuilder();
                        for (TjOrderRemark remark : list) {
                            TjProject byId = projectService.getById(remark.getProId());
                            stringBuilder.append(byId.getProName()).append(";");
                        }
                        customer.setNotCheckeds(String.valueOf(stringBuilder));
                        if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
                    }
//                        redisCache.setCacheMapValue("ks"+ksId+":"+customer.getCusId(),"1",customer);
                    redisCache.setCacheMapValue("ks" + ksId + ":" + customer.getCusId(), "0", customer);
                }
            }
        }
    }