From e6ff15690bf92e4c942f279d95cabe726d3cd56a Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期二, 10 六月 2025 15:26:35 +0800
Subject: [PATCH] 提交一把订单

---
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |  137 ++++++++++++++++++++++++---------------------
 1 files changed, 74 insertions(+), 63 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 906ff97..43d2c6c 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
@@ -310,16 +310,19 @@
 
         if(CollectionUtils.isNotEmpty(applyDetailList)){
             List<MemberInsurance> memberInsuranceList = new ArrayList<>();
+            List<String> idCodeList = new ArrayList<>();
             for (ApplyDetail applyDetail:applyDetailList) {
+                idCodeList.add(applyDetail.getIdcardNo());
+            }
+            List<ApplyDetail> allDetailList =   this.getMemberSolutionList(solutions.getParentId(),idCodeList, update.getStartTime()
+                    ,update.getEndTime(),insuranceApply.getId());
 
+            for (ApplyDetail applyDetail:applyDetailList) {
                 //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-                this.checkMemberSolution(solutions.getParentId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),update.getStartTime()
-                        ,update.getEndTime(),insuranceApply.getId());
-
+                this.checkMemberSolution( applyDetail.getIdcardNo(),allDetailList,applyDetail.getMemberName());
                 MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId());
                 memberInsurance.setRelationType(Constants.ZERO);
                 memberInsuranceList.add(memberInsurance);
-
                 memberMapper.update(null,new UpdateWrapper<Member>()
                         .lambda()
                         .set(Member::getStartTime,memberInsurance.getStartTime())
@@ -2420,7 +2423,12 @@
             List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
                     .eq(Member::getCompanyId,insuranceApply.getCompanyId())
                     .eq(Member::getIsdeleted,Constants.ZERO));
-
+            List<String> idCodeList = new ArrayList<>();
+            for (ApplyDetail applyDetail:applyDetailList) {
+                idCodeList.add(applyDetail.getIdcardNo());
+            }
+            List<ApplyDetail> allDetailList =   this.getMemberSolutionList(solutions.getParentId(),idCodeList, insuranceApply.getStartTime()
+                    ,insuranceApply.getEndTime(),insuranceApply.getId());
             List<Member> addMemberList = new ArrayList<>();
             for (int i = 0; i < applyDetailList.size(); i++) {
                 ApplyDetail applyDetail = applyDetailList.get(i);
@@ -2449,7 +2457,8 @@
                     addMemberList.add(member);
                 }
                 //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-                this.checkMemberSolution(solutions.getParentId(),member.getIdcardNo(),member.getName(),insuranceApply.getStartTime(),insuranceApply.getEndTime(),insuranceApply.getId());
+                this.checkMemberSolution( applyDetail.getIdcardNo(),allDetailList,applyDetail.getMemberName());
+//                this.checkMemberSolutionOld(solutions.getParentId(),member.getIdcardNo(),member.getName(),insuranceApply.getStartTime(),insuranceApply.getEndTime(),insuranceApply.getId());
             }
             if(CollectionUtils.isNotEmpty(addMemberList)){
                 memberJoinMapper.insert(addMemberList);
@@ -2546,12 +2555,22 @@
 
     /**
      * 鏌ヨ 浼氬憳淇℃伅鍦ㄦ柟妗堜笅鏄惁瀛樺湪鍐茬獊鏁版嵁
-     * @param startTime
-     * @param endTime
      */
+    public void checkMemberSolution(String idCode,List<ApplyDetail> allDetailList,String memberName){
+        List<ApplyDetail> applyDetailList = getMemberSolutionListByIdcode(idCode,allDetailList);
+        if(applyDetailList.size() >Constants.ZERO){
+            String companyName = applyDetailList.get(Constants.ZERO).getCompanyName();
+            if(StringUtils.isNotBlank(companyName)){
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝凡鍦ㄣ��"+companyName+"銆戝瓨鍦ㄤ繚闄�,璇疯仈绯诲鏈嶇‘璁�");
+            }else{
+                throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝湪璇ヤ繚闄╂柟妗堜笅宸插瓨鍦ㄦ姇淇濊褰曪紝鏃犳硶杩涜璇ユ搷浣�");
+            }
+
+        };
+    }
     @Override
-    public void checkMemberSolution(Integer solutionParentId,String idCode,String memberName,Date startTime,Date endTime,Integer applyId){
-        List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>();
+    public void checkMemberSolutionOld(Integer solutionParentId,String idCode, String memberName, Date startTime,Date endTime,Integer applyId){
+        List<ApplyDetail> applyDetailList = new ArrayList<>();
         try {
             applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
                     new MPJLambdaWrapper<ApplyDetail>()
@@ -2589,6 +2608,51 @@
             }
 
         };
+    }
+    private List<ApplyDetail> getMemberSolutionListByIdcode(String idCode, List<ApplyDetail> allDetailList) {
+        if(allDetailList == null || allDetailList.size()==0){
+            return  new ArrayList<>();
+        }
+        List<ApplyDetail> list = new ArrayList<>();
+        for(ApplyDetail d : allDetailList){
+            if(StringUtils.equals(d.getIdcardNo(),idCode)){
+                list.add(d);
+            }
+        }
+        return list;
+    }
+
+    public  List<ApplyDetail>  getMemberSolutionList(Integer solutionParentId,List<String> idCodeList, Date startTime,Date endTime,Integer applyId){
+        List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>();
+        try {
+            applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
+                    new MPJLambdaWrapper<ApplyDetail>()
+                            .selectAll(ApplyDetail.class)
+                            .selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode)
+                            .selectAs(Company::getName,ApplyDetail::getCompanyName)
+                            .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
+                            .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
+                            .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
+                            .in(ApplyDetail::getIdcardNo,idCodeList)
+                            .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
+                            .eq(Solutions::getParentId,solutionParentId)
+                            .ne(Objects.nonNull(applyId),InsuranceApply::getId,applyId)
+                            .notIn(InsuranceApply::getStatus
+                                    ,Constants.InsuranceApplyStatus.FAIL_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_PASS.getKey()
+                                    ,Constants.InsuranceApplyStatus.CLOSE.getKey()
+                                    ,Constants.InsuranceApplyStatus.WTB_RETURN.getKey()
+                                    ,Constants.InsuranceApplyStatus.WTB_CLOSED.getKey() )
+                            .apply(" ( " +
+                                    " '"+DateUtil.getPlusTime(startTime)+"'  <= t.start_time AND t.start_time < '"+DateUtil.getPlusTime(endTime)+"' " +
+                                    " or " +
+                                    "  ( '"+DateUtil.getPlusTime(startTime)+"' < t.end_time AND t.end_time < '"+DateUtil.getPlusTime(endTime)+"' )  " +
+                                    " or " +
+                                    " ( '"+DateUtil.getPlusTime(startTime)+"' > t.start_time AND '"+DateUtil.getPlusTime(endTime)+"' < t.end_time )" +
+                                    " ) " ));
+        }catch (Exception e){
+        }
+      return applyDetailList;
     }
 
     public static void checkStaticMemberSolution(Integer solutionId,Integer memberId,String memberIdCard,String memberName,Date startTime,
@@ -3765,59 +3829,6 @@
         }
         return applyPowerVO;
     }
-
-//    @Override
-//    public InsuranceDataVO getInsuranceDataVO(){
-//        InsuranceDataVO insuranceDataVO = new InsuranceDataVO();
-//        insuranceDataVO.setInsuranceTotal(Constants.ZERO);
-//        insuranceDataVO.setInsuranceAddTotal(Constants.ZERO);
-//        insuranceDataVO.setInsuranceApplyTotal(Constants.ZERO);
-//        insuranceDataVO.setInsuranceApplyAddTotal(Constants.ZERO);
-//        insuranceDataVO.setInsuranceUserTotal(Constants.ZERO);
-//        insuranceDataVO.setInsuranceUserAddTotal(Constants.ZERO);
-//        insuranceDataVO.setTotalAddFee(BigDecimal.ZERO);
-//        insuranceDataVO.setTotalFee(BigDecimal.ZERO);
-//        //鏈湀鏃ユ湡
-//        String monthData = DateUtil.DateToStr(new Date(),"yyyy-MM");
-//        //淇濋櫓鍏徃鏁伴噺
-//        List<Insurance> insuranceList = insuranceMapper.selectList(new QueryWrapper<Insurance>().lambda().eq(Insurance::getIsdeleted,Constants.ZERO).eq(Insurance::getStatus,Constants.ZERO));
-//        if(CollectionUtils.isNotEmpty(insuranceList)){
-//            insuranceDataVO.setInsuranceTotal(insuranceList.size());
-//            insuranceDataVO.setInsuranceAddTotal(insuranceList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
-//        }
-//
-//        //淇濆崟鏁伴噺
-//        List<InsuranceApply> insuranceApplyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>()
-//                .lambda().eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
-//                Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
-//        );
-//        if(CollectionUtils.isNotEmpty(insuranceApplyList)){
-//            insuranceDataVO.setInsuranceApplyTotal(insuranceApplyList.size());
-//            insuranceDataVO.setInsuranceApplyAddTotal(insuranceApplyList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM").equals(monthData)).collect(Collectors.toList()).size());
-//        }
-//
-//        //鍦ㄤ繚浜烘暟
-//        List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,new MPJLambdaWrapper<ApplyDetail>().selectAll(ApplyDetail.class)
-//                .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
-//                .eq(InsuranceApply::getIsdeleted,Constants.ZERO).in(InsuranceApply::getStatus,
-//                        Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())
-//                .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
-//                .apply(" ( t.START_TIME >= now() and t.END_TIME <= now() ) ")
-//        );
-//        if(CollectionUtils.isNotEmpty(applyDetailList)){
-//            insuranceDataVO.setInsuranceUserTotal(applyDetailList.size());
-//            insuranceDataVO.setInsuranceUserAddTotal(
-//                    applyDetailList.stream().filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
-//                            .equals(monthData)).collect(Collectors.toList()).size());
-//
-//            insuranceDataVO.setTotalFee(applyDetailList.stream().map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-//            insuranceDataVO.setTotalAddFee(applyDetailList.stream()
-//                    .filter(i->Objects.nonNull(i.getCreateDate())&&DateUtil.DateToStr(i.getCreateDate(),"yyyy-MM")
-//                    .equals(monthData)).map(i->i.getFee()).reduce(BigDecimal.ZERO,BigDecimal::add));
-//        }
-//
-//        return insuranceDataVO;
-//    }
 
 
 

--
Gitblit v1.9.3