From 02bc3bfe47e3d5311a0bb041c94e70a34b1ca73c Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期二, 09 四月 2024 09:03:01 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/service/business/impl/UnionApplyServiceImpl.java |   45 +++++++++++++++++++++++++++++++++++++++------
 1 files changed, 39 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 d4ed737..a2e652a 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
@@ -12,10 +12,7 @@
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.*;
 import com.doumee.dao.business.dto.*;
-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.UnionApplyJoinMapper;
+import com.doumee.dao.business.join.*;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.SmsEmailService;
@@ -35,6 +32,7 @@
 import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -80,6 +78,8 @@
     @Autowired
     private ApplyLogJoinMapper applyLogJoinMapper;
 
+    @Autowired
+    private MemberInsuranceJoinMapper memberInsuranceJoinMapper;
     @Value("${debug_model}")
     private boolean debugModel;
 
@@ -155,6 +155,13 @@
                 .selectAs(Solutions::getSpecialAgreement,UnionApply::getSpecialAgreement)
                 .selectAs(Solutions::getSpecialInfo,UnionApply::getSpecialInfo);
         queryWrapper.select("(select count(b.id) from apply_detail b where b.isdeleted=0 and b.union_apply_id=t.id) as insureNum ");
+
+        queryWrapper.select("(select count(1) from apply_change a inner join insurance_apply b on a.apply_id = b.id  where b.union_apply_id=t.id " +
+                "and b.status = "+Constants.InsuranceApplyStatus.WTB_TOUBAOING.getKey()+" and a.type = 0  ) as addApplyNum ");
+
+        queryWrapper.select("(select count(1) from apply_change a inner join insurance_apply b on a.apply_id = b.id  where b.union_apply_id=t.id " +
+                "and b.status = "+Constants.InsuranceApplyStatus.WTB_TOUBAOING.getKey()+" and a.type = 1  ) as changeApplyNum ");
+
         queryWrapper.leftJoin(Solutions.class,Solutions::getId,UnionApply::getSolutionId);
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(Constants.equalsInteger(user.getType(),Constants.TWO)){
@@ -619,6 +626,13 @@
         multifile.setFileurl(uploadMultifileDTO.getFileurl());
         multifile.setName(uploadMultifileDTO.getName());
         multifileMapper.insert(multifile);
+
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.IA_HBD_UPLOAD_TBD;
+        ApplyLog log = new ApplyLog(unionApply,applyLogType.getName(), null
+                ,unionApply.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(unionApply));
+        applyLogMapper.insert(log);
+
     }
 
 
@@ -724,6 +738,7 @@
         List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                 .select(ApplyDetail::getId,ApplyDetail::getApplyId,ApplyDetail::getPrice)
                 .in(ApplyDetail::getUnionApplyId,unionApply.getId()));
+        unionApplyBXDDTO.setEndTime(DateUtil.getMontageDate(unionApplyBXDDTO.getEndTime(),2));
         //鎬诲ぉ鏁�
         Integer maxDays = DateUtil.calculateBetween(unionApplyBXDDTO.getStartTime(),unionApplyBXDDTO.getEndTime(),0);
         //瀹為檯宸茬粡浜х敓璐圭敤鐨勫ぉ鏁�
@@ -746,11 +761,15 @@
                 continue;
             }
             BigDecimal price = Constants.formatBigdecimal(applyDetails.get(Constants.ZERO).getPrice());
+
             Optional<UnionApplyBXDDetailDTO> unionApplyBXDDDetailTO= unionApplyBXDDetailDTOList.stream().filter(
                     m->m.getApplyId().equals(insuranceApply.getId())).findFirst();
             if(unionApplyBXDDDetailTO.isPresent()){
                 UnionApplyBXDDetailDTO unionApplyBXDDetailDTO = unionApplyBXDDDetailTO.get();
-                price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(unionApplyBXDDetailDTO.getServerMoney()));
+
+                BigDecimal dayServerMoney = unionApplyBXDDetailDTO.getServerMoney().divide(new BigDecimal(maxDays),2, RoundingMode.HALF_UP);
+
+                price = Constants.formatBigdecimal(price).add(Constants.formatBigdecimal(dayServerMoney));
                 //涓婁紶淇濆崟淇℃伅
                 if(StringUtils.isNotBlank(unionApplyBXDDetailDTO.getFileUrl())){
                     Multifile multifile = new Multifile();
@@ -775,6 +794,20 @@
             }else if(useDays>0){
                 currentFee =  new BigDecimal(useDays).multiply(price);
             }
+            //鐢熸垚鎶曚繚璁板綍
+            if(CollectionUtils.isNotEmpty(applyDetailList)){
+                List<MemberInsurance> memberInsuranceList = new ArrayList<>();
+                for (ApplyDetail applyDetail:applyDetailList.stream()
+                        .filter(m->Constants.equalsInteger(m.getApplyId(),(insuranceApply.getId()))).collect(Collectors.toList())) {
+                    applyDetail.setPrice(price);
+                    applyDetail.setFee(price.multiply(new BigDecimal(maxDays)));
+                    MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
+                    memberInsurance.setRelationType(Constants.ZERO);
+                    memberInsuranceList.add(memberInsurance);
+                }
+                memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList);
+            }
+
             //鏇存柊鎶曚繚鐢宠鍗�
             insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
                     .set(InsuranceApply::getUnionApplyTbdStatus,Constants.THREE)
@@ -828,7 +861,7 @@
             multifileMapper.insert(multifile);
         }
 
-        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.IA_HBD_UPLOAD_TBD;
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.IA_HBD_UPLOAD_BXD;
         String info = "";
         if(Objects.nonNull(unionApplyBXDDTO.getStartTime())&&Objects.nonNull(unionApplyBXDDTO.getEndTime())){
             info =applyLogType.getInfo();

--
Gitblit v1.9.3