nidapeng
2024-04-09 3fee8832ca52667b26f702255677d62775ce5cd6
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -1532,6 +1532,18 @@
        if(!(solutions.getIsdeleted().equals(Constants.ZERO)||solutions.getStatus().equals(Constants.ZERO))){
            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"方案信息已被禁用");
        }
        if(solutions.getValidType().equals(Constants.ZERO)){
            if(DateUtil.getMontageDate(
                    DateUtil.addDaysToDate(new Date(),solutions.getValidTypeNum()),1).getTime()
                    >insuranceApply.getApplyStartTime().getTime()){
                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"保单生效起期错误");
            }
        }else{
            if(DateUtil.getNextMonthFirst(new Date()).getTime()>insuranceApply.getApplyStartTime().getTime()){
                throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"保单生效起期错误");
            }
        }
        List<ApplyDetail> applyDetailList = insuranceApply.getApplyDetailList();
        //判断是否存在重复信息
        List<String> idCardList = applyDetailList.stream().map(i->i.getIdcardNo()).collect(Collectors.toList());
@@ -1872,17 +1884,17 @@
            return  new ArrayList<>();
        }
        List<Integer> statusList = Constants.InsuranceApplyStatus.getKesByStatus(collectStatus);
        if(collectStatus.equals(Constants.ApplyCollectStatus.DCD)){
        if(collectStatus.equals(Constants.ApplyCollectStatus.DCD.getKey())){
            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBDCD.getKey()));
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.DSP)){
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.DSP.getKey())){
            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBDSH.getKey()));
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.BZZ)){
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.BZZ.getKey())){
            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBBZZ.getKey()));
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.YTH)){
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.YTH.getKey())){
            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBYTH.getKey()));
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.YGB)){
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.YGB.getKey())){
            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBYGB.getKey()));
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.DQYQZ)){
        }else if(collectStatus.equals(Constants.ApplyCollectStatus.DQYQZ.getKey())){
            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBDQS.getKey()));
        }
@@ -1908,7 +1920,7 @@
        queryWrapper.select(" DATEDIFF( t.END_TIME ,now()  ) AS loseEfficacyDays  ");
        queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum");
        if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){
            queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status  = 1 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney");
            queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney");
            queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id  where ts.status = 1 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast ");
        }
        queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
@@ -1917,9 +1929,14 @@
        queryWrapper.eq(pageWrap.getModel().getBaseSolutionId()!=null,Solutions::getBaseId,pageWrap.getModel().getBaseSolutionId());
        queryWrapper.in(statusList.size()>0,InsuranceApply::getStatus,statusList);
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getSolutionName()),Solutions::getName,pageWrap.getModel().getSolutionName());
        if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.THREE) ){
            queryWrapper.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
        if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.ApplyCollectStatus.YGQ.getKey()) ){
            //如果是已過期
//            queryWrapper.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
            queryWrapper.lt(InsuranceApply::getEndTime, Utils.Date.getStart(new Date()));
        }else if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.ApplyCollectStatus.BZZ.getKey()) ){
            //如果是保障中
//            queryWrapper.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
            queryWrapper.gt(InsuranceApply::getEndTime, Utils.Date.getStart(new Date()));
        }
        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -1928,12 +1945,12 @@
            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
        }else if(loginUserInfo.getType().equals(Constants.TWO)){
            //如果是商户查看
            if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==0){
                queryWrapper.exists("select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t.company_id and cs.shop_id="+loginUserInfo.getCompanyId());
            if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType().equals(0)){
                queryWrapper.exists("select cs.id from company_solution cs left join solutions s on cs.solution_id=s.id where cs.isdeleted=0 and s.base_id=t1.base_id and cs.shop_id="+loginUserInfo.getCompanyId());
            }else if(pageWrap.getModel().getSolutionType()!=null && pageWrap.getModel().getSolutionType() ==1){
                queryWrapper.eq(Solutions::getShopId,loginUserInfo.getCompanyId());
            }else{
                queryWrapper.apply("((t1.type=0 and exists(select cs.id from company_solution cs where cs.isdeleted=0 and cs.company_id=t.company_id and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" +
                queryWrapper.apply("((t1.type=0 and exists(select cs.id from company_solution cs left join solutions s on cs.solution_id=s.id where cs.isdeleted=0 and s.base_id=t1.base_id and cs.shop_id="+loginUserInfo.getCompanyId()+")) or (" +
                        "t1.type=1 and t1.shop_id="+loginUserInfo.getCompanyId()+"))") ;
            }
        }else{
@@ -2289,6 +2306,7 @@
        MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<InsuranceApply>()
                .selectAll(InsuranceApply.class)
                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
                .selectAs(Solutions::getType,InsuranceApply::getSolutionType)
                .selectAs(Company::getName,InsuranceApply::getCompanyName)
                .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
@@ -2446,7 +2464,8 @@
        MPJLambdaWrapper<ApplyDetail> lambdaWrapper = new MPJLambdaWrapper<ApplyDetail>();
        lambdaWrapper.select(ApplyDetail::getId)
                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
                .and(i->i.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()).or().eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey()))
                .and(i->i.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
                        .or().eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey()))
                .eq(InsuranceApply::getCompanyId,loginUserInfo.getCompanyId())
                .apply(" now() between t.START_TIME and t.END_TIME ");