| | |
| | | if(model.getApplyEndTime()== null || model.getStartTime().getTime()>model.getApplyEndTime().getTime() ){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请生效周期时间不符合要求,请确认后修改重试~"); |
| | | } |
| | | Solutions solutions = solutionsMapper.selectById(model.getSolutionId()); |
| | | if(Objects.isNull(solutions)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"未查询方案信息"); |
| | | } |
| | | //计算实际截止时间 |
| | | Date actEndTime = new Date(model.getApplyEndTime().getTime() + (insuranceApply.getStartTime().getTime() - model.getApplyStartTime().getTime())); |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | |
| | | for (ApplyDetail applyDetail:applyDetailList) { |
| | | |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | this.checkMemberSolution(applyDetail.getSolutionId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),update.getStartTime(),update.getEndTime()); |
| | | this.checkMemberSolution(solutions.getBaseId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),update.getStartTime() |
| | | ,update.getEndTime(),insuranceApply.getId()); |
| | | |
| | | MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId()); |
| | | memberInsurance.setRelationType(Constants.ZERO); |
| | |
| | | insuranceApply.setEndTime(countCyclePriceVO.getEndDate()); |
| | | insuranceApply.setFinalEndTime(countCyclePriceVO.getEndDate()); |
| | | insuranceApplyMapper.insert(insuranceApply); |
| | | |
| | | |
| | | //处理下级数据 |
| | | this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO,true); |
| | | InsuranceApply updBean = new InsuranceApply(); |
| | |
| | | addMemberList.add(member); |
| | | } |
| | | //查询人员信息是否存在相同的方案下是否存在 冲突数据 |
| | | this.checkMemberSolution(solutions.getId(),member.getIdcardNo(),member.getName(),insuranceApply.getStartTime(),insuranceApply.getEndTime()); |
| | | this.checkMemberSolution(solutions.getBaseId(),member.getIdcardNo(),member.getName(),insuranceApply.getStartTime(),insuranceApply.getEndTime(),insuranceApply.getId()); |
| | | } |
| | | if(CollectionUtils.isNotEmpty(addMemberList)){ |
| | | memberJoinMapper.insertBatchSomeColumn(addMemberList); |
| | |
| | | * @param endTime |
| | | */ |
| | | @Override |
| | | public void checkMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime){ |
| | | public void checkMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime,Integer applyId){ |
| | | List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>(); |
| | | try { |
| | | List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class, |
| | | applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class, |
| | | new MPJLambdaWrapper<ApplyDetail>() |
| | | .selectAll(ApplyDetail.class) |
| | | .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode) |
| | | .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) |
| | | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) |
| | | .eq(ApplyDetail::getIdcardNo,idCode) |
| | | .eq(InsuranceApply::getSolutionId,solutionId) |
| | | .notIn(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD |
| | | ,Constants.InsuranceApplyStatus.PLATFORM_RETURN |
| | | ,Constants.InsuranceApplyStatus.FAIL_RETURN |
| | | ,Constants.InsuranceApplyStatus.CLOSE |
| | | ,Constants.InsuranceApplyStatus.WTB_RETURN |
| | | ,Constants.InsuranceApplyStatus.WTB_CLOSED ) |
| | | .eq(Solutions::getBaseId,solutionId) |
| | | .ne(Objects.nonNull(applyId),InsuranceApply::getId,applyId) |
| | | .notIn(InsuranceApply::getStatus |
| | | ,Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey() |
| | | ,Constants.InsuranceApplyStatus.FAIL_RETURN.getKey() |
| | | ,Constants.InsuranceApplyStatus.CLOSE.getKey() |
| | | ,Constants.InsuranceApplyStatus.WTB_RETURN.getKey() |
| | | ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() ) |
| | | .apply(" ( " + |
| | | " '"+DateUtil.getPlusTime(startTime)+"' <= t.start_time AND t.start_time < '"+DateUtil.getPlusTime(endTime)+"' " + |
| | | " or " + |
| | |
| | | " or " + |
| | | " ( '"+DateUtil.getPlusTime(startTime)+"' > t.start_time AND '"+DateUtil.getPlusTime(endTime)+"' < t.end_time )" + |
| | | " ) " )); |
| | | if(applyDetailList.size() >Constants.ZERO){ |
| | | ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO); |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该用户【"+memberName+" "+idCode+"】在保单【"+applyDetail.getApplyCode()+"】下已存在与本次提报冲突的日期"); |
| | | }; |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | if(applyDetailList.size() >Constants.ZERO){ |
| | | ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO); |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该员工【"+memberName+" "+idCode+"】在该保险方案下已存在投保记录,无法进行该操作"); |
| | | }; |
| | | } |
| | | |
| | | public static void checkStaticMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime,Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){ |
| | | public static void checkStaticMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime, |
| | | Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){ |
| | | List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>(); |
| | | try { |
| | | List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class, |
| | | applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class, |
| | | new MPJLambdaWrapper<ApplyDetail>() |
| | | .selectAll(ApplyDetail.class) |
| | | .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode) |
| | | .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) |
| | | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) |
| | | .eq(ApplyDetail::getIdcardNo,idCode) |
| | | .eq(InsuranceApply::getSolutionId,solutionId) |
| | | .notIn(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD |
| | | ,Constants.InsuranceApplyStatus.PLATFORM_RETURN |
| | | ,Constants.InsuranceApplyStatus.FAIL_RETURN |
| | | ,Constants.InsuranceApplyStatus.CLOSE |
| | | ,Constants.InsuranceApplyStatus.WTB_RETURN |
| | | ,Constants.InsuranceApplyStatus.WTB_CLOSED ) |
| | | .eq(Solutions::getBaseId,solutionId) |
| | | .notIn(InsuranceApply::getStatus |
| | | ,Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey() |
| | | ,Constants.InsuranceApplyStatus.FAIL_RETURN.getKey() |
| | | ,Constants.InsuranceApplyStatus.CLOSE.getKey() |
| | | ,Constants.InsuranceApplyStatus.WTB_RETURN.getKey() |
| | | ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() ) |
| | | .apply(" ( " + |
| | | " '"+DateUtil.getPlusTime(startTime)+"' <= t.start_time AND t.start_time < '"+DateUtil.getPlusTime(endTime)+"' " + |
| | | " or " + |
| | |
| | | " or " + |
| | | " ( '"+DateUtil.getPlusTime(startTime)+"' > t.start_time AND '"+DateUtil.getPlusTime(endTime)+"' < t.end_time )" + |
| | | " ) " )); |
| | | if(applyDetailList.size() >Constants.ZERO){ |
| | | ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO); |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该用户【"+memberName+" "+idCode+"】在保单【"+applyDetail.getApplyCode()+"】下已存在与本次提报冲突的日期"); |
| | | }; |
| | | }catch (Exception e){ |
| | | |
| | | } |
| | | if(applyDetailList.size() >Constants.ZERO){ |
| | | ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO); |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"该员工【"+memberName+" "+idCode+"】在该保险方案下已存在投保记录,无法进行该操作"); |
| | | }; |
| | | } |
| | | |
| | | @Override |
| | |
| | | BigDecimal sumAmount = BigDecimal.ZERO; |
| | | List<ApplyDetail> applyDetailList = applyDetailMapper |
| | | .selectList(new QueryWrapper<ApplyDetail>().lambda() |
| | | .eq(ApplyDetail::getChangeStatus,Constants.ZERO) |
| | | .ne(ApplyDetail::getChangeStatus,Constants.TWO) |
| | | .eq(ApplyDetail::getApplyId,insuranceApply.getId())); |
| | | if(CollectionUtils.isNotEmpty(applyDetailList)){ |
| | | for (ApplyDetail applyDetail: applyDetailList) { |
| | |
| | | applyDetail.setCurrentFee(applyDetail.getFee()); |
| | | applyDetailMapper.updateById(applyDetail); |
| | | } |
| | | sumAmount = sumAmount.add(applyDetail.getCurrentFee()); |
| | | if(Constants.equalsInteger(applyDetail.getChangeStatus(),Constants.ZERO) || applyDetail.getEndTime().getTime()>System.currentTimeMillis()){ |
| | | sumAmount = sumAmount.add(applyDetail.getCurrentFee()); |
| | | } |
| | | } |
| | | } |
| | | insuranceApply.setCurrentFee(sumAmount); |
| | | insuranceApplyMapper.updateById(insuranceApply); |
| | | } |
| | | } |
| | | // if(1==1){ |
| | | // throw new BusinessException(ResponseStatus.NOT_ALLOWED); |
| | | // } |
| | | } |
| | | |
| | | |