gongchunyi
7 小时以前 263b034b4058bb7a36c709278abdc88ca1ba26c1
doc/ÄþÏÄ-ÖÐÊ¢½¨²Ä.sql
@@ -281,95 +281,6 @@
ALTER TABLE `product-inventory-management-zsjc`.`product_order`
    ADD COLUMN `status` int NULL COMMENT '状态(1.待开始、2.进行中、3.已完成、4.已取消)' AFTER `plan_complete_time`;
DROP TABLE IF EXISTS `process_route_item_instance`;
CREATE TABLE `process_route_item_instance`
(
    `id`               bigint     NOT NULL AUTO_INCREMENT,
    `route_id`         bigint     NOT NULL DEFAULT 0 COMMENT '工艺路线id',
    `product_model_id` bigint     NULL     DEFAULT 0 COMMENT '产品id',
    `process_id`       bigint     NOT NULL DEFAULT 0 COMMENT '工序id',
    `tenant_id`        bigint     NOT NULL COMMENT '租户id',
    `create_time`      datetime   NULL     DEFAULT NULL COMMENT '录入时间',
    `update_time`      datetime   NULL     DEFAULT NULL COMMENT '更新时间',
    `drag_sort`        int        NULL     DEFAULT NULL COMMENT '拖动排序',
    `is_quality`       tinyint(1) NULL     DEFAULT 1 COMMENT '是否质检工序',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
  AUTO_INCREMENT = 83
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_0900_ai_ci COMMENT = '工艺路线子集-附表'
  ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for process_route_item_param_instance
-- ----------------------------
DROP TABLE IF EXISTS `process_route_item_param_instance`;
CREATE TABLE `process_route_item_param_instance`
(
    `id`               bigint                                                        NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `order_id`         bigint                                                                 DEFAULT NULL COMMENT '生产订单ID',
    `route_item_id`    bigint                                                        NOT NULL COMMENT '关联工艺路线明细ID (process_route_item.id)',
    `process_param_id` bigint                                                                 DEFAULT NULL COMMENT '来源工序参数ID',
    `param_key`        varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci          DEFAULT NULL COMMENT '参数唯一标识',
    `param_name`       varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数名称',
    `param_type`       tinyint                                                       NOT NULL COMMENT '参数类型(1数字 2文本 3下拉选择 4时间)',
    `param_format`     varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci          DEFAULT NULL COMMENT '参数格式',
    `value_mode`       tinyint                                                                DEFAULT '1' COMMENT '值模式(1单值 2区间)',
    `unit`             varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci           DEFAULT NULL COMMENT '单位',
    `remark`           varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci          DEFAULT NULL COMMENT '备注',
    `standard_value`   varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci          DEFAULT NULL COMMENT '标准值',
    `min_value`        decimal(10, 2)                                                         DEFAULT NULL COMMENT '此路线节点设定的标准最小值',
    `max_value`        decimal(10, 2)                                                         DEFAULT NULL COMMENT '此路线节点设定的标准最大值',
    `is_required`      tinyint                                                       NOT NULL DEFAULT '0' COMMENT '是否必填',
    `sort`             int                                                           NOT NULL DEFAULT '0' COMMENT '排序',
    `tenant_id`        bigint                                                                 DEFAULT NULL COMMENT '租户ID',
    `create_time`      datetime                                                               DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time`      datetime                                                               DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_route_item_id` (`route_item_id`) USING BTREE,
    KEY `idx_param_key` (`param_key`)
) ENGINE = InnoDB
  AUTO_INCREMENT = 1
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_0900_ai_ci
  ROW_FORMAT = DYNAMIC COMMENT ='工艺路线工序参数实例表';
-- ----------------------------
-- Table structure for product_structure_instance
-- ----------------------------
DROP TABLE IF EXISTS `product_structure_instance`;
CREATE TABLE `product_structure_instance`
(
    `id`                bigint                                                        NOT NULL AUTO_INCREMENT,
    `parent_id`         bigint                                                        NULL DEFAULT NULL COMMENT '父节点ID',
    `product_model_id`  bigint                                                        NULL DEFAULT NULL COMMENT '产品id',
    `process_id`        bigint                                                        NULL DEFAULT NULL COMMENT '工序id',
    `unit_quantity`     decimal(16, 4)                                                NOT NULL COMMENT '单位产出需要数量',
    `demanded_quantity` decimal(16, 4)                                                NULL DEFAULT NULL COMMENT '需求数量',
    `unit`              varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '单位',
    `tenant_id`         bigint                                                        NULL DEFAULT NULL COMMENT '租户id',
    `bom_id`            bigint                                                        NOT NULL COMMENT 'bom的id',
    PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB
  CHARACTER SET = utf8mb4
  COLLATE = utf8mb4_0900_ai_ci COMMENT = 'BOM子集-附表'
  ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;
ALTER TABLE `process_route_item_instance`
    ADD COLUMN `order_id` bigint NOT NULL COMMENT '生产订单id' AFTER `id`,
    ADD INDEX `idx_order_id` (`order_id`);
ALTER TABLE `process_route_item_param_instance`
    ADD COLUMN `order_id` bigint NOT NULL COMMENT '生产订单id' AFTER `id`,
    ADD INDEX `idx_order_id` (`order_id`);
ALTER TABLE `product_structure_instance`
    ADD COLUMN `order_id` bigint NOT NULL COMMENT '生产订单id' AFTER `id`,
    ADD INDEX `idx_order_id` (`order_id`);
ALTER TABLE `product-inventory-management-zsjc`.`product_order`
    ADD COLUMN `strength` varchar(255) NULL COMMENT '产品类型' AFTER `plan_complete_time`;
@@ -427,4 +338,176 @@
ALTER TABLE `product-inventory-management-zsjc`.`product_structure`
    MODIFY COLUMN `unit_quantity` decimal(20, 15) NOT NULL COMMENT '单位产出需要数量' AFTER `process_id`,
    MODIFY COLUMN `demanded_quantity` decimal(20, 15) NULL DEFAULT NULL COMMENT '需求数量' AFTER `unit_quantity`,
    MODIFY COLUMN `demanded_quantity` decimal(20, 15) NULL DEFAULT NULL COMMENT '需求数量' AFTER `unit_quantity`,
CREATE TABLE `production_order_route_item`
(
    `id`               bigint NOT NULL AUTO_INCREMENT,
    `order_id`         bigint NOT NULL COMMENT '生产订单id',
    `route_id`         bigint NOT NULL DEFAULT '0' COMMENT '工艺路线id',
    `product_model_id` bigint          DEFAULT '0' COMMENT '产品id',
    `process_id`       bigint NOT NULL DEFAULT '0' COMMENT '工序id',
    `tenant_id`        bigint NOT NULL COMMENT '租户id',
    `create_time`      datetime        DEFAULT NULL COMMENT '录入时间',
    `update_time`      datetime        DEFAULT NULL COMMENT '更新时间',
    `drag_sort`        int             DEFAULT NULL COMMENT '拖动排序',
    `is_quality`       tinyint(1)      DEFAULT '1' COMMENT '是否质检工序',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_order_id` (`order_id`)
) ENGINE = InnoDB
  AUTO_INCREMENT = 83
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_0900_ai_ci
  ROW_FORMAT = DYNAMIC
    COMMENT ='生产订单绑定的工艺路线--工序表';
CREATE TABLE `production_order_route_item_param`
(
    `id`               bigint                                                        NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `order_id`         bigint                                                                 DEFAULT NULL COMMENT '生产订单ID',
    `route_item_id`    bigint                                                        NOT NULL COMMENT '关联工艺路线明细ID (production_order_route_item.id)',
    `process_param_id` bigint                                                                 DEFAULT NULL COMMENT '来源工序参数ID',
    `param_key`        varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci          DEFAULT NULL COMMENT '参数唯一标识',
    `param_name`       varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '参数名称',
    `param_type`       tinyint                                                       NOT NULL COMMENT '参数类型(1数字 2文本 3下拉选择 4时间)',
    `param_format`     varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci          DEFAULT NULL COMMENT '参数格式',
    `value_mode`       tinyint                                                                DEFAULT '1' COMMENT '值模式(1单值 2区间)',
    `unit`             varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci           DEFAULT NULL COMMENT '单位',
    `remark`           varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci          DEFAULT NULL COMMENT '备注',
    `standard_value`   varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci          DEFAULT NULL COMMENT '标准值',
    `min_value`        decimal(10, 2)                                                         DEFAULT NULL COMMENT '此路线节点设定的标准最小值',
    `max_value`        decimal(10, 2)                                                         DEFAULT NULL COMMENT '此路线节点设定的标准最大值',
    `is_required`      tinyint                                                       NOT NULL DEFAULT '0' COMMENT '是否必填',
    `sort`             int                                                           NOT NULL DEFAULT '0' COMMENT '排序',
    `tenant_id`        bigint                                                                 DEFAULT NULL COMMENT '租户ID',
    `create_time`      datetime                                                               DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time`      datetime                                                               DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_route_item_id` (`route_item_id`) USING BTREE,
    KEY `idx_param_key` (`param_key`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_0900_ai_ci
  ROW_FORMAT = DYNAMIC
    COMMENT ='生产订单绑定的工艺路线工序--参数表';
CREATE TABLE `production_order_structure`
(
    `id`                bigint         NOT NULL AUTO_INCREMENT,
    `order_id`          bigint         NOT NULL COMMENT '生产订单id',
    `parent_id`         bigint                                                        DEFAULT NULL COMMENT '父节点ID',
    `product_model_id`  bigint                                                        DEFAULT NULL COMMENT '产品id',
    `process_id`        bigint                                                        DEFAULT NULL COMMENT '工序id',
    `unit_quantity`     decimal(16, 4) NOT NULL COMMENT '单位产出需要数量',
    `demanded_quantity` decimal(16, 4)                                                DEFAULT NULL COMMENT '需求数量',
    `unit`              varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '单位',
    `tenant_id`         bigint                                                        DEFAULT NULL COMMENT '租户id',
    `bom_id`            bigint         NOT NULL COMMENT 'bom的id',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_order_id` (`order_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_0900_ai_ci
  ROW_FORMAT = DYNAMIC
    COMMENT ='生产订单绑定的BOM子表';
DROP TABLE IF EXISTS process_route_item_instance;
DROP TABLE IF EXISTS process_route_item_param_instance;
DROP TABLE IF EXISTS product_structure_instance;
ALTER TABLE `product-inventory-management-zsjc`.`production_product_route_item_param`
    MODIFY COLUMN `order_item_param_id` bigint NULL DEFAULT NULL COMMENT '生产订单绑定的工艺路线工序--参数表ID' AFTER `production_product_route_item_id`;
CREATE TABLE `production_product_input`
(
    `id`              bigint          NOT NULL AUTO_INCREMENT,
    `product_main_id` bigint          NOT NULL COMMENT '报工单主表ID',
    `route_item_id`   bigint      DEFAULT NULL COMMENT '关联具体的报工工序ID (对应原参数表的关联ID)',
    `product_id`      bigint          NOT NULL COMMENT '产品/物料ID',
    `bom_id`          bigint      DEFAULT NULL COMMENT 'BOM ID',
    `quantity`        decimal(30, 15) NOT NULL COMMENT '投入数量 (对应原product_value)',
    `unit`            varchar(20) DEFAULT NULL COMMENT '单位',
    `create_user`     bigint      DEFAULT NULL COMMENT '录入人',
    `create_time`     datetime    DEFAULT CURRENT_TIMESTAMP COMMENT '录入时间',
    `update_time`     datetime    DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `tenant_id`       bigint          NOT NULL COMMENT '租户ID',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_main_id` (`product_main_id`),
    KEY `idx_product_id` (`product_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_general_ci COMMENT ='生产报工物料投入表';
ALTER TABLE `production_product_route_item_param`
    DROP COLUMN `product_id`,
    DROP COLUMN `bom_id`,
    DROP COLUMN `product_value`,
    DROP COLUMN `dict_code`;
ALTER TABLE `product-inventory-management-zsjc`.`production_product_output`
    ADD COLUMN `total_quantity` decimal(20, 15) NULL COMMENT '总数量' AFTER `scrap_qty`;
CREATE TABLE `production_order_route`
(
    `id`                 bigint                                                        NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `order_id`           bigint                                                        NOT NULL COMMENT '关联生产订单ID (production_order.id)',
    `process_route_id`   bigint                                                                 DEFAULT NULL COMMENT '原始工艺路线ID (process_route.id)',
    `product_model_id`   bigint                                                                 DEFAULT '0' COMMENT '产品id',
    `process_route_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci          DEFAULT NULL COMMENT '工艺路线编码',
    `bom_id`             int                                                                    DEFAULT NULL COMMENT '关联bom的id',
    `dict_code`          bigint                                                        NOT NULL COMMENT '产品类型字典编码',
    `description`        varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '描述',
    `tenant_id`          bigint                                                        NOT NULL COMMENT '租户id',
    `create_by`          varchar(64)                                                            DEFAULT '' COMMENT '创建者',
    `create_time`        datetime                                                               DEFAULT NULL COMMENT '录入时间',
    `update_by`          varchar(64)                                                            DEFAULT '' COMMENT '更新者',
    `update_time`        datetime                                                               DEFAULT NULL COMMENT '更新时间',
    `remark`             varchar(500)                                                           DEFAULT NULL COMMENT '备注',
    PRIMARY KEY (`id`) USING BTREE,
    KEY `idx_order_id` (`order_id`) USING BTREE
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_0900_ai_ci COMMENT ='生产订单绑定的工艺路线表';
CREATE TABLE `production_settlement_batches`
(
    `id`          bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `period_time` date         DEFAULT NULL COMMENT '核算归属月份',
    `batch_name`  varchar(255) DEFAULT NULL COMMENT '批次名称',
    `status`      int          DEFAULT '0' COMMENT '状态:0-仅预算,1-结算计算中,2-已完成结算,3-已锁定',
    `create_user` varchar(255) DEFAULT NULL COMMENT '导入用户',
    `create_time` datetime     DEFAULT CURRENT_TIMESTAMP COMMENT '创建日期',
    `tenant_id`   bigint       DEFAULT NULL COMMENT '租户ID',
    PRIMARY KEY (`id`),
    KEY `idx_period` (`period_time`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='生产成本核算批次主表';
CREATE TABLE `production_settlement_details`
(
    `id`           bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
    `batch_id`     bigint NOT NULL COMMENT '关联核算批次表ID',
    `product_id`   bigint          DEFAULT NULL COMMENT '产品ID',
    `product_type` varchar(100)    DEFAULT NULL COMMENT '产品类型名称',
    `category`     varchar(100)    DEFAULT NULL COMMENT '费用类别',
    `subject_name` varchar(100)    DEFAULT NULL COMMENT '科目名称',
    `budget_qty`   decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '预算耗量',
    `budget_price` decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '预算单价',
    `budget_total` decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '预算总成本',
    `actual_qty`   decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '实际耗量',
    `actual_price` decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '实际单价',
    `actual_total` decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '实际总成本',
    `diff_qty`     decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '耗量差异',
    `diff_price`   decimal(20, 15) DEFAULT '0.000000000000000' COMMENT '单价差异',
    `diff_total`   DECIMAL(20, 15) DEFAULT '0.000000000000000' COMMENT '总成本差异',
    `tenant_id`    bigint          DEFAULT NULL COMMENT '租户ID',
    PRIMARY KEY (`id`),
    KEY `idx_batch_id` (`batch_id`),
    KEY `idx_product_id` (`product_id`) COMMENT '方便按产品查询历史成本对比'
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4 COMMENT ='生产成本核算对比明细表';