zjh
2025-04-18 b3ffebcf0f1c58ac2f33922bffc5cff330873bde
zjh20250418
7个文件已修改
292 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java 257 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjDwGroupingMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/app/CustomerController.java
@@ -147,7 +147,7 @@
        substring = DigestUtils.md5DigestAsHex(substring.getBytes());
        tjCustomer.setCusPassword(substring);
        try {
            tjCustomer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(cusIdcard), "yyyy-MM-dd"));
            tjCustomer.setCusBrithday(MatchUtils.getBirthDayByIdCard(cusIdcard));
        } catch (Exception e) {
            return AjaxResult.error("身份证号不正确");
        }
ltkj-admin/src/main/java/com/ltkj/web/controller/app/ReservationController.java
@@ -98,7 +98,7 @@
        TjReservation reservation = reservationService.getOne(wq);
        if (null != reservation) return AjaxResult.success("您已成功预约,无需再约");
        try {
            tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
            tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()));
        } catch (Exception e) {
            e.printStackTrace();
        }
@@ -112,7 +112,7 @@
        tjReservation.setUpdateTime(new Date());
        tjReservation.setWechat(String.valueOf(wxuser.getOpenid()));
        tjReservation.setConnect(String.valueOf(wxuser.getId()));
        if (null != tjReservation.getProIdList() && tjReservation.getProIdList().size() > 0) {
        if (null != tjReservation.getProIdList() && !tjReservation.getProIdList().isEmpty()) {
            String join = Joiner.on(",").join(tjReservation.getProIdList());
            tjReservation.setProIds(join);
        }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
@@ -243,7 +243,7 @@
                    tjCustomer1.setCusName(tjReservation.getName());
                    tjCustomer1.setCusSex(Long.valueOf(tjReservation.getSex()));
                    try {
                        tjCustomer1.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                        tjCustomer1.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard().replaceAll(" ", "")));
                    } catch (Exception e) {
                        return AjaxResult.error("身份证号不正确");
                    }
@@ -277,7 +277,7 @@
                    tjCustomer.setCusName(tjReservation.getName());
                    tjCustomer.setCusSex(Long.valueOf(tjReservation.getSex()));
                    try {
                        tjCustomer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                        tjCustomer.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()));
                    } catch (Exception e) {
                        return AjaxResult.error("身份证号不正确");
                    }
@@ -521,7 +521,7 @@
        tjCustomer.setCusPassword(substring);
        if(cusIdcard.length()==18) {
            try {
                tjCustomer.setCusBrithday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard()), "yyyy-MM-dd"));
                tjCustomer.setCusBrithday(MatchUtils.getBirthDayByIdCard(tjCustomer.getCusIdcard()));
            } catch (Exception e) {
                return AjaxResult.error("身份证号不正确");
            }
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1962,7 +1962,7 @@
            //获取拼接前缀
            String makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
//            String tjNumber = (sysUser.getUserName() + idUtils.getTjNumber());
            String tjNumber = idUtils.getTjNumber();
            String tjNumber = idUtils.getNewTjNumberRedisLockAndMysql();
            if (StringUtil.isNotBlank(makeLisTmhPrefix)) tjNumber = makeLisTmhPrefix + tjNumber;
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java
@@ -283,7 +283,7 @@
                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
                    //出生日期
                    try {
                        tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                        tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard().replaceAll(" ", "")));
                    } catch (Exception e) {
                        return AjaxResult.error("身份证号不正确");
                    }
@@ -380,7 +380,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;//女
@@ -409,181 +409,126 @@
            int count = 0;//总计人数
            int manCount = 0;//男组人数
            int woManCount = 0;//女组人数
            List<String> ids=new ArrayList<>();
            List<String> ids = new ArrayList<>();
            String errMsg="";
//            String errMsg = "";
            for (TjReservation tjReservation : tjReservations) {
                String name = tjReservation.getName();
                String idCard = tjReservation.getIdCard();
                String phoe = tjReservation.getPhoe();
                      idCard= idCard.replaceAll("[',,;.。 ‘“]","");
                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(!ids.isEmpty() && ids.contains(tjReservation.getIdCard())){
                    if (!ids.isEmpty() && ids.contains(idCard)) {
                        TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                        return AjaxResult.error("此身份证号: "+tjReservation.getIdCard()+" 重复,请核对后上传!");
                        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());
                            errMsg="身份证号/手机号 格式不准确";
                            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") && !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())));
                            //出生日期
                            try {
                                tjReservation.setBirthday(DateUtil.parse(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard()), "yyyy-MM-dd"));
                            } catch (Exception e) {
                                return AjaxResult.error("身份证号不正确");
                            }
                    tjReservation.setName(name);
                            TjDwDept dwDept = dwDeptService.getOne(new LambdaQueryWrapper<TjDwDept>().eq(TjDwDept::getDwDeptName, tjReservation.getDwxm().trim()));
                            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);
                                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;
                                        }
                    //年龄
                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard().replaceAll(" ", ""))));
                    //出生日期
                    try {
                        tjReservation.setBirthday(MatchUtils.getBirthDayByIdCard(tjReservation.getIdCard().replaceAll(" ", "")));
                    } catch (Exception e) {
//                            return AjaxResult.error("身份证号不正确");
                    }
                                    }
                                }
                                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());
                                errMsg="所选项目名 不正确";
                    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;
                            }
                        }
    //                }
    //                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());
    //                    }
    //                }
                } else {
                    wrongList.add(tjReservation.getName());
                    errMsg="身份证号/手机号/项目名为空";
                        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.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);
@@ -593,7 +538,7 @@
            if (!wrongList.isEmpty()) {
                map.put("list", wrongList);
                map.put("hjMoney", hjMoney);
                return AjaxResult.error("操作失败, 请认真核对信息后重新导入!!!"+errMsg, map);
                return AjaxResult.error("操作失败, 请认真核对错误信息后重新导入!!!", map);
            } else {
                map.put("list", rightList);
                map.put("count", count);
@@ -606,7 +551,7 @@
            }
        } catch (NoTransactionException e) {
//            throw new RuntimeException(e);
            log.error(String.valueOf(e),e.getMessage());
            log.error(String.valueOf(e), e.getMessage());
            return AjaxResult.error();
        }
    }
@@ -640,7 +585,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().replaceAll(" ", "")));
        } catch (Exception e) {
            e.printStackTrace();
        }
ltkj-framework/src/main/java/com/ltkj/framework/config/MatchUtils.java
@@ -1,12 +1,12 @@
package com.ltkj.framework.config;
import cn.hutool.core.date.DateUtil;
import com.ltkj.common.utils.StringUtils;
import java.math.BigDecimal;
import java.util.Calendar;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@@ -248,7 +248,7 @@
    /**
     * @desc 通过身份证获取出生日期
     */
    public static String getBirthDayByIdCard(String idCard) throws Exception {
    public static Date getBirthDayByIdCard(String idCard) throws Exception {
        if (!isIdCard(idCard)) {
            throw new Exception("身份证不正确");
        }
@@ -258,7 +258,14 @@
        int year = Integer.parseInt(birth.substring(0, 4));
        int month = Integer.parseInt(birth.substring(4, 6));
        int day = Integer.parseInt(birth.substring(6, 8));
        return year + "-" + month + "-" + day;
        String sr= year + "-" + month + "-" + day;
        // 解析为 Date
        Date date = DateUtil.parse(sr, "yyyy-MM-dd");
        // 转换为 LocalDateTime
        LocalDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
        // 设置固定时分秒
        dateTime = dateTime.withHour(12).withMinute(34).withSecond(56);
        return Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant());
    }
    /**
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjDwGroupingMapper.java
@@ -88,7 +88,7 @@
    public int selectTjDwGroupingByDwDeptId(String dwDeptId);
    @Select("SELECT SUM(b.aa) cc FROM ( SELECT\n" +
    @Select("SELECT IFNULL(SUM(b.aa),0) cc FROM ( SELECT\n" +
            "            CASE WHEN ISNULL( b.sex )\n" +
            "            AND ISNULL( c.pro_name ) THEN 0\n" +
            "            WHEN !ISNULL( b.sex )\n" +