From cdd6551b190b981b807a3b95e9635c559ccc769d Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 19 五月 2025 09:45:07 +0800 Subject: [PATCH] git ch --- server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java | 231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 221 insertions(+), 10 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java index 460cf08..3dacf38 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyDetailServiceImpl.java @@ -1,31 +1,45 @@ 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; /** * 鎶曚繚鐢宠鏄庣粏淇℃伅琛⊿ervice瀹炵幇 * @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) { @@ -79,11 +93,38 @@ } @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()); @@ -127,10 +168,6 @@ 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()); } @@ -153,9 +190,183 @@ 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; + } + + + + } -- Gitblit v1.9.3