zjh
2024-08-07 ff584d153492ea746690cf8e05c2b859f170ae0b
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java
@@ -326,6 +326,130 @@
    /**
     * 导入团体体检预约列表
     */
    @PostMapping("/newExcelImportNotDwDeptId")
    @ApiOperation(value = "团体导入 (新版本不传单位部门id)")
    @Transactional
    public AjaxResult newExcelImportNotDwDeptId(@RequestPart(value = "file") @ApiParam(value = "Excel文件") MultipartFile file,
                                     @RequestParam @ApiParam(value = "单位id") String dwId) {
        List<TjReservation> tjReservations = null;
        try {
            tjReservations = ExcelUtils.readMultipartFile(file, TjReservation.class);
        } catch (Exception e) {
            return AjaxResult.error("导入文件有误请检查导入文件!");
        }
        int grouping = dwGroupingService.selectTjDwGroupingByDwId(dwId);
        if(grouping==0){
            return AjaxResult.error("请检查该单位是否存否存在项目!");
        }
        List<String> wrongList = new ArrayList<>();
        List<TjReservation> rightList = new ArrayList<>();
        List<TjReservation> yyList = new ArrayList<>();
        Map<String, Object> map = new HashMap<>();
        TjDwGrouping groupingMan = null;//男
        TjDwGrouping groupingWoMan = null;//女
        TjDwGrouping groupingWz = null;//未知(不分性别)
        try {
            groupingMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
                    .eq(TjDwGrouping::getSex, 0));
            groupingWoMan = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
                    .eq(TjDwGrouping::getSex, 1));
            groupingWz = dwGroupingService.getOne(new LambdaQueryWrapper<TjDwGrouping>().eq(TjDwGrouping::getDwId,dwId)
                    .eq(TjDwGrouping::getSex, 2));
        } catch (Exception e) {
            return AjaxResult.error("分组信息有误请重新分组!");
        }
        //计算合计
        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;//女组人数
        for (TjReservation tjReservation : tjReservations) {
            String idCard = tjReservation.getIdCard();
            String phoe = tjReservation.getPhoe();
            if (null != idCard && null != phoe) {
//                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) {
                if (idCard.isEmpty() || phoe.isEmpty()) {
                    wrongList.add(tjReservation.getName());
                } else {
                    //年龄
                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
                    //出生日期
                    tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()),"yyyy-MM-dd"));
                    if (null != groupingMan && groupingMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
                        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;
                    } else if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
                        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;
                    } else if (null != groupingWz && groupingWz.getSex().equals(String.valueOf(tjReservation.getSex()))) {
                        tjReservation.setGroupingId(groupingWz.getId());
                        tjReservation.setGroupingName(groupingWz.getGroupingName());
                        tjReservation.setYsPrice(groupingWz.getYsPrice());
                        //合计
                        hjMoney = hjMoney.add(groupingWz.getYsPrice()); count+=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());
            }
        }
        if (yyList.size() > 0) {
            map.put("list", yyList);
            map.put("hjMoney", hjMoney);
            return AjaxResult.error("操作失败,以上人员已经预约无需导入!!!", map);
        }
        if (wrongList.size() > 0) {
            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);
        }
    }
    /**
     * 个人预约接口
     */
    @PostMapping("/addTjReservation")
@@ -456,6 +580,7 @@
     */
    @PostMapping("/tjReappoint")
    @ApiOperation(value = "体检预约修改接口")
    @Transactional
    public AjaxResult tjReappoint(@RequestBody TjReservation tjReservation) {
        TjReservation reservation = tjReservationService.getById(tjReservation.getId());
@@ -468,7 +593,7 @@
        if (tjReservationService.updateById(tjReservation)) {
            taskService.removeTask(new TjReservationTask(tjReservation.getId()));
            taskService.addTask(new TjReservationTask(tjReservation.getId(),
                    DateUtil.between(new Date(),DateUtil.endOfDay(tjReservation.getReservationTime()), DateUnit.MS)));
                    DateUtil.between(new Date(),DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(),reservation.getYxts())), DateUnit.MS)));
            return AjaxResult.success("操作成功");
        }
        return AjaxResult.error("操作失败");
@@ -560,8 +685,9 @@
                tramNum+=1;
                reservation.setTjType(String.valueOf(1));
                reservation.setTeamNo(teamNo);
                reservation.setYxts(dto.getYxts());
                tjReservationService.save(reservation);
                taskService.addTask(new TjReservationTask(reservation.getId(),DateUtil.between(new Date(),DateUtil.endOfDay(reservation.getReservationTime()), DateUnit.MS)));
                taskService.addTask(new TjReservationTask(reservation.getId(),DateUtil.between(new Date(),DateUtil.endOfDay(DateUtil.offsetDay(reservation.getReservationTime(),dto.getYxts())), DateUnit.MS)));
            }
            LambdaQueryWrapper<TjCompPay> wq0 = new LambdaQueryWrapper<>();
            wq0.eq(TjCompPay::getCompId, dwDept.getDwId());