declare namespace material {
	/**
	 * ApplyDTO
	 */
	export interface ApplyDTO {
		/** 申请人 */
		applicant?: string

		/** 申请日期 */
		applyDate?: string

		/** 申请id */
		applyId?: number

		/** 申请数量 */
		applyNum?: string

		/** 申请类型 */
		applyType?: 'PURCHASE_RECEIPT' | 'RETURN_RECEIPT' | 'LOAN_OUT' | 'AUDIT' | 'SCRAP_OUT'

		/** applyTypeInfo */
		applyTypeInfo?: material.Codebook

		/** 物料编码 */
		code?: string

		/** 是否确认 */
		confirm?: boolean

		/** 确认数量 */
		confirmNum?: string

		/** 物料名称 */
		name?: string

		/** 备注 */
		remark?: string

		/** 审核状态 */
		reviewResult?: 'WAIT_SCAN' | 'WAIT_SUBMIT' | 'WAIT_REVIEW' | 'PASS' | 'REJECT'

		/** 审核人 */
		reviewer?: string

		/** 物料规格 */
		spec?: string

		/** 物料类型 */
		type?: string

		/** 类型名称 */
		typeName?: string
	}

	/**
	 * 申请单明细
	 */
	export interface ApplyDetail {
		/** 申请单ID */
		applyId?: number

		/** assignRule */
		assignRule?: boolean

		/** 确认数量 */
		confirmQuantity?: number

		/** createdTime */
		createdTime?: string

		/** 异常情况说明 */
		exceptionRemark?: string

		/** id */
		id?: number

		/** 物料Id */
		materialId?: number

		/** 申请数量 */
		quantity?: number

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * 入库/出库/盘点 申请单
	 */
	export interface ApplyForm {
		/** 申请人 */
		applicant?: string

		/** 申请日期 */
		applyDate?: string

		/** 盘点类型（1: 扫码 2: 人工） */
		auditType?: 'SCAN' | 'MANUAL'

		/** 是否确认（0: 未确认 1: 已确认） */
		confirm?: boolean

		/** createdTime */
		createdTime?: string

		/** id */
		id?: number

		/** 审核意见 */
		reviewRemark?: string

		/** 审核结果(1-待扫码 2-待提交 3-待审核 4-审核通过 5退回) */
		reviewResult?: 'WAIT_SCAN' | 'WAIT_SUBMIT' | 'WAIT_REVIEW' | 'PASS' | 'REJECT'

		/** 盘点审核人 */
		reviewer?: string

		/** 盘点人 */
		taker?: string

		/** 类型（1: 采购入库申请 2: 归还入库申请 3: 出库外借申请 4: 盘点申请） */
		type?: 'PURCHASE_RECEIPT' | 'RETURN_RECEIPT' | 'LOAN_OUT' | 'AUDIT' | 'SCRAP_OUT'

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * 申请单
	 */
	export interface ApplyInfo {
		/** 申请单明细 */
		applyDetails?: Array<material.ApplyDetail>

		/** applyForm */
		applyForm?: material.ApplyForm

		/** 扫码的条码集合 */
		detailList?: Array<material.MaterialStockDetail>
	}

	/**
	 * 申请单
	 */
	export interface AuditApplyInfo {
		/** 申请人 */
		applicant?: string

		/** 申请日期 */
		applyDate?: string

		/** 盘点类型（1: 扫码 2: 人工） */
		auditType?: 'SCAN' | 'MANUAL'

		/** 是否确认（0: 未确认 1: 已确认） */
		confirm?: boolean

		/** createdTime */
		createdTime?: string

		/** id */
		id?: number

		/** 物料ids */
		ids?: Array<string>

		/** 审核意见 */
		reviewRemark?: string

		/** 审核结果(1-待扫码 2-待提交 3-待审核 4-审核通过 5退回) */
		reviewResult?: 'WAIT_SCAN' | 'WAIT_SUBMIT' | 'WAIT_REVIEW' | 'PASS' | 'REJECT'

		/** 盘点审核人 */
		reviewer?: string

		/** 盘点人 */
		taker?: string

		/** 类型（1: 采购入库申请 2: 归还入库申请 3: 出库外借申请 4: 盘点申请） */
		type?: 'PURCHASE_RECEIPT' | 'RETURN_RECEIPT' | 'LOAN_OUT' | 'AUDIT' | 'SCRAP_OUT'

		/** 物料类型 */
		types?: Array<string>

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * ComparisonResDTO
	 */
	export interface ComparisonResDTO {
		/** 库存明细 */
		details?: Array<material.StockDetailInfo>

		/** 差异数据 */
		exceptionalData?: Array<material.StocktakingScanExceptionalData>
	}

	/**
	 * ManualStockDTO
	 */
	export interface ManualStockDTO {
		/** 申请id */
		applyId?: number

		/** 编码 */
		code?: string

		/** 手动核实库存数量 */
		manualStock?: number

		/** 物料id */
		materialId?: number

		/** 异常原因 */
		msg?: string

		/** 名称 */
		name?: string

		/** 价格 */
		price?: number

		/** 规格 */
		spec?: string

		/** 库存数量 */
		stock?: number

		/** 类型 */
		type?: string

		/** typeName */
		typeName?: string
	}

	/**
	 * 人工手动核实物料库存明细
	 */
	export interface ManualStockDetail {
		/** 申请id */
		applyId?: number

		/** createdTime */
		createdTime?: string

		/** id */
		id?: number

		/** 手动核实库存数量 */
		manualStock?: number

		/** 物料id */
		materialId?: number

		/** 异常原因 */
		msg?: string

		/** 库存数量 */
		stock?: number

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * 物料信息
	 */
	export interface Material {
		/** 是否赋码 */
		assignRule?: boolean

		/** 编码 */
		code?: string

		/** createdTime */
		createdTime?: string

		/** 备注 */
		description?: string

		/** id */
		id?: number

		/** 名称 */
		name?: string

		/** 价格 */
		price?: number

		/** 规格 */
		spec?: string

		/** 库存数量 */
		stock?: number

		/** 类型 */
		type?: string

		/** typeName */
		typeName?: string

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * 物料明细数据表
	 */
	export interface MaterialStockDetail {
		/** 入库申请单 */
		applyId?: number

		/** 条码 */
		barcode?: string

		/** createdTime */
		createdTime?: string

		/** id */
		id?: number

		/** 物料ID */
		materialId?: number

		/** 状态 */
		status?: 'IN' | 'OUT' | 'OFF' | 'LOST' | 'SCRAP_OUT'

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * 异常数据列表
	 */
	export interface ReviewDTO {
		/** 申请单 */
		applyId?: string

		/** 审核意见 */
		remark?: string

		/** 审核结果 */
		reviewResult?: 'WAIT_SCAN' | 'WAIT_SUBMIT' | 'WAIT_REVIEW' | 'PASS' | 'REJECT'
	}

	/**
	 * ScrapOutApplyDTO
	 */
	export interface ScrapOutApplyDTO {
		/** 申请人 */
		applicant?: string

		/** 条码集合 */
		barcodeList?: string

		/** 确认数量 */
		confirmQuantity?: number

		/** 物料名称 */
		name?: string

		/** 单价 */
		price?: string

		/** 报废原因 */
		remark?: string

		/** 物料规格 */
		spec?: string

		/** 类型 */
		type?: string

		/** 类型名称 */
		typeName?: string
	}

	/**
	 * 库存明细
	 */
	export interface StockDetailInfo {
		/** 物料编码 */
		materialCode?: string

		/** 物料名称 */
		materialId?: number

		/** 物料名称 */
		materialName?: string

		/** 实际库存（明细数据中统计来的） */
		stockReal?: number

		/** 在存总数（物料表） */
		stockTotal?: number

		/** 扫码数量 */
		stockTotalScan?: number
	}

	/**
	 * 扫码盘点明细表(记录历次盘点扫码的数据)
	 */
	export interface StocktakingScanDetail {
		/** 申请单id */
		applyId?: number

		/** 条码 */
		barcode?: string

		/** createdTime */
		createdTime?: string

		/** id */
		id?: number

		/** 物料ID */
		materialId?: number

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * 扫码盘点异常数据表
	 */
	export interface StocktakingScanExceptionalData {
		/** 申请单id */
		applyId?: number

		/** 条码 */
		barcode?: string

		/** createdTime */
		createdTime?: string

		/** 异常处理 */
		exceptionHandle?: 'MARK_LOST' | 'MARK_KEEP' | 'MARK_RETURN' | 'MARK_DISCARD' | 'MARK_NEW'

		/** 异常类型 */
		exceptionReason?: 'SOCK_IN_BUT_SCAN_NOT_EXIST' | 'SOCK_OUT_BUT_SCAN_EXIST' | 'SOCK_NOT_EXIST_BUT_SCAN_EXIST'

		/** id */
		id?: number

		/** 物料ID */
		materialId?: number

		/** materialName */
		materialName?: string

		/** 备注 */
		remark?: string

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * 类型
	 */
	export interface Type {
		/** createdTime */
		createdTime?: string

		/** id */
		id?: number

		/** 类型级别 */
		level: 'ONE' | 'TWO'

		/** levelInfo */
		levelInfo?: material.Codebook

		/** 类型名称 */
		name: string

		/** 类型编码 */
		no: string

		/** 上级类型编码 */
		parentNo?: string

		/** updatedTime */
		updatedTime?: string
	}

	/**
	 * TypeTree
	 */
	export interface TypeTree {
		/** children */
		children?: Array<material.TypeTree>

		/** 类型名称 */
		label: string

		/** parentNo */
		parentNo?: string

		/** 类型编码 */
		value: string
	}

	/**
	 * WaitScanInfo
	 */
	export interface WaitScanInfo {
		/** 物料数量 */
		count?: number

		/** 物料名称 */
		materialName?: string
	}
}
