- 博客(74)
- 收藏
- 关注
原创 vue.js中动态路由addRoutes失效
因为我们知道Vue是单页面应用,后台的一个具体页面在渲染的时候,实际上已经对整个页面的侧边栏,顶部导航栏进行了渲染,而。例如要实现权限管理,那么在拿到用户权限之后,跳转后台时,我们在渲染左侧菜单栏的组件中去执行路由处理的方法,这样在左侧菜单栏渲染完成之后同时完成对路由表的处理。而不是在具体页面完成时去实现路由表的处理。所以我们想要实现addRoutes方法,应该在导航栏等功能组件里面去执行addRoutes方法,而不是在一个具体的页面中去实现~,这样就可以保证在路由表逻辑处理完成之前进行路由表的操作。
2025-02-06 16:21:42
279
原创 MES中质量管理的业务流程
MES(制造执行系统)中的质量管理业务流程贯穿于产品生产的全过程,从原材料采购到产品交付,旨在确保产品质量符合规定标准。
2025-01-20 11:22:40
861
原创 MES中工艺路线管理的业务流程
MES(制造执行系统)中的工艺路线管理是对产品生产过程进行详细规划和控制的关键环节,它直接影响产品质量、生产效率和成本。
2025-01-20 11:20:41
775
原创 MES(制造执行系统)中物料管理的业务流程
MES(制造执行系统)中物料管理的业务流程,围绕物料从采购到投入生产及剩余物料处理的全生命周期展开,旨在保障生产的物料供应,同时优化库存、降低成本。
2025-01-20 11:15:57
631
原创 MES(制造执行系统)工单业务流程
MES(制造执行系统)中从工单开始到结束的生产管理业务流程,通常涵盖工单创建与下达、生产准备、生产执行、生产监控与调度、质量检验、物料管理、设备管理、工单完工与结算等关键环节。
2025-01-20 11:14:13
991
原创 日常开发中常用的SQL语句小记
在Spring Boot项目的日常开发中,我们通常使用Mybatis plus中一些简单的数据层处理,但是其功能相对简单,对于复杂的多表连接和一些特定的业务逻辑可能不够灵活。当涉及到多表的复杂连接,如多个表之间的左连接、右连接、全连接,且连接条件和筛选条件比较复杂时,MyBatis-Plus 的内置方法可能无法满足需求。监控原材料库存,当某种产品的原材料库存低于安全库存时,需要找出该产品以及需要补充的原材料数量。需要找出生产周期最长的产品订单,并查看该订单所涉及的生产工序,以便优化生产流程。
2025-01-16 13:29:08
446
原创 Spring Boot中使用AOP实现权限管理
权限管理的实现方法有很多种,也有很多集成不错的框架。现在用AOP和自定义注解实现一个简单易理解的权限管理~ 默认已经有做好了RBAC(role based access control),基于角色的访问控制。就是数据库中已经有了用户表,角色表,权限表,用户角色表,角色权限表。我们判断权限是取一个用户所有角色拥有权限的并集。目录权限判断注解 AOP 实现获取用户权限服务层使用权限注解解释总结优化PermissionCheck.java AOP 实现解释:解释:解释
2025-01-16 11:02:11
834
原创 前后端登录流程带验证码
通过上述流程和代码示例,可以实现一个基本的登录验证码功能。前端和后端配合,先获取验证码,然后在登录时验证验证码,确保登录过程的安全性和可靠性。在实际应用中,可以根据需要对验证码的生成、存储和验证进行优化和扩展。
2025-01-16 10:32:07
366
原创 Spring Boot中并发问题的简单处理
根据具体的业务需求和部署架构,选择合适的方法可以有效地解决并发问题,避免生成相同的编号。在高并发环境下,分布式锁和数据库的唯一约束通常是更可靠的解决方案,但需要考虑性能和系统复杂度。对于多实例部署,使用分布式锁可以保证多个实例之间的并发控制。可以使用 Redis 或 ZooKeeper 实现分布式锁。解决多个用户同时访问一个接口可能产生并发问题,下面用一个生成编号的接口做示例。并发情况下可能生成相同编号。可以利用数据库的唯一约束来保证编号的唯一性。关键字来保证代码块的同步执行。如果是单实例部署,可以使用。
2025-01-16 10:22:09
1030
原创 Spring Boot使用WebSocket
在实际应用中,可能需要考虑更多的业务需求,如消息的协议格式、安全验证、消息队列、负载均衡等。跟其他http的控制层类似,我们需要实现一个基本的 WebSocket 服务器端点。对于高并发场景,可以考虑使用更高级的线程同步机制或分布式存储来存储。对于异常处理,可以根据具体需求添加更完善的错误处理逻辑,如重试、告警等。
2025-01-16 10:06:31
510
原创 Vue 和 uniApp 中 CSS 样式差别
Vue 2 项目和 UniApp 在 CSS 基本语法和样式特性上有很多相似之处,都支持 CSS 预处理器、动态样式绑定等。但 UniApp 针对移动端开发,有独特的布局单位。
2025-01-16 09:57:00
1536
原创 uniapp使用扫码完成业务
通过以上流程和示例,可以在 uniapp 中使用扫码功能实现各种业务流程,例如库存管理(扫描产品编码入库)、票务系统(扫描票务二维码验证)、设备巡检(扫描设备二维码查看设备信息)等。根据具体业务需求,可以对代码进行扩展和优化,例如添加错误处理、加载动画等。使用 uniapp 中的扫码功能处理业务流程的解释和简单示例。
2025-01-16 09:41:17
652
原创 springboot中处理树形数据
平时开发中会经常碰到树形数据,而我们存储的数据往往是扁平的数据,需要在前端或者后端对数据进行进一步处理成前端组件需要的树形数据。下面Java中处理树形数据的方法,包括构建树和解析树。假设我们有一个实体类。
2025-01-16 09:32:33
336
原创 js中处理树形数据
平时开发中会经常碰到树形数据,而我们存储的数据往往是扁平的数据,需要在前端或者后端对数据进行进一步处理成前端组件需要的树形数据。在操作完树形数据后再转换成扁平数据发给后端。下面JavaScript 中处理树形数据的方法,包括构建树和解析树。假设我们有一个树形结构的数据,我们要将其解析为一个扁平的数组。假设我们有一个扁平的数组数据,每个元素包含。等属性,我们可以将其构建为树形结构。
2025-01-16 09:25:03
376
原创 springboot中创建自定义注解和AOP
通过这种方式,我们可以方便地对系统中的方法进行一些通用的处理,如日志记录、性能监控、事务管理等,而无需在每个方法中重复编写相同的代码,大大提高了代码的可维护性和可扩展性。在 Java 中,自定义注解使用 @interface。使用 Spring AOP 来实现对带有。例如,我们创建一个名为。注解的方法进行切面编程。在这个例子中,当访问。执行前后执行,记录其执行时间。然后,创建一个切面类,例如。
2025-01-16 09:13:10
332
原创 将内部部署系统的端口暴露给外部访问,并且仅允许指定 IP 的服务器访问该端口
通过上述的一种或多种方法,可以在确保安全性的前提下将内部系统的端口暴露给外部的指定 IP 服务器。可以根据系统的具体环境和需求,选择合适的方法和工具进行配置。
2025-01-15 16:50:49
1300
原创 uni-app无限级树形组件简单实现
因为项目一些数据需要树形展示,但是官网组件没有。现在简单封装一个组件在app中使用,可以无线嵌套,展开,收缩,获取子节点数据等。简单效果。
2025-01-09 16:02:29
706
原创 uni-app持久化登录简单实现
想要实现持久化登录,原理就是在每次进入应用的时候获取上一次用户登录的信息。那么就好办了,我们在每次登录成功后把用户的账号密码存储到本地,然后在进入应用的时候读取本地文件获取账号密码重新执行登录流程,在退出登录的时候删除存储的用户登录本地文件。
2025-01-09 09:16:55
430
原创 uni-ui样式修改
因为之前官网uni-ui有些组件的样式不好看,所以要做一些调整,做个记录。首先找到我们的static文件夹,里面一般存着项目的全局样式文件,没有的话自己创一个。在全局scss文件index.scss中引入uniui.scss。在App.vue入口文件中引入样式。
2024-12-30 13:26:31
274
原创 uniApp上传文件踩坑日记
想着直接用PC端的前后端API去做文件上传,但是uniapp的底层把请求拆成了普通请求和文件上传请求,所以不能用一个axios去做所有请求的处理,拆成uni.request和uni.uploadFile去分别处理两种情况。在我们签完名后,一般会拿到签名的base64编码,现在要根据接口的需求,创建一个临时URL放到请求中,所以第一步先调用base64ToBlob转成Blob后,再创建临时地址。文件的后缀是通过前端传过来的类型去保存的,按照之前PC端动态获取文件后缀的方式会失败,导致。
2024-12-20 10:40:10
754
原创 uniApp顶部导航栏右侧添加按钮
记录一下从阿里图库里面下载图标到项目中遇到的问题。原先图标引入后在浏览器可以正常显示,但是真机显示不了图标。最后去修改路由文件pages,加上app-plus,然后要修改text为css中更改的编码,然后填路径。在uniapp项目文件中引入,我这里是/static/iconfont/去修改css文件中的unicode编码,加上u。先下载到本地,然后解压后再要两个文件。然后重点,因为官方文件中。
2024-12-13 11:41:35
780
原创 前后端中Json数据的简单处理
很多时候因为数据库中不想创建中间表去存一些数据,所以在一个实体表中用一个json字段去存储并处理这些数据。本人倾向在前端js部分直接处理json数据,后端只做存储,不做处理。如果实在想在后端处理,写个json工具类去处理。前端在获取表单的时候解析。前端在提交表单的时候转换。
2024-11-27 10:00:25
566
原创 在springboot如何防止请求重复提交
可以创建一个自定义注解和一个切面(Aspect)来处理重复提交的逻辑。以上是几种在Spring Boot中防止请求重复提交的方法。可以根据具体的业务需求选择合适的方案,通常结合使用后端的Token机制和前端的防抖动效果会更有效。
2024-11-25 10:35:21
343
原创 Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to
然后去修改了springboot中的配置文件yml,把redis配置的ssl:true注释掉,然后又可以连接上了。(发送到后端的请求是nginx代理转发的,所以前端发送的https到后端还是http)今天遇到一个奇怪的问题,之前在服务器上springboot一直可以连上的redis客户端,今天一直连接失败。但是用navicat等可视化软件又可以连接上。redis的密码也没有修改。
2024-11-13 10:16:46
272
原创 ERROR: Encountered errors while bringing up the project.
这个错误信息表明在启动 Docker 服务 service 时遇到了问题,具体是与 iptables 相关的错误。以下是对这个错误的详细分析和可能的解决方案: 错误分析。如果端口 8080 已被其他服务占用,可以尝试更改 docker-compose.yml 文件中的端口映射,使用其他未被占用的端口。可能的原因: Docker 网络问题:Docker 的网络配置可能出现了问题,导致无法正确设置 iptables 规则。权限问题:Docker 可能没有足够的权限来修改 iptables 规则。
2024-11-13 09:21:42
511
原创 vue2使用 <component> 标签动态渲染不同的表单组件
在后台管理系统中,涉及到大量表单信息的修改和新增。现在想对模板中代码做一些简单的优化。
2024-11-11 09:00:48
1061
原创 el-upload中判断上传文件类型
file: 这是一个 File 对象,通常是通过文件上传控件(如 <input type="file"> 或 <el-upload> 组件)获取的。file.type: 这是 File 对象的一个属性,返回文件的 MIME 类型。例如,JPEG 图片的 MIME 类型是 image/jpeg,PNG 图片的 MIME 类型是 image/png。startsWith('image/'): 这是一个字符串方法,用于检查字符串是否以指定的子字符串开头。同理如果是其他docx,pdf,excel这些类型的文件。
2024-10-22 15:31:19
682
原创 vue-element-admin顶部导航栏的修改
拆分逻辑是如果数组长度超过九个就拆分。如果想要根据不同浏览器窗口大小去拆分显示,需要去监听浏览器的实时宽度,计算整行所有元素的长度总和,如果超出则将超出的路由加入子菜单中显示。基于vue-element-admin的顶部一级导航栏的调整,因为一级路由过多导致其他元素被挤到第二行,故现在将原来一级路由数组拆分成两个数组,第二个数组以子菜单显示。
2024-10-17 09:21:06
907
4
原创 Springboot中基于 IP 地址的请求速率限制拦截器
基于 IP 地址的请求速率限制拦截器,使用了 Bucket4j 库来管理请求的令牌桶。下面是对代码的详细解释,以及如何在触发请求拒绝时将 IP 地址加入黑名单的实现。如果请求被拒绝(即超过速率限制),调用 blacklistIp 方法将该 IP 加入黑名单,并设置过期时间为 1 小时。在 preHandle 方法中,首先检查请求的 IP 是否在黑名单中。如果在黑名单中,返回 403 状态码,拒绝请求。通过这些修改,您可以有效地管理请求速率,并在触发拒绝请求时将 IP 地址加入黑名单,从而防止恶意请求。
2024-10-17 08:58:42
445
原创 el-upload照片墙二次封装
这里要注意的是el-upload中回显和上传使用的file-list列表必须要满足它的格式,不然无法回显图片,所以我们存储的时候用一个json格式字段去保存,在前端去解析和转换。使用了 Element UI 库中的 el-upload 和 el-dialog 组件,用于实现图片上传和预览功能。使用场景一般是提交表单中的附属信息,组件要实现的是图片的上传,还有图片的回显。那么现在给出组件代码。基于el-upload文件上传组件的二次封装。初始化时,调用照片墙组件的回显方法。
2024-10-15 13:28:17
597
原创 springboot中按日期生成当天唯一编码
函数式接口 Function:Function<LocalDate, List<T>> finder 用于根据日期查找当天的记录。使用泛型和函数式接口 在这个工具类中,我们使用了Java的泛型 <T> 和函数式接口 Function,这使得我们的 generateNumber 方法能够适用于多种数据类型和业务逻辑。为了适配不同的业务逻辑和数据类型,我们可能需要使用一些泛型和函数接口。通过这种方式,我们创建了一个非常灵活的编号生成工具,它可以被用于不同的业务场景中,只需要传递对应的业务逻辑和数据处理逻辑。
2024-10-15 11:39:51
435
原创 vue2制作高复用页面
记录一下页面搭建记录,利用vue2组件化开发的思想。这个页面适合于大部分信息管理系统~。模板固定,每次使用,直接修改表单表格参数,api接口等。以上图页面为例,一个基础数据信息页面可以分为,分类(左侧),数据信息(右侧),搜索表单(右上),数据表格(右下),新增或编辑表单(对话框)。index.vue(主页面)新增或编辑表单(对话框)
2024-09-14 16:24:11
710
原创 新版IDEA提示@Autowired不建议字段注入
尽管字段注入是一种简单的方法,可以快速快速获得依赖,但它并不是最佳实践。为了确保代码的可维护性、可测试性和清晰性,推荐使用构造函数注入和方法注入。通过这种方式,你可以明确依赖关系,避免潜在的问题,并提升代码的质量和可读性。如果项目使用了 Lombok,可以考虑使用 @Autowired 和 @AllArgsConstructor 来减少样板代码。随着项目的复杂度的增加,我们通常会在一个业务类中注入其他过多的业务类。(StockService 是专门的服务组合,将多个业务服务提取到一个类中,管理它们的交互。
2024-09-14 15:55:57
1015
原创 使用@FunctionalInterface抽离冗余代码
NodeMapper<T> 接口 定义 NodeMapper<T> 是一个泛型接口,定义了一个方法 map(T item),它接受一个类型为 T 的参数,并返回一个 TreeVo 类型的对象。提高了代码的可读性与可维护性。在编译时,如果接口中包含多个抽象方法,编译器会抛出错误,确保符合函数式接口的定义。总结 NodeMapper<T> 接口的定义及其作为函数式接口的使用,使得在构建树形结构时,可以灵活地处理多种不同类型的输入,提供了一种干净的方式来映射数据,减少了重复代码,同时增强了代码的可读性和维护性。
2024-09-06 10:42:28
351
原创 前端封装axios请求
基于vue-element-admin的请求封装,进行部分修改和记录。如果使用vue脚手架搭建的项目可以先按照axios包。
2024-08-27 13:14:48
449
原创 Spring Boot发送http请求
有些网站会做反爬机制,所以在创建URL的时候,加上这句 connection.setRequestProperty("User-Agent","Mozilla/4.0 compatible;因为项目要调用第三方网站接口获取信息(类似python爬虫),所以在后端项目中需要前端axios一样去构建请求获取信息。下面用简单的获取IP地址为例。
2024-08-27 11:40:42
609
原创 MyBatis Plus中更新方法setSql()的使用
actual_number = actual_number + " + actualNumber` 表示将 `actual_number` 的当前值和传入的 `actualNumber` 累加。- 通过调用 `workOrderService.update(updateWrapper)` 执行更新操作,这个 `workOrderService` 是 MyBatis-Plus 提供的 Service 层接口。如果想要在原来的属性上进行累加,需要使用 SQL 的 `UPDATE` 语句中的加法操作。
2024-08-26 13:11:57
1219
空空如也
springboot项目在Linux拿不到文件
2024-07-22
springboot在Linux下获取不到文件
2024-07-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人