From 2fe8bdc756dca24e7b62b99423b64c9b674faa9d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期五, 07 六月 2024 17:33:58 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 47 insertions(+), 4 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java index 1bda1ec..fc48ad9 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java @@ -1,5 +1,6 @@ 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; @@ -10,6 +11,7 @@ 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; @@ -31,6 +33,7 @@ import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -53,6 +56,9 @@ @Autowired private WorktypeMapper worktypeMapper; + + @Autowired + private SolutionsMapper solutionsMapper; @Override public Integer create(Member member) { @@ -238,6 +244,7 @@ // .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()) @@ -285,36 +292,69 @@ .leftJoin(Worktype.class,Worktype::getId,Member::getWorktypeId) .leftJoin(Company.class,Company::getId,Member::getCompanyId) .notIn(CollectionUtils.isNotEmpty(memberQueryDTO.getMemberIds()),Member::getId,memberQueryDTO.getMemberIds()) + .in(CollectionUtils.isNotEmpty(memberQueryDTO.getSubtractMemberIds()),Member::getId,memberQueryDTO.getSubtractMemberIds()) .eq(!Objects.isNull(memberQueryDTO.getCompanyId()),Member::getCompanyId,memberQueryDTO.getCompanyId()) .eq(Member::getIsdeleted, Constants.ZERO) .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.ONE),"now() between t.start_time and t.end_time") .apply(!Objects.isNull(memberQueryDTO.getSolutionsStatus())&&memberQueryDTO.getSolutionsStatus().equals(Constants.TWO),"now() > t.end_time") - .like(StringUtils.isNotBlank(memberQueryDTO.getName()),Member::getName, memberQueryDTO.getName()) + .and(StringUtils.isNotBlank(memberQueryDTO.getName()),i->i.like(Member::getName,memberQueryDTO.getName()) + .or().like(Member::getIdcardNo,memberQueryDTO.getName())) .notExists(!Objects.isNull(memberQueryDTO.getNotInInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()), " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getNotInInsuranceApplyId()+"" + " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " + " 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()) + .and(StringUtils.isNotBlank(memberQueryDTO.getName()),i->i.like(Member::getName,memberQueryDTO.getName()) + .or().like(Member::getIdcardNo,memberQueryDTO.getName())) .le(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getStartTime,memberQueryDTO.getValidTime()) .ge(!Objects.isNull(memberQueryDTO.getValidTime()),ApplyDetail::getEndTime,memberQueryDTO.getValidTime()) + .in(CollectionUtils.isNotEmpty(memberQueryDTO.getSubtractMemberIds()),Member::getId,memberQueryDTO.getSubtractMemberIds()) .exists(!Objects.isNull(memberQueryDTO.getInsuranceApplyId())&&!Objects.isNull(memberQueryDTO.getValidTime()), " select 1 from apply_detail ad where ad.apply_id = "+memberQueryDTO.getInsuranceApplyId()+"" + " and ad.END_TIME >= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.START_TIME <= '"+DateUtil.DateToStr(memberQueryDTO.getValidTime(),"yyyy-MM-dd HH:mm:ss.SSS")+"' and ad.isdeleted = 0 " + " 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; } @@ -337,7 +377,7 @@ 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(); @@ -380,6 +420,9 @@ 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+"琛屾暟鎹鍚嶄俊鎭紓甯革紒"); } -- Gitblit v1.9.3