From c41f8c8a75c4475831e3c7e9cde7467d2fb39950 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 28 六月 2024 10:38:17 +0800 Subject: [PATCH] 提交一把 --- server/service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 88 +++++++++++++++++++++++++++++--------------- 1 files changed, 58 insertions(+), 30 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 8963283..a73ddc9 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 @@ -32,6 +32,7 @@ import lombok.extern.java.Log; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; +import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; @@ -311,6 +312,9 @@ " 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())){ + if(Objects.isNull(memberQueryDTO.getValidTime())){ + memberQueryDTO.setValidTime(new Date()); + } lambdaWrapper = new MPJLambdaWrapper<Member>() .select(Member::getId,Member::getName,Member::getIdcardNo) .selectAs(Worktype::getId,Member::getWorktypeId) @@ -333,29 +337,36 @@ .eq(InsuranceApply::getId,memberQueryDTO.getInsuranceApplyId()) .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()) +// .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.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(!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())); + } } } @@ -398,19 +409,19 @@ if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO ) { throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝涓嶆敮鎸佽鎿嶄綔"); } - if (DateUtil.compareDate(insuranceApply.getEndTime(),new Date()) >= Constants.ZERO ) { - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "淇濆崟宸茶繃淇濓紝涓嶆敮鎸佽鎿嶄綔"); - } - Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); 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){ //鏍¢獙鍙傛暟鏄惁鍚堟硶 - validReduceImportParam(model,idCardMap,dataList,index); + validReduceImportParam(model,idCardMap,index); index += 1; } index = Constants.TWO; @@ -419,8 +430,8 @@ .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) @@ -428,26 +439,42 @@ .eq(ApplyDetail::getApplyId,insuranceApply.getId()) .eq(ApplyDetail::getApplyId,insuranceApply.getId()) .eq(ApplyDetail::getIdcardNo,model.getIdCard()) - .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(new Date(),1)) + /* .le(ApplyDetail::getStartTime,DateUtil.getMontageDate(new Date(),1))*/ .ge(ApplyDetail::getEndTime,DateUtil.getMontageDate(new Date(),3))); if(detail == null){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍛樺伐銆�" + model.getName()+model.getIdCard() + "銆戦潪鍦ㄤ繚浜哄憳锛屽娉曡繘琛岃鎿嶄綔"); + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍛樺伐銆�" + model.getName()+model.getIdCard() + "銆戦潪鍦ㄤ繚浜哄憳锛屾棤娉曡繘琛岃鎿嶄綔"); + } + if(!StringUtils.equals(model.getName(), detail.getMemberName())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍛樺伐銆�" +model.getName()+ model.getIdCard() + "銆戜笌鍏剁櫥璁板湪淇濊褰曞鍚嶄笉涓�鑷达紝璇锋牳瀹炲~鍐欐纭啀鎿嶄綔"); + } + if(!Constants.equalsInteger(Constants.ZERO, detail.getChangeStatus())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍛樺伐銆�" +model.getName()+ model.getIdCard() + "銆戝凡杩涜杩囧噺淇濈敵璇凤紝涓嶈兘鍐嶆杩涜璇ユ搷浣�"); } 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; } - private void validReduceImportParam(MemberReduceImport model, Map<String, String> idCardMap, List<MemberReduceImport> dataList, int index) { + private void validReduceImportParam(MemberReduceImport model, Map<String, String> idCardMap, int index) { if(StringUtils.isBlank(model.getName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝绗�"+index+"琛屾暟鎹鍚嶄笉鑳戒负绌猴紒"); } @@ -495,7 +522,8 @@ List<DispatchUnit> dispatchUnitList = dispatchUnitJoinMapper.selectJoinList(DispatchUnit.class, new MPJLambdaWrapper<DispatchUnit>() .selectAll(DispatchUnit.class) - .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+solutionId+" limit 1) as du_solution_id" ) +// .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+solutionId+" limit 1) as du_solution_id" ) + .select("(select b.id from du_solution b where b.isdeleted=0 and b.dispatch_unit_id=t.id and b.solution_id="+solutionId+" order by b.CHECK_DATE desc limit 1) as du_solution_id" ) .eq(DispatchUnit::getIsdeleted,Constants.ZERO) .eq(DispatchUnit::getStatus,Constants.ZERO) .eq(DispatchUnit::getDataType,Constants.TWO) @@ -541,7 +569,7 @@ DispatchUnit dispatchUnit = dispatchUnitOptional.get(); model.setDuId(dispatchUnit.getId()); if(StringUtils.isNotBlank(model.getWorkTypeName())&&CollectionUtils.isNotEmpty(dispatchUnit.getWorktypeList())){ - Optional<Worktype> worktypeOptional= dispatchUnit.getWorktypeList().stream().filter(m->m.getName().equals(model.getWorkTypeName())).findFirst(); + Optional<Worktype> worktypeOptional= dispatchUnit.getWorktypeList().stream().filter(m->m.getName().replaceAll(" ","").equals(model.getWorkTypeName().replaceAll(" ",""))).findFirst(); if(worktypeOptional.isPresent()){ Worktype worktype = worktypeOptional.get(); model.setWorktypeId(worktype.getId()); -- Gitblit v1.9.3