From c9f07c1f79e7ea9eb00925975d3ae2c9e8dcbd25 Mon Sep 17 00:00:00 2001 From: nidapeng <jp@doumee.com> Date: 星期三, 20 三月 2024 11:37:34 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/1.0.1' into 1.0.1 --- server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java | 80 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 0 deletions(-) diff --git a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java index 2acd28e..b9450d7 100644 --- a/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java +++ b/server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java @@ -1,20 +1,35 @@ package com.doumee.service.business.impl; +import com.doumee.core.constants.ResponseStatus; +import com.doumee.core.exception.BusinessException; +import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; +import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.UnionApplyMapper; +import com.doumee.dao.business.dto.SaveUnionApplyDTO; +import com.doumee.dao.business.join.InsuranceApplyJoinMapper; +import com.doumee.dao.business.model.InsuranceApply; +import com.doumee.dao.business.model.Solutions; import com.doumee.dao.business.model.UnionApply; import com.doumee.service.business.UnionApplyService; 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 io.swagger.models.auth.In; +import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; +import java.util.Objects; /** * 鍚堝苟鎶曚繚鍗曚俊鎭〃Service瀹炵幇 @@ -26,6 +41,9 @@ @Autowired private UnionApplyMapper unionApplyMapper; + + @Autowired + private InsuranceApplyJoinMapper insuranceApplyJoinMapper; @Override public Integer create(UnionApply unionApply) { @@ -166,4 +184,66 @@ QueryWrapper<UnionApply> wrapper = new QueryWrapper<>(unionApply); return unionApplyMapper.selectCount(wrapper); } + + + @Override + public void merge(SaveUnionApplyDTO saveUnionApplyDTO){ + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(user.getType().equals(Constants.TWO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风敤鎴凤紝鏃犳硶杩涜璇ユ搷浣�"); + } + if(Objects.isNull(saveUnionApplyDTO) + || Objects.isNull(saveUnionApplyDTO.getApplyIds()) + || Objects.isNull(saveUnionApplyDTO.getStartDate()) + || Objects.isNull(saveUnionApplyDTO.getEndDate()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class, + new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(InsuranceApply::getSolutionBaseId,Solutions::getBaseId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .eq(InsuranceApply::getIsdeleted, Constants.ZERO) + .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()) + .eq(Solutions::getBaseId,saveUnionApplyDTO.getBaseSolutionId()) + .in(InsuranceApply::getId,saveUnionApplyDTO.getApplyIds()) + .isNull(InsuranceApply::getUnionApplyId) + ); + //鏌ヨ鏁版嵁鏄惁瀛樺湪鏈浜庡鎵归�氳繃鐨勬暟鎹� + if(insuranceApplyList.size()!=saveUnionApplyDTO.getApplyIds().size()){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀛樺湪鏁版嵁宸插鐞嗭紝璇峰埛鏂伴噸璇�"); + } + + UnionApply unionApply = new UnionApply(); + unionApply.setCreateDate(new Date()); + unionApply.setCreator(user.getId()); + unionApply.setCompanyId(user.getCompanyId()); + unionApply.setStartTime(saveUnionApplyDTO.getStartDate()); + unionApply.setEndTime(saveUnionApplyDTO.getEndDate()); + unionApply.setCheckDate(new Date()); + unionApply.setStatus(Constants.UnionApplyStatus.UPLOAD.getKey()); + unionApply.setCheckUserId(user.getId()); + unionApply.setFee(insuranceApplyList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add)); + unionApply.setCurrentFee(BigDecimal.ZERO); + unionApplyMapper.insert(unionApply); + + insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda() + .set(InsuranceApply::getUnionApplyId,unionApply.getId()) + .set(InsuranceApply::getCheckDate,new Date()) + .set(InsuranceApply::getCheckUserId,user.getId()) + .in(InsuranceApply::getId,saveUnionApplyDTO.getApplyIds())); + + } + + + public void cancelMerge(Integer id){ + LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(user.getType().equals(Constants.TWO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风敤鎴凤紝鏃犳硶杩涜璇ユ搷浣�"); + } + + } + + } -- Gitblit v1.9.3