From 22271e641e4505ba906c3770905b7e84e3ad8d85 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期二, 02 四月 2024 17:05:57 +0800 Subject: [PATCH] mrshi --- server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 201 +++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 164 insertions(+), 37 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 f3e2e61..d5f232d 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 @@ -133,7 +133,9 @@ //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY; //鍒犻櫎鍏朵粬寰呭姙 - noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId())); + 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); @@ -186,6 +188,19 @@ update.setStartTime(insuranceApply.getStartTime()); 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()); @@ -199,7 +214,7 @@ String info = ""; if(model.getApplyStartTime()!=null && model.getApplyStartTime().getTime()/1000!= insuranceApply.getStartTime().getTime()/1000){ info =applyLogType.getInfo(); - info = info.replace("${param1}",DateUtil.getPlusTime2(model.getApplyEndTime())); + 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)); @@ -229,6 +244,7 @@ List<MemberInsurance> memberInsuranceList = new ArrayList<>(); for (ApplyDetail applyDetail:applyDetailList) { MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId()); + memberInsurance.setRelationType(Constants.ZERO); memberInsuranceList.add(memberInsurance); } memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList); @@ -267,6 +283,13 @@ update.setId(model.getId()); update.setCode(param.getCode()); insuranceApplyMapper.updateById(update); + //淇敼鍛樺伐淇濆崟璁板綍 + memberInsuranceJoinMapper.update(null,new UpdateWrapper<MemberInsurance>() + .lambda() + .set(MemberInsurance::getBdCode,param.getCode()) + .eq(MemberInsurance::getApplyId,model.getId()) + ); + //鍒犻櫎鍘熸湁鐨勪繚鍗曚俊鎭� multifileMapper.delete(new UpdateWrapper<Multifile>().lambda() .set(Multifile::getIsdeleted,Constants.ZERO) @@ -309,13 +332,25 @@ InsuranceApply update = new InsuranceApply(); if(insuranceApply.getDealBackApply() ==1){ //濡傛灉鏄┏鍥�,鍙兘鍙┏鍥炲凡绛剧珷鐘舵�佷笅鐨勯��鍥炵敵璇风姸鎬佽繘琛屾搷浣� - if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE.getKey())){ + 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()); - update.setStatus(Constants.InsuranceApplyStatus.SIGNATURE.getKey()); + 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()) @@ -324,13 +359,7 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵"); } applyLogType = Constants.ApplyLogType.PLATFORM_AGREE_BACK; - 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()); - } + update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()); } update.setEditDate(new Date()); update.setEditor(user.getId()); @@ -443,7 +472,9 @@ //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY; //鍒犻櫎鍏朵粬寰呭姙 - noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId())); + 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); @@ -468,6 +499,7 @@ } public Multifile uploadChangeSignedFileDo(ApplyChange model,String fileurl,String fullurl) { + Integer companyId = model.getCompanyId(); ApplyChange update = new ApplyChange(); update.setEditDate(new Date()); update.setEditor(model.getCreator()); @@ -484,9 +516,11 @@ noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY; } //鍒犻櫎鍏朵粬寰呭姙 - noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId())); + 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); + companyId, Constants.NoticeType.TWO); notices.setParam1(model.getApplyId().toString()); noticesMapper.insert(notices); @@ -666,9 +700,16 @@ 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()); @@ -680,6 +721,14 @@ 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()); @@ -699,6 +748,12 @@ 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; } @@ -711,7 +766,7 @@ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public Integer check(InsuranceApply insuranceApply) { - if(insuranceApply.getId() == null || StringUtils.isBlank(insuranceApply.getCheckInfo())){ + if(insuranceApply.getId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } InsuranceApply model = insuranceApplyMapper.selectById(insuranceApply.getId()); @@ -753,12 +808,18 @@ //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY; //鍒犻櫎鍏朵粬寰呭姙 - noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId())); - Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),solutions.getName(),model.getCompanyId(),noticeType); - noticesMapper.insert(notices); + 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.ONE,model.getId(),solutions.getName(),model.getCompanyId(),noticeType); +// noticesMapper.insert(notices); String info =applyLogType.getInfo(); - info = info.replace("${param}", update.getCheckInfo()); + if(StringUtils.isNotBlank(update.getCheckInfo())){ + info = info.replace("${param}", update.getCheckInfo()); + }else{ + info = null; + } ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update)); applyLogMapper.insert(log); return 1; @@ -798,6 +859,8 @@ Constants.InsuranceApplyStatus insuranceApplyStatus = Constants.InsuranceApplyStatus.UPLOAD; insuranceApply.setCreateDate(new Date()); insuranceApply.setCreator(loginUserInfo.getId()); + insuranceApply.setEditor(loginUserInfo.getId()); + insuranceApply.setEditDate(new Date()); insuranceApply.setIsdeleted(Constants.ZERO); insuranceApply.setCompanyId(loginUserInfo.getCompanyId()); insuranceApply.setCheckInfo(insuranceApplyStatus.getName()); @@ -836,7 +899,9 @@ //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY; //鍒犻櫎鍏朵粬寰呭姙 - noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId())); + 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.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO); noticesMapper.insert(notices); @@ -920,7 +985,9 @@ //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY; //鍒犻櫎鍏朵粬寰呭姙 - noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId())); + 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.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO); noticesMapper.insert(notices); @@ -1027,6 +1094,7 @@ applyDetail.setIdcardNo(member.getIdcardNo()); applyDetail.setSex(member.getSex()); applyDetail.setFee(countCyclePriceVO.getCyclePrice()); + applyDetail.setCurrentFee(BigDecimal.ZERO); //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪 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崟浣嶆湭鏌ヨ鍒帮紒"); @@ -1101,11 +1169,15 @@ queryWrapper.selectAll(InsuranceApply.class); queryWrapper.selectAs(Company::getName,InsuranceApply::getCompanyName); queryWrapper.selectAs(Solutions::getName,InsuranceApply::getSolutionsName); + queryWrapper.selectAs(Solutions::getMaxAge,InsuranceApply::getMaxAge); + queryWrapper.selectAs(Solutions::getMinAge,InsuranceApply::getMinAge); + queryWrapper.selectAs(Solutions::getPrice,InsuranceApply::getPrice); + queryWrapper.selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit); queryWrapper.select(" DATEDIFF( t.END_TIME ,now() ) AS loseEfficacyDays "); - queryWrapper.select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); + queryWrapper.select(" ( select count(DISTINCT(ad.MEMBER_ID)) from apply_detail ad where ad.apply_id = t.id ) as insureNum"); if(!Objects.isNull(pageWrap.getModel())&&!Objects.isNull(pageWrap.getModel().getType())){ - queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney"); - queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status != 2 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); + queryWrapper.select(" ifnull(( select sum(td.fee) from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status = 1 and td.INSURANCE_APPLY_ID = t.id ),0) as taxesMoney"); + queryWrapper.select(" ( select td.CREATE_DATE from taxes ts inner join tax_detial td on td.TAX_ID = ts.id where ts.status = 1 and td.INSURANCE_APPLY_ID = t.id order by td.CREATE_DATE desc limit 1 ) as taxesLast "); } queryWrapper.leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId); queryWrapper.leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId); @@ -1136,19 +1208,19 @@ queryWrapper.ge(InsuranceApply::getEndTime, Utils.Date.getStart(pageWrap.getModel().getEndTimeS())); } if (pageWrap.getModel().getEndTimeE() != null) { - queryWrapper.le(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE())); + queryWrapper.lt(InsuranceApply::getEndTime, Utils.Date.getEnd(pageWrap.getModel().getEndTimeE())); } if (pageWrap.getModel().getStartTimeS() != null) { queryWrapper.ge(InsuranceApply::getStartTime, Utils.Date.getStart(pageWrap.getModel().getStartTimeS())); } if (pageWrap.getModel().getStartTimeE() != null) { - queryWrapper.le(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE())); + queryWrapper.lt(InsuranceApply::getStartTime, Utils.Date.getEnd(pageWrap.getModel().getStartTimeE())); } if (pageWrap.getModel().getCreateTimeS() != null) { queryWrapper.ge(InsuranceApply::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateTimeS())); } if (pageWrap.getModel().getCreateTimeE() != null) { - queryWrapper.le(InsuranceApply::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateTimeE())); + queryWrapper.lt(InsuranceApply::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateTimeE())); } if (pageWrap.getModel().getType() != null) { queryWrapper.eq(Solutions::getType, pageWrap.getModel().getType()); @@ -1157,7 +1229,10 @@ queryWrapper.eq(InsuranceApply::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getStatus() != null) { - queryWrapper.eq(InsuranceApply::getStatus, pageWrap.getModel().getStatus()); + queryWrapper.in(InsuranceApply::getStatus, pageWrap.getModel().getStatus().split(",")); + } + if (pageWrap.getModel().getLoseEfficacy() != null && pageWrap.getModel().getLoseEfficacy() ==1) { + queryWrapper.apply(" DATEDIFF(t.END_TIME,CURRENT_DATE() ) <= 5 and t.END_TIME >= now() "); } if(CollectionUtils.isNotEmpty(pageWrap.getSorts())){ for(PageWrap.SortData sortData: pageWrap.getSorts()) { @@ -1182,7 +1257,7 @@ public void initApplyStatus(InsuranceApply apply){ apply.setStatusCollect(Constants.InsuranceApplyStatus.getCollectStatus(apply.getStatus())); - if(Constants.equalsInteger(apply.getStatusCollect(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){ + if(Constants.equalsInteger(apply.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){ //濡傛灉宸插畬鎴� if(apply.getEndTime()==null || System.currentTimeMillis()>apply.getEndTime().getTime()){ apply.setStatusCollect(Constants.THREE);//宸茶繃鏈� @@ -1243,7 +1318,7 @@ queryWrapper.eq(InsuranceApply::getCode, model.getCode()); } if (model.getStatus() != null) { - queryWrapper.eq(InsuranceApply::getStatus, model.getStatus()); + queryWrapper.in(InsuranceApply::getStatus, model.getStatus().split(",")); } if (CollectionUtils.isNotEmpty(model.getIds())) { queryWrapper.in(InsuranceApply::getId, model.getIds()); @@ -1266,9 +1341,14 @@ MPJLambdaWrapper wrapper= new MPJLambdaWrapper<InsuranceApply>() .selectAll(InsuranceApply.class) + .selectAs(Solutions::getMaxAge,InsuranceApply::getMaxAge) + .selectAs(Solutions::getMinAge,InsuranceApply::getMinAge) + .selectAs(Solutions::getPrice,InsuranceApply::getPrice) + .selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit) .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) .selectAs(Company::getName,InsuranceApply::getCompanyName) - .select(" ( select count(1) from apply_detail ad where ad.apply_id = t.id ) as insureNum") + .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") .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) .eq(InsuranceApply::getId,id) @@ -1279,6 +1359,19 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY); } + Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); + if(Objects.isNull(solutions)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规淇℃伅"); + } + if(solutions.getDataType().equals(Constants.ONE)){ + Solutions newVersionSolution = solutionsMapper.selectOne(new QueryWrapper<Solutions>().lambda().eq(Solutions::getBaseId,solutions.getBaseId()).eq(Solutions::getDataType,Constants.TWO).last("limit 1")); + if(Objects.isNull(newVersionSolution)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鏂规鏈�鏂扮増鏈俊鎭�"); + } + insuranceApply.setNewVersionSolutionId(newVersionSolution.getId()); + }else{ + insuranceApply.setNewVersionSolutionId(solutions.getId()); + } if(insuranceApply.getStartTime().compareTo(new Date())<0 && insuranceApply.getEndTime().compareTo(new Date()) > 0 ){ insuranceApply.setLoseEfficacyDays(DateUtil.daysBetweenDates(insuranceApply.getEndTime(),new Date())); } @@ -1291,6 +1384,7 @@ .selectAll(ApplyLog.class) .selectAs(SystemUser::getRealname,ApplyLog::getCreatorName) .selectAs(Company::getName,ApplyLog::getCompanyName) + .selectAs(SystemUser::getType,ApplyLog::getCreatorType) .leftJoin(SystemUser.class,SystemUser::getId,ApplyLog::getCreator) .leftJoin(Company.class,Company::getId,SystemUser::getCompanyId) .in(ApplyLog::getObjType,Constants.ApplyLogType.getTypeList(Constants.ZERO)) @@ -1397,8 +1491,7 @@ @Transactional(rollbackFor = {Exception.class,BusinessException.class}) public void applyOpt(InsuranceApplyOptDTO insuranceApplyOptDTO){ if(Objects.isNull(insuranceApplyOptDTO) - ||Objects.isNull(insuranceApplyOptDTO.getApplyId()) - ||StringUtils.isBlank(insuranceApplyOptDTO.getOptIllustration())){ + ||Objects.isNull(insuranceApplyOptDTO.getApplyId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); @@ -1423,6 +1516,7 @@ if(insuranceApplyOptDTO.getOptType().equals(Constants.ONE)){ if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD.getKey()) ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()) + ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()) ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey()))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀潪鍙敵璇烽��鍥�!"); } @@ -1432,12 +1526,16 @@ insuranceApplyStatus = Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_WAIT_SIGNATURE; }else if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey())){ insuranceApplyStatus = Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE; + }else if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey())){ + insuranceApplyStatus = Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_PASS; } //瀛樺偍寰呭姙淇℃伅 //鍒犻櫎鍏朵粬寰呭姙 - noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId())); - Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(), + 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.ZERO,insuranceApply.getId(),solutions.getName(), insuranceApply.getCompanyId(), Constants.NoticeType.THREE); noticesMapper.insert(notices); @@ -1449,8 +1547,9 @@ } if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()) ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey()) + ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.FAIL_RETURN.getKey()) ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()))){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀潪鍙敵璇烽��鍥�!"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�佹棤娉曡繘琛屽叧闂�!"); } //鍒犻櫎鍏朵粬寰呭姙 noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId())); @@ -1463,7 +1562,9 @@ //瀛樺偍鏃ュ織鏁版嵁 Constants.ApplyLogType applyLogType = Constants.ApplyLogType.COMPANY_APPLY_RETURN; String info =applyLogType.getInfo(); - info = info.replace("${param}", insuranceApplyOptDTO.getOptIllustration()); + if(StringUtils.isNotBlank(insuranceApplyOptDTO.getOptIllustration())){ + info = info.replace("${param}", insuranceApplyOptDTO.getOptIllustration()); + } ApplyLog log = new ApplyLog(insuranceApply,applyLogType.getName(),info,insuranceApply.getId(),applyLogType.getKey(),JSONObject.toJSONString(insuranceApply), JSONObject.toJSONString(insuranceApply)); applyLogMapper.insert(log); } @@ -1500,6 +1601,9 @@ Integer days = DateUtil.calculateBetween(applyDetail.getStartTime(),new Date(),0); applyDetail.setCurrentFee(fee.divide(BigDecimal.valueOf(maxDays),2, BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(days))); applyDetailMapper.updateById(applyDetail); + }else if(applyDetail.getStartTime().compareTo(new Date()) <= 0&&applyDetail.getEndTime().compareTo(new Date()) <= 0){ + applyDetail.setCurrentFee(fee); + applyDetailMapper.updateById(applyDetail); } sumAmount = sumAmount.add(applyDetail.getCurrentFee()); } @@ -1508,6 +1612,9 @@ insuranceApplyMapper.updateById(insuranceApply); } } +// if(1==1){ +// throw new BusinessException(ResponseStatus.NOT_ALLOWED); +// } } @@ -1531,6 +1638,26 @@ } + /** + * 鐢熸垚 寰呭鎵归�氱煡 + */ + @Override + public void generateNotice(){ + List<InsuranceApply> insuranceApplyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class,new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()) + .ge(InsuranceApply::getEndTime,DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss")) + .apply(" DATEDIFF(t.END_TIME,CURRENT_DATE() ) <= 5 ") + .notExists(" select 1 from notices n where n.obj_type = 0 and n.type = 6 and n.obj_id = t.id ") + ); + for (InsuranceApply insuranceApply:insuranceApplyList) { + Notices notices = new Notices(Constants.NoticeObjectType.INSURANCE_APPLY,Constants.ONE,insuranceApply.getId(),insuranceApply.getSolutionsName(), + insuranceApply.getCompanyId(), Constants.NoticeType.SIX); + noticesMapper.insert(notices); + } + } -- Gitblit v1.9.3