
-- 供应商信息表  新增供应商分级、结算方式、账单周期天数、采购对接人、到货天数、发票类型、合同附件
ALTER TABLE jsh_supplier
ADD COLUMN supplier_level VARCHAR(255) DEFAULT '' COMMENT '供应商分级',
ADD COLUMN settlement_method VARCHAR(1) DEFAULT '' COMMENT '结算方式（0-周结, 1-现结/按单, 2-预付款, 3-月结）',
ADD COLUMN billing_cycle_days INT DEFAULT NULL COMMENT '账单周期天数（单位：天）',
ADD COLUMN procurement_contact VARCHAR(100) DEFAULT '' COMMENT '采购对接人姓名',
ADD COLUMN delivery_days INT DEFAULT NULL COMMENT '到货天数（单位：天）',
ADD COLUMN invoice_type VARCHAR(1)  DEFAULT '' COMMENT '发票类型：0-普通发票, 1-增值税专用发票',
ADD COLUMN contract_upload VARCHAR(1000) DEFAULT '' COMMENT '合同附件存储路径';


-- 产品信息表  新增系统sku、无动销提醒周期
ALTER TABLE jsh_material
ADD COLUMN system_sku VARCHAR(50) DEFAULT '' COMMENT '系统sku',
ADD COLUMN moving_pin_reminder_cycle VARCHAR(20) DEFAULT '' COMMENT '无动销提醒周期';

-- 产品信息表  删除制造商、保质期天数、仓位货架
ALTER TABLE jsh_material
DROP mfrs,
DROP expiry_num,
DROP position;

-- 产品价格扩展信息表  新增生产日期、保质期天数、供应商id、批次号、库存、仓库id、仓位货架
ALTER TABLE jsh_material_extend
ADD COLUMN production_date DATE DEFAULT NULL COMMENT '生产日期',
ADD COLUMN expiry_num INT DEFAULT NULL COMMENT '保质期天数',
ADD COLUMN supplier_id BIGINT DEFAULT NULL COMMENT '供应商id',
ADD COLUMN batch_number VARCHAR(255) DEFAULT '' COMMENT '批次号',
ADD COLUMN inventory DECIMAL(24,6) DEFAULT NULL COMMENT '库存',
ADD COLUMN depot_id BIGINT DEFAULT NULL COMMENT '仓库id',
ADD COLUMN position VARCHAR(255) DEFAULT '' COMMENT '仓位货架';

-- 单据主表  新增凭证图片、商品数量、商品总类数量
ALTER TABLE jsh_depot_head
ADD COLUMN voucher_picture VARCHAR(255) DEFAULT '' COMMENT '凭证图片',
ADD COLUMN goods_quantity INT DEFAULT NULL COMMENT '商品数量',
ADD COLUMN goods_type_count INT DEFAULT NULL COMMENT '商品总类数量';

-- 单据子表  新增实际出入库数量、出入库差异、出入库差异原因、出入库操作用户、出入库时间
ALTER TABLE jsh_depot_item
ADD COLUMN actual_quantity_in_storage DECIMAL(24,6) DEFAULT NULL COMMENT '实际出入库数量',
ADD COLUMN warehousing_variance DECIMAL(24,6) DEFAULT NULL COMMENT '出入库差异',
ADD COLUMN reason_of_difference VARCHAR(255) DEFAULT '' COMMENT '出入库差异原因',
ADD COLUMN warehousing_user BIGINT DEFAULT NULL COMMENT '出入库操作用户',
ADD COLUMN warehousing_time DATE DEFAULT NULL COMMENT '出入库时间';

-- 修改产品类型编码为BIGINT
ALTER TABLE jsh_material_category MODIFY COLUMN serial_no BIGINT;

CREATE TABLE `task_stocktaking` (
    `id` bigint NOT NULL COMMENT '主键ID',
    `task_name` varchar(255) DEFAULT NULL COMMENT '任务名称',
    `creator` bigint DEFAULT NULL COMMENT '负责人',
    `create_by` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '创建人',
    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
    `task_type` varchar(255) DEFAULT NULL COMMENT '任务类型',
    `depot_id` bigint DEFAULT NULL COMMENT '仓库ID',
    `number` varchar(255) DEFAULT NULL COMMENT '任务单号',
    `category_count` int DEFAULT NULL COMMENT '种类数',
    `material_count` int DEFAULT NULL COMMENT '商品数',
    `task_status` int DEFAULT NULL COMMENT '任务状态',
    `position_range` varchar(255) DEFAULT NULL COMMENT '库位范围',
    `delete_flag` tinyint DEFAULT NULL COMMENT '删除标志（0:否，1是）',
    `oper_time` datetime DEFAULT NULL COMMENT '盘点时间',
    `oper_by` bigint DEFAULT NULL COMMENT '盘点人',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='盘点任务表';

ALTER TABLE jsh_depot_head
    ADD COLUMN link_tesco varchar(50) DEFAULT '' COMMENT '集采订单编号',
    ADD COLUMN receiver_name VARCHAR(255) DEFAULT '' COMMENT '收货人',
    ADD COLUMN receiver_phone VARCHAR(20) DEFAULT '' COMMENT '收货人电话',
    ADD COLUMN receiver_address VARCHAR(255) DEFAULT '' COMMENT '收货地址';

CREATE TABLE `task_stocktaking_item` (
    `id` bigint NOT NULL COMMENT '主键ID',
    `task_stocktaking_id` bigint DEFAULT NULL COMMENT '任务ID',
    `material_item_id` bigint DEFAULT NULL COMMENT '商品ID',
    `creator` bigint DEFAULT NULL COMMENT '操作人',
    `new_position` varchar(255) DEFAULT NULL COMMENT '新仓位货架',
    `new_inventory` decimal(24,6) DEFAULT NULL COMMENT '新库存数',
    `difference_count` int DEFAULT NULL COMMENT '差异数量',
    `difference_reason` varchar(255) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT NULL COMMENT '差异原因',
    `delete_flag` varchar(1) CHARACTER SET utf8mb3 COLLATE utf8mb3_general_ci DEFAULT '0' COMMENT '删除标记，0未删除，1删除',
    `oper_time` datetime DEFAULT NULL COMMENT '操作时间',
    `status` int DEFAULT '1' COMMENT '盘点状态（1.未盘，2.盘盈，3.盘亏 4.无差异）',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='盘点任务关联商品表';

-- 库存修改日志表
DROP TABLE IF EXISTS `jsh_inventory_log`;
CREATE TABLE `jsh_inventory_log` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `type` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '商品修改' COMMENT '操作类型',
  `item_id` bigint DEFAULT NULL COMMENT '单据、盘点子表id',
  `material_id` bigint DEFAULT NULL COMMENT '商品id',
  `material_extend_id` bigint DEFAULT NULL COMMENT '商品子表id',
  `original_stock` int DEFAULT NULL COMMENT '原始库存',
  `current_stock` int DEFAULT NULL COMMENT '当前库存',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `update_user` bigint DEFAULT NULL COMMENT '更新用户',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='库存修改日志表';

CREATE TABLE `apk_version` (
    `id` bigint NOT NULL COMMENT '主键ID',
    `url` varchar(255) DEFAULT NULL COMMENT '下载地址',
    `version` varchar(255) DEFAULT NULL COMMENT '版本号',
    `name` varchar(255) DEFAULT NULL COMMENT '名称',
    `create_time` datetime DEFAULT NULL COMMENT '创建时间',
    `delete_flag` tinyint DEFAULT NULL COMMENT '是否删除',
    PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3;

ALTER TABLE jsh_depot_head
ADD COLUMN depot_id bigint DEFAULT NULL COMMENT '仓库id',
ADD COLUMN oper_id bigint DEFAULT NULL COMMENT '操作人';

-- 单据子表  新增创建时间
ALTER TABLE jsh_depot_item
ADD COLUMN create_time DATETIME DEFAULT NULL COMMENT '创建时间';

-- 单据主表 修改文件，凭证，价格，数量图片类型
ALTER TABLE jsh_depot_head
  MODIFY file_name TEXT DEFAULT NULL COMMENT '附件名称',
  MODIFY voucher_picture TEXT DEFAULT NULL COMMENT '凭证图片',
  MODIFY change_amount DECIMAL(24,2) DEFAULT NULL COMMENT '变动金额(收款/付款)',
  MODIFY back_amount DECIMAL(24,2) DEFAULT NULL COMMENT '找零金额',
  MODIFY total_price DECIMAL(24,2) DEFAULT NULL COMMENT '合计金额',
  MODIFY discount_money DECIMAL(24,2) DEFAULT NULL COMMENT '优惠金额',
  MODIFY discount_last_money DECIMAL(24,2) DEFAULT NULL COMMENT '优惠后金额',
  MODIFY other_money DECIMAL(24,2) DEFAULT NULL COMMENT '销售或采购费用合计',
  MODIFY deposit DECIMAL(24,2) DEFAULT NULL COMMENT '订金';

-- 单据子表  修改数量、价格类型
ALTER TABLE jsh_depot_item
  MODIFY oper_number DECIMAL(24,0) DEFAULT NULL COMMENT '数量',
  MODIFY basic_number DECIMAL(24,0) DEFAULT NULL COMMENT '基础数量',
  MODIFY unit_price DECIMAL(24,2) DEFAULT NULL COMMENT '单价',
  MODIFY purchase_unit_price DECIMAL(24,2) DEFAULT NULL COMMENT '采购单价',
  MODIFY tax_unit_price DECIMAL(24,2) DEFAULT NULL COMMENT '含税单价',
  MODIFY all_price DECIMAL(24,2) DEFAULT NULL COMMENT '金额',
  MODIFY tax_money DECIMAL(24,2) DEFAULT NULL COMMENT '税额',
  MODIFY tax_last_money DECIMAL(24,2) DEFAULT NULL COMMENT '价税合计',
  MODIFY actual_quantity_in_storage DECIMAL(10,0) DEFAULT NULL COMMENT '实际出入库数量',
  MODIFY warehousing_variance DECIMAL(10,0) DEFAULT NULL COMMENT '出入库差异';

-- 商品主表 修改商品图片、重量类型
ALTER TABLE jsh_material
  MODIFY img_name TEXT DEFAULT NULL COMMENT '图片名称',
  MODIFY weight DECIMAL(24,2) DEFAULT NULL COMMENT '基础重量(kg)';

-- 商品子表 修改价格,库存类型
ALTER TABLE jsh_material_extend
  MODIFY purchase_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '采购价格',
  MODIFY commodity_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '零售价格',
  MODIFY wholesale_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '销售价格',
  MODIFY low_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '最低售价',
  MODIFY inventory DECIMAL(10,0) DEFAULT 0 COMMENT '库存';

-- 初始库存表 修改库存类型
ALTER TABLE jsh_material_initial_stock
  MODIFY number DECIMAL(24,0) DEFAULT NULL COMMENT '初始库存数量',
  MODIFY low_safe_stock DECIMAL(24,0) DEFAULT NULL COMMENT '最低库存数量',
  MODIFY high_safe_stock DECIMAL(24,0) DEFAULT NULL COMMENT '最高库存数量';

-- 当前库存表 修改价格、库存类型
ALTER TABLE jsh_material_current_stock
  MODIFY current_number DECIMAL(24,0) DEFAULT NULL COMMENT '当前库存数量',
  MODIFY current_unit_price DECIMAL(24,2) DEFAULT NULL COMMENT '当前价格';

-- 单据主表 新增提交时间
ALTER TABLE jsh_depot_head
  ADD COLUMN submit_time DATETIME DEFAULT NULL COMMENT '提交时间';

-- 单据子表  新增生产日期、保质期天数、仓位货架、销售价格
ALTER TABLE jsh_depot_item
  ADD COLUMN production_date DATETIME DEFAULT NULL COMMENT '生产日期',
  ADD COLUMN expiry_num INT DEFAULT NULL COMMENT '保质期天数',
  ADD COLUMN position VARCHAR(255) DEFAULT NULL COMMENT '仓位货架',
  ADD COLUMN wholesale_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '销售价格';

-- 商品子表 新增单位比例
ALTER TABLE jsh_material_extend
  ADD COLUMN ratio INT DEFAULT 1 COMMENT '单位比例';

-- 初始库存表 新增仓位货架
ALTER TABLE jsh_material_initial_stock
  ADD COLUMN position VARCHAR(255) DEFAULT NULL COMMENT '仓位货架';

-- 商品批次信息表
DROP TABLE IF EXISTS `material_batch`;
CREATE TABLE `material_batch` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
  `material_id` bigint DEFAULT NULL COMMENT '商品id',
  `commodity_unit` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '商品单位',
  `sku` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '多属性',
  `purchase_decimal` decimal(24,2) DEFAULT NULL COMMENT '采购价格',
  `commodity_decimal` decimal(24,2) DEFAULT NULL COMMENT '零售价格',
  `wholesale_decimal` decimal(24,2) DEFAULT NULL COMMENT '销售价格',
  `low_decimal` decimal(24,2) DEFAULT NULL COMMENT '最低售价',
  `default_flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '1' COMMENT '是否为默认单位，1是，0否',
  `create_time` datetime DEFAULT NULL COMMENT '创建日期',
  `create_serial` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '创建人编码',
  `update_serial` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '更新人编码',
  `update_time` bigint DEFAULT NULL COMMENT '更新时间戳',
  `tenant_id` bigint DEFAULT NULL COMMENT '租户id',
  `delete_Flag` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '0' COMMENT '删除标记，0未删除，1删除',
  `production_date` datetime DEFAULT NULL COMMENT '生产日期',
  `expiry_num` int DEFAULT NULL COMMENT '保质期天数',
  `supplier_id` bigint DEFAULT NULL COMMENT '供应商id',
  `bar_code` varchar(50) DEFAULT NULL COMMENT '商品条码',
  `batch_number` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT '' COMMENT '批次号',
  `inventory` decimal(10,0) DEFAULT '0' COMMENT 'inventory',
  `depot_id` bigint DEFAULT NULL COMMENT '仓库id',
  `position` varchar(255) DEFAULT NULL COMMENT '仓位货架',
  `depot_item_id` bigint DEFAULT NULL COMMENT '单据id',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='商品批次信息表';

-- 产品类型表 新增有效期阈值
ALTER TABLE jsh_material_category
  ADD COLUMN expiry_threshold INT DEFAULT NULL COMMENT '有效期阈值';

-- 产品信息表  新增保质期天数,默认采购价,默认销售价
ALTER TABLE jsh_material
  ADD COLUMN expiry_num INT DEFAULT NULL COMMENT '保质期天数',
  ADD COLUMN default_purchase_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '默认采购价格',
  ADD COLUMN default_wholesale_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '默认销售价格',
  ADD COLUMN reminder VARCHAR(255) DEFAULT NULL COMMENT '商品提醒';


-- 供应商信息表  新增供应商编码,是否支持售后,售后规则
ALTER TABLE jsh_supplier
  ADD COLUMN serial_no VARCHAR(50) DEFAULT NULL COMMENT '供应商编码',
  ADD COLUMN is_after_sales VARCHAR(1) DEFAULT NULL COMMENT '是否支持售后 (1是0否)',
  ADD COLUMN after_sales_rules VARCHAR(1000) DEFAULT NULL COMMENT '售后规则';

-- 单据主表 新增复核
ALTER TABLE jsh_depot_head
  ADD COLUMN auditor BIGINT DEFAULT NULL COMMENT '复核人员',
  ADD COLUMN tax_rate DECIMAL(24,6) DEFAULT NULL COMMENT '税率';

-- 商品批次 新增商品拓展id
ALTER TABLE material_batch
  ADD COLUMN material_extend_id BIGINT DEFAULT NULL COMMENT '商品拓展id';

-- 2025-05-21 编号表添加供应商编号
INSERT INTO `jsh_sequence` (`seq_name`, `min_value`, `max_value`, `current_val`, `increment_val`, `remark`) VALUES ('supplier_number_seq', '1', '999999999999999999', '1', '1', '供应商编号sequence');












