zhaowenxuan
1 天以前 dedacd79c93f8ef95e0cb986f5e7fbd27ddbd907
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java
@@ -41,10 +41,12 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.NoTransactionException;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
@@ -95,64 +97,76 @@
    private ISysDictDataService dictDataService;
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private IDictCompService dictCompService;
    @Autowired
    private ITjDwDeptService tjDwDeptService;
    @Autowired
    private ITjDwGroupingService tjDwGroupingService;
    @Value("${path.filePath}")
    private String value;
//    @Value("${path.filePath}")
//    private String value;
    @PostMapping("/importTemplate")
    @ApiOperation(value = "导出excel表模板")
    public void importTemplate(HttpServletResponse response) {
        //原来的下载模板调用接口
        String base64String = PDFBinaryUtil.getPDFBinary(configService.selectConfigByKey("default_excelTemplate"));
        if (null != base64String) {
            PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + File.separator + "团体预约Excel模版.xls");
            String filePath = value + File.separator + "团体预约Excel模版.xls";
            File f = new File(filePath);
            BufferedInputStream br = null;
            OutputStream out = null;
            FileInputStream fileInputStream = null;
            try {
                fileInputStream = new FileInputStream(f);
                br = new BufferedInputStream(fileInputStream);
                byte[] bs = new byte[1024];
                int len = 0;
                response.reset(); // 非常重要
                if (true) {
                    // 在线打开方式
                    URL u = new URL("file:///" + filePath);
                    //System.out.println(u);
                    String contentType = u.openConnection().getContentType();
                    response.setContentType(contentType);
                    response.setHeader("Content-Disposition", "inline;filename=团体预约Excel模版.xls");
                } else {
                    // 纯下载方式
                    response.setContentType("application/x-msdownload");
                    response.setContentType("application/pdf;charset=utf-8");
                    response.setHeader("Content-Disposition", "attachment;filename=团体预约Excel模版.xls");
                }
                out = response.getOutputStream();
                while ((len = br.read(bs)) > 0) {
                    out.write(bs, 0, len);
                }
                out.flush();
                out.close();
                br.close();
                fileInputStream.close();
            } catch (IOException e) {
                e.printStackTrace();
                //System.out.println("pdf处理文件异常" + e);
            } finally {
                if (out != null) {
                    try {
                        out.close();
                        br.close();
                        fileInputStream.close();
        try {
            String value = configService.selectConfigByKey("path_filePath");
            String base64String = PDFBinaryUtil.getPDFBinary(value + File.separator + "西安路泰机电科技有限公司.xls");
            if (null != base64String) {
                PDFBinaryUtil.base64StringToPDF(base64String, FileUtil.mkdir(value).getPath() + File.separator + "团体预约Excel模版.xls");
                String filePath = value + File.separator + "团体预约Excel模版.xls";
                File f = new File(filePath);
                BufferedInputStream br = null;
                OutputStream out = null;
                FileInputStream fileInputStream = null;
                try {
                    fileInputStream = new FileInputStream(f);
                    br = new BufferedInputStream(fileInputStream);
                    byte[] bs = new byte[1024];
                    int len = 0;
                    response.reset(); // 非常重要
                    if (true) {
                        // 在线打开方式
                        URL u = new URL("file:///" + filePath);
                        //System.out.println(u);
                        String contentType = u.openConnection().getContentType();
                        response.setContentType(contentType);
                        response.setHeader("Content-Disposition", "inline;filename=团体预约Excel模版.xls");
                    } else {
                        // 纯下载方式
                        response.setContentType("application/x-msdownload");
                        response.setContentType("application/pdf;charset=utf-8");
                        response.setHeader("Content-Disposition", "attachment;filename=团体预约Excel模版.xls");
                    }
                    out = response.getOutputStream();
                    while ((len = br.read(bs)) > 0) {
                        out.write(bs, 0, len);
                    }
                    out.flush();
                    out.close();
                    br.close();
                    fileInputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                    //System.out.println("pdf处理文件异常" + e);
                } finally {
                    if (out != null) {
                        try {
                            out.close();
                            br.close();
                            fileInputStream.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            }
        } catch (Exception e) {
            ExcelUtils.exportTemplate(response, "团体预约Excel模版", TjReservation.class);
            throw new RuntimeException(e);
        }
    }
@@ -165,7 +179,7 @@
    @ApiOperation(value = "查询体检预约列表接口(默认)")
    public TableDataInfo list(TjReservation tjReservation) {
        startPage();
        tjReservation.setIsExpire(2);
       if(tjReservation.getIsExpire()==null) tjReservation.setIsExpire(2);
        List<TjReservation> list = tjReservationService.selectTjReservationList(tjReservation);
//        if(null !=list && list.size()>0){
//            for (TjReservation reservation : list) {
@@ -270,7 +284,11 @@
                    //年龄
                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
                    //出生日期
                    tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                    try {
                        tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()));
                    } catch (Exception e) {
                        return AjaxResult.error("身份证号不正确");
                    }
                    if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
@@ -364,7 +382,7 @@
        List<String> wrongList = new ArrayList<>();
        List<TjReservation> rightList = new ArrayList<>();
        List<TjReservation> yyList = new ArrayList<>();
        List<String> yyList = new ArrayList<>();
        Map<String, Object> map = new HashMap<>();
        List<TjDwGrouping> groupingMans = null;//男
        List<TjDwGrouping> groupingWoMans = null;//女
@@ -380,204 +398,163 @@
            return AjaxResult.error("分组信息有误请重新分组!");
        }
        String sfjysfzh = configService.selectConfigByKey("sfjysfzh");
        String sfjysjh = configService.selectConfigByKey("sfjysjh");
        try {
            String sfjysfzh = configService.selectConfigByKey("sfjysfzh");
            String sfjysjh = configService.selectConfigByKey("sfjysjh");
        //计算合计
        BigDecimal hjMoney = new BigDecimal("0.00");
        //男组金额
        BigDecimal manMoney = new BigDecimal("0.00");
        //女组金额
        BigDecimal woManMoney = new BigDecimal("0.00");
        int count = 0;//总计人数
        int manCount = 0;//男组人数
        int woManCount = 0;//女组人数
        List<String> ids=new ArrayList<>();
            //计算合计
            BigDecimal hjMoney = new BigDecimal("0.00");
            //男组金额
            BigDecimal manMoney = new BigDecimal("0.00");
            //女组金额
            BigDecimal woManMoney = new BigDecimal("0.00");
            int count = 0;//总计人数
            int manCount = 0;//男组人数
            int woManCount = 0;//女组人数
            List<String> ids = new ArrayList<>();
        for (TjReservation tjReservation : tjReservations) {
            String idCard = tjReservation.getIdCard();
            String phoe = tjReservation.getPhoe();
                  idCard= idCard.replaceAll("[',,;.。 ‘“]","");
//            String errMsg = "";
            for (TjReservation tjReservation : tjReservations) {
                String name = tjReservation.getName();
                String idCard = tjReservation.getIdCard();
                String phoe = tjReservation.getPhoe();
                name = name.replaceAll("[',,;.。 ‘“]", "").replaceAll(" ", "");
                phoe = phoe.replaceAll("[',,;.。 ‘“]", "").replaceAll(" ", "");
                idCard = idCard.replaceAll("[',,;.。 ‘“]", "").replaceAll(" ", "");
            if (!StringUtils.isBlank(idCard) || !StringUtils.isBlank(phoe) || null != tjReservation.getDwxm()) {
                //将科学计数的手机号转换成文本形式
                phoe = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
                if (!StringUtils.isBlank(idCard) || !StringUtils.isBlank(phoe) || null != tjReservation.getDwxm()) {
                    //将科学计数的手机号转换成文本形式
                    phoe = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
                if(!ids.isEmpty() && ids.contains(tjReservation.getIdCard())){
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("此身份证号: "+tjReservation.getIdCard()+" 重复,请核对后上传!");
                }
                    if (!ids.isEmpty() && ids.contains(idCard)) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return AjaxResult.error("此身份证号: " + tjReservation.getIdCard() + " 重复,请核对后上传!");
                    }
                ids.add(tjReservation.getIdCard());
                    ids.add(idCard);
//                if (sfjysfzh.equalsIgnoreCase("Y") || sfjysjh.equalsIgnoreCase("Y")) {
                    if ((sfjysfzh.equalsIgnoreCase("Y") && !MatchUtils.isIdCard(idCard)) ||
                            (sfjysjh.equalsIgnoreCase("Y") && !MatchUtils.isMobileNO(phoe))) {
                        wrongList.add(tjReservation.getName());
                        log.info(tjReservation.getName()+idCard+MatchUtils.isIdCard(idCard)+MatchUtils.isMobileNO(phoe));
                    }else {
                    if (!Objects.equals(tjReservation.getSex(), MatchUtils.getSexByIdCard(idCard))){
                        wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"性别 不准确");
                        log.info(tjReservation.getName() + " " + idCard);
                    }
                        if ((sfjysfzh.equalsIgnoreCase("Y") &&  idCard.length()==18 && !MatchUtils.isIdCard(idCard)) ||
                                (sfjysjh.equalsIgnoreCase("Y") && !MatchUtils.isMobileNO(phoe))) {
                            wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"身份证号/手机号 格式不准确");
//                            errMsg = "身份证号/手机号 格式不准确";
                            log.info(tjReservation.getName() + " " + idCard + MatchUtils.isIdCard(idCard) + " " + phoe + " " + MatchUtils.isMobileNO(phoe));
                        }
//                        else {
                        tjReservation.setPhoe(phoe);
                            tjReservation.setPhoe(phoe);
                        //年龄
                        tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
                        //出生日期
                        tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                            tjReservation.setName(name);
                        TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>().eq(TjDwDept::getDwDeptName, tjReservation.getDwxm()));
                        if (null != dwDept) {
                            for (TjDwGrouping groupingMan : groupingMans) {
                                if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingMan.getDwDeptId().equals(dwDept.getId())) {
                                    tjReservation.setGroupingId(groupingMan.getId());
                                    tjReservation.setGroupingName(groupingMan.getGroupingName());
                                    tjReservation.setYsPrice(groupingMan.getYsPrice());
                                    //合计
                                    hjMoney = hjMoney.add(groupingMan.getYsPrice());
                                    count += 1;
                                    //男组人数
                                    manMoney = manMoney.add(groupingMan.getYsPrice());
                                    manCount += 1;
                                }
                            tjReservation.setIdCard(idCard);
                            //年龄
                            tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard().replaceAll(" ", ""))));
                            //出生日期
                            try {
                                tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard().replaceAll(" ", "")));
                            } catch (Exception e) {
//                            return AjaxResult.error("身份证号不正确");
                            }
                            for (TjDwGrouping groupingWoMan : groupingWoMans) {
                                if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingWoMan.getDwDeptId().equals(dwDept.getId())) {
                                    tjReservation.setGroupingId(groupingWoMan.getId());
                                    tjReservation.setGroupingName(groupingWoMan.getGroupingName());
                                    tjReservation.setYsPrice(groupingWoMan.getYsPrice());
                                    //合计
                                    hjMoney = hjMoney.add(groupingWoMan.getYsPrice());
                                    count += 1;
                                    woManMoney = woManMoney.add(groupingWoMan.getYsPrice());
                                    woManCount += 1;
                                }
                            }
                            for (TjDwGrouping groupingWz : groupingWzs) {
                                if (null != groupingWz && groupingWz.getDwDeptId().equals(dwDept.getId())) {
                                    tjReservation.setGroupingId(groupingWz.getId());
                                    tjReservation.setGroupingName(groupingWz.getGroupingName());
                                    tjReservation.setYsPrice(groupingWz.getYsPrice());
                                    //合计
                                    hjMoney = hjMoney.add(groupingWz.getYsPrice());
                                    count += 1;
                                    if (tjReservation.getSex() == 0) {
                                        manMoney = manMoney.add(groupingWz.getYsPrice());
                            TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>().
                                    eq(TjDwDept::getDwDeptName, tjReservation.getDwxm().trim()).eq(TjDwDept::getDwId,dwId));
                            if (null != dwDept) {
                                for (TjDwGrouping groupingMan : groupingMans) {
                                    if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingMan.getDwDeptId().equals(dwDept.getId())) {
                                        tjReservation.setGroupingId(groupingMan.getId());
                                        tjReservation.setGroupingName(groupingMan.getGroupingName());
                                        tjReservation.setYsPrice(groupingMan.getYsPrice());
                                        //合计
                                        hjMoney = hjMoney.add(groupingMan.getYsPrice());
                                        count += 1;
                                        //男组人数
                                        manMoney = manMoney.add(groupingMan.getYsPrice());
                                        manCount += 1;
                                    }
                                    if (tjReservation.getSex() == 1) {
                                        woManMoney = woManMoney.add(groupingWz.getYsPrice());
                                }
                                for (TjDwGrouping groupingWoMan : groupingWoMans) {
                                    if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingWoMan.getDwDeptId().equals(dwDept.getId())) {
                                        tjReservation.setGroupingId(groupingWoMan.getId());
                                        tjReservation.setGroupingName(groupingWoMan.getGroupingName());
                                        tjReservation.setYsPrice(groupingWoMan.getYsPrice());
                                        //合计
                                        hjMoney = hjMoney.add(groupingWoMan.getYsPrice());
                                        count += 1;
                                        woManMoney = woManMoney.add(groupingWoMan.getYsPrice());
                                        woManCount += 1;
                                    }
                                }
                            }
                            LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
                            wq.eq(TjReservation::getIdCard, tjReservation.getIdCard());
                            wq.eq(TjReservation::getIsExpire, 2);
                            TjReservation one = tjReservationService.getOne(wq);
                            if (null != one) {
                                yyList.add(one);
                            }
                            rightList.add(tjReservation);
                        } else {
                            wrongList.add(tjReservation.getName());
                        }
                    }
//                }
//                else {
//                    //将科学计数的手机号转换成文本形式
//                    String str = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
//                    tjReservation.setPhoe(str);
//
//                    //年龄
//                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
//                    //出生日期
//                    tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
//
//                    TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>().eq(TjDwDept::getDwDeptName, tjReservation.getDwxm()));
//                    if (null != dwDept) {
//                        for (TjDwGrouping groupingMan : groupingMans) {
//                            if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingMan.getDwDeptId().equals(dwDept.getId())) {
//                                tjReservation.setGroupingId(groupingMan.getId());
//                                tjReservation.setGroupingName(groupingMan.getGroupingName());
//                                tjReservation.setYsPrice(groupingMan.getYsPrice());
//                                //合计
//                                hjMoney = hjMoney.add(groupingMan.getYsPrice());
//                                count += 1;
//                                //男组人数
//                                manMoney = manMoney.add(groupingMan.getYsPrice());
//                                manCount += 1;
//                            }
//                        }
//
//                        for (TjDwGrouping groupingWoMan : groupingWoMans) {
//                            if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex())) && groupingWoMan.getDwDeptId().equals(dwDept.getId())) {
//                                tjReservation.setGroupingId(groupingWoMan.getId());
//                                tjReservation.setGroupingName(groupingWoMan.getGroupingName());
//                                tjReservation.setYsPrice(groupingWoMan.getYsPrice());
//                                //合计
//                                hjMoney = hjMoney.add(groupingWoMan.getYsPrice());
//                                count += 1;
//                                woManMoney = woManMoney.add(groupingWoMan.getYsPrice());
//                                woManCount += 1;
//                            }
//                        }
//                        for (TjDwGrouping groupingWz : groupingWzs) {
//                            if (null != groupingWz && groupingWz.getDwDeptId().equals(dwDept.getId())) {
//                                tjReservation.setGroupingId(groupingWz.getId());
//                                tjReservation.setGroupingName(groupingWz.getGroupingName());
//                                tjReservation.setYsPrice(groupingWz.getYsPrice());
//                                //合计
//                                hjMoney = hjMoney.add(groupingWz.getYsPrice());
//                                count += 1;
//                                if (tjReservation.getSex() == 0) {
//                                    manMoney = manMoney.add(groupingWz.getYsPrice());
//                                    manCount += 1;
//                                }
//                                if (tjReservation.getSex() == 1) {
//                                    woManMoney = woManMoney.add(groupingWz.getYsPrice());
//                                    woManCount += 1;
//                                }
//
//                            }
//                        }
//                        LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
//                        wq.eq(TjReservation::getIdCard, tjReservation.getIdCard());
//                        wq.eq(TjReservation::getIsExpire, 2);
//                        TjReservation one = tjReservationService.getOne(wq);
//                        if (null != one) {
//                            yyList.add(one);
//                        }
//                        rightList.add(tjReservation);
//                    } else {
//                        wrongList.add(tjReservation.getName());
//                    }
//                }
                                for (TjDwGrouping groupingWz : groupingWzs) {
                                    if (null != groupingWz && groupingWz.getDwDeptId().equals(dwDept.getId())) {
                                        tjReservation.setGroupingId(groupingWz.getId());
                                        tjReservation.setGroupingName(groupingWz.getGroupingName());
                                        tjReservation.setYsPrice(groupingWz.getYsPrice());
                                        //合计
                                        hjMoney = hjMoney.add(groupingWz.getYsPrice());
                                        count += 1;
                                        if (tjReservation.getSex() == 0) {
                                            manMoney = manMoney.add(groupingWz.getYsPrice());
                                            manCount += 1;
                                        }
                                        if (tjReservation.getSex() == 1) {
                                            woManMoney = woManMoney.add(groupingWz.getYsPrice());
                                            woManCount += 1;
                                        }
            } else {
                wrongList.add(tjReservation.getName());
                                    }
                                }
                                LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
                                wq.eq(TjReservation::getIdCard, tjReservation.getIdCard());
                                wq.eq(TjReservation::getIsExpire, 2);
                                TjReservation one = tjReservationService.getOne(wq);
                                if (null != one) {
                                    yyList.add(one.getName() + " " + tjReservation.getIdCard());
                                } else {
                                    rightList.add(tjReservation);
                                }
                            } else {
                                wrongList.add(tjReservation.getName() + " " + tjReservation.getIdCard()+"该单位 套餐分类名填写 不正确");
                            }
//                        }
                }
                else {
                    wrongList.add(tjReservation.getName()+"身份证号/手机号/套餐分类名名为空");
                }
            }
        }
        if (!yyList.isEmpty()) {
            map.put("list", yyList);
            map.put("hjMoney", hjMoney);
            return AjaxResult.error("操作失败,以上人员已经预约无需导入!!!", map);
        }
        if (!wrongList.isEmpty()) {
            map.put("list", wrongList);
            map.put("hjMoney", hjMoney);
            return AjaxResult.error("操作失败, 请认真核对信息后重新导入!!!", map);
        } else {
            map.put("list", rightList);
            map.put("count", count);
            map.put("hjMoney", hjMoney);
            map.put("manCount", manCount);
            map.put("manMoney", manMoney);
            map.put("woManCount", woManCount);
            map.put("woManMoney", woManMoney);
            return AjaxResult.success("操作成功", map);
            if (!yyList.isEmpty()) {
                map.put("list", yyList);
                map.put("hjMoney", hjMoney);
                return AjaxResult.error("操作失败,以上人员已经预约无需导入!!!", map);
            }
            if (!wrongList.isEmpty()) {
                map.put("list", wrongList);
                map.put("hjMoney", hjMoney);
                return AjaxResult.error("操作失败, 请认真核对错误信息后重新导入!!!", map);
            } else {
                map.put("list", rightList);
                map.put("count", count);
                map.put("hjMoney", hjMoney);
                map.put("manCount", manCount);
                map.put("manMoney", manMoney);
                map.put("woManCount", woManCount);
                map.put("woManMoney", woManMoney);
                return AjaxResult.success("操作成功", map);
            }
        } catch (NoTransactionException e) {
//            throw new RuntimeException(e);
            log.error(String.valueOf(e), e.getMessage());
            return AjaxResult.error();
        }
    }
@@ -595,9 +572,10 @@
        if (null != tjReservation.getIdType()) {
            if (tjReservation.getIdType().equals("1")) {
                b = MatchUtils.isIdCard(tjReservation.getIdCard());
            } else {
                b = MatchUtils.cardValidate(tjReservation.getIdCard(), tjReservation.getIdType());
            }
//            else {
//                b = MatchUtils.cardValidate(tjReservation.getIdCard(), tjReservation.getIdType());
//            }
        } else {
            return AjaxResult.error("请选择证件类型");
        }
@@ -610,7 +588,7 @@
        if (null != reservation) return AjaxResult.success("您已成功预约,无需再约");
        //tjReservation.setAge(MatchUtils.getAgeByIdCard(tjReservation.getIdCard()));
        try {
            tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
            tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()));
        } catch (Exception e) {
            e.printStackTrace();
        }
@@ -697,7 +675,8 @@
                TjReservation reservation = tjReservationService.getById(id);
                if (null != reservation && reservation.getIsExpire() == 2) {
                    if (tjReservationService.removeById(id)) {
                        transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard()));
                        transitionService.remove(new LambdaQueryWrapper<TbTransition>().eq(TbTransition::getCusId, reservation.getIdCard())
                                .isNull(TbTransition::getTjNum));
                        taskService.removeTask(new TjReservationTask(id));
                    }
                }
@@ -742,11 +721,11 @@
        LambdaQueryWrapper<TjGroupingPro> wq = new LambdaQueryWrapper<>();
        wq.eq(TjGroupingPro::getGroupingId, groupingId);
        List<TjGroupingPro> proList = groupingProService.list(wq);
        if (null != proList && proList.size() > 0) {
        if (null != proList && !proList.isEmpty()) {
            for (TjGroupingPro groupingPro : proList) {
                TjProject project = projectService.getById(groupingPro.getProId());
                if (null != project) {
                    if (project.getProType() == null || project.getProType().equals("")) {
                    if (project.getProType() == null || project.getProType().isEmpty()) {
                        groupingPro.setProType("2");
                    } else {
                        groupingPro.setProType(project.getProType());
@@ -903,21 +882,21 @@
        JSONObject parseObj = JSONUtil.parseObj(payTypeGlTjType);
        if (null != rightList && !rightList.isEmpty()) {
            List<String> ids=new ArrayList<>();
            List<String> ids = new ArrayList<>();
            for (TjReservation reservation : rightList) {
                if(!ids.isEmpty() && ids.contains(reservation.getIdCard())){
                if (!ids.isEmpty() && ids.contains(reservation.getIdCard())) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("此身份证号: "+reservation.getIdCard()+" 重复,请核对后上传!");
                    return AjaxResult.error("此身份证号: " + reservation.getIdCard() + " 重复,请核对后上传!");
                }
                reservation.setName(reservation.getName().replaceAll(" ", "").replaceAll(" ", ""));
                ids.add(reservation.getIdCard());
                TjDwGrouping dwGrouping = dwGroupingService.getById(reservation.getGroupingId());
                TjDwDept dwDept = dwDeptService.getById(dwGrouping.getDwDeptId());
//                TjDwDept dwDept = dwDeptService.getById(dwGrouping.getDwDeptId());
                LambdaQueryWrapper<TjReservation> wq = new LambdaQueryWrapper<>();
                wq.eq(TjReservation::getIdCard, reservation.getIdCard());
@@ -946,7 +925,7 @@
                }
                reservation.setPacId(dwDept.getId());
                reservation.setPacId(dwGrouping.getId());
                compPay = compPay.add(dwGrouping.getYsPrice());
//                reservation.setTjType(String.valueOf(1));
                reservation.setTeamNo(teamNo);
@@ -1013,4 +992,47 @@
        return AjaxResult.error("请选择预约对象");
    }
    /**
     * 团体预约体检信息 联动下拉框
     *
     * @param pid
     * @param type
     * @return
     */
    @GetMapping("/linkage")
    public String linkage(@RequestParam("pid") String pid, @RequestParam("type") String type) {
        switch (type) {
            case "1":
                List<DictComp> list = dictCompService.list();
                List<HashMap<String, Object>> collect = list.stream().map(i -> {
                    HashMap<String, Object> hashMap = new HashMap<>();
                    hashMap.put("value", i.getDrugManufacturerId());
                    hashMap.put("text", i.getCnName());
                    return hashMap;
                }).collect(Collectors.toList());
                return JSONUtil.toJsonStr(collect);
            case "2":
                List<TjDwDept> list1 = tjDwDeptService.getDwDeptListByTjDwDeptId(pid);
                List<HashMap<String, Object>> collect1 = list1.stream().map(i -> {
                    HashMap<String, Object> hashMap = new HashMap<>();
                    hashMap.put("value", i.getId());
                    hashMap.put("text", i.getDwDeptName());
                    return hashMap;
                }).collect(Collectors.toList());
                return JSONUtil.toJsonStr(collect1);
            case "3":
                LambdaQueryWrapper<TjDwGrouping> wrapper = new LambdaQueryWrapper<>();
                wrapper.eq(TjDwGrouping::getDwDeptId, pid);
                List<TjDwGrouping> list2 = tjDwGroupingService.list(wrapper);
                List<HashMap<String, Object>> collect2 = list2.stream().map(i -> {
                    HashMap<String, Object> hashMap = new HashMap<>();
                    hashMap.put("value", i.getId());
                    hashMap.put("text", i.getGroupingName());
                    return hashMap;
                }).collect(Collectors.toList());
                return JSONUtil.toJsonStr(collect2);
        }
        return null;
    }
}