zjh
2024-12-03 06ef175a1e9f72b3863757319b2f6ff76c5a2f05
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjReservationController.java
@@ -15,6 +15,7 @@
import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.druid.sql.visitor.functions.Isnull;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -40,10 +41,12 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
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.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.*;
import com.ltkj.common.core.controller.BaseController;
import com.ltkj.common.core.domain.AjaxResult;
@@ -60,6 +63,7 @@
@RestController
@RequestMapping("/reservation/reservation")
@Api(tags = "体检预约管理接口")
@Slf4j
public class TjReservationController extends BaseController {
    @Resource
    private ITjReservationService tjReservationService;
@@ -85,12 +89,8 @@
    private ITjGroupingProService groupingProService;
    @Resource
    private TjAsyncService asyncService;
//    @Resource
//    private OrderDelayService delayService;
    @Autowired
    private TaskService taskService;
    @Resource
    private ITjReportTemplateService reportTemplateService;
    @Autowired
    private ISysDictDataService dictDataService;
    @Autowired
@@ -155,7 +155,6 @@
            }
        }
    }
    /**
@@ -261,10 +260,13 @@
            String idCard = tjReservation.getIdCard();
            String phoe = tjReservation.getPhoe();
            if (null != idCard && null != phoe) {
//                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) {
//                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe));
                if (idCard.isEmpty() || phoe.isEmpty()) {
                    wrongList.add(tjReservation.getName());
                } else {
                    String str = MatchUtils.translateToPlainStr(tjReservation.getPhoe());
                    tjReservation.setPhoe(str);
                    //年龄
                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
                    //出生日期
@@ -276,9 +278,11 @@
                        tjReservation.setGroupingName(groupingMan.getGroupingName());
                        tjReservation.setYsPrice(groupingMan.getYsPrice());
                        //合计
                        hjMoney = hjMoney.add(groupingMan.getYsPrice()); count+=1;
                        hjMoney = hjMoney.add(groupingMan.getYsPrice());
                        count += 1;
                        //男组人数
                        manMoney=manMoney.add(groupingMan.getYsPrice()); manCount+=1;
                        manMoney = manMoney.add(groupingMan.getYsPrice());
                        manCount += 1;
                    } else if (null != groupingWoMan && groupingWoMan.getSex().equals(String.valueOf(tjReservation.getSex()))) {
@@ -286,8 +290,10 @@
                        tjReservation.setGroupingName(groupingWoMan.getGroupingName());
                        tjReservation.setYsPrice(groupingWoMan.getYsPrice());
                        //合计
                        hjMoney = hjMoney.add(groupingWoMan.getYsPrice()); count+=1;
                        woManMoney=woManMoney.add(groupingWoMan.getYsPrice());woManCount+=1;
                        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()))) {
@@ -295,7 +301,8 @@
                        tjReservation.setGroupingName(groupingWz.getGroupingName());
                        tjReservation.setYsPrice(groupingWz.getYsPrice());
                        //合计
                        hjMoney = hjMoney.add(groupingWz.getYsPrice()); count+=1;
                        hjMoney = hjMoney.add(groupingWz.getYsPrice());
                        count += 1;
                    }
@@ -372,6 +379,10 @@
        } catch (Exception e) {
            return AjaxResult.error("分组信息有误请重新分组!");
        }
        String sfjysfzh = configService.selectConfigByKey("sfjysfzh");
        String sfjysjh = configService.selectConfigByKey("sfjysjh");
        //计算合计
        BigDecimal hjMoney = new BigDecimal("0.00");
        //男组金额
@@ -381,14 +392,34 @@
        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();
            if (null != idCard && null != phoe) {
//                if (!MatchUtils.isIdCard(idCard) || !MatchUtils.isMobileNO(phoe)) {
                if (idCard.isEmpty() || phoe.isEmpty() || null==tjReservation.getDwxm()) {
                  idCard= idCard.replaceAll("[',,;.。 ‘“]","");
            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()+" 重复,请核对后上传!");
                }
                ids.add(tjReservation.getIdCard());
//                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 {
                        tjReservation.setPhoe(phoe);
                    //年龄
                    tjReservation.setAge(String.valueOf(MatchUtils.getAgeByIdCard(tjReservation.getIdCard())));
                    //出生日期
@@ -402,9 +433,11 @@
                                tjReservation.setGroupingName(groupingMan.getGroupingName());
                                tjReservation.setYsPrice(groupingMan.getYsPrice());
                                //合计
                                hjMoney = hjMoney.add(groupingMan.getYsPrice()); count+=1;
                                    hjMoney = hjMoney.add(groupingMan.getYsPrice());
                                    count += 1;
                                //男组人数
                                manMoney=manMoney.add(groupingMan.getYsPrice()); manCount+=1;
                                    manMoney = manMoney.add(groupingMan.getYsPrice());
                                    manCount += 1;
                            }
                        }
@@ -414,8 +447,10 @@
                                tjReservation.setGroupingName(groupingWoMan.getGroupingName());
                                tjReservation.setYsPrice(groupingWoMan.getYsPrice());
                                //合计
                                hjMoney = hjMoney.add(groupingWoMan.getYsPrice()); count+=1;
                                woManMoney=woManMoney.add(groupingWoMan.getYsPrice());woManCount+=1;
                                    hjMoney = hjMoney.add(groupingWoMan.getYsPrice());
                                    count += 1;
                                    woManMoney = woManMoney.add(groupingWoMan.getYsPrice());
                                    woManCount += 1;
                            }
                        }
                        for (TjDwGrouping groupingWz : groupingWzs) {
@@ -424,12 +459,15 @@
                                tjReservation.setGroupingName(groupingWz.getGroupingName());
                                tjReservation.setYsPrice(groupingWz.getYsPrice());
                                //合计
                                hjMoney = hjMoney.add(groupingWz.getYsPrice());count+=1;
                                    hjMoney = hjMoney.add(groupingWz.getYsPrice());
                                    count += 1;
                                if(tjReservation.getSex()==0){
                                    manMoney=manMoney.add(groupingWz.getYsPrice()); manCount+=1;
                                        manMoney = manMoney.add(groupingWz.getYsPrice());
                                        manCount += 1;
                                }
                                if(tjReservation.getSex()==1){
                                    woManMoney=woManMoney.add(groupingWz.getYsPrice());woManCount+=1;
                                        woManMoney = woManMoney.add(groupingWz.getYsPrice());
                                        woManCount += 1;
                                }
                            }
@@ -445,8 +483,78 @@
                    }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());
//                    }
//                }
            } else {
                wrongList.add(tjReservation.getName());
            }
@@ -795,7 +903,17 @@
        JSONObject parseObj = JSONUtil.parseObj(payTypeGlTjType);
        if (null != rightList && !rightList.isEmpty()) {
            List<String> ids=new ArrayList<>();
            for (TjReservation reservation : rightList) {
                if(!ids.isEmpty() && ids.contains(reservation.getIdCard())){
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    return AjaxResult.error("此身份证号: "+reservation.getIdCard()+" 重复,请核对后上传!");
                }
                ids.add(reservation.getIdCard());
                TjDwGrouping dwGrouping = dwGroupingService.getById(reservation.getGroupingId());
@@ -860,6 +978,8 @@
                compPayService.save(tjCompPay);
            }
//            .filter(a-> null != a.getPacId())
            Map<String, List<TjReservation>> collect = rightList.stream().collect(Collectors.groupingBy(TjReservation::getPacId));
            if(!collect.isEmpty()){