- 博客(144)
- 资源 (6)
- 收藏
- 关注
原创 自动发版工具以及本地debug
执行命令powershell,然后打开powershell,然后执行对应脚本。俺不是很懂,这个是组内一个同事写的脚本,可以执行脚本然后自动上传本地代码,这个remote是用来本地开启debug,可以本地debug远程服务器代码。
2024-04-16 16:32:20 145
原创 http调用HttpURLConnection、RestTemplate
目前有一个需求是需要跨服务调用的,通过后端直接访问,直接通过url访问记录一下,后面更简单的去处理。使用RestTemplate 方式去进行访问,使用Stream流进行返回。首先是最古老的方式HttpURLConnection。处理方式相当古老了,但是别说好用还。新的方式RestTemplate。
2024-04-16 16:31:40 280
原创 RuleEngine规则引擎底层改造AviatorScript 之公式规则
就是需要有一个函数nvlFunction,这个函数是用来干啥的呢,就是说处理入参的,出现了这个函数就是表示有入参,这个函数一共两个参数,第一个参数,是取自函数这个功能的字段,要求是函数功能的函数code值,用来表示入参,另一个参数就是当这个入参不输入的时候,将这个参数赋值给对应的函数。当然上来的问题就是前端的问题,这个框首先他们用的是富文本,富文本传到后台的结果是前端脚本,带着h5的标签,后面改成了这个,当时这个东西其实和后端关系不大,就是如何处理换行符而已,使用这个之后换行符变成了。
2024-04-08 15:26:32 428
原创 RuleEngine规则引擎底层改造AviatorScript 之函数执行
这个取值,因为我这边取了一个巧,我在发现入参的类型我不好判断之后,我放弃了使用顺序确认入参这个形势,我直接使用的key-value的形势,这样可以在传参的时候一点问题都不会,如果前端传过来的入参的顺序出现问题的情况下,也会如我计划的一样执行,但是确实面临了一个问题,因为后面需要实现一个公式规则的功能。可以看到的是,他们首先拿到函数id,然后判断函数是否存在,然后去已经预制好的数据库表中去读取固定的函数名称,然后根据入参进行入参的判断,然后是执行。后面就转换了实现思路,不在使用。
2024-04-08 15:25:50 531
原创 easy excel导入导出
每次都要去看easy excel的导入的例子,回回都没记性这次记录一下。将个人荣誉信息导入到数据库中,并且将对应字段查询出来方便后续查询使用。将通知以及具体的通知明细进行导出。excel多个sheet导出。
2024-01-22 10:11:22 522
原创 登录之后的二次认证
三个接口写完了,感觉是完事了,但是存在一个问题,如果被人直接访问了呢,直接选择跳过前台的二次验证判断接口,于是就想写一个拦截器,直接在每一个请求之前进行判断,思路的话就是在的登录之后,在token中存一个cookie中存一个key用于表示。二次认证,本来的需求是完成一个二次认证,对于登录到制定系统的中的用户进行二次验证,本来是只有某一个功能要用的,也是按照某一个功能设计的接口情况,但是在这个接口上线之前要求改成通用性的。实话说这块不是我写的,但是我大概能够看的懂,但是我自己写可能还是有差距,持续学习吧。
2024-01-22 10:10:39 458
原创 事务问题处理
新建一个通知,通知下面选择需要通知到的通知人,要求通知发送的时候如果通知发送失败,不能新建通知和具体的通知人关系。发送某个人失败,要求通知成功建立,其他人成功发送则建立通知和通知人的关系,失败发送的话也不影响其他人的成功。实话说也没有实现子流程的回滚,也是有问题的,但是完成了我的需求,我是感觉用注解是不能够完全处理问题的,我就想到用手动事务,写了一个手动提交事务的,还可以实现两个事务独立互不影响的效果。本想想的是这个东西大概率要用事物的传播特性做吧,七个传播特性。
2024-01-15 15:17:01 559
原创 微服务配置文件字段讲解
由于从一个太过于自我的公司里面出来,导致和外面的世界脱轨了,然后需要学的东西太多了,导致连微服务的配置文件都看不懂啦,现在来讲讲其中的关键字。大型项目,微服务,中间件,gateway作为网关,nacos用来注册服务,nginx用来转发,redis作为缓存中间件。找到了具体使用的配置文件,然后nacos使用我本地的,而不是在nacos中配置的。flow中配置了其他微服务的地址以及端口。首先不同同一个项目不同环境之间切换。注释掉原本的config的内容。决定使用什么环境的配置文件。这是代码中具体存储的地方。
2024-01-15 15:16:22 346
原创 sql需求处理,复杂sql,求和,计数,MAX,ROUND
其实这个需求最难的不是sql,最难得是数据不全,数据中人员表的数据只有两年的数据,且两年数据不全,薪资表的数据是4年的数据,也是不全的,因为如果是完全年的话其实计算起来还是不难的,但是我手里的手里是不全的,数据还涉密,我没有办法同步。计算社保的基数,要求是从薪资表和人员表开始取值,给定一个年份,一个公司,求出这个公司所有人员的这个年份的社保基数,人员计算要从人员表计算,人员表每个月数据都有,要求根据这一年的最后一个月的人员进行统计,薪资表也是每个月的数据。
2023-12-28 16:28:04 466
原创 人力项目框架解析新增修改方法
在迁移项目但是遇到了一些问题,迁移项目的时候发现项目的整体框架很有趣,但是苦于项目框架太大了,竟然只能完整迁移,做不到部分迁移,于是我也只能从一半的角度来进行解释整个项目。雇员我们雇员这个为对象讲解一下整个项目@Api(value = "人员基本信息模块", tags = "人员基本信息模块")@CrossOrigin(origins = "*", maxAge = 3600)@RestController@RequestMapping("/api/person/person_base_info
2023-11-15 20:00:14 214
原创 dameng数据库数据id decimal类型,精度丢失
两边研发对了很久,包括问题的发现也是很久,因为是整体的列表id出现了问题,最后才确定就是获取对象出现了问题,问题是从修改对象属性发现的,因为对象属性被修改之后被校验住了,因为传进来的数据和数据库里面的值不一致导致的,然后我们才发现,封装成了对象之后id字段就不一样了,经过多方比对,dameng数据库驱动版本太低了导致的,老版本的会有精度丢失的问题,新版本则修复了这个问题。使用最新的达梦数据库驱动。
2023-11-13 10:51:59 406
原创 swagger精度丢失,postman调用正常,dameng数据库,long类型字段
实话说作为后端,这个问题的发现很难,一般是前端反馈的,然后后端才开始比较问题,然后上网找了挺多的方案的,有添加启动注解以及字段注解的,但是太多了,这种问题,我们不可能一一添加注解的,所以我们开始寻找之前项目中是不是有什么配置之类的东西,才导致旧的项目中没有这种问题,但是新的项目中有这个问题的,发现是一个配置类,不是那种强制校验的,我们就没有迁移过来,增加这个没有什么问题了。
2023-11-13 10:44:56 351
原创 无法解析的成员访问表达式[GROUP_CONCAT]; nested exception is dm.jdbc.driver.DMException: 第26 行附近出现错误:
##问题出现。
2023-10-24 17:31:07 390
原创 Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out
【代码】Read timed out;
2023-10-23 18:11:56 2025 2
原创 Error setting non null for parameter #1 with JdbcType null . dm.jdbc.driver.DMException: 序列号无效
问题出现org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='__frch_item_0.batchId', mode=IN, javaType=class java.lang.Long, jdbcType=null, numeri
2023-10-19 09:36:15 1950 1
原创 ### Cause: dm.jdbc.driver.DMException: 第207069 行附近出现错误: 超过最大参数个数(65535) ; SQL []; 第207069 行附近出现错误:
问题出现### Cause: dm.jdbc.driver.DMException: 第207069 行附近出现错误:超过最大参数个数(65535); SQL []; 第207069 行附近出现错误:超过最大参数个数(65535); nested exception is dm.jdbc.driver.DMException: 第207069 行附近出现错误:超过最大参数个数(65535) at org.springframework.jdbc.support.SQLStateSQLExcept
2023-10-19 09:23:19 385
原创 nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping:
报错Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@10212213]org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapp
2023-10-17 15:36:46 523
原创 语法分析出错,不是 GROUP BY 表达式
报错### Cause: dm.jdbc.driver.DMException: 第 9 行, 第 69 列[30]附近出现错误: 语法分析出错; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 9 行, 第 69 列[30]附近出现错误: 语法分析出错 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslat
2023-10-16 14:44:16 767 2
原创 ### Cause: dm.jdbc.driver.DMException: 第60 行附近出现错误: 无法解析的成员访问表达式[IF] ; SQL []; 第60 行附近出现错误:
问题报错### Cause: dm.jdbc.driver.DMException: 第60 行附近出现错误:无法解析的成员访问表达式[IF]; SQL []; 第60 行附近出现错误:无法解析的成员访问表达式[IF]; nested exception is dm.jdbc.driver.DMException: 第60 行附近出现错误:无法解析的成员访问表达式[IF] at org.springframework.jdbc.support.SQLStateSQLExceptionTransl
2023-10-13 16:28:35 357
原创 ### Cause: dm.jdbc.driver.DMException: 第 59 行, 第 54 列[=]附近出现错误: 语法分析出错 ; bad SQL grammar []; nested
报错### Cause: dm.jdbc.driver.DMException: 第 59 行, 第 54 列[=]附近出现错误: 语法分析出错; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 59 行, 第 54 列[=]附近出现错误: 语法分析出错 at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslat
2023-10-13 11:13:19 249
原创 ### Cause: dm.jdbc.driver.DMException: 第 9 行, 第 85 列[is]附近出现错误: 语法分析出错
问题出现 (case when pcf.CONTRACTS_DURATION_UNITS = ''|| pcf.CONTRACTS_DURATION_UNITS is null then null else 'M' end) contractsDurationUnits, (case when pcf.CONTRACTS_DURATION_UNITS_NAME = ''|| pcf.CONTRACTS_DURATION_UNITS_NAME is null then n
2023-10-12 16:52:37 371
原创 dm关键字提示报错
还是那个项目,然后呢因为其中涉及到了关键字,导致查询报错,对于所有的关键字增加双引号可以处理。提示是REFERENCE出现错误。
2023-10-12 16:45:04 77
原创 springboot配置文件读取
原因:因为首先设置的springboot版本较低,所以对应的nacos版本较低,无法改变,在低版本的时候,需要先使用这个properties配置文件,然后是yml文件。然后下面读取的就是bootstrap-local.properties配置文件,后面读取的是application-local.yml文件。首先,properties的配置的优先级要高,所以配置文件先去读取bootstrap.properties文件。很迷茫,为啥能够成功启动呢项目,为啥项目有properties也要有yml呢?
2023-10-11 20:17:48 111
原创 postman的使用
因为新公司的都是微服务调用所以需要使用本地postman进行调用。感觉自己对于postman 的使用其实还是入门级别的。接口大概是这个样子,截图的最下面就是接口的具体情况了。参数就是为了在postman中添加header。基本上接口的url后面都会带不需要很关注。注解基本上是在接口的后缀,通过?注解使用的是也是在body里面。判断是否是get或者post。这种不一样地方在于文件。
2023-09-27 19:12:31 60
原创 微服务调用没有返回值,无法组成对象,但是会有feign的信息
员工信息管理,员工简历,导出功能,需要去联查员工的各项信息,其中,涉及到微服务的之间的操作出现了问题,目前主要的微服务是person服务,需要向basic-config服务请求具体的帮助,然后获取到null的结果,因为接手的是成型代码,所以不敢大规模的改动,目前情况是person服务没有收到basic-config服务的返回值,但是basic-config服务收到了person服务的请求与参数。首先,因为这个是成型的代码,所以没有太大的问题,而且微服务之间的是相互通的,这是大前提。
2023-09-27 19:11:54 190
原创 dm数据库 正则
dm数据库改造,一个项目说是要改成dm数据库,说本来就是用dm数据库开发的,反正我觉得不大对,但是呢要是说都不是吧我觉得有问题,都是吧我觉得也有问题。具体语法其实就是说的在人员表里面找到同一个部门的雇员,找到最大数的雇员,然后去新建雇员,但是呢正则不认这个写法。新公司事情太多了,然后刚刚入职,说是保密性高,然后有一些自己用到的东西要分享。网上说的博客好多都不行,找了蛮久的,其实也换了不少办法,确实是和这个好用一点。
2023-09-19 20:09:08 78
原创 多语空指针问题处理
有一个多语的处理提示了空指针,问题发现了,多语的工具类没有被初始化,使用的方式导致里面的@Autowired注解不生效,想要一个尽可能少的方式去修改对应的代码。其实感觉是一样的,写成构造的话其实获得对象一次就好了,应该是提高性能,因为用的地方很多,每次重新获取可能会多消耗一些性能。问题就是这个多语的地方用的太多了,处理好多代码要,本来我想的是在方面里面用。去调用,然后领导说用写构造吧,我想差不多其实。
2023-05-19 15:52:35 56
原创 逻辑代码优化,导入设置
给了一个需求,说是将我们第三方单据进来时候增加一个限制,将传进来的数据处理一下,判断合同,项目,往来单位,业务科目是否停用,但是这个功能有点特殊,首先呢这个功能是流传下来的shi山,然后大面积改肯定是不可能了,然后呢单据根据单据类型分为四种,其中三种都是特殊单据,一种是非三种特殊单据,之前因为这个功能优化了一次,将多次的sql查询统一完成,但是三种特殊单据。首先是通过导入设置的配置找到,合同,项目,往来单位,业务科目,的语句。虽然代码复用功能凉凉,但是感觉性能感觉提升了,访问数据库的次数减少了。
2023-05-12 11:22:10 87
原创 多线程面试题
进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的过程。进程是一个正在执行的程序的实例,包括程序计数器、寄存器和程序变量的当前值。操作系统资源分配的最小单元。程序的实例。程序只是硬盘中堆切的数据和代码也即是文本。虚拟内存就是进程的抽象一部分。本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。包含关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。
2023-04-24 23:46:13 315
原创 entityManager.createNativeQuery in
行了,结果很明显了,动态参数都翻车了,关键是我拿到的执行的sql没有啥问题,所以直接使用写死的sql,怀疑动态参数和in有冲突,但是俺不会,期待大佬。上次的问题被卡住了,发现跟出来的sql对,但是java执行的结果不对,怀疑是java执行的时候卡了jpa的bug,debug了一下,果然有问题。代码解析,大概分为三种可能性,第一种是动态参数,第二种是将sql字符串处理然后放进去去计算sql,第三种还是用动态参数但是括号的处理不同。初步怀疑是动态参数的问题,多写几个测试用例。
2023-04-24 19:25:59 268
原创 sql优化
然后是这个sql,如果ROBXDJ_NM没有值的话最开始的sql求和也不再需要了,事情到这里结束了就结束了,但是当我放到测试环境服务器的时候,发现执行时间还是挺长的,求max以及SELLERTAXPAYERID || ‘,’ || ROBXDJ_BZDWID这个查询还是消耗时间,本来是因为sql影响所以不得已使用了max函数,现在使用了java就没有必要了,直接jpa求出对应的值,按照SELLERTAXPAYERID 排序,取第一个就好啦。可以看出来大概就是这个东西影响的执行时间,然后在分步的去处理条件。
2023-04-20 19:08:36 663
原创 java基础集合面试题
集合就是一个放数据的容器,准确的说是放数据对象引用的容器集合类存放的都是对象的引用,而不是对象的本身集合类型主要有3种:set(集)、list(列表)和map(映射)。TreeMap 是一个有序的key-value集合,它是通过红黑树实现的。TreeMap基于红黑树(Red-Black tree)实现。该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。TreeMap是线程非同步的。
2023-04-11 18:53:30 554
原创 JPA自动更新
猜测应该是之前这个对象的set方法其实没有值,但是因为set的东西错了所以导致组成实体后的数据和查询出来的结果不一致,所以触发的JPA的自动更新,然后我也去百度来着,发现了这叫做JPA自动更新,但是很诡异的是我后来自己无法复现了,但是确实把写错的字段处理一下就好用了。问题:一个很奇怪的bug,就是在erp中当单据在第一次提交的时候某个字段的小数会出现问题,可以复现,然后追到代码中,发现一个简单的通过内码查询的操作中,掺杂了一个对于数据库记录的update。
2023-04-11 09:37:08 61
原创 java基础面试题(不包含多线程以及集合)
所谓反射,是java在运行时进行自我观察的能力,通过class、constructor、field、method四个方法获取一个类的各个组成部分。在Java运行时环境中,对任意一个类,可以知道类有哪些属性和方法。这种动态获取类的信息以及动态调用对象的方法的功能来自于反射机制。序列化就是一种用来处理对象流的机制。将对象的内容流化,将流化后的对象传输于网络之间。
2023-04-03 23:21:00 576
微信小程序日历记事本前端
2019-11-13
Linked1.rar
2019-10-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人