zjh
2025-05-19 7e73e7699d55b4b229bef4dc5d89e01aedef5a19
ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
@@ -597,68 +597,157 @@
    }
    @Override
    @Async("async")
    public void updateOrdeltile(List<TjOrderDetail> tjOrderDetailList, SysUser sysUser, TjOrder order,TjOrderRemark orderRemark) {
        String deptname="";
        TjProject tjProject = projectService.getById(orderRemark.getProId());
        if(null !=tjProject){
            SysDept dept = deptService.getById(tjProject.getDeptId());
            if(dept.getParentId()!=100L){
                deptname= deptService.getprentks(dept.getParentId().toString());
            }else {
                deptname=dept.getDeptName();
            }
            String xb= tjCustomerService.getSexByTjh(order.getTjNumber());
    //@Async("async")
    public void updateOrdeltile(List<TjOrderDetail> tjOrderDetailList, SysUser sysUser, TjOrder order, TjOrderRemark orderRemark) {
            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);
                try {
                    LambdaQueryWrapper<TjOrderYcxm> wq=new LambdaQueryWrapper<>();
                    wq.eq(TjOrderYcxm::getTjh,order.getTjNumber());
                    wq.eq(TjOrderYcxm::getJcxm,detail.getProName());
                    TjOrderYcxm ycxm = ycxmService.getOne(wq);
                    if(null !=ycxm){
                        ycxm.setJcjg(detail.getProResult());
                        List<Map<String,Object>> maps= rulesService.getyichangxiangmujianyiguize(detail.getProId().toString()
                                ,"","",order.getTjNumber()
                                ,detail.getProName().replaceAll("[((][^))]*[))]", "")
                                        .replaceAll("[ 测定检测]","").replaceAll("◆","")
                                ,detail.getProResult());
        try {
            String deptname = "";
            TjProject tjProject = projectService.getById(orderRemark.getProId());
            if (null != tjProject) {
                SysDept dept = deptService.getById(tjProject.getDeptId());
                if (dept.getParentId() != 100L) {
                    deptname = deptService.getprentks(dept.getParentId().toString());
                } else {
                    deptname = dept.getDeptName();
                }
                String xb= tjCustomerService.getSexByTjh(order.getTjNumber());
                        String[] split = detail.getProResult().split("。|,|,");
                        List<Map<String,Object>> mapList=new ArrayList<>();
                        for (String s : split) {
                            s = s.replaceAll("\n", "");
//                                        Map<String,Object> maps= rulesService.getyichangxiangmujianyiguizeJianCha(s);
                            Map<String,Object> mapss= tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(deptname,s,"0",xb);
                            if(null !=mapss && !mapss.isEmpty()){
                                Object bt = mapss.get("bt");
                                Object nr = mapss.get("nr");
                                if(null !=bt || null !=nr){
                StringBuilder ssyszys = new StringBuilder();
                StringBuilder ssyszyjgs = new StringBuilder();
                List<Map<String, Object>> jianyilis=new ArrayList<>();
                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);
                                } mapList.add(mapss);
                    LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
                    wq.eq(TjOrderYcxm::getTjh, order.getTjNumber());
                    wq.eq(TjOrderYcxm::getJcxm, detail.getProName());
                    ycxmService.remove(wq);
                    if (detail.getExceptionDesc() == 1) {
                        if(tjProject.getSfcyyc()==0){
                            String replacedAll = detail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "").replaceAll("[((][^))]*[))]", "")
                                    .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", "").replaceAll("◆", "");
                            if(!detail.getProName().contains("舒张压") && !detail.getProName().contains("收缩压")){
                                List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(detail.getProId().toString(), replacedAll, "", order.getTjNumber()
                                        , replacedAll, detail.getProResult());
                                String[] split = detail.getProResult().split("[。,,::.\\s]+");
                                List<Map<String, Object>> mapList = new ArrayList<>();
                                for (String s : split) {
                                    s = s.replaceAll("\n", "").replaceAll("[((][^))]*[))]", "").replaceAll(" ","")
                                            .replaceAll("症","").replaceAll("[0-9]", "");
                                    Map<String, Object> mapss = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(deptname, s, "0",xb);
                                    if (null != mapss && !mapss.isEmpty()) {
                                        Object bt = mapss.get("bt");
                                        Object nr = mapss.get("nr");
                                        if (null != bt || null != nr) {
                                        }
                                        mapList.add(mapss);
                                    }
                                }
                                TjOrderYcxm ycxm = ycxmService.getOne(wq);
                                if (null != ycxm) {
                                    ycxm.setJcjg(detail.getProResult());
                                    if (null != maps && !maps.isEmpty()) {
                                        ycxm.setJynr(JSONUtil.toJsonStr(maps));
                                    }
                                    if (!mapList.isEmpty()) {
                                        ycxm.setJynr(JSONUtil.toJsonStr(mapList));
                                    }
                                    ycxmService.updateById(ycxm);
                                }else {
                                    TjOrderYcxm orderYcxm =new TjOrderYcxm();
                                    orderYcxm.setTjh(order.getTjNumber());
                                    orderYcxm.setParentName(tjProject.getProName());
                                    orderYcxm.setJcxm(detail.getProName());
                                    orderYcxm.setJcjg(detail.getProResult());
                                    if (null != maps && !maps.isEmpty()) {
                                        orderYcxm.setJynr(JSONUtil.toJsonStr(maps));
                                    }
                                    if (!mapList.isEmpty()) {
                                        orderYcxm.setJynr(JSONUtil.toJsonStr(mapList));
                                    }
                                    orderYcxm.setJyjc("0");
                                    ycxmService.save(orderYcxm);
                                }
                            }else {
                                List<Map<String, Object>> maps = rulesService.getyichangxiangmujianyiguize(detail.getProId().toString()
                                        , replacedAll, "", order.getTjNumber(), replacedAll, detail.getProResult());
                                String[] split = detail.getProResult().split("[。,,::.\\s]+");
                                List<Map<String, Object>> mapList = new ArrayList<>();
                                for (String s : split) {
                                    s = s.replaceAll("\n", "").replaceAll("[((][^))]*[))]", "").replaceAll(" ","")
                                            .replaceAll("症","").replaceAll("[0-9]", "");
                                    Map<String, Object> mapss = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(deptname, s, "0",xb);
                                    if (null != mapss && !mapss.isEmpty()) {
                                        Object bt = mapss.get("bt");
                                        Object nr = mapss.get("nr");
                                        if (null != bt || null != nr) {
                                        }
                                        mapList.add(mapss);
                                    }
                                }
                                if (null != maps && !maps.isEmpty()) {
                                    jianyilis.addAll(maps);
                                }
                                if (!mapList.isEmpty()) {
                                    jianyilis.addAll(mapList);
                                }
                                ssyszys.append(detail.getProName()).append("/");
                                ssyszyjgs.append(detail.getProResult()).append("/");
                            }
                        }
                    } else {
                        if(detail.getProName().contains("舒张压") || detail.getProName().contains("收缩压")){
                            ssyszys.append(detail.getProName()).append("/");
                            ssyszyjgs.append(detail.getProResult()).append("/");
                        if(null != maps && !maps.isEmpty()){
                            ycxm.setJynr(JSONUtil.toJsonStr(maps));
                        }
                        if( !mapList.isEmpty()){
                            ycxm.setJynr(JSONUtil.toJsonStr(mapList));
                        }
                        ycxmService.updateById(ycxm);
                        if(detail.getExceptionDesc()==0)ycxmService.remove(wq);
                    }
                } catch (Exception e) {
                }
                // 使用 stream 过滤出 proName 为 "舒张压" 或 "收缩压" 的元素
                List<TjOrderDetail> filteredList = tjOrderDetailList.stream()
                        .filter(a -> ("舒张压".equals(a.getProName()) || "收缩压".equals(a.getProName())) && a.getExceptionDesc()==1)
                        .collect(Collectors.toList());
                if(StrUtil.isNotBlank(ssyszys.toString())){
                    LambdaQueryWrapper<TjOrderYcxm> wq = new LambdaQueryWrapper<>();
                    wq.eq(TjOrderYcxm::getTjh, order.getTjNumber());
                    wq.like(TjOrderYcxm::getJcxm,"舒张压");
                    ycxmService.remove(wq);
                    if(!filteredList.isEmpty()){
                        TjOrderYcxm orderYcxm =new TjOrderYcxm();
                        orderYcxm.setTjh(order.getTjNumber());
                        orderYcxm.setParentName(tjProject.getProName());
                        orderYcxm.setJcxm(ssyszys.toString().replaceFirst("/$", ""));
                        orderYcxm.setJcjg(ssyszyjgs.toString().replaceFirst("/$", ""));
                        orderYcxm.setJynr(JSONUtil.toJsonStr(jianyilis));
                        orderYcxm.setJyjc("0");
                        ycxmService.save(orderYcxm);
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            log.error(String.valueOf(e));
        }
    }