自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_16570607的博客

热爱技术的一枚妹子

  • 博客(190)
  • 资源 (2)
  • 收藏
  • 关注

原创 银企直连业务

银行回单指银行在办理业务后出示的一个有效凭证,用来证明在银行办理了某种业务。企业每天发生的收付款业务都会有银行回单与之对应,用来企业日常的账务处理。电子回单记载了企业网上付款交易的各种详细信息。当流水和回单记录到系统后,根据流水号、账户号、金额等信息自动搜寻到系统中对应的流水或回单。

2024-05-26 18:00:44 214 1

原创 CRM系统业务学习

在CRM销售域里的账号都要和HR系统关联,如果离职了,CRM这里也会不允许登陆。线索与线索池、客户与公海池、跟进计划与跟进记录、联系人、商机等。线索管理、客户管理、商机管理、订单管理、财务管理、薪酬管理。通知公告、待办消息、线索跟进、日历任务。录入、领取、跟进、转换。

2024-05-14 15:51:47 150

原创 WMS系统业务学习

需求—采购申请—报价请求—供应商报价—采购订单—接收—付款。业务流程:采购订单—到货预约—货物交接—(质检)—上架。销售订单审核—任务拆解分配任务—拣货确认—出库交接。销售订单审核—波次管理—拣货—验货打包—称重交接。核心功能聚焦于入库及出库管理的各个作业环节。库位管理—盘点—批次/SN—动态库存。仓内转移—仓间调拨—补货—库内加工。销售定价—订单—发运—收款—开票。

2024-05-14 11:21:29 195

原创 ERP与MES与WMS集成

终端用户使用RFID(无线射频技术)平台,来查看供应链中流通的货品,以实现简化的自动化操作。在整个供应链中货品都贴有RFID标签,每个标签都包含唯一标识符。成品(半成品)下线后,MES需要向WMS提供下线产品信息及数量,完成自动入库动作。读写器安装在传送带上或门口,当货物和集装箱在设备之间移动时对其进行无线读取和识别。MES—>WMS:物料耗用、成品下线状况。指导=>物流按需配送、成品入库。该技术将自动追踪货件,在卡车装卸货物时,将货物分拣到正确的位置。WMS—>MES:物料的供应商信息、仓库流转信息。

2024-05-13 00:24:06 195

原创 mes系统业务学习

有那些车间,车间里有那些产线,产线上有那些工序,工序上的工位是什么,安排的是设备还是人员。系统对即将进行生产的物料进行预占库存,并在物料实际使用之前,进行扣减。mes线边库预占量可以减少因物料不足导致的工人停工、加班等情况。叫料是指生产过程中向上级工序提出的原材料或零部件的请求,以便下一步制作。从产品原材料到成品的各环节追溯。每个产品在生产过程中都被赋予一个唯一的标识码或批次号,系统可以记录该产品的生产过程和相关信息。通过批次管理,可以精确追踪每个产品的原材料来源、生产工艺、生产人员等关键信息。

2024-05-11 17:03:24 817

原创 CRM(客户关系管理系统)

在CRM套件的基础上自定义编辑/搭建了适合公司业务的CRM+ERP 两大应用,将两大管理环节进行联动,实现信息互通、高效管理。很多客户有复杂的订单成本计算方式,复杂多变的审批流程,个性化/流程化的数据结构,没有自定义能力就很难满足。数据导入->公海池/客户->商机填写->合同审批->仪表盘数据呈现。管理线索/客户->管理商机->管理合同执行。可新增:询价、招投标、项目管理等。

2024-05-08 16:52:34 223

原创 银行ETL-监管报送

事实表就是你要关注的内容。维度表就是你观察该事务的角度。拉链表是为了保留历史数据,并且使存储最为节约。不需要保留历史记录的表一般不做拉链表。

2024-05-04 21:15:43 759

原创 SQL学习与优化

多级分类下的自链接查询一级分类下总的销售额及订单总数加索引-性能优化

2024-05-03 14:23:32 102

原创 CountDownLatch锁的应用

【代码】CountDownLatch锁的应用。

2023-09-06 10:07:49 142

原创 java任务太大,分批执行

【代码】java任务太大,分批执行。

2023-08-08 09:26:09 204 1

原创 java线程池的使用

【代码】java线程池的使用。

2023-08-08 09:20:31 183

原创 redis分布式锁的使用

分布式锁工具类LockUtils.javapackage com.shein.pmj.utils;import lombok.extern.slf4j.Slf4j;@Slf4jpublic final class LockUtils { /** * 分布式锁,根据业务情况传入缓存失效时间 * PS:上面的tryGetLock,自增和设置失效时间不是原子的,如果redis自增后, * 系统正好挂了,此时还未设置时效时间,那么定时任务当天就无法执行了(出现概率

2023-08-08 09:11:39 144

原创 复杂SQL优化实例

重写为 JOIN 之后,子查询的选择模式从 DEPENDENT SUBQUERY 变成 DERIVED,执行速度大大加快,从7秒降低到2毫秒。比如下面 UPDATE 语句,MySQL 实际执行的是循环/嵌套子查询(DEPENDENT SUBQUERY),其执行时间可想而知。这种写法不仅存在额外的开销,还使得整个语句显的繁杂。在前端数据浏览翻页,或者大数据分批导出等场景下,是可以将上一页的最大值当成参数作为查询条件的。不难看出子查询 c 是全表聚合查询,在表数量特别大的情况下会导致整个语句的性能下降。

2023-06-06 17:21:56 613 1

原创 复杂SQL实践-MYSQL

题目:现在运营想要查看用户在某天刷题后第二天还会再来刷题的平均概率。窗口函数总体上可以分为序号函数, 分布函数, 前后函数, 首尾函数和其他函数。MySQL从8.0版本开始支持窗口函数。限定条件:第二天再来。会过滤掉不符合的记录。

2023-05-30 21:24:39 595

原创 ERP与MES集成

下面我们以ERP与MES集成为例,与大家分享下系统间的数据集成,常见的接口方式如下图所示:

2023-05-22 15:46:14 106

原创 物联网网络通讯知识

RS485是一个物理接口,DTU和传感器就是通过RS485接口进行连接的。标准的串行工业协议。可以支持RS485,RS232接口。举个简单的例子,服务器下发读取雨量计的命令:分别对应的该传感器的通信id,功能码等。如下图,这是一串指令。

2023-05-20 11:08:06 501

原创 实现布隆过滤器

它实际上是由一个很长的二进制数组+一系列hash算法映射函数,用于判断一个元素是否存在于集合中。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,缺点是有一定的误识别率和删除困难。

2023-05-16 11:27:08 121

原创 k8s简单记录

while true;每隔3秒向文件中写入当前时间。创建一个/tmp/hello.txt 文件。“/bin/sh”,“-c”, 使用sh执行命令。

2023-05-15 15:45:27 552

原创 spring项目里的大事务优化

少用@Transactional注解将查询(select)方法放到事务外事务中避免远程调用事务中避免一次性处理太多数据非事务执行异步处理。

2023-05-15 10:22:18 526

原创 oracle的OLAP 函数

*OLAP(On-line Analytical Processing,联机分析处理)**是在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。

2023-05-11 22:26:04 170

原创 Dockerfile部署java项目

要想退出 container 时,让 container 仍然在后台运行着,可以使用“docker exec -it”命令。这是一个多步骤的dockerfile,第一步git下载代码,第二步使用maven进行打包,第三步将运行时环境准备好,并设置命令。将DockerFile 配置文件放到 maven项目目录内,和pom.xml同级。/bin/bash:在container中启动一个bash shell。自动检测的文件名为Dockerfile ,使用。: 保持标准输入打开,默认为false;

2023-05-09 16:06:13 1158

原创 SQL知识汇总

为了应对这种业务场景,MySQL有一种专有语法,一条SQL语句实现插入或更新,可单条可批量。使用要点表要求必须有主键或唯一索引才能起效果,否则insert或update无效。该语法是根据主键或唯一键来判断是新增还是更新。VALUES() 后面应为需要更新的字段,不需要更新的字段不用罗列。遇到已存在记录(根据唯一键或主键)时,自动更新已有的数据;如果表中有多个唯一键(可以是单列索引或复合索引),则任意一个唯一键冲突时,都会自动更新数据。

2023-05-03 17:32:54 1894

原创 SpringBoot单元测试断言 assertions

断言(assertions)是测试方法中的核心部分,用来对测试需要满足的条件进行验证。这些断言方法都是 org.junit.jupiter.api.Assertions 的静态方法。加断言可以避免对数据库的误操作,以及缩短测试流程(断言失败就不再执行之后的代码了)上面一个是我测试建的,如果要新建应该选第二个:Create New Test…待测试的Service方法就不贴了,根据自己的实际情况写逻辑就行;也可以设置异常报文,第一个参数是期望值,第二个参数是实际值。会弹出新建测试类的框。

2023-04-18 15:00:10 1587

原创 sql优化总结

在结果集中包括“合计”的例程通常要比使用游标执行的速度快。如果开发时间允许,基于游标的方法和基于集的方法都可以尝试一下,看哪一种方法的效果更好。

2023-04-18 14:30:55 361

原创 JAVA代码优化实践

这样做的好处是,减少了读写文件的次数,而我们都知道读写文件是非常耗时的操作。最关键的地方是定义了一个buffer字节数组,把从1.txt文件中读取的数据临时保存起来,后面再把该buffer字节数组的数据,一次性批量写入到2.txt中。IO流想必大家都使用得比较多,我们经常需要把数据写入某个文件,或者从某个文件中读取数据到内存中,甚至还有可能把文件a,从目录b,复制到目录c下等。因为这个例子中,从1.txt文件中读一个字节的数据,就会马上写入2.txt文件中,需要非常频繁的读写文件。

2023-04-17 18:05:15 345

原创 Java Stream API的使用

日常编程工作中,Java集合会经常被使用到,且经常需要对集合做一些类似过滤、排序、对象转换之类的操作。为了简化这类操作,Java8添加了一套新的Stream API,使用方式就像写SQL一样,大大简化了这类处理的实现代码量与可读性。

2023-04-17 17:19:54 322

原创 多线程事务怎么回滚?

1,最近有一个大数据量插入的操作入库的业务场景,需要先做一些其他修改操作,然后在执行插入操作,由于插入数据可能会很多,用到多线程去拆分数据并行处理来提高响应时间,如果有一个线程执行失败,则全部回滚。2,在spring中可以使用@Transactional注解去控制事务,使出现异常时会进行回滚,在多线程中,这个注解则不会生效,如果主线程需要先执行一些修改数据库的操作,当子线程在进行处理出现异常时,主线程修改的数据则不会回滚,导致数据错误。3,下面用一个简单示例演示多线程事务。

2023-04-17 15:41:56 267

原创 Java的CPU 飙升700%优化的真实案例

最近负责的一个项目上线,运行一段时间后发现对应的进程竟然占用了700%的CPU,导致公司的物理服务器都不堪重负,频繁宕机。那么,针对这类java进程CPU飙升的问题,我们一般要怎么去定位解决呢?

2023-04-17 11:14:47 309

原创 Thread类的常用方法及使用场景

下面就介绍一些Thread类API基本用法。包括sleep,join,yield,interrupt。

2023-03-31 15:35:21 211

原创 runnable和callable的区别

runnable和callable的区别主要在于它们的用途和实现方式。主要区别:orcallable的执行,被ExecutorService执行or作为FeatureTask的参数or使用FeatureTask这里还有一个很好的总结

2023-03-31 11:42:10 1015

原创 Snowflake算法生成分布式全局唯一ID

3)22~62位(共41bit)表示时间戳,最大值2^41=2 199 023 255 552(单位:ms),意味着在这么多时间内我们可以肆意妄为地制造ID。1)0~11位(共12bit)表示序列号,最大值2^12=4096,意味着在一个时间单位(例如1毫秒)内最多可以生成4096个ID;2)12~21位(共10bit)表示机器id,最大值2^10=1024,意味着支持的最大集群规模为1024台机器。4) 63位(共1bit)最高位是符号位,不使用,设置为固定值“0”。

2023-03-31 10:38:44 94

原创 索引失效-sql

下面的例子中,dept_id是一个varchar2型的字段,在这个字段上有索引,但是下面的语句会执行全表扫描。如果被索引的列中有很多null,就不会使用这个索引。如果没有使用基于函数的索引,那么where子句中对存在索引的列使用函数时,会使优化器忽略掉这些索引。通过把用 or 语法替代不等号进行查询,就可以使用索引,以避免全表扫描:上面的语句改成下面这样的,就可以使用索引了。但是把函数应用在条件上,索引是可以生效的,把上面的语句改成下面的语句,就可以通过索引进行查找。

2023-03-28 17:35:09 564

原创 Java中的双冒号“::”

形如 ClassName::methodName 或者 objectName::methodName 的表达式,叫做方法引用(Method Reference)。看看编译器是如何根据 “晦涩难懂” 的 Method Reference 来推断开发者的意图的。方法引用的格式是类名::方法名。一般是用作Lambda表达式。

2023-03-21 16:18:04 5039

原创 java8之在Map中新增的好用api

java8之后,常用的Map接口中添加了一些非常实用的函数,可以大大简化一些特定场景的代码编写,提升代码可读性。

2023-03-21 15:54:16 261

原创 Java 判空新写法,干掉 if else

在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException.假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码这种写法,在user为null时,是有可能报NullPointerException异常的。为了解决这个问题,于是采用下面的写法这种写法是比较丑陋的,为了避免上述丑陋的写法,让丑陋的设计变得优雅。JAVA8提供了Optional类来优化这种写法,接下来的正文部分进行详细说明。

2023-03-20 16:20:35 152

原创 mybatis批量插入5000+条数据

在我们的项目中,会不停地使用批量插入这个方法,而因为MyBatis对于含有的语句,无法采用缓存,那么在每次调用方法时,都会重新解析sql语句。乍看上去这个foreach没有问题,但是经过项目实践发现,当表的列数较多(20+),以及一次性插入的行数较多(5000+)时,整个插入的耗时十分漫长,达到了14分钟,这是不能忍的。总结一下,如果MyBatis需要进行批量插入,推荐使用 ExecutorType.BATCH 的插入方式,如果非要使用插入的话,需要将每次插入的记录控制在 20~50 左右。

2023-03-20 15:50:59 1069

原创 Java的CPU 飙升700%优化的真实案例

最近负责的一个项目上线,运行一段时间后发现对应的进程竟然占用了700%的CPU,导致公司的物理服务器都不堪重负,频繁宕机。那么,针对这类java进程CPU飙升的问题,我们一般要怎么去定位解决呢?

2023-03-19 11:44:11 1207

原创 软考知识点

软考知识点

2022-10-14 16:55:25 118

原创 sql调优

sql关键字的执行顺序关键字的顺序不可以颠倒SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...sql关键字执行顺序FROM > WHERE > GROUP BY > HAVING > SELECT的字段 > DISTINCT > ORDER BY > LIMITwhere子句中不能使用聚合函数作为表达式,聚合函数如下:COUNT(*)——统计元组个数。C

2022-03-16 12:45:21 139

原创 面试题及答案-java后端

#{变量名}可以进行预编译、类型匹配等操作,#{变量名}会转化为jdbc的类型。select * from tablename where id = #{id}假设id的值为12,其中如果数据库字段id为字符型,那么#{id}表示的就是’12’,如果id为整型,那么id就是12,并且MyBatis会将上面SQL语句转化为jdbc的select * from tablename where id=?,把?参数设置为id的值。${变量名}不进行数据类型匹配,

2022-03-10 14:06:55 1413

《Java并发编程实战》

《Java并发编程实战》深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。 《Java并发编程实战》适合Java程序开发人员阅读。

2017-10-20

spring-framework-reference

spring-framewok api 文档

2017-08-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除