diff --git a/src/app/routes/tax-management/components/individual-income/individual-income.component.html b/src/app/routes/tax-management/components/individual-income/individual-income.component.html index 0bca625a..3d4d6236 100644 --- a/src/app/routes/tax-management/components/individual-income/individual-income.component.html +++ b/src/app/routes/tax-management/components/individual-income/individual-income.component.html @@ -10,15 +10,15 @@ --> - +
-
- +
+
- + + - - - {{ item?.billStatusLabel }} - {{ item?.billStatusLabel }} - 异常 - - - - {{ item?.billStatusLabel }} - {{ item?.billStatusLabel }} - - -
{{ item?.amount | currency: ' ' }}
-
+
@@ -59,7 +45,7 @@ {{ selectedRows.length }} 条数据
- + @@ -75,4 +61,4 @@ - + \ No newline at end of file diff --git a/src/app/routes/tax-management/components/individual-income/individual-income.component.less b/src/app/routes/tax-management/components/individual-income/individual-income.component.less deleted file mode 100644 index 43a47df4..00000000 --- a/src/app/routes/tax-management/components/individual-income/individual-income.component.less +++ /dev/null @@ -1,5 +0,0 @@ -:host { - .text-black { - color: #000; - } -} diff --git a/src/app/routes/tax-management/components/individual-income/individual-income.component.spec.ts b/src/app/routes/tax-management/components/individual-income/individual-income.component.spec.ts deleted file mode 100644 index d90f71c0..00000000 --- a/src/app/routes/tax-management/components/individual-income/individual-income.component.spec.ts +++ /dev/null @@ -1,34 +0,0 @@ -/* - * @Description : - * @Version : 1.0 - * @Author : Shiming - * @Date : 2022-03-30 14:45:52 - * @LastEditors : Shiming - * @LastEditTime : 2022-03-30 15:33:06 - * @FilePath : \\tms-obc-web\\src\\app\\routes\\tax-management\\components\\individual-income\\individual-income.component.spec.ts - * Copyright (C) 2022 huzhenhong. All rights reserved. - */ -import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; -import { TaxManagementIndividualIncomeComponent } from './individual-income.component'; - -describe('TaxManagementIndividualIncomeComponent', () => { - let component: TaxManagementIndividualIncomeComponent; - let fixture: ComponentFixture; - - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ - declarations: [ TaxManagementIndividualIncomeComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(TaxManagementIndividualIncomeComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/routes/tax-management/components/individual-income/individual-income.component.ts b/src/app/routes/tax-management/components/individual-income/individual-income.component.ts index 85ba228c..6fa59757 100644 --- a/src/app/routes/tax-management/components/individual-income/individual-income.component.ts +++ b/src/app/routes/tax-management/components/individual-income/individual-income.component.ts @@ -1,19 +1,15 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { ActivatedRoute, Router } from '@angular/router'; -import { STColumn, STComponent, STData } from '@delon/abc/st'; +import { STChange, STColumn, STComponent, STData } from '@delon/abc/st'; import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { ShipperBaseService } from '@shared'; import { NzModalService } from 'ng-zorro-antd/modal'; -import { of } from 'rxjs'; -import { map } from 'rxjs/operators'; import { TaxManagementService } from '../../services/tax-management.service'; -// import { DatatableReportingUploadSettingComponent } from '../upload-setting/upload-setting.component'; -// import { DatatableReportingVerifyResultComponent } from '../verify-result/verify-result.component'; @Component({ selector: 'app-tax-management-individual-income', templateUrl: './individual-income.component.html', - styleUrls: ['./individual-income.component.less'] + styleUrls: ['../../../commom/less/box.less', '../../../commom/less/expend-but.less'] }) export class TaxManagementIndividualIncomeComponent implements OnInit { _$expand = false; @@ -22,50 +18,38 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { columns!: STColumn[]; @ViewChild('st', { static: false }) st!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; - tabType!: string; isLoading: boolean = false; tabs: any[] = [ - { name: '待申报', value: '1' }, - { name: '待审核', value: '2' }, - { name: '已通过', value: '3' }, - { name: '不通过', value: '4' }, + { name: '待申报', value: '0' }, + { name: '待审核', value: '1' }, + { name: '已通过', value: '2' }, + { name: '不通过', value: '3' }, { name: '全部', value: '' } ]; - selectedIndex = ''; //选择的项目 - serviceTel = ''; - isVisible : boolean = false - constructor( - public service: TaxManagementService, - private router: Router, - private ar: ActivatedRoute, - public shipperservice: ShipperBaseService, - private modal: NzModalService, - public shipperSrv: ShipperBaseService - ) {} + selectedIndex = '0'; //选择的项目 + isVisible: boolean = false; - /** - * 查询字段个数 - */ - get queryFieldCount(): number { - return Object.keys(this.schema?.properties || {}).length; - } + selectedRows: any[] = []; + + constructor(public service: TaxManagementService) {} /** * 查询参数 */ get reqParams() { const params = Object.assign({}, this.sf?.value || {}, { - representationsStatus: this.selectedIndex + declareStatus: this.selectedIndex }); delete params._$expand; return { ...params }; } - /** - * 选中行 - */ - get selectedRows() { - return this.st?.list.filter((item: any) => item.checked) || []; + stChange(e: STChange): void { + switch (e.type) { + case 'checkbox': + this.selectedRows = e.checkbox!; + break; + } } /** @@ -82,7 +66,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { resetSF() { this.sf.reset(); this._$expand = false; - this.isLoading = true + this.isLoading = true; } /** * 程序初始化入口 @@ -99,48 +83,55 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { this.schema = { properties: { _$expand: { type: 'boolean', ui: { hidden: true } }, - billCode: { title: '司机姓名', type: 'string', ui: { placeholder: '请输入' } }, - resourceCode: { + driverName: { title: '司机姓名', type: 'string', ui: { placeholder: '请输入' } }, + telephone: { type: 'string', title: '联系电话', ui: { placeholder: '请输入' } }, - driverName: { + cardNumber: { title: '证件号码', type: 'string', ui: { placeholder: '请输入证件号码' } }, - serviceType2: { + declareStatus: { title: '申报状态', type: 'string', + enum: [ + { value: '', label: '全部' }, + { value: '0', label: '待申报' }, + { value: '1', label: '待审核' }, + { value: '2', label: '已通过' }, + { value: '3', label: '不通过' } + ], ui: { placeholder: '请选择', - widget: 'dict-select', - params: { dictKey: 'service:type' }, + widget: 'select', containsAllLabel: true, visibleIf: { _$expand: (value: boolean) => value } - } + }, + default: '' }, - serviceType3: { - title: '申报结果', - type: 'string', - ui: { - placeholder: '请选择', - widget: 'dict-select', - params: { dictKey: 'service:type' }, - containsAllLabel: true, - visibleIf: { - _$expand: (value: boolean) => value - } - } - }, - serviceType1: { + // declareStatu1s: { + // title: '申报结果', + // type: 'string', + // ui: { + // placeholder: '请选择', + // widget: 'dict-select', + // params: { dictKey: 'service:type' }, + // containsAllLabel: true, + // visibleIf: { + // _$expand: (value: boolean) => value + // } + // } + // }, + isOvertime: { title: '是否逾期', type: 'string', ui: { @@ -153,7 +144,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { } } }, - createTime: { + taxDate: { title: '税款所属期', type: 'string', ui: { @@ -165,7 +156,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { } } as SFDateWidgetSchema }, - createTime3: { + declareDate: { title: '申报日期', type: 'string', ui: { @@ -177,7 +168,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { } } as SFDateWidgetSchema }, - enterpriseInfoId: { + ltdId: { type: 'string', title: '网络货运人', ui: { @@ -187,7 +178,7 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { visibleIf: { _$expand: (value: boolean) => value }, - asyncData: () => this.shipperservice.getNetworkFreightForwarder() + asyncData: () => this.service.getNetworkFreightForwarder() } } } @@ -204,148 +195,149 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { initST() { this.columns = [ { title: '', type: 'checkbox', className: 'text-center', width: '60px' }, - { title: '申报状态', render: 'orderStatus', className: 'text-center', width: '120px' }, - { title: '是否逾期', render: 'localValid', className: 'text-center', width: '120px' }, { - title: '税款所属期起', - render: 'billComplianceVOS', + title: '申报状态', + index: 'declareStatus', className: 'text-center', - width: '150px' + width: '120px', + type: 'badge', + badge: { + '0': { text: '待申报', color: 'default' }, + '1': { text: '待审核', color: 'processing' }, + '2': { text: '已通过', color: 'success' }, + '3': { text: '不通过', color: 'error' } + } }, - { title: '税款所属期止', render: 'freightDetails', className: 'text-center', width: '150px' }, + { title: '是否逾期', index: 'overtime', className: 'text-center', width: '120px', type: 'enum', enum: { '0': '否', '1': '是' } }, + { title: '税款所属期起', index: 'skssqq', className: 'text-center', width: '150px' }, + { title: '税款所属期止', index: 'skssqz', className: 'text-center', width: '150px' }, + { title: '纳税人名称', index: 'nsrmc', className: 'text-center', width: '180px' }, + { title: '纳税人识别号', index: 'nsrsbh', className: 'text-center', width: '200px' }, + { title: '行业', index: 'hy', className: 'text-center', width: '200px' }, + { title: '行政区划', index: 'xzqh', className: 'text-center', width: '120px' }, + { title: '街道乡镇', index: 'jdxz', className: 'text-center', width: '350px' }, + { title: '税务机关', index: 'swjg', className: 'text-center', width: '180px' }, + { title: '姓名', index: 'xm', className: 'text-center', width: '180px' }, + { title: '证件类型', index: 'sfzjlx', className: 'text-center', width: '250px' }, + { title: '证件号码', index: 'sfzjhm', className: 'text-center', width: '200px' }, + { title: '联系电话', index: 'lxdh', className: 'text-center', width: '200px' }, + { title: '国籍(地区)', index: 'gjdq', className: 'text-center', width: '150px' }, + { title: '生产经营地行政区划', index: 'scjydxzqh', className: 'text-center', width: '180px' }, { - title: '纳税人名称', - render: 'serviceType', - className: 'text-center', - width: '180px' + title: '当月应税收入', + index: 'dyyssr', + width: '150px', + type: 'widget', + className: 'text-right', + widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.dyyssr }) } }, - { title: '纳税人识别号', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' }, - { title: '行业', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' }, - { title: '行政区划', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '120px' }, - { title: '街道乡镇', render: 'goodsInfoVOList', className: 'text-center', width: '180px' }, - { title: '税务机关', render: 'driver', className: 'text-center', width: '180px' }, - { title: '姓名', render: 'payeeName', className: 'text-center', width: '180px' }, - { title: '证件类型', render: 'transportInfo', className: 'text-center', width: '250px' }, - { title: '证件号码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '200px' }, - { title: '联系电话', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '200px' }, - { title: '国籍(地区)', render: 'driver', className: 'text-center', width: '150px' }, - { title: '生产经营地行政区划', render: 'payeeName', className: 'text-center', width: '150px' }, - { title: '当月应税收入', render: 'amount', className: 'text-center', width: '250px' }, - { title: '应税收入', render: 'payeeName', className: 'text-center', width: '150px' }, - { title: '应税所得率', render: 'transportInfo', className: 'text-center', width: '250px' }, - { title: '计税依据', render: 'payeeName', className: 'text-center', width: '150px' }, - { title: '税率', render: 'transportInfo', className: 'text-center', width: '200px' }, - { title: '速算扣除数', render: 'payeeName', className: 'text-center', width: '150px' }, - { title: '应纳税额', render: 'transportInfo', className: 'text-center', width: '180px' }, - { title: '累计已缴纳税额', render: 'payeeName', className: 'text-center', width: '150px' }, - { title: '本期应补退税额', render: 'transportInfo', className: 'text-center', width: '200px' }, - { title: '申报日期', render: 'payeeName', className: 'text-center', width: '150px' }, + { + title: '应税收入', + index: 'yssr', + width: '150px', + type: 'widget', + className: 'text-right', + widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.yssr }) } + }, + { + title: '应税所得率', + index: 'yssdl', + className: 'text-right', + width: '250px', + format: item => `${item.yssdl ? ((item.yssdl as number) * 100).toFixed(2) : 0}%` + }, + { title: '计税依据', index: 'jsyj', className: 'text-right', width: '150px' }, + { + title: '税率', + index: 'sl', + className: 'text-right', + width: '150px', + format: item => `${item.sl ? ((item.sl as number) * 100).toFixed(2) : 0}%` + }, + { title: '速算扣除数', index: 'sskcs', className: 'text-right', width: '150px' }, + { + title: '应纳税额', + index: 'ynse', + width: '150px', + type: 'widget', + className: 'text-right', + widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.ynse }) } + }, + { + title: '累计已缴纳税额', + index: 'ljyjnse', + width: '150px', + type: 'widget', + className: 'text-right', + widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.ljyjnse }) } + }, + { + title: '本期应补退税额', + index: 'bqybtse', + width: '150px', + type: 'widget', + className: 'text-right', + widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.bqybtse }) } + }, + { title: '申报日期', index: 'sbrq', className: 'text-center', width: '150px' } ]; } /** - *撤销 + *更正 * @param record 记录实例 */ - recall() { - if (this.selectedRows.length === 0) { - this.openWainingModal('请选择需要撤回的数据'); - return; - } - this.modal.confirm({ - nzTitle: '撤回提示', - nzContent: ' 撤回后可以重新上传,重新上传会覆盖已上传数据,确定要撤回?', - nzOkText: '确定', - nzCancelText: '取消', - nzOnOk: () => { - this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { - if (res) { - this.service.msgSrv.success('撤销成功'); - this.search(); - } - }); - } - }); + corrections() { + // if (this.selectedRows.length === 0) { + // this.openWainingModal('请选择需要撤回的数据'); + // return; + // } + // this.modal.confirm({ + // nzTitle: '撤回提示', + // nzContent: ' 撤回后可以重新上传,重新上传会覆盖已上传数据,确定要撤回?', + // nzOkText: '确定', + // nzCancelText: '取消', + // nzOnOk: () => { + // this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { + // if (res) { + // this.service.msgSrv.success('撤销成功'); + // this.search(); + // } + // }); + // } + // }); } /** - *撤销 + *修改起征点 * @param record 记录实例 */ resetData() { - if (this.selectedRows.length === 0) { - this.openWainingModal('请选择需要更新的数据!'); - return; - } - this.isVisible = true - - } - /** - *撤销 - * @param record 记录实例 - */ - unnormal(value: any) { - this.modal.confirm({ - nzTitle: '税务审核结果', - nzContent: '订单结算时间所在月份与申报月份不一致', - nzOkText: '确定', - nzCancelText: '', - nzOnOk: () => { - this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { - if (res) { - this.service.msgSrv.success('撤销成功'); - this.search(); - } - }); - } - }); + // if (this.selectedRows.length === 0) { + // this.openWainingModal('请选择需要更新的数据!'); + // return; + // } + // this.isVisible = true; } selectChange(item: any) { - this.selectedIndex = item?.representationsStatus || ''; + this.selectedIndex = item?.value || ''; setTimeout(() => { this.st.load(1); }); } - /** - * 查看当行数据 - */ - view(record: STData) { - // this.router.navigate(['../view', record.uuid], { relativeTo: this.ar }); - this.router.navigate(['../detail'], { - queryParams: { - id: record.id - }, - relativeTo: this.ar - }); - } - - // appeal(item: any) { - // const modalRef = this.modal.create({ - // nzTitle: '申诉', - // nzWidth: '40%', - // nzContent: CtcAppealComponent, - // nzComponentParams: { - // i: item, - // status: 'add' - // }, - // nzFooter: null - // }); - // modalRef.afterClose.subscribe(res => { - // if (res) { - // this.search({ representationsStatus: '' }); - // } - // }) - // } - /** * 申报 */ upload() { if (this.selectedRows.length === 0) { - this.openWainingModal('请选择需要上传的数据'); + this.service.msgSrv.warning('请选择需要申报的数据'); return; } + // this.modal.warning({ + // nzTitle: '申报提示', + // nzContent: '订单结算时间所在月份与申报月份不一致......' + // }); // this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { // if (res) { // this.service.msgSrv.success('申报成功'); @@ -359,43 +351,12 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { * @param params 更新数据 */ uploadSetting() { - if (this.selectedRows.length === 0) { - this.openWainingModal('请选择需要上传的数据'); - return; - } - // this.service.request(this.service.$api_recall_reporting, { rows: this.selectedRows }).subscribe((res: any) => { - // if (res) { - // this.service.msgSrv.success('更新成功'); - // this.search(); - // } - // }) - } - - /** - * 查看校验结果 - */ - viewResult(item: any) { - // const modalRef = this.modal.create({ - // nzTitle: '本地校验结果', - // nzWidth: 1200, - // nzContent: TaxManagementOrderVerifyResultComponent, - // nzComponentParams: { - // record: item - // }, - // nzFooter: null - // }); - // modalRef.afterClose.subscribe(res => { - // }) - } - - /** - * 查看监管审核结果 - */ - viewAuditResult(record: any) { - if (record?.billStatus !== '2') { - return; - } - this.openWainingModal('监管审核结果', record?.result); + this.service.request(this.service.$api_update_individual_income_page).subscribe((res: any) => { + if (res) { + this.service.msgSrv.success('更新成功'); + this.search(); + } + }); } search() { @@ -409,17 +370,8 @@ export class TaxManagementIndividualIncomeComponent implements OnInit { this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list); } - openWainingModal(content: string, title = '提示') { - this.modal.warning({ - nzMask: false, - nzTitle: title, - nzContent: content - }); - } - handleOK() { - - } + handleOK() {} handleCancel() { - this.isVisible = false; + this.isVisible = false; } } diff --git a/src/app/routes/tax-management/services/tax-management.service.ts b/src/app/routes/tax-management/services/tax-management.service.ts index adc54df3..1d2ce0d2 100644 --- a/src/app/routes/tax-management/services/tax-management.service.ts +++ b/src/app/routes/tax-management/services/tax-management.service.ts @@ -11,22 +11,24 @@ import { Injectable, Injector } from '@angular/core'; import { _HttpClient } from '@delon/theme'; -import { NzMessageService } from 'ng-zorro-antd/message'; -import { map } from 'rxjs/operators'; -import { BaseService } from 'src/app/shared/services/core/base.service'; -import { EAFileUtil } from 'src/app/shared/utils/file.util'; +import { ShipperBaseService } from '@shared'; @Injectable({ - providedIn: 'root', + providedIn: 'root' }) -export class TaxManagementService extends BaseService { +export class TaxManagementService extends ShipperBaseService { // 获取货主企业列表 public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; public $api_order_reporting_page = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList'; - + // 查询运营报表 $api_listOperationalReportPage = `/api/sdc/report/listOperationalReportPage`; - $api_get_individual_income_page = `/api/sdc/billOperate/listWholePage`; // 订单上报列表 + + // 查询个税申报明细 + $api_get_individual_income_page = `/api/sdc/taxIncome/list/page`; + // 更新所有数据个税申报明细 + $api_update_individual_income_page = `/api/sdc/taxIncome/updateAll`; + // 订单上报列表 $api_getTaxOrderPage_page = `/api/sdc/taxOrder/getTaxOrderPage`; // 根据订单Id更新税务订单