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 |  330 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 292 insertions(+), 38 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 1117e60..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
@@ -16,6 +16,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.dto.SmsCheckDTO;
 import com.doumee.dao.business.join.*;
 import com.doumee.dao.business.model.*;
 import com.doumee.dao.business.vo.CountCyclePriceVO;
@@ -41,6 +42,7 @@
 
 import java.io.File;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -151,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
@@ -514,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());
@@ -526,13 +561,56 @@
         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;
+    }
+
+    /**
+     * 濮旀墭淇�  浼佷笟绛剧讲鎶曚繚鐢宠涔�
+     * @param model
+     * @param fileurl
+     * @param fullUrl
+     * @return
+     */
+    public Multifile   uploadTBSQSSignedFileDo(InsuranceApply model,String fileurl,String fullUrl) {
+        InsuranceApply update = new InsuranceApply();
+        update.setEditDate(new Date());
+        update.setEditor(model.getCreator());
+        update.setUnionApplyTbdStatus(Constants.TWO);
+        update.setCheckDate(update.getEditDate());
+        update.setCheckInfo("濮旀墭淇濅紒涓氬畬鎴愮缃叉姇淇濈敵璇蜂功");
+        update.setCheckUserId(model.getCreator());
+        update.setId(model.getId());
+        insuranceApplyMapper.updateById(update);
+
+        Multifile f = new Multifile();
+        f.setIsdeleted(Constants.ZERO);
+        f.setCreator(model.getCreator());
+        f.setObjId(update.getId());
+        f.setCreateDate(update.getEditDate());
+        f.setObjType(Constants.MultiFile.COMPANY_TBD_SIGNED_PDF.getKey());
+        f.setType(Constants.TWO);
+        f.setFileurl(fileurl);
+        f.setFileurlFull(fullUrl);
+        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;
     }
 
@@ -566,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;
     }
     
@@ -608,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);
@@ -640,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;
     }
@@ -688,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;
     }
 
@@ -737,10 +833,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
         //濮旀墭淇� 浼佷笟绛剧讲鎶曚繚纭涔�
@@ -765,10 +861,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadFAQRSSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
 
@@ -794,12 +890,44 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadApplyMemberListSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
+        
+        //濮旀墭淇濅紒涓氱缃叉姇淇濈敵璇峰崟
+        applyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,
+                new MPJLambdaWrapper<InsuranceApply>()
+                        .selectAll(InsuranceApply.class)
+                        .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+                        .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+                        .selectAs(Company::getName,InsuranceApply::getCompanyName)
+                        .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+                        .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+                        .eq(InsuranceApply::getUnionApplyTbdStatus,Constants.ONE)
+                        .eq(Solutions::getType,Constants.ONE)
+                        .isNotNull(InsuranceApply::getApplyTbdNo));
+
+        if(applyList !=null && applyList.size()>0 ){
+            for(InsuranceApply model : applyList){
+                String status = signService.linkFileStatus(model.getApplyTbdNo());
+                if(!StringUtils.equals(status,"3")){
+                    continue;
+                }
+                String link = signService.linkFile(model.getApplyTbdNo());
+                String fileUrl = uploadSignFile(link);
+                if(StringUtils.isBlank(fileUrl)){
+                    //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
+                    continue;
+                }
+                uploadTBSQSSignedFileDo(model,fileUrl,path+fileUrl);
+//                return;
+            }
+        }
+        
+        
 
         List<ApplyChange> chagneList = applyChangeMapper.selectJoinList(ApplyChange.class,
                 new MPJLambdaWrapper<ApplyChange>()
@@ -824,10 +952,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadChangeSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
 
@@ -854,10 +982,10 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadChangeMemberListSignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
 
@@ -881,12 +1009,16 @@
                 String fileUrl = uploadSignFile(link);
                 if(StringUtils.isBlank(fileUrl)){
                     //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
-                    return;
+                    continue;
                 }
                 uploadUnionApplySignedFileDo(model,fileUrl,path+fileUrl);
-                return;
+//                return;
             }
         }
+
+
+
+
 
     }
     @Override
@@ -933,7 +1065,7 @@
                             .eq(Solutions::getType,Constants.ONE)
                             .eq(InsuranceApply::getSignQrsNo,data.getApplyNo())
                             .last("limit 1" ));
-            if(modelTBQRS != null && Constants.equalsInteger(modelTBQRS.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey())){
+            if(modelTBQRS != null && Constants.equalsInteger(modelTBQRS.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey())){
                 //瀹屾垚绛剧讲宸插畬鎴愭搷浣�
                 String link = signService.linkFile(data.getApplyNo());
                 String fileUrl = uploadSignFile(link);
@@ -944,6 +1076,9 @@
                 uploadFAQRSSignedFileDo(modelTBQRS,fileUrl,path+fileUrl);
                 return;
             }
+
+
+
             //濮旀墭淇� 浼佷笟绛剧讲浜哄憳鍚嶅崟
             InsuranceApply modelMemberList = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,
                     new MPJLambdaWrapper<InsuranceApply>()
@@ -965,6 +1100,31 @@
                     return;
                 }
                 uploadApplyMemberListSignedFileDo(modelMemberList,fileUrl,path+fileUrl);
+                return;
+            }
+
+
+            //濮旀墭淇� 鎶曚繚鐢宠涔︾缃�
+            InsuranceApply modelTBQSQ = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,
+                    new MPJLambdaWrapper<InsuranceApply>()
+                            .selectAll(InsuranceApply.class)
+                            .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
+                            .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail)
+                            .selectAs(Company::getName,InsuranceApply::getCompanyName)
+                            .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+                            .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+                            .eq(Solutions::getType,Constants.ONE)
+                            .eq(InsuranceApply::getApplyTbdNo,data.getApplyNo())
+                            .last("limit 1" ));
+            if(modelTBQRS != null && Constants.equalsInteger(modelTBQSQ.getUnionApplyTbdStatus(),Constants.ONE)){
+                //瀹屾垚绛剧讲宸插畬鎴愭搷浣�
+                String link = signService.linkFile(data.getApplyNo());
+                String fileUrl = uploadSignFile(link);
+                if(StringUtils.isBlank(fileUrl)){
+                    //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚�
+                    return;
+                }
+                uploadTBSQSSignedFileDo(modelTBQSQ,fileUrl,path+fileUrl);
                 return;
             }
 
@@ -1142,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(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
             }
         }
@@ -1167,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);
 
@@ -1261,9 +1430,7 @@
         applyLogMapper.insert(log);
 
 
-
         //鍙戦�佸緟鍔炰笟鍔�
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         //鍒犻櫎鍏朵粬寰呭姙
@@ -1463,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崟浣嶆湭鏌ヨ鍒帮紒");
@@ -1527,13 +1702,37 @@
         QueryWrapper<InsuranceApply> wrapper = new QueryWrapper<>(insuranceApply);
         return insuranceApplyMapper.selectList(wrapper);
     }
+
+    public List<Integer> getCollectStatus(Integer collectStatus){
+        if(collectStatus ==null){
+            return  new ArrayList<>();
+        }
+        List<Integer> statusList = Constants.InsuranceApplyStatus.getKesByStatus(collectStatus);
+        if(collectStatus.equals(Constants.ApplyCollectStatus.DCD)){
+            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBDCD.getKey()));
+        }else if(collectStatus.equals(Constants.ApplyCollectStatus.DSP)){
+            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBDSH.getKey()));
+        }else if(collectStatus.equals(Constants.ApplyCollectStatus.BZZ)){
+            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBBZZ.getKey()));
+        }else if(collectStatus.equals(Constants.ApplyCollectStatus.YTH)){
+            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBYTH.getKey()));
+        }else if(collectStatus.equals(Constants.ApplyCollectStatus.YGB)){
+            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBYGB.getKey()));
+        }else if(collectStatus.equals(Constants.ApplyCollectStatus.DQYQZ)){
+            statusList.addAll(Constants.InsuranceApplyStatus.getKesByStatus(Constants.ApplyCollectStatus.WTBDQS.getKey()));
+        }
+
+        return statusList;
+    }
   
     @Override
     public PageData<InsuranceApply> findPage(PageWrap<InsuranceApplyQueryDTO> pageWrap) {
         IPage<InsuranceApply> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
         MPJLambdaWrapper<InsuranceApply> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        List<Integer> statusList = Constants.InsuranceApplyStatus.getKesByStatus(pageWrap.getModel().getStatusCollect());
+
+        List<Integer> statusList = this.getCollectStatus(pageWrap.getModel().getStatusCollect());
+
         queryWrapper.selectAll(InsuranceApply.class);
         queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName);
         queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName);
@@ -1740,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)
@@ -1811,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();
@@ -1833,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())){
@@ -1967,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
@@ -2058,21 +2290,26 @@
 
     /**
      * 濮旀墭瀹� 鎶曚繚纭涔�
-     * @param id
+     * @param smsCheckDTO
      * @return
      */
     @Override
-    public  String getSignTBQRSLink(Integer id) {
-        if(id == null ){
+    public  String getSignTBQRSLink(SmsCheckDTO smsCheckDTO) {
+        if(Objects.isNull(smsCheckDTO)
+            || Objects.isNull(smsCheckDTO.getBusinessId())
+                || StringUtils.isBlank(smsCheckDTO.getCode())
+        ){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        if(!debugModel){
+            smsEmailService.validateCode(smsCheckDTO.getCode());
         }
         MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<InsuranceApply>()
                 .selectAll(InsuranceApply.class)
                 .selectAs(Solutions::getSignKeyword,InsuranceApply::getSignKeyword)
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
-                .eq(InsuranceApply::getId,id)
+                .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);
@@ -2081,7 +2318,7 @@
         if(Objects.isNull(solutions)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
         }
-        if(solutions.getType().equals(Constants.ZERO)){
+        if(Constants.equalsInteger(solutions.getType(),(Constants.ZERO))){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝闈炲鎵樹繚鏂规淇濆崟!");
         }
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -2153,8 +2390,18 @@
      * 浜哄憳鍚嶅崟绛剧珷
      */
     @Override
-    public String getMemberListOnlineSignLink(Integer applyId) {
-        InsuranceApply model = this.queryApplyDetail(applyId);
+    public String getMemberListOnlineSignLink(SmsCheckDTO smsCheckDTO) {
+        if(Objects.isNull(smsCheckDTO)
+                || Objects.isNull(smsCheckDTO.getBusinessId())
+                || StringUtils.isBlank(smsCheckDTO.getCode())
+        ){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        //楠岃瘉 楠岃瘉鐮�
+        if(!debugModel){
+            smsEmailService.validateCode(smsCheckDTO.getCode());
+        }
+        InsuranceApply model = this.queryApplyDetail(smsCheckDTO.getBusinessId());
         if(Objects.isNull(model)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇繚鍗曚俊鎭�");
         }
@@ -2202,19 +2449,26 @@
 
     /**
      * 濮旀墭淇� 鎶曚繚鐢宠绛剧讲
-     * @param id
+     * @param smsCheckDTO
      * @return
      */
     @Override
-    public  String getSignWTBTBDLink(Integer id) {
-        if(id == null ){
+    public  String getSignWTBTBDLink(SmsCheckDTO smsCheckDTO) {
+        if(Objects.isNull(smsCheckDTO)
+                || Objects.isNull(smsCheckDTO.getBusinessId())
+                || StringUtils.isBlank(smsCheckDTO.getCode())
+        ){
             throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        //楠岃瘉 楠岃瘉鐮�
+        if(!debugModel){
+            smsEmailService.validateCode(smsCheckDTO.getCode());
         }
         MPJLambdaWrapper wrapper=  new MPJLambdaWrapper<InsuranceApply>()
                 .selectAll(InsuranceApply.class)
                 .selectAs(Solutions::getSignKeyword,InsuranceApply::getSignKeyword)
                 .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
-                .eq(InsuranceApply::getId,id)
+                .eq(InsuranceApply::getId,smsCheckDTO.getBusinessId())
                 .last("limit 1");
 
         InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper);
@@ -2247,7 +2501,7 @@
         }
         Multifile f = multifileMapper.selectOne(new QueryWrapper<Multifile>().lambda()
                 .eq(Multifile::getObjId,model.getId())
-                .eq(Multifile::getObjType,Constants.MultiFile.COMPANY_TBD_SIGNED_PDF.getKey())
+                .eq(Multifile::getObjType,Constants.MultiFile.COMPANY_TBD_SIGNED.getKey())
                 .eq(Multifile::getIsdeleted,Constants.ZERO).last("limit 1"));
         if(f == null || StringUtils.isBlank(f.getFileurl())){
             throw  new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"瀵逛笉璧凤紝鑾峰彇纭涔︽枃浠跺け璐ワ紝璇疯仈绯诲晢鎴风‘璁ゆ姇淇濈敵璇蜂功鏄惁姝g‘锛�");

--
Gitblit v1.9.3