车辆接口更新

This commit is contained in:
wangshiming
2022-01-24 10:46:40 +08:00
parent fbeb7ce765
commit 5ffcf27259
4 changed files with 248 additions and 140 deletions

View File

@ -4,8 +4,8 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-12 10:52:50 * @Date : 2022-01-12 10:52:50
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-21 16:57:10 * @LastEditTime : 2022-01-24 10:27:04
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\receipts-audit\\receipts-audit.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\compliance-audit\\compliance-audit.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
<!-- 搜索表单 --> <!-- 搜索表单 -->
@ -43,15 +43,16 @@
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" <nz-tabset (nzSelectedIndexChange)="selectChange($event)"
[nzTabBarExtraContent]="extraTemplate"> [nzTabBarExtraContent]="extraTemplate">
<nz-tab [nzTitle]="'全部('+tabs?.totalCount+')'"></nz-tab> <nz-tab [nzTitle]="'全部('+tabs?.totalCount+')'"></nz-tab>
<nz-tab [nzTitle]="'审核('+tabs?.receivedQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'抽查('+tabs?.spotQuantity+')'"></nz-tab>
<nz-tab [nzTitle]="'已审核('+tabs?.stayQuantity+')'"></nz-tab> <nz-tab [nzTitle]="'合格('+tabs?.qualifiedtity+')'"></nz-tab>
<nz-tab [nzTitle]="'不合格('+tabs?.unstayQuantity+')'"></nz-tab>
</nz-tabset> </nz-tabset>
<div style="margin-top: 15px;"> <div style="margin-top: 15px;">
<st <st
#st #st
[bordered]="true" [bordered]="true"
[scroll]="{ x: '2000px' }" [scroll]="{ x: '2000px' }"
[data]="service.$api_get_billExamine_page" [data]="service.$api_get_listCompliancePage"
[columns]="columns" [columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }" [req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }" [res]="{ reName: { list: 'data.records', total: 'data.total' } }"
@ -61,16 +62,6 @@
<ng-template st-row="freightPrice" let-item let-index="index"> <ng-template st-row="freightPrice" let-item let-index="index">
{{ item.freightPrice | currency}} {{ item.freightPrice | currency}}
</ng-template> </ng-template>
<ng-template st-row="loadingLadingBillFilePath" let-item let-index="index">
<div>
<span><img [src]="item.loadingLadingBillFilePath" alt=""></span>
<span><img [src]="item.loadingPeopleVehiclesGoodsFilePath" alt=""></span>
</div>
</ng-template>
<ng-template st-row="unloadingLadingBillFilePath" let-item let-index="index">
<span><img [src]="item.unloadingLadingBillFilePath" alt=""></span>
<span><img [src]="item.unloadingPeopleVehiclesGoodsFilePath" alt=""></span>
</ng-template>
<ng-template st-row="loadingTime" let-item let-index="index"> <ng-template st-row="loadingTime" let-item let-index="index">
<div *ngIf="item?.loadingTime">装 | {{item?.loadingTime}}</div> <div *ngIf="item?.loadingTime">装 | {{item?.loadingTime}}</div>
<div *ngIf="item?.unloadingTime">卸 | {{item?.unloadingTime}}</div> <div *ngIf="item?.unloadingTime">卸 | {{item?.unloadingTime}}</div>
@ -107,45 +98,50 @@
</p> </p>
</div> </div>
</ng-template> </ng-template>
<!-- <ng-template st-row="externalSn" let-item let-index="index">
<span class="mr-xs">{{111111}}</span>
<a (click)="editEnternalSn(item)">编辑</a>
</ng-template> -->
<ng-template st-row="enStatusStr27878" let-item let-index="index">
<div class="mr-xs" nzPopoverTitle="Title" nz-popover [nzPopoverContent]="contentTemplate">{{item.no}}</div>
</ng-template>
<ng-template #contentTemplate>
<div>
<p>预付¥200.00</p>
<p>到付¥200.00</p>
<p>油卡¥200.00</p>
<p>回单付¥200.00</p>
<p>小计¥200.00</p>
<p>附加费¥200.00</p>
</div>
</ng-template>
</st> </st>
</div> </div>
</nz-card> </nz-card>
<ng-template #enable>
<div class="ant-popover-message">
<i nz-icon nzType="info-circle" nzTheme="fill"></i>
<div class="ant-popover-message-title ng-star-inserted self-ant-popover-title" style="font-size: 16px">已选择{{selectedRows?.length || 0}}条订单,确认批量签收吗?
</div>
<div class="ant-popover-message-title ng-star-inserted">
签收后不可再修改运费,请确保运费等信息准确无误后,再进行签收。
</div>
</div>
</ng-template>
<ng-template #extraTemplate> <ng-template #extraTemplate>
<div> <div>
<!-- <button nz-button nzType="primary" nzGhost nz-popconfirm <button nz-button nzType="primary" (click)="audit()">
[nzPopconfirmTitle]="enable" (nzOnConfirm)="userAction()" nzPopconfirmPlacement="bottomRight">
批量签收 批量签收
</button> --> </button>
</div> </div>
</ng-template> </ng-template>
<nz-modal [(nzVisible)]="isVisibleRE" [nzWidth]="600" [nzFooter]="nzModalFooterview2" (nzOnOk)="handleOK()" nzTitle="审核" (nzOnCancel)="handleCancel('1')">
<ng-container *nzModalContent>
<sf #sfView [schema]="schemaView" [ui]="uiView" [compact]="true" [button]="'none'">
</sf>
</ng-container>
<ng-template #nzModalFooterview2>
<button nz-button nzType="default" (click)="reject()">不合格</button>
<button nz-button nzType="primary" (click)="handleOK()">合格</button>
</ng-template>
</nz-modal>
<nz-modal [(nzVisible)]="isVisible" [nzWidth]="600" [nzFooter]="nzModalFooter" nzTitle="运费变更记录" (nzOnCancel)="handleCancel('0')">
<ng-container *nzModalContent>
<st
#stFloat
multiSort
size="small"
[bordered]="true"
[data]="service.$api_get_listChangeApply"
[columns]="columnsFloat"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: changeParams }"
[res]="{ reName: { list: 'data', total: 'data.total' } }"
>
<ng-template st-row="order" let-item let-index="index">
{{ index + 1 }}
</ng-template>
</st>
</ng-container>
<ng-template #nzModalFooter>
<button nz-button nzType="primary" (click)="handleCancel('0')">取消</button>
<button nz-button nzType="default" (click)="handleCancel('0')">确定</button>
</ng-template>
</nz-modal>

View File

@ -22,19 +22,27 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
uiView: SFUISchema = {}; uiView: SFUISchema = {};
schema: SFSchema = {}; schema: SFSchema = {};
schemaView: SFSchema = {}; schemaView: SFSchema = {};
changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录
auditId: any;
auditMany = false; auditMany = false;
isVisibleView = false; isVisibleView = false;
isVisibleEvaluate = false; isVisibleEvaluate = false;
isVisible = false; isVisible = false;
isVisibleRE = false;
_$expand = false; _$expand = false;
@ViewChild('st') private readonly st!: STComponent; @ViewChild('st') private readonly st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sf', { static: false }) sf!: SFComponent;
@ViewChild('sfView', { static: false }) sfView!: SFComponent;
@ViewChild('stFloat') private readonly stFloat!: STComponent;
@ViewChild('stFloatView') private readonly stFloatView!: STComponent;
columns: STColumn[] = []; columns: STColumn[] = [];
columnsFloat: STColumn[] = [];
resourceStatus: any; resourceStatus: any;
tabs = { tabs = {
receivedQuantity: 0, totalCount: 0,
stayQuantity: 0, qualifiedtity: 0,
totalCount: 0 spotQuantity: 0,
unstayQuantity: 0
}; };
constructor( constructor(
public service: OrderManagementService, public service: OrderManagementService,
@ -62,6 +70,11 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
} }
}; };
} }
get changeParams() {
return {
id: this.changeId
};
}
get selectedRows() { get selectedRows() {
return this.st?.list.filter(item => item.checked) || []; return this.st?.list.filter(item => item.checked) || [];
} }
@ -71,20 +84,23 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
} }
getGoodsSourceStatistical() { getGoodsSourceStatistical() {
this.tabs = { this.tabs = {
receivedQuantity: 0, totalCount: 0,
stayQuantity: 0, qualifiedtity: 0,
totalCount: 0 spotQuantity: 0,
unstayQuantity: 0
}; };
const params: any = Object.assign({}, this.reqParams || {}); const params: any = Object.assign({}, this.reqParams || {});
delete params.billStatus delete params.billStatus
this.service.request(this.service.$api_get_getAuditStatistical, { ...this.reqParams }).subscribe(res => { this.service.request(this.service.$api_get_getComplianceStatisticalStatus, { ...this.reqParams }).subscribe(res => {
if (res) { if (res) {
let totalCount = 0; let totalCount = 0;
res.forEach((element: any) => { res.forEach((element: any) => {
if (element.billStatusLabel === '待审核') { if (element.complianceStatusLabel === '待抽查') {
this.tabs.receivedQuantity = element.quantity; this.tabs.spotQuantity = element.quantity;
} else if (element.billStatusLabel === '已审核') { } else if (element.complianceStatusLabel === '合格') {
this.tabs.stayQuantity = element.quantity; this.tabs.qualifiedtity = element.quantity;
} else if (element.complianceStatusLabel === '不合格') {
this.tabs.qualifiedtity = element.quantity;
} }
totalCount += element.quantity; totalCount += element.quantity;
}); });
@ -239,19 +255,19 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
} }
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },
settlementBasis: { createTime: {
title: '装卸凭证', title: '创建时间',
type: 'string', type: 'string',
ui: { ui: {
widget: 'dict-select', widget: 'date',
containsAllLable: true, mode: 'range',
params: { dictKey: 'goodresource:settlement:type' }, format: 'yyyy-MM-dd',
containAllLable: true, allowClear: true,
visibleIf: { visibleIf: {
_$expand: (value: boolean) => value _$expand: (value: boolean) => value
} }
} as SFSelectWidgetSchema } as SFDateWidgetSchema
} },
}, },
type: 'object' type: 'object'
}; };
@ -272,7 +288,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
render: 'billCode' render: 'billCode'
}, },
{ {
title: '费明细', title: '费明细',
width: '250px', width: '250px',
className: 'text-right', className: 'text-right',
render: 'mybidDetailInfo' render: 'mybidDetailInfo'
@ -280,6 +296,7 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
{ title: '网络货运人', index: 'enterpriseInfoName', width: '220px', className: 'text-left' }, { title: '网络货运人', index: 'enterpriseInfoName', width: '220px', className: 'text-left' },
{ title: '货主', index: 'shipperAppUserName', width: '220px', className: 'text-left' }, { title: '货主', index: 'shipperAppUserName', width: '220px', className: 'text-left' },
{ title: '所属项目', index: 'enterpriseProjectName', width: '220px', className: 'text-left' }, { title: '所属项目', index: 'enterpriseProjectName', width: '220px', className: 'text-left' },
{ title: '关联运单号', index: 'wayBillCode', width: '220px', className: 'text-left' },
{ title: '货源编号', index: 'resourceCode', width: '180px', className: 'text-left' }, { title: '货源编号', index: 'resourceCode', width: '180px', className: 'text-left' },
{ title: '装货地', index: 'loadingAddressArr', width: '180px', className: 'text-left' }, { title: '装货地', index: 'loadingAddressArr', width: '180px', className: 'text-left' },
{ {
@ -315,16 +332,28 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
render: 'loadingTime' render: 'loadingTime'
}, },
{ {
title: '装货凭证', title: '创建时间',
width: '180px', width: '180px',
className: 'text-left', className: 'text-left',
render: 'loadingLadingBillFilePath' index: 'createTime'
}, },
{ {
title: '卸货凭证', title: '审核人',
width: '180px', width: '180px',
className: 'text-left', className: 'text-left',
render: 'unloadingLadingBillFilePath' index: 'loadingLadingBillFilePath'
},
{
title: '审核时间',
width: '180px',
className: 'text-left',
index: 'loadingLadingBillFilePath'
},
{
title: '状态',
width: '180px',
className: 'text-left',
index: 'loadingLadingBillFilePath'
}, },
{ {
title: '操作', title: '操作',
@ -333,18 +362,18 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
className: 'text-left', className: 'text-left',
buttons: [ buttons: [
{ {
text: '通过', text: '查看申诉记录',
click: _record => console.log('1'), click: _record => console.log('1'),
// iif: item => item.billStatus == '5' // iif: item => item.billStatus == '5'
}, },
{ {
text: '生成电子单据', text: '运费变更记录',
click: _record => this.generate(_record), click: _record => this.OpenPrice(_record),
// iif: item => item.billStatus == '4' // iif: item => item.billStatus == '4'
}, },
{ {
text: '修改', text: '合规抽查',
click: _record => this.modification(_record), click: _record => this.audit(_record),
// iif: item => item.billStatus == '4' // iif: item => item.billStatus == '4'
}, },
] ]
@ -377,70 +406,144 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
* 导入货源 * 导入货源
*/ */
importGoodsSource() {} importGoodsSource() {}
audit(item: any) {} OpenPrice(item: any) {
this.changeId = item.id;
this.isVisible = true;
}
initSTAudit(value: number) {
if (value == 1) {
this.schemaView = {
properties: {
billCode: {
title: '订单号',
type: 'string',
default: this.auditId,
ui: {
widget: 'text'
}
},
complianceRemark: {
title: '备注',
type: 'string',
maxLength: 50,
ui: {
placeholder: '合格可以不用填写原因 ,不合格必须说明原因',
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 }
}
}
}
};
} else {
this.schemaView = {
properties: {
billCode: {
title: '',
type: 'string',
default: `已选${this.selectedRows?.length}条订单`,
ui: {
widget: 'text'
}
},
complianceRemark: {
title: '备注',
type: 'string',
maxLength: 50,
ui: {
placeholder: '合格可以不用填写原因 ,不合格必须说明原因',
widget: 'textarea',
autosize: { minRows: 3, maxRows: 6 }
}
}
}
};
}
this.uiView = { '*': { spanLabelFixed: 110, grid: { span: 24 } } };
}
/*
* 审核关闭弹窗
*/
handleCancel(value?: string) {
if(value === '0') {
this.isVisible = false;
} else if(value === '1') {
this.isVisibleRE = false;
}
}
/** /**
* 审核通过按钮 * 审核通过按钮
*/ */
handleOK() {} handleOK() {
OpenPrice(item: any) { let idList: any[] = [];
this.isVisible = true; if(this.selectedRows.length > 0) {
} this.selectedRows.forEach(item => {
// 修改 idList.push(item.id);
modification(item: any) {
const modalRef = this.modal.create({
nzTitle: '修改',
nzWidth: '50%',
nzContent: orderManagementVoucherViewComponent,
nzComponentParams: {
i: item,
Status: 1
},
nzFooter: null
}); });
modalRef.afterClose.subscribe((result: any) => { } else {
this.st.load(1); idList.push(this.sfView.value.billCode)
}
const parms = {
ids: idList,
complianceRemark: this.sfView.value.complianceRemark,
complianceStatus: 1,
};
this.service.request(this.service.$api_get_updateBillByCompliance, parms).subscribe(res => {
if (res) {
this.service.msgSrv.success('提交成功!');
this.isVisibleRE = false;
this.st?.load(1);
this.getGoodsSourceStatistical() this.getGoodsSourceStatistical()
}
}); });
} }
// 生成电子单据 /**
generate(item: any) { * 审核拒绝按钮
const modalRef = this.modal.create({ */
nzTitle: '查看凭证', reject() {
nzWidth: '50%', if(!this.sfView.value.complianceRemark) {
nzContent: orderManagementVoucherViewComponent, this.service.msgSrv.error('备注不能为空!');
nzComponentParams: { return;
i: item, }
Status: 2 let idList: any[] = [];
}, if(this.selectedRows.length > 0) {
nzFooter: null this.selectedRows.forEach(item => {
idList.push(item.id);
}); });
modalRef.afterClose.subscribe((result: any) => { } else {
this.st.load(1); idList.push(this.sfView.value.billCode)
}
const parms = {
ids: idList,
complianceRemark: this.sfView.value.complianceRemark,
complianceStatus: 2,
};
this.service.request(this.service.$api_get_updateBillByCompliance, parms).subscribe(res => {
if (res) {
this.service.msgSrv.success('提交成功!');
this.isVisibleRE = false;
this.st?.load(1);
this.getGoodsSourceStatistical() this.getGoodsSourceStatistical()
}
}); });
} }
// 取消订单 /**
cancellation(item: any) { *合规抽查
// api_get_cancelAnOrder */
this.modal.confirm({ audit(item?: any) {
nzTitle: '<b>确定取消该订单吗?</b>', if (item) {
nzContent: `<b>取消后无法恢复,请确认</b>`, this.isVisibleRE = true;
nzOnOk: () => this.auditId = item.id;
this.service.request(this.service.$api_get_cancelAnOrder, { id: item.id }).subscribe(res => { this.initSTAudit(1);
if (res === true) { } else {
this.service.msgSrv.success('操作成功!'); if(this.selectedRows.length <= 0) {
this.st?.reload(1); this.service.msgSrv.error('请选择订单!')
this.getGoodsSourceStatistical(); return;
this.initST(); } else {
this.isVisibleRE = true;
this.initSTAudit(2);
} }
this.st?.reload(1);
this.getGoodsSourceStatistical();
})
});
} }
// 修改订单
changeOrder(value: any) {
this.router.navigate(['order-management/bulk-detailChange', value.id]);
} }
} }

View File

@ -567,10 +567,8 @@ resourceStatus: any;
if(type === '0') { if(type === '0') {
this.isVisible = false this.isVisible = false
} else if(type === '1') { } else if(type === '1') {
console.log(type)
this.isVisibleView = false this.isVisibleView = false
} else if(type === '2') { } else if(type === '2') {
console.log(type)
this.isVisibleEvaluate = false this.isVisibleEvaluate = false
} }
} }

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-03 15:31:52 * @Date : 2021-12-03 15:31:52
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-21 16:51:32 * @LastEditTime : 2022-01-24 09:58:40
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -135,6 +135,17 @@ export class OrderManagementService extends ShipperBaseService {
public $api_get_billAudit = '/api/sdc/billExamine/billAudit'; public $api_get_billAudit = '/api/sdc/billExamine/billAudit';
// 统计单据审核状态数量 // 统计单据审核状态数量
public $api_get_getAuditStatistical = '/api/sdc/billExamine/getAuditStatistical'; public $api_get_getAuditStatistical = '/api/sdc/billExamine/getAuditStatistical';
// 查询规则抽查列表
public $api_get_listCompliancePage = '/api/sdc/billOperate/listCompliancePage';
// 规则抽查审批
public $api_get_updateBillByCompliance = '/api/sdc/billOperate/updateBillByCompliance';
// 获取规则抽查分类统计
public $api_get_getComplianceStatisticalStatus = '/api/sdc/billOperate/getComplianceStatisticalStatus';
/** /**
* 根据企业ID获取企业历史网络货运人 * 根据企业ID获取企业历史网络货运人
* @returns * @returns