|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | member.setIdcardNo(applyDetail.getIdcardNo()); | 
|---|
|  |  |  | member.setApplyId(insuranceApply.getId()); | 
|---|
|  |  |  | member.setStartTime(applyDetail.getStartTime()); | 
|---|
|  |  |  | member.setEndTime(applyDetail.getEndTime()); | 
|---|
|  |  |  | //                    member.setStartTime(applyDetail.getStartTime()); | 
|---|
|  |  |  | //                    member.setEndTime(applyDetail.getEndTime()); | 
|---|
|  |  |  | member.setDuId(applyDetail.getDuId()); | 
|---|
|  |  |  | member.setWorktypeId(applyDetail.getWorktypeId()); | 
|---|
|  |  |  | addMemberList.add(member); | 
|---|
|  |  |  | 
|---|
|  |  |  | applyDetail.setEndTime(insuranceApply.getApplyEndTime()); | 
|---|
|  |  |  | applyDetail.setSortnum(i); | 
|---|
|  |  |  | applyDetail.setApplyId(insuranceApply.getId()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //根据员工身份证进行判断年龄 | 
|---|
|  |  |  | long age = Constants.getAgeByIdCard(applyDetail.getIdcardNo()); | 
|---|
|  |  |  | if(Objects.isNull(age) | 
|---|
|  |  |  | || age > solutions.getMaxAge() | 
|---|
|  |  |  | || age < solutions.getMinAge()){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+applyDetail.getMemberName()+"】员工年龄超出方案配置,方案配置【"+solutions.getMinAge()+" - "+solutions.getMaxAge()+"】!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Member member = null; | 
|---|
|  |  |  | if(Objects.isNull(applyDetail.getMemberId())){ | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(memberList)){ | 
|---|
|  |  |  | 
|---|
|  |  |  | member.setApplyId(insuranceApply.getId()); | 
|---|
|  |  |  | member.setDuId(applyDetail.getDuId()); | 
|---|
|  |  |  | member.setWorktypeId(applyDetail.getWorktypeId()); | 
|---|
|  |  |  | member.setStartTime(applyDetail.getStartTime()); | 
|---|
|  |  |  | member.setEndTime(applyDetail.getEndTime()); | 
|---|
|  |  |  | //                        member.setStartTime(applyDetail.getStartTime()); | 
|---|
|  |  |  | //                        member.setEndTime(applyDetail.getEndTime()); | 
|---|
|  |  |  | memberMapper.updateById(member); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | 
|---|
|  |  |  | member.setApplyId(insuranceApply.getId()); | 
|---|
|  |  |  | member.setDuId(applyDetail.getDuId()); | 
|---|
|  |  |  | member.setWorktypeId(applyDetail.getWorktypeId()); | 
|---|
|  |  |  | member.setStartTime(applyDetail.getStartTime()); | 
|---|
|  |  |  | member.setEndTime(applyDetail.getEndTime()); | 
|---|
|  |  |  | //                    member.setStartTime(applyDetail.getStartTime()); | 
|---|
|  |  |  | //                    member.setEndTime(applyDetail.getEndTime()); | 
|---|
|  |  |  | memberMapper.updateById(member); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //根据员工身份证进行判断年龄 | 
|---|
|  |  |  | long age = Constants.getAgeByIdCard(member.getIdcardNo()); | 
|---|
|  |  |  | if(Objects.isNull(age) | 
|---|
|  |  |  | || age > solutions.getMaxAge() | 
|---|
|  |  |  | || age < solutions.getMinAge()){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"【"+applyDetail.getMemberName()+"】员工年龄超出方案配置,方案配置【"+solutions.getMinAge()+" - "+solutions.getMaxAge()+"】!"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | applyDetail.setMemberId(member.getId()); | 
|---|
|  |  |  | applyDetail.setIdcardNo(member.getIdcardNo()); | 
|---|
|  |  |  | applyDetail.setSex(member.getSex()); | 
|---|
|  |  |  | 
|---|
|  |  |  | .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) | 
|---|
|  |  |  | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) | 
|---|
|  |  |  | .eq(ApplyDetail::getIdcardNo,idCode) | 
|---|
|  |  |  | .eq(ApplyDetail::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(Solutions::getBaseId,solutionId) | 
|---|
|  |  |  | .ne(Objects.nonNull(applyId),InsuranceApply::getId,applyId) | 
|---|
|  |  |  | .notIn(InsuranceApply::getStatus | 
|---|
|  |  |  | 
|---|
|  |  |  | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) | 
|---|
|  |  |  | .eq(ApplyDetail::getIdcardNo,idCode) | 
|---|
|  |  |  | .eq(Solutions::getBaseId,solutionId) | 
|---|
|  |  |  | .eq(ApplyDetail::getIsdeleted,Constants.ZERO) | 
|---|
|  |  |  | .notIn(InsuranceApply::getStatus | 
|---|
|  |  |  | ,Constants.InsuranceApplyStatus.CLOSE.getKey() | 
|---|
|  |  |  | ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() ) | 
|---|
|  |  |  | 
|---|
|  |  |  | .selectAs(Solutions::getType,InsuranceApply::getSolutionType) | 
|---|
|  |  |  | .selectAs(Company::getName,InsuranceApply::getCompanyName) | 
|---|
|  |  |  | .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum") | 
|---|
|  |  |  | .select(" isnull(( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad inner join insurance_apply a on ad.apply_id = a.id  and a.status in ( 5 , 27 )  where ad.apply_id = t.id and ad.END_TIME > now() ),0) as guaranteeNum") | 
|---|
|  |  |  | .select(" ifnull(( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad inner join insurance_apply a on ad.apply_id = a.id  and a.status in ( 5 , 27 )  where ad.apply_id = t.id and ad.END_TIME > now() ),0) as guaranteeNum") | 
|---|
|  |  |  | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) | 
|---|
|  |  |  | .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) | 
|---|
|  |  |  | .eq(InsuranceApply::getId,model.getId()) | 
|---|