From f8b1073fbb28d37e08016eed32c682f8c5eae391 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 02 二月 2024 17:26:32 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java | 333 +++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 287 insertions(+), 46 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 b3c53e3..76c919b 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 @@ -15,9 +15,7 @@ import com.doumee.dao.business.dto.CountCyclePriceDTO; import com.doumee.dao.business.dto.InsuranceApplyOptDTO; import com.doumee.dao.business.dto.InsuranceApplyQueryDTO; -import com.doumee.dao.business.join.ApplyDetailJoinMapper; -import com.doumee.dao.business.join.ApplyLogJoinMapper; -import com.doumee.dao.business.join.InsuranceApplyJoinMapper; +import com.doumee.dao.business.join.*; import com.doumee.dao.business.model.*; import com.doumee.dao.business.vo.CountCyclePriceVO; import com.doumee.dao.system.model.SystemUser; @@ -26,6 +24,8 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.doumee.service.business.SmsEmailService; +import com.doumee.service.business.third.EmailService; import com.doumee.service.business.third.SignService; import com.github.xiaoymin.knife4j.core.util.CollectionUtils; import com.github.yulichang.wrapper.MPJLambdaWrapper; @@ -38,6 +38,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.io.File; import java.math.BigDecimal; import java.util.*; import java.util.stream.Collectors; @@ -55,7 +56,9 @@ @Autowired private InsuranceApplyMapper insuranceApplyMapper; @Autowired - private ApplyChangeMapper applyChangeMapper; + private SmsEmailService smsEmailService; + @Autowired + private ApplyChangeJoinMapper applyChangeMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @@ -63,6 +66,8 @@ private InsuranceApplyJoinMapper insuranceApplyJoinMapper; @Autowired private CompanyMapper companyMapper; + @Autowired + private MemberInsuranceJoinMapper memberInsuranceJoinMapper; @Autowired private ApplyDetailMapper applyDetailMapper; @@ -87,7 +92,12 @@ @Autowired private DuSolutionMapper duSolutionMapper; @Autowired + private DuSolutionJoinMapper duSolutionJoinMapper; + @Autowired private DuWorktypeMapper duWorktypeMapper; + + @Autowired + private NoticesMapper noticesMapper; @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) @@ -103,6 +113,12 @@ if(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.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()); @@ -113,6 +129,15 @@ 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()).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(); @@ -179,6 +204,36 @@ } 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) { + MemberInsurance memberInsurance = new MemberInsurance(applyDetail,user.getId()); + memberInsuranceList.add(memberInsurance); + } + memberInsuranceJoinMapper.insertBatchSomeColumn(memberInsuranceList); + } + return 1; } @@ -307,7 +362,10 @@ 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(); Constants.ApplyLogType applyLogType = null; String info = ""; @@ -347,6 +405,7 @@ update.setEditDate(new Date()); update.setSignApplyNo(applyNo); insuranceApplyMapper.updateById(update); + return link; } public String uploadSignFile(String link){ @@ -364,14 +423,13 @@ return tempFileName; } }catch (Exception e){ - } return null; } - public Integer uploadSignedFileDo(InsuranceApply model,String fileurl) { + public Multifile uploadSignedFileDo(InsuranceApply model,String fileurl,String fullUrl) { InsuranceApply update = new InsuranceApply(); update.setEditDate(new Date()); update.setEditor(model.getCreator()); @@ -382,6 +440,13 @@ 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()).eq(Notices::getObjId,model.getId())); + Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),model.getCompanyId(),Constants.NoticeType.TWO); + noticesMapper.insert(notices); + Multifile f = new Multifile(); f.setIsdeleted(Constants.ZERO); f.setCreator(model.getCreator()); @@ -390,15 +455,19 @@ f.setObjType(Constants.MultiFile.BD_SIGNED_PDF.getKey()); f.setType(Constants.TWO); f.setFileurl(fileurl); + f.setFileurlFull(fullUrl); + 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 1; + + startSendEmail(f, model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail()); + return f; } - public Integer uploadChangeSignedFileDo(ApplyChange model,String fileurl) { + public Multifile uploadChangeSignedFileDo(ApplyChange model,String fileurl,String fullurl) { ApplyChange update = new ApplyChange(); update.setEditDate(new Date()); update.setEditor(model.getCreator()); @@ -409,6 +478,17 @@ update.setId(model.getId()); applyChangeMapper.updateById(update); + //瀛樺偍寰呭姙淇℃伅 + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE; + if(model.getType().equals(Constants.ONE)){ + noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY; + } + //鍒犻櫎鍏朵粬寰呭姙 + 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(),model.getSolutionsName(), + model.getCompanyId(), Constants.NoticeType.TWO); + noticesMapper.insert(notices); + Multifile f = new Multifile(); f.setIsdeleted(Constants.ZERO); f.setCreator(model.getCreator()); @@ -417,43 +497,93 @@ f.setObjType(Constants.equalsInteger(Constants.ZERO,model.getType())?Constants.MultiFile.CA_APPLY_JIAJIAN_SIGN.getKey() : Constants.MultiFile.CA_APPLY_CHANGEUNIT_SIGN.getKey()); f.setType(Constants.TWO); f.setFileurl(fileurl); + f.setFileurlFull(fullurl); + 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); - return 1; + + startSendEmail(f,model.getCompanyName(),model.getSolutionsName(),model.getSolutionEmail()); + return f; } + + private void startSendEmail(Multifile f, String companyName, String solutionsName, String solutionEmail) { + if(StringUtils.isBlank(solutionEmail) || f==null|| StringUtils.isBlank(f.getFileurl())){ + return; + } + SmsEmail email = new SmsEmail(); + email.setTitle(f.getInfo()); + email.setEmail(solutionEmail); + email.setContent("鏉ヨ嚜浼佷笟銆�"+companyName+"銆戝叧浜庝繚闄╂柟妗堛��"+solutionsName+"銆戠殑"+f.getInfo()); + File file = Constants.getFileByNetFile(f.getFileurlFull(),f.getName()); + if(file!=null && file.isFile()){ + Map<String,Object> files = new HashMap<>(); + files.put("name",f.getName()); + files.put("file",file); + email.setFileList(new ArrayList<>()); + email.getFileList().add(files); + smsEmailService.sendEmail(email); + file.delete();//鍙戦�佸悗鍒犻櫎涓存椂鏂囦欢 + } + } + @Override public void dealWaitSignedData(){ - List<InsuranceApply> applyList = insuranceApplyMapper.selectList(new QueryWrapper<InsuranceApply>().lambda() - .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE) + List<InsuranceApply> applyList = insuranceApplyJoinMapper.selectJoinList(InsuranceApply.class, + new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()) .isNotNull(InsuranceApply::getSignApplyNo)); + String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ + systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); if(applyList !=null && applyList.size()>0 ){ for(InsuranceApply model : applyList){ + String status = signService.linkFileStatus(model.getSignApplyNo()); + if(!StringUtils.equals(status,"3")){ + continue; + } String link = signService.linkFile(model.getSignApplyNo()); String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� return; } - uploadSignedFileDo(model,fileUrl); + uploadSignedFileDo(model,fileUrl,path+fileUrl); return; } } - List<ApplyChange> chagneList = applyChangeMapper.selectList(new QueryWrapper<ApplyChange>().lambda() - .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD) + List<ApplyChange> chagneList = applyChangeMapper.selectJoinList(ApplyChange.class, + new MPJLambdaWrapper<ApplyChange>() + .selectAll(ApplyChange.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(ApplyChange::getStatus,Constants.ApplyChangeStatus.UPLOAD.getKey()) .isNotNull(ApplyChange::getSignApplyNo)); if(chagneList !=null && chagneList.size()>0 ){ for(ApplyChange model : chagneList){ + String status = signService.linkFileStatus(model.getSignApplyNo()); + if(!StringUtils.equals(status,"3")){ + continue; + } String link = signService.linkFile(model.getSignApplyNo()); String fileUrl = uploadSignFile(link); if(StringUtils.isBlank(fileUrl)){ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� return; } - uploadChangeSignedFileDo(model,fileUrl); + uploadChangeSignedFileDo(model,fileUrl,path+fileUrl); return; } } @@ -465,7 +595,18 @@ } if(Constants.equalsInteger(data.getSignStatus(), Constants.THREE )){ //濡傛灉宸蹭繚鍏�,鍙笅杞界绾﹂檮浠� - InsuranceApply model = insuranceApplyMapper.selectOne(new QueryWrapper<InsuranceApply>().lambda().eq(InsuranceApply::getSignApplyNo,data.getApplyNo()).last("limit 1" )); + String path = systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode()+ + systemDictDataBiz.queryByCode(Constants.OSS,Constants.APPLY_FILE).getCode(); + InsuranceApply model = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class, + new MPJLambdaWrapper<InsuranceApply>() + .selectAll(InsuranceApply.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(InsuranceApply::getSignApplyNo,data.getApplyNo()) + .last("limit 1" )); if(model != null && Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){ //瀹屾垚绛剧讲宸插畬鎴愭搷浣� String link = signService.linkFile(data.getApplyNo()); @@ -474,11 +615,19 @@ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� return; } - uploadSignedFileDo(model,fileUrl); + uploadSignedFileDo(model,fileUrl,path+fileUrl); return; } - - ApplyChange applyChange = applyChangeMapper.selectOne(new QueryWrapper<ApplyChange>().lambda().eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" )); + ApplyChange applyChange = applyChangeMapper.selectJoinOne(ApplyChange.class, + new MPJLambdaWrapper<ApplyChange>() + .selectAll(ApplyChange.class) + .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) + .selectAs(Solutions::getEmail,InsuranceApply::getSolutionEmail) + .selectAs(Company::getName,InsuranceApply::getCompanyName) + .leftJoin(InsuranceApply.class,InsuranceApply::getId,ApplyChange::getApplyId) + .leftJoin(Solutions.class,Solutions::getId,InsuranceApply::getSolutionId) + .leftJoin(Company.class,Company::getId,InsuranceApply::getCompanyId) + .eq(ApplyChange::getSignApplyNo,data.getApplyNo()).last("limit 1" )); if(applyChange != null &&Constants.equalsInteger(applyChange.getStatus(),Constants.ApplyChangeStatus.UPLOAD.getKey())){ String link = signService.linkFile(data.getApplyNo()); String fileUrl = uploadSignFile(link); @@ -486,7 +635,7 @@ //濡傛灉涓嬭浇澶辫触锛屾竻闄ゅ悎鍚岋紝涓嬫绛剧珷閲嶆柊鐢熸垚鏂板悎鍚� return; } - uploadChangeSignedFileDo(applyChange,fileUrl); + uploadChangeSignedFileDo(applyChange,fileUrl,path+fileUrl); } }else if(Constants.equalsInteger(data.getSignStatus(), Constants.TWO )){ //濡傛灉宸叉嫆绛撅紝娓呴櫎鍚堝悓锛屼笅娆$绔犻噸鏂扮敓鎴愭柊鍚堝悓 @@ -542,6 +691,11 @@ // 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())); + return 1; } @@ -566,6 +720,11 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵"); } + Solutions solutions = solutionsMapper.selectById(model.getSolutionId()); + if(Objects.isNull(solutions)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�"); + } + Constants.ApplyLogType applyLogType = null; LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); InsuranceApply update = new InsuranceApply(); @@ -575,15 +734,26 @@ update.setCheckInfo(insuranceApply.getCheckInfo()); update.setCheckUserId(user.getId()); update.setId(model.getId()); + Constants.NoticeType noticeType = Constants.NoticeType.ONE; if(insuranceApply.getDealBackApply() ==1){ //濡傛灉鏄笉閫氳繃 applyLogType = Constants.ApplyLogType.PLATFORM_RETURN ; update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey()); + + noticeType = Constants.NoticeType.FOUR; }else{ applyLogType = Constants.ApplyLogType.PLATFORM_CHECK_PASS; update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()); } insuranceApplyMapper.updateById(update); + + //瀛樺偍寰呭姙淇℃伅 + 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); + 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)); @@ -608,6 +778,10 @@ if(!loginUserInfo.getType().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�"); } + Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); + if(Objects.isNull(solutions)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅"); + } List<ApplyDetail> applyDetailList = insuranceApply.getApplyDetailList(); //鍒ゆ柇鏄惁瀛樺湪閲嶅淇℃伅 List<String> idCardList = applyDetailList.stream().map(i->i.getIdcardNo()).collect(Collectors.toList()); @@ -622,20 +796,37 @@ insuranceApply.setCompanyId(loginUserInfo.getCompanyId()); insuranceApply.setCheckInfo(insuranceApplyStatus.getName()); insuranceApply.setStartTime(insuranceApply.getApplyStartTime()); - insuranceApply.setEndTime(insuranceApply.getApplyEndTime()); insuranceApply.setCheckDate(new Date()); insuranceApply.setCurrentFee(BigDecimal.ZERO); insuranceApply.setCheckUserId(loginUserInfo.getId()); insuranceApply.setStatus(insuranceApplyStatus.getKey()); + + CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO(); + countCyclePriceDTO.setSolutionsId(insuranceApply.getSolutionId()); + countCyclePriceDTO.setStartDate(insuranceApply.getStartTime()); + CountCyclePriceVO countCyclePriceVO = this.getCountCyclePriceVO(countCyclePriceDTO); + insuranceApply.setApplyEndTime(countCyclePriceVO.getEndDate()); + insuranceApply.setEndTime(countCyclePriceVO.getEndDate()); insuranceApplyMapper.insert(insuranceApply); + + //澶勭悊涓嬬骇鏁版嵁 - this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo); + this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO); InsuranceApply updBean = new InsuranceApply(); updBean.setId(insuranceApply.getId()); updBean.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add)); insuranceApplyMapper.updateById(updBean); //瀛樺偍鏃ュ織鏁版嵁 this.saveApplyLog(insuranceApply,insuranceApplyStatus,null); + //鍙戦�佸緟鍔炰笟鍔� + + //瀛樺偍寰呭姙淇℃伅 + 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.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO); + noticesMapper.insert(notices); + return insuranceApply.getId(); } @@ -681,30 +872,53 @@ insuranceApply.setCompanyId(loginUserInfo.getCompanyId()); insuranceApply.setCheckInfo(insuranceApplyStatus.getName()); insuranceApply.setStartTime(insuranceApply.getApplyStartTime()); - insuranceApply.setEndTime(insuranceApply.getApplyEndTime()); insuranceApply.setCheckDate(new Date()); insuranceApply.setCurrentFee(BigDecimal.ZERO); insuranceApply.setCheckUserId(loginUserInfo.getId()); insuranceApply.setStatus(insuranceApplyStatus.getKey()); + + CountCyclePriceDTO countCyclePriceDTO = new CountCyclePriceDTO(); + countCyclePriceDTO.setSolutionsId(insuranceApply.getSolutionId()); + countCyclePriceDTO.setStartDate(insuranceApply.getStartTime()); + CountCyclePriceVO countCyclePriceVO = this.getCountCyclePriceVO(countCyclePriceDTO); + insuranceApply.setApplyEndTime(countCyclePriceVO.getEndDate()); + insuranceApply.setEndTime(countCyclePriceVO.getEndDate()); + applyDetailMapper.delete(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId())); + + Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); + if(Objects.isNull(solutions)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅"); + } + //澶勭悊涓嬬骇鏁版嵁 - this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo); + this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO); insuranceApply.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add)); insuranceApplyMapper.updateById(insuranceApply); //瀛樺偍鏃ュ織鏁版嵁 this.saveApplyLog(insuranceApply,insuranceApplyStatus,null); + + + //瀛樺偍寰呭姙淇℃伅 + 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.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO); + noticesMapper.insert(notices); + return insuranceApply.getId(); } - public void dealApplyDetailData(InsuranceApply insuranceApply,List<ApplyDetail> applyDetailList,LoginUserInfo loginUserInfo){ - Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); - if(Objects.isNull(solutions)){ - throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅"); - } + public void dealApplyDetailData(InsuranceApply insuranceApply,Solutions solutions,List<ApplyDetail> applyDetailList,LoginUserInfo loginUserInfo,CountCyclePriceVO countCyclePriceVO){ //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣� - List<DuSolution> duSolutionList = duSolutionMapper.selectList(new QueryWrapper<DuSolution>().lambda() + List<DuSolution> duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>() + .selectAll(DuSolution.class) + .innerJoin(DispatchUnit.class,DispatchUnit::getId,DuSolution::getDispatchUnitId) + .eq(DispatchUnit::getCompanyId,insuranceApply.getCompanyId()) + .eq(DispatchUnit::getIsdeleted,Constants.ZERO) + .eq(DispatchUnit::getUnitStatus,Constants.ONE) .eq(DuSolution::getIsdeleted,Constants.ZERO) .eq(DuSolution::getStatus,Constants.ONE) .eq(DuSolution::getSolutionId,insuranceApply.getSolutionId())); @@ -780,7 +994,7 @@ applyDetail.setMemberId(member.getId()); applyDetail.setIdcardNo(member.getIdcardNo()); applyDetail.setSex(member.getSex()); - applyDetail.setFee(Constants.countDetailFee(solutions,insuranceApply.getApplyEndTime(),insuranceApply.getApplyStartTime())); + applyDetail.setFee(countCyclePriceVO.getCyclePrice()); //楠岃瘉娲鹃仯鍗曚綅淇℃伅鏄惁瀛樺湪 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崟浣嶆湭鏌ヨ鍒帮紒"); @@ -911,6 +1125,13 @@ //浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹� if(loginUserInfo.getType().equals(Constants.ONE)){ queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId()); + }else{ + if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){ + queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList()); + }else{ + queryWrapper.eq(InsuranceApply::getCompanyId, -1); + } + queryWrapper.eq(pageWrap.getModel().getCompanyId()!=null,InsuranceApply::getCompanyId, pageWrap.getModel().getCompanyId()); } if (pageWrap.getModel().getSolutionId() != null) { queryWrapper.eq(InsuranceApply::getSolutionId, pageWrap.getModel().getSolutionId()); @@ -991,6 +1212,12 @@ //浼佷笟浜哄憳鏌ョ湅鏈紒涓氭暟鎹� if(loginUserInfo.getType().equals(Constants.ONE)){ queryWrapper.eq(InsuranceApply::getCompanyId, loginUserInfo.getCompanyId()); + }else{ + if(loginUserInfo.getCompanyIdList()!=null && loginUserInfo.getCompanyIdList().size()>0){ + queryWrapper.in(InsuranceApply::getCompanyId, loginUserInfo.getCompanyIdList()); + }else{ + queryWrapper.eq(InsuranceApply::getCompanyId, -1); + } } if (model.getSolutionId() != null) { queryWrapper.eq(InsuranceApply::getSolutionId, model.getSolutionId()); @@ -1044,7 +1271,7 @@ MPJLambdaWrapper wrapper= new MPJLambdaWrapper<InsuranceApply>() .selectAll(InsuranceApply.class) .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) - .selectAs(Company::getName,ApplyLog::getCompanyName) + .selectAs(Company::getName,InsuranceApply::getCompanyName) .select(" ( select count(1) 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) @@ -1055,6 +1282,11 @@ if(Objects.isNull(insuranceApply)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } + + if(insuranceApply.getStartTime().compareTo(new Date())<0 && insuranceApply.getEndTime().compareTo(new Date()) > 0 ){ + insuranceApply.setLoseEfficacyDays(DateUtil.daysBetweenDates(insuranceApply.getEndTime(),new Date())); + } + initApplyStatus(insuranceApply); @@ -1185,8 +1417,14 @@ if(insuranceApply.getIsdeleted().equals(Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁宸插垹闄�,鏃犳硶杩涜璇ユ搷浣�"); } + Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); + if(Objects.isNull(solutions)){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅"); + } + //-----TODU-------RJ-------瀹屽杽閫�鍥炵姸鎬佸垎寮�鏍囪------------------ Constants.InsuranceApplyStatus insuranceApplyStatus = Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE; + Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY; if(insuranceApplyOptDTO.getOptType().equals(Constants.ONE)){ if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD.getKey()) ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey()) @@ -1200,6 +1438,15 @@ }else if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey())){ insuranceApplyStatus = Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE; } + + //瀛樺偍寰呭姙淇℃伅 + //鍒犻櫎鍏朵粬寰呭姙 + 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(), + insuranceApply.getCompanyId(), Constants.NoticeType.THREE); + noticesMapper.insert(notices); + + }else if(insuranceApplyOptDTO.getOptType().equals(Constants.TWO)){ insuranceApplyStatus = Constants.InsuranceApplyStatus.CLOSE; if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.CLOSE.getKey())){ @@ -1210,6 +1457,8 @@ ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀潪鍙敵璇烽��鍥�!"); } + //鍒犻櫎鍏朵粬寰呭姙 + noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId())); } insuranceApply.setStatus(insuranceApplyStatus.getKey()); insuranceApply.setCheckDate(new Date()); @@ -1273,6 +1522,8 @@ + + @Override public CountCyclePriceVO getCountCyclePriceVO(CountCyclePriceDTO countCyclePriceDTO){ if(Objects.isNull(countCyclePriceDTO) @@ -1285,21 +1536,11 @@ if(Objects.isNull(solutions)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�"); } - CountCyclePriceVO countCyclePriceVO = new CountCyclePriceVO(); - if(solutions.getInsureCycleUnit().equals(Constants.ZERO)){ - countCyclePriceVO.setEndDate(DateUtil.afterDateByType(countCyclePriceDTO.getStartDate(),0,solutions.getInsureCycle())); - }else if(solutions.getInsureCycleUnit().equals(Constants.TWO)){ - Integer monthDays = DateUtil.monthDays(countCyclePriceDTO.getStartDate()); - Date afterDate = DateUtil.afterDateByType(countCyclePriceDTO.getStartDate(),0,monthDays); - countCyclePriceVO.setEndDate(DateUtil.afterDateByType(afterDate,0,-1)); - }else if(solutions.getInsureCycleUnit().equals(Constants.THREE)){ - Date afterDate = DateUtil.afterDateByType(countCyclePriceDTO.getStartDate(),2,solutions.getInsureCycle()); - countCyclePriceVO.setEndDate(DateUtil.afterDateByType(afterDate,0,-1)); - } - countCyclePriceVO.setCyclePrice(Constants.countDetailFee(solutions,countCyclePriceVO.getEndDate(),countCyclePriceDTO.getStartDate())); - return countCyclePriceVO; + return Constants.countPriceVO(countCyclePriceDTO.getStartDate(),solutions); } + + } -- Gitblit v1.9.3