haoliang
|
3e7c34c52f
|
修复设备详情关联名称为空(Bug6)+布尔字段类型(Bug7)+异常过滤器生产模式
|
1 week ago |
haoliang
|
6522b2ae49
|
补齐操作日志导出端点(adjustment/export占位)
|
1 week ago |
haoliang
|
126cecfa09
|
补齐产量报表2个端点(adjustment-history/export占位)+修复前端API路径参数 + 新增DTO + Repository方法
|
1 week ago |
haoliang
|
1168b3c4ac
|
补齐员工管理4个端点(machines/production-today/production-trend/available-machines)+修复前端详情页API路径参数 + 新增4个DTO
|
1 week ago |
haoliang
|
6fb571f565
|
补齐采集地址3个详情子端点(machines/collect-records/raw-json)+修复前端详情页API路径参数 + 新增3个DTO + DI注册
|
1 week ago |
haoliang
|
7052cbf5a1
|
规范:新增10条联调测试规范——后端5条(端点对照表/DTO断言/布尔类型/需求驱动测试/覆盖率声明)+前端4条(Mock切换Checklist/RESTful调用/分页组件/布尔类型)+联调测试1条(逐字段验证)
|
1 week ago |
haoliang
|
b5bff2a815
|
修复分页切换不生效:添加@current-change和@size-change事件触发loadData
|
1 week ago |
haoliang
|
dfc18fabb5
|
设备管理联调:修复brandId缺失、batchToggle改逐个toggle、详情页添加4个子API端点
- 前端:新增/编辑机床时传递brandId字段
- 前端:启停切换改为逐个调用PUT /admin/machine/{id}/toggle
- 前端:详情页API调用从query参数改为RESTful路径参数
- 后端:新增4个详情页API(status/production-today/production-trend/collect-records)
- 后端:新增3个DTO(MachineTodayProdItem/MachineTrendItem/MachineCollectRecordItem)
- 后端:更新MachineStatusResponse字段以匹配前端展示需求
|
1 week ago |
haoliang
|
2e3199490c
|
前端:19处写操作URL从Mock风格切换为RESTful(PUT/DELETE+路径参数)
|
1 week ago |
haoliang
|
81743f8bb9
|
规范:统一17个页面文件§9为新格式(接口引用表+数据结构),不重复URL,数据结构是唯一定义处
|
1 week ago |
haoliang
|
04f3a170c2
|
规范:统一4个文件的职责划分——03只管URL,数据结构由页面文件§9定义
|
1 week ago |
haoliang
|
8b9809e3f6
|
规范:更新§16格式说明,接口引用表只列编号+界面用途不重复URL,数据结构是唯一定义处
|
1 week ago |
haoliang
|
2887568c5f
|
规范:删除03-API接口设计.md中所有返回数据结构定义(10个模块),03只保留URL和Method,数据结构由各页面文件§9定义
|
1 week ago |
haoliang
|
293e1cf233
|
规范:精简系统设置页面§9,引用表只列编号+界面用途,不重复URL;数据结构保留完整JSON
|
1 week ago |
haoliang
|
16fac603fc
|
规范:系统设置页面§9改为§9接口引用与数据结构(引用端点清单编号+两列URL+完整JSON数据结构)
|
1 week ago |
haoliang
|
5d1d5ebb27
|
docs: 完善前后端接口规范,解决Mock不动规则与RESTful规范的冲突
|
1 week ago |
haoliang
|
32a7bf49d0
|
fix: 修复20个列表接口返回格式与Mock不一致问题,新增5.2.1 Mock数据结构对齐规范
|
1 week ago |
haoliang
|
a094e59ffc
|
修复API返回PascalCase导致前端取不到message的问题
- WebApiConfig: 添加CamelCasePropertyNamesContractResolver
- 后端JSON输出从 Code/Message/Data 改为 code/message/data
- 前端拦截器 res.message 现在能正确取到后端错误信息
|
1 week ago |
haoliang
|
0cd61a51b3
|
修复路由重定向到/login + 登录失败提示不显示
- router: createWebHistory base设为import.meta.env.BASE_URL(build=/admin/, dev=/)
- vite.config: base按command区分(build时/admin/,dev时/)
- request.ts: HTTP错误(4xx/5xx)时解析后端返回的message显示给用户
- request.ts: token过期跳转登录页使用routerBase而非硬编码路径
|
1 week ago |
haoliang
|
b28a89f263
|
IIS部署联调修复:OWIN禁用+程序集绑定+SPA路由回退+错误详情输出
- Web.config: 禁用OWIN自动发现(owin:AutomaticAppStartup=false),添加MySqlConnector依赖的程序集绑定重定向
- Global.asax.cs: Application_BeginRequest实现/admin/路径的SPA路由回退(无需URL Rewrite模块)
- GlobalExceptionFilter: 输出完整异常堆栈+InnerException,便于联调定位问题
- request.ts: 错误提示直接显示后端返回的message,不再覆盖为固定文案
- vite.config.ts: base设为/admin/,静态资源路径正确指向/admin/assets/
|
1 week ago |
haoliang
|
126154fc7b
|
IIS部署准备:csproj输出到bin\ + 前端build输出到admin + 修复全部TS类型错误
- CncWebApi.csproj: OutputPath改为bin\,AppendTargetFrameworkToOutputPath=false
- .gitignore: 排除src/CncWebApi/admin/目录
- vite.config.ts: build.outDir指向../src/CncWebApi/admin
- deploy-admin.ps1: 一键编译后端+前端部署脚本
- request.ts: 类型安全封装,返回Promise<ApiResponse<T>>
- types/index.ts: 扩展Machine/Alert/OperationLog/ScreenCard/CollectAddress/MachineStatus字段
- 修复11个页面文件的TS类型错误(vue-tsc 0错误)
|
1 week ago |
haoliang
|
16016d0df7
|
新增CncWebApi.Tests:14个控制器127个测试全部通过
- ControllerFactory:封装14个Controller的创建(含完整Repository→Service→Controller依赖链)
- TestDb:测试数据库辅助(TruncateAll+SeedData+SetRealPasswordHash+辅助查询)
- DatabaseCollection:xUnit串行测试集合(共享cnc_test库)
- 14个Controller测试文件覆盖所有API端点:
Health(1) + Auth(6) + Brand(15) + Machine(10) + CollectAddress(10) +
Worker(13) + Dashboard(9) + Settings(15) + Production(6) + Alert(7) +
Log(4) + ScreenConfig(12) + Screen(11) + Option(8) = 127个测试
- 直接实例化Controller调用方法,不经过HTTP管线
- 使用真实数据库(cnc_test库),与Service.Tests共享同一测试库
|
1 week ago |
haoliang
|
8845ffb3f6
|
新增CncService.Tests(180个测试全部通过)+ 修复Repository层SQL字段名bug
- 新增12个Service测试文件(180个测试用例,覆盖全部Service方法)
- 修复BrandFieldMappingRepository.BatchCreate连接未打开的bug
- 修复DailyProductionRepository中引用不存在的worker_id列的bug
- 修复DashboardRepository.GetWorkerRank中引用不存在的worker_id列的bug
- 修复SystemLogRepository.GetList参数未添加Limit/Offset的bug
|
1 week ago |
haoliang
|
3a1912f4a1
|
修复所有Repository SQL列名为snake_case,新增CncRepository.Tests(37个测试全部通过)
- 修复20个Repository文件中SQL列名从PascalCase改为snake_case匹配数据库
- 新增TestDb.cs测试辅助类(DELETE+重置自增+种子数据)
- 新增5个测试类(Alert/Brand/Machine/SysConfig/Workshop)共37个测试
- 添加[Collection(Database)]串行执行避免并行竞争
- 解决TRUNCATE外键约束问题改用DELETE FROM
|
1 week ago |
haoliang
|
03aaeb11c2
|
feat(webapi): CncWebApi完整实现 - 13控制器+DI+JWT认证,编译通过
- Controllers: 13个API控制器(Auth/Dashboard/Machine/Brand/CollectAddress/Worker/Production/Alert/Settings/Log/ScreenConfig/Screen/Option)
- Infrastructure: ServiceResolver(手动DI)+JwtAuthFilter(HMACSHA256签名验证)
- 路由: 属性路由覆盖,管理后台/api/admin/**+大屏/api/screen/**
- 认证: JwtAuthFilter标记admin接口,ScreenController免认证
- DI: WebApiConfig注册ServiceResolver,手动解析Repository+Service依赖链
- WorkshopRepository: 从CncRepository.Impl移入CncRepository/Impl统一管理
|
1 week ago |
haoliang
|
fd40475271
|
feat(service): CncService层完整实现 - 12接口+12实现,编译通过
- Interface: 12个服务接口(IAuthService/IDashboardService/IBrandService/ICollectAddressService/IMachineService/IWorkshopService/IWorkerService/IProductionService/IAlertService/IScreenService/ISystemLogService/ICollectDataService)
- Impl: 12个服务实现(构造函数注入Repository+参数校验+DTO转换+业务逻辑)
- 登录: BCrypt密码验证+HS256 JWT生成
- 仪表盘: 7项统计+采集服务心跳检测
- 品牌: CRUD+复制+16标准字段
- 机床/车间/员工: CRUD+唯一性校验+绑定管理
- 产量: 分页查询+汇总+修正审计
- 告警: 分页+单条/批量处理+统计
- 大屏: 卡片配置+筛选条件管理
- 采集数据: 原始记录分页+最新记录
- 系统日志: 分页查询
- 添加BCrypt.Net-Next 4.0.3 NuGet包
|
1 week ago |
haoliang
|
fc7d350c3d
|
feat(repository): CncRepository完整实现 - 20接口+16实现,编译通过
- Interface: 20个仓储接口(ISysConfig/IWorkshop/IBrand/IBrandFieldMapping/ICollectAddress/IMachine/IWorker/IWorkerMachine/IDailyProduction/IProductionSegment/IMachineDailyStatus/IWorkerDailySummary/IProductionAdjustment/IAlert/IScreenConfig/IScreenFilter/ICollectRaw/ISystemLog/ICollectorHeartbeat/IDashboard)
- Impl: 16个仓储实现(BusinessRepository子类+LogRepository子类)
- 包含: 基础CRUD/分页查询/多表JOIN/统计聚合/仪表盘查询
- 修复: AlertRepository继承修正(BusinessRepository)/dynamic替换为强类型
|
1 week ago |
haoliang
|
5ec37e6724
|
test(models): CncModels.Tests 46个测试全部通过
- EnumTests: 9个snake_case枚举约定验证 + LogLevel大写验证
- ConstantsTests: 20个TableName精确值 + 3个SensitiveConfigKey + 6个ErrorCode数字校验
- EntityTests: 20个实体属性赋值读回测试
- PagedQueryTests: 边界值测试(page=0/-1/pageSize=0/101自动修正)
- PagedResultTests: TotalPages计算(空数据/满页/跨页/除零保护)
- ApiResponseTests: Success/Fail工厂方法+null数据+复杂对象
- DtoTests: LoginRequest/MachineQuery/CreateMachineRequest/MachineListItem赋值测试
|
1 week ago |
haoliang
|
7686930525
|
feat(models): CncModels完整实现 - 10枚举+20实体+62DTO,编译通过0错误0警告
- Enum: AlertType/CollectStatus/DataStatus/CardType/DataType/MatchBy/SegmentCloseReason/CollectorServiceStatus/LogLevel/ValueType
- Entity: 20张表完整映射(Workshop/Brand/Machine/Worker/CollectRecord/DailyProduction/Alert/SysConfig/ScreenConfig等)
- DTO: 13模块请求响应类(Login/Dashboard/Machine/Brand/CollectAddress/Worker/Production/Alert/Settings/Log/ScreenConfig/Screen/Common)
- Constants: TableName(20张表名) + SensitiveConfigKey(3个敏感键) + ErrorCode(6个错误码)
- 基础类: ApiResponse/PagedResult/PagedQuery
|
1 week ago |
haoliang
|
0ba5cede73
|
feat: 搭建VS2017解决方案骨架(8项目+前端文件夹),编译通过0错误
- CncDataSystem.sln: 4层源码项目 + 4测试项目 + frontend解决方案文件夹
- CncModels: ApiResponse/PagedResult/PagedQuery/ErrorCode 基础类
- CncRepository: BaseRepository 双库连接管理(BusinessRepository/LogRepository)
- CncService: BusinessException 业务异常基类
- CncWebApi: WebApiConfig路由配置/GlobalExceptionFilter/HealthController/Web.config
- 测试项目: xUnit + Moq + Microsoft.NET.Test.Sdk
- NuGet: Dapper + MySqlConnector + Newtonsoft.Json + log4net + JWT
- 编译: dotnet build 8项目全部通过
|
1 week ago |
haoliang
|
9bb4b8246d
|
docs: 完善后端测试规范,新增必测场景清单(6大类)、参数化测试、Repository真实DB测试、禁止行为
|
1 week ago |
haoliang
|
ea26fa08ba
|
docs: 后端开发规范定稿,含技术栈/项目结构/命名/注释/测试/分层/依赖注入规范
|
1 week ago |
haoliang
|
0bf985de5d
|
docs: API接口设计文档定稿,13个模块83个端点,含Mock映射和数据库表对照
|
1 week ago |
haoliang
|
c4138c0e48
|
feat(database): 数据库定稿落地,cnc_business(17表)+cnc_log(3表),含预置数据(车间/品牌/配置/大屏卡片)
|
1 week ago |
haoliang
|
3d07293510
|
feat(dashboard): 车间平均单机产量tooltip记录日终汇总规则,多天范围改为日均单机产量
|
1 week ago |
haoliang
|
8ce0c11e0f
|
feat(dashboard): 车间产量/机床排行/工人排行增加独立日期筛选(今日/昨日/近3天/近7天/自定义)
|
1 week ago |
haoliang
|
e663bbd388
|
refactor(dashboard): 去掉仪表盘30秒自动刷新逻辑
|
1 week ago |
haoliang
|
b756b3d58c
|
feat(dashboard): 仪表盘所有指标添加统计说明tooltip,hover显示通俗易懂的计算口径
|
1 week ago |
haoliang
|
f93b57365f
|
fix(mock): 补充采集服务启停/刷新配置的Mock API
POST /admin/collector/start|stop|refresh 三个端点,停止/启动会切换状态
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |
haoliang
|
dd583c73bb
|
fix(dashboard): 车间产量对比改为平均单机产量,消除机床数量差异
柱状图显示每台机床平均产量(件/台),tooltip显示总产量+机床数
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |
haoliang
|
8b52b3d872
|
feat(dashboard): 仪表盘增强 — 新增统计卡片+图表+告警列表
新增: 采集成功率/切削总时/运行机床/数据缺失 统计卡片
新增: 产量趋势折线图(近7天) + 车间产量对比柱状图 + 机床状态分布饼图
新增: 最新告警列表(5条)
新增: 4个Mock API + ECharts PieChart/Legend按需导入
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |
haoliang
|
6a381463ec
|
docs: 添加Git提交规范到AGENTS.md
强制要求:每次代码改动编译成功后必须commit+push到远程仓库
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |
haoliang
|
b43550acc2
|
feat(mock): 添加12个模块的Mock数据
自定义Vite configureServer中间件,支持所有API端点的Mock数据返回
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |
haoliang
|
9a99b926ac
|
feat(frontend): 实现16个页面源码(13模块)
管理后台: 登录/仪表盘/设备/品牌/采集地址/员工/产量/告警/系统设置/操作日志/大屏配置
大屏看板: 全屏数据展示页
包含: 路由/Mock路由镜像/axios封装/全局样式/TypeScript类型定义/ECharts按需导入/PageHeader组件
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |
haoliang
|
3de3b13011
|
feat(frontend): 初始化前端工程配置
Vite 8 + Vue 3 + TypeScript + Element Plus + ECharts, 自定义Mock插件
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |
haoliang
|
16643a2d08
|
docs: 初始化项目设计文档库
包含: 项目需求文档、数据库设计、前端全局规范、13模块功能清单(管理后台+大屏)
Ultraworked with Sisyphus
Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
|
1 week ago |