| | |
| | | package com.doumee.service.business.impl; |
| | | |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Constants; |
| | | import com.doumee.core.utils.DateUtil; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.ApplyDetailMapper; |
| | | import com.doumee.dao.business.model.ApplyDetail; |
| | | import com.doumee.dao.business.dto.ApplyDetailPageDTO; |
| | | import com.doumee.dao.business.join.ApplyDetailJoinMapper; |
| | | import com.doumee.dao.business.model.*; |
| | | import com.doumee.service.business.ApplyDetailService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Objects; |
| | | |
| | | /** |
| | | * 投保申请明细信息表Service实现 |
| | | * @author 江蹄蹄 |
| | | * @date 2024/01/15 15:07 |
| | | * @date 2024/01/16 10:03 |
| | | */ |
| | | @Service |
| | | public class ApplyDetailServiceImpl implements ApplyDetailService { |
| | | |
| | | @Autowired |
| | | private ApplyDetailMapper applyDetailMapper; |
| | | |
| | | @Autowired |
| | | private ApplyDetailJoinMapper applyDetailJoinMapper; |
| | | |
| | | @Override |
| | | public Integer create(ApplyDetail applyDetail) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<ApplyDetail> findList(ApplyDetail applyDetail) { |
| | | QueryWrapper<ApplyDetail> wrapper = new QueryWrapper<>(applyDetail); |
| | | return applyDetailMapper.selectList(wrapper); |
| | | public List<ApplyDetail> findList(ApplyDetail applyDetailPageDTO) { |
| | | if(applyDetailPageDTO.getApplyId()==null && applyDetailPageDTO.getUnionApplyId() ==null){ |
| | | return new ArrayList<>(); |
| | | } |
| | | MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(applyDetailPageDTO); |
| | | queryWrapper.selectAll(ApplyDetail.class); |
| | | queryWrapper.selectAs(DispatchUnit::getName,ApplyDetail::getDuName); |
| | | queryWrapper.selectAs(Company::getName,ApplyDetail::getCompanyName); |
| | | queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName); |
| | | queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo); |
| | | queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName); |
| | | queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId); |
| | | queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); |
| | | queryWrapper.eq( applyDetailPageDTO.getApplyId()!=null,ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId()); |
| | | queryWrapper.eq( applyDetailPageDTO.getUnionApplyId()!=null,ApplyDetail::getUnionApplyId,applyDetailPageDTO.getUnionApplyId()); |
| | | queryWrapper.ge(Objects.nonNull(applyDetailPageDTO.getIsExcel())&&Constants.equalsInteger(applyDetailPageDTO.getIsExcel(),Constants.ONE), |
| | | ApplyDetail::getEndTime,DateUtil.getPlusTime2(new Date())); |
| | | List<ApplyDetail> pageData= applyDetailJoinMapper.selectJoinList( ApplyDetail.class, queryWrapper); |
| | | if(pageData!=null){ |
| | | int num = 1; |
| | | for (ApplyDetail d : pageData){ |
| | | d.setSortnum(num++); |
| | | } |
| | | } |
| | | return pageData; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public PageData<ApplyDetail> findPage(PageWrap<ApplyDetail> pageWrap) { |
| | | IPage<ApplyDetail> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | |
| | | if (pageWrap.getModel().getStartTime() != null) { |
| | | queryWrapper.lambda().eq(ApplyDetail::getStartTime, pageWrap.getModel().getStartTime()); |
| | | } |
| | | if (pageWrap.getModel().getIdcardNo() != null) { |
| | | queryWrapper.lambda().ge(ApplyDetail::getIdcardNo, Utils.Date.getStart(pageWrap.getModel().getIdcardNo())); |
| | | queryWrapper.lambda().le(ApplyDetail::getIdcardNo, Utils.Date.getEnd(pageWrap.getModel().getIdcardNo())); |
| | | } |
| | | if (pageWrap.getModel().getDuId() != null) { |
| | | queryWrapper.lambda().eq(ApplyDetail::getDuId, pageWrap.getModel().getDuId()); |
| | | } |
| | |
| | | return PageData.from(applyDetailMapper.selectPage(page, queryWrapper)); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public PageData<ApplyDetail> findPageForCompany(PageWrap<ApplyDetailPageDTO> pageWrap) { |
| | | IPage<ApplyDetail> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | if(pageWrap.getModel().getApplyId() == null && pageWrap.getModel().getUnionApplyId() == null){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | queryWrapper.selectAll(ApplyDetail.class); |
| | | queryWrapper.selectAs(DispatchUnit::getName,ApplyDetail::getDuName); |
| | | queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName); |
| | | queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo); |
| | | queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName); |
| | | queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName); |
| | | queryWrapper.selectAs(Solutions::getType,ApplyDetail::getSolutionType); |
| | | queryWrapper.selectAs(Company::getName,ApplyDetail::getCompanyName); |
| | | queryWrapper.selectAs(InsuranceApply::getStatus,ApplyDetail::getStatus); |
| | | queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId); |
| | | queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId); |
| | | queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId); |
| | | queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId); |
| | | queryWrapper.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId); |
| | | queryWrapper.eq(ApplyDetail::getIsdeleted,Constants.ZERO); |
| | | |
| | | ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel(); |
| | | |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId()); |
| | | |
| | | //在保 |
| | | if(!Objects.isNull(applyDetailPageDTO.getApplyStatus()) |
| | | &&applyDetailPageDTO.getApplyStatus().equals(Constants.ONE)){ |
| | | queryWrapper.apply(" now() <= t.END_TIME and now() >= t.START_TIME "); |
| | | queryWrapper.in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()); |
| | | } |
| | | //不在保 |
| | | if(!Objects.isNull(applyDetailPageDTO.getApplyStatus()) |
| | | &&applyDetailPageDTO.getApplyStatus().equals(Constants.TWO)){ |
| | | queryWrapper.apply("now() > t.END_TIME "); |
| | | queryWrapper.in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()); |
| | | } |
| | | //待生效 |
| | | if(!Objects.isNull(applyDetailPageDTO.getApplyStatus()) |
| | | &&applyDetailPageDTO.getApplyStatus().equals(Constants.THREE)){ |
| | | queryWrapper.apply("now() < t.START_TIME "); |
| | | queryWrapper.in(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()); |
| | | } |
| | | |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getDuId()),ApplyDetail::getDuId,applyDetailPageDTO.getDuId()); |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getWorkTypeId()),ApplyDetail::getWorktypeId,applyDetailPageDTO.getWorkTypeId()); |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getUnionApplyId()),ApplyDetail::getUnionApplyId,applyDetailPageDTO.getUnionApplyId()); |
| | | queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getMemberName()),Member::getName,applyDetailPageDTO.getMemberName()); |
| | | queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getCompanyName()),Company::getName,applyDetailPageDTO.getCompanyName()); |
| | | queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeS()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeS()+" 00:00:00.0"); |
| | | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59.0"); |
| | | queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeS()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeS()+" 00:00:00.0"); |
| | | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeE()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeE()+" 23:59:59.0"); |
| | | queryWrapper.ge(Objects.nonNull(applyDetailPageDTO.getIsExcel())&&Constants.equalsInteger(applyDetailPageDTO.getIsExcel(),Constants.ONE), |
| | | ApplyDetail::getEndTime,DateUtil.getPlusTime2(new Date())); |
| | | |
| | | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(pageWrap.getSorts())){ |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(ApplyDetail::getSortnum); |
| | | } |
| | | } |
| | | }else{ |
| | | queryWrapper.orderByAsc(ApplyDetail::getSortnum); |
| | | } |
| | | PageData<ApplyDetail> pageData = PageData.from(applyDetailJoinMapper.selectJoinPage(page,ApplyDetail.class, queryWrapper)); |
| | | if(pageData.getRecords()!=null){ |
| | | int num = 1; |
| | | for (ApplyDetail d : pageData.getRecords()){ |
| | | d.setSortnum(num++); |
| | | if(Constants.equalsInteger(d.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) |
| | | || Constants.equalsInteger(d.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())){ |
| | | if(d.getEndTime().getTime()< System.currentTimeMillis()){ |
| | | d.setApplyStatus(Constants.ONE); |
| | | }else if(d.getStartTime().getTime()> System.currentTimeMillis()){ |
| | | d.setApplyStatus(Constants.TWO); |
| | | }else{ |
| | | d.setApplyStatus(Constants.ZERO); |
| | | } |
| | | }else{ |
| | | d.setApplyStatus(-Constants.ONE); |
| | | } |
| | | if(Objects.nonNull(d.getReduceMoney())){ |
| | | d.setFee(d.getFee().add(d.getReduceMoney())); |
| | | } |
| | | |
| | | // d.setPrice(Constants.getTwoPoint(d.getPrice())); |
| | | // d.setFee(Constants.getTwoPoint(d.getFee())); |
| | | |
| | | |
| | | } |
| | | } |
| | | return pageData; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public List<ApplyDetail> findListForCompany(ApplyDetailPageDTO applyDetailPageDTO) { |
| | | MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>(); |
| | | queryWrapper.selectAll(ApplyDetail.class); |
| | | queryWrapper.selectAs(DispatchUnit::getName,ApplyDetail::getDuName); |
| | | queryWrapper.selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode); |
| | | queryWrapper.selectAs(Solutions::getId,ApplyDetail::getSolutionId); |
| | | queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName); |
| | | queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName); |
| | | queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo); |
| | | queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName); |
| | | queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId); |
| | | queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId); |
| | | queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId); |
| | | queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId); |
| | | queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId); |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyId()),ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId()); |
| | | queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus()) |
| | | &&!applyDetailPageDTO.getApplyStatus().equals(Constants.ZERO), |
| | | ApplyDetail::getStartTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 00:00:00"); |
| | | //在保 |
| | | queryWrapper.le(!Objects.isNull(applyDetailPageDTO.getApplyStatus()) |
| | | &&applyDetailPageDTO.getApplyStatus().equals(Constants.ONE), |
| | | ApplyDetail::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 23:59:59"); |
| | | //不在保 |
| | | queryWrapper.ge(!Objects.isNull(applyDetailPageDTO.getApplyStatus()) |
| | | &&applyDetailPageDTO.getApplyStatus().equals(Constants.TWO), |
| | | ApplyDetail::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd")+" 23:59:59"); |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getDuId()),ApplyDetail::getDuId,applyDetailPageDTO.getDuId()); |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getWorkTypeId()),ApplyDetail::getWorktypeId,applyDetailPageDTO.getWorkTypeId()); |
| | | queryWrapper.like(StringUtils.isNotBlank(applyDetailPageDTO.getMemberName()),Member::getName,applyDetailPageDTO.getMemberName()); |
| | | queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getMemberId()),Member::getId,applyDetailPageDTO.getMemberId()); |
| | | queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeS()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeS()+" 00:00:00.0"); |
| | | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59.0"); |
| | | queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeS()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeS()+" 00:00:00.0"); |
| | | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeE()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeE()+" 23:59:59.0"); |
| | | return applyDetailJoinMapper.selectJoinList(ApplyDetail.class,queryWrapper); |
| | | } |
| | | |
| | | |
| | | |
| | | @Override |
| | | public long count(ApplyDetail applyDetail) { |
| | | QueryWrapper<ApplyDetail> wrapper = new QueryWrapper<>(applyDetail); |
| | | return applyDetailMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<ApplyDetail> getMemberApplyList(Integer memberId) { |
| | | List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class, |
| | | new MPJLambdaWrapper<ApplyDetail>() |
| | | .selectAll(ApplyDetail.class) |
| | | .selectAs(DispatchUnit::getName,ApplyDetail::getDuName) |
| | | .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName) |
| | | .selectAs(Solutions::getName,ApplyDetail::getSolutionName) |
| | | .selectAs(ApplyChange::getValidCode,ApplyDetail::getValidCode) |
| | | .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) |
| | | .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) |
| | | .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId) |
| | | .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId) |
| | | .leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId) |
| | | .leftJoin(ApplyChagneDetail.class,ApplyChagneDetail::getId,ApplyDetail::getFromId) |
| | | .leftJoin(ApplyChange.class,ApplyChange::getId,ApplyChagneDetail::getApplyChangeId) |
| | | .eq(ApplyDetail::getMemberId,memberId) |
| | | .orderByAsc(ApplyDetail::getCreateDate) |
| | | ); |
| | | return applyDetailList; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | } |