@eliboo/biz-logic 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/index.d.ts +2 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/pending/all-pending.d.ts +8 -0
- package/src/pending/all-pending.js +23 -0
- package/src/pending/all-pending.js.map +1 -0
- package/src/pending/biz-pending/biz-data.d.ts +118 -0
- package/src/pending/biz-pending/biz-data.js +58 -0
- package/src/pending/biz-pending/biz-data.js.map +1 -0
- package/src/pending/biz-pending/biz-pending.d.ts +10 -0
- package/src/pending/biz-pending/biz-pending.js +147 -0
- package/src/pending/biz-pending/biz-pending.js.map +1 -0
- package/src/pending/biz-pending/index.d.ts +2 -0
- package/src/pending/biz-pending/index.js +3 -0
- package/src/pending/biz-pending/index.js.map +1 -0
- package/src/pending/index.d.ts +3 -0
- package/src/pending/index.js +4 -0
- package/src/pending/index.js.map +1 -0
- package/src/pending/tax-pending/context.d.ts +53 -0
- package/src/pending/tax-pending/context.js +23 -0
- package/src/pending/tax-pending/context.js.map +1 -0
- package/src/pending/tax-pending/index.d.ts +2 -0
- package/src/pending/tax-pending/index.js +3 -0
- package/src/pending/tax-pending/index.js.map +1 -0
- package/src/pending/tax-pending/tax-pending.d.ts +26 -0
- package/src/pending/tax-pending/tax-pending.js +426 -0
- package/src/pending/tax-pending/tax-pending.js.map +1 -0
- package/src/utils/declaration-period.d.ts +39 -0
- package/src/utils/declaration-period.js +126 -0
- package/src/utils/declaration-period.js.map +1 -0
- package/src/utils/index.d.ts +2 -0
- package/src/utils/index.js +3 -0
- package/src/utils/index.js.map +1 -0
- package/src/utils/json.d.ts +2 -0
- package/src/utils/json.js +12 -0
- package/src/utils/json.js.map +1 -0
- package/src/lib/biz-logic.d.ts +0 -1
- package/src/lib/biz-logic.js +0 -4
- package/src/lib/biz-logic.js.map +0 -1
package/package.json
CHANGED
package/src/index.d.ts
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './pending';
|
|
2
|
+
export * from './utils';
|
package/src/index.js
CHANGED
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/biz-logic/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/biz-logic/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BizPending } from './biz-pending';
|
|
2
|
+
import { TaxPending } from './tax-pending';
|
|
3
|
+
export declare class AllPending {
|
|
4
|
+
biz: BizPending;
|
|
5
|
+
tax: TaxPending;
|
|
6
|
+
constructor(biz: BizPending, tax: TaxPending);
|
|
7
|
+
getAllPending(): import("rxjs").Observable<import("./biz-pending").UserPendingStatusDto[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { map, of, switchMap } from 'rxjs';
|
|
2
|
+
import { _isCompleted } from './biz-pending';
|
|
3
|
+
export class AllPending {
|
|
4
|
+
constructor(biz, tax) {
|
|
5
|
+
this.biz = biz;
|
|
6
|
+
this.tax = tax;
|
|
7
|
+
}
|
|
8
|
+
getAllPending() {
|
|
9
|
+
return this.biz.calculatePending().pipe(switchMap((pendingList) => {
|
|
10
|
+
const info = this.biz.getInfo().value;
|
|
11
|
+
if (_isCompleted(info.auditStatusEnum)) {
|
|
12
|
+
return this.tax.calculatePending(info.unifySocialCreditCode, this.biz.getPending().value).pipe(map((context) => {
|
|
13
|
+
const { userTaxStatus } = context;
|
|
14
|
+
return userTaxStatus.concat(pendingList);
|
|
15
|
+
}));
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
return of(pendingList);
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=all-pending.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"all-pending.js","sourceRoot":"","sources":["../../../../../packages/biz-logic/src/pending/all-pending.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAc,MAAM,eAAe,CAAC;AAGzD,MAAM,OAAO,UAAU;IACrB,YAAmB,GAAe,EAAS,GAAe;QAAvC,QAAG,GAAH,GAAG,CAAY;QAAS,QAAG,GAAH,GAAG,CAAY;IAAG,CAAC;IAC9D,aAAa;QACX,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC;YACtC,IAAI,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;gBACvC,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAC5F,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;oBACd,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;oBAClC,OAAO,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAC3C,CAAC,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
export interface IBusinessLicenseInfoSheet {
|
|
2
|
+
/** 办理状态 0:待指派,1:进行中,8:已终止,9:已完成 */
|
|
3
|
+
processStatus?: number;
|
|
4
|
+
/** 服务环节明细 */
|
|
5
|
+
detailsServiceLinks?: string;
|
|
6
|
+
/** 审核状态枚举字符串 */
|
|
7
|
+
auditStatusEnum: keyof typeof IAuditStatusEnum;
|
|
8
|
+
/** 统一社会信用代码 */
|
|
9
|
+
unifySocialCreditCode: string;
|
|
10
|
+
}
|
|
11
|
+
export interface IBusinessLicensePending {
|
|
12
|
+
alipayAuthEnum: keyof typeof IBizPendingEnum;
|
|
13
|
+
/** 接码待办枚举字符串 */
|
|
14
|
+
codeReceptionToEnum: keyof typeof IBizPendingEnum;
|
|
15
|
+
/** 是否需要接码枚举字符串 */
|
|
16
|
+
ifCodeReceptionEnum: keyof typeof IExpeditedStatusEnum;
|
|
17
|
+
/** 营业上传执照待办枚举字符串 */
|
|
18
|
+
businessUploadEnum: keyof typeof IBizPendingEnum;
|
|
19
|
+
/** 网签待办枚举字符串字段 */
|
|
20
|
+
tetsignToEnum: keyof typeof IBizPendingEnum;
|
|
21
|
+
/** 催办状态枚举字符串 */
|
|
22
|
+
expeditedStatusEnum: keyof typeof IExpeditedStatusEnum;
|
|
23
|
+
/** 材料补全待办枚举字符串 */
|
|
24
|
+
materialCompletionToEnum: keyof typeof IBizPendingEnum;
|
|
25
|
+
/** 个税账号开通待办枚举字符串 */
|
|
26
|
+
personalTaxAccountEnum: keyof typeof IBizPendingEnum;
|
|
27
|
+
/** 电局接码待办枚举字符串 */
|
|
28
|
+
eTaxCodeEnum: keyof typeof IBizPendingEnum;
|
|
29
|
+
/** 票种核定待办枚举字符串 */
|
|
30
|
+
invoiceTypeVerificationEnum: keyof typeof IBizPendingEnum;
|
|
31
|
+
/** 个税密码催收类型枚举字符串 */
|
|
32
|
+
passwordTypeEnum: keyof typeof IPasswordTypeEnum;
|
|
33
|
+
/** 开通税务账号待办枚举字符串 */
|
|
34
|
+
toTaxAccountEnum: keyof typeof IBizPendingEnum;
|
|
35
|
+
/** 个税接码待办枚举字符串 */
|
|
36
|
+
personalTaxCodeEnum: keyof typeof IBizPendingEnum;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 个税密码催收类型枚举
|
|
40
|
+
*/
|
|
41
|
+
export declare enum IPasswordTypeEnum {
|
|
42
|
+
/** 同时催收 */
|
|
43
|
+
SIMULTANEOUSLY_COLLECTING_PAYMENTS = 2,
|
|
44
|
+
/** 个税登录密码催收 */
|
|
45
|
+
PERSONAL_INCOME_TAX_LOGIN_PASSWORD_COLLECTION = 3,
|
|
46
|
+
/** 个税申报密码催收 */
|
|
47
|
+
PERSONAL_INCOME_TAX_DECLARATION_PASSWORD_COLLECTION = 4
|
|
48
|
+
}
|
|
49
|
+
declare enum IBizPendingEnum {
|
|
50
|
+
/** 未创建 */
|
|
51
|
+
NOT_CREATED = 0,
|
|
52
|
+
/** 已创建 */
|
|
53
|
+
CREATED = 1,
|
|
54
|
+
/** 已完成 */
|
|
55
|
+
COMPLETED = 2
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 催办状态枚举
|
|
59
|
+
*/
|
|
60
|
+
declare enum IExpeditedStatusEnum {
|
|
61
|
+
/** 是 */
|
|
62
|
+
YES = 0,
|
|
63
|
+
/** 否 */
|
|
64
|
+
NO = 1
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 审核状态枚举
|
|
68
|
+
*/
|
|
69
|
+
export declare enum IAuditStatusEnum {
|
|
70
|
+
/** 待支付 */
|
|
71
|
+
PENDING_PAYMENT = 0,
|
|
72
|
+
/** 办理中 */
|
|
73
|
+
PROCESSING_IN_PROGRESS = 1,
|
|
74
|
+
/** 待网签 */
|
|
75
|
+
WAITING_FOR_ONLINE_SIGNING = 2,
|
|
76
|
+
/** 已驳回 */
|
|
77
|
+
REJECTED = 3,
|
|
78
|
+
/** 办理完成 */
|
|
79
|
+
COMPLETED_PROCESSING = 4,
|
|
80
|
+
/** 已过期 */
|
|
81
|
+
EXPIRED = 5,
|
|
82
|
+
/** 审核中 */
|
|
83
|
+
UNDER_REVIEW = 6,
|
|
84
|
+
/** 待办处理中 */
|
|
85
|
+
PENDING_PROCESSING = 7
|
|
86
|
+
}
|
|
87
|
+
export declare class LdCcaseStepListDto {
|
|
88
|
+
/** 环节ID */
|
|
89
|
+
stepId: number;
|
|
90
|
+
/** 环节序号 */
|
|
91
|
+
stepSort: number;
|
|
92
|
+
/** 环节名称 */
|
|
93
|
+
stepName: string;
|
|
94
|
+
/** 状态:0:未开始,1:进行中,2:已完成,8: 已终止 */
|
|
95
|
+
status: 0 | 1 | 2 | 8;
|
|
96
|
+
/** 备注说明 */
|
|
97
|
+
remark?: string;
|
|
98
|
+
}
|
|
99
|
+
export declare class UserPendingStatusDto {
|
|
100
|
+
backlogName: '网签待办' | '验证码上传待办' | '材料补全待办' | '支付宝实名认证待办' | '营业执照上传待办' | '税务登记待办' | '税务申报待办' | '税费缴纳待办' | '个税申报密码提交待办' | '个税密码提交待办' | '个税登录密码提交待办' | '电子税务局登录待办' | '票种核定待办' | '个税验证码上传待办' | '电子税务局验证码上传待办' | '税务申报处理待办';
|
|
101
|
+
/** 是否催办 0:是 1:否 */
|
|
102
|
+
urgeToStatus: 0 | 1;
|
|
103
|
+
/** 待办类型 */
|
|
104
|
+
type: 'taxRegistered' | 'taxDeclare' | 'taxPay' | 'taxAccountOpen' | 'taxBureauLogin' | 'taxBureauCode' | 'bizNetSign' | 'bizCodeUpload' | 'bizInfoAdd' | 'bizAlipayAuth' | 'bizUploadLicense' | 'taxInvoiceVerify' | 'taxPersonCodeUpload' | 'taxDeclareError';
|
|
105
|
+
/** 待办来源
|
|
106
|
+
* biz: 工商注册
|
|
107
|
+
* tax: 税务服务
|
|
108
|
+
*/
|
|
109
|
+
source: 'biz' | 'tax';
|
|
110
|
+
/** 是否已完成 默认false */
|
|
111
|
+
isCompleted: boolean;
|
|
112
|
+
/** 待办处理消息 */
|
|
113
|
+
message: string;
|
|
114
|
+
/** 待办处理链接 */
|
|
115
|
+
url?: string;
|
|
116
|
+
urlParams?: string;
|
|
117
|
+
}
|
|
118
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 个税密码催收类型枚举
|
|
3
|
+
*/
|
|
4
|
+
export var IPasswordTypeEnum;
|
|
5
|
+
(function (IPasswordTypeEnum) {
|
|
6
|
+
/** 同时催收 */
|
|
7
|
+
IPasswordTypeEnum[IPasswordTypeEnum["SIMULTANEOUSLY_COLLECTING_PAYMENTS"] = 2] = "SIMULTANEOUSLY_COLLECTING_PAYMENTS";
|
|
8
|
+
/** 个税登录密码催收 */
|
|
9
|
+
IPasswordTypeEnum[IPasswordTypeEnum["PERSONAL_INCOME_TAX_LOGIN_PASSWORD_COLLECTION"] = 3] = "PERSONAL_INCOME_TAX_LOGIN_PASSWORD_COLLECTION";
|
|
10
|
+
/** 个税申报密码催收 */
|
|
11
|
+
IPasswordTypeEnum[IPasswordTypeEnum["PERSONAL_INCOME_TAX_DECLARATION_PASSWORD_COLLECTION"] = 4] = "PERSONAL_INCOME_TAX_DECLARATION_PASSWORD_COLLECTION";
|
|
12
|
+
})(IPasswordTypeEnum || (IPasswordTypeEnum = {}));
|
|
13
|
+
var IBizPendingEnum;
|
|
14
|
+
(function (IBizPendingEnum) {
|
|
15
|
+
/** 未创建 */
|
|
16
|
+
IBizPendingEnum[IBizPendingEnum["NOT_CREATED"] = 0] = "NOT_CREATED";
|
|
17
|
+
/** 已创建 */
|
|
18
|
+
IBizPendingEnum[IBizPendingEnum["CREATED"] = 1] = "CREATED";
|
|
19
|
+
/** 已完成 */
|
|
20
|
+
IBizPendingEnum[IBizPendingEnum["COMPLETED"] = 2] = "COMPLETED";
|
|
21
|
+
})(IBizPendingEnum || (IBizPendingEnum = {}));
|
|
22
|
+
/**
|
|
23
|
+
* 催办状态枚举
|
|
24
|
+
*/
|
|
25
|
+
var IExpeditedStatusEnum;
|
|
26
|
+
(function (IExpeditedStatusEnum) {
|
|
27
|
+
/** 是 */
|
|
28
|
+
IExpeditedStatusEnum[IExpeditedStatusEnum["YES"] = 0] = "YES";
|
|
29
|
+
/** 否 */
|
|
30
|
+
IExpeditedStatusEnum[IExpeditedStatusEnum["NO"] = 1] = "NO";
|
|
31
|
+
})(IExpeditedStatusEnum || (IExpeditedStatusEnum = {}));
|
|
32
|
+
/**
|
|
33
|
+
* 审核状态枚举
|
|
34
|
+
*/
|
|
35
|
+
export var IAuditStatusEnum;
|
|
36
|
+
(function (IAuditStatusEnum) {
|
|
37
|
+
/** 待支付 */
|
|
38
|
+
IAuditStatusEnum[IAuditStatusEnum["PENDING_PAYMENT"] = 0] = "PENDING_PAYMENT";
|
|
39
|
+
/** 办理中 */
|
|
40
|
+
IAuditStatusEnum[IAuditStatusEnum["PROCESSING_IN_PROGRESS"] = 1] = "PROCESSING_IN_PROGRESS";
|
|
41
|
+
/** 待网签 */
|
|
42
|
+
IAuditStatusEnum[IAuditStatusEnum["WAITING_FOR_ONLINE_SIGNING"] = 2] = "WAITING_FOR_ONLINE_SIGNING";
|
|
43
|
+
/** 已驳回 */
|
|
44
|
+
IAuditStatusEnum[IAuditStatusEnum["REJECTED"] = 3] = "REJECTED";
|
|
45
|
+
/** 办理完成 */
|
|
46
|
+
IAuditStatusEnum[IAuditStatusEnum["COMPLETED_PROCESSING"] = 4] = "COMPLETED_PROCESSING";
|
|
47
|
+
/** 已过期 */
|
|
48
|
+
IAuditStatusEnum[IAuditStatusEnum["EXPIRED"] = 5] = "EXPIRED";
|
|
49
|
+
/** 审核中 */
|
|
50
|
+
IAuditStatusEnum[IAuditStatusEnum["UNDER_REVIEW"] = 6] = "UNDER_REVIEW";
|
|
51
|
+
/** 待办处理中 */
|
|
52
|
+
IAuditStatusEnum[IAuditStatusEnum["PENDING_PROCESSING"] = 7] = "PENDING_PROCESSING";
|
|
53
|
+
})(IAuditStatusEnum || (IAuditStatusEnum = {}));
|
|
54
|
+
export class LdCcaseStepListDto {
|
|
55
|
+
}
|
|
56
|
+
export class UserPendingStatusDto {
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=biz-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biz-data.js","sourceRoot":"","sources":["../../../../../../packages/biz-logic/src/pending/biz-pending/biz-data.ts"],"names":[],"mappings":"AA2CA;;GAEG;AACH,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,WAAW;IACX,qHAAsC,CAAA;IACtC,eAAe;IACf,2IAA6C,CAAA;IAC7C,eAAe;IACf,uJAAmD,CAAA;AACrD,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AACD,IAAK,eAOJ;AAPD,WAAK,eAAe;IAClB,UAAU;IACV,mEAAW,CAAA;IACX,UAAU;IACV,2DAAO,CAAA;IACP,UAAU;IACV,+DAAS,CAAA;AACX,CAAC,EAPI,eAAe,KAAf,eAAe,QAOnB;AACD;;GAEG;AACH,IAAK,oBAKJ;AALD,WAAK,oBAAoB;IACvB,QAAQ;IACR,6DAAG,CAAA;IACH,QAAQ;IACR,2DAAE,CAAA;AACJ,CAAC,EALI,oBAAoB,KAApB,oBAAoB,QAKxB;AACD;;GAEG;AACH,MAAM,CAAN,IAAY,gBAiBX;AAjBD,WAAY,gBAAgB;IAC1B,UAAU;IACV,6EAAmB,CAAA;IACnB,UAAU;IACV,2FAA0B,CAAA;IAC1B,UAAU;IACV,mGAA8B,CAAA;IAC9B,UAAU;IACV,+DAAY,CAAA;IACZ,WAAW;IACX,uFAAwB,CAAA;IACxB,UAAU;IACV,6DAAW,CAAA;IACX,UAAU;IACV,uEAAgB,CAAA;IAChB,YAAY;IACZ,mFAAsB,CAAA;AACxB,CAAC,EAjBW,gBAAgB,KAAhB,gBAAgB,QAiB3B;AAED,MAAM,OAAO,kBAAkB;CAe9B;AAED,MAAM,OAAO,oBAAoB;CAgDhC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAuditStatusEnum, IBusinessLicenseInfoSheet, IBusinessLicensePending, UserPendingStatusDto } from './biz-data';
|
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
|
3
|
+
export declare abstract class BizPending {
|
|
4
|
+
abstract getInfo(): BehaviorSubject<IBusinessLicenseInfoSheet>;
|
|
5
|
+
abstract getPending(): BehaviorSubject<IBusinessLicensePending>;
|
|
6
|
+
/** 计算工商待办 */
|
|
7
|
+
calculatePending(): import("rxjs").Observable<UserPendingStatusDto[]>;
|
|
8
|
+
}
|
|
9
|
+
/** 是否办理完成 */
|
|
10
|
+
export declare function _isCompleted(auditStatusEnum: keyof typeof IAuditStatusEnum): auditStatusEnum is "COMPLETED_PROCESSING";
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { safeJsonParse } from '../../utils/json';
|
|
2
|
+
import { forkJoin, of, switchMap } from 'rxjs';
|
|
3
|
+
export class BizPending {
|
|
4
|
+
/** 计算工商待办 */
|
|
5
|
+
calculatePending() {
|
|
6
|
+
return forkJoin({
|
|
7
|
+
info: this.getInfo(),
|
|
8
|
+
pending: this.getPending(),
|
|
9
|
+
}).pipe(switchMap(({ info, pending }) => {
|
|
10
|
+
const pendingList = [];
|
|
11
|
+
if (!pending)
|
|
12
|
+
return of(pendingList);
|
|
13
|
+
/** 龙达办理状态是否进行中,状态存在且不为0,8,9;状态为1和X是进行中,X是未知状态码 */
|
|
14
|
+
const isLdInProgress = info.processStatus && !['0', '8', '9'].includes(String(info.processStatus));
|
|
15
|
+
const stepList = safeJsonParse(info.detailsServiceLinks, []);
|
|
16
|
+
/** 是否环节2完成 */
|
|
17
|
+
const isStep2Completed = stepList.some((item) => item.stepId.toString() === '2' && item.status === 2);
|
|
18
|
+
// 3.支付宝实名待办
|
|
19
|
+
let hasAlipayAuth = false;
|
|
20
|
+
if (isLdInProgress && isInProgress(info.auditStatusEnum, false) && pending.alipayAuthEnum === 'CREATED') {
|
|
21
|
+
if (!isStep2Completed) {
|
|
22
|
+
// 已完成网签,则不显示待办
|
|
23
|
+
pendingList.push({
|
|
24
|
+
backlogName: '支付宝实名认证待办',
|
|
25
|
+
type: 'bizAlipayAuth',
|
|
26
|
+
source: 'biz',
|
|
27
|
+
isCompleted: false,
|
|
28
|
+
urgeToStatus: 1,
|
|
29
|
+
message: '请完成支付宝实名待办',
|
|
30
|
+
url: undefined,
|
|
31
|
+
});
|
|
32
|
+
hasAlipayAuth = true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// 1.验证码上传待办
|
|
36
|
+
// 存在实名认证待办则不显示验证码上传待办
|
|
37
|
+
if (!hasAlipayAuth) {
|
|
38
|
+
// 龙达办理中+巨屹办理中且非网签+有接码待办且催办
|
|
39
|
+
if (isLdInProgress &&
|
|
40
|
+
isInProgress(info.auditStatusEnum, true) &&
|
|
41
|
+
pending.codeReceptionToEnum === 'CREATED' &&
|
|
42
|
+
pending.ifCodeReceptionEnum === 'YES') {
|
|
43
|
+
// 进一步判断龙达环节
|
|
44
|
+
/** 是否环节处于环节1进行中 */
|
|
45
|
+
const isStep1InProgress = stepList.some((item) => item.stepId.toString() === '1' && item.status === 1);
|
|
46
|
+
if (isStep1InProgress) {
|
|
47
|
+
pendingList.push({
|
|
48
|
+
backlogName: '验证码上传待办',
|
|
49
|
+
type: 'bizCodeUpload',
|
|
50
|
+
source: 'biz',
|
|
51
|
+
isCompleted: false,
|
|
52
|
+
urgeToStatus: 1,
|
|
53
|
+
message: '请配合办理专员,完成验证码上传待办',
|
|
54
|
+
url: undefined,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
// 2.营业上传执照待办
|
|
60
|
+
if (_isCompleted(info.auditStatusEnum) && pending.businessUploadEnum === 'CREATED') {
|
|
61
|
+
pendingList.push({
|
|
62
|
+
backlogName: '营业执照上传待办',
|
|
63
|
+
type: 'bizUploadLicense',
|
|
64
|
+
source: 'biz',
|
|
65
|
+
isCompleted: false,
|
|
66
|
+
urgeToStatus: 1,
|
|
67
|
+
message: '请完成营业执照上传待办',
|
|
68
|
+
url: undefined,
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
// 4.网签待办
|
|
72
|
+
if (isLdInProgress && isNetSign(info.auditStatusEnum) && pending.tetsignToEnum === 'CREATED') {
|
|
73
|
+
// if (!isStep2Completed) {}
|
|
74
|
+
// 不包含bizAlipayAuth
|
|
75
|
+
if (!hasAlipayAuth) {
|
|
76
|
+
pendingList.push({
|
|
77
|
+
backlogName: '网签待办',
|
|
78
|
+
type: 'bizNetSign',
|
|
79
|
+
source: 'biz',
|
|
80
|
+
isCompleted: false,
|
|
81
|
+
urgeToStatus: pending.expeditedStatusEnum === 'YES' ? 0 : 1,
|
|
82
|
+
message: '请完成网签待办',
|
|
83
|
+
url: undefined,
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// 5.材料补全待办
|
|
88
|
+
if (!_isCompleted(info.auditStatusEnum) && pending.materialCompletionToEnum === 'CREATED') {
|
|
89
|
+
pendingList.push({
|
|
90
|
+
backlogName: '材料补全待办',
|
|
91
|
+
type: 'bizInfoAdd',
|
|
92
|
+
source: 'biz',
|
|
93
|
+
isCompleted: false,
|
|
94
|
+
urgeToStatus: 1,
|
|
95
|
+
message: '请完成材料补全待办',
|
|
96
|
+
url: undefined,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
// 移除自动创建执照上传待办的逻辑
|
|
100
|
+
// if (
|
|
101
|
+
// _isCompleted(info.auditStatusEnum) &&
|
|
102
|
+
// !info.businessLicensePictureAddress &&
|
|
103
|
+
// !pendingList.some((item) => item.type === 'bizUploadLicense') &&
|
|
104
|
+
// pending.businessUploadEnum === 'NOT_CREATED'
|
|
105
|
+
// ) {
|
|
106
|
+
// const updateEntity = this.createEntityWithoutEnum({
|
|
107
|
+
// businessLicensePendingId: pending.businessLicensePendingId,
|
|
108
|
+
// businessUpload: BizPendingEnum.CREATED,
|
|
109
|
+
// });
|
|
110
|
+
// this.update(updateEntity, { withSystemUser: true }).subscribe();
|
|
111
|
+
// pendingList.push({
|
|
112
|
+
// //TODO 优化成同步操作
|
|
113
|
+
// backlogName: '营业执照上传待办',
|
|
114
|
+
// type: 'bizUploadLicense',
|
|
115
|
+
// source: 'biz',
|
|
116
|
+
// isCompleted: false,
|
|
117
|
+
// urgeToStatus: 1,
|
|
118
|
+
// message: '请完成营业执照上传待办',
|
|
119
|
+
// url: undefined,
|
|
120
|
+
// });
|
|
121
|
+
// }
|
|
122
|
+
// 如果办理完成,则检查税务待办 并且有营业执照;没有营业执照,则不检查税务相关待办
|
|
123
|
+
return of(pendingList);
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** 是否办理中
|
|
128
|
+
* @param auditStatusEnum 审核状态枚举
|
|
129
|
+
* @param isExcludeNetSign 是否排出网签
|
|
130
|
+
*/
|
|
131
|
+
function isInProgress(auditStatusEnum, isExcludeNetSign = false) {
|
|
132
|
+
if (isExcludeNetSign) {
|
|
133
|
+
return auditStatusEnum === 'PROCESSING_IN_PROGRESS' || auditStatusEnum === 'PENDING_PROCESSING';
|
|
134
|
+
}
|
|
135
|
+
return (auditStatusEnum === 'PROCESSING_IN_PROGRESS' ||
|
|
136
|
+
auditStatusEnum === 'PENDING_PROCESSING' ||
|
|
137
|
+
auditStatusEnum === 'WAITING_FOR_ONLINE_SIGNING');
|
|
138
|
+
}
|
|
139
|
+
/** 是否网签 */
|
|
140
|
+
function isNetSign(auditStatusEnum) {
|
|
141
|
+
return auditStatusEnum === 'WAITING_FOR_ONLINE_SIGNING';
|
|
142
|
+
}
|
|
143
|
+
/** 是否办理完成 */
|
|
144
|
+
export function _isCompleted(auditStatusEnum) {
|
|
145
|
+
return auditStatusEnum === 'COMPLETED_PROCESSING';
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=biz-pending.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"biz-pending.js","sourceRoot":"","sources":["../../../../../../packages/biz-logic/src/pending/biz-pending/biz-pending.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/biz-logic/src/pending/biz-pending/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/biz-logic/src/pending/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { IBusinessLicensePending, UserPendingStatusDto } from '../biz-pending';
|
|
2
|
+
export declare class CheckPendingContext {
|
|
3
|
+
/** 用户数据(个体户信息) */
|
|
4
|
+
userData: ILdCcaseGetCustDto;
|
|
5
|
+
/** 用户待办状态列表 */
|
|
6
|
+
userTaxStatus: UserPendingStatusDto[];
|
|
7
|
+
/** 龙达用户登录状态;有值情况:上传过密码,正在税务登记;申报中且不需要验证码;需要过票种核定;需要提交税局密码 */
|
|
8
|
+
ldLoginStatus?: ILdTaxLoginStatusDto;
|
|
9
|
+
/** 申报记录;只要提交过申报记录,就有值 */
|
|
10
|
+
taxDeclareRecord?: any;
|
|
11
|
+
/** 是否完成税务登记 */
|
|
12
|
+
ifTax: boolean;
|
|
13
|
+
/** 税务登记日期 */
|
|
14
|
+
taxRegisterDate?: string;
|
|
15
|
+
/** 是否提交个税申报密码 */
|
|
16
|
+
ifTaxPwd: boolean;
|
|
17
|
+
/** 营业执照待办记录 */
|
|
18
|
+
bizPendingRecord: IBusinessLicensePending;
|
|
19
|
+
/** 申报缴税记录,只有在申报中才会有值 */
|
|
20
|
+
taxPaymentRecord?: any;
|
|
21
|
+
/** 是否需要上传个人验证码 */
|
|
22
|
+
needUploadPersonCode?: boolean;
|
|
23
|
+
/** 是否需要票种核定 */
|
|
24
|
+
isNeedTaxInvoiceVerify?: boolean;
|
|
25
|
+
/** 是否需要税务登记1+2 */
|
|
26
|
+
isNeedTaxRegistered?: boolean;
|
|
27
|
+
/** 是否申报异常 */
|
|
28
|
+
isDeclareError?: boolean;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 查询个体户信息响应数据 DTO
|
|
32
|
+
*/
|
|
33
|
+
export declare class ILdCcaseGetCustDto {
|
|
34
|
+
/** 税务登记日期 */
|
|
35
|
+
taxRegisterDate?: string;
|
|
36
|
+
/** 是否已税局备案登记,0否,1是 */
|
|
37
|
+
ifTax: number;
|
|
38
|
+
/** 个税申报密码 */
|
|
39
|
+
piTaxPwd?: string;
|
|
40
|
+
/** 统一社会信用代码 */
|
|
41
|
+
socialCreditCode: string;
|
|
42
|
+
/** 电子税务局密码 */
|
|
43
|
+
taxBureauPwd?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 查询电局登录状态响应数据 DTO
|
|
47
|
+
*/
|
|
48
|
+
export declare class ILdTaxLoginStatusDto {
|
|
49
|
+
/** 登录状态: 1在线,0掉线 */
|
|
50
|
+
status: number;
|
|
51
|
+
/** 身份认证状态:1已认证,0未认证 */
|
|
52
|
+
slrzStatus: number;
|
|
53
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export class CheckPendingContext {
|
|
2
|
+
}
|
|
3
|
+
/**
|
|
4
|
+
* 查询个体户信息响应数据 DTO
|
|
5
|
+
*/
|
|
6
|
+
export class ILdCcaseGetCustDto {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 查询个体户信息响应数据 DTO
|
|
10
|
+
*/
|
|
11
|
+
class LdCcaseGetCustDto {
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 查询电局登录状态响应数据 DTO
|
|
15
|
+
*/
|
|
16
|
+
export class ILdTaxLoginStatusDto {
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 查询电局登录状态响应数据 DTO
|
|
20
|
+
*/
|
|
21
|
+
class LdTaxLoginStatusDto {
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../../../../packages/biz-logic/src/pending/tax-pending/context.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,mBAAmB;CAuC/B;AACD;;GAEG;AACH,MAAM,OAAO,kBAAkB;CAW9B;AAED;;GAEG;AACH,MAAM,iBAAiB;CAiLtB;AACD;;GAEG;AACH,MAAM,OAAO,oBAAoB;CAMhC;AACD;;GAEG;AACH,MAAM,mBAAmB;CASxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/biz-logic/src/pending/tax-pending/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { CheckPendingContext, ILdCcaseGetCustDto, ILdTaxLoginStatusDto } from './context';
|
|
3
|
+
import { IBusinessLicensePending } from '../biz-pending';
|
|
4
|
+
export declare abstract class TaxPending {
|
|
5
|
+
abstract getCust(socialCreditCode: string, context: CheckPendingContext): Observable<ILdCcaseGetCustDto>;
|
|
6
|
+
abstract getTaxLoginStatus(socialCreditCode: string, zhyt: '01' | '02', context: CheckPendingContext): Observable<ILdTaxLoginStatusDto>;
|
|
7
|
+
/** 获取是否申报 */
|
|
8
|
+
abstract getIsDeclare(socialCreditCode: string, context: CheckPendingContext): Observable<boolean>;
|
|
9
|
+
calculatePending(socialCreditCode: string, bizPendingRecord: IBusinessLicensePending): Observable<CheckPendingContext>;
|
|
10
|
+
/** 1.是否完成税务登记 */
|
|
11
|
+
protected checkTaxRegistered(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
12
|
+
/** 是否需要接收税局验证码(在税务登记环节) */
|
|
13
|
+
protected checkNeedReceiveTaxBureauCodeOnTaxRegistration(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
14
|
+
/** 是否需要票种核定 */
|
|
15
|
+
protected checkNeedTaxInvoiceVerify(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
16
|
+
/** 是否需要上传个税密码 */
|
|
17
|
+
protected checkNeedUploadTaxPersonPwd(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
18
|
+
/** 是否需要上传税局登录密码 */
|
|
19
|
+
protected checkNeedUploadTaxBureauPwd(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
20
|
+
/** 是否需要申报 */
|
|
21
|
+
protected checkNeedDeclare(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
22
|
+
/** 是否需要接收个税验证码 */
|
|
23
|
+
protected checkNeedReceiveTaxCode(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
24
|
+
/** 是否需要登录保活 */
|
|
25
|
+
protected checkNeedLoginKeepAlive(context: CheckPendingContext): Observable<CheckPendingContext>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,426 @@
|
|
|
1
|
+
import { catchError, map, of, switchMap, tap, throwError } from 'rxjs';
|
|
2
|
+
import { differenceInDays } from 'date-fns';
|
|
3
|
+
import { isDeclarationDay } from '../../utils';
|
|
4
|
+
export class TaxPending {
|
|
5
|
+
calculatePending(socialCreditCode, bizPendingRecord) {
|
|
6
|
+
const context = {
|
|
7
|
+
userTaxStatus: [],
|
|
8
|
+
userData: undefined,
|
|
9
|
+
ifTax: false,
|
|
10
|
+
ifTaxPwd: false,
|
|
11
|
+
bizPendingRecord,
|
|
12
|
+
};
|
|
13
|
+
const getUser$ = this.getCust(socialCreditCode, context).pipe(tap((res) => {
|
|
14
|
+
context.userData = res;
|
|
15
|
+
context.taxRegisterDate = res.taxRegisterDate;
|
|
16
|
+
}));
|
|
17
|
+
// 阶段1:税务登记阶段
|
|
18
|
+
const stage1$ = getUser$.pipe(
|
|
19
|
+
// 是否完成税务登记【税务登记待办1】
|
|
20
|
+
switchMap(() => this.checkTaxRegistered(context)),
|
|
21
|
+
// 检测是否需要提交税务登记验证码
|
|
22
|
+
switchMap(() => this.checkNeedReceiveTaxBureauCodeOnTaxRegistration(context)),
|
|
23
|
+
// 是否需要税种核定;
|
|
24
|
+
switchMap(() => this.checkNeedTaxInvoiceVerify(context).pipe(tap((context) => {
|
|
25
|
+
// 特殊逻辑:如果需要票种核定,则移除税务登记待办2
|
|
26
|
+
if (context.isNeedTaxInvoiceVerify && context.isNeedTaxRegistered) {
|
|
27
|
+
context.userTaxStatus = context.userTaxStatus.filter((item) => item.type !== 'taxRegistered');
|
|
28
|
+
}
|
|
29
|
+
// 其它特殊逻辑:票种核定和税务申报冲突时如何处理
|
|
30
|
+
}))),
|
|
31
|
+
// 是否需要上传个税密码【税务登记待办2/个税密码上传待办】
|
|
32
|
+
switchMap(() => this.checkNeedUploadTaxPersonPwd(context)),
|
|
33
|
+
// 是否需要账号密码登录税局账号(修改密码)
|
|
34
|
+
switchMap(() => this.checkNeedUploadTaxBureauPwd(context)));
|
|
35
|
+
// 阶段2:税务申报
|
|
36
|
+
const stage2$ = stage1$.pipe(
|
|
37
|
+
// 是否需要申报
|
|
38
|
+
switchMap(() => this.checkNeedDeclare(context)),
|
|
39
|
+
// // 是否申报错误【申报待办1】
|
|
40
|
+
// switchMap(() => this.checkDeclareError(context)),
|
|
41
|
+
// // 是否需要缴税
|
|
42
|
+
// switchMap(() => this.checkNeedPayTax(context)),
|
|
43
|
+
// 是否需要上传个税验证码
|
|
44
|
+
switchMap(() => this.checkNeedReceiveTaxCode(context)),
|
|
45
|
+
// // 是否需要登录税局账号(保活待办 验证码登录)
|
|
46
|
+
// switchMap(() => this.checkNeedLoginKeepAlive(context)),
|
|
47
|
+
map((context) => {
|
|
48
|
+
// 补充逻辑:1.如果有税局密码上传待办,则不显示票种核定待办
|
|
49
|
+
if (context.userTaxStatus.some((item) => { var _a; return item.type === 'taxBureauLogin' && ((_a = item.urlParams) === null || _a === void 0 ? void 0 : _a.includes('taxBureauLoginWithPwd')); })) {
|
|
50
|
+
const index = context.userTaxStatus.findIndex((item) => item.type === 'taxInvoiceVerify');
|
|
51
|
+
if (index !== -1)
|
|
52
|
+
context.userTaxStatus.splice(index, 1);
|
|
53
|
+
}
|
|
54
|
+
return context;
|
|
55
|
+
}), catchError((error) => {
|
|
56
|
+
if (Array.isArray(error)) {
|
|
57
|
+
return of(context);
|
|
58
|
+
}
|
|
59
|
+
return throwError(() => error);
|
|
60
|
+
}));
|
|
61
|
+
return stage2$;
|
|
62
|
+
}
|
|
63
|
+
/** 1.是否完成税务登记 */
|
|
64
|
+
checkTaxRegistered(context) {
|
|
65
|
+
const { userData, bizPendingRecord, userTaxStatus } = context;
|
|
66
|
+
return of(context.userData).pipe(switchMap((data) => {
|
|
67
|
+
// 1.是否完成税务登记
|
|
68
|
+
/** 已完成税务登记 */
|
|
69
|
+
const ifTax = data.ifTax == 1;
|
|
70
|
+
/** 已提交个税申报密码 */
|
|
71
|
+
const ifTaxPwd = !!data.piTaxPwd;
|
|
72
|
+
context.ifTaxPwd = ifTaxPwd;
|
|
73
|
+
context.ifTax = ifTax;
|
|
74
|
+
if (!ifTax || !ifTaxPwd) {
|
|
75
|
+
const item = {
|
|
76
|
+
backlogName: '税务登记待办',
|
|
77
|
+
urgeToStatus: 1,
|
|
78
|
+
source: 'tax',
|
|
79
|
+
type: 'taxRegistered',
|
|
80
|
+
isCompleted: false,
|
|
81
|
+
url: '/tax/main/tax-registration',
|
|
82
|
+
message: '请完成税务登记',
|
|
83
|
+
urlParams: `compulsoryPendStep=tax-declaration-password`,
|
|
84
|
+
};
|
|
85
|
+
context.isNeedTaxRegistered = true;
|
|
86
|
+
// 已完成税务登记
|
|
87
|
+
if (ifTax) {
|
|
88
|
+
// s1-已完成税务登记,未提交个税申报密码
|
|
89
|
+
item.message = '请提交个税申报密码';
|
|
90
|
+
item.backlogName = '个税申报密码提交待办';
|
|
91
|
+
const hasPendingFromDb = bizPendingRecord.personalTaxAccountEnum === 'CREATED';
|
|
92
|
+
//
|
|
93
|
+
if (hasPendingFromDb) {
|
|
94
|
+
userTaxStatus.push(item);
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
// 没有待办,但是激活开票已超过3天
|
|
98
|
+
const taxRegisterDate = userData.taxRegisterDate; //"2025-07-31",
|
|
99
|
+
if (taxRegisterDate && differenceInDays(new Date(), new Date(taxRegisterDate)) > 3) {
|
|
100
|
+
// 激活开票已超过10天,防止法定假日问题导致工作日不准确
|
|
101
|
+
userTaxStatus.push(item);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return of(context);
|
|
105
|
+
}
|
|
106
|
+
// 2.未完成税务登记
|
|
107
|
+
else {
|
|
108
|
+
userTaxStatus.push(item);
|
|
109
|
+
const hasTaxBureauPwd = !!data.taxBureauPwd;
|
|
110
|
+
if (!hasTaxBureauPwd) {
|
|
111
|
+
// s2-未上传密码,一次都没登录过
|
|
112
|
+
item.message = '请及时上传登录账号密码';
|
|
113
|
+
return of(context);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
// 上传过密码,未完成税务登记,检测登录状态
|
|
117
|
+
return this.getTaxLoginStatus(data.socialCreditCode, '01', context).pipe(map((res) => {
|
|
118
|
+
context.ldLoginStatus = res;
|
|
119
|
+
if (res.status === 1) {
|
|
120
|
+
// s3-已登录,等待税务登记通过
|
|
121
|
+
item.message = '税务登记处理中';
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// s4-未登录,提示登录
|
|
125
|
+
item.message = '登录已过期,请重新登录';
|
|
126
|
+
try {
|
|
127
|
+
item.debug = res;
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
//
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return context;
|
|
134
|
+
}));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return of(context);
|
|
139
|
+
}), catchError(() => {
|
|
140
|
+
return of(context);
|
|
141
|
+
}));
|
|
142
|
+
}
|
|
143
|
+
/** 是否需要接收税局验证码(在税务登记环节) */
|
|
144
|
+
checkNeedReceiveTaxBureauCodeOnTaxRegistration(context) {
|
|
145
|
+
// ====依赖项====
|
|
146
|
+
// 1.正在进行税务登记
|
|
147
|
+
// ====依赖项====
|
|
148
|
+
const { bizPendingRecord, ifTax, taxRegisterDate, userTaxStatus } = context;
|
|
149
|
+
if (ifTax && taxRegisterDate)
|
|
150
|
+
return of(context); // 已完成税务登记,不需要接收税局验证码;如果还需要接收,应当在其它环节判断处理
|
|
151
|
+
const hasPendingFromDb = bizPendingRecord.eTaxCodeEnum === 'CREATED';
|
|
152
|
+
if (!hasPendingFromDb)
|
|
153
|
+
return of(context);
|
|
154
|
+
const item = {
|
|
155
|
+
backlogName: '电子税务局验证码上传待办',
|
|
156
|
+
type: 'taxBureauCode',
|
|
157
|
+
source: 'tax',
|
|
158
|
+
isCompleted: false,
|
|
159
|
+
urgeToStatus: 1,
|
|
160
|
+
message: '正在为您进行税务登记,请上传电子税务局验证码。',
|
|
161
|
+
url: '/tax/main/sms-verification',
|
|
162
|
+
urlParams: `sceneId=2&needLogin=true`,
|
|
163
|
+
};
|
|
164
|
+
userTaxStatus.push(item);
|
|
165
|
+
// 移除税务登记待办
|
|
166
|
+
const index = userTaxStatus.findIndex((item) => item.type === 'taxRegistered');
|
|
167
|
+
if (index !== -1)
|
|
168
|
+
userTaxStatus.splice(index, 1);
|
|
169
|
+
return of(context);
|
|
170
|
+
}
|
|
171
|
+
/** 是否需要票种核定 */
|
|
172
|
+
checkNeedTaxInvoiceVerify(context) {
|
|
173
|
+
// ====依赖项====
|
|
174
|
+
// 1.完成税务登记
|
|
175
|
+
// ====依赖项====
|
|
176
|
+
const { bizPendingRecord, ifTax, userTaxStatus } = context;
|
|
177
|
+
if (!ifTax) {
|
|
178
|
+
return of(context);
|
|
179
|
+
}
|
|
180
|
+
const hasPendingFromDb = bizPendingRecord.invoiceTypeVerificationEnum === 'CREATED';
|
|
181
|
+
if (!hasPendingFromDb)
|
|
182
|
+
return of(context);
|
|
183
|
+
return this.getTaxLoginStatus(context.userData.socialCreditCode, '02', context).pipe(map((res) => {
|
|
184
|
+
const isStatusOK = (res === null || res === void 0 ? void 0 : res.status) === 1 && res.slrzStatus === 1;
|
|
185
|
+
if (!isStatusOK) {
|
|
186
|
+
const item = {
|
|
187
|
+
backlogName: '票种核定待办',
|
|
188
|
+
type: 'taxInvoiceVerify',
|
|
189
|
+
source: 'tax',
|
|
190
|
+
isCompleted: false,
|
|
191
|
+
urgeToStatus: 1,
|
|
192
|
+
message: '请完成票种核定待办',
|
|
193
|
+
url: '/tax/main/tax-registration',
|
|
194
|
+
urlParams: `priorityStep=ticket-approval`,
|
|
195
|
+
};
|
|
196
|
+
userTaxStatus.push(item);
|
|
197
|
+
context.isNeedTaxInvoiceVerify = true;
|
|
198
|
+
return context;
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
// 已完成登录+人脸认证;通知龙达接口完成并更新数据库
|
|
202
|
+
/** 完成票种核定待办并通知龙达 */
|
|
203
|
+
// this.completeInvoiceTypeVerification(context);//TODO 调用者自行实现
|
|
204
|
+
return context;
|
|
205
|
+
}
|
|
206
|
+
}));
|
|
207
|
+
}
|
|
208
|
+
/** 是否需要上传个税密码 */
|
|
209
|
+
checkNeedUploadTaxPersonPwd(context) {
|
|
210
|
+
// XXX 临时关闭 至2025年10月20 18点
|
|
211
|
+
if (new Date() < new Date('2025-10-20 18:00:00'))
|
|
212
|
+
return of(context);
|
|
213
|
+
// ====依赖项====
|
|
214
|
+
// 1.完成税务登记
|
|
215
|
+
// 2.提交过税务申报密码
|
|
216
|
+
// # 逻辑
|
|
217
|
+
// ====依赖项====
|
|
218
|
+
const { bizPendingRecord, ifTax, ifTaxPwd, userTaxStatus } = context;
|
|
219
|
+
const hasPendingFromDb = bizPendingRecord.personalTaxAccountEnum === 'CREATED';
|
|
220
|
+
if (!hasPendingFromDb)
|
|
221
|
+
return of(context);
|
|
222
|
+
/** 密码提交类型 */
|
|
223
|
+
const passwordSubmitType = bizPendingRecord.passwordTypeEnum;
|
|
224
|
+
if (!ifTax || !ifTaxPwd) {
|
|
225
|
+
if (passwordSubmitType !== 'PERSONAL_INCOME_TAX_LOGIN_PASSWORD_COLLECTION' && !ifTax) {
|
|
226
|
+
// 如果不是单独催收个税登录密码,且还未完成税务登记,则异步完成此待办
|
|
227
|
+
// 若已完成税务登记,说明是密码不对的催办,则保留此待办
|
|
228
|
+
// const updateEntity = this.businessLicensePendingService.createEntityWithoutEnum({
|
|
229
|
+
// businessLicensePendingId: bizPendingRecord.businessLicensePendingId,
|
|
230
|
+
// personalTaxAccount: BizPendingEnum.COMPLETED,
|
|
231
|
+
// });
|
|
232
|
+
// this.businessLicensePendingService.update(updateEntity, { withSystemUser: true }).subscribe();
|
|
233
|
+
}
|
|
234
|
+
// ===完成税务登记和提交过税务申报密码,才显示待办===
|
|
235
|
+
return of(context); // 这里什么都不设置是因为认为前面已经设置了税务登记待办
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
const item = {
|
|
239
|
+
backlogName: '个税密码提交待办',
|
|
240
|
+
type: 'taxAccountOpen',
|
|
241
|
+
source: 'tax',
|
|
242
|
+
isCompleted: false,
|
|
243
|
+
urgeToStatus: 1,
|
|
244
|
+
message: '',
|
|
245
|
+
url: '/tax/main/tax-registration',
|
|
246
|
+
urlParams: `uploadType=${passwordSubmitType}`,
|
|
247
|
+
};
|
|
248
|
+
let message = '请上传个税密码';
|
|
249
|
+
if (passwordSubmitType === 'PERSONAL_INCOME_TAX_LOGIN_PASSWORD_COLLECTION') {
|
|
250
|
+
message = '请上传个税登录密码';
|
|
251
|
+
item.backlogName = '个税登录密码提交待办';
|
|
252
|
+
}
|
|
253
|
+
else if (passwordSubmitType === 'PERSONAL_INCOME_TAX_DECLARATION_PASSWORD_COLLECTION') {
|
|
254
|
+
message = '请上传个税申报密码';
|
|
255
|
+
item.backlogName = '个税申报密码提交待办';
|
|
256
|
+
}
|
|
257
|
+
item.message = message;
|
|
258
|
+
userTaxStatus.push(item);
|
|
259
|
+
return of(context);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/** 是否需要上传税局登录密码 */
|
|
263
|
+
checkNeedUploadTaxBureauPwd(context) {
|
|
264
|
+
// XXX 临时关闭 至2025年10月20 18点
|
|
265
|
+
// if (new Date() < new Date('2025-10-20 18:00:00')) return of(context);
|
|
266
|
+
// ====依赖项====
|
|
267
|
+
// 1.完成税务登记
|
|
268
|
+
// 2.提交过税务申报密码
|
|
269
|
+
// # 逻辑
|
|
270
|
+
// ====依赖项====
|
|
271
|
+
const { bizPendingRecord, ifTax, ifTaxPwd, userTaxStatus } = context;
|
|
272
|
+
const hasPendingFromDb = bizPendingRecord.toTaxAccountEnum === 'CREATED';
|
|
273
|
+
if (!hasPendingFromDb)
|
|
274
|
+
return of(context);
|
|
275
|
+
if (!ifTax || !ifTaxPwd) {
|
|
276
|
+
if (!ifTax) {
|
|
277
|
+
// 还未完成税务登记,则异步完成此待办
|
|
278
|
+
// 若已完成税务登记,说明是密码不对的催办,则保留此待办
|
|
279
|
+
// const updateEntity = this.businessLicensePendingService.createEntityWithoutEnum({
|
|
280
|
+
// businessLicensePendingId: bizPendingRecord.businessLicensePendingId,
|
|
281
|
+
// toTaxAccount: BizPendingEnum.COMPLETED,
|
|
282
|
+
// });
|
|
283
|
+
// this.businessLicensePendingService.update(updateEntity, { withSystemUser: true }).subscribe();
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
// !ifTaxPwd
|
|
287
|
+
// 完成税务登记 但是没有申报密码 ,说明税务登记环节未完成,不用显示密码待办
|
|
288
|
+
}
|
|
289
|
+
// ===完成税务登记和提交过税务申报密码,才显示待办===
|
|
290
|
+
return of(context);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
return this.getTaxLoginStatus(context.userData.socialCreditCode, '01', context).pipe(map((res) => {
|
|
294
|
+
if ((res === null || res === void 0 ? void 0 : res.status) !== 1) {
|
|
295
|
+
const message = '请前往税务中心完成税局账号登录';
|
|
296
|
+
const item = {
|
|
297
|
+
backlogName: '电子税务局登录待办',
|
|
298
|
+
type: 'taxBureauLogin',
|
|
299
|
+
source: 'tax',
|
|
300
|
+
isCompleted: false,
|
|
301
|
+
urgeToStatus: 1,
|
|
302
|
+
message: message,
|
|
303
|
+
url: '/tax/main/tax',
|
|
304
|
+
urlParams: `doPending=taxBureauLoginWithPwd`,
|
|
305
|
+
};
|
|
306
|
+
userTaxStatus.push(item);
|
|
307
|
+
}
|
|
308
|
+
return context;
|
|
309
|
+
}));
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
/** 是否需要申报 */
|
|
313
|
+
checkNeedDeclare(context) {
|
|
314
|
+
const socialCreditCode = context.userData.socialCreditCode;
|
|
315
|
+
const userTaxStatus = context.userTaxStatus;
|
|
316
|
+
const data = context.userData;
|
|
317
|
+
const taxRegisterDate = data.taxRegisterDate; //"2025-09-17"
|
|
318
|
+
if (!data.ifTax || !data.piTaxPwd || !taxRegisterDate)
|
|
319
|
+
return of(context); // 未完成税务登记或未提交税务申报密码
|
|
320
|
+
return of(data).pipe(switchMap(() => {
|
|
321
|
+
// 如果税务登记日期
|
|
322
|
+
// 1.处在申报期 1,4,7,10月 1-15号
|
|
323
|
+
if (!isDeclarationDay(new Date(taxRegisterDate))) {
|
|
324
|
+
return of(context);
|
|
325
|
+
}
|
|
326
|
+
// 2.未完成申报;查询本年度申报记录
|
|
327
|
+
return this.getIsDeclare(socialCreditCode, context).pipe(map((res) => {
|
|
328
|
+
if (!res) {
|
|
329
|
+
// 未完成上个季度的申报
|
|
330
|
+
const item = {
|
|
331
|
+
backlogName: '税务申报待办',
|
|
332
|
+
urgeToStatus: 0,
|
|
333
|
+
source: 'tax',
|
|
334
|
+
type: 'taxDeclare',
|
|
335
|
+
isCompleted: false,
|
|
336
|
+
url: '/tax/main/tax-declare',
|
|
337
|
+
message: '请在本月15号之前完成税务申报待办', // TODO 检测到超过5号则修改一下message
|
|
338
|
+
};
|
|
339
|
+
userTaxStatus.push(item);
|
|
340
|
+
return context;
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
// context.taxDeclareRecord = lastRecord; // TODO提供申报记录用户检查是否需要缴税
|
|
344
|
+
}
|
|
345
|
+
return context;
|
|
346
|
+
}));
|
|
347
|
+
}), catchError(() => {
|
|
348
|
+
return of(context);
|
|
349
|
+
}));
|
|
350
|
+
}
|
|
351
|
+
/** 是否需要接收个税验证码 */
|
|
352
|
+
checkNeedReceiveTaxCode(context) {
|
|
353
|
+
// ====依赖项====
|
|
354
|
+
// 1.完成税务登记
|
|
355
|
+
// TODO 其它暂无限制,后期决定是否只在缴税后显示;若不限制,则需要在待办过期后自动完成该待办
|
|
356
|
+
// ====依赖项====
|
|
357
|
+
const { bizPendingRecord, ifTax, userTaxStatus, taxPaymentRecord } = context;
|
|
358
|
+
if (!ifTax)
|
|
359
|
+
return of(context);
|
|
360
|
+
if (!taxPaymentRecord)
|
|
361
|
+
return of(context);
|
|
362
|
+
const hasPendingFromDb = bizPendingRecord.personalTaxCodeEnum === 'CREATED';
|
|
363
|
+
if (!hasPendingFromDb)
|
|
364
|
+
return of(context);
|
|
365
|
+
const item = {
|
|
366
|
+
backlogName: '个税验证码上传待办',
|
|
367
|
+
type: 'taxPersonCodeUpload',
|
|
368
|
+
source: 'tax',
|
|
369
|
+
isCompleted: false,
|
|
370
|
+
urgeToStatus: 1,
|
|
371
|
+
message: '正在为您进行申报纳税操作,请上传个人所得税APP验证码',
|
|
372
|
+
url: '/tax/main/sms-verification',
|
|
373
|
+
urlParams: `sceneId=3&needLogin=true`,
|
|
374
|
+
};
|
|
375
|
+
context.needUploadPersonCode = true;
|
|
376
|
+
userTaxStatus.push(item);
|
|
377
|
+
return of(context);
|
|
378
|
+
}
|
|
379
|
+
/** 是否需要登录保活 */
|
|
380
|
+
checkNeedLoginKeepAlive(context) {
|
|
381
|
+
const { userTaxStatus, taxPaymentRecord, needUploadPersonCode, taxDeclareRecord } = context;
|
|
382
|
+
if (needUploadPersonCode)
|
|
383
|
+
return of(context); // 有个税验证码待办,该待办包含保活,不需要单独创建保活待办
|
|
384
|
+
if (context.isDeclareError)
|
|
385
|
+
return of(context); // 申报异常,不需要保活
|
|
386
|
+
if (userTaxStatus.find((item) => item.type === 'taxAccountOpen'))
|
|
387
|
+
return of(context); // 如果存在个税密码提交待办,不需要保活
|
|
388
|
+
if ((taxDeclareRecord === null || taxDeclareRecord === void 0 ? void 0 : taxDeclareRecord.taxTaxandpayStateDisp) !== 1 && (taxDeclareRecord === null || taxDeclareRecord === void 0 ? void 0 : taxDeclareRecord.taxTaxandpayStateDisp) !== 4)
|
|
389
|
+
return of(context); // 不处于申报中并且不处于已申报,不需要保活
|
|
390
|
+
else {
|
|
391
|
+
try {
|
|
392
|
+
// 处于申报中,但是税局接口有问题,不需要保活
|
|
393
|
+
const hasError = new Date().getTime() < new Date('2025-10-16T12:00:00+08:00').getTime(); // 当前时间小于2025-10-16 12:00
|
|
394
|
+
if (hasError)
|
|
395
|
+
return of(context);
|
|
396
|
+
}
|
|
397
|
+
catch (_a) {
|
|
398
|
+
//
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
if ((taxDeclareRecord === null || taxDeclareRecord === void 0 ? void 0 : taxDeclareRecord.taxPayAmount) && !taxPaymentRecord)
|
|
402
|
+
return of(context); // 需要缴税,但是且无缴税记录,不需要保活
|
|
403
|
+
// 如果已存在taxBureauLogin待办(密码模式),则不需要再创建保活待办
|
|
404
|
+
if (userTaxStatus.find((item) => item.type === 'taxBureauLogin'))
|
|
405
|
+
return of(context);
|
|
406
|
+
//===可能需要保活:===1.申报中,不需要缴税===2.需要缴税且已缴税======
|
|
407
|
+
// 查询用户保活状态
|
|
408
|
+
return this.getTaxLoginStatus(context.userData.socialCreditCode, '01', context).pipe(map((res) => {
|
|
409
|
+
if ((res === null || res === void 0 ? void 0 : res.status) !== 1) {
|
|
410
|
+
const item = {
|
|
411
|
+
backlogName: '电子税务局登录待办',
|
|
412
|
+
type: 'taxBureauLogin',
|
|
413
|
+
source: 'tax',
|
|
414
|
+
isCompleted: false,
|
|
415
|
+
urgeToStatus: 1,
|
|
416
|
+
message: '请前往税务中心完成税局账号验证码登录',
|
|
417
|
+
url: '/tax/main/tax',
|
|
418
|
+
urlParams: `doPending=taxBureauLogin`,
|
|
419
|
+
};
|
|
420
|
+
userTaxStatus.push(item);
|
|
421
|
+
}
|
|
422
|
+
return context;
|
|
423
|
+
}));
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
//# sourceMappingURL=tax-pending.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tax-pending.js","sourceRoot":"","sources":["../../../../../../packages/biz-logic/src/pending/tax-pending/tax-pending.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export interface QuarterInfo {
|
|
2
|
+
quarter: number;
|
|
3
|
+
year: number;
|
|
4
|
+
/** 季度开始日期 */
|
|
5
|
+
periodBegin: string;
|
|
6
|
+
/** 季度结束日期 */
|
|
7
|
+
periodEnd: string;
|
|
8
|
+
/** 申报开始日期 */
|
|
9
|
+
declarationStartDate: string;
|
|
10
|
+
/** 申报结束日期 */
|
|
11
|
+
declarationEndDate: string;
|
|
12
|
+
/** 申报截止日 */
|
|
13
|
+
declarationEndDateValue: number;
|
|
14
|
+
/** 申报月 */
|
|
15
|
+
declarationMonth: number;
|
|
16
|
+
}
|
|
17
|
+
/** 申报期数据 */
|
|
18
|
+
interface DeclarationPeriod {
|
|
19
|
+
periodBegin: string;
|
|
20
|
+
periodEnd: string;
|
|
21
|
+
remark: string;
|
|
22
|
+
}
|
|
23
|
+
/** 税期数据,依据国家日历 */
|
|
24
|
+
export declare const DECLARATION_PERIOD: {
|
|
25
|
+
[key: string]: DeclarationPeriod;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* 获取申报期截止日
|
|
29
|
+
* @param year 年份
|
|
30
|
+
* @param month 月份
|
|
31
|
+
* @returns 申报截止日(数字)
|
|
32
|
+
*/
|
|
33
|
+
export declare function getDeclarationEndDay(year: number, month: number): number;
|
|
34
|
+
export declare function isDeclarationDay(taxRegisterDate: Date): boolean;
|
|
35
|
+
/** 通用季度计算方法 - 获取上一个季度信息 */
|
|
36
|
+
export declare function getPreviousQuarterInfo(year: number, month: number): QuarterInfo;
|
|
37
|
+
export declare function getCurrentQuarterInfo(year: number, month: number): QuarterInfo;
|
|
38
|
+
export declare function calculateQuarterInfo(year: number, quarter: number): QuarterInfo;
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { format, getDate, getMonth, startOfMonth, endOfMonth } from 'date-fns';
|
|
2
|
+
/** 税期数据,依据国家日历 */
|
|
3
|
+
export const DECLARATION_PERIOD = {
|
|
4
|
+
'2025-10': {
|
|
5
|
+
periodBegin: '2025-10-01',
|
|
6
|
+
periodEnd: '2025-10-27',
|
|
7
|
+
remark: '10月1日至8日放假8天,10月申报纳税期限顺延至10月27日。',
|
|
8
|
+
},
|
|
9
|
+
'2026-01': {
|
|
10
|
+
periodBegin: '2026-01-01',
|
|
11
|
+
periodEnd: '2026-01-20',
|
|
12
|
+
remark: '1月1日至3日放假3天,申报纳税期限顺延至1月20日。',
|
|
13
|
+
},
|
|
14
|
+
'2026-04': {
|
|
15
|
+
periodBegin: '2026-04-01',
|
|
16
|
+
periodEnd: '2026-04-20',
|
|
17
|
+
remark: '4月4日至6日放假3天,申报纳税期限顺延至4月20日。',
|
|
18
|
+
},
|
|
19
|
+
'2026-07': {
|
|
20
|
+
periodBegin: '2026-07-01',
|
|
21
|
+
periodEnd: '2026-07-15',
|
|
22
|
+
remark: '',
|
|
23
|
+
},
|
|
24
|
+
'2026-10': {
|
|
25
|
+
periodBegin: '2026-10-01',
|
|
26
|
+
periodEnd: '2026-10-26',
|
|
27
|
+
remark: '10月1日至7日放假7天,申报纳税期限顺延至10月26日。',
|
|
28
|
+
},
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* 获取申报期截止日
|
|
32
|
+
* @param year 年份
|
|
33
|
+
* @param month 月份
|
|
34
|
+
* @returns 申报截止日(数字)
|
|
35
|
+
*/
|
|
36
|
+
export function getDeclarationEndDay(year, month) {
|
|
37
|
+
const key = format(new Date(year, month - 1), 'yyyy-MM');
|
|
38
|
+
const declarationData = DECLARATION_PERIOD[key];
|
|
39
|
+
if (declarationData && declarationData.periodEnd) {
|
|
40
|
+
// 使用date-fns提取日期部分
|
|
41
|
+
return getDate(new Date(declarationData.periodEnd));
|
|
42
|
+
}
|
|
43
|
+
// 如果没找到数据,默认返回15
|
|
44
|
+
return 15;
|
|
45
|
+
}
|
|
46
|
+
// 判断当前日期是否为申报日 每年的1,4,7,10月的截止日期内
|
|
47
|
+
export function isDeclarationDay(taxRegisterDate) {
|
|
48
|
+
const now = new Date();
|
|
49
|
+
const currentMonth = getMonth(now) + 1; // date-fns getMonth returns 0-based month
|
|
50
|
+
const currentDate = getDate(now);
|
|
51
|
+
// 如果税务登记的年月和当前年月相同,则不需要申报;比如10月完成税务登记,则10月不需要申报
|
|
52
|
+
if (taxRegisterDate.getFullYear() === now.getFullYear() && taxRegisterDate.getMonth() + 1 === currentMonth) {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
// 申报月份:1,4,7,10月
|
|
56
|
+
const declarationMonths = [1, 4, 7, 10];
|
|
57
|
+
const isDeclarationMonth = declarationMonths.includes(currentMonth);
|
|
58
|
+
// 申报日:根据DECLARATION_PERIOD动态获取截止日期
|
|
59
|
+
const declarationEndDay = getDeclarationEndDay(now.getFullYear(), currentMonth);
|
|
60
|
+
const isDeclarationDay = currentDate <= declarationEndDay;
|
|
61
|
+
return isDeclarationMonth && isDeclarationDay;
|
|
62
|
+
}
|
|
63
|
+
/** 通用季度计算方法 - 获取上一个季度信息 */
|
|
64
|
+
export function getPreviousQuarterInfo(year, month) {
|
|
65
|
+
const currentQuarter = getCurrentQuarterInfo(year, month);
|
|
66
|
+
let previousQuarter = currentQuarter.quarter - 1;
|
|
67
|
+
let previousYear = currentQuarter.year;
|
|
68
|
+
if (previousQuarter < 1) {
|
|
69
|
+
previousQuarter = 4;
|
|
70
|
+
previousYear -= 1;
|
|
71
|
+
}
|
|
72
|
+
return calculateQuarterInfo(previousYear, previousQuarter);
|
|
73
|
+
}
|
|
74
|
+
// 通用季度计算方法 - 获取当前月的季度信息
|
|
75
|
+
export function getCurrentQuarterInfo(year, month) {
|
|
76
|
+
let currentQuarter;
|
|
77
|
+
if (month <= 3) {
|
|
78
|
+
currentQuarter = 1;
|
|
79
|
+
}
|
|
80
|
+
else if (month <= 6) {
|
|
81
|
+
currentQuarter = 2;
|
|
82
|
+
}
|
|
83
|
+
else if (month <= 9) {
|
|
84
|
+
currentQuarter = 3;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
currentQuarter = 4;
|
|
88
|
+
}
|
|
89
|
+
return calculateQuarterInfo(year, currentQuarter);
|
|
90
|
+
}
|
|
91
|
+
// 核心季度计算方法
|
|
92
|
+
export function calculateQuarterInfo(year, quarter) {
|
|
93
|
+
// 计算季度期间
|
|
94
|
+
const quarterStartMonth = (quarter - 1) * 3 + 1;
|
|
95
|
+
const quarterEndMonth = quarter * 3;
|
|
96
|
+
// 使用date-fns计算季度开始和结束日期
|
|
97
|
+
const quarterStartDate = startOfMonth(new Date(year, quarterStartMonth - 1));
|
|
98
|
+
const quarterEndDate = endOfMonth(new Date(year, quarterEndMonth - 1));
|
|
99
|
+
const periodBegin = format(quarterStartDate, 'yyyy-MM-dd');
|
|
100
|
+
const periodEnd = format(quarterEndDate, 'yyyy-MM-dd');
|
|
101
|
+
// 计算申报期间(季度结束后的下一个月开始)
|
|
102
|
+
const declarationStartMonth = quarterEndMonth + 1;
|
|
103
|
+
let declarationYear = year;
|
|
104
|
+
let actualDeclarationStartMonth = declarationStartMonth;
|
|
105
|
+
// 处理跨年情况
|
|
106
|
+
if (declarationStartMonth > 12) {
|
|
107
|
+
actualDeclarationStartMonth = 1;
|
|
108
|
+
declarationYear += 1;
|
|
109
|
+
}
|
|
110
|
+
// 使用date-fns计算申报日期
|
|
111
|
+
const declarationStartDate = format(startOfMonth(new Date(declarationYear, actualDeclarationStartMonth - 1)), 'yyyy-MM-dd');
|
|
112
|
+
// 修复:使用动态获取的申报截止日期,而不是固定的15号
|
|
113
|
+
const declarationEndDay = getDeclarationEndDay(declarationYear, actualDeclarationStartMonth);
|
|
114
|
+
const declarationEndDate = format(new Date(declarationYear, actualDeclarationStartMonth - 1, declarationEndDay), 'yyyy-MM-dd');
|
|
115
|
+
return {
|
|
116
|
+
quarter, // 季度数 (1-4)
|
|
117
|
+
year, // 所属年份
|
|
118
|
+
periodBegin, // 季度开始日期 (YYYY-MM-DD)
|
|
119
|
+
periodEnd, // 季度结束日期 (YYYY-MM-DD)
|
|
120
|
+
declarationStartDate, // 申报开始日期 (YYYY-MM-DD)
|
|
121
|
+
declarationEndDate, // 申报截止日期 (YYYY-MM-DD)
|
|
122
|
+
declarationMonth: actualDeclarationStartMonth,
|
|
123
|
+
declarationEndDateValue: declarationEndDay,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=declaration-period.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declaration-period.js","sourceRoot":"","sources":["../../../../../packages/biz-logic/src/utils/declaration-period.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/biz-logic/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,QAAQ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
function safeJsonParse(jsonString, defaultValue = undefined) {
|
|
2
|
+
if (!jsonString)
|
|
3
|
+
return defaultValue;
|
|
4
|
+
try {
|
|
5
|
+
return JSON.parse(jsonString);
|
|
6
|
+
}
|
|
7
|
+
catch (_a) {
|
|
8
|
+
return defaultValue;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export { safeJsonParse };
|
|
12
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../../../packages/biz-logic/src/utils/json.ts"],"names":[],"mappings":"AAAA,SAAS,aAAa,CAAC,UAAmB,EAAE,eAAwB,SAAS;IAC3E,IAAI,CAAC,UAAU;QAAE,OAAO,YAAY,CAAC;IACrC,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/src/lib/biz-logic.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function bizLogic(): string;
|
package/src/lib/biz-logic.js
DELETED
package/src/lib/biz-logic.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"biz-logic.js","sourceRoot":"","sources":["../../../../../packages/biz-logic/src/lib/biz-logic.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ;IACtB,OAAO,WAAW,CAAC;AACrB,CAAC"}
|