From ac3587fec379a08d94d30b0a13e67e10612b3b06 Mon Sep 17 00:00:00 2001 From: nidapeng <jp@doumee.com> Date: 星期一, 01 四月 2024 15:24:32 +0800 Subject: [PATCH] 提交一把 --- server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 165 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 139 insertions(+), 26 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 34c9fa3..20e2309 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 @@ -42,6 +42,7 @@ import java.io.File; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; import java.util.stream.Collectors; @@ -152,6 +153,39 @@ 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 @@ -515,7 +549,7 @@ InsuranceApply update = new InsuranceApply(); update.setEditDate(new Date()); update.setEditor(model.getCreator()); - update.setStatus(Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey()); + update.setStatus(Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey()); update.setCheckDate(update.getEditDate()); update.setCheckInfo("浼佷笟瀹屾垚绛剧讲鏂规纭涔�"); update.setCheckUserId(model.getCreator()); @@ -527,13 +561,18 @@ f.setCreator(model.getCreator()); f.setObjId(update.getId()); f.setCreateDate(update.getEditDate()); - f.setObjType(Constants.MultiFile.SOLUTIONS_CONFIRMATION_LATTER.getKey()); + f.setObjType(Constants.MultiFile.WTB_CONFIRMATION_LATTER.getKey()); f.setType(Constants.TWO); f.setFileurl(fileurl); f.setFileurlFull(fullUrl); f.setInfo("浼佷笟瀹屾垚绛剧讲鏂规纭涔�"); f.setName("鏂规纭涔�.pdf"); multifileMapper.insert(f); + + Constants.ApplyLogType applyLogType = Constants.ApplyLogType.WTB_FINISH_FAQRS; + ApplyLog log = new ApplyLog(update,applyLogType.getName(), null + ,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update)); + applyLogMapper.insert(log); return f; } @@ -567,6 +606,11 @@ 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)); + applyLogMapper.insert(log); return f; } @@ -600,6 +644,12 @@ f.setInfo("浼佷笟瀹屾垚绛剧讲浜哄憳鍚嶅崟"); f.setName("浜哄憳鍚嶅崟.pdf"); multifileMapper.insert(f); + + + Constants.ApplyLogType applyLogType = Constants.ApplyLogType.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); return f; } @@ -642,6 +692,7 @@ 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); @@ -674,6 +725,10 @@ 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); return f; } @@ -722,6 +777,13 @@ // applyLogMapper.insert(log); // // startSendEmail(f, model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail()); + + + 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; } @@ -771,10 +833,10 @@ String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + continue; } uploadSignedFileDo(model,fileUrl,path+fileUrl); - return; +// return; } } //濮旀墭淇� 浼佷笟绛剧讲鎶曚繚纭涔� @@ -799,10 +861,10 @@ String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + continue; } uploadFAQRSSignedFileDo(model,fileUrl,path+fileUrl); - return; +// return; } } @@ -828,10 +890,10 @@ String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + continue; } uploadApplyMemberListSignedFileDo(model,fileUrl,path+fileUrl); - return; +// return; } } @@ -858,10 +920,10 @@ String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + continue; } uploadTBSQSSignedFileDo(model,fileUrl,path+fileUrl); - return; +// return; } } @@ -890,10 +952,10 @@ String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + continue; } uploadChangeSignedFileDo(model,fileUrl,path+fileUrl); - return; +// return; } } @@ -920,10 +982,10 @@ String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + continue; } uploadChangeMemberListSignedFileDo(model,fileUrl,path+fileUrl); - return; +// return; } } @@ -947,12 +1009,16 @@ String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� - return; + continue; } uploadUnionApplySignedFileDo(model,fileUrl,path+fileUrl); - return; +// return; } } + + + + } @Override @@ -1236,15 +1302,19 @@ if(Objects.isNull(solutions)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�"); } - if(solutions.getType().equals(Constants.ZERO)){ + if(Constants.equalsObject(solutions.getType(),Constants.ZERO)){ if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵"); } }else{ - if(!user.getType().equals(Constants.TWO)){ + if(!Constants.equalsObject(user.getType(),Constants.TWO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炲晢鎴风鏃犳硶杩涜璇ユ搷浣�"); } - if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_RETURN.getKey())){ + //濮旀墭淇濆緟绛剧讲銆佸緟瀹℃牳鍙繘琛岄��鍥炴搷浣� + if(!(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey()) + ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_APPLY_SIGNATURE.getKey()) + ||Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_COMPANY_MEMBER_LIST_SIGNATURE.getKey()) + )){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵"); } } @@ -1261,9 +1331,14 @@ //濡傛灉鏄笉閫氳繃 applyLogType = Constants.ApplyLogType.PLATFORM_RETURN ; update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()); + if(Constants.equalsObject(solutions.getType(),Constants.ONE)){ + update.setStatus(Constants.InsuranceApplyStatus.WTB_RETURN.getKey()); + } }else{ applyLogType = Constants.ApplyLogType.PLATFORM_CHECK_PASS; - update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()); + if(Constants.equalsObject(solutions.getType(),Constants.ONE)){ + update.setStatus(Constants.InsuranceApplyStatus.WTB_BUSINESS_CHECK_PASS.getKey()); + } } insuranceApplyMapper.updateById(update); @@ -1355,9 +1430,7 @@ applyLogMapper.insert(log); - //鍙戦�佸緟鍔炰笟鍔� - //瀛樺偍寰呭姙淇℃伅 Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY; //鍒犻櫎鍏朵粬寰呭姙 @@ -1557,6 +1630,14 @@ applyDetail.setSex(member.getSex()); applyDetail.setFee(countCyclePriceVO.getCyclePrice()); applyDetail.setCurrentFee(BigDecimal.ZERO); + //鑾峰彇璁$畻鎬诲ぉ鏁� + Integer maxDays = DateUtil.calculateBetween(applyDetail.getStartTime(),applyDetail.getEndTime(),0); + if(Constants.equalsInteger(maxDays,0)||Objects.isNull(applyDetail.getFee())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鎶曚繚淇℃伅寮傚父锛氭�诲ぉ鏁颁笌鎬婚噾棰濋敊璇�"); + } + applyDetail.setPrice( + applyDetail.getFee().divide(new BigDecimal(maxDays),2,RoundingMode.HALF_UP) + ); //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪 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崟浣嶆湭鏌ヨ鍒帮紒"); @@ -1858,10 +1939,10 @@ .selectAs(Solutions::getTimeUnit,InsuranceApply::getTimeUnit) .selectAs(Solutions::getType,InsuranceApply::getSolutionType) .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Solutions::getName,InsuranceApply::getShopName) .selectAs(Company::getName,InsuranceApply::getCompanyName) .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") + .select(" t3.name as shopName") .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) .leftJoin(Company.class,Company::getId,Solutions::getShopId) @@ -1929,11 +2010,14 @@ private void initImgData(InsuranceApply model) { List<Multifile> multifiles = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda() - .eq(Multifile::getObjId,Constants.equalsInteger(model.getSolutionType(),Constants.ZERO)? model.getId():model.getUnionApplyId()) + .eq(Multifile::getObjId, model.getId()) .in(Multifile::getObjType,Arrays.asList(new Integer[]{Constants.MultiFile.BD_APPLY_PDF.getKey() ,Constants.MultiFile.BD_SIGNED_PDF.getKey() + ,Constants.MultiFile.WTB_CONFIRMATION_LATTER.getKey() + ,Constants.MultiFile.MEMBER_LIST_LATTER.getKey() ,Constants.MultiFile.BD_DONE_PDF.getKey()})) - .eq(Multifile::getIsdeleted,Constants.ZERO)); + .eq(Multifile::getIsdeleted,Constants.ZERO) + .orderByAsc(Multifile::getId)); if(multifiles!=null){ String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode() +systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); @@ -1951,6 +2035,12 @@ }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.BD_DONE_PDF.getKey())){ //鏈�绲備繚闄╁崟 model.setBaoxiandanFile(f); + }else if(Constants.equalsInteger(f.getObjType(),Constants.MultiFile.MEMBER_LIST_LATTER.getKey())){ + //鐢宠鍗� + 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())){ @@ -2085,6 +2175,30 @@ /** + * 浼佷笟淇濋殰涓汉鏁� + * @return + */ + @Override + public Integer guaranteeNum() { + LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + if(loginUserInfo.getType().equals(Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�"); + } + MPJLambdaWrapper<ApplyDetail> lambdaWrapper = new MPJLambdaWrapper<ApplyDetail>(); + lambdaWrapper.selectAll(Member.class) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyDetail::getApplyId) + .and(i->i.eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey()).or().eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WTB_DONE.getKey())) + .eq(InsuranceApply::getCompanyId,loginUserInfo.getCompanyId()) + .apply(" now() betwwen t.START_TIME and t.END_TIME "); + + Integer count = applyDetailJoinMapper.selectJoinCount(lambdaWrapper); + return count; + } + + + + + /** * 鏇存柊淇濆崟瀹為檯閲戦 */ @Override @@ -2196,7 +2310,6 @@ .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) .eq(InsuranceApply::getId,smsCheckDTO.getBusinessId()) .last("limit 1"); - InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper); if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); -- Gitblit v1.9.3