完成错误测试用例

This commit is contained in:
Your Name
2026-01-31 11:02:59 +08:00
parent 588e3bb478
commit 11cef531bd
15 changed files with 909 additions and 0 deletions
+131
View File
@@ -0,0 +1,131 @@
-- 项目管理系统 数据库与表结构
-- 依据:《产品文档》《初始需求》
-- 数据库名:ocean
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- 创建数据库
-- ----------------------------
CREATE DATABASE IF NOT EXISTS `ocean` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE `ocean`;
-- ----------------------------
-- 用户表(角色:管理员、市场部、工程部、技经部、财务部、物贸部)
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` varchar(64) NOT NULL COMMENT '用户ID',
`username` varchar(64) NOT NULL COMMENT '账号',
`password_hash` varchar(255) NOT NULL COMMENT '密码哈希',
`role` enum('管理员','市场部','工程部','技经部','财务部','物贸部') NOT NULL COMMENT '角色',
`display_name` varchar(64) DEFAULT NULL COMMENT '显示名称',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
-- ----------------------------
-- 项目表(5 个分类合并为一张表,便于查询与列表筛选)
-- 列表筛选用:progress 项目进度、cost 项目费用
-- ----------------------------
DROP TABLE IF EXISTS `projects`;
CREATE TABLE `projects` (
`id` varchar(64) NOT NULL COMMENT '项目ID',
`progress` varchar(32) DEFAULT NULL COMMENT '项目进度(列表筛选)',
`cost` varchar(32) DEFAULT NULL COMMENT '项目费用(列表筛选)',
-- 合同信息
`serial_no` varchar(32) DEFAULT NULL COMMENT '序号',
`contract_code` varchar(128) NOT NULL COMMENT '合同编号',
`power_bureau_contract_code` varchar(128) DEFAULT NULL COMMENT '供电局项目合同编号',
`project_name` varchar(255) NOT NULL COMMENT '项目名称',
`sub_item_count` int DEFAULT NULL COMMENT '子项个数',
`sub_item_code` varchar(128) DEFAULT NULL COMMENT '子项编码',
`total_investment` decimal(20,4) DEFAULT NULL COMMENT '项目总投资(万元)',
`bid_contract_amount` decimal(20,4) DEFAULT NULL COMMENT '中标合同金额(万元)',
`warranty_ratio` varchar(32) DEFAULT NULL COMMENT '质保金比例',
`settlement_amount` decimal(20,4) DEFAULT NULL COMMENT '结算金额(万元)',
`total_cost_estimate` decimal(20,4) DEFAULT NULL COMMENT '总成本测算',
`voltage_level` varchar(64) DEFAULT NULL COMMENT '工程电压等级',
`project_category` varchar(64) DEFAULT NULL COMMENT '工程类别',
`owner_unit` varchar(255) DEFAULT NULL COMMENT '业主单位',
`owner_contact` varchar(255) DEFAULT NULL COMMENT '业主联系人及电话',
`bid_type` varchar(64) DEFAULT NULL COMMENT '中标形式',
`sign_date` date DEFAULT NULL COMMENT '签订日期',
`start_date` date DEFAULT NULL COMMENT '开工日期',
`planned_completion_date` date DEFAULT NULL COMMENT '计划竣工日期',
`actual_completion_date` date DEFAULT NULL COMMENT '实际竣工日期',
`warranty_amount` decimal(20,4) DEFAULT NULL COMMENT '质保金(万元)',
`warranty_end_date` date DEFAULT NULL COMMENT '质保期截止日',
`actual_warranty_refund_date` date DEFAULT NULL COMMENT '实际退质保金日期',
`project_department` varchar(128) DEFAULT NULL COMMENT '所属项目部',
`project_leader_contact` varchar(255) DEFAULT NULL COMMENT '项目负责人及电话',
`payment_method` varchar(128) DEFAULT NULL COMMENT '工程款拨付方式',
-- 成本控制
`total_cost` decimal(20,4) DEFAULT NULL COMMENT '总体成本',
`is_adjusted` varchar(8) DEFAULT NULL COMMENT '是否调整:是/否',
`migrant_worker_plan` varchar(64) DEFAULT NULL COMMENT '农民工工资(按进度计划)',
`migrant_worker_actual` decimal(20,4) DEFAULT NULL COMMENT '农民工工资(实付)',
`self_supply_material_control` decimal(20,4) DEFAULT NULL COMMENT '乙供材料费(控制)',
`material_payable_by_ratio` decimal(20,4) DEFAULT NULL COMMENT '应付材料费(按收款比例)',
`material_actual_occurred` decimal(20,4) DEFAULT NULL COMMENT '实际发生材料费',
`material_actual_paid` decimal(20,4) DEFAULT NULL COMMENT '实际支付材料费',
`other_cost_control` decimal(20,4) DEFAULT NULL COMMENT '其他费用(控制)',
`other_payable` decimal(20,4) DEFAULT NULL COMMENT '应付其他费',
`other_actual` decimal(20,4) DEFAULT NULL COMMENT '实际其他费用',
`tax` decimal(20,4) DEFAULT NULL COMMENT '税金',
`profit` decimal(20,4) DEFAULT NULL COMMENT '利润(万元)',
`actual_profit` decimal(20,4) DEFAULT NULL COMMENT '实际利润(万元)',
`cost_settlement_amount` decimal(20,4) DEFAULT NULL COMMENT '成本结算金额(万元)',
-- 应收款
`receivable_progress` decimal(20,4) DEFAULT NULL COMMENT '应收款(完成进度款)',
`invoice_amount` decimal(20,4) DEFAULT NULL COMMENT '开票金额(万元)',
`actual_receipt_amount` decimal(20,4) DEFAULT NULL COMMENT '实际收款金额(万元)',
`actual_receipt_rate` varchar(32) DEFAULT NULL COMMENT '实际收款完成率',
-- 应付款
`payable_amount` decimal(20,4) DEFAULT NULL COMMENT '应付款金额(万元)',
`actual_payment_amount` decimal(20,4) DEFAULT NULL COMMENT '实际付款金额(万元)',
`unreceived_amount` decimal(20,4) DEFAULT NULL COMMENT '未收款(万元)',
`actual_payment_rate` varchar(32) DEFAULT NULL COMMENT '实际付款完成率',
`migrant_worker_arrears` decimal(20,4) DEFAULT NULL COMMENT '民工工资清欠金额(万元)',
-- 其他
`settlement_cost_estimate` decimal(20,4) DEFAULT NULL COMMENT '结算后成本测算金额',
`settlement_labor_cost` decimal(20,4) DEFAULT NULL COMMENT '结算人工费',
`settlement_material_cost` decimal(20,4) DEFAULT NULL COMMENT '结算材料费',
`settlement_other_cost` decimal(20,4) DEFAULT NULL COMMENT '结算其他费',
`due_settlement_count` int DEFAULT NULL COMMENT '到期应结算项目个数',
`overdue_settlement_count` int DEFAULT NULL COMMENT '到期未完成结算个数',
`existing_problems` text COMMENT '存在的问题',
`suggestions` text COMMENT '建议措施',
`cumulative_progress` varchar(64) DEFAULT NULL COMMENT '累计进度',
`remark` text COMMENT '备注',
`created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `idx_contract_code` (`contract_code`),
KEY `idx_project_name` (`project_name`),
KEY `idx_progress` (`progress`),
KEY `idx_cost` (`cost`),
KEY `idx_updated_at` (`updated_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目表(含合同信息、成本控制、应收款、应付款、其他)';
-- ----------------------------
-- 操作日志表(修改项目信息时记录)
-- ----------------------------
DROP TABLE IF EXISTS `operation_logs`;
CREATE TABLE `operation_logs` (
`id` varchar(64) NOT NULL COMMENT '日志ID',
`project_id` varchar(64) NOT NULL COMMENT '项目ID',
`operator_id` varchar(64) NOT NULL COMMENT '操作人ID',
`operated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
`summary` varchar(128) DEFAULT NULL COMMENT '修改摘要,如:合同信息、成本控制',
`detail` text COMMENT '修改内容详情',
PRIMARY KEY (`id`),
KEY `idx_project_id` (`project_id`),
KEY `idx_operator_id` (`operator_id`),
KEY `idx_operated_at` (`operated_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目操作日志表';
SET FOREIGN_KEY_CHECKS = 1;