feat(核算)!: 添加 T+ 正式核算与采集托管
补齐源快照、资料预演、正式导入及工资核算的依赖链路。 新增版本化输入、逐段 FIFO、生成锁和结构化当月调整, 并提供默认关闭的周期采集、有限重试及 Windows 托管。 原始客户资料、私有配置及首页改动不纳入本次提交。 BREAKING CHANGE: 升级前需应用新增迁移,并通过 PAYROLL_MAKER_USER_ID 绑定实际工资制作人,否则业务只读。 旧单批次核算默认关闭;历史兼容需显式启用 PAYROLL_ALLOW_LEGACY_CALCULATION。生产启用和真实金额待验收。
This commit is contained in:
1 parent
1b074576fe
commit
108bf87225
154 files changed
+9515
-645
No files matched your search
@@ -1,4 +1,5 @@
|
||||
-- 已在客户备份核对列结构;业务语义仍待确认。
|
||||
-- 已核实生成凭证路径:来源单据类型 ARAP01 → GL_SrcVoucherInfo → GL_Doc。
|
||||
-- “未审”的总账凭证也可能已经生成,不能用单据已审核/已核销替代本关联。
|
||||
-- SQL Server 2008 R2 语法;主键游标分页,时间水位尚未启用。
|
||||
SELECT TOP (:batch_size)
|
||||
h.ID AS id,
|
||||
@@ -17,8 +18,27 @@ SELECT TOP (:batch_size)
|
||||
h.voucherstate,
|
||||
h.amount,
|
||||
h.paymentAmount,
|
||||
ISNULL(accounting.accounting_voucher_count, 0) AS accounting_voucher_count,
|
||||
ISNULL(accounting.valid_accounting_voucher_count, 0) AS valid_accounting_voucher_count,
|
||||
accounting.accounting_voucher_id,
|
||||
accounting_doc.code AS accounting_voucher_code,
|
||||
CAST(NULL AS datetime) AS source_updated_at,
|
||||
h.ts AS source_rowversion
|
||||
FROM dbo.ARAP_ReceivePayment AS h
|
||||
LEFT JOIN (
|
||||
SELECT src.srcvoucherid,
|
||||
COUNT(*) AS accounting_voucher_count,
|
||||
SUM(CASE WHEN doc.id IS NOT NULL AND doc.isinvalidate = 0
|
||||
AND make_state.Code = 'Ringht' THEN 1 ELSE 0 END) AS valid_accounting_voucher_count,
|
||||
MIN(CASE WHEN doc.id IS NOT NULL AND doc.isinvalidate = 0
|
||||
AND make_state.Code = 'Ringht' THEN doc.id ELSE NULL END) AS accounting_voucher_id
|
||||
FROM dbo.GL_SrcVoucherInfo AS src
|
||||
INNER JOIN dbo.SM_VoucherType AS source_type ON source_type.ID = src.idSrcVoucherType
|
||||
LEFT JOIN dbo.GL_Doc AS doc ON doc.id = src.idDocDTO
|
||||
LEFT JOIN dbo.eap_EnumItem AS make_state ON make_state.ID = doc.makeErrorState
|
||||
WHERE source_type.Code = 'ARAP01'
|
||||
GROUP BY src.srcvoucherid
|
||||
) AS accounting ON accounting.srcvoucherid = h.ID
|
||||
LEFT JOIN dbo.GL_Doc AS accounting_doc ON accounting_doc.id = accounting.accounting_voucher_id
|
||||
WHERE h.id > :after_id
|
||||
ORDER BY h.id;
|
||||
Reference in new issue
Block a user