111
k94314517
2024-01-26 c21d5551744f8f55aa44157c17985243670bec24
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -757,16 +757,24 @@
        IPage<InsuranceApply> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<InsuranceApply> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        List<Integer> statusList = Constants.InsuranceApplyStatus.getKesByStatus(pageWrap.getModel().getStatusCollect());
        queryWrapper.selectAll(InsuranceApply.class);
        queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName);
        queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName);
        queryWrapper.select(" DATEDIFF( t.END_TIME ,now()  ) AS loseEfficacyDays ");
        queryWrapper.select(" ( select count(1) from apply_detail ad  where ad.apply_id = t.id ) as insureNum");
        queryWrapper.select(" ( select sum(td.fee) from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ) as taxesMoney");
        queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on ts.TAX_ID = ts.id  where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast ");
        if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){
            queryWrapper.select(" ( 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 ) 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 != 2 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);
        queryWrapper.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId);
        queryWrapper.eq(InsuranceApply::getIsdeleted,Constants.ZERO);
        queryWrapper.in(statusList.size()>0,InsuranceApply::getStatus,statusList);
        if(Constants.equalsInteger(pageWrap.getModel().getStatusCollect(),Constants.THREE) ){
            queryWrapper.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
            queryWrapper.lt(InsuranceApply::getEndTime, Utils.Date.getStart(new Date()));
        }
        //企业人员查看本企业数据
        if(loginUserInfo.getType().equals(Constants.ONE)){
            queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
@@ -809,6 +817,17 @@
            }
        }
        PageData<InsuranceApply> pageData = PageData.from(insuranceApplyJoinMapper.selectJoinPage(page,InsuranceApply.class, queryWrapper));
        if(pageData.getRecords()!=null){
            for (InsuranceApply apply : pageData.getRecords()){
                apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus()));
                if(Constants.equalsInteger(apply.getStatusCollect(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
                    //如果已完成
                    if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){
                        apply.setStatusCollect(Constants.THREE);//已过期
                    }
                }
            }
        }
        return pageData;
    }