From 3e76748af46dcc2602205f80caf8e9ea357c1e53 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 11 六月 2025 18:28:16 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/2.0.1' into 2.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java |   87 ++++++++++++++++++++++---------------------
 1 files changed, 45 insertions(+), 42 deletions(-)

diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 3edb558..4055cf6 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -1435,6 +1435,15 @@
                 .eq(Member::getIsdeleted,Constants.ZERO)
                 .in(Member::getIdcardNo,addDetailList.stream().map(i->i.getIdcardNo()).collect(Collectors.toList()))
         );
+        ApplyDetail applyDetail = applyDetailJoinMapper.selectOne(new QueryWrapper<ApplyDetail>().lambda()
+                .eq(ApplyDetail::getApplyId,applyChange.getApplyId())
+                .isNotNull(ApplyDetail::getPrice)
+                .last("limit 1 ")
+        );
+        if(Objects.isNull(applyDetail)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "淇濆崟涓嬫棤鏄庣粏鏁版嵁");
+        }
+        List<Member> updMemberList = new ArrayList<>();
         //鏌ヨ鏈鍔犱繚鎵�鏈変汉鍛樼殑鍘嗗彶淇濆崟璁板綍
         List<ApplyDetail> applyDetailAllList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,
                 new MPJLambdaWrapper<ApplyDetail>()
@@ -1458,6 +1467,7 @@
                         .in(Member::getIdcardNo,memberList.stream().map(i->i.getId()).collect(Collectors.toList()))
                         .in(ApplyChange::getStatus, Constants.ZERO, Constants.ONE));
 
+        List<ApplyChagneDetail> applyChagneDetailList = new ArrayList<>();
         for (int i = 0; i < addDetailList.size(); i++) {
             ApplyChagneDetail applyChagneDetail = addDetailList.get(i);
             if (
@@ -1503,9 +1513,9 @@
                 member.setWorktypeId(applyChagneDetail.getWorktypeId());
                 member.setStartTime(applyChagneDetail.getStartTime());
                 member.setEndTime(applyChagneDetail.getEndTime());
-                memberMapper.updateById(member);
+//                memberMapper.updateById(member);
+                updMemberList.add(member);
                 applyChagneDetail.setMemberId(member.getId());
-                
                 if(applyChangeDetailAllList.stream().filter(
                         j->Constants.equalsInteger(j.getMemberId(),applyChagneDetail.getMemberId())
                 ).collect(Collectors.toList()).size()>Constants.ZERO){
@@ -1516,36 +1526,24 @@
             List<ApplyDetail> memberApplyDetailList = new ArrayList<>();
             if(CollectionUtils.isNotEmpty(applyDetailAllList)){
                 memberApplyDetailList = applyDetailAllList.stream().filter(j->j.getIdcardNo().equals(applyChagneDetail.getIdcardNo())).collect(Collectors.toList());
-            }
-            if(CollectionUtils.isEmpty(memberApplyDetailList)){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "淇濆崟涓湭瀛樺湪鏄庣粏璁板綍");
-            }
 
-            if(memberApplyDetailList.stream().filter(j->j.getIdcardNo().equals(applyChagneDetail.getIdcardNo())&&Constants.equalsInteger(j.getApplyId(),applyChange.getApplyId())
-                    && j.getStartTime().getTime() <= DateUtil.getMontageDate(applyChange.getApplyStartTime(),1).getTime()
-                    && j.getEndTime().getTime() >= DateUtil.getMontageDate(insuranceApply.getEndTime(),2).getTime()
-            ).collect(Collectors.toList()).size()>Constants.ZERO){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
-            };
+                if(memberApplyDetailList.stream().filter(j->j.getIdcardNo().equals(applyChagneDetail.getIdcardNo())&&Constants.equalsInteger(j.getApplyId(),applyChange.getApplyId())
+                        && j.getStartTime().getTime() <= DateUtil.getMontageDate(applyChange.getApplyStartTime(),1).getTime()
+                        && j.getEndTime().getTime() >= DateUtil.getMontageDate(insuranceApply.getEndTime(),2).getTime()
+                ).collect(Collectors.toList()).size()>Constants.ZERO){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "褰撳墠淇濆崟涓嬶紝鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄦ棩鏈熷啿绐佺殑鏁版嵁");
+                };
+                
+                if(memberApplyDetailList.stream().filter(j->j.getIdcardNo().equals(applyChagneDetail.getIdcardNo())
+                        &&Constants.equalsInteger(j.getApplyId(),applyChange.getApplyId())
+                        && j.getStartTime().getTime() <= System.currentTimeMillis()
+                        && j.getEndTime().getTime() >= System.currentTimeMillis()
+                ).collect(Collectors.toList()).size()>Constants.ZERO){
+                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄤ繚闅滀腑鐨勪繚鍗曚俊鎭紝鏃犳硶杩涜鍔犱繚");
+                };
 
-            if(memberApplyDetailList.stream().filter(j->j.getIdcardNo().equals(applyChagneDetail.getIdcardNo())
-                    &&Constants.equalsInteger(j.getApplyId(),applyChange.getApplyId())
-                    && j.getStartTime().getTime() <= System.currentTimeMillis()
-                    && j.getEndTime().getTime() >= System.currentTimeMillis()
-            ).collect(Collectors.toList()).size()>Constants.ZERO){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄤ繚闅滀腑鐨勪繚鍗曚俊鎭紝鏃犳硶杩涜鍔犱繚");
-            };
+            } 
 
-
-            List<ApplyDetail> optApplyDetailList = applyDetailAllList.stream()
-                    .filter(j->Constants.equalsInteger(j.getApplyId(),applyChange.getApplyId())
-            ).collect(Collectors.toList());
-
-            if(CollectionUtils.isEmpty(optApplyDetailList)){
-                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "淇濆崟涓湭瀛樺湪鏄庣粏璁板綍");
-            }
-
-            ApplyDetail applyDetail = optApplyDetailList.get(Constants.ZERO);
             applyChagneDetail.setPrice(applyDetail.getPrice());
             applyChagneDetail.setCreateDate(new Date());
             applyChagneDetail.setCreator(loginUserInfo.getId());
@@ -1578,18 +1576,6 @@
                 }
             };
 
-            //鏌ヨ鍛樺伐鏄湪涓诲崟涓� 鏄惁瀛樺湪鐢熸晥涓殑鏁版嵁
-            if(!Objects.isNull(applyChagneDetail.getMemberId())){
-                if (applyDetailJoinMapper.selectCount(new QueryWrapper<ApplyDetail>().lambda()
-                        .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
-                        .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
-                        .le(ApplyDetail::getStartTime, "now()")
-                        .ge(ApplyDetail::getEndTime, "now()")
-                ) > Constants.ZERO) {
-                    throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄤ繚闅滀腑鐨勪繚鍗曚俊鎭紝鏃犳硶杩涜鍔犱繚");
-                }
-            }
-
             //楠岃瘉娲鹃仯鍗曚綅淇℃伅 涓庡伐绉嶄俊鎭� 鏄惁瀛樺湪
             if(Constants.equalsInteger(solutions.getHasDispatchUnit(),Constants.ZERO)){
                 if (duSolutionList.stream().filter(d -> d.getDispatchUnitId().equals(applyChagneDetail.getDuId())).collect(Collectors.toList()).size() <= Constants.ZERO) {
@@ -1608,7 +1594,24 @@
             }else{
                 applyChagneDetail.setFee(detailFee);
             }
-            applyChagneDetailJoinMapper.insert(applyChagneDetail);
+            applyChagneDetail.setId(null);
+            applyChagneDetailList.add(applyChagneDetail);
+        }
+        if(CollectionUtils.isNotEmpty(applyChagneDetailList)){
+            applyChagneDetailJoinMapper.insert(applyChagneDetailList);
+        }
+        if(CollectionUtils.isNotEmpty(updMemberList)){
+            Thread t1=new Thread(new Runnable() {
+                @Override
+                public void run() {
+                    try {
+                        memberMapper.insertOrUpdate(updMemberList);
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+            });
+            t1.start(); 
         }
     }
 

--
Gitblit v1.9.3