| | |
| | | import io.swagger.models.auth.In; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); |
| | | } |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |
| | |
| | | |
| | | |
| | | |
| | | |
| | | private void startSendEmail(Multifile f, String companyName, String solutionsName, String solutionEmail) { |
| | | if(StringUtils.isBlank(solutionEmail) || f==null|| StringUtils.isBlank(f.getFileurl())){ |
| | | return; |
| | |
| | | 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 testSendEmail(){ |
| | | SmsEmail email = new SmsEmail(); |
| | | email.setTitle("测试邮件"); |
| | | email.setEmail("94314517@qq.com"); |
| | | email.setContent("来自企业【测试企业】关于保险方案【测试方案】的测试邮件"); |
| | | File file = Constants.getFileByNetFile("https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20250116/600faf2f-5ba2-44e2-9a96-c99052dc013d.pdf","1111.pdf"); |
| | | if(file!=null && file.isFile()){ |
| | | Map<String,Object> files = new HashMap<>(); |
| | | files.put("name","测试文件"); |
| | | files.put("file",file); |
| | | email.setFileList(new ArrayList<>()); |
| | | email.getFileList().add(files); |
| | |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {Exception.class,BusinessException.class}) |
| | | public Integer updateData(InsuranceApply insuranceApply) { |
| | |
| | | |
| | | |
| | | |
| | | |
| | | private static Logger logger = LoggerFactory.getLogger(InsuranceApplyServiceImpl.class); |
| | | |
| | | public void dealApplyDetailData(InsuranceApply insuranceApply,Solutions solutions,List<ApplyDetail> applyDetailList, |
| | | LoginUserInfo loginUserInfo,CountCyclePriceVO countCyclePriceVO,Boolean checkNewData){ |
| | | Long start = System.currentTimeMillis(); |
| | | logger.error("处理保单数据开始时间:=========================>"+start); |
| | | //2024年11月6日15:01:34 加入 方案配置了有派遣单位 才会去验证派遣单位数据 |
| | | List<DuSolution> duSolutionList = new ArrayList<>(); |
| | | List<DuWorktype> duWorktypeList = new ArrayList<>(); |
| | |
| | | } |
| | | memberList.addAll(addMemberList); |
| | | for (int i = 0; i < applyDetailList.size(); i++) { |
| | | Long singlStart = System.currentTimeMillis(); |
| | | logger.error("处理保单单条数据开始时间:=========================>"+singlStart); |
| | | ApplyDetail applyDetail = applyDetailList.get(i); |
| | | if(Objects.isNull(applyDetail) |
| | | ||StringUtils.isBlank(applyDetail.getIdcardNo()) |
| | |
| | | member.setDuId(applyDetail.getDuId()); |
| | | member.setWorktypeId(applyDetail.getWorktypeId()); |
| | | memberMapper.updateById(member); |
| | | applyDetail.setMemberName(member.getName()); |
| | | } |
| | | }else{ |
| | | member = memberMapper.selectById(applyDetail.getMemberId()); |
| | |
| | | member.setDuId(applyDetail.getDuId()); |
| | | member.setWorktypeId(applyDetail.getWorktypeId()); |
| | | memberMapper.updateById(member); |
| | | applyDetail.setMemberName(member.getName()); |
| | | } |
| | | applyDetail.setMemberId(member.getId()); |
| | | applyDetail.setIdcardNo(member.getIdcardNo()); |
| | |
| | | .collect(Collectors.toList()).size()<=Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"【"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"】员工工种信息未查询到!"); |
| | | } |
| | | // if(duWorktypeList.stream().filter(d->d.getWorkTypeId().equals(applyDetail.getWorktypeId())) |
| | | // .collect(Collectors.toList()).size()<=Constants.ZERO){ |
| | | // throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"【"+applyDetail.getMemberName()+applyDetail.getIdcardNo()+"】员工工种信息未查询到!"); |
| | | // } |
| | | Long singlEnd = System.currentTimeMillis(); |
| | | logger.error("处理保单单条数据结束时间:=========================>"+singlEnd+";耗时:====》"+(singlStart-singlEnd)); |
| | | } |
| | | Long end = System.currentTimeMillis(); |
| | | logger.error("处理单数据结束时间:=========================>"+end +";耗时:====》"+(end-start)); |
| | | applyDetailJoinMapper.insertBatchSomeColumn(applyDetailList); |
| | | } |
| | | } |
| | |
| | | }; |
| | | } |
| | | |
| | | public static void checkStaticMemberSolution(Integer solutionId,String idCode,String memberName,Date startTime, |
| | | public static void checkStaticMemberSolution(Integer solutionId,Integer memberId,String memberIdCard,String memberName,Date startTime, |
| | | Date endTime,ApplyDetailJoinMapper applyDetailJoinMapper){ |
| | | List<ApplyDetail> applyDetailList = new ArrayList<ApplyDetail>(); |
| | | try { |
| | |
| | | .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::getIdcardNo,memberIdCard) |
| | | .eq(Solutions::getBaseId,solutionId) |
| | | .eq(ApplyDetail::getIsdeleted,Constants.ZERO) |
| | | .notIn(InsuranceApply::getStatus |
| | |
| | | } |
| | | 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{ |
| | |
| | | .selectAs(Solutions::getType,InsuranceApply::getSolutionType) |
| | | .selectAs(Solutions::getName,InsuranceApply::getSolutionsName) |
| | | .selectAs(Solutions::getHasDispatchUnit,InsuranceApply::getHasDispatchUnit) |
| | | .selectAs(Solutions::getSignType,InsuranceApply::getSignType) |
| | | .selectAs(Company::getName,InsuranceApply::getCompanyName) |
| | | .selectAs(Solutions::getCorrectWarnTime,InsuranceApply::getCorrectWarnTime) |
| | | .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) |
| | | .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(Company.class,Company::getId,Solutions::getShopId) |
| | | .eq(InsuranceApply::getId,id) |
| | | .last("limit 1"); |
| | | |
| | | InsuranceApply insuranceApply = insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,wrapper); |
| | | if(Objects.isNull(insuranceApply)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | this.dealDataDetail(insuranceApply); |
| | | return insuranceApply; |
| | | } |
| | | |
| | | public void dealDataDetail(InsuranceApply insuranceApply){ |
| | | Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId()); |
| | | if(Objects.isNull(solutions)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未查询到方案信息"); |
| | | } |
| | | insuranceApply.setCorrectWarnTime(solutions.getCorrectWarnTime()); |
| | | 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)){ |
| | |
| | | initApplyStatus(insuranceApply); |
| | | //查询附件数据 |
| | | initImgData(insuranceApply); |
| | | |
| | | insuranceApply.setChangeMoney(Constants.getTwoPoint(insuranceApply.getChangeMoney())); |
| | | insuranceApply.setFee(Constants.getTwoPoint(insuranceApply.getFee())); |
| | | |
| | | //查询操作记录 |
| | | List<ApplyLog> applyLogList = applyLogJoinMapper.selectJoinList(ApplyLog.class, |
| | | new MPJLambdaWrapper<ApplyLog>() |
| | |
| | | .orderByAsc(ApplyLog::getCreateDate) |
| | | ); |
| | | insuranceApply.setApplyLogList(applyLogList); |
| | | return insuranceApply; |
| | | } |
| | | |
| | | private void setServiceDays(InsuranceApply insuranceApply) { |
| | |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_UPLOAD.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); |
| | | } |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |
| | |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对不起,该申请状态已流转,当前不支持签章操作!"); |
| | | } |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |
| | |
| | | if(solutions.getType().equals(Constants.ZERO)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,非委托保方案保单,无法进行该操作!"); |
| | | } |
| | | String fileUrl = "https://yybred.oss-cn-hangzhou.aliyuncs.com/apply/20241230/a0d128f2-ba6c-4ad4-b86b-b2610a513d41.pdf";//ExcelExporter.build(InsuranceApply.class).exportApplyExcelToPdf(model,"人员名单"); |
| | | String fileUrl = ExcelExporter.build(InsuranceApply.class).exportApplyExcelToPdf(model,"人员名单"); |
| | | String notifyUrl = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SIGN_DONE_NOTIFY_URL).getCode(); |
| | | notifyUrl = notifyUrl.replace("${type}","0").replace("${id}",model.getId().toString()); |
| | | //String applyNo = signService.applySignLocalFile(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"投保名单签章",company.getSignId(),notifyUrl); |
| | | String applyNo = signService.applySign(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),model.getSignKeyword(),company.getSignId(),notifyUrl); |
| | | String applyNo = signService.applySignLocalFileByParam(company.getName(),company.getName(),fileUrl,company.getCode(),company.getEmail(),"投保名单签章",company.getSignId(),notifyUrl,new Float(0.7)); |
| | | // String applyNo = signService.applySign(company.getName(),fileUrl,company.getName(),company.getCode(),company.getEmail(),model.getSignKeyword(),company.getSignId(),notifyUrl); |
| | | if(StringUtils.isBlank(applyNo) ){ |
| | | throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"对不起,获取在线签章地址失败,请稍后重试!"); |
| | | } |
| | |
| | | if(!Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.WTB_TOUBAOING.getKey())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,该申请状态已流转,当前不支持该操作~"); |
| | | } |
| | | Company company = user.getCompany(); |
| | | Company company = user.getShowCompany(); |
| | | if(debugModel){ |
| | | company = companyMapper.selectById(model.getCompanyId()); |
| | | } |