From ac3587fec379a08d94d30b0a13e67e10612b3b06 Mon Sep 17 00:00:00 2001
From: nidapeng <jp@doumee.com>
Date: 星期一, 01 四月 2024 15:24:32 +0800
Subject: [PATCH] 提交一把

---
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |  165 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 139 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 34c9fa3..20e2309 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
@@ -42,6 +42,7 @@
 
 import java.io.File;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -152,6 +153,39 @@
         applyLogMapper.insert(log);
         return  1;
 
+    }
+    @Override
+    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
+    public Integer closeWtbForShop(InsuranceApply insuranceApply) {
+        if(insuranceApply.getId() == null ||StringUtils.isBlank(insuranceApply.getCheckInfo())){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.getId());
+
+        if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
+            throw  new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        //鍙湁瀹℃牳閫氳繃鐨勭姸鎬佸彲鍏抽棴
+        if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_BUSINESS_CHECK_PASS.getKey())){
+            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        InsuranceApply update = new InsuranceApply();
+        update.setEditDate(new Date());
+        update.setEditor(user.getId());
+        update.setStatus(Constants.InsuranceApplyStatus.WTB_CLOSED.getKey());
+        update.setCheckDate(update.getEditDate());
+        update.setCheckInfo(insuranceApply.getCheckInfo());
+        update.setCheckUserId(user.getId());
+        update.setId(model.getId());
+        insuranceApplyMapper.updateById(update);
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.SHOP_CLOSE_WTB_APPLY;
+        String info =applyLogType.getInfo();
+        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;
     }
 
     @Override
@@ -515,7 +549,7 @@
         InsuranceApply update = new InsuranceApply();
         update.setEditDate(new Date());
         update.setEditor(model.getCreator());
-        update.setStatus(Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey());
+        update.setStatus(Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey());
         update.setCheckDate(update.getEditDate());
         update.setCheckInfo("浼佷笟瀹屾垚绛剧讲鏂规纭涔�");
         update.setCheckUserId(model.getCreator());
@@ -527,13 +561,18 @@
         f.setCreator(model.getCreator());
         f.setObjId(update.getId());
         f.setCreateDate(update.getEditDate());
-        f.setObjType(Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey());
+        f.setObjType(Constants.MultiFile.WTB_CONFIRMATION_LATTER.getKey());
         f.setType(Constants.TWO);
         f.setFileurl(fileurl);
         f.setFileurlFull(fullUrl);
         f.setInfo("浼佷笟瀹屾垚绛剧讲鏂规纭涔�");
         f.setName("鏂规纭涔�.pdf");
         multifileMapper.insert(f);
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WTB_FINISH_FAQRS;
+        ApplyLog log = new ApplyLog(update,applyLogType.getName(), null
+                ,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+        applyLogMapper.insert(log);
         return  f;
     }
 
@@ -567,6 +606,11 @@
         f.setInfo("濮旀墭淇濅紒涓氬畬鎴愮缃叉姇淇濈敵璇蜂功");
         f.setName("鎶曚繚鐢宠涔�.pdf");
         multifileMapper.insert(f);
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.SIGNATURE;
+        ApplyLog log = new ApplyLog(update,applyLogType.getName(), null
+                ,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+        applyLogMapper.insert(log);
         return  f;
     }
 
@@ -600,6 +644,12 @@
         f.setInfo("浼佷笟瀹屾垚绛剧讲浜哄憳鍚嶅崟");
         f.setName("浜哄憳鍚嶅崟.pdf");
         multifileMapper.insert(f);
+
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WTB_FINISH_MEMBER_LIST;
+        ApplyLog log = new ApplyLog(update,applyLogType.getName(), null
+                ,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+        applyLogMapper.insert(log);
         return  f;
     }
     
@@ -642,6 +692,7 @@
         f.setInfo("浼佷笟鐢宠琛ㄧ缃叉枃浠�");
         f.setName("绛剧珷鐢宠琛�.pdf");
         multifileMapper.insert(f);
+
         Constants.ApplyLogType applyLogType =Constants.equalsInteger(Constants.ZERO,model.getType())? Constants.ApplyLogType.CA_JIAJIAN_APPLY_SIGN: Constants.ApplyLogType.CA_CHANGUNIT_APPLY_SIGN;
         ApplyLog log = new ApplyLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
         applyLogMapper.insert(log);
@@ -674,6 +725,10 @@
         f.setInfo("浼佷笟瀹屾垚绛剧讲浜哄憳鍚嶅崟");
         f.setName("绛剧珷浜哄憳鍚嶅崟.pdf");
         multifileMapper.insert(f);
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_WTB_FINISH_MEMBER_LIST;
+        ApplyLog log = new ApplyLog(update,applyLogType.getName(), null,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
+        applyLogMapper.insert(log);
 
         return f;
     }
@@ -722,6 +777,13 @@
 //        applyLogMapper.insert(log);
 //
 //        startSendEmail(f, model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail());
+
+
+        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.IA_HBD_SIGNATURE_TBD;
+        ApplyLog log = new ApplyLog(model,applyLogType.getName(), null
+                ,model.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(model));
+        applyLogMapper.insert(log);
+
         return  f;
     }
 
@@ -771,10 +833,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
         //濮旀墭淇� 浼佷笟绛剧讲鎶曚繚纭涔�
@@ -799,10 +861,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadFAQRSSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
 
@@ -828,10 +890,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadApplyMemberListSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
         
@@ -858,10 +920,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadTBSQSSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
         
@@ -890,10 +952,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadChangeSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
 
@@ -920,10 +982,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadChangeMemberListSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
 
@@ -947,12 +1009,16 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadUnionApplySignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
+
+
+
+
 
     }
     @Override
@@ -1236,15 +1302,19 @@
         if(Objects.isNull(solutions)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
         }
-        if(solutions.getType().equals(Constants.ZERO)){
+        if(Constants.equalsObject(solutions.getType(),Constants.ZERO)){
             if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey())){
                 throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
             }
         }else{
-            if(!user.getType().equals(Constants.TWO)){
+            if(!Constants.equalsObject(user.getType(),Constants.TWO)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风鏃犳硶杩涜璇ユ搷浣�");
             }
-            if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_RETURN.getKey())){
+            //濮旀墭淇濆緟绛剧讲銆佸緟瀹℃牳鍙繘琛岄��鍥炴搷浣�
+            if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey())
+                    ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey())
+                    ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_MEMBER_LIST_SIGNATURE.getKey())
+                    )){
                 throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
             }
         }
@@ -1261,9 +1331,14 @@
             //濡傛灉鏄笉閫氳繃
             applyLogType = Constants.ApplyLogType.PLATFORM_RETURN ;
             update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey());
+            if(Constants.equalsObject(solutions.getType(),Constants.ONE)){
+                update.setStatus(Constants.InsuranceApplyStatus.WTB_RETURN.getKey());
+            }
         }else{
             applyLogType = Constants.ApplyLogType.PLATFORM_CHECK_PASS;
-            update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey());
+            if(Constants.equalsObject(solutions.getType(),Constants.ONE)){
+                update.setStatus(Constants.InsuranceApplyStatus.WTB_BUSINESS_CHECK_PASS.getKey());
+            }
         }
         insuranceApplyMapper.updateById(update);
 
@@ -1355,9 +1430,7 @@
         applyLogMapper.insert(log);
 
 
-
         //鍙戦�佸緟鍔炰笟鍔�
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
@@ -1557,6 +1630,14 @@
                 applyDetail.setSex(member.getSex());
                 applyDetail.setFee(countCyclePriceVO.getCyclePrice());
                 applyDetail.setCurrentFee(BigDecimal.ZERO);
+                //鑾峰彇璁$畻鎬诲ぉ鏁�
+                Integer maxDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0);
+                if(Constants.equalsInteger(maxDays,0)||Objects.isNull(applyDetail.getFee())){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚淇℃伅寮傚父锛氭�诲ぉ鏁颁笌鎬婚噾棰濋敊璇�");
+                }
+                applyDetail.setPrice(
+                        applyDetail.getFee().divide(new BigDecimal(maxDays),2,RoundingMode.HALF_UP)
+                );
                 //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪
                 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崟浣嶆湭鏌ヨ鍒帮紒");
@@ -1858,10 +1939,10 @@
                 .selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit)
                 .selectAs(Solutions::getType,InsuranceApply::getSolutionType)
                 .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
-                .selectAs(Solutions::getName,InsuranceApply::getShopName)
                 .selectAs(Company::getName,InsuranceApply::getCompanyName)
                 .select(" ( select max(ac.APPLY_START_TIME) from apply_change ac  where ac.apply_id = t.id and ac.status = 2 ) as lastChangeDate")
                 .select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id ) as insureNum")
+                .select(" t3.name as shopName")
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                 .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
                 .leftJoin(Company.class,Company::getId,Solutions::getShopId)
@@ -1929,11 +2010,14 @@
 
     private void initImgData(InsuranceApply model) {
         List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda()
-                .eq(Multifile::getObjId,Constants.equalsInteger(model.getSolutionType(),Constants.ZERO)? model.getId():model.getUnionApplyId())
+                .eq(Multifile::getObjId, model.getId())
                 .in(Multifile::getObjType,Arrays.asList(new Integer[]{Constants.MultiFile.BD_APPLY_PDF.getKey()
                         ,Constants.MultiFile.BD_SIGNED_PDF.getKey()
+                        ,Constants.MultiFile.WTB_CONFIRMATION_LATTER.getKey()
+                        ,Constants.MultiFile.MEMBER_LIST_LATTER.getKey()
                         ,Constants.MultiFile.BD_DONE_PDF.getKey()}))
-                .eq(Multifile::getIsdeleted,Constants.ZERO));
+                .eq(Multifile::getIsdeleted,Constants.ZERO)
+                .orderByAsc(Multifile::getId));
         if(multifiles!=null){
             String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
                     +systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
@@ -1951,6 +2035,12 @@
                 }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.BD_DONE_PDF.getKey())){
                     //鏈�绲備繚闄╁崟
                     model.setBaoxiandanFile(f);
+                }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.MEMBER_LIST_LATTER.getKey())){
+                    //鐢宠鍗�
+                    model.setShenqingdanFile(f);
+                }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.WTB_CONFIRMATION_LATTER.getKey())){
+                    //绛剧讲鍚庣‘璁や功
+                    model.setFanganFile(f);
                 }
 
 //                if(model.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
@@ -2085,6 +2175,30 @@
 
 
     /**
+     * 浼佷笟淇濋殰涓汉鏁�
+     * @return
+     */
+    @Override
+    public Integer guaranteeNum() {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        if(loginUserInfo.getType().equals(Constants.ZERO)){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
+        }
+        MPJLambdaWrapper<ApplyDetail> lambdaWrapper = new MPJLambdaWrapper<ApplyDetail>();
+        lambdaWrapper.selectAll(Member.class)
+                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+                .and(i->i.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()).or().eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey()))
+                .eq(InsuranceApply::getCompanyId,loginUserInfo.getCompanyId())
+                .apply(" now() betwwen t.START_TIME and t.END_TIME ");
+
+         Integer count = applyDetailJoinMapper.selectJoinCount(lambdaWrapper);
+        return count;
+    }
+
+
+
+
+    /**
      * 鏇存柊淇濆崟瀹為檯閲戦
      */
     @Override
@@ -2196,7 +2310,6 @@
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                 .eq(InsuranceApply::getId,smsCheckDTO.getBusinessId())
                 .last("limit 1");
-
         InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper);
         if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
             throw  new BusinessException(ResponseStatus.DATA_EMPTY);

--
Gitblit v1.9.3