自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 资源 (1)
  • 收藏
  • 关注

原创 报表口径不是-SQL-汇总-销售毛额-退单净额与历史重算门禁

商品销售报表不是写一条 SUM SQL 就结束。本文从销售毛额、退单金额、净销售额的口径拆分切入,讨论旧字段为什么不能静默改义,销售事实和退单事实为什么要按不同发生时间归属,历史日报、周报、月报如何级联重算,以及发布前为什么必须有 DDL、回填、前后端展示、导出和对账门禁。重点不是算出一个数字,而是让报表数字可解释、可重算、可验证。

2026-09-03 13:21:39 359

原创 报表大-IN-优化-一条-product_profile-超大-IN-SQL-背后的报表任务治理

一次 SaaS ERP 报表慢 SQL 排查复盘:从一条 product_profile 超大 IN 查询开始,先还原服务器时间、商户本地时区和报表任务窗口,再追到商品日报、库存日报共用商品资料加载链路,最后对比 IN 分批、列裁剪、按需加载、改 Cron 和缓存等方案。文章重点不是单条 SQL 写法,而是报表任务输入规模、业务口径、调度窗口和验证回归的整体治理。

2026-09-02 12:38:12 354

原创 餐饮改价折扣不能只改金额-事实不可变-投影重算与结算快照设计

餐饮 POS 的改价、单品折扣、整单折扣和付款页折扣,不能只靠回写金额字段解决。本文从部分结账、加菜退菜、固定金额折扣余额、已确认结算快照和多设备并发切入,拆解一套“价格事实不可变、当前投影可重算、已确认结算快照不可变”的价格操作架构,并进一步说明 ORDER/PAYMENT 阶段矩阵、版本号、幂等键和策略模式在落地中的边界。

2026-09-01 12:56:38 291

原创 退菜输主管 PIN 只是表象:餐饮 POS 的 Staff PIN、原因码与授权审计设计

餐饮 POS 里的 Staff PIN,不应该只是“退菜时输主管密码”。真正要解决的是多人共用设备下的现场责任人识别、高风险动作授权、原因码和业务事实审计。本文从设备账号为什么不够讲起,拆解 Staff PIN 工作会话、工作台权限视图、主管授权证明、授权摘要、幂等消费和最终业务事实的边界,给出一套适合 SaaS 餐饮 POS 逐步落地的产品架构方案。

2026-08-31 17:57:24 355

原创 一次 SaaS ERP 主数据生命周期设计:Policy、PreCheck 与结构化阻断原因

本文从“主数据不能随便删”切入,拆解 remove、inactive/disable、archive、block 的业务语义,说明删除、停用、归档、阻断分别解决什么问题;再进一步讲 PreCheck、Policy、Executor、ReasonCode 的策略引擎设计:统一预检返回结构化决策,领域策略负责各自引用规则,执行仍回到领域接口并做最终校验,前端基于 reasonCode 和 suggestAction 做国际化与引导。文章也补充了新业务选择器过滤、历史回显保留、行级锁定、批量预检和常见反模式。

2026-08-30 15:40:15 375

原创 库存不是一个数字-从-On-Hand-到-Available-Reserved-的销售订单库存预留设计

库存不是一个简单数字。本文从销售订单长周期履约场景切入,拆解 On Hand、Reserved、Available 三个库存口径,说明“库存预留 != 库存扣减”:预留保护订单承诺,只影响可售库存;扣减表达真实出库,才写库存流水和成本口径。文章进一步讨论待支付订单创建/编辑/取消/支付的预留生命周期、并发超占防护、订单编辑全量释放重建、本单预留在支付前校验中如何加回、历史待支付单回填与开关门禁,以及库存报表为什么必须展示现存、已承诺和可售三个口径。

2026-08-28 10:49:35 659

原创 热敏打印不是-exactly-once-餐饮-POS-打印任务的-Claim-兜底与结果未知治理

餐饮 POS 打印不是简单的“接口成功就出纸”,局域网热敏打印也不能承诺物理 exactly-once。本文从下单/结算打印任务切入,拆解状态机、printBatchNo/jobNo/claimToken 的职责边界、业务 POS 即时执行、主 POS 后台兜底、BEFORE_SEND 与 AFTER_SEND 的失败分级、租约超时进入 UNCERTAIN、不自动重试以及人工确认/补打/取消的治理策略,说明如何把“可能重复出纸、可能漏上报、结果未知”的现场问题纳入可追踪的工程模型。

2026-08-27 10:25:26 305

原创 列表导出不够用-SaaS-ERP-单据详情导出的-Provider-模板与文档型-Excel-设计

很多后台系统都有公共导出,但列表导出并不适合承载完整单据详情。本文从 SaaS ERP 的销售订单详情导出切入,区分列表型导出、明细布局型导出和单据文档型导出三类形态,重点拆解为什么详情导出不应复用分页列表数据源,以及如何通过 Provider、字段白名单模板、标签优先级、Excel Renderer、同步导出护栏和 fail-fast 策略,设计一条可扩展、可配置、可维护的单据详情导出链路。

2026-08-26 16:37:04 417

原创 从库存黑盒到生产闭环:轻制造 SaaS 的 MRP Lite 架构实践

本文基于新兴市场中小工厂的轻制造场景,拆解一套 MRP Lite 生产闭环的设计方法:如何用 BOM、工单、领退料、报工质检、入库、预占和在制台账,把黑盒生产转化为可追溯的库存与责任闭环。文章重点讨论业务建模、库存一致性、幂等事务和可扩展架构,而不是简单复刻 MES 功能清单。

2026-08-25 22:55:13 395

原创 业务操作日志不是字段审计-快照-Diff-幂等账本与业务语义建模

一次业务操作日志体系设计与落地复盘。文章从“字段审计为什么不够”切入,说明业务操作日志应该是 ERP 业务动作账本,而不是数据库字段流水。正文重点拆解业务语义建模、Service 显式快照、受控 Snapshot Diff、afterCommit 投递、异步 MQ、幂等账本、查询时渲染、租户隔离和敏感字段治理,给出一套适合 SaaS / ERP / 业财系统的操作日志设计方法。

2026-08-25 10:24:08 418

原创 别把 ThreadLocal 写进 Serializer:一次 SaaS 多租户 Jackson 上下文污染排查

一次 SaaS 多租户场景下 Jackson 自定义序列化器的上下文污染排查。文章从页面金额与订单金额不一致切入,沿数据库、Service、响应 Model、JSON 序列化链路定位到 `ContextualSerializer` 生命周期错配:请求级租户金额精度被复制进 Jackson 长期缓存的属性 serializer,导致后续租户复用错误精度。最终给出“缓存结构,不缓存租户”的修复思路,以及 A -> B、B -> A、无上下文和并发场景的回归测试矩阵。

2026-08-24 11:15:33 325

原创 别被-saveBatch-骗了-一次-MyBatis-Plus-批量插入性能排查

一次由数据库长事务告警引出的 MyBatis-Plus `saveBatch` 排查复盘。文章拆解框架层 batch、JDBC batch、数据库侧 multi-values INSERT 的差异,并通过 A/B 验证说明 `rewriteBatchedStatements=true` 为什么能让同样 5000 条批量插入从约 44.2 秒降到约 2.2 秒。

2026-08-23 11:30:03 588

原创 为什么中小工厂不一定需要 MES,而更需要 MRP Lite?

从中小工厂的真实生产管理场景出发,分析为什么第一版生产系统不一定适合直接做完整 MES,而更适合先做库存驱动的 MRP Lite 闭环:管住原料、产出、差异和成品入库。

2026-08-20 12:09:33 170

原创 库存驱动生产系统里的事务、幂等、预占与在制台账设计

生产系统里最危险的不是页面复杂,而是库存账不可信。本文从轻制造 SaaS 的生产领料、库存预占、在制台账和库存流水出发,聊聊库存移动编排、同步事务、后端幂等、UNKNOWN 状态和数量原子累加这些后端稳健性设计。

2026-08-20 10:20:11 322

原创 轻制造SaaS的生产闭环建模-BOM工单领料报工质检与入库

从轻制造 SaaS 的真实业务约束出发,拆解 BOM、生产计划、工单、领退料、报工、质检与入库的领域建模思路,重点讨论为什么前端可以简化,但后端单据、库存流水和在制台账必须保持独立。

2026-08-19 18:29:49 389

原创 数据库期末知识点汇总

数据库期末知识点汇总 第一单元 数据库的发展阶段(了解) : 人工管理阶段 、 文件系统阶段 、 数据库管理阶段 、 高级数据库阶段 DBMS 是数据库系统的核心软件,用于数据库建立、使用和维护等管理(选择) 数据库系统由 计算机硬件系统 、 数据库(DB)、软件系统、数据库管理系统(DBMS)、数据库用户 组成 三级模式结构(了解,P66) 外模式(子模式或用户模式):一个数据库通常有多个外模式 模式:数据库系统模式结构的中间层;一个数据库只有一个模式 内模式:一个数据库只有一个内模式 两级模式映

2021-12-12 01:07:55 4790

原创 做一个简易jsp项目的详细开发流程及步骤

项目包括 数据库、表的创建以及 登录、 注册 、列表 、新增 、修改、删除 、详情七个功能

2020-11-20 21:06:44 6688 2

原创 网页简单登录设计

今天学了servlet的基础知识,阔以做一个简单的登录过程。 一个网页的登录页面,首先肯定要有这个页面 首先第一步,先创建一个web project 创建完以后,在左侧就会有项目了。 那么登录的第一步就是我们需要在index.jsp中先写一个页面了,这个你也可以使用别的软件写,写好后复制过来即可。 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.g

2020-09-23 13:25:31 5759

原创 n个人围圈报数问题,通过Java代码实现

注: 感觉注释写的挺清楚了,直接看代码吧。 import java.util.Scanner; /** * n个人(编号1-n),围成一圈,从编号 1开始报数,从1报道m,报道m的出来, 下一个人继续从1开始报数,编程求最后一个人 留下来的编号。 * 如n=3,m=4 第一次出队:1(原编号) 第二次出队:3 最后留下:2 * * @author ASUS * */ public class Blogs4 { public static void main(String[] args)

2020-06-22 16:07:15 3882 4

原创 解决JDK6.0删除之后再重新安装JDK时系统总提示已经安装了此类软件。

1、去控制面板中卸载,如果不行的话在开始运行regedit.exe; 2、分别找到HKEY_CURRENT_USER和HKEY_LOCAL_MACHINE,进入Software; 3、找到JavaSoft,然后删除; 4、重启计算机就可以重新安装了; 5、还不行的话用360安全卫士强力删除试试; ...

2019-11-22 09:08:47 5097 3

原创 AI时代-SaaS-ERP-自动化测试路线-先补接口级黄金流程

AI Coding 让代码产出速度变快,也放大了复杂 SaaS ERP 的回归风险。本文从“不要先选工具”切入,梳理自动化测试分层,说明为什么第一阶段最该补接口级黄金流程,而不是测试平台、UI 自动化或报告美化。正文重点拆解 TestNG / RestAssured 接口测试、P0/P1/P2 用例分级、专用测试租户与 runId 数据策略、登录验签、CI 接入、AI 在测试体系中的边界,以及如何把业务不变量和历史 bug 沉淀成可重复执行的回归安全网。

2026-08-26 10:32:36 163

原创 揭秘MyBatis核心类MappedStatement

MyBatis中的MappedStatement类封装了SQL映射语句的所有配置信息,是框架的核心类。它通过Builder构建器模式实现对象的创建,确保不可变性和构造灵活性。主要包含SQL语句类型、结果映射、缓存策略等配置项。关键方法getBoundSql负责解析最终SQL和参数映射,并检查嵌套结果映射。在MyBatis-Plus环境中需注意其使用InnerInterceptor机制而非原生Interceptor,否则可能无法拦截目标类。

2025-08-09 20:55:19 501

原创 工具类-高效集合差异计算工具DiffWrapper

摘要 DiffWrapper是一个用于计算集合差异的Java工具类,主要处理数据库记录与前端传入数据的增删改操作。它通过比较新旧两个集合,自动识别需要新增、删除和修改的项。核心功能包括:空集合防御处理、ID提取与比对、字段差异检测等。工具类提供静态方法newInstance(),接收数据库旧数据、前端新数据、ID提取函数和可选字段比较器作为参数,返回包含三类操作结果的包装对象。测试案例验证了常规增删改、空集合处理、纯新增/删除场景及ID为null等边界情况的正确性。该工具类简化了子表更新操作的开发,减少了重

2025-08-09 20:43:37 523

原创 【bug】[42000][1067] Invalid default value for ‘xxx_time‘

SET SESSION sql_mode = 'ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

2025-03-25 19:26:34 661

原创 IO流:将文件从A复制到B,并实现复制过程进度条的实现

复制文件 , 进度条

2024-04-09 19:55:20 349

原创 笔记: javaSE day17天笔记

dljd javase - Java常用类部分

2024-04-02 12:47:17 874

原创 笔记: 数据结构与算法--时间复杂度&二分查找&数组

数据结构和算法笔记 二分查找 和 数组部分

2024-03-31 21:24:51 1065

原创 debug: 解决typora两侧留白过大问题

问题如下图: 解决办法: 打开: 文件 -> 偏好设置 -> -> 外观 -> 看主题选择的是哪一个, 我选择的是GitHub * 点击打开主题设置 -> 选择你对应主题的.css文件 -> CTRL + cv 备份一份, 然后打开 在文件中找到max-width : 修改对应的值 , 我改成了1920px * 改好以后, 重启typora , 结果如下:

2024-03-31 15:26:00 684 1

原创 笔记: JavaSE day16笔记 - string字符串

dljd javaSE - string类部分

2024-03-30 20:45:05 1861

原创 面试题: 以下两行代码共创建了几个String字符串对象 ?

String s8 = new String("girlfriend"); String s9 = new String("girl" + "friend");

2024-03-30 19:15:47 295

原创 笔记: JavaSE day15 笔记

dljd 第二阶段 JavaSE- 数组部分

2024-03-29 20:52:16 1513

原创 JavaSE day14笔记

dljd 第二阶段JavaSE

2024-03-28 19:54:03 910

原创 javase day13笔记

特定标签做注释使用 /** 文档注释 */特定标签生成api文档。

2024-03-26 18:53:37 375

原创 Javase day12天

类的访问权限成员的访问权限包括成员变量,成员方法,成员内部类…范围从小到大 : private << 默认的 << protected << public重写的规则。

2024-03-26 09:13:20 816

原创 javase day11笔记

{ }给共性特点 进行初始化操作创建在堆区对象中存放实例变量,同时执行构造代码块执行顺序:静态代码块—>非静态代码块—>构造方法。

2024-03-24 22:54:52 422

原创 javase day10笔记

加载类到内存中,给静态变量分配空间,静态代码块同时执行,并且。封装:隐藏类的内部信息,不允许程序直接访问,可通过方法调用。成员变量不带static-> 实例变量 => 对象的变量。, 这样返回的就是对象,就可以继续调用该对象的方法了。static关键字修饰属性.方法,代码块。面向对象三大特征:封装 ,继承 ,多态。成员变量带static ->静态代码块 static{}static 修饰代码块。作用:完成静态变量的赋值。static实现静态导入。static修饰内部类。static修饰内部类。

2024-03-23 21:07:20 515

原创 javase day09笔记

空指针异常:null pointer exception。对象中的属性为引用类型类的情况。在内存中存的是内存地址。

2024-03-23 10:10:45 375

原创 javase day08笔记

自己调自己,复杂问题简单化递归包括:方法、递归头、递归体递归使用逻辑递归的缺陷:递归调用占用大量系统堆栈。

2024-03-20 08:56:52 600

原创 javase day07笔记

第七天课堂笔记 了解★ 重点★ ★ 理解 ★ ★ ★ 重点★ ★ ★ ★ 掌握 ★ ★ ★ ★ ★ 方法★★★★★ method:实现某一个功能 语法 修饰符 返回值类型 方法名称(参数列表){方法体} 修饰符 可有可无 返回值类型: 无返回值类型-> void 有返回值类型 方法名称:标识符 小驼峰命名法 方法体:实现功能的具体代码 方法运行内存分布空间 方法进栈,对象存堆 栈:先进后出 队列:先进先出 调用 类名.方法名称([参数列表]); 方法

2024-03-19 08:45:34 519

原创 javase day06笔记

【代码】javase day06笔记。

2024-03-18 08:29:44 319

Java后端开发面试宝典

Java后端开发面试宝典

2024-03-28

dljd javaSE进阶教材

dljd javaSE进阶教材

2024-03-28

简单动态网页登录设计

这是根据学习写的一个简单的动态网页登录设计,根我写的博客一一对应,就是一个简单的框架,网页就简单写了一个,没有任何特效,很单调,可以慢慢去一点点儿的去添加东西,感兴趣的可以看看

2020-09-26

空空如也

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

TA关注的人

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