diff --git a/src/api/wms/processproductionRequestDetail/index.ts b/src/api/wms/processproductionRequestDetail/index.ts
new file mode 100644
index 000000000..0ea781d6e
--- /dev/null
+++ b/src/api/wms/processproductionRequestDetail/index.ts
@@ -0,0 +1,62 @@
+import request from '@/config/axios'
+
+export interface ProcessproductionRequestDetailVO {
+ id: number
+ masterId: number
+ number: string
+ processCode: string
+ productionLine: string
+ locationCode: string
+ componentItemCode: string
+ batch: string
+ componentItemcodeQty: number
+ effectiveDate: Date
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询工序报产申请子列表
+export const getProcessproductionRequestDetailPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/processproduction-request-detail/senior', data })
+ } else {
+ return await request.get({ url: `/wms/processproduction-request-detail/page`, params })
+ }
+}
+
+// 查询工序报产申请子详情
+export const getProcessproductionRequestDetail = async (id: number) => {
+ return await request.get({ url: `/wms/processproduction-request-detail/get?id=` + id })
+}
+
+// 新增工序报产申请子
+export const createProcessproductionRequestDetail = async (data: ProcessproductionRequestDetailVO) => {
+ return await request.post({ url: `/wms/processproduction-request-detail/create`, data })
+}
+
+// 修改工序报产申请子
+export const updateProcessproductionRequestDetail = async (data: ProcessproductionRequestDetailVO) => {
+ return await request.put({ url: `/wms/processproduction-request-detail/update`, data })
+}
+
+// 删除工序报产申请子
+export const deleteProcessproductionRequestDetail = async (id: number) => {
+ return await request.delete({ url: `/wms/processproduction-request-detail/delete?id=` + id })
+}
+
+// 导出工序报产申请子 Excel
+export const exportProcessproductionRequestDetail = async (params) => {
+ return await request.download({ url: `/wms/processproduction-request-detail/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/processproduction-request-detail/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/api/wms/processproductionRequestMain/index.ts b/src/api/wms/processproductionRequestMain/index.ts
new file mode 100644
index 000000000..66a626e93
--- /dev/null
+++ b/src/api/wms/processproductionRequestMain/index.ts
@@ -0,0 +1,57 @@
+import request from '@/config/axios'
+
+export interface ProcessproductionRequestMainVO {
+ id: number
+ number: string
+ itemCode: string
+ completedQuantity: number
+ scrapQuantity: number
+ available: string
+ remark: string
+ deletionTime: Date
+ deleterId: string
+ extraProperties: string
+ concurrencyStamp: number
+ siteId: string
+}
+
+// 查询工序报产申请主列表
+export const getProcessproductionRequestMainPage = async (params) => {
+ if (params.isSearch) {
+ delete params.isSearch
+ const data = {...params}
+ return await request.post({ url: '/wms/processproduction-request-main/senior', data })
+ } else {
+ return await request.get({ url: `/wms/processproduction-request-main/page`, params })
+ }
+}
+
+// 查询工序报产申请主详情
+export const getProcessproductionRequestMain = async (id: number) => {
+ return await request.get({ url: `/wms/processproduction-request-main/get?id=` + id })
+}
+
+// 新增工序报产申请主
+export const createProcessproductionRequestMain = async (data: ProcessproductionRequestMainVO) => {
+ return await request.post({ url: `/wms/processproduction-request-main/create`, data })
+}
+
+// 修改工序报产申请主
+export const updateProcessproductionRequestMain = async (data: ProcessproductionRequestMainVO) => {
+ return await request.put({ url: `/wms/processproduction-request-main/update`, data })
+}
+
+// 删除工序报产申请主
+export const deleteProcessproductionRequestMain = async (id: number) => {
+ return await request.delete({ url: `/wms/processproduction-request-main/delete?id=` + id })
+}
+
+// 导出工序报产申请主 Excel
+export const exportProcessproductionRequestMain = async (params) => {
+ return await request.download({ url: `/wms/processproduction-request-main/export-excel`, params })
+}
+
+// 下载用户导入模板
+export const importTemplate = () => {
+ return request.download({ url: '/wms/processproduction-request-main/get-import-template' })
+}
\ No newline at end of file
diff --git a/src/views/wms/productionManage/processproduction/processproductionRequest/index.vue b/src/views/wms/productionManage/processproduction/processproductionRequest/index.vue
new file mode 100644
index 000000000..aaa809414
--- /dev/null
+++ b/src/views/wms/productionManage/processproduction/processproductionRequest/index.vue
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ row.code }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/wms/productionManage/processproduction/processproductionRequest/processproductionRequestMain.data.ts b/src/views/wms/productionManage/processproduction/processproductionRequest/processproductionRequestMain.data.ts
new file mode 100644
index 000000000..869d7cf11
--- /dev/null
+++ b/src/views/wms/productionManage/processproduction/processproductionRequest/processproductionRequestMain.data.ts
@@ -0,0 +1,274 @@
+import type { CrudSchema } from '@/hooks/web/useCrudSchemas'
+import { dateFormatter } from '@/utils/formatTime'
+
+
+export const ProcessproductionRequestMain = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ isTable:false,
+ isTableForm:false,
+ },
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '物料代码',
+ field: 'itemCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '完工数量',
+ field: 'completedQuantity',
+ sort: 'custom',
+ },
+ {
+ label: '报废数量',
+ field: 'scrapQuantity',
+ sort: 'custom',
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isSearch: false,
+ isTable:false,
+ isForm:false,
+ 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: '删除者ID',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: false,
+ isTable:false,
+ },
+ {
+ label: '扩展属性',
+ field: 'extraProperties',
+ sort: 'custom',
+ isSearch: false,
+ isTable:false,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: false,
+ isTable:false,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: false,
+ isTable:false,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+// 表单校验
+export const ProcessproductionRequestMainRules = reactive({
+ available: [required],
+ concurrencyStamp: [required],
+})
+
+
+export const ProcessproductionRequestDetail = useCrudSchemas(reactive([
+ {
+ label: 'id',
+ field: 'id',
+ sort: 'custom',
+ isForm: false,
+ },
+ {
+ label: '主表ID',
+ field: 'masterId',
+ sort: 'custom',
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '单据号',
+ field: 'number',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '工序',
+ field: 'processCode',
+ sort: 'custom',
+ },
+ {
+ label: '生产线',
+ field: 'productionLine',
+ sort: 'custom',
+ },
+ {
+ label: '库位代码',
+ field: 'locationCode',
+ sort: 'custom',
+ },
+ {
+ label: '子物料代码',
+ field: 'componentItemCode',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '批次',
+ field: 'batch',
+ sort: 'custom',
+ },
+ {
+ label: '子物料数量',
+ field: 'componentItemcodeQty',
+ sort: 'custom',
+ },
+ {
+ label: '生效日期',
+ field: 'effectiveDate',
+ sort: 'custom',
+ formatter: dateFormatter,
+ form: {
+ component: 'DatePicker',
+ componentProps: {
+ type: 'datetime',
+ valueFormat: 'x'
+ }
+ },
+ },
+ {
+ label: '是否可用',
+ field: 'available',
+ sort: 'custom',
+ },
+ {
+ label: '备注',
+ field: 'remark',
+ sort: 'custom',
+ },
+ {
+ label: '创建时间',
+ field: 'createTime',
+ sort: 'custom',
+ formatter: dateFormatter,
+ isForm: false,
+ },
+ {
+ label: '删除时间',
+ field: 'deletionTime',
+ 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: '删除者ID',
+ field: 'deleterId',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '扩展属性',
+ field: 'extraProperties',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '并发乐观锁',
+ field: 'concurrencyStamp',
+ sort: 'custom',
+ isSearch: true,
+ form: {
+ component: 'InputNumber',
+ value: 0
+ },
+ },
+ {
+ label: '地点ID',
+ field: 'siteId',
+ sort: 'custom',
+ isSearch: true,
+ },
+ {
+ label: '操作',
+ field: 'action',
+ isForm: false,
+ table: {
+ width: 150,
+ fixed: 'right'
+ }
+ }
+]))
+
+// 表单校验
+export const ProcessproductionRequestDetailRules = reactive({
+
+})
\ No newline at end of file