✨ 新增项目预付核销,并修复平台公司多选、常用线路组织过滤与登录 IP 连坐锁
结算附件支持项目预付核销并扣减可付款金额;加固项目平台公司多选字段扩容脚本;常用线路新增归属组织与列表筛选对齐;登录失败仅按账号锁定,取消 IP 级连坐。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,4 +1,64 @@
|
||||
-- 平台公司支持多选:ID 逗号分隔,名称顿号分隔
|
||||
ALTER TABLE `blade_project_apply`
|
||||
MODIFY COLUMN `undertake_dept_id` varchar(500) DEFAULT NULL COMMENT '平台公司ID,多个逗号分隔',
|
||||
MODIFY COLUMN `undertake_dept_name` varchar(500) DEFAULT NULL COMMENT '平台公司,多个顿号分隔';
|
||||
-- 项目立项平台公司多选:ID 逗号分隔,名称顿号分隔
|
||||
-- 原字段:undertake_dept_id bigint、undertake_dept_name varchar(100)
|
||||
-- 选择 2 个及以上平台公司时,若未扩容会报 Incorrect integer value / Data truncation
|
||||
-- 整列索引挂在 varchar(500) 上可能因键长超限导致 ALTER 失败,故先删索引再改前缀索引
|
||||
|
||||
DELIMITER $$
|
||||
|
||||
DROP PROCEDURE IF EXISTS `upgrade_project_apply_undertake_dept_multi_20261014`$$
|
||||
CREATE PROCEDURE `upgrade_project_apply_undertake_dept_multi_20261014`()
|
||||
BEGIN
|
||||
DECLARE db_name varchar(128);
|
||||
DECLARE need_modify tinyint DEFAULT 0;
|
||||
SET db_name = DATABASE();
|
||||
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema = db_name
|
||||
AND table_name = 'blade_project_apply'
|
||||
AND column_name = 'undertake_dept_id'
|
||||
AND (
|
||||
data_type IN ('bigint', 'int', 'integer')
|
||||
OR (data_type IN ('varchar', 'char') AND IFNULL(character_maximum_length, 0) < 500)
|
||||
)
|
||||
) OR EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema = db_name
|
||||
AND table_name = 'blade_project_apply'
|
||||
AND column_name = 'undertake_dept_name'
|
||||
AND data_type IN ('varchar', 'char')
|
||||
AND IFNULL(character_maximum_length, 0) < 500
|
||||
) THEN
|
||||
SET need_modify = 1;
|
||||
END IF;
|
||||
|
||||
IF need_modify = 1 THEN
|
||||
IF EXISTS (
|
||||
SELECT 1 FROM information_schema.statistics
|
||||
WHERE table_schema = db_name
|
||||
AND table_name = 'blade_project_apply'
|
||||
AND index_name = 'idx_project_apply_dept'
|
||||
) THEN
|
||||
ALTER TABLE `blade_project_apply` DROP INDEX `idx_project_apply_dept`;
|
||||
END IF;
|
||||
|
||||
ALTER TABLE `blade_project_apply`
|
||||
MODIFY COLUMN `undertake_dept_id` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '平台公司ID,多个逗号分隔',
|
||||
MODIFY COLUMN `undertake_dept_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '平台公司,多个顿号分隔';
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.statistics
|
||||
WHERE table_schema = db_name
|
||||
AND table_name = 'blade_project_apply'
|
||||
AND index_name = 'idx_project_apply_dept'
|
||||
) THEN
|
||||
ALTER TABLE `blade_project_apply`
|
||||
ADD INDEX `idx_project_apply_dept` (`undertake_dept_id`(191)) USING BTREE;
|
||||
END IF;
|
||||
END$$
|
||||
|
||||
CALL `upgrade_project_apply_undertake_dept_multi_20261014`()$$
|
||||
DROP PROCEDURE `upgrade_project_apply_undertake_dept_multi_20261014`$$
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
@@ -60,7 +60,7 @@ CREATE TABLE `blade_project_apply` (
|
||||
`void_reason` varchar(500) DEFAULT NULL COMMENT '作废原因',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `uk_project_apply_name` (`project_name`, `is_deleted`) USING BTREE,
|
||||
KEY `idx_project_apply_dept` (`undertake_dept_id`) USING BTREE,
|
||||
KEY `idx_project_apply_dept` (`undertake_dept_id`(191)) USING BTREE,
|
||||
KEY `idx_project_apply_status` (`approval_status`) USING BTREE,
|
||||
KEY `idx_project_apply_create_time` (`create_time`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='项目立项';
|
||||
@@ -80,8 +80,8 @@ CREATE TABLE `blade_temporary_credit_limit` (
|
||||
`project_id` bigint(20) DEFAULT NULL COMMENT '项目ID',
|
||||
`project_code` varchar(100) DEFAULT NULL COMMENT '项目编号',
|
||||
`project_name` varchar(100) DEFAULT NULL COMMENT '项目名称',
|
||||
`undertake_dept_id` varchar(500) DEFAULT NULL COMMENT '平台公司ID,多个逗号分隔',
|
||||
`undertake_dept_name` varchar(500) DEFAULT NULL COMMENT '平台公司,多个顿号分隔',
|
||||
`undertake_dept_id` bigint(20) DEFAULT NULL COMMENT '承办部门ID',
|
||||
`undertake_dept_name` varchar(100) DEFAULT NULL COMMENT '承办部门',
|
||||
`project_fund_limit` decimal(18,2) DEFAULT NULL COMMENT '项目资金使用额度(万元)',
|
||||
`used_fund_limit` decimal(18,2) DEFAULT NULL COMMENT '已使用项目资金额度(万元)',
|
||||
`remaining_fund_limit` decimal(18,2) DEFAULT NULL COMMENT '剩余项目资金使用额度(万元)',
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
-- 结算单项目预付核销明细
|
||||
CREATE TABLE IF NOT EXISTS `blade_settlement_project_advance_write_off` (
|
||||
`id` bigint NOT NULL COMMENT '主键',
|
||||
`tenant_id` varchar(12) NOT NULL DEFAULT '000000' COMMENT '租户ID',
|
||||
`settlement_type` varchar(20) NOT NULL COMMENT '结算单类型 pre/formal',
|
||||
`settlement_id` bigint NOT NULL COMMENT '预结算/正式结算单ID',
|
||||
`payment_application_id` bigint NOT NULL COMMENT '项目预付付款申请ID',
|
||||
`payment_no` varchar(64) DEFAULT NULL COMMENT '预付单号',
|
||||
`project_advance_amount` decimal(18,2) DEFAULT 0.00 COMMENT '项目预付金额',
|
||||
`write_off_amount` decimal(18,2) NOT NULL DEFAULT 0.00 COMMENT '本次核销金额',
|
||||
`kingdee_bill_no` varchar(100) DEFAULT NULL COMMENT '金蝶预付单号',
|
||||
`create_user` bigint DEFAULT NULL COMMENT '创建人',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT '创建部门',
|
||||
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
|
||||
`update_user` bigint DEFAULT NULL COMMENT '更新人',
|
||||
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
|
||||
`status` int DEFAULT 1 COMMENT '业务状态',
|
||||
`is_deleted` int DEFAULT 0 COMMENT '是否已删除',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_spa_write_off_settlement` (`settlement_type`,`settlement_id`),
|
||||
KEY `idx_spa_write_off_payment` (`payment_application_id`),
|
||||
KEY `idx_spa_write_off_create_time` (`create_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='结算单项目预付核销';
|
||||
Reference in New Issue
Block a user