From 02cb47bef10bafc3a591f160f0b286df529c704a Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 12 四月 2024 15:10:47 +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 | 53 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 47 insertions(+), 6 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 ef92dd9..ff05815 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
@@ -80,6 +80,8 @@
@Autowired
private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
+ @Autowired
+ private MemberMapper memberMapper;
@Value("${debug_model}")
private boolean debugModel;
@@ -385,7 +387,6 @@
}
}
}
-
}
@@ -448,13 +449,22 @@
Integer maxDays = DateUtil.calculateBetween(saveUnionApplyDTO.getStartDate(),saveUnionApplyDTO.getEndDate(),0);
- List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda().select(ApplyDetail::getId,ApplyDetail::getPrice)
+ List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
+ .select(ApplyDetail::getId,ApplyDetail::getPrice,ApplyDetail::getStartTime,ApplyDetail::getEndTime,ApplyDetail::getFee)
.in(ApplyDetail::getApplyId,saveUnionApplyDTO.getApplyIds())
.eq(ApplyDetail::getIsdeleted,Constants.ZERO));
if(applyDetailList.size()==0){
throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"瀵逛笉璧凤紝瀛樺湪濮旀墭鎶曚繚鐢宠璁板綍淇℃伅鏈夎锛岃杩斿洖鏌ョ湅鐢宠浜哄憳鏄惁涓虹┖锛�");
}
- unionApply.setFee(applyDetailList.stream().map(i->Constants.formatBigdecimal(i.getPrice()).multiply(new BigDecimal(maxDays))).reduce(BigDecimal.ZERO,BigDecimal::add));
+ BigDecimal fee = BigDecimal.ZERO;
+ for (ApplyDetail applyDetail:applyDetailList) {
+ Integer oldDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
+ fee =fee.add(new BigDecimal(maxDays).multiply( applyDetail.getFee()).divide(new BigDecimal(oldDays),2,RoundingMode.HALF_UP));
+ }
+ unionApply.setFee(fee);
+
+// unionApply.setFee(applyDetailList.stream()
+// .map(i->Constants.formatBigdecimal(i.getPrice()).multiply(new BigDecimal(maxDays))).reduce(BigDecimal.ZERO,BigDecimal::add));
unionApplyMapper.insert(unionApply);
@@ -583,6 +593,10 @@
if(CollectionUtils.isNotEmpty(uploadMultifileDTO.getMultifileList())){
List<Multifile> multifileList = uploadMultifileDTO.getMultifileList();
for (Multifile multifile:multifileList) {
+ if(StringUtils.isBlank(multifile.getName())
+ || StringUtils.isBlank(multifile.getFileurl()) ){
+ continue;
+ }
if(Objects.isNull(multifile.getObjId())
||Objects.isNull(multifile.getName())
||Objects.isNull(multifile.getFileurl())){
@@ -742,8 +756,20 @@
List<UnionApplyBXDDetailDTO> unionApplyBXDDetailDTOList = unionApplyBXDDTO.getUnionApplyBXDDDetailDTOList();
//鎵�鏈夋姇淇濈敵璇蜂繚鍗曟槑缁嗚
- List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
- .select(ApplyDetail::getId,ApplyDetail::getApplyId,ApplyDetail::getPrice)
+ List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>()
+ .selectAll(ApplyDetail.class)
+ .selectAs(DispatchUnit::getName,ApplyDetail::getDuName)
+ .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode)
+ .selectAs(Solutions::getId,ApplyDetail::getSolutionId)
+ .selectAs(Solutions::getName,ApplyDetail::getSolutionName)
+ .selectAs(Worktype::getName,ApplyDetail::getWorkTypeName)
+ .selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo)
+ .selectAs(Member::getName,ApplyDetail::getMemberName)
+ .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
+ .leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId)
+ .leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId)
+ .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
.in(ApplyDetail::getUnionApplyId,unionApply.getId()));
unionApplyBXDDTO.setEndTime(DateUtil.getMontageDate(unionApplyBXDDTO.getEndTime(),2));
//鎬诲ぉ鏁�
@@ -771,9 +797,10 @@
Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter(
m->m.getApplyId().equals(insuranceApply.getId())).findFirst();
+ BigDecimal serverCost = BigDecimal.ZERO;
if(unionApplyBXDDDetailTO.isPresent()){
UnionApplyBXDDetailDTO unionApplyBXDDetailDTO = unionApplyBXDDDetailTO.get();
-
+ serverCost = unionApplyBXDDetailDTO.getServerMoney();
BigDecimal dayServerMoney = unionApplyBXDDetailDTO.getServerMoney().divide(new BigDecimal(maxDays),2, RoundingMode.HALF_UP);
price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(dayServerMoney));
@@ -808,9 +835,22 @@
.filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList())) {
applyDetail.setPrice(price);
applyDetail.setFee(price.multiply(new BigDecimal(maxDays)));
+ applyDetail.setStartTime(unionApplyBXDDTO.getStartTime());
+ applyDetail.setEndTime(unionApplyBXDDTO.getEndTime());
MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
+ memberInsurance.setBdCode(unionApplyBXDDTO.getCode());
memberInsurance.setRelationType(Constants.ZERO);
memberInsuranceList.add(memberInsurance);
+ //鏇存柊鍛樺伐鎶曚繚鏃堕棿
+ memberMapper.update(null,new UpdateWrapper<Member>()
+ .lambda()
+ .set(Member::getStartTime,memberInsurance.getStartTime())
+ .set(Member::getEndTime,memberInsurance.getEndTime())
+ .set(Member::getDuId,memberInsurance.getDuId())
+ .set(Member::getWorktypeId,memberInsurance.getWorktypeId())
+ .eq(Member::getId, memberInsurance.getMemberId())
+ );
+
}
memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
}
@@ -825,6 +865,7 @@
.set(InsuranceApply::getEndTime,unionApplyBXDDTO.getEndTime())
.set(InsuranceApply::getEditDate,new Date())
.set(InsuranceApply::getEditor,user.getId())
+ .set(InsuranceApply::getServerCost,serverCost)
.set(InsuranceApply::getCode,unionApplyBXDDTO.getCode())
.eq(InsuranceApply::getId,insuranceApply.getId()));
//鏇存柊鎶曚繚鍗曟槑缁嗛噾棰�
--
Gitblit v1.9.3