电子签章(SpringCloud写一个简单签章)

Java为pdf电子签章(关键字盖章) String outputPdf = "D://test//pdf//指定位置签章-itext-".concat(dateStr).concat(".pdf");String outputPdf = "D://test//pdf//关键字签章-itext-".concat(dateStr).concat(".pdf");//签章图片位置坐标。//签章图片位置坐标。// 关键字位置信息map。* 获取关键字位置信息map。//设置签字图片宽高。// 要盖章的关键字。//设置签字图片宽高。 阅读详情

java 代码实现电子签章(表格+签章)简单版本 注:使用的是springcloud项目

导入依赖 注:导入依赖不只有pdf的还有其他依赖

 <dependencies>
        <!--eureka 注册中心的客户端-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <!--加入ribbon的配置-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
        </dependency>


        <dependency>
            <groupId>com.zhenzikj</groupId>
            <artifactId>zhenzisms</artifactId>
            <version>2.0.2</version>
        </dependency>


        <!--hystrix 依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>


        <!--加入openfegin依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>


        <!--监控程序依赖-->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.2.4</version>
        </dependency>

        <!--加入配置中心的依赖-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <!--springboot web程序-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>


        <!--mybatis-plus依赖-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>

        <!--mybatis-plus-generator 代码生成器-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.5.1</version>
        </dependency>

        <!--mysql的驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>

        <!--redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <!--引入支付sdk-->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.31.72.ALL</version>
        </dependency>

        <!--xxl-job 分布式任务调度依赖-->
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
            <version>2.3.0</version>
        </dependency>

        <!--alibaba easyexcel-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.0.5</version>
        </dependency>

        <!--bootstrap 通过配置中心更改微服务配置-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bootstrap</artifactId>
            <version>3.1.1</version>
        </dependency>

        <!--发送邮件-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <!--kafka的配置-->
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>

        <!-- 字体 -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itext-asian</artifactId>
            <version>5.2.0</version>
        </dependency>

        <!-- 设置pdf文件密码 -->
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>1.54</version>
        </dependency>
        <!-- pdf 转 图片 -->
        <dependency>
            <groupId>org.apache.pdfbox</groupId>
            <artifactId>pdfbox</artifactId>
            <version>2.0.12</version>
        </dependency>
        <!-- pdf -->
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>itextpdf</artifactId>
            <version>5.5.13</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>


        <dependency>
            <groupId>org.activiti</groupId>
            <artifactId>activiti-image-generator</artifactId>
            <version>7.0.0.Beta2</version>
        </dependency>
        <!--svg转png-->
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-transcoder</artifactId>
            <version>1.13</version>
        </dependency>
        <dependency>
            <groupId>batik</groupId>
            <artifactId>batik-util</artifactId>
            <version>1.6-1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-codec</artifactId>
            <version>1.7</version>
        </dependency>



        <!--引入email-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.2.8</version>
        </dependency>


        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-core</artifactId>
            <version>1.5.22</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>

            <artifactId>commons-dbcp</artifactId>
            <version>1.4</version>
        </dependency>

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.8.9</version>
        </dependency>
    </dependencies>

加入配置yml文件 注:application.yml没有pdf配置,配置直接写在controller类中

server:
  port: 80
#pdf:
#  enable: true
#  domain: http://localhost:${server.port}/
#  pdf-ks: D:\keystore\server.keystore
#  pdf-ks-pass: 123456
#  x: 400
#  y: 400
#  width: 200
#  height: 200
#  sign-pic-name: sign.png
#  path: D:\pic\
#  font: D:\fonts\simsun.ttc
spring:
  application:
    name: leavepdf
  datasource:
    url: jdbc:mysql://localhost:3306/xxx?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
    username: xxx
    password: xxx
    type: com.alibaba.druid.pool.DruidDataSource
//日志 注:类别info
logging:
  level:
    root: info

整体代码 注:别导错包

package com.bw.controller;

import java.io.*;
import java.net.URLEncoder;
import java.security.*;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.util.List;
import java.util.UUID;

import cn.hutool.core.util.IdUtil;
import com.bw.domain.Leave;
import com.bw.domain.User;
import com.bw.service.LeaveService;
import com.bw.service.UserService;
import com.itextpdf.kernel.font.PdfSimpleFont;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.*;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import com.itextpdf.text.pdf.security.BouncyCastleDigest;
import com.itextpdf.text.pdf.security.DigestAlgorithms;
import com.itextpdf.text.pdf.security.ExternalDigest;
import com.itextpdf.text.pdf.security.ExternalSignature;
import com.itextpdf.text.pdf.security.MakeSignature;
import com.itextpdf.text.pdf.security.MakeSignature.CryptoStandard;
import com.itextpdf.text.pdf.security.PrivateKeySignature;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.print.Doc;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import static com.bw.controller.Hello.*;

@RequestMapping("pdf")
@RestController
public class pdfController {
    public static final String KEYSTORE="ks/whj.p12";
    public static final char[] PASSWORD="123456".toCharArray();

    @Autowired
    UserService userService;

    @RequestMapping("pdflist")
    public String pdflist(HttpServletResponse response) throws DocumentException, GeneralSecurityException, IOException {
        List<User> list = userService.list();
        //生成唯一的文件名
        String filename = IdUtil.getSnowflakeNextIdStr()+".pdf";
        //必要响应代码,必须写
        response.setContentType("application/pdf");
        //加上这行代码就是下载,不加就是预览
//        response.addHeader("Content-Disposition","attachment;filename="+filename);
        //开启pdf
        Document document = new Document();
        PdfWriter instance = PdfWriter.getInstance(document, new FileOutputStream(filename));
        document.open();
        //更改pdf的字体问题,防止因为字体出现乱码
        //解决乱码问题
        BaseFont baseFont = null;
        baseFont=BaseFont.createFont("D:/fonts/SIMLI.TTF",BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);
        Font font = new Font();
        font.setColor(BaseColor.BLUE);
        font.setSize(12);
        //开始进行pdf的表格的设置 注:参数为数据库有几个字段就写几
        PdfPTable pdfPTable = new PdfPTable(3);
        pdfPTable.addCell(new Paragraph("id",font));
        pdfPTable.addCell(new Paragraph("name",font));
        pdfPTable.addCell(new Paragraph("password",font));
        //循环列表将pdf存入
        for (User user:list){
            pdfPTable.addCell(new Paragraph(user.getId()+"",font));
            pdfPTable.addCell(new Paragraph(user.getName()+"",font));
            pdfPTable.addCell(new Paragraph(user.getPassword()+"",font));
        }
        document.add(pdfPTable);
        document.close();
        //https://kb.itextpdf.com/home/it5kb/examples/digital-signatures-chapter-2#Digitalsignatureschapter2-c2_07_signatureappearances
        //c2_07_signatureappearances第二段代码
        BouncyCastleProvider provider = new BouncyCastleProvider();
        Security.addProvider(provider);
        KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
        ks.load(new FileInputStream(KEYSTORE), PASSWORD);
        String alias = (String)ks.aliases().nextElement();
        PrivateKey pk = (PrivateKey) ks.getKey(alias, PASSWORD);
        Certificate[] chain = ks.getCertificateChain(alias);
        //需要更改的图片路径
        Image image = Image.getInstance("D:/pic/36693-111jpg/sign.png");
        //https://kb.itextpdf.com/home/it5kb/examples/digital-signatures-chapter-2#Digitalsignatureschapter2-c2_07_signatureappearances
        //c2_07_signatureappearances第一段代码
        //加入文件的名称
        PdfReader reader = new PdfReader(filename);
        //本行注释,文件的流在下面设置
//        FileOutputStream os = new FileOutputStream(dest);
        //输出流 通过响应创建一个
        ServletOutputStream outputStream = response.getOutputStream();
        PdfStamper stamper = PdfStamper.createSignature(reader,outputStream, '\0');
        PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
        //更改reason和location内容为String类型即可,可随意
        appearance.setReason("原因");
        appearance.setLocation("位置");
        //签章的位置,参数尽量固定
        appearance.setVisibleSignature(new Rectangle(400,100,100,780),1,"sig");
        //这行可以注释,没有作用
//        appearance.setLayer2Text("Signed on " + new Date().toString());
        //粘贴后加入的新数据(两行),尽量固定
        appearance.setCertificationLevel(PdfSignatureAppearance.CERTIFIED_FORM_FILLING_AND_ANNOTATIONS);
        appearance.setRenderingMode(PdfSignatureAppearance.RenderingMode.GRAPHIC);
        appearance.setSignatureGraphic(image);
        // Creating the signature下面一行无用注释
//        PrivateKeySignature pks = new PrivateKeySignature(pk, digestAlgorithm, provider);
        ExternalDigest digest =  new BouncyCastleDigest();
        //新加入的字段
        PrivateKeySignature signature = new PrivateKeySignature(pk, DigestAlgorithms.SHA256, provider.getName());
        //三个参数
        MakeSignature.signDetached(appearance, digest, signature, chain, null, null, null, 0, MakeSignature.CryptoStandard.CMS);
        outputStream.close();
        return "111111111";
    }


}

PDF 电子签章全解析:从原理到实践(附 Java 代码示例) 本文详细探讨了PDF电子签章的核心技术,包括证书生成、定位方法、外观定制及常见问题解决方案。首先,介绍了使用OpenSSL生成自签名证书并将其转换为PKCS#12格式的步骤,并提供了Java代码示例来加载PKCS#12证书。接着,阐述了基于关键字定位和页面中心定位的签章实现方法,并提供了相应的Java代码。此外,还介绍了签章外观定制的技巧,如添加图片签章、设置透明文字和去除签名信息显示。最后,针对常见问题如OpenSSL中文乱码、签名后文件变大和签章位置偏移,提供了解决方案,并提出了最佳实践建议,包括证书管 阅读详情

相关推荐

java生成电子签章

通过java代码先生成html,然后再将html转换成所需要的pdf文件,并加盖印章。

关于Java生成电子签章

java快速生成电子签章

weixin_57083467的博客 2458

电子合同-Java生成电子签章

springboot 电子合同-Java生成电子签章,可以对pdf合同加盖电子章

【java-电子签章功能实现】

本文主要描述如何对已有的word文档进行字段填充后,进行电子签章(CA证书)生成pdf文件废话不多数,上代码(涉及的工具类较多,有不全的评论即可,看到会及时补充)

过去过去,未来未来,当下永恒! 3927

若依(RuoYi)项目里,Quartz定时任务踩坑实录:并发控制、事务回滚与异常处理

本文深入解析若依(RuoYi)项目中Quartz定时任务的并发控制、事务回滚与异常处理三大核心问题。通过实战案例揭示@DisallowConcurrentExecution注解的局限性和Redis分布式锁的应用,详细讲解Spring事务集成方案及多数据源事务管理,并提供生产级监控体系搭建指南,帮助开发者规避Quartz在生产环境中的常见陷阱。

weixin_28731223的博客 412

学习C++的递归函数(包含汉诺塔讲解)

简单来讲,递归函数就是函数本身自己调用自己,那么函数又是什么呢?#include <stdio.h> //这行是头文件,不同的头文件可以用不同的函数int main() //这里就是一个main函数//这里是你要编写程序的内容return 0;(这是个小细节如下)所以我们平时用来练习的就是一个main函数,而且是一个整型类型的函数,而这也是最后一句话为什么要加一句 return 0;了,因为它最后要返回整数类型,其它整数也可以,但是大家规定为0,这是C++自带的函数。

2302_81032013的博客 2594

SpringBoot实现电子文件签字+合同系统!

目前市面上的电子签章产品也是多样化,但是不管是哪个厂家的产品,在线签章简单易用,同时也能保证签章的有效性,防篡改,防伪造,稳定,可靠就是好产品。PageOffice产品只提供文档在线处理的功能,包括:打开、编辑、保存、动态填充、文档合并、套红、留痕、盖章等上百项功能(详细请参考PageOffice产品开发包中的示例),不提供流程控制功能,所以不管开发什么样的Web系统,只要是需要在线处理Office文档,都可以根据自己的项目需要,调用PageOffice产品相应的功能即可。

竹林幽深 683

用Multisim复刻经典收音机:从零搭建超外差中波调幅接收机(附仿真源文件)

本文详细介绍了如何使用Multisim软件从零搭建超外差中波调幅接收机,复刻经典收音机的设计过程。通过模块化搭建、稳定性优化和增益分配等实战指南,帮助读者掌握超外差架构的核心技术,并附赠仿真源文件供实践参考。

weixin_28744423的博客 475

AL流程图汇总

1,集团型企业数字化转型顶层设计架构图 2,风控决策引擎架构图 3,阿里云应用系统部署图 4,快速开发框架分层开发指引 5,微服务架构应用超时指引 6,通用服务中台体系架构全景 7,阿里云VPC子网规划 8,拉新小活动流程时序图 9,应用服务监控方案实践 10,APP内嵌H5用户认证流程 11,电子签章流程 12,品牌搜索系统架构图 13,架构设计方法论 14,SpringCloud微服务系统架构设计 ...

MrLee的博客 1071

【Sentaurus TCAD仿真】几种基础操作

当内存不足时,没必要删除整个Project,只需要 Clean up 节点信息即可。因为占用内存的主要部分是。文件数据,Command文件是不占用多少内存的,下次需要此工程仿真结果重新运行即可。右击可以对该工程进行剪切、复制、删除、重命名等操作。当节点号有时候排序混乱的时候,我们需要重新编排节点号。此时左侧工具栏就能看见我们新建的这个工程。运行节点时不同的颜色代表目前的状态。在这个地方添加要使用的工具。这个时候需要的工具就建好了。然后选择需要使用的工具。我们需要保存这个工程。

qq_45746744的博客 1万+

Ferromagnetic soft continuum robots

本文来自机器人领域顶刊,Science Robotics。介绍了一种铁磁软连续体机器人,主要贡献为1)介绍了一个基于磁性微粒和聚合物的软连续体机器人的制造方法,在机器人外表面涂了一层水凝胶,极大地降低了摩擦阻力;2)并研究了在磁场下,不同粒子体积分数下,此机器人的驱动性能;利用手动操控的磁铁,进行了许多实验证明该机器人性能的优异性。 铁磁软连续体机器人 Ferromagnetic soft continuum robots [1] Paper Link Authors: Kim, Yoonho, et al

XU Yangxin的博客 1374

JNPF低代码开发平台—SpringCloud微服务解决框架

JNPF低代码开发平台总体介绍 JNPF低代码开发平台是由引迈信息完全自主研发的专业的前后端分离java低代码快速开发平台, JNPF含盖SpringBoot+SpringCloud的所有必要的核心功能,JNPF的目标是更轻量级、更快速、更全面、更低代码量、更易于学习和使用的前后端分离的开发平台,可以实现无代码快速开发服务。 JNPF通过建立数据模型和代码生成器功能可以快速的实现80%的java开发工作,JNPF本身已含有无代码开发模式,包含了web开发、app开发、报表开发、大屏开发、门户开发等等。有

JNPF 专注低代码开发 1902

用 SemanticObject 把字段变成可点击链接:Fiori Elements Navigation Using a Link 的工程化实践

SAP Fiori elements 通过 Common.SemanticObject 注解可将字段转为可点击链接,实现应用间跳转。当源字段名与目标属性名不一致时,需使用 Common.SemanticObjectMapping 进行映射。该功能依赖 Fiori Launchpad 的目标映射配置,确保正确解析 semantic object + action 并传递参数。常见误区包括未配置目标映射或字段映射错误,需逐一检查语义标注、intent 解析和参数传递链路。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 272

JNPF低代码开发平台——SpringCloud微服务解决框架

JNPF低代码开发平台总体介绍 JNPF低代码开发平台是由引迈信息完全自主研发的专业的前后端分离java低代码快速开发平台, JNPF含盖SpringBoot+SpringCloud的所有必要的核心功能,JNPF的目标是更轻量级、更快速、更全面、更低代码量、更易于学习和使用的前后端分离的开发平台,可以实现无代码快速开发服务。 JNPF通过建立数据模型和代码生成器功能可以快速的实现80%的java开发工作,JNPF本身已含有无代码开发模式,包含了web开发、app开发、报表开发、大屏开发、门户开发等等。有

JNPF快速开发平台的博客 1319

【unity游戏开发入门到精通——UGUI】UI控件 —— Toggle开关切换控件

【unity游戏开发入门到精通——UGUI】UI控件 —— Toggle开关切换控件

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 1845

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

基于springcloud微服务架构springboot工作流引擎的研究系统自动化办公OA系统毕业设计项目源码

针对企业办公流程繁琐、跨部门协作低效、审批周期长等问题,本系统构建集流程自动化、协同办公、数据集成于一体的智能 OA 平台。采用 SpringCloud 微服务架构,整合 SpringBoot 工作流引擎,实现企业办公全流程数字化管理,提升协同效率与决策响应速度。 平台核心用户包括:员工发起审批、处理待办事项、参与协作;部门主管审批流程、分配任务、查看团队数据;管理层监控流程效率、分析运营数据、优化管理策略。系统支持流程自定义、移动办公、数据可视化功能,自动生成审批时效、流程瓶颈、工作量等报表。 后端基于

专注于大学生项目实战开发,讲解,毕业答疑辅导,java就业辅导,高校老师/讲师/同行合作。以及产品测评宣传、工具推广等合作。全网粉丝10w+,平台优质创作者。 850

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

电子招投标系统源码之 —采购数字化转型快人一步,以大数据支撑供应链管理未来

平台满足询比价、招标、竞价、拍卖、协议直采、商城采购等多种采购定价方式,采购过程全程留痕可追溯。平台支持企业通过WEB、APP、小程序等终端完成采购需求、采购计划、定价、合同、订单、审批等业务的内外协同,帮助企业实现业务数据的落盘闭环和业务管理的一体化。涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stream、ElasticSearch等。支持手动新建计划和计划的自动生成;支持ERP、OA系统集成;

m0_46413639的博客 431

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

中小企业体系技术抽象沉淀-Java/SpringBoot篇

企业开发的过程中会逐渐沉淀自己的一些公共类库&方法等;建议可以整合开源项目与自身沉淀的一些做一个统一的parent包&各个组件starter。本意是想做成一个类似于 如下的一种企业内部的一个通用的父包;

caicongyang 787

2019-2020年_Java高级开发/Java架构师_超凡的面试心经(二)

2019-2020年_Java高级开发/Java架构师_超凡的面试心经(二) ...

田宝宝的博客 678

电子招投标系统源码 —降低企业采购成本

平台支持企业通过WEB、APP、小程序等终端完成采购需求、采购计划、定价、合同、订单、审批等业务的内外协同,帮助企业实现业务数据的落盘闭环和业务管理的一体化。系统定制化如:电子商务、社交娱乐、直播、客服系统、HR、CRM、采购系统、各类管理平台等。涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stream、ElasticSearch等。支持手动新建计划和计划的自动生成;支持ERP、OA系统集成;

Xiaohong0716的博客 468

电子招投标系统源码 — 坚持降低企业采购成本的理念

平台满足询比价、招标、竞价、拍卖、协议直采、商城采购等多种采购定价方式,采购过程全程留痕可追溯。平台支持企业通过WEB、APP、小程序等终端完成采购需求、采购计划、定价、合同、订单、审批等业务的内外协同,帮助企业实现业务数据的落盘闭环和业务管理的一体化。涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、Stream、ElasticSearch等。支持手动新建计划和计划的自动生成;支持ERP、OA系统集成;

m0_61571842的博客 262

住宅物业全模块数字化转型的技术落地实践

1个数据中台:基于SpringCloud微服务架构构建,采用MySQL分库分表存储业务数据,Elasticsearch处理非结构化数据,通过Kafka实现跨模块实时数据同步,数据清洗层采用Flink流处理引擎,确保各模块数据实时互通。作为深耕物业行业二十年的从业者,我们见证了从单一功能系统到全链路数字化的转型历程。-5大业务引擎:分别对应收费、客服、巡检、协同办公、人力资源五大模块,各引擎通过RESTfulAPI与数据中台对接,采用容器化部署在K8s集群,支持弹性扩容。

wuyeshuzhihua的博客 389
上一篇: zookeeper虚拟机安装(kafka)
下一篇: XXL-Job的简单使用
喧嚣难眠
博客等级 码龄4年 55粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值