<?xml version="1.0" encoding="UTF-8"?>
<!-- 配置说明： 节点<abacus> 属性[id]，系统唯一标识 数据库语法翻译器属性[translator]，配置为“false”，则不开启对各个数据库的翻译功能，不配置或配置其他值默认为“true”; 
	当[translator]为true时，升级sql使用mssqlserver数据库的语法进行配置；列如，ERP的各个系统，需要满足不同数据库的部署需求； 
	当[translator]为false时，升级sql使用那种数据库语法由开发者自己指定；例如，云商城相关各个系统，直接使用MySQL语法进行配置； 
	<abacus translator="true"> 节点<upgrade>，配置每个版本的升级sql，版本属性[version]，值格式“yyyy-MM-dd”或"yyyy-MM-dd.count", 
	count代表次数，如日期相同，则对比次数 <upgrade id="example" version="2022-03-03"> 节点<sql>，配置该版本需要执行的sql，每条sql使用符号“;”分隔 
	<sql></sql> 以下为可选配置，并且晚于节点<sql>中的sql执行： 节点<oracle>，指定oracle数据库专用sql，例如有oracle专用关键字的sql 
	<oracle></oracle> 节点<sybase>，指定sybase数据库专用sql，例如有sybase专用关键字的sql <sybase></sybase> 
	节点<mysql>，指定mysql数据库专用sql，例如有mysql专用关键字的sql <mysql></mysql> </upgrade> </abacus> 
	注意事项： 1、应用第一次部署时，以当天日期作为初始版本 2、当一次升级有多个版本升级sql需要执行时，会以version值升序排序，从上到下执行 
	3、更新sql尽量配置产品功能升级的常规sql，例如建表、新增字段等等。 需要大量调整数据的sql、带有逻辑调整数据的sql、使用了列存储索引的表，单独联系项目人员执行。 
	4、不建议建表或者新增字段时使用“default”默认一个值，mssqlserver删除或者修改字段时，会因为DF约束执行失败，最好由程序指定默认值 
	5、自增关键字identity固定放在字段类型后面，否则在sybase数据库会执行失败 6、翻译器现支持mssqlserver转mysql、oracle、sybase的部分语法，具体语法参考语法测试用例 -->
<abacus id="example" translator="true">
	<upgrade version="2026-08-18.2">
		<sql>
			-- 稽查主单
			create table jc_bill (
			id varchar(20) not null,
			version int not null,
			status int default (1) null,
			goods varchar(120) null,
			warehouse varchar(20) null,
			warehousename varchar(120) null,
			receivedt varchar(10) null,
			quantity decimal(30,8) null,
			subtotal decimal(30,2) null,
			billin varchar(20) null,
			billindt datetime null,
			applicant varchar(20) null,
			applicantname varchar(120) null,
			applicantdt datetime null,
			dt datetime default current_timestamp not null,
			constraint pk_jc_bill primary key (id)
			);
			create index jc_bill_search on jc_bill(id, applicant, status, goods,
			applicantdt, dt);
			create index jc_bill_id on jc_bill(id, goods, dt);
			create index jc_bill_dt on jc_bill(dt);

			-- 稽查明细
			create table jc_billsource_item (
			id bigint auto_increment not null primary key, -- 自增长编码
			version int not null,
			indexno int null,
			billid varchar(20) not null,
			status int default (1) null,
			recsource varchar(20) null,
			recplatform varchar(20) null,
			channel varchar(60) null,
			price decimal(30,8) null,
			quantity decimal(30,8) null,
			numbers decimal(30,8) null,
			subtotal decimal(30,2) null,
			goodsid varchar(20) null,
			logisticsid varchar(60) null,
			billout varchar(600) null,
			billoutdt datetime null,
			billoutwh varchar(20) null,
			billoutwhname varchar(60) null,
			product varchar(20) null,
			productname varchar(200) null,
			account varchar(20) null,
			accountname varchar(200) null,
			operator varchar(20) null,
			operatorname varchar(60) null,
			groupid varchar(20) null,
			groupname varchar(60) null,
			salearea varchar(20) null,
			saleareaname varchar(60) null,
			source varchar(20) null,
			reason varchar(300) null,
			dt datetime default current_timestamp not null
			);
			create index jc_billsource_item_billid on jc_billsource_item(billid);

			-- 溯源明细
			create table jc_source_item (
			id bigint auto_increment not null primary key, -- 自增长编码
			version int not null,
			billid varchar(20) not null,
			srcitemid varchar(20) not null,
			status int default (0) null,
			goodsid varchar(20) null,
			logisticsid varchar(60) null,
			billout varchar(20) null,
			billoutdt datetime null,
			billoutwh varchar(20) null,
			billoutwhname varchar(60) null,
			product varchar(20) null,
			productname varchar(200) null,
			account varchar(20) null,
			accountname varchar(200) null,
			operator varchar(20) null,
			operatorname varchar(60) null,
			groupid varchar(20) null,
			groupname varchar(60) null,
			salearea varchar(20) null,
			saleareaname varchar(60) null,
			source varchar(20) null,
			dt datetime default current_timestamp not null
			);
			create index jc_source_item_billid on jc_source_item(billid, source,
			srcitemid);
			create index jc_source_item_billid_status on jc_source_item(billid,
			srcitemid, status);

			-- 稽查入库(回购通知)明细（对溯源信息汇总的入库信息-待生成回购）
			create table jc_billin_item (
			id bigint auto_increment not null primary key, -- 自增长编码
			version int not null,
			billid varchar(20) not null,
			billin varchar(20) null,
			billhg varchar(20) null,
			status int default (1) null,
			channel varchar(60) null,
			account varchar(20) null,
			accountname varchar(200) null,
			product varchar(20) null,
			productname varchar(200) null,
			price decimal(30,8) null,
			quantity decimal(30,8) null,
			numbers decimal(30,8) null,
			hgprice decimal(30,8) null,
			hgamount decimal(30,2) null,
			operator varchar(20) null,
			operatorname varchar(60) null,
			groupid varchar(20) null,
			groupname varchar(60) null,
			salearea varchar(20) null,
			saleareaname varchar(60) null,
			fhquantity decimal(30,8) null,
			fhnumbers decimal(30,8) null,
			fhwarehouse varchar(20) null,
			fhwarehousename varchar(120) null,
			wdtorder varchar(20) null,
			wdtbillout varchar(20) null,
			wdtbillouttyp varchar(20) null,
			wdtdt datetime null,
			dt datetime default current_timestamp not null
			);
			create index jc_billin_item_billid on jc_billin_item(billhg, billid,
			billin);
			create index jc_billin_item_status on jc_billin_item(status);

			-- 回购单-主单
			create table jc_billhg (
			id varchar(20) not null,
			version int not null,
			billid varchar(20) not null,
			status int default (1) null,
			source varchar(20) null,
			account varchar(20) null,
			accountname varchar(200) null,
			quantity decimal(30,8) null,
			subtotal decimal(30,2) null,
			freight decimal(30,2) null,
			manager varchar(20) null,
			managername varchar(60) null,
			consignee varchar(20) null,
			consigneephone varchar(30) null,
			province varchar(10) null,
			provincename varchar(60) null,
			city varchar(10) null,
			cityname varchar(60) null,
			area varchar(10) null,
			areaname varchar(60) null,
			address varchar(300) null,
			receiveway varchar(20) null,
			remark varchar(300) null,
			remark1 varchar(300) null,
			salearea varchar(20) null,
			saleareaname varchar(60) null,
			groupid varchar(20) null,
			groupname varchar(60) null,
			fhwarehouse varchar(20) null,
			fhwarehousename varchar(120) null,
			wdtorder varchar(20) null,
			wdtbillout varchar(20) null,
			wdtbillouttyp varchar(20) null,
			wdtdt datetime null,
			logisticsname varchar(60) null,
			logisticscode varchar(60) null,
			logisticstype varchar(60) null,
			logisticsno varchar(20) null,
			found varchar(20) null,
			foundname varchar(60) null,
			founddt datetime null,
			submit varchar(20) null,
			submitname varchar(60) null,
			submitdt datetime null,
			audit varchar(20) null,
			auditname varchar(60) null,
			auditdt datetime null,
			dt datetime default current_timestamp not null,
			constraint pk_jc_billhg primary key (id)
			);
			create index jc_billhg_founddt on jc_billhg(founddt, account, salearea,
			billid, status, manager);
			create index jc_billhg_billid on jc_billhg(billid);
			create index jc_billhg_status_founddt on jc_billhg(status, founddt);
			create index jc_billhg_consigneephone on jc_billhg(consigneephone, account,
			accountname);
			create index jc_billhg_dt on jc_billhg(dt);

			-- 回购单-支付明细
			create table jc_billhg_pay (
			id bigint auto_increment not null primary key, -- 自增长编码
			version int not null,
			billid varchar(20) not null,
			billhg varchar(20) not null,
			payment varchar(20) not null,
			amount decimal(30,2) null,
			zhmc varchar(20) not null,
			khyh varchar(150) not null,
			yhzh varchar(60) not null,
			dt datetime default current_timestamp not null
			);
			create index jc_billhg_pay_billhg on jc_billhg_pay(billhg, payment);
			create index jc_billhg_pay_billid on jc_billhg_pay(billid);
			create index jc_billhg_pay_dt on jc_billhg_pay(dt);

			-- 图片
			create table jc_bill_photo (
			id bigint auto_increment not null primary key, -- 自增长编码
			version int not null,
			srcid varchar(20) not null,
			srcitemid varchar(20) not null,
			typephoto varchar(30) not null,
			urlphoto varchar(200) not null,
			dt datetime default current_timestamp not null
			);
			create index jc_bill_photo_srcitemid on jc_bill_photo(srcid, srcitemid,
			typephoto);
			create index jc_bill_photo_srcid on jc_bill_photo(srcid, typephoto);

			-- 2025-03-14
			alter table jc_billhg add column proofaccountname varchar(150) null;
			alter table jc_billhg add column proofdt datetime null;
			alter table jc_bill add column hgstatus int default 0 null;

			-- 2025-01-22（alter column 改为 modify column）
			alter table jc_billsource_item modify column billout varchar(600) null;

			-- 2025-01-16
			alter table jc_billin_item add column wdtoutdt datetime null;
			alter table jc_billin_item add column wdtindt datetime null;
			alter table jc_billhg add column wdtoutdt datetime null;
			alter table jc_billhg add column wdtindt datetime null;
			alter table jc_billsource_item modify column logisticsid varchar(600)
			null;
			alter table jc_source_item modify column logisticsid varchar(600) null;

			-- 2025-01-06（原文件重复出现两次，已去重）
			alter table jc_bill add column dept varchar(20) null;

		</sql>
	</upgrade>
</abacus>