华夏ERP 批量导入入库、出库记录报错:WRONGTYPE Operation against a key holding the wrong kind of value

华夏ERP 是一个开源的国产ERP系统,支持进销存基础功能,扩展插件可以支持财务+生产等功能(需要付费)。之前二次开发的点可云ERP V6 版本也是没有生产模块,当时为了了解、开发 bom 等生产内容还去工厂待过一段时间。不过当前的项目进销存是已经够了,还有报表功能也是一个惊喜。在根据业务端对华夏ERP 进行二次开发,主要是仓库管理模块修改之后,业务又提到现有一个 Excel 表单,希望能够支持导

php curl 偶发性返回 null

项目反馈存用户归还后平台订单待支付,但用户一直收到微信充电宝使用时长的提醒。进一步确认是微信信用单没有转支付,还处于进行中的状态。一开始不确定问题,还让服务商跟微信确认了一下,转支付的请求没有到达微信。代码中使用了自定义的基于 cURL 的 http 请求,一开始认为是请求遇到网络阻塞,导致请求超时,于是设置了连接超时时间和 cURL 超时时间为 10s。一般请求在 1s 左右会正常返回,超过 1

Mybatis-PageHelper 自定义查询 COUNT

Mybatis 更新日志 5.0.4 2017-08-01https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/Changelog.md#504---2017-08-01增加手写 count 查询支持增加 countSuffix count 查询后缀配置参数,该参数是针对 PageInterceptor 配置的,

基于 Spring boot 的若依框架的项目启动报错:`Unable to start embedded Tomcat`

准备对之前的一个若依的项目改点内容,结果启动时发现报错:Unable to start embedded Tomcat。一开始找到项目结构、项目设置中的 SDK,看到默认用的是 17,以为找到了原因,改成项目要求的 1.8(8)之后,还是无法启动项目。使用这个报错信息在网上找半天,没有什么收获,甚至还有一篇里提出了 7、8 条的排除项目,都没有结果。查看详细的错误日志,发现后面还跟着很多很多个 C

使用 feign 上传文件报错:timed-out and no fallback available

有业务的同事反馈,图片上传之后,加载不出来。登录系统后台查看相关记录,图片附件确实未显示。在新标签打开图片链接,图片只显示出来上面一小截,然后就没有然后了。多次刷新也不好使。这个问题之前出现过,之前是调高图片服务器的一个访问配置缓存大小:location / { client_body_buffer_size 256k; ... proxy_buffer_size 256k

评山西“订婚强奸案”一审宣判

这两天因为这个山西“订婚强奸案”一审宣判,又是与同事一顿分析、评价。作为两个单身未婚男青年,最初看到的新闻是模糊的,大概就是订婚后发生关系,然后女生要求房本加名被拒,就被告强奸。当时从这个视角来看,女的确有网友评价的“仙人跳”嫌疑。然后各种不等式、阴谋论以及男女对立的观点层出不穷,抖音上刷视频,也经常看到什么“请先生赴死”的评论刷屏。当时觉得男女之间更加难以互信,相亲也会有很多漏洞“陷阱”。有一种

git clone 的项目保持与原项目的同步更新

从码云上 clone 了一份项目代码进行二次开发,并在公司的 gitlab 上创建新项目提交。现在多想了一步,能不能让代码保持与原项目的一个同步更新呢,就像是多个人开发一样,定期将更新的内容同步到主干上。网上查询了一圈,感觉过程跟 git fork 的代码保持更新也差不多。这里以 JSH_ERP 项目作为示例1. 先 clone 代码$ git clone https://gitee.com/ji

Mybatis 3.0.7.1 插入数据 Column 'tenant_id' specified twice - 华夏 ERP 二次开发

新项目选择 华夏 ERP 做二次开发开源版有完整的进销存模块,没有生产,而项目也不需要,正好符合要求。主要工作是针对商品以及仓库管理功能做一些字段调整。在修改了仓库新增 Model 字段后,多次调整修复报错之后,出现这个 Column 'tenant_id' specified twice 报错。百度了一下,说是多租户插件会出现这个报错,主要是自定义插入 tenant_id 与 Mybatis 扩

java 遍历修改 List

在百度了解了 List 的基本操作用法和遍历方法之后,开始测试遍历修改 List 的方法。首先是基础的 for 遍历:import java.util.ArrayList; import java.util.List; public class Main { public static void main(String[] args) { List<String&g