CREATE TABLE `mdm_machine_group` (
  `id` bigint NOT NULL COMMENT '主键',
  `tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户ID',
  `name` varchar(20) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '机床组名称',
  `code` varchar(20) CHARACTER SET utf8mb4 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`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci COMMENT='机床组';


CREATE TABLE `mdm_machine` (
  `id` bigint NOT NULL,
  `tenant_id` varchar(6) DEFAULT NULL COMMENT '所属租户',
  `code` varchar(100) NOT NULL COMMENT '机床编号',
  `name` varchar(100) NOT NULL COMMENT '机床描述/型号',
  `avatar` varchar(400) DEFAULT NULL COMMENT '图片地址',
  `machine_group_code` varchar(255) NOT NULL COMMENT '所属机床组代码，,在业务字典配置（key=machine_group）',
  `machine_spec` varchar(20) DEFAULT NULL COMMENT '机器规格:01车床/02铣床,在业务字典配置（key=machine_spec）',
  `operator` varchar(100)  COMMENT '操作员，文本录入',
  `owner_dept` bigint DEFAULT NULL COMMENT '所属单位/组织',
  `manufacturer` varchar(100)  COMMENT '生产商',
  `polling_hours` int(11) COMMENT '检查程序回传的轮询时间（小时）',
  `control_system` varchar(20) DEFAULT NULL COMMENT '控制系统（如发那科），在业务字典配置(key=machine_controll_system)，使用英文字母',
  `prog_send_dir` varchar(100)  COMMENT '程序下发目录',
  `prog_receive_dir` varchar(100)  COMMENT '程序回传目录',
  `remark` varchar(200)  COMMENT '备注',
  `status` int DEFAULT NULL COMMENT '业务状态，1：启用；0禁用',
  `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
  `is_deleted` int DEFAULT NULL,
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_user` bigint DEFAULT NULL COMMENT '创建人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_user` bigint DEFAULT NULL COMMENT '更新人',
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE KEY `uniqueCodeIndex` (`code`,`is_deleted`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci  ROW_FORMAT=DYNAMIC COMMENT='机床';

CREATE TABLE `mdm_produce_division` (
    `id` bigint NOT NULL,
    `team_leader_id` bigint NOT NULL COMMENT '专业组长账号',
    `programmer_id` bigint NOT NULL COMMENT '编制员账号',
    `checker_id` bigint NOT NULL COMMENT '校对员账号（工艺员角色）',
    `senior_id` bigint NOT NULL COMMENT '审批高师账号',

	`tenant_id` varchar(12) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '000000' COMMENT '租户ID',
    `status` int DEFAULT NULL COMMENT '业务状态',
    `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
    `is_deleted` int DEFAULT 0,
    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
    `create_user` bigint DEFAULT NULL COMMENT '创建人',
    `update_time` datetime DEFAULT NULL COMMENT '更新时间',
    `update_user` bigint DEFAULT NULL COMMENT '更新人',
    PRIMARY KEY (`id`) USING BTREE,
    UNIQUE KEY `uniqueCheckIndex` (`team_leader_id`,`programmer_id`,`checker_id`,`senior_id`,`is_deleted`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci  ROW_FORMAT=DYNAMIC COMMENT='主制计划表';

DROP TABLE IF EXISTS `mdm_nc_node`;
CREATE TABLE `mdm_nc_node` (
   `id` bigint NOT NULL,
   `tenant_id` varchar(6) DEFAULT NULL COMMENT '所属租户',
   `name` varchar(100) NOT NULL COMMENT '节点名称',
   `process_name` varchar(20) NULL COMMENT '工序名称',
   `machine_code` varchar(100) DEFAULT NULL COMMENT '设备编号/机床编号',
   `part_no` varchar(100) NULL COMMENT '零组件编号/图号',
   `is_cured` int DEFAULT NULL COMMENT '是否固化,1是;0否',
   `expire_date` date DEFAULT NULL COMMENT '到期时间,根据有效期时长计算而来',
   `process_edition` varchar(40) DEFAULT NULL COMMENT '工序版次，升版就是变更改该字段，需要保留历史记录',
   `description` varchar(100) NOT NULL COMMENT '描述',
   `remark` varchar(200) NOT NULL COMMENT '备注',
   `parent_id` bigint DEFAULT NULL COMMENT '上级节点ID',
   `parent_ids` varchar(100) DEFAULT NULL COMMENT '上级节点ID集合，id逗号分隔',
   `node_type` varchar(20) DEFAULT NULL COMMENT '节点类型：业务字典定义',
   `status` int DEFAULT NULL COMMENT '业务状态',
   `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
   `is_deleted` int DEFAULT NULL,
   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
   `create_user` bigint DEFAULT NULL COMMENT '创建人',
   `update_time` datetime DEFAULT NULL COMMENT '更新时间',
   `update_user` bigint DEFAULT NULL COMMENT '更新人',
   PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='程序节点目录';

/**流程实例与节点关联表，记录创建时机：用户在程序编制节点手动关联*/
DROP TABLE IF EXISTS `mdm_process_prog_ref`;
CREATE TABLE `mdm_process_prog_ref` (
  `id` bigint NOT NULL,
  `tenant_id` varchar(6) DEFAULT NULL COMMENT '所属租户',
  `process_instance_id` varchar(64) NOT NULL COMMENT '流程实例id',
  `nc_program_id` bigint DEFAULT NULL COMMENT '数控程序id',
  `status` int DEFAULT NULL COMMENT '业务状态',
  `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
  `is_deleted` int DEFAULT NULL,
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_user` bigint DEFAULT NULL COMMENT '创建人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_user` bigint DEFAULT NULL COMMENT '更新人',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='流程实例与程序关联表';

DROP TABLE IF EXISTS `mdm_nc_program`;
CREATE TABLE `mdm_nc_program` (
  `id` bigint NOT NULL,
  `tenant_id` varchar(6) DEFAULT NULL COMMENT '所属租户',
  `nc_node_id` bigint DEFAULT NULL COMMENT '所属节点id，应该属于某个数控程序节点',
  `code` varchar(100) NULL COMMENT '程序编号',
  `name` varchar(100) NOT NULL COMMENT '程序名称',
  `oss_name` varchar(100) NULL COMMENT 'oss中的文件名',
  `category` varchar(2) NULL COMMENT '文件分类',
  `process_name` varchar(20) NULL COMMENT '工序名称',
  `remark` varchar(100) NULL COMMENT '备注',
  `is_text_file` int DEFAULT NULL COMMENT '是否文本文件',
  `url` varchar(400) NOT NULL COMMENT '文件地址',
  `machine_code` varchar(100) DEFAULT NULL COMMENT '设备编号/机床编号',
  `part_no` varchar(100) NULL COMMENT '零组件编号/图号',
  `is_cured` int DEFAULT NULL COMMENT '是否固化,1是;0否',
  `expire_date` date DEFAULT NULL COMMENT '到期时间,根据有效期时长计算而来',
  `process_edition` varchar(40) DEFAULT NULL COMMENT '工序版次，升版就是变更改该字段，需要保留历史记录',
  `is_last_edition` int NOT NULL COMMENT '是否最新版次，1：最新版次；0:历史版次，主要取该字段=1的数据，0是历史版次',
  `is_locked` int DEFAULT NULL COMMENT '锁定状态，1：锁定；0:正常',
  `is_test` int DEFAULT NULL COMMENT '是否测试程序，1：是；0:否',
  `task_assign_time` datetime DEFAULT NULL COMMENT '程序的任务下发的时间（用于检查是否为重复的任务）',
  `status` int DEFAULT NULL COMMENT '业务状态',
  `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
  `is_deleted` int DEFAULT NULL,
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_user` bigint DEFAULT NULL COMMENT '创建人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_user` bigint DEFAULT NULL COMMENT '更新人',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='数控程序';


DROP TABLE IF EXISTS `mdm_nc_program_approved`;
CREATE TABLE `mdm_nc_program_approved` (
   `id` bigint NOT NULL,
   `tenant_id` varchar(6) DEFAULT NULL COMMENT '所属租户',
   `program_name` varchar(100) NOT NULL COMMENT '程序名称',
   `program_id` bigint NOT NULL COMMENT '程序id,指向最新的程序记录',
   `status` int DEFAULT NULL COMMENT '业务状态',
   `exchange_type` int DEFAULT NULL COMMENT '交换类型,1:下发;2:固化(dnc回传)',
   `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
   `is_deleted` int DEFAULT NULL,
   `create_time` datetime DEFAULT NULL COMMENT '创建时间',
   `create_user` bigint DEFAULT NULL COMMENT '创建人',
   `update_time` datetime DEFAULT NULL COMMENT '更新时间',
   `update_user` bigint DEFAULT NULL COMMENT '更新人',
   PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='数控程序审批表';



DROP TABLE IF EXISTS `mdm_nc_program_exchange`;
CREATE TABLE `mdm_nc_program_exchange` (
  `id` bigint NOT NULL,
  `tenant_id` varchar(6) DEFAULT NULL COMMENT '所属租户',
  `name` varchar(100) NOT NULL COMMENT '程序名称',
  `status` int DEFAULT NULL COMMENT '业务状态',
  `exchange_type` int DEFAULT NULL COMMENT '交换类型,1:下发;2:固化(dnc回传)',
  `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
  `is_deleted` int DEFAULT NULL,
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `create_user` bigint DEFAULT NULL COMMENT '创建人',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_user` bigint DEFAULT NULL COMMENT '更新人',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='数控程序交换记录';



DROP TABLE IF EXISTS `mdm_machine_back_file`;
CREATE TABLE `mdm_machine_back_file` (
    `id` bigint NOT NULL,
    `program_id` varchar(255) NOT NULL COMMENT '程序编码',
    `machine_code` bigint DEFAULT NULL COMMENT '所属机床代码',
    `confirm_time` datetime DEFAULT NULL COMMENT '确认时间',

    `status` int DEFAULT NULL COMMENT '业务状态',


    `create_dept` bigint DEFAULT NULL COMMENT '创建单位',
    `is_deleted` int DEFAULT NULL,

    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
    `create_user` bigint DEFAULT NULL COMMENT '创建人',
    `update_time` datetime DEFAULT NULL COMMENT '更新时间',
    `update_user` bigint DEFAULT NULL COMMENT '更新人',
  PRIMARY KEY (`id`) USING BTREE

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='机床回传文件';

