From 62bc1ed96c5637540e9ac8d0a843e990ced15d44 Mon Sep 17 00:00:00 2001 From: songguoqiang <765017469@qq.com> Date: Wed, 9 Oct 2024 10:13:52 +0800 Subject: [PATCH 1/6] =?UTF-8?q?YT-170=EF=BC=9A=E5=AE=A2=E6=88=B7=E5=AF=B9?= =?UTF-8?q?=E8=B4=A6=E5=8D=95=E6=A8=A1=E5=9D=97=E9=83=A8=E5=88=86=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/customerStatementDetail/index.ts | 77 ++++ src/api/wms/customerStatementMain/index.ts | 63 +++ .../src/ImportCustomerStatementForm.vue | 426 ++++++++++++++++++ .../customerSaleInvoiceDetail.data.ts | 121 +++++ .../customerStatementMain.data.ts | 224 +++++++++ .../customerStatement/index.vue | 251 +++++++++++ .../customerToolApportStatementDetail.data.ts | 173 +++++++ .../customerToolApportStatement/index.vue | 244 ++++++++++ 8 files changed, 1579 insertions(+) create mode 100644 src/api/wms/customerStatementDetail/index.ts create mode 100644 src/api/wms/customerStatementMain/index.ts create mode 100644 src/components/ImportForm/src/ImportCustomerStatementForm.vue create mode 100644 src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerSaleInvoiceDetail.data.ts create mode 100644 src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerStatementMain.data.ts create mode 100644 src/views/wms/deliversettlementManage/customerStatement/customerStatement/index.vue create mode 100644 src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/customerToolApportStatementDetail.data.ts create mode 100644 src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/index.vue diff --git a/src/api/wms/customerStatementDetail/index.ts b/src/api/wms/customerStatementDetail/index.ts new file mode 100644 index 000000000..0c4729f6d --- /dev/null +++ b/src/api/wms/customerStatementDetail/index.ts @@ -0,0 +1,77 @@ +import request from '@/config/axios' + +export interface CustomerStatementDetailVO { + id: number + number: string + masterId: number + invoiceType: string + releaseNumber: string + ingress: string + ingress2: string + itemCode: string + articleNumber: string + articleName: string + backNumber: string + checkTime: Date + uom: string + qty: number + price: number + amount: number + allocationPrice: number + tftmQuantity: number + intexQuantity: number + quantityVariance: number + tftmPrice: number + intexPrice: number + priceVariance: number + tftmAmount: number + intexAmount: number + amountVariance: number + dischargingTime: Date + acceptCheckTime: Date + remark: string + available: string + siteId: string + concurrencyStamp: string +} + +// 查询客户对账单子信息表(WMS)列表 +export const getCustomerStatementDetailPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customer-statement-detail/senior', data }) + } else { + return await request.get({ url: `/wms/customer-statement-detail/page`, params }) + } +} + +// 查询客户对账单子信息表(WMS)详情 +export const getCustomerStatementDetail = async (id: number) => { + return await request.get({ url: `/wms/customer-statement-detail/get?id=` + id }) +} + +// 新增客户对账单子信息表(WMS) +export const createCustomerStatementDetail = async (data: CustomerStatementDetailVO) => { + return await request.post({ url: `/wms/customer-statement-detail/create`, data }) +} + +// 修改客户对账单子信息表(WMS) +export const updateCustomerStatementDetail = async (data: CustomerStatementDetailVO) => { + return await request.put({ url: `/wms/customer-statement-detail/update`, data }) +} + +// 删除客户对账单子信息表(WMS) +export const deleteCustomerStatementDetail = async (id: number) => { + return await request.delete({ url: `/wms/customer-statement-detail/delete?id=` + id }) +} + +// 导出客户对账单子信息表(WMS) Excel +export const exportCustomerStatementDetail = async (params) => { + return await request.download({ url: `/wms/customer-statement-detail/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customer-statement-detail/get-import-template' }) +} \ No newline at end of file diff --git a/src/api/wms/customerStatementMain/index.ts b/src/api/wms/customerStatementMain/index.ts new file mode 100644 index 000000000..df91e823d --- /dev/null +++ b/src/api/wms/customerStatementMain/index.ts @@ -0,0 +1,63 @@ +import request from '@/config/axios' + +export interface CustomerStatementMainVO { + id: number + number: string + customerCode: string + customerName: string + yearsMonth: Date + status: string + comparisonTime: Date + publishTime: Date + shareTime: Date + beInvoicedTime: Date + invoicedTime: Date + issuedInvoicedTime: Date + abrogateTime: Date + versionNumber: string + remark: string + available: string + siteId: string + concurrencyStamp: string +} + +// 查询客户对账单主信息表(WMS)列表 +export const getCustomerStatementMainPage = async (params) => { + if (params.isSearch) { + delete params.isSearch + const data = {...params} + return await request.post({ url: '/wms/customer-statement-main/senior', data }) + } else { + return await request.get({ url: `/wms/customer-statement-main/page`, params }) + } +} + +// 查询客户对账单主信息表(WMS)详情 +export const getCustomerStatementMain = async (id: number) => { + return await request.get({ url: `/wms/customer-statement-main/get?id=` + id }) +} + +// 新增客户对账单主信息表(WMS) +export const createCustomerStatementMain = async (data: CustomerStatementMainVO) => { + return await request.post({ url: `/wms/customer-statement-main/create`, data }) +} + +// 修改客户对账单主信息表(WMS) +export const updateCustomerStatementMain = async (data: CustomerStatementMainVO) => { + return await request.put({ url: `/wms/customer-statement-main/update`, data }) +} + +// 删除客户对账单主信息表(WMS) +export const deleteCustomerStatementMain = async (id: number) => { + return await request.delete({ url: `/wms/customer-statement-main/delete?id=` + id }) +} + +// 导出客户对账单主信息表(WMS) Excel +export const exportCustomerStatementMain = async (params) => { + return await request.download({ url: `/wms/customer-statement-main/export-excel`, params }) +} + +// 下载用户导入模板 +export const importTemplate = () => { + return request.download({ url: '/wms/customer-statement-main/get-import-template' }) +} \ No newline at end of file diff --git a/src/components/ImportForm/src/ImportCustomerStatementForm.vue b/src/components/ImportForm/src/ImportCustomerStatementForm.vue new file mode 100644 index 000000000..ad5816da4 --- /dev/null +++ b/src/components/ImportForm/src/ImportCustomerStatementForm.vue @@ -0,0 +1,426 @@ + + + + + diff --git a/src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerSaleInvoiceDetail.data.ts b/src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerSaleInvoiceDetail.data.ts new file mode 100644 index 000000000..f2bb64ea2 --- /dev/null +++ b/src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerSaleInvoiceDetail.data.ts @@ -0,0 +1,121 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const CustomerSaleInvoiceDetailRules = reactive({ + itemCode: [required], + articleNumber: [required], + qty: [required], + price: [required], + allocationPrice: [required], + sumPrice: [required], + afterTaxAmount: [required], + beforeTaxAmount: [required], + taxAmount: [required], +}) + +export const CustomerSaleInvoiceDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isForm: false, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + }, + { + label: '主id', + field: 'masterId', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '品番即物料代码', + field: 'itemCode', + sort: 'custom', + isSearch: true, + }, + { + label: '品号即品番2', + field: 'articleNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + }, + { + label: '单价', + field: 'price', + sort: 'custom', + }, + { + label: '模具分摊单价', + field: 'allocationPrice', + sort: 'custom', + }, + { + label: '合计单价', + field: 'sumPrice', + sort: 'custom', + }, + { + label: '含税金额', + field: 'afterTaxAmount', + sort: 'custom', + }, + { + label: '未税金额', + field: 'beforeTaxAmount', + sort: 'custom', + }, + { + label: '税额', + field: 'taxAmount', + sort: 'custom', + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + }, + { + label: '是否可用默认TRUE', + field: 'available', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerStatementMain.data.ts b/src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerStatementMain.data.ts new file mode 100644 index 000000000..55c7540dd --- /dev/null +++ b/src/views/wms/deliversettlementManage/customerStatement/customerStatement/customerStatementMain.data.ts @@ -0,0 +1,224 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const CustomerStatementMainRules = reactive({ + customerCode: [required], + customerName: [required], + yearsMonth: [required], +}) + +export const CustomerStatementMain = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isForm: false, + }, + { + label: '单据号', + field: 'number', + sort: 'custom', + isSearch: true, + }, + { + label: '客户代码', + field: 'customerCode', + sort: 'custom', + isSearch: true, + }, + { + label: '客户名称', + field: 'customerName', + sort: 'custom', + isSearch: true, + }, + { + label: '年月', + field: 'yearsMonth', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '状态', + field: 'status', + sort: 'custom', + isSearch: true, + form: { + component: 'Select' + }, + }, + { + label: '重新比对更新时间', + field: 'comparisonTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '发布时间', + field: 'publishTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '已分摊时间', + field: 'shareTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '待开票时间', + field: 'beInvoicedTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '开票中时间', + field: 'invoicedTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '已开票时间', + field: 'issuedInvoicedTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '已作废时间', + field: 'abrogateTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '版本号', + field: 'versionNumber', + sort: 'custom', + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + }, + // { + // label: '是否可用默认TRUE', + // field: 'available', + // sort: 'custom', + // }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + // { + // label: '地点ID', + // field: 'siteId', + // sort: 'custom', + // }, + // { + // label: '并发乐观锁', + // field: 'concurrencyStamp', + // sort: 'custom', + // }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) + +// 表单校验 +export const CustomerStatementDetailRules = reactive({ + releaseNumber: [required], + ingress: [required], + ingress2: [required], + itemCode: [required], + articleNumber: [required], + articleName: [required], + checkTime: [required], + uom: [required], + qty: [required], + price: [required], + amount: [required], +}) diff --git a/src/views/wms/deliversettlementManage/customerStatement/customerStatement/index.vue b/src/views/wms/deliversettlementManage/customerStatement/customerStatement/index.vue new file mode 100644 index 000000000..bb04e6c19 --- /dev/null +++ b/src/views/wms/deliversettlementManage/customerStatement/customerStatement/index.vue @@ -0,0 +1,251 @@ + + + diff --git a/src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/customerToolApportStatementDetail.data.ts b/src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/customerToolApportStatementDetail.data.ts new file mode 100644 index 000000000..9e047ee33 --- /dev/null +++ b/src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/customerToolApportStatementDetail.data.ts @@ -0,0 +1,173 @@ +import type { CrudSchema } from '@/hooks/web/useCrudSchemas' +import { dateFormatter } from '@/utils/formatTime' + +// 表单校验 +export const CustomerToolApportStatementDetailRules = reactive({ + invoiceNumber: [required], + articleNumber: [required], + vehicleType: [required], + amount: [required], + qty: [required], + allocationPrice: [required], + adjustmentAmount: [required], +}) + +export const CustomerToolApportStatementDetail = useCrudSchemas(reactive([ + { + label: 'id', + field: 'id', + sort: 'custom', + isTable: false, + isForm: false, + }, + { + label: '客户对账单单据号', + field: 'customerStatementNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '年月预留字段', + field: 'yearsMonth', + sort: 'custom', + }, + { + label: '客户对账单主id', + field: 'masterId', + sort: 'custom', + form: { + component: 'InputNumber', + value: 0 + }, + }, + { + label: '账票号', + field: 'invoiceNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '品号', + field: 'articleNumber', + sort: 'custom', + isSearch: true, + }, + { + label: '车型', + field: 'vehicleType', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + }, + }, + { + label: '金额', + field: 'amount', + sort: 'custom', + }, + { + label: '数量', + field: 'qty', + sort: 'custom', + }, + { + label: '模具分摊单价', + field: 'allocationPrice', + sort: 'custom', + }, + { + label: '调整金额', + field: 'adjustmentAmount', + sort: 'custom', + }, + { + label: '确认分摊时间', + field: 'verifyTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '已作废时间', + field: 'abrogateTime', + sort: 'custom', + formatter: dateFormatter, + form: { + component: 'DatePicker', + componentProps: { + type: 'datetime', + valueFormat: 'x' + } + }, + }, + { + label: '0:新增1:已作废', + field: 'status', + sort: 'custom', + isSearch: true, + form: { + component: 'SelectV2' + }, + }, + { + label: '版本号', + field: 'versionNumber', + sort: 'custom', + }, + { + label: '备注', + field: 'remark', + sort: 'custom', + }, + { + label: '是否可用默认TRUE', + field: 'available', + sort: 'custom', + }, + { + label: '创建时间', + field: 'createTime', + sort: 'custom', + formatter: dateFormatter, + isSearch: true, + search: { + component: 'DatePicker', + componentProps: { + valueFormat: 'YYYY-MM-DD HH:mm:ss', + type: 'daterange', + defaultTime: [new Date('1 00:00:00'), new Date('1 23:59:59')] + } + }, + isForm: false, + }, + { + label: '地点ID', + field: 'siteId', + sort: 'custom', + isTable: false, + isSearch: true, + }, + { + label: '并发乐观锁', + field: 'concurrencyStamp', + sort: 'custom', + isTable: false, + isSearch: true, + }, + { + label: '操作', + field: 'action', + isForm: false, + table: { + width: 150, + fixed: 'right' + } + } +])) diff --git a/src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/index.vue b/src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/index.vue new file mode 100644 index 000000000..0dce2c81b --- /dev/null +++ b/src/views/wms/deliversettlementManage/customerStatement/customerToolApportStatement/index.vue @@ -0,0 +1,244 @@ + + + From cf021a982b7b36a62e0902e08ff16cc633a2a535 Mon Sep 17 00:00:00 2001 From: songguoqiang <765017469@qq.com> Date: Wed, 9 Oct 2024 11:04:36 +0800 Subject: [PATCH 2/6] =?UTF-8?q?YT-170=EF=BC=9A=E6=B7=BB=E5=8A=A0=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E5=AF=B9=E8=B4=A6=E5=8D=95=E5=AF=BC=E5=85=A5=E6=A8=A1?= =?UTF-8?q?=E7=89=88=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/wms/customerStatementMain/index.ts | 5 ++ .../src/ImportCustomerStatementForm.vue | 46 +++++++++++++++++-- src/utils/dict.ts | 1 + .../customerStatementMain.data.ts | 9 ++-- .../customerStatement/index.vue | 2 - 5 files changed, 55 insertions(+), 8 deletions(-) diff --git a/src/api/wms/customerStatementMain/index.ts b/src/api/wms/customerStatementMain/index.ts index df91e823d..e37a5b356 100644 --- a/src/api/wms/customerStatementMain/index.ts +++ b/src/api/wms/customerStatementMain/index.ts @@ -60,4 +60,9 @@ export const exportCustomerStatementMain = async (params) => { // 下载用户导入模板 export const importTemplate = () => { return request.download({ url: '/wms/customer-statement-main/get-import-template' }) +} + +// 导入客户对账单前校验是否有相同客户代码和年月的数据存在 +export const verifyDataExist = async (yearsMonthStr: String,customerCode:String) => { + return await request.get({ url: `/wms/customer-statement-main/verifyDataExist?yearsMonthStr=` + yearsMonthStr+'&customerCode='+customerCode }) } \ No newline at end of file diff --git a/src/components/ImportForm/src/ImportCustomerStatementForm.vue b/src/components/ImportForm/src/ImportCustomerStatementForm.vue index ad5816da4..817b28da3 100644 --- a/src/components/ImportForm/src/ImportCustomerStatementForm.vue +++ b/src/components/ImportForm/src/ImportCustomerStatementForm.vue @@ -64,7 +64,7 @@ >
{{t('ts.将文件拖到此处,或')}}{{t('ts.点击上传')}}
-