From 50fb58286ed3b718c39a97e0987ee7561a295651 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 04 七月 2025 17:56:41 +0800
Subject: [PATCH] git ch

---
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java |  736 +++++++++-----------------------------------------------
 1 files changed, 120 insertions(+), 616 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..e711bfd 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
@@ -58,7 +58,6 @@
 public class InsuranceApplyServiceImpl implements InsuranceApplyService {
     @Value("${debug_model}")
     private boolean debugModel;
-
     @Autowired
     private InsuranceApplyMapper insuranceApplyMapper;
     @Autowired
@@ -92,11 +91,7 @@
     @Autowired
     private MemberJoinMapper memberJoinMapper;
     @Autowired
-    private DuSolutionMapper duSolutionMapper;
-    @Autowired
     private DuSolutionJoinMapper duSolutionJoinMapper;
-    @Autowired
-    private DuWorktypeMapper duWorktypeMapper;
     @Autowired
     private DuWorkTypeJoinMapper duWorkTypeJoinMapper;
     @Autowired
@@ -115,227 +110,10 @@
     private SystemUserMapper systemUserMapper;
     @Autowired
     private CompanyDepartmentMapper companyDepartmentMapper;
-    @Autowired
-    private InsuranceMapper insuranceMapper;
-
-    @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public Integer back(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);
-        }
-        Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
-        if(Objects.isNull(solutions)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
-        }
-        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        InsuranceApply update = new InsuranceApply();
-        if(Constants.equalsInteger(solutions.getType(),Constants.ZERO)){
-            if(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
-            }
-            update.setStatus(Constants.InsuranceApplyStatus.FAIL_RETURN.getKey());
-        }else{
-            if( !(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_MEMBER_LIST_SIGNATURE.getKey())
-            || Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey())
-            || Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey()))){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
-            }
-            update.setStatus(Constants.InsuranceApplyStatus.WTB_RETURN.getKey());
-        }
-        update.setEditDate(new Date());
-        update.setEditor(user.getId());
-        update.setCheckDate(update.getEditDate());
-        update.setCheckInfo(insuranceApply.getCheckInfo());
-        update.setCheckUserId(user.getId());
-        update.setId(model.getId());
-        insuranceApplyMapper.updateById(update);
-        //瀛樺偍寰呭姙淇℃伅
-        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
-        //鍒犻櫎鍏朵粬寰呭姙
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
-                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
-                .eq(Notices::getObjId,insuranceApply.getId()));
-        Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
-                model.getCompanyId(), Constants.NoticeType.FOUR);
-        noticesMapper.insert(notices);
-        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.PLATFORM_RETURN;
-        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
-    @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
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public Integer uploadBaoxiandan(InsuranceApply insuranceApply) {
-        if(insuranceApply.getId() == null
-                || insuranceApply.getCode() == null
-                || insuranceApply.getStartTime() == null
-                || insuranceApply.getBaoxiandanFile() == null
-                ||StringUtils.isBlank( insuranceApply.getBaoxiandanFile() .getFileurl())
-                ||StringUtils.isBlank( insuranceApply.getBaoxiandanFile() .getName())){
-            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.SIGNATURE.getKey())){
-            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
-        }
-        if(model.getApplyEndTime()== null || model.getStartTime().getTime()>model.getApplyEndTime().getTime() ){
-            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风敓鏁堝懆鏈熸椂闂翠笉绗﹀悎瑕佹眰锛岃纭鍚庝慨鏀归噸璇晘");
-        }
-        Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
-        if(Objects.isNull(solutions)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
-        }
-        //璁$畻瀹為檯鎴鏃堕棿
-        Date actEndTime = new Date(model.getApplyEndTime().getTime() + (insuranceApply.getStartTime().getTime() - model.getApplyStartTime().getTime()));
-        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        InsuranceApply update = new InsuranceApply();
-        update.setEditDate(new Date());
-        update.setEditor(user.getId());
-        update.setStatus(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey());
-        update.setCheckDate(update.getEditDate());
-        update.setCheckInfo(insuranceApply.getCheckInfo());
-        update.setCheckUserId(user.getId());
-        update.setId(model.getId());
-        update.setCode(insuranceApply.getCode());
-        update.setEndTime(actEndTime);
-        update.setStartTime(insuranceApply.getStartTime());
-        CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO();
-        countCyclePriceDTO.setSolutionsId(model.getSolutionId());
-        countCyclePriceDTO.setStartDate(insuranceApply.getStartTime());
-        update.setFinalEndTime(this.getCountCyclePriceVO(countCyclePriceDTO).getEndDate());
-        insuranceApplyMapper.updateById(update);
-
-        //淇敼鏄庣粏琛岀殑寮�濮嬬粨鏉熸棩鏈�
-        applyDetailMapper.update(null,new UpdateWrapper<ApplyDetail>().lambda()
-                .set(ApplyDetail::getStartTime,insuranceApply.getStartTime())
-                .set(ApplyDetail::getEndTime,actEndTime)
-                .eq(ApplyDetail::getApplyId,model.getId()));
-
-        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
-                .eq(Multifile::getIsdeleted,Constants.ZERO)
-                .eq(Multifile::getObjType,Constants.MultiFile.BD_DONE_PDF.getKey())
-                .eq(Multifile::getObjId,update.getId())
-                .set(Multifile::getIsdeleted,Constants.ONE)
-                .set(Multifile::getEditDate,update.getEditDate())
-                .set(Multifile::getEditor,update.getEditor())
-        );
-
-        insuranceApply.getBaoxiandanFile().setIsdeleted(Constants.ZERO);
-        insuranceApply.getBaoxiandanFile().setCreator(user.getId());
-        insuranceApply.getBaoxiandanFile().setObjId(update.getId());
-        insuranceApply.getBaoxiandanFile().setCreateDate(update.getEditDate());
-        insuranceApply.getBaoxiandanFile().setObjType(Constants.MultiFile.BD_DONE_PDF.getKey());
-        insuranceApply.getBaoxiandanFile().setType(Constants.TWO);
-        multifileMapper.insert(insuranceApply.getBaoxiandanFile());
-        update.setBaoxiandanFile(insuranceApply.getBaoxiandanFile());
-
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,Constants.NoticeObjectType.INSURANCE_APPLY.getKey())
-                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
-                .eq(Notices::getObjId,insuranceApply.getId()));
-
-        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.UPLOAD_INSURANCE;
-        String info = "";
-        if(model.getApplyStartTime()!=null && model.getApplyStartTime().getTime()/1000!= insuranceApply.getStartTime().getTime()/1000){
-            info =applyLogType.getInfo();
-            info = info.replace("${param1}",DateUtil.getPlusTime2(model.getStartTime()));
-            info = info.replace("${param2}",DateUtil.getPlusTime2(insuranceApply.getStartTime()));
-        }
-        ApplyLog log = new ApplyLog(update,applyLogType.getName(), info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
-        applyLogMapper.insert(log);
 
 
-        //瀛樺偍鍛樺伐淇℃伅鎶曚繚璁板綍
-        //鏌ヨ鍗曟嵁鏄庣粏璁板綍
-        MPJLambdaWrapper<ApplyDetail> queryWrapper = new MPJLambdaWrapper<>();
-        queryWrapper.selectAll(ApplyDetail.class);
-        queryWrapper.selectAs(DispatchUnit::getName,ApplyDetail::getDuName);
-        queryWrapper.selectAs(InsuranceApply::getCode,ApplyDetail::getApplyCode);
-        queryWrapper.selectAs(Solutions::getId,ApplyDetail::getSolutionId);
-        queryWrapper.selectAs(Solutions::getName,ApplyDetail::getSolutionName);
-        queryWrapper.selectAs(Worktype::getName,ApplyDetail::getWorkTypeName);
-        queryWrapper.selectAs(Member::getIdcardNo,ApplyDetail::getIdcardNo);
-        queryWrapper.selectAs(Member::getName,ApplyDetail::getMemberName);
-        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyDetail::getDuId);
-        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyDetail::getWorktypeId);
-        queryWrapper.leftJoin(Member.class,Member::getId,ApplyDetail::getMemberId);
-        queryWrapper.leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId);
-        queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId);
-        queryWrapper.eq(ApplyDetail::getApplyId,insuranceApply.getId());
-        List<ApplyDetail> applyDetailList = applyDetailJoinMapper.selectJoinList(ApplyDetail.class,queryWrapper);
 
-        if(CollectionUtils.isNotEmpty(applyDetailList)){
-            List<MemberInsurance> memberInsuranceList = new ArrayList<>();
-            for (ApplyDetail applyDetail:applyDetailList) {
 
-                //鏌ヨ浜哄憳淇℃伅鏄惁瀛樺湪鐩稿悓鐨勬柟妗堜笅鏄惁瀛樺湪 鍐茬獊鏁版嵁
-                this.checkMemberSolution(solutions.getParentId(),applyDetail.getIdcardNo(),applyDetail.getMemberName(),update.getStartTime()
-                        ,update.getEndTime(),insuranceApply.getId());
-
-                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())
-                        .set(Member::getEndTime,memberInsurance.getEndTime())
-                        .set(Member::getDuId,memberInsurance.getDuId())
-                        .set(Member::getWorktypeId,memberInsurance.getWorktypeId())
-                        .eq(Member::getId, memberInsurance.getMemberId())
-                );
-
-            }
-            memberInsuranceJoinMapper.insert(memberInsuranceList);
-        }
-
-        this.updateApplyCurrentFee(insuranceApply.getId(),null);
-        return  1;
-    }
 
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
@@ -401,82 +179,7 @@
         return  1;
 
     }
-    @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public Integer dealBackApply(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);
-        }
-
-        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        Constants.ApplyLogType applyLogType = null;
-        String info = "";
-        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
-        //澶勭悊閫�鍥炵敵璇烽�氱煡
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
-                .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
-                .eq(Notices::getObjId,insuranceApply.getId()));
-        InsuranceApply update = new InsuranceApply();
-        if(insuranceApply.getDealBackApply() ==1){
-            //濡傛灉鏄┏鍥�,鍙兘鍙┏鍥炲凡绛剧珷鐘舵�佷笅鐨勯��鍥炵敵璇风姸鎬佽繘琛屾搷浣�
-            if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE.getKey())||
-                Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE.getKey())||
-                Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_UPLOAD.getKey())||
-                    Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_PASS.getKey()))
-            ){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
-            }
-            applyLogType = Constants.ApplyLogType.PLATFORM_UN_AGREE_BACK;
-            info = applyLogType.getInfo();
-            info = info.replace("${param}", insuranceApply.getCheckInfo());
-            if( Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE.getKey())){
-                update.setStatus(Constants.InsuranceApplyStatus.SIGNATURE.getKey());
-            }else if( Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE.getKey())){
-                update.setStatus(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey());
-            }else if(  Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_UPLOAD.getKey())){
-                update.setStatus(Constants.InsuranceApplyStatus.UPLOAD.getKey());
-            }else if(  Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_PASS.getKey())){
-                update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey());
-            }
-        }else{
-            //濡傛灉鏄悓鎰�,涓ょ鐢宠閫�鍥炵姸鎬侀兘鍙搷浣�
-            if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE.getKey())
-                    ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE.getKey())
-                    ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_UPLOAD.getKey()))){
-                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
-            }
-            applyLogType = Constants.ApplyLogType.PLATFORM_AGREE_BACK;
-            update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey());
-
-
-            //閫氱煡浼佷笟 宸查��鍥�
-            Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
-            if(Objects.nonNull(solutions)){
-                Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
-                        insuranceApply.getCompanyId(), Constants.NoticeType.FOUR);
-                noticesMapper.insert(notices);
-            }
-        }
-        update.setEditDate(new Date());
-        update.setEditor(user.getId());
-        update.setCheckDate(update.getEditDate());
-        update.setCheckInfo(insuranceApply.getCheckInfo());
-        update.setCheckUserId(user.getId());
-        update.setId(model.getId());
-        insuranceApplyMapper.updateById(update);
-
-
-        ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
-        applyLogMapper.insert(log);
-        return  1;
-
-
-    }
 
     @Override
     public  String getSignLink(Integer id) {
@@ -542,7 +245,6 @@
         return  link;
     }
 
-
     public String uploadSignFile(String link){
         try {
             String bucketName = systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode();
@@ -560,9 +262,7 @@
         }catch (Exception e){
         }
         return  null;
-
     }
-
 
     public Multifile   uploadSignedFileDo(InsuranceApply model,String fileurl,String fullUrl) {
         InsuranceApply update = new InsuranceApply();
@@ -594,20 +294,16 @@
         update.setCheckUserId(model.getCreator());
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
-
         //鍒犻櫎鍏朵粬寰呭姙
         noticesMapper.delete(new QueryWrapper<Notices>().lambda()
                 .eq(Notices::getObjType,noticeObjectType.getKey())
                 .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                 .eq(Notices::getObjId,model.getId()));
-
         //骞冲彴寰呭姙
         Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),model.getCompanyId(),Constants.NoticeType.TWO);
         noticesMapper.insert(notices);
-
         CompanySolution companySolution = companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda()
                 .eq(CompanySolution::getIsdeleted,Constants.ZERO)
                 .eq(CompanySolution::getSolutionId,model.getSolutionId())
@@ -620,7 +316,6 @@
                     model.getId(),model.getSolutionsName(),companySolution.getShopId(),Constants.NoticeType.ZERO);
             noticesMapper.insert(shopNotices);
         }
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -656,7 +351,6 @@
         update.setCheckInfo("浼佷笟瀹屾垚绛剧讲鏂规纭涔�");
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -669,7 +363,6 @@
         f.setInfo("浼佷笟瀹屾垚绛剧讲鏂规纭涔�");
         f.setName("鏂规纭涔�.pdf");
         multifileMapper.insert(f);
-
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WTB_FINISH_FAQRS;
         ApplyLog log = new ApplyLog(model,applyLogType.getName(), null
                 ,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
@@ -694,7 +387,6 @@
         update.setCheckUserId(model.getCreator());
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -707,7 +399,6 @@
         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));
@@ -731,7 +422,6 @@
         update.setCheckUserId(model.getCreator());
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -744,15 +434,11 @@
         f.setInfo("浼佷笟瀹屾垚绛剧讲浜哄憳鍚嶅崟");
         f.setName("浜哄憳鍚嶅崟.pdf");
         multifileMapper.insert(f);
-
-
-
         //鏁版嵁鏃ュ織
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WTB_FINISH_MEMBER_LIST;
         ApplyLog log = new ApplyLog(model,applyLogType.getName(), null
                 ,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
         applyLogMapper.insert(log);
-
         Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
         //寰呭姙閫氱煡
         if(Objects.nonNull(solutions)&&Objects.nonNull(solutions.getShopId())){
@@ -762,12 +448,9 @@
             notices.setParam1(model.getId().toString());
             noticesMapper.insert(notices);
         }
-
-
         return  f;
     }
-    
-    
+
     public Multifile  uploadChangeSignedFileDo(ApplyChange model,String fileurl,String fullurl) {
         Integer companyId = model.getCompanyId();
         ApplyChange update = new ApplyChange();
@@ -779,7 +462,6 @@
         update.setCheckUserId(model.getCreator());
         update.setId(model.getId());
         applyChangeMapper.updateById(update);
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE;
         if(model.getType().equals(Constants.ONE)){
@@ -793,7 +475,6 @@
                 companyId, Constants.NoticeType.TWO);
         notices.setParam1(model.getApplyId().toString());
         noticesMapper.insert(notices);
-
         Solutions solutions = solutionsMapper.selectById(model.getSolutionsId());
         //鍟嗘埛寰呭姙
         if(Objects.nonNull(solutions)&&Objects.nonNull(solutions.getShopId())){
@@ -802,7 +483,6 @@
             notices.setParam1(model.getApplyId().toString());
             noticesMapper.insert(shopNotices);
         }
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -815,15 +495,12 @@
         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);
-
         startSendEmail(f,model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail());
         return f;
     }
-
 
     public Multifile  uploadChangeMemberListSignedFileDo(ApplyChange model,String fileurl,String fullurl) {
         ApplyChange update = new ApplyChange();
@@ -835,7 +512,6 @@
         update.setCheckUserId(model.getCreator());
         update.setId(model.getId());
         applyChangeMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -852,12 +528,9 @@
         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);
-
-
         Solutions solutions = solutionsMapper.selectById(model.getSolutionsId());
         //寰呭姙閫氱煡
         if(Objects.nonNull(solutions)&&Objects.nonNull(solutions.getShopId())){
@@ -903,8 +576,6 @@
         f.setInfo("鍟嗘埛绛剧讲鎶曚繚鍗�");
         f.setName("鍟嗘埛绛剧讲鎶曚繚鍗�.pdf");
         multifileMapper.insert(f);
-
-
         List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectList(new QueryWrapper<InsuranceApply>().
                 lambda().eq(InsuranceApply::getUnionApplyId,model.getId()));
         if(CollectionUtils.isNotEmpty(insuranceApplyList)){
@@ -919,7 +590,6 @@
                 f.setInfo("鎶曚繚鍗�");
                 f.setName("鎶曚繚鍗�.pdf");
                 multifileMapper.insert(f);
-
                 insuranceApplyJoinMapper.update(null,new UpdateWrapper<InsuranceApply>().lambda()
                         .set(InsuranceApply::getUnionApplyTbdStatus,Constants.TWO)
                         .set(InsuranceApply::getEditDate,new Date())
@@ -927,13 +597,10 @@
                 );
             }
         }
-
         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;
     }
 
@@ -952,7 +619,6 @@
         update.setStatus(Constants.UnionChangeStatus.UPLOAD_INSURANCE_POLICY.getKey());
         update.setId(model.getId());
         unionChangeJoinMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -965,15 +631,12 @@
         f.setInfo("鎶曚繚鐢宠鍗� -鐢宠鍗�");
         f.setName("鎶曚繚鐢宠鍗�.pdf");
         multifileMapper.insert(f);
-
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.CA_HBD_SIGNATURE_TBD;
         ApplyLog log = new ApplyLog(model,applyLogType.getName(), null
                 ,model.getId(),applyLogType.getKey(),null, JSONObject.toJSONString(model));
         applyLogMapper.insert(log);
-
         return  f;
     }
-
 
     public Multifile   uploadContractFirstSignedFileDo(Contract model,String fileurl,String fullUrl) {
         Contract update = new Contract();
@@ -983,7 +646,6 @@
         update.setStatus(Constants.equalsInteger(model.getType(),Constants.ZERO)?Constants.ONE:Constants.THREE);
         update.setId(model.getId());
         contractJoinMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -996,7 +658,6 @@
         f.setInfo("鍚堝悓绛剧讲鏂囦欢");
         f.setName("鍚堝悓绛剧讲鏂囦欢.pdf");
         multifileMapper.insert(f);
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.CONTRACT;
         //鍒犻櫎鍏朵粬寰呭姙
@@ -1025,8 +686,6 @@
         return noticeInfo;
     }
 
-
-
     public Multifile  uploadContractDoneSignedFileDo(Contract model,String fileurl,String fullUrl) {
         Contract update = new Contract();
         update.setEditDate(new Date());
@@ -1035,7 +694,6 @@
         update.setStatus(Constants.THREE);
         update.setId(model.getId());
         contractJoinMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -1048,14 +706,12 @@
         f.setInfo("鍚堝悓绛剧讲鏂囦欢");
         f.setName("鍚堝悓绛剧讲鏂囦欢.pdf");
         multifileMapper.insert(f);
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.CONTRACT;
         //鍒犻櫎鍏朵粬寰呭姙
         noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey())
                 .ne(Notices::getType,Constants.NoticeType.SIX.getStatus())
                 .eq(Notices::getObjId,model.getId()));
-
         return  f;
     }
 
@@ -1070,7 +726,6 @@
         update.setSignDate(new Date());
         update.setId(model.getId());
         companySolutionMapper.updateById(update);
-
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -1083,7 +738,6 @@
         f.setInfo("鏂规纭涔�");
         f.setName("鏂规纭涔�.pdf");
         multifileMapper.insert(f);
-
         //瀛樺偍寰呭姙淇℃伅
         Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SOLUTIONS;
         //鍒犻櫎鍏朵粬寰呭姙
@@ -1093,9 +747,6 @@
 
         return  f;
     }
-
-
-
 
     private void startSendEmail(Multifile f, String companyName, String solutionsName, String solutionEmail) {
         if(StringUtils.isBlank(solutionEmail) || f==null|| StringUtils.isBlank(f.getFileurl())){
@@ -1116,7 +767,6 @@
             file.delete();//鍙戦�佸悗鍒犻櫎涓存椂鏂囦欢
         }
     }
-
 
     @Override
     public void testSendEmail(){
@@ -1196,7 +846,6 @@
 //                return;
             }
         }
-
         //濮旀墭淇� 浼佷笟绛剧讲浜哄憳鍚嶅崟
         applyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,
                 new MPJLambdaWrapper<InsuranceApply>()
@@ -1255,9 +904,6 @@
 //                return;
             }
         }
-        
-        
-
         List<ApplyChange> chagneList = applyChangeMapper.selectJoinList(ApplyChange.class,
                 new MPJLambdaWrapper<ApplyChange>()
                 .selectAll(ApplyChange.class)
@@ -1288,7 +934,6 @@
 //                return;
             }
         }
-
         //濮旀墭淇� 鍔犲噺淇�/鎹㈠巶 绛剧讲浜哄憳鍚嶅崟
         chagneList = applyChangeMapper.selectJoinList(ApplyChange.class,
                 new MPJLambdaWrapper<ApplyChange>()
@@ -1320,12 +965,6 @@
 //                return;
             }
         }
-
-
-
-        /**
-         *鍚堝苟鎶曚繚鍗� 绛剧讲涓氬姟
-         */
         List<UnionApply> unionApplyList = unionApplyJoinMapper.selectJoinList(UnionApply.class,
                 new MPJLambdaWrapper<UnionApply>()
                         .selectAll(UnionApply.class)
@@ -1346,10 +985,6 @@
                 uploadUnionApplySignedFileDo(model,fileUrl,path+fileUrl);
             }
         }
-
-        /**
-         *鍚堝苟鍔犲噺淇濇崲鍘� 绛剧讲涓氬姟
-         */
         List<UnionChange> unionChangeList = unionChangeJoinMapper.selectJoinList(UnionChange.class,
                 new MPJLambdaWrapper<UnionChange>()
                         .selectAll(UnionChange.class)
@@ -1370,11 +1005,6 @@
                 uploadUnionChangeSignedFileDo(model,fileUrl,path+fileUrl);
             }
         }
-
-
-        /**
-         * 鎴戞柟绛剧讲 鍚堝悓淇℃伅
-         */
         List<Contract> contractFirstList = contractJoinMapper.selectJoinList(Contract.class,
                 new MPJLambdaWrapper<Contract>()
                         .selectAll(Contract.class)
@@ -1395,11 +1025,6 @@
                 uploadContractFirstSignedFileDo(contract,fileUrl,path+fileUrl);
             }
         }
-
-
-        /**
-         * 浼佷笟/鍟嗘埛绛剧讲 鍚堝悓淇℃伅
-         */
         List<Contract> contractDoneList = contractJoinMapper.selectJoinList(Contract.class,
                 new MPJLambdaWrapper<Contract>()
                         .selectAll(Contract.class)
@@ -1420,10 +1045,6 @@
                 uploadContractDoneSignedFileDo(contract,fileUrl,path+fileUrl);
             }
         }
-
-        /**
-         * 浼佷笟 鏂规纭涔︾缃�
-         */
         List<CompanySolution> companySolutionList = companySolutionMapper.selectList(
                 new QueryWrapper<CompanySolution>().lambda()
                         .eq(CompanySolution::getSignStatus,Constants.ZERO)
@@ -1900,75 +1521,6 @@
     }
 
 
-    @Override
-    @Transactional(rollbackFor = {Exception.class,BusinessException.class})
-    public Integer uploadToubaodan(InsuranceApply insuranceApply) {
-        if(insuranceApply.getId() == null
-                || insuranceApply.getToubaodanFile() == null
-                ||StringUtils.isBlank( insuranceApply.getToubaodanFile() .getFileurl())
-                ||StringUtils.isBlank( insuranceApply.getToubaodanFile() .getName())){
-            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.UPLOAD.getKey())
-                || Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
-                || Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()))){
-            throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
-        }
-
-        Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
-        if(Objects.isNull(solutions)){
-            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
-        }
-
-        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
-        InsuranceApply update = new InsuranceApply();
-        update.setEditDate(new Date());
-        update.setEditor(user.getId());
-        update.setStatus(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey());
-        update.setCheckDate(update.getEditDate());
-        update.setCheckInfo(insuranceApply.getCheckInfo());
-        update.setCheckUserId(user.getId());
-        update.setId(model.getId());
-        insuranceApplyMapper.updateById(update);
-
-        multifileMapper.update(null,new UpdateWrapper<Multifile>().lambda()
-                .eq(Multifile::getIsdeleted,Constants.ZERO)
-                .eq(Multifile::getObjType,Constants.MultiFile.BD_APPLY_PDF.getKey())
-                .eq(Multifile::getObjId,update.getId())
-                .set(Multifile::getIsdeleted,Constants.ONE)
-                .set(Multifile::getEditDate,update.getEditDate())
-                .set(Multifile::getEditor,update.getEditor())
-        );
-        insuranceApply.getToubaodanFile().setIsdeleted(Constants.ZERO);
-        insuranceApply.getToubaodanFile().setCreator(user.getId());
-        insuranceApply.getToubaodanFile().setObjId(update.getId());
-        insuranceApply.getToubaodanFile().setCreateDate(update.getEditDate());
-        insuranceApply.getToubaodanFile().setObjType(Constants.MultiFile.BD_APPLY_PDF.getKey());
-        insuranceApply.getToubaodanFile().setType(Constants.TWO);
-        multifileMapper.insert(insuranceApply.getToubaodanFile());
-        update.setToubaodanFile(insuranceApply.getToubaodanFile());
-
-        Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WAIT_SIGNATURE;
-        String info =applyLogType.getInfo();
-//        info = info.replace("${param}", update.getCheckInfo());
-        ApplyLog log = new ApplyLog(update,applyLogType.getName(),StringUtils.isNotBlank(update.getCheckInfo())?info:"",update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
-        applyLogMapper.insert(log);
-
-        //鍒犻櫎鍏朵粬寰呭姙
-        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
-        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
-
-        Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),solutions.getName(),
-                model.getCompanyId(), Constants.NoticeType.ONE);
-        noticesMapper.insert(notices);
-
-        return  1;
-
-    }
 
     /**
      * 瀹℃牳閫氳繃鎴栬�呬笉閫氳繃
@@ -2420,7 +1972,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 +2006,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);
@@ -2467,6 +2025,7 @@
                 ){
                     throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"瀵逛笉璧凤紝鎶曚繚鍛樺伐淇℃伅鏁版嵁缂哄け锛岃鎸夌収瑕佹眰濉啓鍛樺伐鐨勬湁鏁堜俊鎭紒");
                 }
+                applyDetail.setId(null);
                 applyDetail.setChangeStatus(Constants.ZERO);
                 applyDetail.setCreateDate(new Date());
                 applyDetail.setCreator(loginUserInfo.getId());
@@ -2539,18 +2098,82 @@
             }
             Long end = System.currentTimeMillis();
             logger.error("澶勭悊鍗曟暟鎹粨鏉熸椂闂�:=========================>"+end +";鑰楁椂锛�====銆�"+(end-start));
-            applyDetailJoinMapper.insert(applyDetailList);
+            applyDetailMapper.insert(applyDetailList);
         }
     }
 
 
     /**
      * 鏌ヨ 浼氬憳淇℃伅鍦ㄦ柟妗堜笅鏄惁瀛樺湪鍐茬獊鏁版嵁
-     * @param startTime
-     * @param endTime
      */
-    @Override
-    public void checkMemberSolution(Integer solutionParentId,String idCode,String memberName,Date startTime,Date endTime,Integer applyId){
+    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 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>()
+//                            .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)
+//                            .eq(ApplyDetail::getIdcardNo,idCode)
+//                            .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){
+//        }
+//        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+"銆戝湪璇ヤ繚闄╂柟妗堜笅宸插瓨鍦ㄦ姇淇濊褰曪紝鏃犳硶杩涜璇ユ搷浣�");
+//            }
+//
+//        };
+//    }
+    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,
@@ -2561,7 +2184,7 @@
                             .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId)
                             .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId)
                             .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId)
-                            .eq(ApplyDetail::getIdcardNo,idCode)
+                            .in(ApplyDetail::getIdcardNo,idCodeList)
                             .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
                             .eq(Solutions::getParentId,solutionParentId)
                             .ne(Objects.nonNull(applyId),InsuranceApply::getId,applyId)
@@ -2580,15 +2203,48 @@
                                     " ) " ));
         }catch (Exception e){
         }
+      return applyDetailList;
+    }
+
+
+    public static void checkStaticMemberSolutionNew(Integer solutionId,Integer memberId,String memberIdCard,String memberName,Date startTime,
+                                                 Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){
+        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)
+                            .eq(ApplyDetail::getIdcardNo,memberIdCard)
+                            .eq(Solutions::getBaseId,solutionId)
+                            .eq(ApplyDetail::getIsdeleted,Constants.ZERO)
+                            .notIn(InsuranceApply::getStatus
+                                    ,Constants.InsuranceApplyStatus.CLOSE.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){
+
+        }
         if(applyDetailList.size() >Constants.ZERO){
             String companyName = applyDetailList.get(Constants.ZERO).getCompanyName();
+            String idCode = applyDetailList.get(Constants.ZERO).getIdcardNo();
             if(StringUtils.isNotBlank(companyName)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝凡鍦ㄣ��"+companyName+"銆戝瓨鍦ㄤ繚闄�,璇疯仈绯诲鏈嶇‘璁�");
             }else{
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璇ュ憳宸ャ��"+memberName+" "+idCode+"銆戝湪璇ヤ繚闄╂柟妗堜笅宸插瓨鍦ㄦ姇淇濊褰曪紝鏃犳硶杩涜璇ユ搷浣�");
             }
-
         };
+
     }
 
     public static void checkStaticMemberSolution(Integer solutionId,Integer memberId,String memberIdCard,String memberName,Date startTime,
@@ -2742,7 +2398,8 @@
         queryWrapper.selectAs(Solutions::getPrice,InsuranceApply::getPrice);
         queryWrapper.selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit);
         queryWrapper.select("( select ifnull(sum(ad.FEE),0) from apply_chagne_detail ad left join  apply_change a on a.id = ad.APPLY_CHANGE_ID  where t.id = a.APPLY_ID  and a.status = 2  )",InsuranceApply::getChangeMoney);
-        queryWrapper.select(" DATEDIFF( t.END_TIME ,now()  ) AS loseEfficacyDays  ");
+//        queryWrapper.select(" case when t.START_TIME > now() then  0 when t.END_TIME >= now() then DATEDIFF(   now() ,t.START_TIME  ) when t.END_TIME <= now() then  DATEDIFF( t.END_TIME,  t.START_TIME )+1  else 0 end loseEfficacyDays   ");
+        queryWrapper.select(" DATEDIFF( t.END_TIME,  t.START_TIME )+1 as loseEfficacyDays ");
         queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad  where ad.apply_id = t.id   ) as insureNum");
         queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad inner join insurance_apply a on ad.apply_id = a.id  and a.status in ( 5 , 27 )  where ad.apply_id = t.id and ad.END_TIME > now() and ad.START_TIME < now() ) as guaranteeNum");
         if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){
@@ -2856,7 +2513,7 @@
         PageData<InsuranceApply> pageData = PageData.from(insuranceApplyJoinMapper.selectJoinPage(page,InsuranceApply.class, queryWrapper));
         if(pageData.getRecords()!=null){
             for (InsuranceApply apply : pageData.getRecords()){
-                initApplyStatus(apply) ;
+                Constants.initApplyStatus(apply) ;
                 apply.setChangeMoney(Constants.getTwoPoint(apply.getChangeMoney()));
                 apply.setFee(Constants.getTwoPoint(apply.getFee()));
              }
@@ -2864,29 +2521,7 @@
         return pageData;
     }
 
-    public void    initApplyStatus(InsuranceApply apply){
-        apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus()));
-        if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
-        || Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey())){
-            //濡傛灉宸插畬鎴�
-            if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){
-                apply.setStatusCollect(Constants.THREE);//宸茶繃鏈�
-            }
-        }
-        setServiceDays(apply);
-        apply.setStatusInfo(Constants.ApplyCollectStatus.getName(apply.getStatusCollect()));
-        if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
-                || Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.WTB_DONE.getKey()) ){
-            if(apply.getStartTime().getTime()>System.currentTimeMillis()){
-                apply.setStatusInfo("寰呯敓鏁�");
-            }else if(apply.getEndTime().getTime()<System.currentTimeMillis()){
-                apply.setStatusInfo("宸茶繃鏈�");
-            }else{
-                apply.setStatusInfo("淇濋殰涓�");
-            }
-        }
 
-    }
 
     @Override
     public List<InsuranceApply> findListByDTO(InsuranceApplyQueryDTO model) {
@@ -3080,7 +2715,7 @@
         if(insuranceApply.getStartTime().compareTo(new Date())<0  && insuranceApply.getEndTime().compareTo(new Date()) > 0 ){
             insuranceApply.setLoseEfficacyDays(DateUtil.daysBetweenDates(insuranceApply.getEndTime(),new Date()));
         }
-        initApplyStatus(insuranceApply);
+        Constants.initApplyStatus(insuranceApply);
         //鏌ヨ闄勪欢鏁版嵁
         initImgData(insuranceApply);
         insuranceApply.setChangeMoney(Constants.getTwoPoint(insuranceApply.getChangeMoney()));
@@ -3101,29 +2736,11 @@
         insuranceApply.setApplyLogList(applyLogList);
     }
 
-    private void setServiceDays(InsuranceApply insuranceApply) {
-        //璁剧疆鍦ㄤ繚鏃堕暱锛堝ぉ鏁帮級
-        insuranceApply.setServiceDays(Constants.ZERO);
-        if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
-        || insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WTB_DONE.getKey())){
-            //濡傛灉褰撳墠鏃堕棿澶т簬缁撴潫鏃ユ湡 鍒欎娇鐢ㄧ粨鏉熸棩鏈熷姣斿紑濮嬫棩鏈�
-            if(DateUtil.compareDate(new Date(),insuranceApply.getEndTime())>=Constants.ZERO){
-                insuranceApply.setServiceDays(
-                        DateUtil.daysBetweenDates(insuranceApply.getEndTime(),insuranceApply.getStartTime())+1
-                );
-            }else if(DateUtil.compareDate(insuranceApply.getStartTime(),new Date())>=Constants.ZERO){
-                //鏈紑濮�
-                insuranceApply.setServiceDays(Constants.ZERO);
-            }else{
-                insuranceApply.setServiceDays(DateUtil.daysBetweenDates(new Date(),insuranceApply.getStartTime())+1);
-            }
-        }
-    }
+
 
     private void initImgData(InsuranceApply model) {
         String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()
                 +systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode();
-
         //鏌ヨ鏂规纭涔�
         CompanySolution companySolution =companySolutionMapper.selectOne(new QueryWrapper<CompanySolution>().lambda().eq(CompanySolution::getSolutionId,model.getSolutionId()).eq(CompanySolution::getCompanyId,model.getCompanyId()).last("limit 1"));
         if(Objects.nonNull(companySolution)){
@@ -3146,11 +2763,6 @@
                 .eq(Multifile::getIsdeleted,Constants.ZERO)
                 .orderByAsc(Multifile::getId));
         if(multifiles!=null){
-
-
-
-
-
             for(Multifile f : multifiles){
                 if(StringUtils.isBlank(f.getFileurl())){
                     continue;
@@ -3169,22 +2781,6 @@
                     //鐢宠鍗�
                     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())){
-//                    //濡傛灉褰撳墠鏃堕棿澶т簬缁撴潫鏃ユ湡 鍒欎娇鐢ㄧ粨鏉熸棩鏈熷姣斿紑濮嬫棩鏈�
-//                    if(DateUtil.compareDate(new Date(),model.getEndTime())>=Constants.ZERO){
-//                        model.setServiceDays(DateUtil.daysBetweenDates(model.getEndTime(),model.getStartTime()));
-//                    }else if(DateUtil.compareDate(model.getStartTime(),new Date())>=Constants.ZERO){
-//                        //鏈紑濮�
-//                        model.setServiceDays(Constants.ZERO);
-//                    }else{
-//                        model.setServiceDays(DateUtil.daysBetweenDates(new Date(),model.getStartTime()));
-//                    }
-//                }
             }
         }
     }
@@ -3722,102 +3318,10 @@
         if(Objects.isNull(solutions)){
             throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
         }
-        ApplyPowerVO applyPowerVO = InsuranceApplyServiceImpl.getApplyPowerStatic(applyPowerDTO,insuranceApply,solutions);
+        ApplyPowerVO applyPowerVO = Constants.getApplyPowerStatic(applyPowerDTO,insuranceApply,solutions);
         return applyPowerVO;
     }
 
-
-
-    public static ApplyPowerVO getApplyPowerStatic(ApplyPowerDTO applyPowerDTO,InsuranceApply insuranceApply,Solutions solutions){
-        if(Objects.isNull(applyPowerDTO)
-                || Objects.isNull(applyPowerDTO.getApplyId())){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鍙傛暟閿欒");
-        }
-        if(Objects.isNull(applyPowerDTO.getBeginDate())){
-            applyPowerDTO.setBeginDate(new Date());
-        }
-        ApplyPowerVO applyPowerVO = new ApplyPowerVO();
-        //鑾峰彇鏂规 缁撴潫鏃堕棿
-        Date endTime = insuranceApply.getEndTime();
-        //鏌ヨ褰撳墠鍘诲姞淇濈殑寮�濮嬫棩鏈�  yyyy-MM-dd HH:mm:ss 2024-10-29 00:00:00
-        Date addStartDate = DateUtil.getMontageDate(
-                DateUtil.afterDateByType(applyPowerDTO.getBeginDate(),Constants.ZERO,solutions.getAddValidDays()),
-                1
-        );
-        applyPowerVO.setAddStartDate(addStartDate);
-        //鍔犱繚鐢熸晥鏃ユ湡澶т簬 淇濆崟缁撴潫鏃ユ湡 鍒欎笉鍙互杩涜鍔犱繚
-        if(addStartDate.getTime()>=endTime.getTime()){
-            applyPowerVO.setAddTrue(Constants.ONE);
-        }else{
-            applyPowerVO.setAddTrue(Constants.ZERO);
-        }
-        //鏌ヨ褰撳墠鍘诲噺淇濈殑寮�濮嬫棩鏈�  yyyy-MM-dd HH:mm:ss 2024-10-29 00:00:00
-        Date delStartDate = DateUtil.getMontageDate(
-                DateUtil.afterDateByType(applyPowerDTO.getBeginDate(),Constants.ZERO,solutions.getAddValidDays()),
-                1
-        );
-        applyPowerVO.setDelStartDate(delStartDate);
-        //鍔犱繚鐢熸晥鏃ユ湡澶т簬 淇濆崟缁撴潫鏃ユ湡 鍒欎笉鍙互杩涜鍑忎繚
-        if(delStartDate.getTime()>=endTime.getTime()){
-            applyPowerVO.setDelTrue(Constants.ONE);
-        }else{
-            applyPowerVO.setDelTrue(Constants.ZERO);
-        }
-        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