feat: 为现场日历增加单据类型并同步派车记录,减少重复录入。
按起止地关键词生成现场出入库计划,同步来源修改和删除,保留历史记录不补录。调整卡片及复制文本的单据类型格式,并记录测试库和生产库迁移结果。
This commit is contained in:
1 parent
1ae8603045
commit
fcbf8a9b65
17 files changed
+732
-42
No files matched your search
@@ -0,0 +1,19 @@
|
||||
-- 现场日历新增选填单据类型,历史记录保留 NULL。
|
||||
-- 先完成手工派车日历建表,再执行本迁移,最后部署后端和 Web。
|
||||
-- MySQL 5.7 / utf8mb4,可重复执行。
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
SET @col_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'pl_dispatch_calendar'
|
||||
AND COLUMN_NAME = 'document_type'
|
||||
);
|
||||
SET @ddl = IF(
|
||||
@col_exists = 0,
|
||||
'ALTER TABLE `pl_dispatch_calendar` ADD COLUMN `document_type` varchar(50) DEFAULT NULL COMMENT ''单据类型(现场日历,支持自定义)'' AFTER `calendar_kind`',
|
||||
'SELECT 1'
|
||||
);
|
||||
PREPARE stmt FROM @ddl;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
@@ -0,0 +1,41 @@
|
||||
-- 派车日历自动同步现场日历,MySQL 5.7 / utf8mb4,可重复执行。
|
||||
-- 前置:2026-10-30-dispatch-calendar-document-type.sql。先执行迁移再部署后端和 Web。
|
||||
-- 只改变结构:历史来源默认 site_sync_enabled=0,后续编辑也不补录。
|
||||
-- 上线后后端新建来源显式设置为1;手工现场记录仍为0。
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
SET @col_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_dispatch_calendar'
|
||||
AND COLUMN_NAME = 'site_sync_enabled'
|
||||
);
|
||||
SET @ddl = IF(@col_exists = 0,
|
||||
'ALTER TABLE `pl_dispatch_calendar` ADD COLUMN `site_sync_enabled` smallint NOT NULL DEFAULT 0 COMMENT ''是否启用现场同步:仅新建来源置1,历史为0'' AFTER `document_type`',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @ddl;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @col_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.COLUMNS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_dispatch_calendar'
|
||||
AND COLUMN_NAME = 'source_record_id'
|
||||
);
|
||||
SET @ddl = IF(@col_exists = 0,
|
||||
'ALTER TABLE `pl_dispatch_calendar` ADD COLUMN `source_record_id` varchar(64) DEFAULT NULL COMMENT ''自动现场记录的来源派车ID,手工记录为空'' AFTER `site_sync_enabled`',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @ddl;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
|
||||
SET @idx_exists = (
|
||||
SELECT COUNT(*) FROM information_schema.STATISTICS
|
||||
WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'pl_dispatch_calendar'
|
||||
AND INDEX_NAME = 'uk_dispatch_calendar_source'
|
||||
);
|
||||
SET @ddl = IF(@idx_exists = 0,
|
||||
'ALTER TABLE `pl_dispatch_calendar` ADD UNIQUE KEY `uk_dispatch_calendar_source` (`tenant_no`, `source_record_id`)',
|
||||
'SELECT 1');
|
||||
PREPARE stmt FROM @ddl;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
@@ -36469,6 +36469,9 @@ CREATE TABLE IF NOT EXISTS `pl_dispatch_calendar` (
|
||||
`destination` varchar(255) NOT NULL COMMENT '目的地',
|
||||
`quantity` varchar(16) DEFAULT NULL COMMENT '数量文本(吨),最多两位小数,不参与汇总',
|
||||
`calendar_kind` varchar(16) NOT NULL DEFAULT 'acid' COMMENT '日历类型:acid酸派车 alkali碱派车 other其他 site现场',
|
||||
`document_type` varchar(50) DEFAULT NULL COMMENT '单据类型(现场日历,支持自定义)',
|
||||
`site_sync_enabled` smallint NOT NULL DEFAULT 0 COMMENT '是否启用现场同步:仅新建来源置1,历史为0',
|
||||
`source_record_id` varchar(64) DEFAULT NULL COMMENT '自动现场记录的来源派车ID,手工记录为空',
|
||||
`tenant_no` varchar(64) NOT NULL COMMENT '租户编号',
|
||||
`order_num` int DEFAULT NULL COMMENT '排序号',
|
||||
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
|
||||
@@ -36480,7 +36483,8 @@ CREATE TABLE IF NOT EXISTS `pl_dispatch_calendar` (
|
||||
`del_flag` smallint NOT NULL DEFAULT 0 COMMENT '删除标记',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_dispatch_calendar_month` (`tenant_no`,`del_flag`,`dispatch_date`),
|
||||
KEY `idx_dispatch_calendar_vehicle` (`tenant_no`,`vehicle_id`,`dispatch_date`)
|
||||
KEY `idx_dispatch_calendar_vehicle` (`tenant_no`,`vehicle_id`,`dispatch_date`),
|
||||
UNIQUE KEY `uk_dispatch_calendar_source` (`tenant_no`,`source_record_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='手工派车日历';
|
||||
|
||||
-- 维护与查看分权;仅向已有日历入口且具有运输计划维护能力的角色授予维护按钮。
|
||||
|
||||
Reference in new issue
Block a user