Add engagement endpoints GET /engagements and GET /engagements/{id}
Add Engagements tab, detail page, and dashboard integration
- posApi: add Engagement types, getEngagements, getEngagementById - posDomainLabels: add getEngagementStatusLabel - PipelineEngagementsTab: AG Grid with domain/...
Complete remaining items (validation, product cache, status, recent items, focus); revert lazy load to fix build
Finish remaining plan items – low-stock warning, date filters, plan checkboxes
- Order Create: low-stock warning when adding product with trackInventory - Orders tab: date range filter (last 7 days, last 30 days) - Applications tab: date r...
Phase 4–5 – Dashboard reporting, error handling, a11y
Phase 4 – Dashboard & reporting: - Revenue by period (week, month, quarter) - Order count by status (DRAFT, AUTHORIZED, PAID, CANCELLED, REFUNDED) - Application...
Align Pipeline and Settings UI with commerce backend
- Update order status colors to match backend (DRAFT, AUTHORIZED, PAID, CANCELLED, REFUNDED) - Update application status colors (DRAFT, SUBMITTED, EXPIRED, CANC...
Switch DataLoader to CommerceService
- Use CommerceService instead of POSService, RetailProductService, RetailInventoryStockService - createProduct, createOrUpdateStock, createRetailOrder, createMo...
Switch POS controllers to CommerceService
- POSController uses CommerceService instead of POSService - RetailProductController uses CommerceService instead of RetailProductService - RetailInventoryContr...
将 pos 豆类替换为商业包装
- 增加商业套件(指令、意向、供货、库存项目、库存设备等) - 增加商务服务,以取代POSService、零售产品服务、零售库存服务 - 删除所有不修改的.dao.beans.pos包和子包 - 删除POS重置(零售订单、抵押贷款、零售产品等) - 保持DTO的API兼容性 - 添加广告 - 广告 - 广告
Full-page views, AG Grid, domain support, create screens
- Add getMortgageApplication(id) to posApi - Replace Orders tab: MUI Table -> AG Grid, row click -> /pipeline/orders/[id] - Replace Applications tab: cards -> A...
POSService 的企业验证
- 创建零售命令: 请求时无效检查 - 创建Line 项目: 无效检查, 数量 > 0, 单位Price + 0 验证
Enterprise-grade POS UI and API
- posApi: POSApiError class, fetchWithError, structured error handling - useToast + POSToast: centralized snackbar for success/error feedback - posUtils: format...
POS domain config, retail order line items, dynamic pipeline tabs
- Add getPOSConfig/updatePOSConfig to posApi, posDomainLabels utility - Extend createOrder with lineItems, add getOrder, RetailOrderLineItem type - PipelineOrde...
Resolve Map type inference in POS controllers for CI compilation
- Use explicit Map<String, Object> in ResponseEntity Map.of() calls - Fixes 'incompatible types: inference variable V has incompatible bounds' when mixing DTO...
Add POS controllers for retail products, inventory, and orders
- RetailProductController: CRUD for products - RetailInventoryController: inventory stock management - POSController: orders and mortgage applications
数据Loader IO 排除导入并模拟主任务 FK 错误
- 加上缺的java.io. 复制 JavaEnums ToNextJS 的例外导入 - 使用已保存的“主机”,而不是为模拟数据保存“主机” FK 制约性违法行为(指定 by id/指定 to id) - 删除未使用的铅分配 导入类型
添加 POS/ 库存域实体、 DTO、 repos 和服务
- 增加POS豆(零售、租赁、抵押、订阅、供应商) - 添加零售产品、零售库存、零售订单、抵押款App DVDO - 添加零售服务、零售库存服务、软件服务 - 增加零售、抵押、租赁、订阅、供应商的储存库 - 更新嵌入状态
POS 重组: API 通过 APIService, 管理员设置, 管道给用户
- API 代理: POS 请求转发到APIService( 转发到安全服务) - 设置:新POS 主设置 +/ sets/ setatures/ pos 下的系统部分 - POS管理员:设置中的产品目录和库存管理 - 管道:仅供用户使用(台板、命令、应用程序) - Apps & 特性: 添加了 POS 系统应用程序,...
Update Traefik routes: themes.* assets now only load from k1m1 minio instead of balancing across k0m1, k1m1, and k2m1
稳定连接线物理和鼠标相近性
- 只在鼠标移动后应用鼠标近距离力(避免影响负载行数的0,0) - 使用前用数字.isFinite保护鼠标位置 - 控制点速度达到400,以防止出走的物理学 - 使所有物理点同位素/速度具有安全性:如果NaN/无限重设为目标 - 防止线路在价值爆炸时飞出或断裂
Unify section title underline and grid for lower sections
- Use var(--color-primary) for CRM, E-Mail, Phone section underlines - Use 3-column grid on lg for E-Mail and Phone (3 cards) for consistent layout
Fix market tabs, status by market, filter options, lead ID prefix L
- Market tab: filter by lead.marketId and vendorProductIds when a market is selected - Status/Sub Status: use availableStatuses for column filter options (marke...
Back button on view header, restore filters when returning from view
- HeaderBar: add Back to Lead Browser button (ArrowBack) in lead info header - LeadManager: persist filters/tabs to sessionStorage before opening a lead - LeadM...
Switch to base28, remove 5 and S from alphabet
- Rename toBase30 to toBase28; use 28-char alphabet - Lead/doc formatters now use toBase28 internally
Agent column from assignedEmployee, base30 lead/doc ID formats
- Agent column shows assignedEmployee.fullName or 'Unassigned' - Add assignedEmployee to Lead type; use valueGetter for sort/filter - LeadManager: use toBase30L...
Shared toBase30 in app/utils/base30, use in LeadManager and DocManager
Trigger pipeline - pull latest kamo-shared-library with vendorProduct population
获取线索时与供应商的关系
更新 leadsByOrganizationId( ) 以充电@ Translient sparker 字段,用于每个有供应商的线索。 这确保了供应商 和产品数据可供铅发组织制图.
Improve lead grid with base30 IDs, raven icon, All Markets tab, and Market column
- Add toBase30() function for consistent ID representation across LeadManager and DocManager - Fix Grim status icon in tabs to use raven.ico (matching the datag...
添加状态、子状态、来源和日期创建字段
- 添加状态、子状态、来源、日期和主动字段到牵头实体 - 更新前端相容字段(状态、子状态、来源、)的铅DTO 创建At,主要联系人,销售商,产品,代理商 - 为前端兼容性而添加的初级连接DTO - 添加了 @ PrePersist 钩钩以设定新线索的默认值 此处修正了线索页数据网格, 显示用于联系人、 状态的空列, ...
从字符串到雇员参考
- 将铅.指定用户(String)改为铅.指定雇员(雇员) - 添加铅分配实体,以跟踪任务历史 - 添加了各种派任类型的铅分配图 - 新增铅信用实体,用于跟踪雇员铅信用 - 增加领导拨款实体,以管理雇员领导拨款 - 增加相应的储存库和服务 - 更新领导服务,自动记录任务 - 更新了铅DTO,并要求为新结构提供DTO -...
Add mouse proximity physics effect to connection lines
- Checks 5 points along the curve for proximity detection - 80px effect radius - lines respond when mouse gets close - Force strength uses inverse square fallof...
Destination task item border matches line animation
- New destinationGlow keyframe animation with 4 phases - Border color animates through amber → gold → white → gold → amber - Matches the flowing gradient animat...
Auto-expand answers and highlight connected items
Answer Input (TaskSideBar): - New answer field appears immediately when typing in last field - Focus stays in current field while typing - Empty placeholder fie...
New answer field maintains focus while typing
- Added local state for new answer input (newAnswerValue) - Input no longer triggers array update on each keystroke - Answer is added on blur or when pressing E...
Auto-expanding answers and consistent background colors
TaskSideBar (Task Item Settings): - Removed "Add Answer" button - Added auto-expanding input field that appears after existing answers - Typing in the placehold...
Restore task item selection while keeping line clicks
- SVG container back to pointer-events-none (allows clicks to pass through) - Hit area paths use pointer-events: stroke (only the line itself is clickable) - Vi...
Add clickable relationship lines with selection and delete
- Lines can now be clicked to select them (with wider hit area for easier clicking) - Selected lines highlight in amber/orange color with animated flowing gradi...
