From 4555d41a66b83c8eb61bd99faf473985aeffda1f Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 01 二月 2024 09:11:20 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 122 ++++++++++++++++++++++++++++++++--------
1 files changed, 96 insertions(+), 26 deletions(-)
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index b3c53e3..9da21c5 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -15,9 +15,7 @@
import com.doumee.dao.business.dto.CountCyclePriceDTO;
import com.doumee.dao.business.dto.InsuranceApplyOptDTO;
import com.doumee.dao.business.dto.InsuranceApplyQueryDTO;
-import com.doumee.dao.business.join.ApplyDetailJoinMapper;
-import com.doumee.dao.business.join.ApplyLogJoinMapper;
-import com.doumee.dao.business.join.InsuranceApplyJoinMapper;
+import com.doumee.dao.business.join.*;
import com.doumee.dao.business.model.*;
import com.doumee.dao.business.vo.CountCyclePriceVO;
import com.doumee.dao.system.model.SystemUser;
@@ -63,6 +61,8 @@
private InsuranceApplyJoinMapper insuranceApplyJoinMapper;
@Autowired
private CompanyMapper companyMapper;
+ @Autowired
+ private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
@Autowired
private ApplyDetailMapper applyDetailMapper;
@@ -86,6 +86,8 @@
private MemberMapper memberMapper;
@Autowired
private DuSolutionMapper duSolutionMapper;
+ @Autowired
+ private DuSolutionJoinMapper duSolutionJoinMapper;
@Autowired
private DuWorktypeMapper duWorktypeMapper;
@@ -179,6 +181,36 @@
}
ApplyLog log = new ApplyLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
applyLogMapper.insert(log);
+
+
+ //瀛樺偍鍛樺伐淇℃伅鎶曚繚璁板綍
+ //鏌ヨ鍗曟嵁鏄庣粏璁板綍
+ 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(ApplyDetail::getApplyId,insuranceApply.getId());
+ List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,queryWrapper);
+
+ if(CollectionUtils.isNotEmpty(applyDetailList)){
+ List<MemberInsurance> memberInsuranceList = new ArrayList<>();
+ for (ApplyDetail applyDetail:applyDetailList) {
+ MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
+ memberInsuranceList.add(memberInsurance);
+ }
+ memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
+ }
+
return 1;
}
@@ -428,10 +460,14 @@
@Override
public void dealWaitSignedData(){
List<InsuranceApply> applyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda()
- .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE)
+ .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
.isNotNull(InsuranceApply::getSignApplyNo));
if(applyList !=null && applyList.size()>0 ){
for(InsuranceApply model : applyList){
+ String status = signService.linkFileStatus(model.getSignApplyNo());
+ if(!StringUtils.equals(status,"3")){
+ continue;
+ }
String link = signService.linkFile(model.getSignApplyNo());
String fileUrl = uploadSignFile(link);
if(StringUtils.isBlank(fileUrl)){
@@ -443,10 +479,14 @@
}
}
List<ApplyChange> chagneList = applyChangeMapper.selectList(new QueryWrapper<ApplyChange>().lambda()
- .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD)
+ .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD.getKey())
.isNotNull(ApplyChange::getSignApplyNo));
if(chagneList !=null && chagneList.size()>0 ){
for(ApplyChange model : chagneList){
+ String status = signService.linkFileStatus(model.getSignApplyNo());
+ if(!StringUtils.equals(status,"3")){
+ continue;
+ }
String link = signService.linkFile(model.getSignApplyNo());
String fileUrl = uploadSignFile(link);
if(StringUtils.isBlank(fileUrl)){
@@ -588,6 +628,7 @@
info = info.replace("${param}", update.getCheckInfo());
ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
applyLogMapper.insert(log);
+
return 1;
}
@@ -622,14 +663,22 @@
insuranceApply.setCompanyId(loginUserInfo.getCompanyId());
insuranceApply.setCheckInfo(insuranceApplyStatus.getName());
insuranceApply.setStartTime(insuranceApply.getApplyStartTime());
- insuranceApply.setEndTime(insuranceApply.getApplyEndTime());
insuranceApply.setCheckDate(new Date());
insuranceApply.setCurrentFee(BigDecimal.ZERO);
insuranceApply.setCheckUserId(loginUserInfo.getId());
insuranceApply.setStatus(insuranceApplyStatus.getKey());
+
+ CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
+ countCyclePriceDTO.setSolutionsId(insuranceApply.getSolutionId());
+ countCyclePriceDTO.setStartDate(insuranceApply.getStartTime());
+ CountCyclePriceVO countCyclePriceVO = this.getCountCyclePriceVO(countCyclePriceDTO);
+ insuranceApply.setApplyEndTime(countCyclePriceVO.getEndDate());
+ insuranceApply.setEndTime(countCyclePriceVO.getEndDate());
insuranceApplyMapper.insert(insuranceApply);
+
+
//澶勭悊涓嬬骇鏁版嵁
- this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo);
+ this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo,countCyclePriceVO);
InsuranceApply updBean = new InsuranceApply();
updBean.setId(insuranceApply.getId());
updBean.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
@@ -681,14 +730,21 @@
insuranceApply.setCompanyId(loginUserInfo.getCompanyId());
insuranceApply.setCheckInfo(insuranceApplyStatus.getName());
insuranceApply.setStartTime(insuranceApply.getApplyStartTime());
- insuranceApply.setEndTime(insuranceApply.getApplyEndTime());
insuranceApply.setCheckDate(new Date());
insuranceApply.setCurrentFee(BigDecimal.ZERO);
insuranceApply.setCheckUserId(loginUserInfo.getId());
insuranceApply.setStatus(insuranceApplyStatus.getKey());
+
+ CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
+ countCyclePriceDTO.setSolutionsId(insuranceApply.getSolutionId());
+ countCyclePriceDTO.setStartDate(insuranceApply.getStartTime());
+ CountCyclePriceVO countCyclePriceVO = this.getCountCyclePriceVO(countCyclePriceDTO);
+ insuranceApply.setApplyEndTime(countCyclePriceVO.getEndDate());
+ insuranceApply.setEndTime(countCyclePriceVO.getEndDate());
+
applyDetailMapper.delete(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId()));
//澶勭悊涓嬬骇鏁版嵁
- this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo);
+ this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo,countCyclePriceVO);
insuranceApply.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
insuranceApplyMapper.updateById(insuranceApply);
//瀛樺偍鏃ュ織鏁版嵁
@@ -698,13 +754,18 @@
- public void dealApplyDetailData(InsuranceApply insuranceApply,List<ApplyDetail> applyDetailList,LoginUserInfo loginUserInfo){
+ public void dealApplyDetailData(InsuranceApply insuranceApply,List<ApplyDetail> applyDetailList,LoginUserInfo loginUserInfo,CountCyclePriceVO countCyclePriceVO){
Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
if(Objects.isNull(solutions)){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
}
//鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
- List<DuSolution> duSolutionList = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda()
+ List<DuSolution> duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>()
+ .selectAll(DuSolution.class)
+ .innerJoin(DispatchUnit.class,DispatchUnit::getId,DuSolution::getDispatchUnitId)
+ .eq(DispatchUnit::getCompanyId,insuranceApply.getCompanyId())
+ .eq(DispatchUnit::getIsdeleted,Constants.ZERO)
+ .eq(DispatchUnit::getUnitStatus,Constants.ONE)
.eq(DuSolution::getIsdeleted,Constants.ZERO)
.eq(DuSolution::getStatus,Constants.ONE)
.eq(DuSolution::getSolutionId,insuranceApply.getSolutionId()));
@@ -780,7 +841,7 @@
applyDetail.setMemberId(member.getId());
applyDetail.setIdcardNo(member.getIdcardNo());
applyDetail.setSex(member.getSex());
- applyDetail.setFee(Constants.countDetailFee(solutions,insuranceApply.getApplyEndTime(),insuranceApply.getApplyStartTime()));
+ applyDetail.setFee(countCyclePriceVO.getCyclePrice());
//楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪
if(duSolutionList.stream().filter(d->d.getDispatchUnitId().equals(applyDetail.getDuId())).collect(Collectors.toList()).size()<=Constants.ZERO){
throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"銆�"+applyDetail.getMemberName()+"銆戝憳宸ユ淳閬e崟浣嶆湭鏌ヨ鍒帮紒");
@@ -911,6 +972,12 @@
//浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹�
if(loginUserInfo.getType().equals(Constants.ONE)){
queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
+ }else{
+ if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
+ queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
+ }else{
+ queryWrapper.eq(InsuranceApply::getCompanyId, -1);
+ }
}
if (pageWrap.getModel().getSolutionId() != null) {
queryWrapper.eq(InsuranceApply::getSolutionId, pageWrap.getModel().getSolutionId());
@@ -991,6 +1058,12 @@
//浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹�
if(loginUserInfo.getType().equals(Constants.ONE)){
queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId());
+ }else{
+ if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){
+ queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList());
+ }else{
+ queryWrapper.eq(InsuranceApply::getCompanyId, -1);
+ }
}
if (model.getSolutionId() != null) {
queryWrapper.eq(InsuranceApply::getSolutionId, model.getSolutionId());
@@ -1044,7 +1117,7 @@
MPJLambdaWrapper wrapper= new MPJLambdaWrapper<InsuranceApply>()
.selectAll(InsuranceApply.class)
.selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
- .selectAs(Company::getName,ApplyLog::getCompanyName)
+ .selectAs(Company::getName,InsuranceApply::getCompanyName)
.select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum")
.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
@@ -1055,6 +1128,11 @@
if(Objects.isNull(insuranceApply)){
throw new BusinessException(ResponseStatus.DATA_EMPTY);
}
+
+ if(insuranceApply.getStartTime().compareTo(new Date())<0 && insuranceApply.getEndTime().compareTo(new Date()) > 0 ){
+ insuranceApply.setLoseEfficacyDays(DateUtil.daysBetweenDates(insuranceApply.getEndTime(),new Date()));
+ }
+
initApplyStatus(insuranceApply);
@@ -1273,6 +1351,8 @@
+
+
@Override
public CountCyclePriceVO getCountCyclePriceVO(CountCyclePriceDTO countCyclePriceDTO){
if(Objects.isNull(countCyclePriceDTO)
@@ -1285,21 +1365,11 @@
if(Objects.isNull(solutions)){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
}
- CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO();
- if(solutions.getInsureCycleUnit().equals(Constants.ZERO)){
- countCyclePriceVO.setEndDate(DateUtil.afterDateByType(countCyclePriceDTO.getStartDate(),0,solutions.getInsureCycle()));
- }else if(solutions.getInsureCycleUnit().equals(Constants.TWO)){
- Integer monthDays = DateUtil.monthDays(countCyclePriceDTO.getStartDate());
- Date afterDate = DateUtil.afterDateByType(countCyclePriceDTO.getStartDate(),0,monthDays);
- countCyclePriceVO.setEndDate(DateUtil.afterDateByType(afterDate,0,-1));
- }else if(solutions.getInsureCycleUnit().equals(Constants.THREE)){
- Date afterDate = DateUtil.afterDateByType(countCyclePriceDTO.getStartDate(),2,solutions.getInsureCycle());
- countCyclePriceVO.setEndDate(DateUtil.afterDateByType(afterDate,0,-1));
- }
- countCyclePriceVO.setCyclePrice(Constants.countDetailFee(solutions,countCyclePriceVO.getEndDate(),countCyclePriceDTO.getStartDate()));
- return countCyclePriceVO;
+ return Constants.countPriceVO(countCyclePriceDTO.getStartDate(),solutions);
}
+
+
}
--
Gitblit v1.9.3