From e3615abf0e9b87f574ddce53f94529d40762cecc Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 07 六月 2024 17:34:43 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0.1' into 1.0.1

---
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |   81 +++++++++++++++++++++++++++-------------
 1 files changed, 54 insertions(+), 27 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 07136ac..d0cfb09 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
@@ -2,6 +2,7 @@
 
 import cn.hutool.core.util.IdcardUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.api.R;
 import com.doumee.biz.system.SystemDictDataBiz;
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.constants.ResponseStatus;
@@ -93,6 +94,8 @@
 
     @Autowired
     private MemberMapper memberMapper;
+    @Autowired
+    private MemberJoinMapper memberJoinMapper;
     @Autowired
     private DuSolutionMapper duSolutionMapper;
     @Autowired
@@ -1299,6 +1302,7 @@
                     return;
                 }
                 uploadChangeSignedFileDo(applyChange,fileUrl,path+fileUrl);
+                return;
             }
 
             //濮旀墭淇� 鍔犲噺淇濅紒涓氱缃�
@@ -1323,6 +1327,7 @@
                     return;
                 }
                 uploadChangeMemberListSignedFileDo(applyChangeMemberList,fileUrl,path+fileUrl);
+                return;
             }
 
 
@@ -1337,6 +1342,7 @@
                     return;
                 }
                 uploadUnionApplySignedFileDo(unionApply,fileUrl,path+fileUrl);
+                return;
             }
 
 
@@ -1356,6 +1362,7 @@
                     return;
                 }
                 uploadUnionChangeSignedFileDo(unionChange,fileUrl,path+fileUrl);
+                return;
             }
 
 
@@ -1776,6 +1783,44 @@
         }
 
         if(CollectionUtils.isNotEmpty(applyDetailList)){
+            List<Member> memberList = memberMapper.selectList(new QueryWrapper<Member>().lambda()
+                    .eq(Member::getCompanyId,insuranceApply.getCompanyId())
+                    .eq(Member::getIsdeleted,Constants.ZERO));
+
+            List<Member> addMemberList = new ArrayList<>();
+            for (int i = 0; i < applyDetailList.size(); i++) {
+                ApplyDetail applyDetail = applyDetailList.get(i);
+                Member member = null;
+                if(CollectionUtils.isNotEmpty(memberList)){
+                    Optional<Member>  optional = memberList.stream().filter(m->m.getIdcardNo().equals(applyDetail.getIdcardNo())).findFirst();
+                    if(optional.isPresent()){
+                        member = optional.get();
+                    }
+                }
+                if(Objects.isNull(member)){
+                    member = new Member();
+                    member.setCreateDate(new Date());
+                    member.setCreator(loginUserInfo.getId());
+                    member.setIsdeleted(Constants.ZERO);
+                    member.setName(applyDetail.getMemberName());
+                    member.setCompanyId(insuranceApply.getCompanyId());
+                    member.setSex(Constants.getSexByIdCard(applyDetail.getIdcardNo()));
+                    if(!IdcardUtil.isValidCard(applyDetail.getIdcardNo())){
+                        throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅韬唤璇佷俊鎭敊璇痆"+member.getName()+"]");
+                    }
+                    member.setIdcardNo(applyDetail.getIdcardNo());
+                    member.setApplyId(insuranceApply.getId());
+                    member.setStartTime(applyDetail.getStartTime());
+                    member.setEndTime(applyDetail.getEndTime());
+                    member.setDuId(applyDetail.getDuId());
+                    member.setWorktypeId(applyDetail.getWorktypeId());
+                    addMemberList.add(member);
+                }
+            }
+            if(CollectionUtils.isNotEmpty(addMemberList)){
+                memberJoinMapper.insertBatchSomeColumn(addMemberList);
+            }
+            memberList.addAll(addMemberList);
             for (int i = 0; i < applyDetailList.size(); i++) {
                 ApplyDetail applyDetail = applyDetailList.get(i);
                 if(Objects.isNull(applyDetail)
@@ -1793,35 +1838,16 @@
                 applyDetail.setEndTime(insuranceApply.getApplyEndTime());
                 applyDetail.setSortnum(i);
                 applyDetail.setApplyId(insuranceApply.getId());
-                Member member = new Member();
+                Member member = null;
                 if(Objects.isNull(applyDetail.getMemberId())){
-                    //鏌ヨ鏄惁瀛樺湪璇ョ敤鎴�
-                    member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
-                            .eq(Member::getCompanyId,insuranceApply.getCompanyId())
-                            .eq(Member::getIsdeleted,Constants.ZERO)
-                            .eq(Member::getIdcardNo,applyDetail.getIdcardNo())
-                            .last(" limit 1")
-                    );
-                    if(Objects.isNull(member)){
-                        member = new Member();
-                        member.setCreateDate(new Date());
-                        member.setCreator(loginUserInfo.getId());
-                        member.setIsdeleted(Constants.ZERO);
-                        member.setName(applyDetail.getMemberName());
-                        member.setCompanyId(insuranceApply.getCompanyId());
-                        member.setSex(Constants.getSexByIdCard(applyDetail.getIdcardNo()));
-                        if(!IdcardUtil.isValidCard(applyDetail.getIdcardNo())){
-                            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚鍛樺伐淇℃伅韬唤璇佷俊鎭敊璇痆"+member.getName()+"]");
+                    if(CollectionUtils.isNotEmpty(memberList)){
+                        Optional<Member>  optional = memberList.stream().filter(m->m.getIdcardNo().equals(applyDetail.getIdcardNo())).findFirst();
+                        if(optional.isPresent()){
+                            member = optional.get();
                         }
-                        member.setIdcardNo(applyDetail.getIdcardNo());
-                        member.setApplyId(insuranceApply.getId());
-                        member.setStartTime(applyDetail.getStartTime());
-                        member.setEndTime(applyDetail.getEndTime());
-                        member.setDuId(applyDetail.getDuId());
-                        member.setWorktypeId(applyDetail.getWorktypeId());
-
-                        memberMapper.insert(member);
-                    }else{
+                    }
+                    //鏌ヨ鏄惁瀛樺湪璇ョ敤鎴�
+                    if(!Objects.isNull(member)){
                         member.setApplyId(insuranceApply.getId());
                         member.setDuId(applyDetail.getDuId());
                         member.setWorktypeId(applyDetail.getWorktypeId());
@@ -2715,6 +2741,7 @@
                 .leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId)
                 .isNull(ApplyDetail::getFromId)
                 .eq(ApplyDetail::getApplyId,model.getId())
+                .orderByAsc(ApplyDetail::getId)
         );
         model.setApplyDetailList(applyDetailList);
         return model;

--
Gitblit v1.9.3