|  |  |  | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | return  new ArrayList<>(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>(); | 
|---|
|  |  |  | Utils.MP.blankToNull(applyDetailPageDTO); | 
|---|
|  |  |  | 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.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId); | 
|---|
|  |  |  | queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId); | 
|---|
|  |  |  | queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId); | 
|---|
|  |  |  | queryWrapper.eq( ApplyDetail::getApplyId,applyDetailPageDTO.getApplyId()); | 
|---|
|  |  |  | 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){ | 
|---|
|  |  |  | 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.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId); | 
|---|
|  |  |  | queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId); | 
|---|
|  |  |  | queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId); | 
|---|
|  |  |  | ApplyDetailPageDTO applyDetailPageDTO = pageWrap.getModel(); | 
|---|
|  |  |  | 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.ge(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeS()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeS()+" 00:00:00"); | 
|---|
|  |  |  | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59"); | 
|---|
|  |  |  | queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeS()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeS()+" 00:00:00"); | 
|---|
|  |  |  | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeE()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeE()+" 23:59:59"); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|---|
|  |  |  | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|---|
|  |  |  | queryWrapper.orderByDesc(sortData.getProperty()); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | queryWrapper.orderByAsc(sortData.getProperty()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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++); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 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"); | 
|---|
|  |  |  | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getStartTimeE()),ApplyDetail::getStartTime,applyDetailPageDTO.getStartTimeE()+" 23:59:59"); | 
|---|
|  |  |  | queryWrapper.ge(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeS()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeS()+" 00:00:00"); | 
|---|
|  |  |  | queryWrapper.le(StringUtils.isNotBlank(applyDetailPageDTO.getEndTimeE()),ApplyDetail::getEndTime,applyDetailPageDTO.getEndTimeE()+" 23:59:59"); | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|