zjh
2024-04-25 a74b5ffd9c25edd8096220920934e3e42f62cc23
ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
@@ -176,7 +176,6 @@
    public void ttextracted(TjOrder tjOrder, TjCustomer tjCustomer, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
        tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
        boolean b = tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
        if (!b) {
            List<TjGroupingPro> proList = groupingProService.list(new LambdaQueryWrapper<TjGroupingPro>().eq(TjGroupingPro::getGroupingId, tjOrder.getGroupId()));
@@ -239,7 +238,13 @@
            tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                    sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
        }
        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) {
//            for (TjOrderDetail tjOrderDetail : list) {
@@ -281,8 +286,8 @@
        orderRemarkService.deletedOrderRemarkByTjNum(order.getTjNumber());
        redisCache.deleteObject("getOrderDetailByProParentId" + order.getTjNumber());
        for (TbTransition transition : tbTransitionList) {
            transition.setNowPrice(transition.getOrdPrice().multiply(BigDecimal.valueOf(Double.parseDouble(discount)).divide(BigDecimal.valueOf(10))));
            transitionService.updateById(transition);
//            transition.setNowPrice(transition.getOrdPrice().multiply(BigDecimal.valueOf(Double.parseDouble(discount)).divide(BigDecimal.valueOf(10))));
//            transitionService.updateById(transition);
            TjProject tjProject = projectService.selectTjProjectByProId(transition.getProId());
            //子项
            if (null != tjProject) {
@@ -398,16 +403,20 @@
            wq1.eq(TjProject::getProId, tjOrderDetail.getProId());
            TjProject one = projectService.getOne(wq1);
            if (one != null) {
                if (one.getProParentId() != 0) {
//                if (one.getProParentId() != 0) {
                    tjOrderDetail.setTjStatus(2L);
                    tjOrderDetail.setProResult("弃检");
                    tjOrderDetail.setUpdateTime(new DateTime());
                    tjOrderDetailService.updateById(tjOrderDetail);
                } else {
                    tjOrderDetail.setTjStatus(1L);
                    tjOrderDetail.setUpdateTime(new DateTime());
                    tjOrderDetailService.updateById(tjOrderDetail);
                }
//                } else {
//                    tjOrderDetail.setTjStatus(1L);
//                    tjOrderDetail.setUpdateTime(new DateTime());
//                    tjOrderDetailService.updateById(tjOrderDetail);
//                }
//               LambdaQueryWrapper<TjOrderRemark> wq=new LambdaQueryWrapper<>();
//               wq.eq(TjOrderRemark::getTjNumber,tjNumber);
//               wq.eq(TjOrderRemark::getProId,tjOrderDetail.getProId());
               orderRemarkService.updateTjOrderRemark(tjNumber, String.valueOf(tjOrderDetail.getProId()));
                //给弃检表添加记录
                TjDiscardInspection td = new TjDiscardInspection();
                td.setProId(String.valueOf(one.getProId()));
@@ -507,7 +516,9 @@
            }
            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
            wqq.in(TbTransition::getProId, proIds);
            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) {
@@ -568,10 +579,26 @@
    @Override
    @Async("async")
    public void dockerSetCustomerLisByRedis(List<Long> ksproList, String ksId) {
        List<TjCustomer> yjAjaxResult = getYjAjaxResult(ksproList);
        List<TjCustomer> wjAjaxResult = getWjAjaxResult(ksproList);
        redisCache.setCacheMapValue(ksId + "ks", "wj", wjAjaxResult);
        redisCache.setCacheMapValue(ksId + "ks", "yj", yjAjaxResult);
    }
    @Override
    @Async("async")
    public void dockerSetYjCustomerByRedis(Long orderId,Long ksId) {
        //已检(单个存入)0未检,1已检
        getDgYjAjaxResult(orderId,ksId);
    }
    @Override
    @Async("async")
    public void dockerSetWjCustomerByRedis(Long orderId,Long ksId) {
        //未检(单个存入)0未检,1已检
        getDgWjAjaxResult(orderId,ksId);
    }
    @Override
@@ -686,7 +713,9 @@
    @Override
    @Async("async")
    public void tjGoutAsync(List<QjDomainVo> domainVos, SysUser sysUser, Set<String> list) {
        Integer day=0;
        for (QjDomainVo domainVo : domainVos) {
            day=domainVo.getDay();
            TjOrderRemark remark = orderRemarkService.getById(domainVo.getRemarkId());
            TjOrder order = orderService.getOrderByTjNum(domainVo.getTjNumber());
            //给弃检表添加记录
@@ -710,6 +739,7 @@
            LambdaQueryWrapper<TjProject> wq1 = new LambdaQueryWrapper<>();
            wq1.eq(TjProject::getProParentId, remark.getProId());
            wq1.eq(TjProject::getNeedReport, "Y");
            List<TjProject> projectList = projectService.list(wq1);
            if (null != projectList && projectList.size() > 0) {
                List<Long> collect = projectList.stream().map(TjProject::getProId).collect(Collectors.toList());
@@ -728,13 +758,14 @@
            }
        }
        if (list.size() > 0) {
            Date date=new Date();
            for (String s : list) {
                TjOrder tjOrder = orderService.getOrderByTjNum(s);
                if (null != tjOrder) {
                    tjOrder.setStatus(TjConstants.TJ_DELAY);
                    tjOrder.setFinishTime(null);
                    tjOrder.setUpdateBy(sysUser.getNickName());
                    tjOrder.setUpdateTime(new DateTime());
                    tjOrder.setUpdateTime(date);
                    tjOrder.setUpdateId(String.valueOf(sysUser.getUserId()));
                    orderService.updateById(tjOrder);
                    TjCustomer customer = tjCustomerService.selectTjCustomerByCusId(tjOrder.getUserId());
@@ -744,15 +775,15 @@
                    yqOrder.setSex(String.valueOf(customer.getCusSex()));
                    yqOrder.setAge(customer.getAge());
                    yqOrder.setPhone(customer.getCusPhone());
                    yqOrder.setYqTime(new Date());
                    yqOrder.setYqTime(DateUtil.offsetDay(date,day));
                    yqOrder.setOrderTime(tjOrder.getCreateTime());
                    yqOrder.setProIds(orderRemarkService.getTjOrderRemarkProIdList(s));
                    yqOrder.setEmilSend("0");
                    yqOrder.setMsgSend("0");
                    yqOrder.setCreateBy(sysUser.getNickName());
                    yqOrder.setCreateTime(new DateTime());
                    yqOrder.setCreateTime(date);
                    yqOrder.setUpdateBy(sysUser.getNickName());
                    yqOrder.setUpdateTime(new DateTime());
                    yqOrder.setUpdateTime(date);
                    yqOrder.setCreateId(String.valueOf(sysUser.getUserId()));
                    yqOrder.setUpdateId(String.valueOf(sysUser.getUserId()));
                    yqOrderService.save(yqOrder);
@@ -973,6 +1004,108 @@
    @Async("async")
    public void getPieChart() {
        redisCache.setCacheObject("getPieChart", getPieCharts());
    }
    @Override
    public void addTjChargingStandard(TjOrder order, List<TbTransition> tbTransitionList, SysUser sysUser) {
        List<TjConsumables> list2=new ArrayList<>();
        for (TbTransition transition : tbTransitionList) {
            if(transition.getNowPrice().compareTo(BigDecimal.valueOf(0))==0){
                continue;
            }
            TjProject tjProject = projectService.selectTjProjectByProId(transition.getProId());
            //子项
            if (null != tjProject) {
                TjChargingStandard tjChargingStandard = new TjChargingStandard();
                tjChargingStandard.setTjNum(order.getTjNumber());
                tjChargingStandard.setProId(transition.getProId());
                tjChargingStandard.setPrice(transition.getNowPrice());
                tjChargingStandard.setProName(tjProject.getProName());
                tjChargingStandard.setCreateBy(sysUser.getNickName());
                tjChargingStandard.setCreateTime(new Date());
                tjChargingStandard.setUpdateBy(sysUser.getNickName());
                tjChargingStandard.setUpdateTime(new Date());
                tjChargingStandard.setCreateId(String.valueOf(sysUser.getUserId()));
                tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId()));
                chargingStandardService.save(tjChargingStandard);
            }
        }
        //父项
        ArrayList<TbTransition> collect1 = tbTransitionList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TbTransition::getParentProId))), ArrayList::new));
        List<Long> parentProIds = collect1.stream().map(TbTransition::getParentProId).collect(Collectors.toList());
        if (parentProIds.size() > 0) {
            for (Long parentProId : parentProIds) {
                TjProject parentProject = projectService.selectTjProjectByProId(parentProId);
                if (null != parentProject) {
                    LambdaQueryWrapper<TjProConsumables> wqqq = new LambdaQueryWrapper<>();
                    wqqq.eq(TjProConsumables::getProId, parentProject.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);
                        }
                    }
                }
            }
        }
        ArrayList<TjConsumables> collect = list2.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TjConsumables::getId))), ArrayList::new));
        for (TjConsumables tjConsumables : collect) {
            TjChargingStandard tjChargingStandard = new TjChargingStandard();
            tjChargingStandard.setTjNum(order.getTjNumber());
            tjChargingStandard.setConsumablesId(tjConsumables.getId());
            tjChargingStandard.setPrice(tjConsumables.getPrice());
            tjChargingStandard.setProName(tjConsumables.getMakings());
            tjChargingStandard.setConsumablesName(tjConsumables.getMakings());
            tjChargingStandard.setCompany(tjConsumables.getSpecifications());
            tjChargingStandard.setCreateBy(sysUser.getNickName());
            tjChargingStandard.setCreateTime(new Date());
            tjChargingStandard.setUpdateBy(sysUser.getNickName());
            tjChargingStandard.setUpdateTime(new Date());
            tjChargingStandard.setCreateId(String.valueOf(sysUser.getUserId()));
            tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId()));
            chargingStandardService.save(tjChargingStandard);
        }
        LambdaQueryWrapper<TjOrderDetail> wq = new LambdaQueryWrapper<>();
        wq.eq(TjOrderDetail::getOrderId, order.getOrderId());
        wq.isNotNull(TjOrderDetail::getFlowingWaterId);
        wq.eq(TjOrderDetail::getIsSampling, 0);
        List<TjOrderDetail> detailList = tjOrderDetailService.list(wq);
        if (null != detailList && detailList.size() > 0) {
            String format = DateUtil.format(new Date(), "yyMMddHHmmssSSS");
            for (TjOrderDetail detail : detailList) {
                TjSampling sampling = new TjSampling();
                if (null == projectService.getById(detail.getProId())) continue;
                Long proParentId = projectService.getById(detail.getProId()).getProParentId();
                if (null != proParentId && proParentId == 0) {
                    sampling.setSpecimenType(projectService.getById(detail.getProId()).getSpecimenType());
                } else {
                    sampling.setSpecimenType(projectService.getById(projectService.getById(detail.getProId()).getProParentId()).getSpecimenType());
                }
                sampling.setSamplingNumber(format);
                sampling.setTjNum(order.getTjNumber());
                sampling.setCusId(String.valueOf(order.getUserId()));
                if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) {
                    sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName());
                }
                sampling.setApplicationTime(new Date());
                sampling.setTjTime(order.getCreateTime());
                sampling.setProId(String.valueOf(detail.getProId()));
                sampling.setProName(projectService.getById(detail.getProId()).getProName());
                sampling.setCreateBy(sysUser.getNickName());
                sampling.setCreateTime(new Date());
                sampling.setUpdateBy(sysUser.getNickName());
                sampling.setUpdateTime(new Date());
                sampling.setCreateId(String.valueOf(sysUser.getUserId()));
                sampling.setUpdateId(String.valueOf(sysUser.getUserId()));
                samplingService.save(sampling);
            }
        }
    }
    //首页饼状图登记人数接口
@@ -1282,7 +1415,7 @@
        }
    }
    //已检
    //已检(整体存入)
    public List<TjCustomer> getYjAjaxResult(List<Long> ksproList) {
        List<TjCustomer> customerLis = new ArrayList<>();
        LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
@@ -1297,6 +1430,7 @@
                    () -> new TreeSet<>(Comparator.comparing(TjOrderDetail::getOrderId))
            ), ArrayList::new)).stream().map(TjOrderDetail::getOrderId).collect(Collectors.toList());
            for (Long orderId : orderIds) {
                if (null != orderId) {
                    TjOrder order = orderService.getById(orderId);
                    if (null == order) {
@@ -1357,7 +1491,7 @@
        return customerLis;
    }
    //未检
    //未检(整体存入)
    public List<TjCustomer> getWjAjaxResult(List<Long> ksproList) {
        List<TjCustomer> customerLis = new ArrayList<>();
        LambdaQueryWrapper<TjOrderDetail> wq1 = new LambdaQueryWrapper<>();
@@ -1372,6 +1506,9 @@
                    () -> new TreeSet<>(Comparator.comparing(TjOrderDetail::getOrderId))
            ), ArrayList::new)).stream().map(TjOrderDetail::getOrderId).collect(Collectors.toList());
            for (Long orderId : orderIds) {
//                for (Long aLong : ksproList) {
//                    getDgWjAjaxResult(orderId,aLong);
//                }
                if (null != orderId) {
                    TjOrder order = orderService.getById(orderId);
                    if (null == order) {
@@ -1419,11 +1556,15 @@
                            StringBuilder stringBuilder = new StringBuilder();
                            for (TjOrderRemark remark : list) {
                                TjProject byId = projectService.getById(remark.getProId());
                                stringBuilder.append(byId.getProName()).append(";");
                                if(null !=byId){
                                    stringBuilder.append(byId.getProName()).append(";");
                                }
                            }
                            customer.setNotCheckeds(String.valueOf(stringBuilder));
                            if (null == customer.getNotCheckeds()) customer.setNotCheckeds("全部已检");
                        }
                        customerLis.add(customer);
                    }
                }
@@ -1432,6 +1573,122 @@
        return customerLis;
    }
    //已检(单个存入)0未检,1已检
    public void getDgYjAjaxResult(Long orderId,Long ksId) {
        if (null != orderId) {
            TjOrder order = orderService.getById(orderId);
            if (null != order) {
                LambdaQueryWrapper<TjOrderDetail> qww = new LambdaQueryWrapper<>();
                qww.eq(TjOrderDetail::getOrderId, order.getOrderId());
                qww.eq(TjOrderDetail::getTjStatus, 0);
                qww.isNotNull(TjOrderDetail::getFlowingWaterId);
                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);
                }
                if (null != customer) {
                    //遍历项目 判断是否有重大阳性  标记
                    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.setTjStatus(1L);
                    customer.setOrderId(order.getOrderId());
                    customer.setIsHz(order.getIsHz());
                    customer.setTjCategory(order.getTjCategory());
                    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);
                }
            }
        }
}
    //未检(单个存入)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;
                                }
                            }
                        }
                        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);
                    }
                }
        }
    }
    //已审
    private List<TjCustomer> getYsResult(String config) {
        List<TjOrder> orderList = null;