|  |  |  | 
|---|
|  |  |  | " and ad.member_id = t.id "); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,lambdaWrapper); | 
|---|
|  |  |  | if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&Objects.isNull(memberQueryDTO.getValidTime())){ | 
|---|
|  |  |  | if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&Objects.nonNull(memberQueryDTO.getValidTime())){ | 
|---|
|  |  |  | if(CollectionUtils.isNotEmpty(memberList)){ | 
|---|
|  |  |  | Solutions solutions = solutionsMapper.selectById(memberList.get(Constants.ZERO).getSolutionId()); | 
|---|
|  |  |  | Date  reduceEndTime = DateUtil.getMontageDate( | 
|---|
|  |  |  | DateUtil.afterDateByType(new Date(),0,solutions.getDelValidDays()),3); | 
|---|
|  |  |  | memberList = memberList.stream().filter(member->member.getDetailStartTime().getTime()<=reduceEndTime.getTime() | 
|---|
|  |  |  | &&member.getDetailEndTime().getTime()>=reduceEndTime.getTime()).collect(Collectors.toList()); | 
|---|
|  |  |  | //                Date  reduceEndTime = DateUtil.getMontageDate( | 
|---|
|  |  |  | //                        DateUtil.afterDateByType(new Date(),0,solutions.getDelValidDays()),3); | 
|---|
|  |  |  | //                Date  reduceEndTime = DateUtil.getMontageDate(new Date(),3); | 
|---|
|  |  |  | for (Member member:memberList) { | 
|---|
|  |  |  | //减保业务 使用 选择人员 根据日期实时查询 | 
|---|
|  |  |  | member.setFee( | 
|---|
|  |  |  | Constants.reduceFee(solutions, | 
|---|
|  |  |  | Objects.isNull(member.getDetailServerCost())? | 
|---|
|  |  |  | solutions.getPrice():solutions.getPrice().add(member.getDetailServerCost()),member.getStartTime(),member.getEndTime(),member.getDetailStartTime(), | 
|---|
|  |  |  | reduceEndTime).subtract(member.getFee())); | 
|---|
|  |  |  | //如果当前日期 小于 人员保单明细记录的开始时间 则使用开始日期  开始日期 = 结束日期  且 费用全部退回 | 
|---|
|  |  |  | if(System.currentTimeMillis()<=member.getStartTime().getTime()){ | 
|---|
|  |  |  | member.setFee(solutions.getPrice().multiply(new BigDecimal(-1))); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | Date  reduceEndTime = DateUtil.getMontageDate( | 
|---|
|  |  |  | DateUtil.afterDateByType(new Date(),0,solutions.getDelValidDays()),3); | 
|---|
|  |  |  | member.setFee( | 
|---|
|  |  |  | Constants.reduceFee(solutions, | 
|---|
|  |  |  | Objects.isNull(member.getDetailServerCost())? | 
|---|
|  |  |  | solutions.getPrice():solutions.getPrice().add(member.getDetailServerCost()),member.getStartTime(),member.getEndTime(),member.getDetailStartTime(), | 
|---|
|  |  |  | reduceEndTime).subtract(member.getFee())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if(Objects.isNull(solutions)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询到保险方案"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        Date  reduceEndTime = DateUtil.getMontageDate( | 
|---|
|  |  |  | //                DateUtil.afterDateByType(new Date(),0,solutions.getDelValidDays()),3); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //        Date  reduceEndTime = DateUtil.getMontageDate(new Date(),3); | 
|---|
|  |  |  | int index = Constants.TWO; | 
|---|
|  |  |  | Map<String,String> idCardMap = new HashMap<>(); | 
|---|
|  |  |  | for(MemberReduceImport model : dataList){ | 
|---|
|  |  |  | 
|---|
|  |  |  | .selectAll(ApplyDetail.class) | 
|---|
|  |  |  | .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName) | 
|---|
|  |  |  | .selectAs(DispatchUnit::getName,ApplyDetail::getDuName) | 
|---|
|  |  |  | .selectAs(InsuranceApply::getStartTime,ApplyDetail::getStartTime) | 
|---|
|  |  |  | .selectAs(InsuranceApply::getFinalEndTime,ApplyDetail::getEndTime) | 
|---|
|  |  |  | //                            .selectAs(InsuranceApply::getStartTime,ApplyDetail::getStartTime) | 
|---|
|  |  |  | //                            .selectAs(InsuranceApply::getEndTime,ApplyDetail::getEndTime) | 
|---|
|  |  |  | .selectAs(InsuranceApply::getServerCost,ApplyDetail::getDetailServerCost) | 
|---|
|  |  |  | .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId) | 
|---|
|  |  |  | .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId) | 
|---|
|  |  |  | 
|---|
|  |  |  | model.setDuId(detail.getDuId()); | 
|---|
|  |  |  | model.setDuName(detail.getDuName()); | 
|---|
|  |  |  | model.setWorktypeId(detail.getWorktypeId()); | 
|---|
|  |  |  | model.setMemberId(detail.getMemberId()); | 
|---|
|  |  |  | model.setWorkTypeName(detail.getWorkTypeName()); | 
|---|
|  |  |  | model.setFee( | 
|---|
|  |  |  | Constants.reduceFee(solutions, | 
|---|
|  |  |  | Objects.isNull(detail.getDetailServerCost())? | 
|---|
|  |  |  | solutions.getPrice():solutions.getPrice().add(detail.getDetailServerCost()),detail.getParentStartTime(),detail.getParentEndTime(),detail.getStartTime(), | 
|---|
|  |  |  | detail.getEndTime()).subtract(detail.getFee())); | 
|---|
|  |  |  | //如果当前日期 小于 人员保单明细记录的开始时间 则使用开始日期  开始日期 = 结束日期  且 费用全部退回 | 
|---|
|  |  |  | if(System.currentTimeMillis()<=detail.getStartTime().getTime()){ | 
|---|
|  |  |  | model.setFee(solutions.getPrice().multiply(new BigDecimal(-1))); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | Date  reduceEndTime = DateUtil.getMontageDate( | 
|---|
|  |  |  | DateUtil.afterDateByType(new Date(),0,solutions.getDelValidDays()),3); | 
|---|
|  |  |  | model.setFee( | 
|---|
|  |  |  | Constants.reduceFee(solutions, | 
|---|
|  |  |  | Objects.isNull(detail.getDetailServerCost())?solutions.getPrice():solutions.getPrice().add(detail.getDetailServerCost()), | 
|---|
|  |  |  | insuranceApply.getStartTime(), | 
|---|
|  |  |  | insuranceApply.getEndTime(), | 
|---|
|  |  |  | detail.getStartTime(), | 
|---|
|  |  |  | reduceEndTime).subtract(detail.getFee())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | index += 1; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return dataList; | 
|---|
|  |  |  | 
|---|
|  |  |  | //检查派遣单位和工种有效性 | 
|---|
|  |  |  | dealDuAndWorktype(model,index,dispatchUnitList); | 
|---|
|  |  |  | index += 1; | 
|---|
|  |  |  | model.setSex(Constants.getSexByIdCard(model.getIdCard())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return dataList; | 
|---|
|  |  |  | } | 
|---|