| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import cn.hutool.core.util.IdcardUtil; |
| | | import com.doumee.core.annotation.excel.ExcelImporter; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.SolutionsMapper; |
| | | import com.doumee.dao.business.WorktypeMapper; |
| | | import com.doumee.dao.business.dto.MemberImport; |
| | | import com.doumee.dao.business.dto.MemberQueryDTO; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.web.multipart.MultipartFile; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | |
| | | @Autowired |
| | | private WorktypeMapper worktypeMapper; |
| | | |
| | | @Autowired |
| | | private SolutionsMapper solutionsMapper; |
| | | |
| | | @Override |
| | | public Integer create(Member member) { |
| | |
| | | // .eq(Member::getCompanyId, memberQueryDTO.getCompanyId()) |
| | | .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName()) |
| | | .like(StringUtils.isNotBlank(memberQueryDTO.getIdCard()),Member::getIdcardNo, memberQueryDTO.getIdCard()) |
| | | .like(StringUtils.isNotBlank(memberQueryDTO.getIdcardNo()),Member::getIdcardNo, memberQueryDTO.getIdcardNo()) |
| | | .like(StringUtils.isNotBlank(memberQueryDTO.getDuName()),DispatchUnit::getName, memberQueryDTO.getDuName()) |
| | | .eq(!Objects.isNull(memberQueryDTO.getDuId()),Member::getDuId, memberQueryDTO.getDuId()) |
| | | .eq(!Objects.isNull(memberQueryDTO.getSolutionsId()),Solutions::getBaseId, memberQueryDTO.getSolutionsId()) |
| | |
| | | " and ad.member_id = t.id ") ; |
| | | if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())){ |
| | | lambdaWrapper = new MPJLambdaWrapper<Member>() |
| | | .selectAll(Member.class) |
| | | .select(Member::getId,Member::getName,Member::getIdcardNo) |
| | | .selectAs(Worktype::getId,Member::getWorktypeId) |
| | | .selectAs(DispatchUnit::getId,Member::getDuId) |
| | | .selectAs(DispatchUnit::getName,Member::getDuName) |
| | | .selectAs(Worktype::getName,Member::getWorkTypeName) |
| | | .selectAs(Company::getName,Member::getCompanyName) |
| | | .selectAs(InsuranceApply::getStartTime,Member::getStartTime) |
| | | .selectAs(InsuranceApply::getFinalEndTime,Member::getEndTime) |
| | | .selectAs(InsuranceApply::getSolutionId,Member::getSolutionId) |
| | | .selectAs(ApplyDetail::getStartTime,Member::getDetailStartTime) |
| | | .selectAs(ApplyDetail::getEndTime,Member::getDetailEndTime) |
| | | .selectAs(ApplyDetail::getFee,Member::getFee) |
| | | .selectAs(InsuranceApply::getServerCost,Member::getDetailServerCost) |
| | | .leftJoin(ApplyDetail.class,ApplyDetail::getMemberId,Member::getId) |
| | | .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) |
| | | .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId) |
| | | .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId) |
| | | .eq(Member::getIsdeleted, Constants.ZERO) |
| | | .eq(InsuranceApply::getId,memberQueryDTO.getInsuranceApplyId()) |
| | | .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName()) |
| | | .le(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getStartTime,memberQueryDTO.getValidTime()) |
| | | .ge(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getEndTime,memberQueryDTO.getValidTime()) |
| | | .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()), |
| | |
| | | " and ad.member_id = t.id "); |
| | | } |
| | | List<Member> memberList = memberJoinMapper.selectJoinList(Member.class,lambdaWrapper); |
| | | if(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&Objects.isNull(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()); |
| | | 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())); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | | return memberList; |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<MemberImport> importBatch(MultipartFile file,Integer solutionId){ |
| | |
| | | ExcelImporter ie = null; |
| | | List<MemberImport> dataList =null; |
| | | try { |
| | | ie = new ExcelImporter(file,0,0); |
| | | ie = new ExcelImporter(file,1,0); |
| | | dataList = ie.getDataList(MemberImport.class,null); |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | if(StringUtils.isBlank(model.getIdCard())||model.getIdCard().length()!=18){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据身份证信息异常!"); |
| | | } |
| | | if(!IdcardUtil.isValidCard(model.getIdCard())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据身份证信息异常!"); |
| | | } |
| | | if(StringUtils.isBlank(model.getName())){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对不起,第"+index+"行数据姓名信息异常!"); |
| | | } |