# Conflicts:
#	pnpm-lock.yaml
#	src/router/modules/remaining.ts
#	src/utils/dict.ts
im
YunaiV 2026-05-01 08:22:54 +08:00
commit 3cc7ac7f8b
438 changed files with 69712 additions and 383 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 64 KiB

View File

@ -87,7 +87,7 @@
* 通用模块(必选):系统功能、基础设施
* 通用模块(可选):工作流程、支付系统、数据报表、会员中心
* 业务系统按需ERP 系统、CRM 系统、商城系统、微信公众号、AI 大模型
* 业务系统按需ERP 系统、CRM 系统、MES 系统、商城系统、微信公众号、AI 大模型、IoT 物联网
### 系统功能
@ -222,6 +222,16 @@
![功能图](/.image/common/mall-preview.png)
### 会员中心
| | 功能 | 描述 |
|-----|------|----------------------------------|
| 🚀 | 会员管理 | 会员是 C 端的消费者,该功能用于会员的搜索与管理 |
| 🚀 | 会员标签 | 对会员的标签进行创建、查询、修改、删除等操作 |
| 🚀 | 会员等级 | 对会员的等级、成长值进行管理,可用于订单折扣等会员权益 |
| 🚀 | 会员分组 | 对会员进行分组,用于用户画像、内容推送等运营手段 |
| 🚀 | 积分签到 | 回馈给签到、消费等行为的积分,会员可订单抵现、积分兑换等途径消耗 |
### ERP 系统
演示地址:<https://doc.iocoder.cn/erp-preview/>
@ -234,6 +244,14 @@
![功能图](/.image/common/crm-feature.png)
### MES 系统
演示地址:<https://doc.iocoder.cn/mes-preview/>
![功能图](/.image/common/mes-feature.png)
![功能图](/.image/common/mes-preview.png)
### AI 大模型
演示地址:<https://doc.iocoder.cn/ai-preview/>
@ -242,6 +260,22 @@
![功能图](/.image/common/ai-preview.gif)
### MES 系统
演示地址:<https://doc.iocoder.cn/mes-preview/>
![功能图](/.image/common/mes-feature.png)
![预览图](/.image/common/mes-preview.png)
### IoT 物联网
演示地址:<https://doc.iocoder.cn/iot/build>
![功能图](/.image/common/iot-feature.png)
![预览图](/.image/common/iot-preview.png)
## 🐷 演示图
### 系统功能

538
package-lock.json generated
View File

@ -1,40 +1,43 @@
{
"name": "yudao-ui-admin-vue3",
"version": "2.5.0-snapshot",
"version": "2026.03-snapshot",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "yudao-ui-admin-vue3",
"version": "2.5.0-snapshot",
"version": "2026.03-snapshot",
"license": "MIT",
"dependencies": {
"@element-plus/icons-vue": "^2.1.0",
"@element-plus/icons-vue": "2.3.2",
"@form-create/designer": "^3.2.6",
"@form-create/element-ui": "^3.2.11",
"@iconify/iconify": "^3.1.1",
"@microsoft/fetch-event-source": "^2.0.1",
"@videojs-player/vue": "^1.0.0",
"@vueuse/core": "^10.9.0",
"@wangeditor/editor": "^5.1.23",
"@wangeditor/editor-for-vue": "^5.1.10",
"@wangeditor-next/editor": "^5.6.46",
"@wangeditor-next/editor-for-vue": "^5.1.14",
"@wangeditor-next/plugin-mention": "^1.0.16",
"@zxcvbn-ts/core": "^3.0.4",
"animate.css": "^4.1.1",
"axios": "^1.6.8",
"axios": "1.9.0",
"benz-amr-recorder": "^1.1.5",
"bpmn-js-token-simulation": "^0.36.0",
"camunda-bpmn-moddle": "^7.0.1",
"cropperjs": "^1.6.1",
"crypto-js": "^4.2.0",
"dayjs": "^1.11.10",
"dayjs-plugin-lunar": "^1.4.1",
"diagram-js": "^12.8.0",
"driver.js": "^1.3.1",
"echarts": "^5.5.0",
"echarts-wordcloud": "^2.1.0",
"element-plus": "2.9.1",
"element-plus": "2.11.1",
"fast-xml-parser": "^4.3.2",
"highlight.js": "^11.9.0",
"jsencrypt": "^3.3.2",
"jsoneditor": "^10.1.3",
"lodash-es": "^4.17.21",
"markdown-it": "^14.1.0",
"markmap-common": "^0.16.0",
@ -48,16 +51,17 @@
"pinia-plugin-persistedstate": "^3.2.1",
"qrcode": "^1.5.3",
"qs": "^6.12.0",
"snabbdom": "^3.6.2",
"sortablejs": "^1.15.3",
"steady-xml": "^0.1.0",
"url": "^0.11.3",
"v3-jsoneditor": "^0.0.6",
"video.js": "^7.21.5",
"vue": "3.5.12",
"vue-dompurify-html": "^4.1.4",
"vue-i18n": "9.10.2",
"vue-router": "4.4.5",
"vue-types": "^5.1.1",
"vue3-print-nb": "^0.1.4",
"vue3-signature": "^0.2.4",
"vuedraggable": "^4.1.0",
"web-storage-cache": "^1.1.1",
@ -69,6 +73,7 @@
"@iconify/json": "^2.2.187",
"@intlify/unplugin-vue-i18n": "^2.0.0",
"@purge-icons/generated": "^0.9.0",
"@types/jsoneditor": "^9.9.5",
"@types/lodash-es": "^4.17.12",
"@types/node": "^20.11.21",
"@types/nprogress": "^0.2.3",
@ -2310,10 +2315,9 @@
}
},
"node_modules/@element-plus/icons-vue": {
"version": "2.3.1",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz",
"integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==",
"license": "MIT",
"version": "2.3.2",
"resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz",
"integrity": "sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==",
"peerDependencies": {
"vue": "^3.2.0"
}
@ -4492,6 +4496,12 @@
"node": ">=10.13.0"
}
},
"node_modules/@types/ace": {
"version": "0.0.52",
"resolved": "https://registry.npmmirror.com/@types/ace/-/ace-0.0.52.tgz",
"integrity": "sha512-YPF9S7fzpuyrxru+sG/rrTpZkC6gpHBPF14W3x70kqVOD+ks6jkYLapk4yceh36xej7K4HYxcyz9ZDQ2lTvwgQ==",
"dev": true
},
"node_modules/@types/conventional-commits-parser": {
"version": "5.0.1",
"resolved": "https://registry.npmmirror.com/@types/conventional-commits-parser/-/conventional-commits-parser-5.0.1.tgz",
@ -4792,6 +4802,38 @@
"dev": true,
"license": "MIT"
},
"node_modules/@types/jsoneditor": {
"version": "9.9.6",
"resolved": "https://registry.npmmirror.com/@types/jsoneditor/-/jsoneditor-9.9.6.tgz",
"integrity": "sha512-SJ29nWBIhnhtU5n72wxhPiuUVd8cnDHd7ZYMqVkzWtdRxTUdS8+oy1pg66yhmM1kcuanX3xmAAKfcyhhBnHEjQ==",
"dev": true,
"dependencies": {
"@types/ace": "*",
"ajv": "^6.12.0"
}
},
"node_modules/@types/jsoneditor/node_modules/ajv": {
"version": "6.12.6",
"resolved": "https://registry.npmmirror.com/ajv/-/ajv-6.12.6.tgz",
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
"json-schema-traverse": "^0.4.1",
"uri-js": "^4.2.2"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/epoberezkin"
}
},
"node_modules/@types/jsoneditor/node_modules/json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmmirror.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"node_modules/@types/lodash": {
"version": "4.17.16",
"resolved": "https://registry.npmmirror.com/@types/lodash/-/lodash-4.17.16.tgz",
@ -6991,163 +7033,256 @@
}
}
},
"node_modules/@wangeditor/basic-modules": {
"version": "1.1.7",
"resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz",
"integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==",
"license": "MIT",
"node_modules/@wangeditor-next/editor": {
"version": "5.6.49",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/editor/-/editor-5.6.49.tgz",
"integrity": "sha512-gDh7CLzsuPvUp1n4rO//V1NTHlpGzEibL71oRcRcxpz76oNaW12u+GWWvRde4cWivaCTLzHwz7EfEVdyDkt/Ww==",
"dependencies": {
"@uppy/core": "^2.1.1",
"@uppy/xhr-upload": "^2.0.3",
"@wangeditor-next/basic-modules": "~1.5.47",
"@wangeditor-next/code-highlight": "~1.3.43",
"@wangeditor-next/core": "~1.7.45",
"@wangeditor-next/list-module": "~1.1.52",
"@wangeditor-next/table-module": "~1.6.60",
"@wangeditor-next/upload-image-module": "~1.1.50",
"@wangeditor-next/video-module": "~1.3.51",
"dom7": "^4.0.0",
"is-hotkey": "^0.2.0",
"lodash.camelcase": "^4.3.0",
"lodash.clonedeep": "^4.5.0",
"lodash.debounce": "^4.0.8",
"lodash.foreach": "^4.5.0",
"lodash.throttle": "^4.1.1",
"lodash.toarray": "^4.4.0",
"nanoid": "^5.0.0",
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor-next/editor-for-vue": {
"version": "5.1.14",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/editor-for-vue/-/editor-for-vue-5.1.14.tgz",
"integrity": "sha512-Xkrdo590AhLHvzyR+U246t6T89nIWHz1weAgMuo8jEA2HS5RiUnsA4U6+iUGaQ2E5c8mYQaeNqzHQXUp9Okbiw==",
"peerDependencies": {
"@wangeditor-next/editor": ">=5.1.0",
"vue": "^3.0.5"
}
},
"node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/basic-modules": {
"version": "1.5.47",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/basic-modules/-/basic-modules-1.5.47.tgz",
"integrity": "sha512-FHydtBbfpsi4R4JTo5MvwWhzButwq6x36o+GoxsALdItwDW2qVgJkrlhw25aWYpg6ff1xqjivHfLBaAPWC4J+w==",
"dependencies": {
"is-url": "^1.2.4"
},
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"@wangeditor-next/core": "1.7.45",
"dom7": "^3.0.0 || ^4.0.0",
"lodash.throttle": "^4.1.1",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
"nanoid": "^5.0.0",
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor/code-highlight": {
"version": "1.0.3",
"resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz",
"integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==",
"license": "MIT",
"node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/code-highlight": {
"version": "1.3.43",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/code-highlight/-/code-highlight-1.3.43.tgz",
"integrity": "sha512-22eHjYDmtTxZqZOma2ls9zWA6gsgSkWq3XtmLylA15kegVBKAy7YxYbRrdS7D4Y/igqOerSbc5oMsOdeYjRfnQ==",
"dependencies": {
"prismjs": "^1.23.0"
},
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
"@wangeditor-next/core": "1.7.45",
"dom7": "^3.0.0 || ^4.0.0",
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor/core": {
"version": "1.1.19",
"resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz",
"integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==",
"license": "MIT",
"node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/core": {
"version": "1.7.45",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/core/-/core-1.7.45.tgz",
"integrity": "sha512-5Pt8JCmdzJWk4q18zUZse+zM+mBW6jYt3npXVkLswYysx01krC3bBQq1J9JeZe4Ci+rQAs0tQj3t1imjpsmRgg==",
"dependencies": {
"@types/event-emitter": "^0.3.3",
"event-emitter": "^0.3.5",
"html-void-elements": "^2.0.0",
"i18next": "^20.4.0",
"scroll-into-view-if-needed": "^2.2.28",
"slate-history": "^0.66.0"
"html-void-elements": "^3.0.0",
"i18next": "^23.0.0",
"scroll-into-view-if-needed": "^3.0.0",
"slate-history": "^0.109.0"
},
"peerDependencies": {
"@uppy/core": "^2.1.1",
"@uppy/xhr-upload": "^2.0.3",
"dom7": "^3.0.0",
"dom7": "^3.0.0 || ^4.0.0",
"is-hotkey": "^0.2.0",
"lodash.camelcase": "^4.3.0",
"lodash.clonedeep": "^4.5.0",
"lodash.debounce": "^4.0.8",
"lodash.foreach": "^4.5.0",
"lodash.isequal": "^4.5.0",
"lodash.throttle": "^4.1.1",
"lodash.toarray": "^4.4.0",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
"nanoid": "^5.0.0",
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor/editor": {
"version": "5.1.23",
"resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz",
"integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==",
"license": "MIT",
"dependencies": {
"@uppy/core": "^2.1.1",
"@uppy/xhr-upload": "^2.0.3",
"@wangeditor/basic-modules": "^1.1.7",
"@wangeditor/code-highlight": "^1.0.3",
"@wangeditor/core": "^1.1.19",
"@wangeditor/list-module": "^1.0.5",
"@wangeditor/table-module": "^1.1.4",
"@wangeditor/upload-image-module": "^1.0.2",
"@wangeditor/video-module": "^1.1.4",
"dom7": "^3.0.0",
"is-hotkey": "^0.2.0",
"lodash.camelcase": "^4.3.0",
"lodash.clonedeep": "^4.5.0",
"node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/list-module": {
"version": "1.1.52",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/list-module/-/list-module-1.1.52.tgz",
"integrity": "sha512-FMzvx+iXXkatFFRZZ+rbiPjZpEcPa3UtNBFs40VpZG0w7O3gQWM7B/oPec3SKvAmre/US4CC5DJEqeEY3QX4hw==",
"peerDependencies": {
"@wangeditor-next/core": "1.7.45",
"dom7": "^3.0.0 || ^4.0.0",
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/table-module": {
"version": "1.6.60",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/table-module/-/table-module-1.6.60.tgz",
"integrity": "sha512-BGTG1YzPSIC4XJRafllCcynT9CkElWDSFxYBJ2svS36AvJc3ivQuj5Fhv+rCS4RqGggsN1hdeA4iP+xrtwWI4w==",
"peerDependencies": {
"@wangeditor-next/core": "1.7.45",
"dom7": "^3.0.0 || ^4.0.0",
"lodash.debounce": "^4.0.8",
"lodash.foreach": "^4.5.0",
"lodash.isequal": "^4.5.0",
"lodash.throttle": "^4.1.1",
"lodash.toarray": "^4.4.0",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
"nanoid": "^5.0.0",
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor/editor-for-vue": {
"version": "5.1.12",
"resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
"integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==",
"license": "MIT",
"peerDependencies": {
"@wangeditor/editor": ">=5.1.0",
"vue": "^3.0.5"
}
},
"node_modules/@wangeditor/list-module": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz",
"integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==",
"license": "MIT",
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/@wangeditor/table-module": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz",
"integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==",
"license": "MIT",
"peerDependencies": {
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"lodash.isequal": "^4.5.0",
"lodash.throttle": "^4.1.1",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
}
},
"node_modules/@wangeditor/upload-image-module": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz",
"integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==",
"license": "MIT",
"node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/upload-image-module": {
"version": "1.1.50",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/upload-image-module/-/upload-image-module-1.1.50.tgz",
"integrity": "sha512-KIzI1IIQA6J5Hg3/UJF/AlEsrxJ62LZZUt61tenkO8cxks2UQMvH4CEsgEU5NNfQ0PUnOeR4ErjOgyhtbZKyaQ==",
"peerDependencies": {
"@uppy/core": "^2.0.3",
"@uppy/xhr-upload": "^2.0.3",
"@wangeditor/basic-modules": "1.x",
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"@wangeditor-next/basic-modules": "1.5.47",
"@wangeditor-next/core": "1.7.45",
"dom7": "^3.0.0 || ^4.0.0",
"lodash.foreach": "^4.5.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor/video-module": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz",
"integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==",
"license": "MIT",
"node_modules/@wangeditor-next/editor/node_modules/@wangeditor-next/video-module": {
"version": "1.3.51",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/video-module/-/video-module-1.3.51.tgz",
"integrity": "sha512-67ecZCGIY+MUsqFtmwR9QKWlzGeIXVyXHmzPuevYwEqRwg50oR2xCSuoQLhfs5CKjXDZKsZhOnD/CGgt82TU+A==",
"peerDependencies": {
"@uppy/core": "^2.1.4",
"@uppy/xhr-upload": "^2.0.7",
"@wangeditor/core": "1.x",
"dom7": "^3.0.0",
"nanoid": "^3.2.0",
"slate": "^0.72.0",
"snabbdom": "^3.1.0"
"@wangeditor-next/core": "1.7.45",
"dom7": "^3.0.0 || ^4.0.0",
"nanoid": "^5.0.0",
"slate": "^0.82.0",
"snabbdom": "^3.6.0"
}
},
"node_modules/@wangeditor-next/editor/node_modules/compute-scroll-into-view": {
"version": "3.1.1",
"resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-3.1.1.tgz",
"integrity": "sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw=="
},
"node_modules/@wangeditor-next/editor/node_modules/dom7": {
"version": "4.0.6",
"resolved": "https://registry.npmmirror.com/dom7/-/dom7-4.0.6.tgz",
"integrity": "sha512-emjdpPLhpNubapLFdjNL9tP06Sr+GZkrIHEXLWvOGsytACUrkbeIdjO5g77m00BrHTznnlcNqgmn7pCN192TBA==",
"dependencies": {
"ssr-window": "^4.0.0"
}
},
"node_modules/@wangeditor-next/editor/node_modules/html-void-elements": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-3.0.0.tgz",
"integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/@wangeditor-next/editor/node_modules/i18next": {
"version": "23.16.8",
"resolved": "https://registry.npmmirror.com/i18next/-/i18next-23.16.8.tgz",
"integrity": "sha512-06r/TitrM88Mg5FdUXAKL96dJMzgqLE5dv3ryBAra4KCwD9mJ4ndOTS95ZuymIGoE+2hzfdaMak2X11/es7ZWg==",
"funding": [
{
"type": "individual",
"url": "https://locize.com"
},
{
"type": "individual",
"url": "https://locize.com/i18next.html"
},
{
"type": "individual",
"url": "https://www.i18next.com/how-to/faq#i18next-is-awesome.-how-can-i-support-the-project"
}
],
"dependencies": {
"@babel/runtime": "^7.23.2"
}
},
"node_modules/@wangeditor-next/editor/node_modules/nanoid": {
"version": "5.1.6",
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-5.1.6.tgz",
"integrity": "sha512-c7+7RQ+dMB5dPwwCp4ee1/iV/q2P6aK1mTZcfr1BTuVlyW9hJYiMPybJCcnBlQtuSmTIWNeazm/zqNoZSSElBg==",
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/ai"
}
],
"bin": {
"nanoid": "bin/nanoid.js"
},
"engines": {
"node": "^18 || >=20"
}
},
"node_modules/@wangeditor-next/editor/node_modules/scroll-into-view-if-needed": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.1.0.tgz",
"integrity": "sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==",
"dependencies": {
"compute-scroll-into-view": "^3.0.2"
}
},
"node_modules/@wangeditor-next/editor/node_modules/slate": {
"version": "0.82.1",
"resolved": "https://registry.npmmirror.com/slate/-/slate-0.82.1.tgz",
"integrity": "sha512-3mdRdq7U3jSEoyFrGvbeb28hgrvrr4NdFCtJX+IjaNvSFozY0VZd/CGHF0zf/JDx7aEov864xd5uj0HQxxEWTQ==",
"dependencies": {
"immer": "^9.0.6",
"is-plain-object": "^5.0.0",
"tiny-warning": "^1.0.3"
}
},
"node_modules/@wangeditor-next/editor/node_modules/slate-history": {
"version": "0.109.0",
"resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.109.0.tgz",
"integrity": "sha512-DHavPwrTTAEAV66eAocB3iQHEj65N6IVtbRK98ZuqGT0S44T3zXlhzY+5SZ7EPxRcoOYVt1dioRxXYM/+PmCiQ==",
"dependencies": {
"is-plain-object": "^5.0.0"
},
"peerDependencies": {
"slate": ">=0.65.3"
}
},
"node_modules/@wangeditor-next/editor/node_modules/ssr-window": {
"version": "4.0.2",
"resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-4.0.2.tgz",
"integrity": "sha512-ISv/Ch+ig7SOtw7G2+qkwfVASzazUnvlDTwypdLoPoySv+6MqlOV10VwPSE6EWkGjhW50lUmghPmpYZXMu/+AQ=="
},
"node_modules/@wangeditor-next/plugin-mention": {
"version": "1.0.19",
"resolved": "https://registry.npmmirror.com/@wangeditor-next/plugin-mention/-/plugin-mention-1.0.19.tgz",
"integrity": "sha512-aH81xDT4hZ+PdEFPsptJ/Gn4KDyIOhQdrNewLi2BKadmVBiYXlLneseodeFyv9MLhtNg2ekt+KNGJNK3kKzCsw==",
"peerDependencies": {
"@wangeditor-next/editor": "5.6.49",
"snabbdom": "^3.6.0"
}
},
"node_modules/@xmldom/xmldom": {
@ -8231,12 +8366,6 @@
"integrity": "sha512-wGA++isMqiDq1jPYeyv2as/Bt/u+3iLW0rEa+8NQ82jAv3TgqMiCM+B2SaBdn2DfLilLjjq736YcezihRYhfxw==",
"license": "MIT"
},
"node_modules/compute-scroll-into-view": {
"version": "1.0.20",
"resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
"integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
"license": "MIT"
},
"node_modules/computeds": {
"version": "0.0.1",
"resolved": "https://registry.npmmirror.com/computeds/-/computeds-0.0.1.tgz",
@ -9039,6 +9168,15 @@
"integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
"license": "MIT"
},
"node_modules/dayjs-plugin-lunar": {
"version": "1.4.1",
"resolved": "https://registry.npmmirror.com/dayjs-plugin-lunar/-/dayjs-plugin-lunar-1.4.1.tgz",
"integrity": "sha512-nHKJMKoVAGt/Wp6x3xH8GrjWhB25YBYd6iYTCfLkCm4GAS6q3jvfHpLwRnIX8bjHgl8sPlTPiLFcylcEaEnj8Q==",
"peerDependencies": {
"dayjs": "^1.0.0",
"tyme4ts": "^1.0.0"
}
},
"node_modules/de-indent": {
"version": "1.0.2",
"resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",
@ -9234,15 +9372,6 @@
"resolved": "https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz",
"integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w=="
},
"node_modules/dom7": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz",
"integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
"license": "MIT",
"dependencies": {
"ssr-window": "^3.0.0-alpha.1"
}
},
"node_modules/domelementtype": {
"version": "2.3.0",
"resolved": "https://registry.npmmirror.com/domelementtype/-/domelementtype-2.3.0.tgz",
@ -9424,10 +9553,9 @@
"license": "ISC"
},
"node_modules/element-plus": {
"version": "2.9.1",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.9.1.tgz",
"integrity": "sha512-9Agqf/jt4Ugk7EZ6C5LME71sgkvauPCsnvJN12Xid2XVobjufxMGpRE4L7pS4luJMOmFAH3J0NgYEGZT5r+NDg==",
"license": "MIT",
"version": "2.11.1",
"resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.11.1.tgz",
"integrity": "sha512-weYFIniyNXTAe9vJZnmZpYzurh4TDbdKhBsJwhbzuo0SDZ8PLwHVll0qycJUxc6SLtH+7A9F7dvdDh5CnqeIVA==",
"dependencies": {
"@ctrl/tinycolor": "^3.4.1",
"@element-plus/icons-vue": "^2.3.1",
@ -11232,16 +11360,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/html-void-elements": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz",
"integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==",
"license": "MIT",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/wooorm"
}
},
"node_modules/htmlparser2": {
"version": "8.0.2",
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-8.0.2.tgz",
@ -11271,15 +11389,6 @@
"node": ">=16.17.0"
}
},
"node_modules/i18next": {
"version": "20.6.1",
"resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz",
"integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==",
"license": "MIT",
"dependencies": {
"@babel/runtime": "^7.12.0"
}
},
"node_modules/iconv-lite": {
"version": "0.6.3",
"resolved": "https://registry.npmmirror.com/iconv-lite/-/iconv-lite-0.6.3.tgz",
@ -11866,20 +11975,18 @@
}
},
"node_modules/jsoneditor": {
"version": "9.10.5",
"resolved": "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-9.10.5.tgz",
"integrity": "sha512-fVZ0NMt+zm4rqTKBv2x7zPdLeaRyKo1EjJkaR1QjK4gEM1rMwICILYSW1OPxSc1qqyAoDaA/eeNrluKoxOocCA==",
"license": "Apache-2.0",
"version": "10.4.2",
"resolved": "https://registry.npmmirror.com/jsoneditor/-/jsoneditor-10.4.2.tgz",
"integrity": "sha512-SQPCXlanU4PqdVsYuj2X7yfbLiiJYjklbksGfMKPsuwLhAIPxDlG43jYfXieGXvxpuq1fkw08YoRbkKXKabcLA==",
"dependencies": {
"ace-builds": "^1.31.1",
"ace-builds": "^1.36.2",
"ajv": "^6.12.6",
"javascript-natural-sort": "^0.7.1",
"jmespath": "^0.16.0",
"json-source-map": "^0.6.1",
"jsonrepair": "3.1.0",
"mobius1-selectr": "^2.4.13",
"jsonrepair": "^3.8.1",
"picomodal": "^3.0.0",
"vanilla-picker": "^2.12.2"
"vanilla-picker": "^2.12.3"
}
},
"node_modules/jsoneditor/node_modules/ajv": {
@ -11928,10 +12035,9 @@
"license": "MIT"
},
"node_modules/jsonrepair": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-3.1.0.tgz",
"integrity": "sha512-idqReg23J0PVRAADmZMc5xQM3xeOX5bTB6OTyMnzq33IXJXmn9iJuWIEvGmrN80rQf4d7uLTMEDwpzujNcI0Rg==",
"license": "ISC",
"version": "3.13.2",
"resolved": "https://registry.npmmirror.com/jsonrepair/-/jsonrepair-3.13.2.tgz",
"integrity": "sha512-Leuly0nbM4R+S5SVJk3VHfw1oxnlEK9KygdZvfUtEtTawNDyzB4qa1xWTmFt1aeoA7sXZkVTRuIixJ8bAvqVUg==",
"bin": {
"jsonrepair": "bin/cli.js"
}
@ -12342,13 +12448,6 @@
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==",
"license": "MIT"
},
"node_modules/lodash.isequal": {
"version": "4.5.0",
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
"deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead.",
"license": "MIT"
},
"node_modules/lodash.isplainobject": {
"version": "4.0.6",
"resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz",
@ -13025,12 +13124,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/mobius1-selectr": {
"version": "2.4.13",
"resolved": "https://registry.npmmirror.com/mobius1-selectr/-/mobius1-selectr-2.4.13.tgz",
"integrity": "sha512-Mk9qDrvU44UUL0EBhbAA1phfQZ7aMZPjwtL7wkpiBzGh8dETGqfsh50mWoX9EkjDlkONlErWXArHCKfoxVg0Bw==",
"license": "MIT"
},
"node_modules/moddle": {
"version": "6.2.3",
"resolved": "https://registry.npmmirror.com/moddle/-/moddle-6.2.3.tgz",
@ -14824,15 +14917,6 @@
"dev": true,
"license": "MIT"
},
"node_modules/scroll-into-view-if-needed": {
"version": "2.2.31",
"resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
"integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==",
"license": "MIT",
"dependencies": {
"compute-scroll-into-view": "^1.0.20"
}
},
"node_modules/scule": {
"version": "1.3.0",
"resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
@ -14994,29 +15078,6 @@
"node": ">=8"
}
},
"node_modules/slate": {
"version": "0.72.8",
"resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz",
"integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==",
"license": "MIT",
"dependencies": {
"immer": "^9.0.6",
"is-plain-object": "^5.0.0",
"tiny-warning": "^1.0.3"
}
},
"node_modules/slate-history": {
"version": "0.66.0",
"resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz",
"integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==",
"license": "MIT",
"dependencies": {
"is-plain-object": "^5.0.0"
},
"peerDependencies": {
"slate": ">=0.65.3"
}
},
"node_modules/slice-ansi": {
"version": "5.0.0",
"resolved": "https://registry.npmmirror.com/slice-ansi/-/slice-ansi-5.0.0.tgz",
@ -15108,12 +15169,6 @@
"integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"license": "BSD-3-Clause"
},
"node_modules/ssr-window": {
"version": "3.0.0",
"resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz",
"integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==",
"license": "MIT"
},
"node_modules/steady-xml": {
"version": "0.1.0",
"resolved": "https://registry.npmmirror.com/steady-xml/-/steady-xml-0.1.0.tgz",
@ -15925,6 +15980,12 @@
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
"license": "0BSD"
},
"node_modules/tyme4ts": {
"version": "1.4.2",
"resolved": "https://registry.npmmirror.com/tyme4ts/-/tyme4ts-1.4.2.tgz",
"integrity": "sha512-3rUMpQv3Oz9V0f/GOPVHn+PC6eqR4CyMYQu02B8bUA5+BWvYALJapfwjOS7GH5NFK7mAS3LCUzSEYkQc4rkk6Q==",
"peer": true
},
"node_modules/type": {
"version": "2.7.3",
"resolved": "https://registry.npmmirror.com/type/-/type-2.7.3.tgz",
@ -16489,19 +16550,6 @@
"uuid": "dist/bin/uuid"
}
},
"node_modules/v3-jsoneditor": {
"version": "0.0.6",
"resolved": "https://registry.npmmirror.com/v3-jsoneditor/-/v3-jsoneditor-0.0.6.tgz",
"integrity": "sha512-9G0sXWXUn67SBkn46ycWfwPwjuJu/lcsQaNzMtXAR2/95hMV21WfcRNsqJ+vVVrSHQehohB/9fVLwYEXz0u/KA==",
"license": "MIT",
"dependencies": {
"jsoneditor": "^9.10.0"
},
"funding": {
"type": "github",
"url": "https://github.com/sponsors/pratik227"
}
},
"node_modules/vanilla-picker": {
"version": "2.12.3",
"resolved": "https://registry.npmmirror.com/vanilla-picker/-/vanilla-picker-2.12.3.tgz",
@ -17064,6 +17112,14 @@
"integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==",
"license": "MIT"
},
"node_modules/vue3-print-nb": {
"version": "0.1.4",
"resolved": "https://registry.npmmirror.com/vue3-print-nb/-/vue3-print-nb-0.1.4.tgz",
"integrity": "sha512-LExI7viEzplR6ZKQ2b+V4U0cwGYbVD4fut/XHvk3UPGlT5CcvIGs6VlwGp107aKgk6P8Pgx4rco3Rehv2lti3A==",
"dependencies": {
"vue": "^3.0.5"
}
},
"node_modules/vue3-signature": {
"version": "0.2.4",
"resolved": "https://registry.npmmirror.com/vue3-signature/-/vue3-signature-0.2.4.tgz",

View File

@ -1,6 +1,6 @@
{
"name": "yudao-ui-admin-vue3",
"version": "2026.01-snapshot",
"version": "2026.03-snapshot",
"description": "基于vue3、vite4、element-plus、typesScript",
"author": "xingyu",
"private": false,
@ -44,6 +44,8 @@
"cropperjs": "^1.6.1",
"crypto-js": "^4.2.0",
"dayjs": "^1.11.10",
"dayjs-plugin-lunar": "^1.4.1",
"dhtmlx-gantt": "^9.1.1",
"diagram-js": "^12.8.0",
"driver.js": "^1.3.1",
"echarts": "^5.5.0",
@ -51,6 +53,7 @@
"element-plus": "2.11.1",
"fast-xml-parser": "^4.3.2",
"highlight.js": "^11.9.0",
"jsbarcode": "^3.12.3",
"jsencrypt": "^3.3.2",
"jsoneditor": "^10.1.3",
"localforage": "^1.10.0",
@ -70,6 +73,7 @@
"snabbdom": "^3.6.2",
"sortablejs": "^1.15.3",
"steady-xml": "^0.1.0",
"tyme4ts": "^1.4.6",
"url": "^0.11.3",
"video.js": "^7.21.5",
"vue": "3.5.12",

View File

@ -79,7 +79,7 @@ export const getMemberSummary = () => {
export const getMemberAnalyse = (params: MemberAnalyseReqVO) => {
return request.get<MemberAnalyseRespVO>({
url: '/statistics/member/analyse',
params: { times: [formatDate(params.times[0]), formatDate(params.times[1])] }
params: { times: [formatDate(params.times[0] as any), formatDate(params.times[1] as any)] }
})
}
@ -118,6 +118,6 @@ export const getMemberRegisterCountList = (
) => {
return request.get<MemberRegisterCountRespVO[]>({
url: '/statistics/member/register-count-list',
params: { times: [formatDate(beginTime), formatDate(endTime)] }
params: { times: [formatDate(beginTime as any), formatDate(endTime as any)] }
})
}

View File

@ -0,0 +1,25 @@
import request from '@/config/axios'
// 排班日历 - 班组排班项
export interface CalCalendarTeamShiftItem {
teamId: number
teamName: string
shiftId: number
shiftName: string
sort: number
}
// 排班日历 - 日历天 VO
export interface CalCalendarDayVO {
day: string // yyyy-MM-dd
shiftType: number // 轮班方式
teamShifts: CalCalendarTeamShiftItem[]
}
// 排班日历 API
export const CalCalendarApi = {
// 查询排班日历列表
getCalendarList: async (params: any) => {
return await request.get({ url: `/mes/cal/calendar/list`, params })
}
}

View File

@ -0,0 +1,28 @@
import request from '@/config/axios'
// MES 假期设置 VO
export interface CalHolidayVO {
id: number // 编号
day: number // 日期(时间戳)
type: number // 日期类型
remark: string // 备注
createTime: string // 创建时间
}
// MES 假期设置 API
export const CalHolidayApi = {
// 查询假期设置列表(支持可选日期范围过滤)
getHolidayList: async (params?: { startDay?: string; endDay?: string }) => {
return await request.get({ url: `/mes/cal/holiday/list`, params })
},
// 根据日期查询假期设置
getHolidayByDay: async (day: string) => {
return await request.get({ url: `/mes/cal/holiday/get-by-day`, params: { day } })
},
// 保存假期设置(含 upsert 逻辑)
saveHoliday: async (data: CalHolidayVO) => {
return await request.post({ url: `/mes/cal/holiday/save`, data })
}
}

View File

@ -0,0 +1,54 @@
import request from '@/config/axios'
// MES 排班计划 VO
export interface CalPlanVO {
id: number
code: string // 计划编码
name: string // 计划名称
calendarType: number // 班组类型
startDate: number // 开始日期
endDate: number // 结束日期
shiftType: number // 轮班方式
shiftMethod: number // 倒班方式
shiftCount: number // 倒班天数
status: number // 状态
remark: string // 备注
}
// MES 排班计划 API
export const CalPlanApi = {
// 查询排班计划分页
getPlanPage: async (params: any) => {
return await request.get({ url: `/mes/cal/plan/page`, params })
},
// 查询排班计划详情
getPlan: async (id: number) => {
return await request.get({ url: `/mes/cal/plan/get?id=` + id })
},
// 新增排班计划
createPlan: async (data: CalPlanVO) => {
return await request.post({ url: `/mes/cal/plan/create`, data })
},
// 修改排班计划
updatePlan: async (data: CalPlanVO) => {
return await request.put({ url: `/mes/cal/plan/update`, data })
},
// 确认排班计划
confirmPlan: async (id: number) => {
return await request.put({ url: `/mes/cal/plan/confirm?id=` + id })
},
// 删除排班计划
deletePlan: async (id: number) => {
return await request.delete({ url: `/mes/cal/plan/delete?id=` + id })
},
// 导出排班计划 Excel
exportPlan: async (params: any) => {
return await request.download({ url: `/mes/cal/plan/export-excel`, params })
}
}

View File

@ -0,0 +1,35 @@
import request from '@/config/axios'
// MES 计划班次 VO
export interface CalPlanShiftVO {
id: number
planId: number // 排班计划编号
sort: number // 显示顺序
name: string // 班次名称
startTime: string // 开始时间
endTime: string // 结束时间
remark: string // 备注
}
// MES 计划班次 API
export const CalPlanShiftApi = {
// 查询指定排班计划的班次列表
getPlanShiftListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/cal/plan-shift/list-by-plan?planId=` + planId })
},
// 新增计划班次
createPlanShift: async (data: CalPlanShiftVO) => {
return await request.post({ url: `/mes/cal/plan-shift/create`, data })
},
// 修改计划班次
updatePlanShift: async (data: CalPlanShiftVO) => {
return await request.put({ url: `/mes/cal/plan-shift/update`, data })
},
// 删除计划班次
deletePlanShift: async (id: number) => {
return await request.delete({ url: `/mes/cal/plan-shift/delete?id=` + id })
}
}

View File

@ -0,0 +1,31 @@
import request from '@/config/axios'
// MES 计划班组关联 VO
export interface CalPlanTeamVO {
id: number
planId: number // 排班计划编号
teamId: number // 班组编号
teamCode: string // 班组编码
teamName: string // 班组名称
remark: string // 备注
}
// TODO @AI挪到 team/index.ts 中
// MES 计划班组关联 API
export const CalPlanTeamApi = {
// 查询指定排班计划的班组列表
getPlanTeamListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/cal/plan-team/list-by-plan?planId=` + planId })
},
// 新增计划班组关联
createPlanTeam: async (data: CalPlanTeamVO) => {
return await request.post({ url: `/mes/cal/plan-team/create`, data })
},
// 删除计划班组关联
deletePlanTeam: async (id: number) => {
return await request.delete({ url: `/mes/cal/plan-team/delete?id=` + id })
}
}

View File

@ -0,0 +1,29 @@
import request from '@/config/axios'
// MES 计划班组关联 VO
export interface CalPlanTeamVO {
id: number
planId: number // 排班计划编号
teamId: number // 班组编号
teamCode: string // 班组编码
teamName: string // 班组名称
remark: string // 备注
}
// MES 计划班组关联 API
export const CalPlanTeamApi = {
// 查询指定排班计划的班组列表
getPlanTeamListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/cal/plan-team/list-by-plan?planId=` + planId })
},
// 新增计划班组关联
createPlanTeam: async (data: CalPlanTeamVO) => {
return await request.post({ url: `/mes/cal/plan-team/create`, data })
},
// 删除计划班组关联
deletePlanTeam: async (id: number) => {
return await request.delete({ url: `/mes/cal/plan-team/delete?id=` + id })
}
}

View File

@ -0,0 +1,37 @@
import request from '@/config/axios'
// TODO @AI挪到 plan/shift 目录下
// MES 计划班次 VO
export interface CalPlanShiftVO {
id: number
planId: number // 排班计划编号
sort: number // 显示顺序
name: string // 班次名称
startTime: string // 开始时间
endTime: string // 结束时间
remark: string // 备注
}
// MES 计划班次 API
export const CalPlanShiftApi = {
// 查询指定排班计划的班次列表
getPlanShiftListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/cal/plan-shift/list-by-plan?planId=` + planId })
},
// 新增计划班次
createPlanShift: async (data: CalPlanShiftVO) => {
return await request.post({ url: `/mes/cal/plan-shift/create`, data })
},
// 修改计划班次
updatePlanShift: async (data: CalPlanShiftVO) => {
return await request.put({ url: `/mes/cal/plan-shift/update`, data })
},
// 删除计划班次
deletePlanShift: async (id: number) => {
return await request.delete({ url: `/mes/cal/plan-shift/delete?id=` + id })
}
}

View File

@ -0,0 +1,48 @@
import request from '@/config/axios'
// MES 班组 VO
export interface CalTeamVO {
id: number
code: string // 班组编码
name: string // 班组名称
calendarType: number // 班组类型
remark: string // 备注
}
// MES 班组 API
export const CalTeamApi = {
// 查询班组分页
getTeamPage: async (params: any) => {
return await request.get({ url: `/mes/cal/team/page`, params })
},
// 查询班组详情
getTeam: async (id: number) => {
return await request.get({ url: `/mes/cal/team/get?id=` + id })
},
// 新增班组
createTeam: async (data: CalTeamVO) => {
return await request.post({ url: `/mes/cal/team/create`, data })
},
// 修改班组
updateTeam: async (data: CalTeamVO) => {
return await request.put({ url: `/mes/cal/team/update`, data })
},
// 删除班组
deleteTeam: async (id: number) => {
return await request.delete({ url: `/mes/cal/team/delete?id=` + id })
},
// 获得班组列表(全量,用于下拉选择)
getTeamList: async () => {
return await request.get({ url: `/mes/cal/team/list` })
},
// 导出班组 Excel
exportTeam: async (params: any) => {
return await request.download({ url: `/mes/cal/team/export-excel`, params })
}
}

View File

@ -0,0 +1,42 @@
import request from '@/config/axios'
// MES 班组成员 VO
export interface CalTeamMemberVO {
id: number
teamId: number // 班组编号
userId: number // 用户编号
nickname: string // 用户昵称(关联查询)
telephone: string // 用户手机号(关联查询)
remark: string // 备注
}
// MES 班组成员 API
export const CalTeamMemberApi = {
// 创建班组成员
createTeamMember: async (data: CalTeamMemberVO) => {
return await request.post({ url: `/mes/cal/team-member/create`, data })
},
// 删除班组成员
deleteTeamMember: async (id: number) => {
return await request.delete({ url: `/mes/cal/team-member/delete?id=` + id })
},
// 查询班组成员分页
getTeamMemberPage: async (params: any) => {
return await request.get({ url: `/mes/cal/team-member/page`, params })
},
// 查询指定班组的成员列表
getTeamMemberListByTeam: async (teamId: number) => {
return await request.get({ url: `/mes/cal/team-member/list-by-team`, params: { teamId } })
},
// 查询多个班组的成员列表
getTeamMemberListByTeamIds: async (teamIds: number[]) => {
return await request.get({
url: `/mes/cal/team-member/list-by-team`,
params: { teamIds: teamIds.join(',') }
})
}
}

View File

@ -0,0 +1,22 @@
import request from '@/config/axios'
// MES 班组排班 VO
export interface CalTeamShiftVO {
id: number
planId: number // 排班计划编号
teamId: number // 班组编号
shiftId: number // 班次编号
day: number // 日期
sort: number // 排序
teamName: string // 班组名称(关联查询)
shiftName: string // 班次名称(关联查询)
remark: string // 备注
}
// MES 班组排班 API
export const CalTeamShiftApi = {
// 查询班组排班列表
getTeamShiftList: async (params: any) => {
return await request.get({ url: `/mes/cal/team-shift/list`, params })
}
}

View File

@ -0,0 +1,58 @@
import request from '@/config/axios'
// MES 点检保养方案 VO
export interface DvCheckPlanVO {
id: number // 编号
code: string // 方案编码
name: string // 方案名称
type: number // 方案类型
startDate: Date // 开始日期
endDate: Date // 结束日期
cycleType: number // 周期类型
cycleCount: number // 周期数量
status: number // 状态
remark: string // 备注
}
// MES 点检保养方案 API
export const DvCheckPlanApi = {
// 查询点检保养方案分页
getCheckPlanPage: async (params: any) => {
return await request.get({ url: `/mes/dv/check-plan/page`, params })
},
// 查询点检保养方案详情
getCheckPlan: async (id: number) => {
return await request.get({ url: `/mes/dv/check-plan/get?id=` + id })
},
// 新增点检保养方案
createCheckPlan: async (data: DvCheckPlanVO) => {
return await request.post({ url: `/mes/dv/check-plan/create`, data })
},
// 修改点检保养方案
updateCheckPlan: async (data: DvCheckPlanVO) => {
return await request.put({ url: `/mes/dv/check-plan/update`, data })
},
// 启用点检保养方案
enableCheckPlan: async (id: number) => {
return await request.put({ url: `/mes/dv/check-plan/enable?id=` + id })
},
// 停用点检保养方案
disableCheckPlan: async (id: number) => {
return await request.put({ url: `/mes/dv/check-plan/disable?id=` + id })
},
// 删除点检保养方案
deleteCheckPlan: async (id: number) => {
return await request.delete({ url: `/mes/dv/check-plan/delete?id=` + id })
},
// 导出点检保养方案 Excel
exportCheckPlan: async (params: any) => {
return await request.download({ url: `/mes/dv/check-plan/export-excel`, params })
}
}

View File

@ -0,0 +1,32 @@
import request from '@/config/axios'
// TODO @AI放到 machinery/index.ts
// MES 点检保养方案设备 VO
export interface DvCheckPlanMachineryVO {
id: number
planId: number // 方案编号
machineryId: number // 设备编号
machineryCode: string // 设备编码
machineryName: string // 设备名称
machineryBrand: string // 品牌
machinerySpec: string // 规格型号
remark: string // 备注
}
// MES 点检保养方案设备 API
export const DvCheckPlanMachineryApi = {
// 查询指定方案的设备列表
getListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/dv/check-plan-machinery/list-by-plan?planId=` + planId })
},
// 新增方案设备关联
create: async (data: DvCheckPlanMachineryVO) => {
return await request.post({ url: `/mes/dv/check-plan-machinery/create`, data })
},
// 删除方案设备关联
delete: async (id: number) => {
return await request.delete({ url: `/mes/dv/check-plan-machinery/delete?id=` + id })
}
}

View File

@ -0,0 +1,31 @@
import request from '@/config/axios'
// MES 点检保养方案设备 VO
export interface DvCheckPlanMachineryVO {
id: number
planId: number // 方案编号
machineryId: number // 设备编号
machineryCode: string // 设备编码
machineryName: string // 设备名称
machineryBrand: string // 品牌
machinerySpecification: string // 规格型号
remark: string // 备注
}
// MES 点检保养方案设备 API
export const DvCheckPlanMachineryApi = {
// 查询指定方案的设备列表
getListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/dv/check-plan-machinery/list-by-plan?planId=` + planId })
},
// 新增方案设备关联
create: async (data: DvCheckPlanMachineryVO) => {
return await request.post({ url: `/mes/dv/check-plan-machinery/create`, data })
},
// 删除方案设备关联
delete: async (id: number) => {
return await request.delete({ url: `/mes/dv/check-plan-machinery/delete?id=` + id })
}
}

View File

@ -0,0 +1,33 @@
import request from '@/config/axios'
// TODO @AI放到 subject/index.ts
// MES 点检保养方案项目 VO
export interface DvCheckPlanSubjectVO {
id: number
planId: number // 方案编号
subjectId: number // 项目编号
subjectCode: string // 项目编码
subjectName: string // 项目名称
subjectType: number // 项目类型
subjectContent: string // 项目内容
subjectStandard: string // 标准
remark: string // 备注
}
// MES 点检保养方案项目 API
export const DvCheckPlanSubjectApi = {
// 查询指定方案的项目列表
getListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/dv/check-plan-subject/list-by-plan?planId=` + planId })
},
// 新增方案项目关联
create: async (data: DvCheckPlanSubjectVO) => {
return await request.post({ url: `/mes/dv/check-plan-subject/create`, data })
},
// 删除方案项目关联
delete: async (id: number) => {
return await request.delete({ url: `/mes/dv/check-plan-subject/delete?id=` + id })
}
}

View File

@ -0,0 +1,32 @@
import request from '@/config/axios'
// MES 点检保养方案项目 VO
export interface DvCheckPlanSubjectVO {
id: number
planId: number // 方案编号
subjectId: number // 项目编号
subjectCode: string // 项目编码
subjectName: string // 项目名称
subjectType: number // 项目类型
subjectContent: string // 项目内容
subjectStandard: string // 标准
remark: string // 备注
}
// MES 点检保养方案项目 API
export const DvCheckPlanSubjectApi = {
// 查询指定方案的项目列表
getListByPlan: async (planId: number) => {
return await request.get({ url: `/mes/dv/check-plan-subject/list-by-plan?planId=` + planId })
},
// 新增方案项目关联
create: async (data: DvCheckPlanSubjectVO) => {
return await request.post({ url: `/mes/dv/check-plan-subject/create`, data })
},
// 删除方案项目关联
delete: async (id: number) => {
return await request.delete({ url: `/mes/dv/check-plan-subject/delete?id=` + id })
}
}

View File

@ -0,0 +1,56 @@
import request from '@/config/axios'
// MES 设备点检记录 VO
export interface DvCheckRecordVO {
id: number // 编号
planId: number // 点检计划编号
planName?: string // 计划名称
machineryId: number // 设备编号
machineryCode?: string // 设备编码
machineryName?: string // 设备名称
machineryBrand?: string // 品牌
machinerySpecification?: string // 规格型号
checkTime: Date // 点检时间
userId: number // 点检人编号
nickname?: string // 点检人名称
status: number // 状态
remark: string // 备注
}
// MES 设备点检记录 API
export const DvCheckRecordApi = {
// 查询设备点检记录分页
getCheckRecordPage: async (params: any) => {
return await request.get({ url: `/mes/dv/check-record/page`, params })
},
// 查询设备点检记录详情
getCheckRecord: async (id: number) => {
return await request.get({ url: `/mes/dv/check-record/get?id=` + id })
},
// 新增设备点检记录
createCheckRecord: async (data: DvCheckRecordVO) => {
return await request.post({ url: `/mes/dv/check-record/create`, data })
},
// 修改设备点检记录
updateCheckRecord: async (data: DvCheckRecordVO) => {
return await request.put({ url: `/mes/dv/check-record/update`, data })
},
// 提交设备点检记录
submitCheckRecord: async (id: number) => {
return await request.put({ url: `/mes/dv/check-record/submit?id=` + id })
},
// 删除设备点检记录
deleteCheckRecord: async (id: number) => {
return await request.delete({ url: `/mes/dv/check-record/delete?id=` + id })
},
// 导出设备点检记录 Excel
exportCheckRecord: async (params: any) => {
return await request.download({ url: `/mes/dv/check-record/export-excel`, params })
}
}

View File

@ -0,0 +1,43 @@
import request from '@/config/axios'
// MES 设备点检记录明细 VO
export interface DvCheckRecordLineVO {
id: number // 编号
recordId: number // 点检记录编号
subjectId: number // 点检项目编号
subjectCode?: string // 项目编码
subjectName?: string // 项目名称
subjectContent?: string // 检查内容
subjectStandard?: string // 检查标准
checkStatus: number // 点检结果
checkResult?: string // 异常描述
remark: string // 备注
}
// MES 设备点检记录明细 API
export const DvCheckRecordLineApi = {
// 查询设备点检记录明细分页
getCheckRecordLinePage: async (params: any) => {
return await request.get({ url: `/mes/dv/check-record-line/page`, params })
},
// 查询设备点检记录明细详情
getCheckRecordLine: async (id: number) => {
return await request.get({ url: `/mes/dv/check-record-line/get?id=` + id })
},
// 新增设备点检记录明细
createCheckRecordLine: async (data: DvCheckRecordLineVO) => {
return await request.post({ url: `/mes/dv/check-record-line/create`, data })
},
// 修改设备点检记录明细
updateCheckRecordLine: async (data: DvCheckRecordLineVO) => {
return await request.put({ url: `/mes/dv/check-record-line/update`, data })
},
// 删除设备点检记录明细
deleteCheckRecordLine: async (id: number) => {
return await request.delete({ url: `/mes/dv/check-record-line/delete?id=` + id })
}
}

View File

@ -0,0 +1,56 @@
import request from '@/config/axios'
// MES 设备台账 VO
export interface DvMachineryVO {
id: number // 编号
code: string // 设备编码
name: string // 设备名称
brand: string // 品牌
specification: string // 规格型号
machineryTypeId: number // 设备类型编号
machineryTypeName: string // 设备类型名称
workshopId: number // 所属车间编号
workshopName: string // 所属车间名称
status: number // 设备状态
lastMaintenTime: Date // 最近保养时间
lastCheckTime: Date // 最近点检时间
remark: string // 备注
}
// MES 设备台账 API
export const DvMachineryApi = {
// 查询设备台账分页
getMachineryPage: async (params: any) => {
return await request.get({ url: `/mes/dv/machinery/page`, params })
},
// 查询设备台账详情
getMachinery: async (id: number) => {
return await request.get({ url: `/mes/dv/machinery/get?id=` + id })
},
// 新增设备台账
createMachinery: async (data: DvMachineryVO) => {
return await request.post({ url: `/mes/dv/machinery/create`, data })
},
// 修改设备台账
updateMachinery: async (data: DvMachineryVO) => {
return await request.put({ url: `/mes/dv/machinery/update`, data })
},
// 删除设备台账
deleteMachinery: async (id: number) => {
return await request.delete({ url: `/mes/dv/machinery/delete?id=` + id })
},
// 导出设备台账 Excel
exportMachinery: async (params: any) => {
return await request.download({ url: `/mes/dv/machinery/export-excel`, params })
},
// 下载设备导入模板
importTemplate: async () => {
return await request.download({ url: `/mes/dv/machinery/get-import-template` })
}
}

View File

@ -0,0 +1,45 @@
import request from '@/config/axios'
// MES 设备类型 VO
export interface DvMachineryTypeVO {
id: number // 编号
parentId: number // 父类型编号
code: string // 类型编码
name: string // 类型名称
sort: number // 显示排序
status: number // 状态
remark: string // 备注
}
// MES 设备类型 API
export const DvMachineryTypeApi = {
// 查询设备类型列表
getMachineryTypeList: async (params?: any) => {
return await request.get({ url: `/mes/dv/machinery-type/list`, params })
},
// 查询设备类型精简列表
getMachineryTypeSimpleList: async () => {
return await request.get({ url: `/mes/dv/machinery-type/simple-list` })
},
// 查询设备类型详情
getMachineryType: async (id: number) => {
return await request.get({ url: `/mes/dv/machinery-type/get?id=` + id })
},
// 新增设备类型
createMachineryType: async (data: DvMachineryTypeVO) => {
return await request.post({ url: `/mes/dv/machinery-type/create`, data })
},
// 修改设备类型
updateMachineryType: async (data: DvMachineryTypeVO) => {
return await request.put({ url: `/mes/dv/machinery-type/update`, data })
},
// 删除设备类型
deleteMachineryType: async (id: number) => {
return await request.delete({ url: `/mes/dv/machinery-type/delete?id=` + id })
}
}

View File

@ -0,0 +1,56 @@
import request from '@/config/axios'
// MES 设备保养记录 VO
export interface DvMaintenRecordVO {
id: number // 编号
planId: number // 计划编号
planName?: string // 计划名称
machineryId: number // 设备编号
machineryCode?: string // 设备编码
machineryName?: string // 设备名称
machineryBrand?: string // 品牌
machinerySpecification?: string // 规格型号
maintenTime: Date // 保养时间
userId: number // 用户编号
nickname?: string // 保养人名称
status: number // 状态
remark: string // 备注
}
// MES 设备保养记录 API
export const DvMaintenRecordApi = {
// 查询设备保养记录分页
getMaintenRecordPage: async (params: any) => {
return await request.get({ url: `/mes/dv/mainten-record/page`, params })
},
// 查询设备保养记录详情
getMaintenRecord: async (id: number) => {
return await request.get({ url: `/mes/dv/mainten-record/get?id=` + id })
},
// 新增设备保养记录
createMaintenRecord: async (data: DvMaintenRecordVO) => {
return await request.post({ url: `/mes/dv/mainten-record/create`, data })
},
// 修改设备保养记录
updateMaintenRecord: async (data: DvMaintenRecordVO) => {
return await request.put({ url: `/mes/dv/mainten-record/update`, data })
},
// 提交设备保养记录
submitMaintenRecord: async (id: number) => {
return await request.put({ url: `/mes/dv/mainten-record/submit?id=` + id })
},
// 删除设备保养记录
deleteMaintenRecord: async (id: number) => {
return await request.delete({ url: `/mes/dv/mainten-record/delete?id=` + id })
},
// 导出设备保养记录 Excel
exportMaintenRecord: async (params: any) => {
return await request.download({ url: `/mes/dv/mainten-record/export-excel`, params })
}
}

View File

@ -0,0 +1,42 @@
import request from '@/config/axios'
// MES 设备保养记录明细 VO
export interface DvMaintenRecordLineVO {
id: number // 编号
recordId: number // 保养记录编号
subjectId: number // 项目编号
subjectName?: string // 项目名称
subjectContent?: string // 项目内容
subjectStandard?: string // 项目标准
status: number // 保养结果
result: string // 异常描述
remark: string // 备注
}
// MES 设备保养记录明细 API
export const DvMaintenRecordLineApi = {
// 查询设备保养记录明细分页
getMaintenRecordLinePage: async (params: any) => {
return await request.get({ url: `/mes/dv/mainten-record-line/page`, params })
},
// 查询设备保养记录明细详情
getMaintenRecordLine: async (id: number) => {
return await request.get({ url: `/mes/dv/mainten-record-line/get?id=` + id })
},
// 新增设备保养记录明细
createMaintenRecordLine: async (data: DvMaintenRecordLineVO) => {
return await request.post({ url: `/mes/dv/mainten-record-line/create`, data })
},
// 修改设备保养记录明细
updateMaintenRecordLine: async (data: DvMaintenRecordLineVO) => {
return await request.put({ url: `/mes/dv/mainten-record-line/update`, data })
},
// 删除设备保养记录明细
deleteMaintenRecordLine: async (id: number) => {
return await request.delete({ url: `/mes/dv/mainten-record-line/delete?id=` + id })
}
}

View File

@ -0,0 +1,74 @@
import request from '@/config/axios'
// MES 维修工单 VO
export interface DvRepairVO {
id: number // 编号
code: string // 维修工单编码
name: string // 维修工单名称
machineryId: number // 设备编号
machineryCode?: string // 设备编码
machineryName?: string // 设备名称
machineryBrand?: string // 品牌
machinerySpecification?: string // 规格型号
requireDate: Date // 报修日期
finishDate: Date // 维修完成日期
confirmDate: Date // 验收日期
result: number // 维修结果
acceptedUserId: number // 维修人用户编号
acceptedUserNickname?: string // 维修人名称
confirmUserId: number // 验收人用户编号
confirmUserNickname?: string // 验收人名称
sourceDocType: number // 来源单据类型
sourceDocId: number // 来源单据编号
sourceDocCode: string // 来源单据编码
status: number // 状态
remark: string // 备注
}
// MES 维修工单 API
export const DvRepairApi = {
// 查询维修工单分页
getRepairPage: async (params: any) => {
return await request.get({ url: `/mes/dv/repair/page`, params })
},
// 查询维修工单详情
getRepair: async (id: number) => {
return await request.get({ url: `/mes/dv/repair/get?id=` + id })
},
// 新增维修工单
createRepair: async (data: DvRepairVO) => {
return await request.post({ url: `/mes/dv/repair/create`, data })
},
// 修改维修工单
updateRepair: async (data: DvRepairVO) => {
return await request.put({ url: `/mes/dv/repair/update`, data })
},
// 删除维修工单
deleteRepair: async (id: number) => {
return await request.delete({ url: `/mes/dv/repair/delete?id=` + id })
},
// 导出维修工单 Excel
exportRepair: async (params: any) => {
return await request.download({ url: `/mes/dv/repair/export-excel`, params })
},
// 提交维修工单(草稿→维修中)
submitRepair: async (id: number) => {
return await request.put({ url: `/mes/dv/repair/submit?id=` + id })
},
// 确认维修完成(维修中→待验收)
confirmRepair: async (data: any) => {
return await request.put({ url: `/mes/dv/repair/confirm`, data })
},
// 完成验收(待验收→已确认)
finishRepair: async (id: number, result: number) => {
return await request.put({ url: `/mes/dv/repair/finish?id=` + id + `&result=` + result })
}
}

View File

@ -0,0 +1,43 @@
import request from '@/config/axios'
// MES 维修工单行 VO
export interface DvRepairLineVO {
id: number // 编号
repairId: number // 维修工单编号
subjectId: number // 项目编号
subjectName?: string // 项目名称
subjectContent?: string // 项目内容
subjectStandard?: string // 项目标准
malfunction: string // 故障描述
malfunctionUrl: string // 故障图片 URL
description: string // 维修描述
remark: string // 备注
}
// MES 维修工单行 API
export const DvRepairLineApi = {
// 查询维修工单行分页
getRepairLinePage: async (params: any) => {
return await request.get({ url: `/mes/dv/repair-line/page`, params })
},
// 查询维修工单行详情
getRepairLine: async (id: number) => {
return await request.get({ url: `/mes/dv/repair-line/get?id=` + id })
},
// 新增维修工单行
createRepairLine: async (data: DvRepairLineVO) => {
return await request.post({ url: `/mes/dv/repair-line/create`, data })
},
// 修改维修工单行
updateRepairLine: async (data: DvRepairLineVO) => {
return await request.put({ url: `/mes/dv/repair-line/update`, data })
},
// 删除维修工单行
deleteRepairLine: async (id: number) => {
return await request.delete({ url: `/mes/dv/repair-line/delete?id=` + id })
}
}

View File

@ -0,0 +1,46 @@
import request from '@/config/axios'
// MES 点检保养项目 VO
export interface DvSubjectVO {
id: number // 编号
code: string // 项目编码
name: string // 项目名称
type: number // 项目类型
content: string // 项目内容
standard: string // 标准
status: number // 状态
remark: string // 备注
}
// MES 点检保养项目 API
export const DvSubjectApi = {
// 查询点检保养项目分页
getSubjectPage: async (params: any) => {
return await request.get({ url: `/mes/dv/subject/page`, params })
},
// 查询点检保养项目详情
getSubject: async (id: number) => {
return await request.get({ url: `/mes/dv/subject/get?id=` + id })
},
// 新增点检保养项目
createSubject: async (data: DvSubjectVO) => {
return await request.post({ url: `/mes/dv/subject/create`, data })
},
// 修改点检保养项目
updateSubject: async (data: DvSubjectVO) => {
return await request.put({ url: `/mes/dv/subject/update`, data })
},
// 删除点检保养项目
deleteSubject: async (id: number) => {
return await request.delete({ url: `/mes/dv/subject/delete?id=` + id })
},
// 导出点检保养项目 Excel
exportSubject: async (params: any) => {
return await request.download({ url: `/mes/dv/subject/export-excel`, params })
}
}

51
src/api/mes/home/index.ts Normal file
View File

@ -0,0 +1,51 @@
import request from '@/config/axios'
// MES 首页汇总统计 VO
export interface MesHomeSummaryVO {
workOrderActiveCount: number
workOrderPrepareCount: number
workOrderFinishedCount: number
todayOutput: number
yesterdayOutput: number
todayQualifiedQuantity: number
todayUnqualifiedQuantity: number
machineryTotal: number
machineryProducing: number
machineryStop: number
machineryMaintenance: number
andonActiveCount: number
repairActiveCount: number
}
// MES 工单状态分布 VO
export interface MesHomeWorkOrderStatusVO {
status: number
statusName: string
count: number
}
// MES 生产趋势 VO
export interface MesHomeProductionTrendVO {
date: string
quantity: number
qualifiedQuantity: number
unqualifiedQuantity: number
}
// MES 首页统计 API
export const MesHomeStatisticsApi = {
// 获得首页汇总统计
getHomeSummary: async (): Promise<MesHomeSummaryVO> => {
return await request.get({ url: `/mes/home-statistics/summary` })
},
// 获得工单状态分布
getWorkOrderStatusDistribution: async (): Promise<MesHomeWorkOrderStatusVO[]> => {
return await request.get({ url: `/mes/home-statistics/work-order-status` })
},
// 获得生产趋势
getProductionTrend: async (days?: number): Promise<MesHomeProductionTrendVO[]> => {
return await request.get({ url: `/mes/home-statistics/production-trend`, params: { days } })
}
}

View File

@ -0,0 +1,45 @@
import request from '@/config/axios'
// MES 编码规则分段 VO
export interface AutoCodePartVO {
id: number // 分段编号
ruleId: number // 规则编号
sort: number // 排序
type: number // 分段类型
length: number // 长度
dateFormat: string // 日期格式
fixCharacter: string // 固定字符
serialStartNo: number // 流水号起始值
serialStep: number // 流水号步长
cycleFlag: boolean // 是否循环
cycleMethod: number // 循环方式
remark: string // 备注
}
// MES 编码规则分段 API
export const AutoCodePartApi = {
// 查询编码规则分段详情
getAutoCodePart: async (id: number) => {
return await request.get({ url: `/mes/md/auto-code-part/get?id=` + id })
},
// 查询编码规则分段列表
getAutoCodePartListByRuleId: async (ruleId: number) => {
return await request.get({ url: `/mes/md/auto-code-part/list-by-rule-id?ruleId=` + ruleId })
},
// 新增编码规则分段
createAutoCodePart: async (data: AutoCodePartVO) => {
return await request.post({ url: `/mes/md/auto-code-part/create`, data })
},
// 修改编码规则分段
updateAutoCodePart: async (data: AutoCodePartVO) => {
return await request.put({ url: `/mes/md/auto-code-part/update`, data })
},
// 删除编码规则分段
deleteAutoCodePart: async (id: number) => {
return await request.delete({ url: `/mes/md/auto-code-part/delete?id=` + id })
}
}

View File

@ -0,0 +1,12 @@
import request from '@/config/axios'
// MES 编码生成 API
export const AutoCodeRecordApi = {
// 生成编码
generateAutoCode: async (ruleCode: string, inputChar?: string) => {
return await request.post({
url: `/mes/md/auto-code-record/generate`,
data: { ruleCode, inputChar }
})
}
}

View File

@ -0,0 +1,48 @@
import request from '@/config/axios'
// MES 编码规则 VO
export interface AutoCodeRuleVO {
id: number // 规则编号
code: string // 规则编码
name: string // 规则名称
description: string // 规则描述
maxLength: number // 最大长度
padded: boolean // 是否补齐
paddedChar: string // 补齐字符
paddedMethod: number // 补齐方式
status: number // 状态
remark: string // 备注
}
// MES 编码规则 API
export const AutoCodeRuleApi = {
// 查询编码规则分页
getAutoCodeRulePage: async (params: any) => {
return await request.get({ url: `/mes/md/auto-code-rule/page`, params })
},
// 查询编码规则详情
getAutoCodeRule: async (id: number) => {
return await request.get({ url: `/mes/md/auto-code-rule/get?id=` + id })
},
// 新增编码规则
createAutoCodeRule: async (data: AutoCodeRuleVO) => {
return await request.post({ url: `/mes/md/auto-code-rule/create`, data })
},
// 修改编码规则
updateAutoCodeRule: async (data: AutoCodeRuleVO) => {
return await request.put({ url: `/mes/md/auto-code-rule/update`, data })
},
// 删除编码规则
deleteAutoCodeRule: async (id: number) => {
return await request.delete({ url: `/mes/md/auto-code-rule/delete?id=` + id })
},
// 导出编码规则 Excel
exportAutoCodeRule: async (params: any) => {
return await request.download({ url: `/mes/md/auto-code-rule/export-excel`, params })
}
}

View File

@ -0,0 +1,64 @@
import request from '@/config/axios'
// MES 客户 VO
export interface MdClientVO {
id: number // 客户编号
code: string // 客户编码
name: string // 客户名称
nickname: string // 客户简称
englishName: string // 客户英文名称
description: string // 客户简介
logo: string // 客户LOGO地址
type: number // 客户类型
address: string // 客户地址
website: string // 客户官网地址
email: string // 客户邮箱地址
telephone: string // 客户电话
contact1Name: string // 联系人1
contact1Telephone: string // 联系人1-电话
contact1Email: string // 联系人1-邮箱
contact2Name: string // 联系人2
contact2Telephone: string // 联系人2-电话
contact2Email: string // 联系人2-邮箱
creditCode: string // 统一社会信用代码
status: number // 状态
remark: string // 备注
}
// MES 客户 API
export const MdClientApi = {
// 查询客户分页
getClientPage: async (params: any) => {
return await request.get({ url: `/mes/md-client/page`, params })
},
// 查询客户详情
getClient: async (id: number) => {
return await request.get({ url: `/mes/md-client/get?id=` + id })
},
// 新增客户
createClient: async (data: MdClientVO) => {
return await request.post({ url: `/mes/md-client/create`, data })
},
// 修改客户
updateClient: async (data: MdClientVO) => {
return await request.put({ url: `/mes/md-client/update`, data })
},
// 删除客户
deleteClient: async (id: number) => {
return await request.delete({ url: `/mes/md-client/delete?id=` + id })
},
// 导出客户 Excel
exportClient: async (params: any) => {
return await request.download({ url: `/mes/md-client/export-excel`, params })
},
// 下载客户导入模板
importTemplate: async () => {
return await request.download({ url: `/mes/md-client/get-import-template` })
}
}

View File

@ -0,0 +1,34 @@
import request from '@/config/axios'
// MES 物料批次属性配置 VO
export interface MdItemBatchConfigVO {
id?: number // 编号
itemId: number // 物料编号
produceDateFlag: boolean // 批次属性-生产日期
expireDateFlag: boolean // 批次属性-有效期
receiptDateFlag: boolean // 批次属性-入库日期
vendorFlag: boolean // 批次属性-供应商
clientFlag: boolean // 批次属性-客户
salesOrderCodeFlag: boolean // 批次属性-销售订单编号
purchaseOrderCodeFlag: boolean // 批次属性-采购订单编号
workorderFlag: boolean // 批次属性-生产工单
taskFlag: boolean // 批次属性-生产任务
workstationFlag: boolean // 批次属性-工作站
toolFlag: boolean // 批次属性-工具
moldFlag: boolean // 批次属性-模具
lotNumberFlag: boolean // 批次属性-生产批号
qualityStatusFlag: boolean // 批次属性-质量状态
}
// MES 物料批次属性配置 API
export const MdItemBatchConfigApi = {
// 根据物料编号获取批次属性配置
getBatchConfigByItemId: async (itemId: number) => {
return await request.get({ url: `/mes/md/item-batch-config/get-by-item-id?itemId=` + itemId })
},
// 保存批次属性配置(新增或更新)
saveBatchConfig: async (data: MdItemBatchConfigVO) => {
return await request.post({ url: `/mes/md/item-batch-config/save`, data })
}
}

View File

@ -0,0 +1,64 @@
import request from '@/config/axios'
// MES 物料产品 VO
export interface MdItemVO {
id: number // 物料编号
code: string // 物料编码
name: string // 物料名称
specification: string // 规格型号
unitMeasureId: number // 计量单位编号
unitMeasureName?: string // 计量单位名称
itemTypeId: number // 物料分类编号
itemTypeName?: string // 物料分类名称
itemOrProduct?: string // 物料/产品标识
status: number // 状态
safeStockFlag: boolean // 是否启用安全库存
minStock: number // 最低库存量
maxStock: number // 最高库存量
highValue: boolean // 是否高值物料
batchFlag: boolean // 是否启用批次管理
remark: string // 备注
}
// MES 物料产品 API
export const MdItemApi = {
// 查询物料产品分页
getItemPage: async (params: any) => {
return await request.get({ url: `/mes/md/item/page`, params })
},
// 查询物料产品详情
getItem: async (id: number) => {
return await request.get({ url: `/mes/md/item/get?id=` + id })
},
// 新增物料产品
createItem: async (data: MdItemVO) => {
return await request.post({ url: `/mes/md/item/create`, data })
},
// 修改物料产品
updateItem: async (data: MdItemVO) => {
return await request.put({ url: `/mes/md/item/update`, data })
},
// 修改物料产品状态
updateItemStatus: async (id: number, status: number) => {
return await request.put({ url: `/mes/md/item/update-status`, params: { id, status } })
},
// 删除物料产品
deleteItem: async (id: number) => {
return await request.delete({ url: `/mes/md/item/delete?id=` + id })
},
// 导出物料产品 Excel
exportItem: async (params: any) => {
return await request.download({ url: `/mes/md/item/export-excel`, params })
},
// 下载物料导入模板
importTemplate: async () => {
return await request.download({ url: `/mes/md/item/get-import-template` })
}
}

View File

@ -0,0 +1,51 @@
import request from '@/config/axios'
// MES 产品BOM VO
export interface MdProductBomVO {
id?: number // BOM 编号
itemId: number // 物料产品 ID
bomItemId: number // BOM 物料 ID
quantity: number // 物料使用比例
status?: number // 是否启用
remark?: string // 备注
createTime?: Date // 创建时间
// ========== 关联展示字段 ==========
bomItemCode?: string // BOM 物料编码
bomItemName?: string // BOM 物料名称
bomItemSpecification?: string // BOM 物料规格
unitMeasureName?: string // 计量单位名称
itemOrProduct?: string // 产品物料标识
}
// MES 产品BOM API
export const MdProductBomApi = {
// 创建产品BOM
createProductBom: async (data: MdProductBomVO) => {
return await request.post({ url: `/mes/md/product-bom/create`, data })
},
// 更新产品BOM
updateProductBom: async (data: MdProductBomVO) => {
return await request.put({ url: `/mes/md/product-bom/update`, data })
},
// 删除产品BOM
deleteProductBom: async (id: number) => {
return await request.delete({ url: `/mes/md/product-bom/delete?id=` + id })
},
// 获得产品BOM
getProductBom: async (id: number) => {
return await request.get({ url: `/mes/md/product-bom/get?id=` + id })
},
// 获得产品BOM分页
getProductBomPage: async (params: any) => {
return await request.get({ url: `/mes/md/product-bom/page`, params })
},
// 根据物料产品编号获得产品BOM列表
getProductBomListByItemId: async (itemId: number) => {
return await request.get({ url: `/mes/md/product-bom/list-by-item-id?itemId=` + itemId })
}
}

View File

@ -0,0 +1,50 @@
import request from '@/config/axios'
// MES 产品SIP VO
export interface MdProductSipVO {
id?: number // SIP 编号
itemId: number // 物料产品 ID
sort: number // 排列顺序
processId?: number // 工序 ID
title: string // 标题
description?: string // 详细描述
url?: string // 图片地址
remark?: string // 备注
createTime?: Date // 创建时间
// ========== 关联展示字段 ==========
processCode?: string // 工序编号
processName?: string // 工序名称
}
// MES 产品SIP API
export const MdProductSipApi = {
// 创建产品SIP
createProductSip: async (data: MdProductSipVO) => {
return await request.post({ url: `/mes/md/product-sip/create`, data })
},
// 更新产品SIP
updateProductSip: async (data: MdProductSipVO) => {
return await request.put({ url: `/mes/md/product-sip/update`, data })
},
// 删除产品SIP
deleteProductSip: async (id: number) => {
return await request.delete({ url: `/mes/md/product-sip/delete?id=` + id })
},
// 获得产品SIP
getProductSip: async (id: number) => {
return await request.get({ url: `/mes/md/product-sip/get?id=` + id })
},
// 获得产品SIP分页
getProductSipPage: async (params: any) => {
return await request.get({ url: `/mes/md/product-sip/page`, params })
},
// 根据物料产品编号获得产品SIP列表
getProductSipListByItemId: async (itemId: number) => {
return await request.get({ url: `/mes/md/product-sip/list-by-item-id?itemId=` + itemId })
}
}

View File

@ -0,0 +1,50 @@
import request from '@/config/axios'
// MES 产品SOP VO
export interface MdProductSopVO {
id?: number // SOP 编号
itemId: number // 物料产品 ID
sort: number // 排列顺序
processId?: number // 工序 ID
title: string // 标题
description?: string // 详细描述
url?: string // 图片地址
remark?: string // 备注
createTime?: Date // 创建时间
// ========== 关联展示字段 ==========
processCode?: string // 工序编号
processName?: string // 工序名称
}
// MES 产品SOP API
export const MdProductSopApi = {
// 创建产品SOP
createProductSop: async (data: MdProductSopVO) => {
return await request.post({ url: `/mes/md/product-sop/create`, data })
},
// 更新产品SOP
updateProductSop: async (data: MdProductSopVO) => {
return await request.put({ url: `/mes/md/product-sop/update`, data })
},
// 删除产品SOP
deleteProductSop: async (id: number) => {
return await request.delete({ url: `/mes/md/product-sop/delete?id=` + id })
},
// 获得产品SOP
getProductSop: async (id: number) => {
return await request.get({ url: `/mes/md/product-sop/get?id=` + id })
},
// 获得产品SOP分页
getProductSopPage: async (params: any) => {
return await request.get({ url: `/mes/md/product-sop/page`, params })
},
// 根据物料产品编号获得产品SOP列表
getProductSopListByItemId: async (itemId: number) => {
return await request.get({ url: `/mes/md/product-sop/list-by-item-id?itemId=` + itemId })
}
}

View File

@ -0,0 +1,46 @@
import request from '@/config/axios'
// MES 物料产品分类 VO
export interface MdItemTypeVO {
id: number // 分类编号
parentId: number // 父分类编号
code: string // 分类编码
name: string // 分类名称
itemOrProduct: string // 物料/产品标识
sort: number // 显示排序
status: number // 状态
remark: string // 备注
}
// MES 物料产品分类 API
export const MdItemTypeApi = {
// 查询物料产品分类列表
getItemTypeList: async (params?: any) => {
return await request.get({ url: `/mes/md/item-type/list`, params })
},
// 查询物料产品分类精简列表
getItemTypeSimpleList: async () => {
return await request.get({ url: `/mes/md/item-type/simple-list` })
},
// 查询物料产品分类详情
getItemType: async (id: number) => {
return await request.get({ url: `/mes/md/item-type/get?id=` + id })
},
// 新增物料产品分类
createItemType: async (data: MdItemTypeVO) => {
return await request.post({ url: `/mes/md/item-type/create`, data })
},
// 修改物料产品分类
updateItemType: async (data: MdItemTypeVO) => {
return await request.put({ url: `/mes/md/item-type/update`, data })
},
// 删除物料产品分类
deleteItemType: async (id: number) => {
return await request.delete({ url: `/mes/md/item-type/delete?id=` + id })
}
}

View File

@ -0,0 +1,51 @@
import request from '@/config/axios'
// MES 计量单位 VO
export interface MdUnitMeasureVO {
id: number // 单位编号
code: string // 单位编码
name: string // 单位名称
primaryFlag: boolean // 是否主单位
primaryId: number // 主单位编号
changeRate: number // 与主单位换算比例
status: number // 状态
remark: string // 备注
}
// MES 计量单位 API
export const MdUnitMeasureApi = {
// 查询计量单位分页
getUnitMeasurePage: async (params: any) => {
return await request.get({ url: `/mes/md/unit-measure/page`, params })
},
// 查询计量单位精简列表
getUnitMeasureSimpleList: async () => {
return await request.get({ url: `/mes/md/unit-measure/simple-list` })
},
// 查询计量单位详情
getUnitMeasure: async (id: number) => {
return await request.get({ url: `/mes/md/unit-measure/get?id=` + id })
},
// 新增计量单位
createUnitMeasure: async (data: MdUnitMeasureVO) => {
return await request.post({ url: `/mes/md/unit-measure/create`, data })
},
// 修改计量单位
updateUnitMeasure: async (data: MdUnitMeasureVO) => {
return await request.put({ url: `/mes/md/unit-measure/update`, data })
},
// 删除计量单位
deleteUnitMeasure: async (id: number) => {
return await request.delete({ url: `/mes/md/unit-measure/delete?id=` + id })
},
// 导出计量单位 Excel
exportUnitMeasure: async (params: any) => {
return await request.download({ url: `/mes/md/unit-measure/export-excel`, params })
}
}

65
src/api/mes/md/vendor/index.ts vendored Normal file
View File

@ -0,0 +1,65 @@
import request from '@/config/axios'
// MES 供应商 VO
export interface MdVendorVO {
id: number // 供应商编号
code: string // 供应商编码
name: string // 供应商名称
nickname: string // 供应商简称
englishName: string // 供应商英文名称
description: string // 供应商简介
logo: string // 供应商LOGO地址
level: string // 供应商等级
score: number // 供应商评分
address: string // 供应商地址
website: string // 供应商官网地址
email: string // 供应商邮箱地址
telephone: string // 供应商电话
contact1Name: string // 联系人1
contact1Telephone: string // 联系人1-电话
contact1Email: string // 联系人1-邮箱
contact2Name: string // 联系人2
contact2Telephone: string // 联系人2-电话
contact2Email: string // 联系人2-邮箱
creditCode: string // 统一社会信用代码
status: number // 状态
remark: string // 备注
}
// MES 供应商 API
export const MdVendorApi = {
// 查询供应商分页
getVendorPage: async (params: any) => {
return await request.get({ url: `/mes/md-vendor/page`, params })
},
// 查询供应商详情
getVendor: async (id: number) => {
return await request.get({ url: `/mes/md-vendor/get?id=` + id })
},
// 新增供应商
createVendor: async (data: MdVendorVO) => {
return await request.post({ url: `/mes/md-vendor/create`, data })
},
// 修改供应商
updateVendor: async (data: MdVendorVO) => {
return await request.put({ url: `/mes/md-vendor/update`, data })
},
// 删除供应商
deleteVendor: async (id: number) => {
return await request.delete({ url: `/mes/md-vendor/delete?id=` + id })
},
// 导出供应商 Excel
exportVendor: async (params: any) => {
return await request.download({ url: `/mes/md-vendor/export-excel`, params })
},
// 下载供应商导入模板
importTemplate: async () => {
return await request.download({ url: `/mes/md-vendor/get-import-template` })
}
}

View File

@ -0,0 +1,51 @@
import request from '@/config/axios'
// MES 工作站 VO
export interface MdWorkstationVO {
id: number // 工作站编号
code: string // 工作站编码
name: string // 工作站名称
address: string // 工作站地点
workshopId: number // 所在车间 ID
workshopName: string // 所在车间名称
processId: number // 工序 ID
processName: string // 工序名称
warehouseId: number // 线边库 ID
locationId: number // 库区 ID
areaId: number // 库位 ID
status: number // 状态
remark: string // 备注
}
// MES 工作站 API
export const MdWorkstationApi = {
// 查询工作站分页
getWorkstationPage: async (params: any) => {
return await request.get({ url: `/mes/md-workstation/page`, params })
},
// 查询工作站详情
getWorkstation: async (id: number) => {
return await request.get({ url: `/mes/md-workstation/get?id=` + id })
},
// 新增工作站
createWorkstation: async (data: MdWorkstationVO) => {
return await request.post({ url: `/mes/md-workstation/create`, data })
},
// 修改工作站
updateWorkstation: async (data: MdWorkstationVO) => {
return await request.put({ url: `/mes/md-workstation/update`, data })
},
// 删除工作站
deleteWorkstation: async (id: number) => {
return await request.delete({ url: `/mes/md-workstation/delete?id=` + id })
},
// 导出工作站 Excel
exportWorkstation: async (params: any) => {
return await request.download({ url: `/mes/md-workstation/export-excel`, params })
}
}

View File

@ -0,0 +1,32 @@
import request from '@/config/axios'
// MES 设备资源 VO
export interface MdWorkstationMachineVO {
id: number
workstationId: number // 工作站 ID
machineryId: number // 设备 ID
machineryName: string // 设备名称
machineryCode: string // 设备编码
quantity: number // 数量
remark: string // 备注
}
// MES 设备资源 API
export const MdWorkstationMachineApi = {
// 查询设备资源列表
getWorkstationMachineList: async (workstationId: number) => {
return await request.get({
url: `/mes/md-workstation-machine/list-by-workstation?workstationId=` + workstationId
})
},
// 新增设备资源
createWorkstationMachine: async (data: MdWorkstationMachineVO) => {
return await request.post({ url: `/mes/md-workstation-machine/create`, data })
},
// 删除设备资源
deleteWorkstationMachine: async (id: number) => {
return await request.delete({ url: `/mes/md-workstation-machine/delete?id=` + id })
}
}

View File

@ -0,0 +1,36 @@
import request from '@/config/axios'
// MES 工装夹具资源 VO
export interface MdWorkstationToolVO {
id: number
workstationId: number // 工作站 ID
toolTypeId: number // 工具类型 ID
toolTypeName: string // 工具类型名称
quantity: number // 数量
remark: string // 备注
}
// MES 工装夹具资源 API
export const MdWorkstationToolApi = {
// 查询工装夹具资源列表
getWorkstationToolList: async (workstationId: number) => {
return await request.get({
url: `/mes/md-workstation-tool/list-by-workstation?workstationId=` + workstationId
})
},
// 新增工装夹具资源
createWorkstationTool: async (data: MdWorkstationToolVO) => {
return await request.post({ url: `/mes/md-workstation-tool/create`, data })
},
// 修改工装夹具资源
updateWorkstationTool: async (data: MdWorkstationToolVO) => {
return await request.put({ url: `/mes/md-workstation-tool/update`, data })
},
// 删除工装夹具资源
deleteWorkstationTool: async (id: number) => {
return await request.delete({ url: `/mes/md-workstation-tool/delete?id=` + id })
}
}

View File

@ -0,0 +1,36 @@
import request from '@/config/axios'
// MES 人力资源 VO
export interface MdWorkstationWorkerVO {
id: number
workstationId: number // 工作站 ID
postId: number // 岗位 ID
postName: string // 岗位名称
quantity: number // 数量
remark: string // 备注
}
// MES 人力资源 API
export const MdWorkstationWorkerApi = {
// 查询人力资源列表
getWorkstationWorkerList: async (workstationId: number) => {
return await request.get({
url: `/mes/md-workstation-worker/list-by-workstation?workstationId=` + workstationId
})
},
// 新增人力资源
createWorkstationWorker: async (data: MdWorkstationWorkerVO) => {
return await request.post({ url: `/mes/md-workstation-worker/create`, data })
},
// 修改人力资源
updateWorkstationWorker: async (data: MdWorkstationWorkerVO) => {
return await request.put({ url: `/mes/md-workstation-worker/update`, data })
},
// 删除人力资源
deleteWorkstationWorker: async (id: number) => {
return await request.delete({ url: `/mes/md-workstation-worker/delete?id=` + id })
}
}

View File

@ -0,0 +1,51 @@
import request from '@/config/axios'
// MES 车间 VO
export interface MdWorkshopVO {
id: number // 车间编号
code: string // 车间编码
name: string // 车间名称
area: number // 面积
chargeUserId: number // 负责人用户编号
chargeUserName: string // 负责人名称
status: number // 状态
remark: string // 备注
}
// MES 车间 API
export const MdWorkshopApi = {
// 查询车间分页
getWorkshopPage: async (params: any) => {
return await request.get({ url: `/mes/md-workshop/page`, params })
},
// 查询车间精简列表
getWorkshopSimpleList: async () => {
return await request.get({ url: `/mes/md-workshop/simple-list` })
},
// 查询车间详情
getWorkshop: async (id: number) => {
return await request.get({ url: `/mes/md-workshop/get?id=` + id })
},
// 新增车间
createWorkshop: async (data: MdWorkshopVO) => {
return await request.post({ url: `/mes/md-workshop/create`, data })
},
// 修改车间
updateWorkshop: async (data: MdWorkshopVO) => {
return await request.put({ url: `/mes/md-workshop/update`, data })
},
// 删除车间
deleteWorkshop: async (id: number) => {
return await request.delete({ url: `/mes/md-workshop/delete?id=` + id })
},
// 导出车间 Excel
exportWorkshop: async (params: any) => {
return await request.download({ url: `/mes/md-workshop/export-excel`, params })
}
}

View File

@ -0,0 +1,45 @@
import request from '@/config/axios'
// MES 安灯配置 VO
export interface ProAndonConfigVO {
id: number // 编号
reason: string // 呼叫原因
level: number // 级别
handlerRoleId: number // 处置人角色编号
handlerUserId: number // 处置人编号
handlerUserNickname: string // 处置人昵称
remark: string // 备注
}
// MES 安灯配置 API
export const ProAndonConfigApi = {
// 查询安灯配置分页
getAndonConfigPage: async (params: any) => {
return await request.get({ url: `/mes/pro/andon-config/page`, params })
},
// 查询安灯配置列表
getAndonConfigList: async () => {
return await request.get({ url: `/mes/pro/andon-config/list` })
},
// 查询安灯配置详情
getAndonConfig: async (id: number) => {
return await request.get({ url: `/mes/pro/andon-config/get?id=` + id })
},
// 新增安灯配置
createAndonConfig: async (data: ProAndonConfigVO) => {
return await request.post({ url: `/mes/pro/andon-config/create`, data })
},
// 修改安灯配置
updateAndonConfig: async (data: ProAndonConfigVO) => {
return await request.put({ url: `/mes/pro/andon-config/update`, data })
},
// 删除安灯配置
deleteAndonConfig: async (id: number) => {
return await request.delete({ url: `/mes/pro/andon-config/delete?id=` + id })
}
}

View File

@ -0,0 +1,57 @@
import request from '@/config/axios'
// MES 安灯记录 VO
export interface ProAndonRecordVO {
id: number // 编号
configId: number // 安灯配置编号
workstationId: number // 工作站编号
workstationCode: string // 工作站编码
workstationName: string // 工作站名称
userId: number // 发起用户编号
userNickname: string // 发起人昵称
workOrderId: number // 工单编号
workOrderCode: string // 工单编码
processId: number // 工序编号
processName: string // 工序名称
reason: string // 呼叫原因
level: number // 级别
status: number // 处置状态
handleTime: Date // 处置时间
handlerUserId: number // 处置人编号
handlerUserNickname: string // 处置人昵称
remark: string // 备注
createTime: Date // 发起时间
}
// MES 安灯记录 API
export const ProAndonRecordApi = {
// 查询安灯记录分页
getAndonRecordPage: async (params: any) => {
return await request.get({ url: `/mes/pro/andon-record/page`, params })
},
// 查询安灯记录详情
getAndonRecord: async (id: number) => {
return await request.get({ url: `/mes/pro/andon-record/get?id=` + id })
},
// 新增安灯记录
createAndonRecord: async (data: ProAndonRecordVO) => {
return await request.post({ url: `/mes/pro/andon-record/create`, data })
},
// 删除安灯记录
deleteAndonRecord: async (id: number) => {
return await request.delete({ url: `/mes/pro/andon-record/delete?id=` + id })
},
// 更新安灯记录(保存/已处置)
updateAndonRecord: async (data: any) => {
return await request.put({ url: `/mes/pro/andon-record/update`, data })
},
// 导出安灯记录 Excel
exportAndonRecord: async (params: any) => {
return await request.download({ url: `/mes/pro/andon-record/export-excel`, params })
}
}

View File

@ -0,0 +1,67 @@
import request from '@/config/axios'
// MES 生产流转卡 VO
export interface ProCardVO {
id: number // 编号
code: string // 流转卡编码
workOrderId: number // 生产工单编号
workOrderCode: string // 工单编码
workOrderName: string // 工单名称
batchCode: string // 批次号
itemId: number // 产品物料编号
itemCode: string // 产品编码
itemName: string // 产品名称
specification: string // 规格型号
unitMeasureName: string // 单位名称
transferedQuantity: number // 流转数量
status: number // 状态
remark: string // 备注
}
// MES 生产流转卡 API
export const ProCardApi = {
// 查询生产流转卡分页
getCardPage: async (params: any) => {
return await request.get({ url: `/mes/pro/card/page`, params })
},
// 查询生产流转卡详情
getCard: async (id: number) => {
return await request.get({ url: `/mes/pro/card/get?id=` + id })
},
// 新增生产流转卡
createCard: async (data: ProCardVO) => {
return await request.post({ url: `/mes/pro/card/create`, data })
},
// 修改生产流转卡
updateCard: async (data: ProCardVO) => {
return await request.put({ url: `/mes/pro/card/update`, data })
},
// 删除生产流转卡
deleteCard: async (id: number) => {
return await request.delete({ url: `/mes/pro/card/delete?id=` + id })
},
// 导出生产流转卡 Excel
exportCard: async (params: any) => {
return await request.download({ url: `/mes/pro/card/export-excel`, params })
},
// 提交生产流转卡
submitCard: async (id: number) => {
return await request.put({ url: `/mes/pro/card/submit?id=` + id })
},
// 完成生产流转卡
finishCard: async (id: number) => {
return await request.put({ url: `/mes/pro/card/finish?id=` + id })
},
// 取消生产流转卡
cancelCard: async (id: number) => {
return await request.put({ url: `/mes/pro/card/cancel?id=` + id })
}
}

View File

@ -0,0 +1,51 @@
import request from '@/config/axios'
// MES 流转卡工序记录 VO
export interface ProCardProcessVO {
id: number // 编号
cardId: number // 流转卡编号
sort: number // 序号
processId: number // 工序编号
processCode: string // 工序编码
processName: string // 工序名称
inputTime: Date // 进入工序时间
outputTime: Date // 出工序时间
inputQuantity: number // 投入数量
outputQuantity: number // 产出数量
unqualifiedQuantity: number // 不合格品数量
workstationId: number // 工位编号
workstationCode: string // 工位编码
workstationName: string // 工位名称
userId: number // 操作人编号
nickname: string // 操作人名称
ipqcId: number // 过程检验单编号
remark: string // 备注
}
// MES 流转卡工序记录 API
export const ProCardProcessApi = {
// 查询流转卡工序记录分页
getCardProcessPage: async (params: any) => {
return await request.get({ url: `/mes/pro/card-process/page`, params })
},
// 查询流转卡工序记录详情
getCardProcess: async (id: number) => {
return await request.get({ url: `/mes/pro/card-process/get?id=` + id })
},
// 新增流转卡工序记录
createCardProcess: async (data: ProCardProcessVO) => {
return await request.post({ url: `/mes/pro/card-process/create`, data })
},
// 修改流转卡工序记录
updateCardProcess: async (data: ProCardProcessVO) => {
return await request.put({ url: `/mes/pro/card-process/update`, data })
},
// 删除流转卡工序记录
deleteCardProcess: async (id: number) => {
return await request.delete({ url: `/mes/pro/card-process/delete?id=` + id })
}
}

View File

@ -0,0 +1,85 @@
import request from '@/config/axios'
// MES 生产报工 VO
export interface ProFeedbackVO {
id: number // 编号
code: string // 报工单编号
type: number // 报工类型
channel: string // 报工途径
feedbackTime: Date // 报工时间
workstationId: number // 工作站编号
workstationCode: string // 工作站编码
workstationName: string // 工作站名称
routeId: number // 工艺路线编号
routeCode: string // 工艺路线编码
processId: number // 工序编号
processCode: string // 工序编码
processName: string // 工序名称
checkFlag: boolean // 是否需要检验
workOrderId: number // 生产工单编号
workOrderCode: string // 工单编码
workOrderName: string // 工单名称
taskId: number // 生产任务编号
taskCode: string // 任务编码
itemId: number // 产品物料编号
itemCode: string // 物料编码
itemName: string // 物料名称
itemSpecification: string // 规格型号
unitMeasureId: number // 单位编号
unitMeasureName: string // 单位名称
expireDate: Date // 过期日期
scheduledQuantity: number // 排产数量
feedbackQuantity: number // 本次报工数量
qualifiedQuantity: number // 合格品数量
unqualifiedQuantity: number // 不良品数量
uncheckQuantity: number // 待检测数量
laborScrapQuantity: number // 工废数量
materialScrapQuantity: number // 料废数量
otherScrapQuantity: number // 其他废品数量
feedbackUserId: number // 报工用户编号
feedbackUserNickname: string // 报工人昵称
approveUserId: number // 审核用户编号
approveUserNickname: string // 审核人昵称
status: number // 状态
remark: string // 备注
}
// MES 生产报工 API
export const ProFeedbackApi = {
// 查询生产报工分页
getFeedbackPage: async (params: any) => {
return await request.get({ url: `/mes/pro/feedback/page`, params })
},
// 查询生产报工详情
getFeedback: async (id: number) => {
return await request.get({ url: `/mes/pro/feedback/get?id=` + id })
},
// 新增生产报工
createFeedback: async (data: ProFeedbackVO) => {
return await request.post({ url: `/mes/pro/feedback/create`, data })
},
// 修改生产报工
updateFeedback: async (data: ProFeedbackVO) => {
return await request.put({ url: `/mes/pro/feedback/update`, data })
},
// 删除生产报工
deleteFeedback: async (id: number) => {
return await request.delete({ url: `/mes/pro/feedback/delete?id=` + id })
},
// 导出生产报工 Excel
exportFeedback: async (params: any) => {
return await request.download({ url: `/mes/pro/feedback/export-excel`, params })
},
// 提交报工
submitFeedback: async (id: number) => {
return await request.put({ url: `/mes/pro/feedback/submit?id=` + id })
},
// 驳回报工
rejectFeedback: async (id: number) => {
return await request.put({ url: `/mes/pro/feedback/reject?id=` + id })
},
// 审批报工(返回审批后的状态)
approveFeedback: async (id: number) => {
return await request.put({ url: `/mes/pro/feedback/approve?id=` + id })
}
}

View File

@ -0,0 +1,44 @@
import request from '@/config/axios'
// MES 生产工序内容 VO
export interface ProProcessContentVO {
id?: number // 编号
processId: number // 工序编号
sort: number // 顺序编号
content?: string // 步骤说明
device?: string // 辅助设备
material?: string // 辅助材料
docUrl?: string // 材料文档 URL
remark?: string // 备注
createTime?: Date // 创建时间
}
// MES 生产工序内容 API
export const ProProcessContentApi = {
// 查询工序内容列表(按工序编号)
getProcessContentListByProcessId: async (processId: number) => {
return await request.get({
url: `/mes/pro/process-content/list-by-process?processId=` + processId
})
},
// 查询工序内容详情
getProcessContent: async (id: number) => {
return await request.get({ url: `/mes/pro/process-content/get?id=` + id })
},
// 新增工序内容
createProcessContent: async (data: ProProcessContentVO) => {
return await request.post({ url: `/mes/pro/process-content/create`, data })
},
// 修改工序内容
updateProcessContent: async (data: ProProcessContentVO) => {
return await request.put({ url: `/mes/pro/process-content/update`, data })
},
// 删除工序内容
deleteProcessContent: async (id: number) => {
return await request.delete({ url: `/mes/pro/process-content/delete?id=` + id })
}
}

View File

@ -0,0 +1,50 @@
import request from '@/config/axios'
// MES 生产工序 VO
export interface ProProcessVO {
id?: number // 编号
code: string // 工序编码
name: string // 工序名称
attention?: string // 工艺要求
status: number // 状态
remark?: string // 备注
createTime?: Date // 创建时间
}
// MES 生产工序 API
export const ProProcessApi = {
// 查询生产工序列表分页
getProcessPage: async (params: any) => {
return await request.get({ url: `/mes/pro/process/page`, params })
},
// 查询生产工序精简列表
getProcessSimpleList: async () => {
return await request.get({ url: `/mes/pro/process/simple-list` })
},
// 查询生产工序详情
getProcess: async (id: number) => {
return await request.get({ url: `/mes/pro/process/get?id=` + id })
},
// 新增生产工序
createProcess: async (data: ProProcessVO) => {
return await request.post({ url: `/mes/pro/process/create`, data })
},
// 修改生产工序
updateProcess: async (data: ProProcessVO) => {
return await request.put({ url: `/mes/pro/process/update`, data })
},
// 删除生产工序
deleteProcess: async (id: number) => {
return await request.delete({ url: `/mes/pro/process/delete?id=` + id })
},
// 导出生产工序 Excel
exportProcess: async (params: any) => {
return await request.download({ url: `/mes/pro/process/export-excel`, params })
}
}

View File

@ -0,0 +1,55 @@
import request from '@/config/axios'
// MES 工艺路线 VO
export interface ProRouteVO {
id?: number // 编号
code: string // 工艺路线编码
name: string // 工艺路线名称
description?: string // 工艺路线说明
status?: number // 状态
remark?: string // 备注
createTime?: Date // 创建时间
}
// MES 工艺路线 API
export const ProRouteApi = {
// 查询工艺路线分页
getRoutePage: async (params: any) => {
return await request.get({ url: `/mes/pro/route/page`, params })
},
// 查询工艺路线精简列表
getRouteSimpleList: async () => {
return await request.get({ url: `/mes/pro/route/simple-list` })
},
// 查询工艺路线详情
getRoute: async (id: number) => {
return await request.get({ url: `/mes/pro/route/get?id=` + id })
},
// 新增工艺路线
createRoute: async (data: ProRouteVO) => {
return await request.post({ url: `/mes/pro/route/create`, data })
},
// 修改工艺路线
updateRoute: async (data: ProRouteVO) => {
return await request.put({ url: `/mes/pro/route/update`, data })
},
// 修改工艺路线状态
updateRouteStatus: async (id: number, status: number) => {
return await request.put({ url: `/mes/pro/route/update-status?id=` + id + `&status=` + status })
},
// 删除工艺路线
deleteRoute: async (id: number) => {
return await request.delete({ url: `/mes/pro/route/delete?id=` + id })
},
// 导出工艺路线 Excel
exportRoute: async (params: any) => {
return await request.download({ url: `/mes/pro/route/export-excel`, params })
}
}

View File

@ -0,0 +1,64 @@
import request from '@/config/axios'
// MES 工艺路线工序 VO
export interface ProRouteProcessVO {
id?: number // 编号
routeId: number // 工艺路线编号
processId: number // 工序编号
processCode?: string // 工序编码
processName?: string // 工序名称
sort: number // 序号
nextProcessId?: number // 下一道工序编号
nextProcessName?: string // 下一道工序名称
linkType: number // 与下一道工序关系
prepareTime?: number // 准备时间(分钟)
waitTime?: number // 等待时间(分钟)
colorCode?: string // 甘特图显示颜色
keyFlag?: number // 是否关键工序
checkFlag?: boolean // 是否质检工序
remark?: string // 备注
createTime?: Date // 创建时间
}
// MES 工艺路线工序 API
export const ProRouteProcessApi = {
// 按工艺路线查询工序列表
getRouteProcessListByRoute: async (routeId: number) => {
return await request.get({ url: `/mes/pro/route-process/list-by-route?routeId=` + routeId })
},
// 按产品查询工序列表(自动查找关联的工艺路线)
getRouteProcessListByProduct: async (productId: number) => {
return await request.get({
url: `/mes/pro/route-process/list-by-product?productId=` + productId
})
},
// 查询工艺路线工序详情
getRouteProcess: async (id: number) => {
return await request.get({ url: `/mes/pro/route-process/get?id=` + id })
},
// 按工艺路线+工序精确查询工序配置
getRouteProcessByRouteAndProcess: async (routeId: number, processId: number) => {
return await request.get({
url: `/mes/pro/route-process/get-by-route-and-process`,
params: { routeId, processId }
})
},
// 新增工艺路线工序
createRouteProcess: async (data: ProRouteProcessVO) => {
return await request.post({ url: `/mes/pro/route-process/create`, data })
},
// 修改工艺路线工序
updateRouteProcess: async (data: ProRouteProcessVO) => {
return await request.put({ url: `/mes/pro/route-process/update`, data })
},
// 删除工艺路线工序
deleteRouteProcess: async (id: number) => {
return await request.delete({ url: `/mes/pro/route-process/delete?id=` + id })
}
}

View File

@ -0,0 +1,45 @@
import request from '@/config/axios'
// MES 工艺路线产品 VO
export interface ProRouteProductVO {
id?: number // 编号
routeId: number // 工艺路线编号
itemId: number // 产品物料编号
itemCode?: string // 产品编码
itemName?: string // 产品名称
specification?: string // 规格型号
unitName?: string // 单位名称
quantity?: number // 生产数量
productionTime?: number // 生产用时
timeUnitType?: number // 时间单位
remark?: string // 备注
createTime?: Date // 创建时间
}
// MES 工艺路线产品 API
export const ProRouteProductApi = {
// 按工艺路线查询产品列表
getRouteProductListByRoute: async (routeId: number) => {
return await request.get({ url: `/mes/pro/route-product/list-by-route?routeId=` + routeId })
},
// 查询工艺路线产品详情
getRouteProduct: async (id: number) => {
return await request.get({ url: `/mes/pro/route-product/get?id=` + id })
},
// 新增工艺路线产品
createRouteProduct: async (data: ProRouteProductVO) => {
return await request.post({ url: `/mes/pro/route-product/create`, data })
},
// 修改工艺路线产品
updateRouteProduct: async (data: ProRouteProductVO) => {
return await request.put({ url: `/mes/pro/route-product/update`, data })
},
// 删除工艺路线产品
deleteRouteProduct: async (id: number) => {
return await request.delete({ url: `/mes/pro/route-product/delete?id=` + id })
}
}

View File

@ -0,0 +1,49 @@
import request from '@/config/axios'
// MES 工艺路线产品 BOM VO
export interface ProRouteProductBomVO {
id?: number // 编号
routeId: number // 工艺路线编号
processId: number // 工序编号
productId: number // 产品物料编号
itemId: number // BOM 物料编号
itemCode?: string // 物料编码
itemName?: string // 物料名称
specification?: string // 规格型号
unitName?: string // 单位名称
quantity?: number // 用料比例
remark?: string // 备注
createTime?: Date // 创建时间
}
// MES 工艺路线产品 BOM API
export const ProRouteProductBomApi = {
// 查询工艺路线产品 BOM 列表
getRouteProductBomList: async (params: {
routeId: number
processId?: number
productId?: number
}) => {
return await request.get({ url: `/mes/pro/route-product-bom/list`, params })
},
// 查询工艺路线产品 BOM 详情
getRouteProductBom: async (id: number) => {
return await request.get({ url: `/mes/pro/route-product-bom/get?id=` + id })
},
// 新增工艺路线产品 BOM
createRouteProductBom: async (data: ProRouteProductBomVO) => {
return await request.post({ url: `/mes/pro/route-product-bom/create`, data })
},
// 修改工艺路线产品 BOM
updateRouteProductBom: async (data: ProRouteProductBomVO) => {
return await request.put({ url: `/mes/pro/route-product-bom/update`, data })
},
// 删除工艺路线产品 BOM
deleteRouteProductBom: async (id: number) => {
return await request.delete({ url: `/mes/pro/route-product-bom/delete?id=` + id })
}
}

View File

@ -0,0 +1,76 @@
import request from '@/config/axios'
// MES 生产任务 VO
export interface ProTaskVO {
id: number // 编号
code: string // 任务编码
name: string // 任务名称
workOrderId: number // 生产工单编号
workOrderCode: string // 工单编码
workOrderName: string // 工单名称
workstationId: number // 工作站编号
workstationCode: string // 工作站编码
workstationName: string // 工作站名称
routeId: number // 工艺路线编号
processId: number // 工序编号
processName: string // 工序名称
itemId: number // 产品物料编号
itemName: string // 产品名称
itemCode: string // 产品编码
itemSpecification: string // 规格型号
quantity: number // 排产数量
producedQuantity: number // 已生产数量
qualifyQuantity: number // 合格品数量
unqualifyQuantity: number // 不良品数量
changedQuantity: number // 调整数量
clientId: number // 客户编号
clientName: string // 客户名称
startTime: Date // 开始生产时间
duration: number // 生产时长工作日1=8小时
endTime: Date | number // 结束生产时间
colorCode: string // 甘特图显示颜色
requestDate: Date // 需求日期(从工单查)
finishDate: Date // 完成日期
cancelDate: Date // 取消日期
status: number // 任务状态
checkFlag: boolean // 是否质检(派生自工艺路线工序)
remark: string // 备注
}
// MES 生产任务 API
export const ProTaskApi = {
// 查询生产任务分页
getTaskPage: async (params: any) => {
return await request.get({ url: `/mes/pro/task/page`, params })
},
// 查询生产任务详情
getTask: async (id: number) => {
return await request.get({ url: `/mes/pro/task/get?id=` + id })
},
// 新增生产任务
createTask: async (data: ProTaskVO) => {
return await request.post({ url: `/mes/pro/task/create`, data })
},
// 修改生产任务
updateTask: async (data: ProTaskVO) => {
return await request.put({ url: `/mes/pro/task/update`, data })
},
// 删除生产任务
deleteTask: async (id: number) => {
return await request.delete({ url: `/mes/pro/task/delete?id=` + id })
},
// 导出生产任务 Excel
exportTask: async (params: any) => {
return await request.download({ url: `/mes/pro/task/export-excel`, params })
},
// 获得甘特图任务列表(非分页)
getGanttTaskList: async (params: any) => {
return await request.get({ url: `/mes/pro/task/gantt-list`, params })
}
}

View File

@ -0,0 +1,57 @@
import request from '@/config/axios'
// MES 生产任务投料 VO
export interface ProTaskIssueVO {
id: number // 编号
taskId: number // 生产任务编号
workOrderId: number // 生产工单编号
workstationId: number // 工作站编号
sourceDocType: string // 来源单据类型
sourceDocId: number // 来源单据编号
sourceLineId: number // 来源单据行编号
sourceDocCode: string // 来源单据编码
batchCode: string // 投料批次
itemId: number // 产品物料编号
itemName: string // 产品名称
itemCode: string // 产品编码
itemSpecification: string // 规格型号
unitMeasureId: number // 单位编号
unitMeasureName: string // 单位名称
issuedQuantity: number // 总投料数量
availableQuantity: number // 当前可用数量
usedQuantity: number // 当前使用数量
remark: string // 备注
}
// MES 生产任务投料 API
export const ProTaskIssueApi = {
// 查询生产任务投料分页
getTaskIssuePage: async (params: any) => {
return await request.get({ url: `/mes/pro/task-issue/page`, params })
},
// 查询生产任务投料详情
getTaskIssue: async (id: number) => {
return await request.get({ url: `/mes/pro/task-issue/get?id=` + id })
},
// 新增生产任务投料
createTaskIssue: async (data: ProTaskIssueVO) => {
return await request.post({ url: `/mes/pro/task-issue/create`, data })
},
// 修改生产任务投料
updateTaskIssue: async (data: ProTaskIssueVO) => {
return await request.put({ url: `/mes/pro/task-issue/update`, data })
},
// 删除生产任务投料
deleteTaskIssue: async (id: number) => {
return await request.delete({ url: `/mes/pro/task-issue/delete?id=` + id })
},
// 按任务查询投料列表
getTaskIssueListByTask: async (taskId: number) => {
return await request.get({ url: `/mes/pro/task-issue/list-by-task?taskId=` + taskId })
}
}

View File

@ -0,0 +1,51 @@
import request from '@/config/axios'
// MES 生产工单 BOM VO
export interface ProWorkOrderBomVO {
id: number // 编号
workOrderId: number // 生产工单编号
itemId: number // BOM 物料编号
itemName: string // 物料名称
itemCode: string // 物料编码
itemSpecification: string // 规格型号
unitMeasureId: number // 单位编号
unitMeasureName: string // 单位名称
quantity: number // 预计使用量
remark: string // 备注
itemOrProduct: string // 物料产品标识
}
// MES 生产工单 BOM API
export const ProWorkOrderBomApi = {
// 查询工单 BOM 分页
getWorkOrderBomPage: async (params: any) => {
return await request.get({ url: `/mes/pro/work-order-bom/page`, params })
},
// 查询工单 BOM 详情
getWorkOrderBom: async (id: number) => {
return await request.get({ url: `/mes/pro/work-order-bom/get?id=` + id })
},
// 新增工单 BOM
createWorkOrderBom: async (data: ProWorkOrderBomVO) => {
return await request.post({ url: `/mes/pro/work-order-bom/create`, data })
},
// 修改工单 BOM
updateWorkOrderBom: async (data: ProWorkOrderBomVO) => {
return await request.put({ url: `/mes/pro/work-order-bom/update`, data })
},
// 删除工单 BOM
deleteWorkOrderBom: async (id: number) => {
return await request.delete({ url: `/mes/pro/work-order-bom/delete?id=` + id })
},
// 获取工单物料需求列表
getWorkOrderBomItemListByWorkOrderId: async (workOrderId: number) => {
return await request.get({
url: `/mes/pro/work-order-bom/item-list-by-work-order-id?workOrderId=` + workOrderId
})
}
}

View File

@ -0,0 +1,82 @@
import request from '@/config/axios'
// MES 生产工单 VO
export interface ProWorkOrderVO {
id: number // 编号
code: string // 工单编码
name: string // 工单名称
type: number // 工单类型
orderSourceType: number // 来源类型
orderSourceCode: string // 来源单据编号
productId: number // 产品编号
productName: string // 产品名称
productCode: string // 产品编码
productSpecification: string // 规格型号
unitMeasureName: string // 单位名称
quantity: number // 生产数量
quantityProduced: number // 已生产数量
quantityChanged: number // 调整数量
quantityScheduled: number // 已排产数量
clientId: number // 客户编号
clientCode: string // 客户编码
clientName: string // 客户名称
vendorId: number // 供应商编号
vendorName: string // 供应商名称
vendorCode: string // 供应商编码
batchCode: string // 批次号
requestDate: Date // 需求日期
parentId: number // 父工单编号
parentCode: string // 父工单编码
finishDate: Date // 完成时间
cancelDate: Date // 取消时间
status: number // 工单状态
remark: string // 备注
}
// MES 生产工单 API
export const ProWorkOrderApi = {
// 查询生产工单分页
getWorkOrderPage: async (params: any) => {
return await request.get({ url: `/mes/pro/work-order/page`, params })
},
// 查询生产工单详情
getWorkOrder: async (id: number) => {
return await request.get({ url: `/mes/pro/work-order/get?id=` + id })
},
// 新增生产工单
createWorkOrder: async (data: ProWorkOrderVO) => {
return await request.post({ url: `/mes/pro/work-order/create`, data })
},
// 修改生产工单
updateWorkOrder: async (data: ProWorkOrderVO) => {
return await request.put({ url: `/mes/pro/work-order/update`, data })
},
// 删除生产工单
deleteWorkOrder: async (id: number) => {
return await request.delete({ url: `/mes/pro/work-order/delete?id=` + id })
},
// 导出生产工单 Excel
exportWorkOrder: async (params: any) => {
return await request.download({ url: `/mes/pro/work-order/export-excel`, params })
},
// 完成工单
finishWorkOrder: async (id: number) => {
return await request.put({ url: `/mes/pro/work-order/finish?id=` + id })
},
// 取消工单
cancelWorkOrder: async (id: number) => {
return await request.put({ url: `/mes/pro/work-order/cancel?id=` + id })
},
// 确认工单
confirmWorkOrder: async (id: number) => {
return await request.put({ url: `/mes/pro/work-order/confirm?id=` + id })
}
}

View File

@ -0,0 +1,54 @@
import request from '@/config/axios'
// MES 工作记录流水 VO
export interface ProWorkRecordLogVO {
id: number
userId: number
userNickname: string
workstationId: number
workstationCode: string
workstationName: string
type: number // 1=上工 2=下工
remark: string
createTime: Date
}
// MES 当前工作站绑定状态 VO
export interface ProWorkRecordVO {
userId: number
userNickname: string
workstationId: number
workstationCode: string
workstationName: string
type: number // 1=上工 2=下工
clockInTime: Date
clockOutTime: Date
}
// MES 工作记录 API
export const ProWorkRecordApi = {
// 查询工作记录分页
getWorkRecordLogPage: async (params: any) => {
return await request.get({ url: `/mes/pro/workrecord/log/page`, params })
},
// 查询工作记录详情
getWorkRecordLog: async (id: number) => {
return await request.get({ url: `/mes/pro/workrecord/log/get?id=` + id })
},
// 导出工作记录 Excel
exportWorkRecordLog: async (params: any) => {
return await request.download({ url: `/mes/pro/workrecord/log/export-excel`, params })
},
// 上线(绑定工作站)
clockInWorkRecord: async (workstationId: number) => {
return await request.put({ url: `/mes/pro/workrecord/clock-in?workstationId=` + workstationId })
},
// 下线(解绑工作站)
clockOutWorkRecord: async () => {
return await request.put({ url: `/mes/pro/workrecord/clock-out` })
},
// 获取当前用户绑定的工作站
getMyWorkRecord: async () => {
return await request.get({ url: `/mes/pro/workrecord/get-my` })
}
}

View File

@ -0,0 +1,49 @@
import request from '@/config/axios'
// MES 缺陷类型 VO
export interface QcDefectVO {
id: number // 编号
code: string // 缺陷编码
name: string // 缺陷描述
type: number // 检测项类型
level: number // 缺陷等级
remark: string // 备注
}
// MES 缺陷类型 API
export const QcDefectApi = {
// 查询缺陷类型分页
getDefectPage: async (params: any) => {
return await request.get({ url: `/mes/qc/defect/page`, params })
},
// 查询缺陷类型精简列表
getDefectSimpleList: async () => {
return await request.get({ url: `/mes/qc/defect/simple-list` })
},
// 查询缺陷类型详情
getDefect: async (id: number) => {
return await request.get({ url: `/mes/qc/defect/get?id=` + id })
},
// 新增缺陷类型
createDefect: async (data: QcDefectVO) => {
return await request.post({ url: `/mes/qc/defect/create`, data })
},
// 修改缺陷类型
updateDefect: async (data: QcDefectVO) => {
return await request.put({ url: `/mes/qc/defect/update`, data })
},
// 删除缺陷类型
deleteDefect: async (id: number) => {
return await request.delete({ url: `/mes/qc/defect/delete?id=` + id })
},
// 导出缺陷类型 Excel
exportDefect: async (params: any) => {
return await request.download({ url: `/mes/qc/defect/export-excel`, params })
}
}

View File

@ -0,0 +1,36 @@
import request from '@/config/axios'
// MES 质检缺陷记录 VO
export interface QcDefectRecordVO {
id: number // 编号
qcType: number // 检验类型
qcId: number // 检验单 ID
lineId: number // 检验行 ID
name: string // 缺陷描述
level: number // 缺陷等级
quantity: number // 缺陷数量
remark: string // 备注
}
// MES 质检缺陷记录 API
export const QcDefectRecordApi = {
// 查询质检缺陷记录分页
getDefectRecordPage: async (params: any) => {
return await request.get({ url: `/mes/qc/defect-record/page`, params })
},
// 新增质检缺陷记录
createDefectRecord: async (data: QcDefectRecordVO) => {
return await request.post({ url: `/mes/qc/defect-record/create`, data })
},
// 修改质检缺陷记录
updateDefectRecord: async (data: QcDefectRecordVO) => {
return await request.put({ url: `/mes/qc/defect-record/update`, data })
},
// 删除质检缺陷记录
deleteDefectRecord: async (id: number) => {
return await request.delete({ url: `/mes/qc/defect-record/delete?id=` + id })
}
}

View File

@ -0,0 +1,46 @@
import request from '@/config/axios'
// MES 质检指标 VO
export interface QcIndicatorVO {
id: number // 编号
code: string // 检测项编码
name: string // 检测项名称
type: number // 检测项类型
tool: string // 检测工具
resultType: number // 结果值类型
resultSpecification: string // 结果值属性
remark: string // 备注
}
// MES 质检指标 API
export const QcIndicatorApi = {
// 查询质检指标分页
getIndicatorPage: async (params: any) => {
return await request.get({ url: `/mes/qc/indicator/page`, params })
},
// 查询质检指标详情
getIndicator: async (id: number) => {
return await request.get({ url: `/mes/qc/indicator/get?id=` + id })
},
// 新增质检指标
createIndicator: async (data: QcIndicatorVO) => {
return await request.post({ url: `/mes/qc/indicator/create`, data })
},
// 修改质检指标
updateIndicator: async (data: QcIndicatorVO) => {
return await request.put({ url: `/mes/qc/indicator/update`, data })
},
// 删除质检指标
deleteIndicator: async (id: number) => {
return await request.delete({ url: `/mes/qc/indicator/delete?id=` + id })
},
// 导出质检指标 Excel
exportIndicator: async (params: any) => {
return await request.download({ url: `/mes/qc/indicator/export-excel`, params })
}
}

View File

@ -0,0 +1,59 @@
import request from '@/config/axios'
// MES 检验结果 VO
export interface QcIndicatorResultVO {
id: number // 编号
code: string // 样品编号
qcId: number // 关联质检单ID
qcType: number // 质检类型
itemId: number // 产品物料ID
sn: string // 物资SN
remark: string // 备注
createTime: Date // 创建时间
// 子表
items: QcIndicatorResultDetailVO[] // 检验结果明细列表
}
// MES 检验结果明细 VO
export interface QcIndicatorResultDetailVO {
id: number // 编号
resultId: number // 关联检验结果ID
indicatorId: number // 检测指标ID
value: string // 检测值(统一存为字符串)
remark: string // 备注
// 关联查询字段(来自 indicator
indicatorName: string // 检测指标名称
valueType: number // 质检值类型
valueSpecification: string // 值属性
}
// MES 检验结果 API
export const QcIndicatorResultApi = {
// 查询检验结果分页
getResultPage: async (params: any) => {
return await request.get({ url: `/mes/qc/indicator-result/page`, params })
},
// 查询检验结果明细(含检测项模板):编辑传 id新增不传
getDetail: async (qcId: number, qcType: number, id?: number) => {
return await request.get({
url: `/mes/qc/indicator-result/get-detail`,
params: { id, qcId, qcType }
})
},
// 新增检验结果
createResult: async (data: any) => {
return await request.post({ url: `/mes/qc/indicator-result/create`, data })
},
// 修改检验结果
updateResult: async (data: any) => {
return await request.put({ url: `/mes/qc/indicator-result/update`, data })
},
// 删除检验结果
deleteResult: async (id: number) => {
return await request.delete({ url: `/mes/qc/indicator-result/delete?id=` + id })
}
}

View File

@ -0,0 +1,82 @@
import request from '@/config/axios'
// MES 过程检验单 VO
export interface QcIpqcVO {
id: number // 编号
code: string // 检验单编号
name: string // 检验单名称
type: string // IPQC 检验类型
templateId: number // 检验模板 ID
sourceDocType: number // 来源单据类型
sourceDocId: number // 来源单据 ID
sourceLineId: number // 来源单据行 ID
workOrderId: number // 生产工单 ID
workOrderCode: string // 工单编号(关联查询)
workOrderName: string // 工单名称(关联查询)
taskId: number // 生产任务 ID
workstationId: number // 工位 ID
workstationName: string // 工位名称(关联查询)
processId: number // 工序 ID
processName: string // 工序名称(关联查询)
itemId: number // 产品物料 ID
itemCode: string // 产品物料编码(关联查询)
itemName: string // 产品物料名称(关联查询)
itemSpecification: string // 规格型号(关联查询)
unitName: string // 单位名称(关联查询)
checkQuantity?: number // 检测数量
qualifiedQuantity?: number // 合格品数量
unqualifiedQuantity?: number // 不合格品数量
laborScrapQuantity?: number // 工废数量
materialScrapQuantity: number // 料废数量
otherScrapQuantity: number // 其他废品数量
criticalRate: number // 致命缺陷率(%
majorRate: number // 严重缺陷率(%
minorRate: number // 轻微缺陷率(%
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
checkResult: number // 检测结果
inspectDate: Date // 检测日期
inspectorUserId: number // 检测人员用户 ID
inspectorNickname: string // 检测人员昵称(关联查询)
status?: number // 状态
remark: string // 备注
}
// MES 过程检验单 API
export const QcIpqcApi = {
// 查询过程检验单分页
getIpqcPage: async (params: any) => {
return await request.get({ url: `/mes/qc/ipqc/page`, params })
},
// 查询过程检验单详情
getIpqc: async (id: number) => {
return await request.get({ url: `/mes/qc/ipqc/get?id=` + id })
},
// 新增过程检验单
createIpqc: async (data: QcIpqcVO) => {
return await request.post({ url: `/mes/qc/ipqc/create`, data })
},
// 修改过程检验单
updateIpqc: async (data: QcIpqcVO) => {
return await request.put({ url: `/mes/qc/ipqc/update`, data })
},
// 完成过程检验单
finishIpqc: async (id: number) => {
return await request.put({ url: `/mes/qc/ipqc/finish?id=` + id })
},
// 删除过程检验单
deleteIpqc: async (id: number) => {
return await request.delete({ url: `/mes/qc/ipqc/delete?id=` + id })
},
// 导出过程检验单 Excel
exportIpqc: async (params: any) => {
return await request.download({ url: `/mes/qc/ipqc/export-excel`, params })
}
}

View File

@ -0,0 +1,36 @@
import request from '@/config/axios'
// MES 过程检验单行 VO
export interface QcIpqcLineVO {
id: number // 编号
ipqcId: number // 过程检验单 ID
indicatorId: number // 检测指标 ID
indicatorCode: string // 检测指标编码(关联查询)
indicatorName: string // 检测指标名称(关联查询)
indicatorType: number // 检测指标类型(关联查询)
toolId: number // 检测工具 ID
toolName: string // 检测工具名称(关联查询)
checkMethod: string // 检测方法
standardValue: number // 标准值
unitMeasureId: number // 计量单位 ID
unitMeasureName: string // 计量单位名称(关联查询)
maxThreshold: number // 误差上限
minThreshold: number // 误差下限
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
remark: string // 备注
}
// MES 过程检验单行 API
export const QcIpqcLineApi = {
// 查询过程检验单行分页
getIpqcLinePage: async (params: any) => {
return await request.get({ url: `/mes/qc/ipqc/line/page`, params })
},
// 查询过程检验单行详情
getIpqcLine: async (id: number) => {
return await request.get({ url: `/mes/qc/ipqc/line/get?id=` + id })
}
}

View File

@ -0,0 +1,74 @@
import request from '@/config/axios'
// MES 来料检验单 VO
export interface QcIqcVO {
id: number // 编号
code: string // 检验单编号
name: string // 检验单名称
templateId: number // 检验模板 ID
sourceDocType: number // 来源单据类型
sourceDocId: number // 来源单据 ID
sourceLineId: number // 来源单据行 ID
vendorId: number // 供应商 ID
vendorNickname: string // 供应商简称(关联查询)
vendorBatch: string // 供应商批次号
itemId: number // 产品物料 ID
itemCode: string // 产品物料编码(关联查询)
itemName: string // 产品物料名称(关联查询)
itemSpecification: string // 规格型号(关联查询)
unitName: string // 单位名称(关联查询)
receivedQuantity: number // 本次接收数量
checkQuantity: number // 本次检测数量
qualifiedQuantity: number // 合格品数量
unqualifiedQuantity: number // 不合格品数量
criticalRate: number // 致命缺陷率(%
majorRate: number // 严重缺陷率(%
minorRate: number // 轻微缺陷率(%
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
checkResult: string // 检测结果
receiveDate: Date // 来料日期
inspectDate: Date // 检测日期
inspector: string // 检测人员
status: number // 状态
remark: string // 备注
}
// MES 来料检验单 API
export const QcIqcApi = {
// 查询来料检验单分页
getIqcPage: async (params: any) => {
return await request.get({ url: `/mes/qc/iqc/page`, params })
},
// 查询来料检验单详情
getIqc: async (id: number) => {
return await request.get({ url: `/mes/qc/iqc/get?id=` + id })
},
// 新增来料检验单
createIqc: async (data: QcIqcVO) => {
return await request.post({ url: `/mes/qc/iqc/create`, data })
},
// 修改来料检验单
updateIqc: async (data: QcIqcVO) => {
return await request.put({ url: `/mes/qc/iqc/update`, data })
},
// 完成来料检验单
finishIqc: async (id: number) => {
return await request.put({ url: `/mes/qc/iqc/finish?id=` + id })
},
// 删除来料检验单
deleteIqc: async (id: number) => {
return await request.delete({ url: `/mes/qc/iqc/delete?id=` + id })
},
// 导出来料检验单 Excel
exportIqc: async (params: any) => {
return await request.download({ url: `/mes/qc/iqc/export-excel`, params })
}
}

View File

@ -0,0 +1,35 @@
import request from '@/config/axios'
// MES 来料检验单行 VO
export interface QcIqcLineVO {
id: number // 编号
iqcId: number // 来料检验单 ID
indicatorId: number // 检测指标 ID
indicatorCode: string // 检测指标编码(关联查询)
indicatorName: string // 检测指标名称(关联查询)
indicatorType: number // 检测指标类型(关联查询)
tool: string // 检测工具
checkMethod: string // 检测方法
standardValue: number // 标准值
unitMeasureId: number // 计量单位 ID
unitMeasureName: string // 计量单位名称(关联查询)
maxThreshold: number // 误差上限
minThreshold: number // 误差下限
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
remark: string // 备注
}
// MES 来料检验单行 API
export const QcIqcLineApi = {
// 查询来料检验单行分页
getIqcLinePage: async (params: any) => {
return await request.get({ url: `/mes/qc/iqc/line/page`, params })
},
// 查询来料检验单行详情
getIqcLine: async (id: number) => {
return await request.get({ url: `/mes/qc/iqc/line/get?id=` + id })
}
}

View File

@ -0,0 +1,77 @@
import request from '@/config/axios'
// MES 出货检验单 VO
export interface QcOqcVO {
id: number // 编号
code: string // 检验单编号
name: string // 检验单名称
templateId: number // 检验模板 ID
sourceDocType: string // 来源单据类型
sourceDocId: number // 来源单据 ID
sourceLineId: number // 来源单据行 ID
clientId: number // 客户 ID
clientNickname: string // 客户简称(关联查询)
batchCode: string // 批次号
itemId: number // 产品物料 ID
itemCode: string // 产品物料编码(关联查询)
itemName: string // 产品物料名称(关联查询)
itemSpecification: string // 规格型号(关联查询)
unitName: string // 单位名称(关联查询)
minCheckQuantity: number // 最低检测数
maxUnqualifiedQuantity: number // 最大不合格数
outQuantity: number // 本次出货数量
checkQuantity: number // 本次检测数量
qualifiedQuantity: number // 合格品数量
unqualifiedQuantity: number // 不合格品数量
criticalRate: number // 致命缺陷率(%
majorRate: number // 严重缺陷率(%
minorRate: number // 轻微缺陷率(%
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
checkResult: string // 检测结果
outDate: Date // 出货日期
inspectDate: Date // 检测日期
inspectorUserId: number // 检测人员用户 ID
inspectorNickname: string // 检测人员昵称(关联查询)
status: number // 状态
remark: string // 备注
}
// MES 出货检验单 API
export const QcOqcApi = {
// 查询出货检验单分页
getOqcPage: async (params: any) => {
return await request.get({ url: `/mes/qc/oqc/page`, params })
},
// 查询出货检验单详情
getOqc: async (id: number) => {
return await request.get({ url: `/mes/qc/oqc/get?id=` + id })
},
// 新增出货检验单
createOqc: async (data: QcOqcVO) => {
return await request.post({ url: `/mes/qc/oqc/create`, data })
},
// 修改出货检验单
updateOqc: async (data: QcOqcVO) => {
return await request.put({ url: `/mes/qc/oqc/update`, data })
},
// 完成出货检验单
finishOqc: async (id: number) => {
return await request.put({ url: `/mes/qc/oqc/finish?id=` + id })
},
// 删除出货检验单
deleteOqc: async (id: number) => {
return await request.delete({ url: `/mes/qc/oqc/delete?id=` + id })
},
// 导出出货检验单 Excel
exportOqc: async (params: any) => {
return await request.download({ url: `/mes/qc/oqc/export-excel`, params })
}
}

View File

@ -0,0 +1,34 @@
import request from '@/config/axios'
// MES 出货检验单行 VO
export interface QcOqcLineVO {
id: number // 编号
oqcId: number // 出货检验单 ID
indicatorId: number // 检测指标 ID
indicatorCode: string // 检测指标编码(关联查询)
indicatorName: string // 检测指标名称(关联查询)
indicatorType: number // 检测指标类型(关联查询)
checkMethod: string // 检测方法
standardValue: number // 标准值
unitMeasureId: number // 计量单位 ID
unitMeasureName: string // 计量单位名称(关联查询)
maxThreshold: number // 误差上限
minThreshold: number // 误差下限
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
remark: string // 备注
}
// MES 出货检验单行 API
export const QcOqcLineApi = {
// 查询出货检验单行分页
getOqcLinePage: async (params: any) => {
return await request.get({ url: `/mes/qc/oqc/line/page`, params })
},
// 查询出货检验单行详情
getOqcLine: async (id: number) => {
return await request.get({ url: `/mes/qc/oqc/line/get?id=` + id })
}
}

View File

@ -0,0 +1,36 @@
import request from '@/config/axios'
// MES 待检任务 VO
export interface QcPendingInspectVO {
sourceDocType: number
sourceDocId: number
sourceLineId: number
sourceDocCode: string
qcType: number
itemId: number
itemCode: string
itemName: string
specification: string
unitName: string
quantity: number
vendorId: number
vendorName: string
// 工单/工作站/任务IPQC/RQC 场景)
workOrderId: number
workstationId: number
workstationName: string
taskId: number
taskCode: string
// 客户OQC/RQC 场景)
clientId: number
clientName: string
recordTime: string
}
// MES 待检任务 API
export const QcPendingInspectApi = {
// 查询待检任务分页
getPendingInspectPage: async (params: any) => {
return await request.get({ url: '/mes/qc/pending-inspect/page', params })
}
}

View File

@ -0,0 +1,73 @@
import request from '@/config/axios'
// MES 退货检验单 VO
export interface QcRqcVO {
id: number // 编号
code: string // 检验单编号
name: string // 检验单名称
templateId: number // 检验模板 ID
sourceDocType: string // 来源单据类型
sourceDocId: number // 来源单据 ID
sourceLineId: number // 来源单据行 ID
type: number // 检验类型
itemId: number // 产品物料 ID
itemCode: string // 产品物料编码(关联查询)
itemName: string // 产品物料名称(关联查询)
itemSpecification: string // 规格型号(关联查询)
unitName: string // 单位名称(关联查询)
batchCode: string // 批次号
checkQuantity: number // 检测数量
qualifiedQuantity: number // 合格品数量
unqualifiedQuantity: number // 不合格数量
checkResult: number // 检测结果
inspectDate: Date // 检测日期
inspectorUserId: number // 检测人员用户 ID
inspectorNickname: string // 检测人员昵称(关联查询)
status: number // 状态
remark: string // 备注
// 缺陷统计
criticalRate: number // 致命缺陷率(%
majorRate: number // 严重缺陷率(%
minorRate: number // 轻微缺陷率(%
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
}
// MES 退货检验单 API
export const QcRqcApi = {
// 查询退货检验单分页
getRqcPage: async (params: any) => {
return await request.get({ url: `/mes/qc/rqc/page`, params })
},
// 查询退货检验单详情
getRqc: async (id: number) => {
return await request.get({ url: `/mes/qc/rqc/get?id=` + id })
},
// 新增退货检验单
createRqc: async (data: QcRqcVO) => {
return await request.post({ url: `/mes/qc/rqc/create`, data })
},
// 修改退货检验单
updateRqc: async (data: QcRqcVO) => {
return await request.put({ url: `/mes/qc/rqc/update`, data })
},
// 完成退货检验单
finishRqc: async (id: number) => {
return await request.put({ url: `/mes/qc/rqc/finish?id=` + id })
},
// 删除退货检验单
deleteRqc: async (id: number) => {
return await request.delete({ url: `/mes/qc/rqc/delete?id=` + id })
},
// 导出退货检验单 Excel
exportRqc: async (params: any) => {
return await request.download({ url: `/mes/qc/rqc/export-excel`, params })
}
}

View File

@ -0,0 +1,35 @@
import request from '@/config/axios'
// MES 退货检验单行 VO
export interface QcRqcLineVO {
id: number // 编号
rqcId: number // 退货检验单 ID
indicatorId: number // 检测指标 ID
indicatorCode: string // 检测指标编码(关联查询)
indicatorName: string // 检测指标名称(关联查询)
indicatorType: number // 检测指标类型(关联查询)
tool: string // 检测工具
checkMethod: string // 检测方法
standardValue: number // 标准值
unitMeasureId: number // 计量单位 ID
unitMeasureName: string // 计量单位名称(关联查询)
maxThreshold: number // 误差上限
minThreshold: number // 误差下限
criticalQuantity: number // 致命缺陷数量
majorQuantity: number // 严重缺陷数量
minorQuantity: number // 轻微缺陷数量
remark: string // 备注
}
// MES 退货检验单行 API
export const QcRqcLineApi = {
// 查询退货检验单行分页
getRqcLinePage: async (params: any) => {
return await request.get({ url: `/mes/qc/rqc/line/page`, params })
},
// 查询退货检验单行详情
getRqcLine: async (id: number) => {
return await request.get({ url: `/mes/qc/rqc/line/get?id=` + id })
}
}

View File

@ -0,0 +1,44 @@
import request from '@/config/axios'
// MES 质检方案 VO
export interface QcTemplateVO {
id: number // 编号
code: string // 方案编号
name: string // 方案名称
types: number[] // 检测种类
status: number // 状态
remark: string // 备注
}
// MES 质检方案 API
export const QcTemplateApi = {
// 查询质检方案分页
getTemplatePage: async (params: any) => {
return await request.get({ url: `/mes/qc/template/page`, params })
},
// 查询质检方案详情
getTemplate: async (id: number) => {
return await request.get({ url: `/mes/qc/template/get?id=` + id })
},
// 新增质检方案
createTemplate: async (data: QcTemplateVO) => {
return await request.post({ url: `/mes/qc/template/create`, data })
},
// 修改质检方案
updateTemplate: async (data: QcTemplateVO) => {
return await request.put({ url: `/mes/qc/template/update`, data })
},
// 删除质检方案
deleteTemplate: async (id: number) => {
return await request.delete({ url: `/mes/qc/template/delete?id=` + id })
},
// 导出质检方案 Excel
exportTemplate: async (params: any) => {
return await request.download({ url: `/mes/qc/template/export-excel`, params })
}
}

View File

@ -0,0 +1,50 @@
import request from '@/config/axios'
// MES 质检方案-检测指标项 VO
export interface QcTemplateIndicatorVO {
id: number // 编号
templateId: number // 质检方案ID
indicatorId: number // 质检指标ID
checkMethod: string // 检测方法
standardValue: number // 标准值
unitMeasureId: number // 计量单位ID
thresholdMax: number // 误差上限
thresholdMin: number // 误差下限
docUrl: string // 说明图URL
remark: string // 备注
// JOIN mes_qc_indicator
indicatorCode: string // 检测项编码
indicatorName: string // 检测项名称
indicatorType: number // 检测项类型
indicatorTool: string // 检测工具
// JOIN mes_md_unit_measure
unitMeasureName: string // 计量单位名称
}
// MES 质检方案-检测指标项 API
export const QcTemplateIndicatorApi = {
// 查询检测指标项分页
getTemplateIndicatorPage: async (params: any) => {
return await request.get({ url: `/mes/qc/template/indicator/page`, params })
},
// 查询检测指标项详情
getTemplateIndicator: async (id: number) => {
return await request.get({ url: `/mes/qc/template/indicator/get?id=` + id })
},
// 新增检测指标项
createTemplateIndicator: async (data: QcTemplateIndicatorVO) => {
return await request.post({ url: `/mes/qc/template/indicator/create`, data })
},
// 修改检测指标项
updateTemplateIndicator: async (data: QcTemplateIndicatorVO) => {
return await request.put({ url: `/mes/qc/template/indicator/update`, data })
},
// 删除检测指标项
deleteTemplateIndicator: async (id: number) => {
return await request.delete({ url: `/mes/qc/template/indicator/delete?id=` + id })
}
}

View File

@ -0,0 +1,47 @@
import request from '@/config/axios'
// MES 质检方案-产品关联 VO
export interface QcTemplateItemVO {
id: number // 编号
templateId: number // 质检方案ID
itemId: number // 产品物料ID
quantityCheck: number // 最低检测数
quantityUnqualified: number // 最大不合格数
criticalRate: number // 最大致命缺陷率(%
majorRate: number // 最大严重缺陷率(%
minorRate: number // 最大轻微缺陷率(%
remark: string // 备注
// JOIN mes_md_item
itemCode: string // 物料编码
itemName: string // 物料名称
specification: string // 规格型号
unitMeasureName: string // 计量单位名称
}
// MES 质检方案-产品关联 API
export const QcTemplateItemApi = {
// 查询产品关联分页
getTemplateItemPage: async (params: any) => {
return await request.get({ url: `/mes/qc/template/item/page`, params })
},
// 查询产品关联详情
getTemplateItem: async (id: number) => {
return await request.get({ url: `/mes/qc/template/item/get?id=` + id })
},
// 新增产品关联
createTemplateItem: async (data: QcTemplateItemVO) => {
return await request.post({ url: `/mes/qc/template/item/create`, data })
},
// 修改产品关联
updateTemplateItem: async (data: QcTemplateItemVO) => {
return await request.put({ url: `/mes/qc/template/item/update`, data })
},
// 删除产品关联
deleteTemplateItem: async (id: number) => {
return await request.delete({ url: `/mes/qc/template/item/delete?id=` + id })
}
}

View File

@ -0,0 +1,52 @@
import request from '@/config/axios'
// MES 工具台账 VO
export interface TmToolVO {
id: number // 编号
code: string // 工具编码
name: string // 工具名称
brand: string // 品牌
specification: string // 型号规格
toolTypeId: number // 工具类型编号
toolTypeName: string // 工具类型名称
quantity: number // 数量
availableQuantity: number // 可用数量
maintenType: number // 保养维护类型
nextMaintenPeriod: number // 下次保养周期(次数)
nextMaintenDate: Date // 下次保养日期
status: number // 状态
remark: string // 备注
}
// MES 工具台账 API
export const TmToolApi = {
// 查询工具台账分页
getToolPage: async (params: any) => {
return await request.get({ url: `/mes/tm/tool/page`, params })
},
// 查询工具台账详情
getTool: async (id: number) => {
return await request.get({ url: `/mes/tm/tool/get?id=` + id })
},
// 新增工具台账
createTool: async (data: TmToolVO) => {
return await request.post({ url: `/mes/tm/tool/create`, data })
},
// 修改工具台账
updateTool: async (data: TmToolVO) => {
return await request.put({ url: `/mes/tm/tool/update`, data })
},
// 删除工具台账
deleteTool: async (id: number) => {
return await request.delete({ url: `/mes/tm/tool/delete?id=` + id })
},
// 导出工具台账 Excel
exportTool: async (params: any) => {
return await request.download({ url: `/mes/tm/tool/export-excel`, params })
}
}

View File

@ -0,0 +1,50 @@
import request from '@/config/axios'
// MES 工具类型 VO
export interface TmToolTypeVO {
id: number // 编号
code: string // 类型编码
name: string // 类型名称
codeFlag: boolean // 是否编码管理
maintenType: number // 保养维护类型
maintenPeriod: number // 保养周期
remark: string // 备注
}
// MES 工具类型 API
export const TmToolTypeApi = {
// 查询工具类型分页
getToolTypePage: async (params: any) => {
return await request.get({ url: `/mes/tm/tool-type/page`, params })
},
// 查询工具类型精简列表
getToolTypeSimpleList: async () => {
return await request.get({ url: `/mes/tm/tool-type/simple-list` })
},
// 查询工具类型详情
getToolType: async (id: number) => {
return await request.get({ url: `/mes/tm/tool-type/get?id=` + id })
},
// 新增工具类型
createToolType: async (data: TmToolTypeVO) => {
return await request.post({ url: `/mes/tm/tool-type/create`, data })
},
// 修改工具类型
updateToolType: async (data: TmToolTypeVO) => {
return await request.put({ url: `/mes/tm/tool-type/update`, data })
},
// 删除工具类型
deleteToolType: async (id: number) => {
return await request.delete({ url: `/mes/tm/tool-type/delete?id=` + id })
},
// 导出工具类型 Excel
exportToolType: async (params: any) => {
return await request.download({ url: `/mes/tm/tool-type/export-excel`, params })
}
}

View File

@ -0,0 +1,56 @@
import request from '@/config/axios'
// MES 到货通知单 VO
export interface WmArrivalNoticeVO {
id: number
code: string
name: string
purchaseOrderCode: string
vendorId: number
vendorCode: string
vendorName: string
arrivalDate: string
contactName: string
contactTelephone: string
status: number
remark: string
createTime: string
}
// MES 到货通知单 API
export const WmArrivalNoticeApi = {
// 查询到货通知单分页
getArrivalNoticePage: async (params: any) => {
return await request.get({ url: '/mes/wm/arrival-notice/page', params })
},
// 查询到货通知单详情
getArrivalNotice: async (id: number) => {
return await request.get({ url: '/mes/wm/arrival-notice/get?id=' + id })
},
// 新增到货通知单
createArrivalNotice: async (data: WmArrivalNoticeVO) => {
return await request.post({ url: '/mes/wm/arrival-notice/create', data })
},
// 修改到货通知单
updateArrivalNotice: async (data: WmArrivalNoticeVO) => {
return await request.put({ url: '/mes/wm/arrival-notice/update', data })
},
// 删除到货通知单
deleteArrivalNotice: async (id: number) => {
return await request.delete({ url: '/mes/wm/arrival-notice/delete?id=' + id })
},
// 提交到货通知单
submitArrivalNotice: async (id: number) => {
return await request.put({ url: '/mes/wm/arrival-notice/submit?id=' + id })
},
// 导出到货通知单 Excel
exportArrivalNotice: async (params: any) => {
return await request.download({ url: '/mes/wm/arrival-notice/export-excel', params })
}
}

View File

@ -0,0 +1,47 @@
import request from '@/config/axios'
// MES 到货通知单行 VO
export interface WmArrivalNoticeLineVO {
id: number
noticeId: number
itemId: number
itemCode: string
itemName: string
specification: string
unitMeasureName: string
arrivalQuantity: number
qualifiedQuantity: number
iqcCheckFlag: boolean
iqcId: number
iqcCode: string
remark: string
createTime: string
}
// MES 到货通知单行 API
export const WmArrivalNoticeLineApi = {
// 查询到货通知单行分页
getArrivalNoticeLinePage: async (params: any) => {
return await request.get({ url: '/mes/wm/arrival-notice-line/page', params })
},
// 查询到货通知单行详情
getArrivalNoticeLine: async (id: number) => {
return await request.get({ url: '/mes/wm/arrival-notice-line/get?id=' + id })
},
// 新增到货通知单行
createArrivalNoticeLine: async (data: WmArrivalNoticeLineVO) => {
return await request.post({ url: '/mes/wm/arrival-notice-line/create', data })
},
// 修改到货通知单行
updateArrivalNoticeLine: async (data: WmArrivalNoticeLineVO) => {
return await request.put({ url: '/mes/wm/arrival-notice-line/update', data })
},
// 删除到货通知单行
deleteArrivalNoticeLine: async (id: number) => {
return await request.delete({ url: '/mes/wm/arrival-notice-line/delete?id=' + id })
}
}

View File

@ -0,0 +1,43 @@
import request from '@/config/axios'
// MES 条码配置 VO
export interface WmBarcodeConfigVO {
id: number
format: number
bizType: number
contentFormat: string
contentExample: string
autoGenerateFlag: boolean
defaultTemplate: string
status: number
remark: string
createTime: string
}
// MES 条码配置 API
export const WmBarcodeConfigApi = {
// 查询条码配置分页
getBarcodeConfigPage: async (params: any) => {
return await request.get({ url: '/mes/wm/barcode-config/page', params })
},
// 查询条码配置详情
getBarcodeConfig: async (id: number) => {
return await request.get({ url: '/mes/wm/barcode-config/get?id=' + id })
},
// 新增条码配置
createBarcodeConfig: async (data: WmBarcodeConfigVO) => {
return await request.post({ url: '/mes/wm/barcode-config/create', data })
},
// 修改条码配置
updateBarcodeConfig: async (data: WmBarcodeConfigVO) => {
return await request.put({ url: '/mes/wm/barcode-config/update', data })
},
// 删除条码配置
deleteBarcodeConfig: async (id: number) => {
return await request.delete({ url: '/mes/wm/barcode-config/delete?id=' + id })
}
}

View File

@ -0,0 +1,65 @@
import request from '@/config/axios'
// MES 条码清单 VO
export interface WmBarcodeVO {
id?: number
configId?: number
format?: number
bizType?: number
content?: string
bizId?: number
bizCode?: string
bizName?: string
status: number
remark: string
createTime?: Date
}
// MES 条码 API
export const WmBarcodeApi = {
// 查询条码分页
getBarcodePage: async (params: any) => {
return await request.get({ url: '/mes/wm/barcode/page', params })
},
// 查询条码详情
getBarcode: async (id: number) => {
return await request.get({ url: '/mes/wm/barcode/get?id=' + id })
},
// 根据业务对象获取条码
getBarcodeByBusiness: async (bizType: number, bizId: number) => {
return await request.get({
url: '/mes/wm/barcode/get-by-business',
params: { bizType, bizId }
})
},
// 新增条码
createBarcode: async (data: WmBarcodeVO) => {
return await request.post({ url: '/mes/wm/barcode/create', data })
},
// 修改条码
updateBarcode: async (data: WmBarcodeVO) => {
return await request.put({ url: '/mes/wm/barcode/update', data })
},
// 删除条码
deleteBarcode: async (id: number) => {
return await request.delete({ url: '/mes/wm/barcode/delete?id=' + id })
},
// 导出条码 Excel
exportBarcode: async (params: any) => {
return await request.download({ url: '/mes/wm/barcode/export-excel', params })
},
// 生成条码内容
generateBarcodeContent: async (bizType: number, bizCode: string) => {
return await request.get({
url: '/mes/wm/barcode/generate-content',
params: { bizType, bizCode }
})
}
}

View File

@ -0,0 +1,58 @@
import request from '@/config/axios'
export interface BatchVO {
id: number
code: string
itemId: number
itemCode?: string
itemName?: string
itemSpecification?: string
unitName?: string
produceDate?: Date
expireDate?: Date
receiptDate?: Date
vendorId?: number
vendorCode?: string
vendorName?: string
clientId?: number
clientCode?: string
clientName?: string
purchaseOrderCode?: string
salesOrderCode?: string
workOrderId?: number
workOrderCode?: string
taskId?: number
taskCode?: string
workstationId?: number
workstationCode?: string
toolId?: number
toolCode?: string
moldId?: number
lotNumber?: string
qualityStatus?: string
remark?: string
createTime?: Date
}
// 批次追溯 API
export const BatchApi = {
// 获取批次详情
getBatch: async (id: number) => {
return await request.get({ url: `/mes/wm/batch/get?id=` + id })
},
// 获取批次分页
getBatchPage: async (params: PageParam) => {
return await request.get({ url: `/mes/wm/batch/page`, params })
},
// 向前追溯
getForwardList: async (code: string) => {
return await request.get({ url: `/mes/wm/batch/forward-list`, params: { code } })
},
// 向后追溯
getBackwardList: async (code: string) => {
return await request.get({ url: `/mes/wm/batch/backward-list`, params: { code } })
}
}

View File

@ -0,0 +1,10 @@
import request from '@/config/axios'
// DONE @AIitemconsume/line/index.ts
/** 根据报工编号分页获取消耗行列表 */
export const getItemConsumeLinePage = (params: any) => {
return request.get({
url: '/mes/wm/item-consume-line/page',
params
})
}

View File

@ -0,0 +1,54 @@
import request from '@/config/axios'
// MES 采购入库明细 VO
export interface WmItemReceiptDetailVO {
id: number
lineId: number
receiptId: number
itemId: number
itemCode: string
itemName: string
specification: string
unitMeasureName: string
quantity: number
batchId: number
warehouseId: number
warehouseName: string
locationId: number
locationName: string
areaId: number
areaName: string
remark: string
createTime: string
}
// MES 采购入库明细 API
export const WmItemReceiptDetailApi = {
// 查询采购入库明细列表(按行编号)
getItemReceiptDetailListByLineId: async (lineId: number) => {
return await request.get({
url: '/mes/wm/item-receipt-detail/list-by-line',
params: { lineId }
})
},
// 查询采购入库明细详情
getItemReceiptDetail: async (id: number) => {
return await request.get({ url: '/mes/wm/item-receipt-detail/get?id=' + id })
},
// 新增采购入库明细
createItemReceiptDetail: async (data: WmItemReceiptDetailVO) => {
return await request.post({ url: '/mes/wm/item-receipt-detail/create', data })
},
// 修改采购入库明细
updateItemReceiptDetail: async (data: WmItemReceiptDetailVO) => {
return await request.put({ url: '/mes/wm/item-receipt-detail/update', data })
},
// 删除采购入库明细
deleteItemReceiptDetail: async (id: number) => {
return await request.delete({ url: '/mes/wm/item-receipt-detail/delete?id=' + id })
}
}

View File

@ -0,0 +1,78 @@
import request from '@/config/axios'
// MES 采购入库单 VO
export interface WmItemReceiptVO {
id: number
code: string
name: string
iqcId: number
iqcCode: string
noticeId: number
noticeCode: string
purchaseOrderCode: string
vendorId: number
vendorName: string
warehouseId: number
warehouseName: string
locationId: number
locationName: string
areaId: number
areaName: string
receiptDate: string
status: number
remark: string
createTime: string
}
// MES 采购入库单 API
export const WmItemReceiptApi = {
// 查询采购入库单分页
getItemReceiptPage: async (params: any) => {
return await request.get({ url: '/mes/wm/item-receipt/page', params })
},
// 查询采购入库单详情
getItemReceipt: async (id: number) => {
return await request.get({ url: '/mes/wm/item-receipt/get?id=' + id })
},
// 新增采购入库单
createItemReceipt: async (data: WmItemReceiptVO) => {
return await request.post({ url: '/mes/wm/item-receipt/create', data })
},
// 修改采购入库单
updateItemReceipt: async (data: WmItemReceiptVO) => {
return await request.put({ url: '/mes/wm/item-receipt/update', data })
},
// 删除采购入库单
deleteItemReceipt: async (id: number) => {
return await request.delete({ url: '/mes/wm/item-receipt/delete?id=' + id })
},
// 提交采购入库单
submitItemReceipt: async (id: number) => {
return await request.put({ url: '/mes/wm/item-receipt/submit?id=' + id })
},
// 执行上架
stockItemReceipt: async (id: number) => {
return await request.put({ url: '/mes/wm/item-receipt/stock?id=' + id })
},
// 执行入库
finishItemReceipt: async (id: number) => {
return await request.put({ url: '/mes/wm/item-receipt/finish?id=' + id })
},
// 取消采购入库单
cancelItemReceipt: async (id: number) => {
return await request.put({ url: '/mes/wm/item-receipt/cancel?id=' + id })
},
// 导出采购入库单 Excel
exportItemReceipt: async (params: any) => {
return await request.download({ url: '/mes/wm/item-receipt/export-excel', params })
}
}

View File

@ -0,0 +1,58 @@
import request from '@/config/axios'
// MES 采购入库单行 VO
export interface WmItemReceiptLineVO {
id: number
receiptId: number
arrivalNoticeLineId: number
itemId: number
itemCode: string
itemName: string
specification: string
unitMeasureName: string
receivedQuantity: number
batchId: number
batchCode: string
warehouseId: number
warehouseName: string
locationId: number
locationName: string
areaId: number
areaName: string
productionDate: string
expireDate: string
lotNumber: string
iqcCheckFlag: boolean
iqcId: number
iqcCode: string
remark: string
createTime: string
}
// MES 采购入库单行 API
export const WmItemReceiptLineApi = {
// 查询采购入库单行分页
getItemReceiptLinePage: async (params: any) => {
return await request.get({ url: '/mes/wm/item-receipt-line/page', params })
},
// 查询采购入库单行详情
getItemReceiptLine: async (id: number) => {
return await request.get({ url: '/mes/wm/item-receipt-line/get?id=' + id })
},
// 新增采购入库单行
createItemReceiptLine: async (data: WmItemReceiptLineVO) => {
return await request.post({ url: '/mes/wm/item-receipt-line/create', data })
},
// 修改采购入库单行
updateItemReceiptLine: async (data: WmItemReceiptLineVO) => {
return await request.put({ url: '/mes/wm/item-receipt-line/update', data })
},
// 删除采购入库单行
deleteItemReceiptLine: async (id: number) => {
return await request.delete({ url: '/mes/wm/item-receipt-line/delete?id=' + id })
}
}

View File

@ -0,0 +1,50 @@
import request from '@/config/axios'
// MES 库存台账 VO
export interface WmMaterialStockVO {
id: number
itemTypeId: number
itemId: number
itemCode: string
itemName: string
specification: string
unitMeasureName: string
batchId: number
batchCode: string
warehouseId: number
warehouseCode: string
warehouseName: string
locationId: number
locationName: string
areaId: number
areaName: string
vendorId: number
vendorName: string
quantity: number
receiptTime: string
frozen: boolean
createTime: string
}
// MES 库存台账 API
export const WmMaterialStockApi = {
// 查询库存台账分页
getMaterialStockPage: async (params: any) => {
return await request.get({ url: '/mes/wm/material-stock/page', params })
},
// 查询库存记录详情
getMaterialStock: async (id: number) => {
return await request.get({ url: '/mes/wm/material-stock/get?id=' + id })
},
// 更新库存冻结状态
updateMaterialStockFrozen: async (data: { id: number; frozen: boolean }) => {
return await request.put({ url: '/mes/wm/material-stock/update-frozen', data })
},
// 导出库存台账 Excel
exportMaterialStock: async (params: any) => {
return await request.download({ url: '/mes/wm/material-stock/export-excel', params })
}
}

View File

@ -0,0 +1,69 @@
import request from '@/config/axios'
// MES 杂项出库单 VO
export interface WmMiscIssueVO {
id: number
code: string
name: string
type: string
sourceDocType: string
sourceDocId: number
sourceDocCode: string
issueDate: string
status: number
remark: string
createTime: string
}
// MES 杂项出库单 API
export const WmMiscIssueApi = {
// 查询杂项出库单分页
getMiscIssuePage: async (params: any) => {
return await request.get({ url: '/mes/wm/misc-issue/page', params })
},
// 查询杂项出库单详情
getMiscIssue: async (id: number) => {
return await request.get({ url: '/mes/wm/misc-issue/get?id=' + id })
},
// 新增杂项出库单
createMiscIssue: async (data: WmMiscIssueVO) => {
return await request.post({ url: '/mes/wm/misc-issue/create', data })
},
// 修改杂项出库单
updateMiscIssue: async (data: WmMiscIssueVO) => {
return await request.put({ url: '/mes/wm/misc-issue/update', data })
},
// 删除杂项出库单
deleteMiscIssue: async (id: number) => {
return await request.delete({ url: '/mes/wm/misc-issue/delete?id=' + id })
},
// 提交杂项出库单
submitMiscIssue: async (id: number) => {
return await request.put({ url: '/mes/wm/misc-issue/submit?id=' + id })
},
// 执行出库
finishMiscIssue: async (id: number) => {
return await request.put({ url: '/mes/wm/misc-issue/finish?id=' + id })
},
// 取消杂项出库单
cancelMiscIssue: async (id: number) => {
return await request.put({ url: '/mes/wm/misc-issue/cancel?id=' + id })
},
// 导出杂项出库单 Excel
exportMiscIssue: async (params: any) => {
return await request.download({ url: '/mes/wm/misc-issue/export-excel', params })
},
// 校验杂项出库单数量
checkMiscIssueQuantity: async (id: number) => {
return await request.get({ url: '/mes/wm/misc-issue/check-quantity?id=' + id })
}
}

View File

@ -0,0 +1,61 @@
import request from '@/config/axios'
// MES 杂项出库单行 VO
export interface WmMiscIssueLineVO {
id: number
issueId: number
sourceDocLineId: number
materialStockId: number
itemId: number
itemCode: string
itemName: string
specification: string
unitMeasure: string
unitMeasureName: string
quantity: number
batchId: number
batchCode: string
warehouseId: number
warehouseCode: string
warehouseName: string
locationId: number
locationCode: string
locationName: string
areaId: number
areaCode: string
areaName: string
remark: string
}
// MES 杂项出库单行 API
export const WmMiscIssueLineApi = {
// 查询杂项出库单行分页
getMiscIssueLinePage: async (params: any) => {
return await request.get({ url: '/mes/wm/misc-issue-line/page', params })
},
// 根据出库单ID查询杂项出库单行列表
getMiscIssueLineListByIssueId: async (issueId: number) => {
return await request.get({ url: '/mes/wm/misc-issue-line/list-by-issue-id?issueId=' + issueId })
},
// 查询杂项出库单行详情
getMiscIssueLine: async (id: number) => {
return await request.get({ url: '/mes/wm/misc-issue-line/get?id=' + id })
},
// 新增杂项出库单行
createMiscIssueLine: async (data: WmMiscIssueLineVO) => {
return await request.post({ url: '/mes/wm/misc-issue-line/create', data })
},
// 修改杂项出库单行
updateMiscIssueLine: async (data: WmMiscIssueLineVO) => {
return await request.put({ url: '/mes/wm/misc-issue-line/update', data })
},
// 删除杂项出库单行
deleteMiscIssueLine: async (id: number) => {
return await request.delete({ url: '/mes/wm/misc-issue-line/delete?id=' + id })
}
}

View File

@ -0,0 +1,64 @@
import request from '@/config/axios'
// MES 杂项入库单 VO
export interface WmMiscReceiptVO {
id: number
code: string
name: string
type: number
sourceDocType: string
sourceDocId: number
sourceDocCode: string
receiptDate: string
status: number
remark: string
createTime: string
}
// MES 杂项入库单 API
export const WmMiscReceiptApi = {
// 查询杂项入库单分页
getMiscReceiptPage: async (params: any) => {
return await request.get({ url: '/mes/wm/misc-receipt/page', params })
},
// 查询杂项入库单详情
getMiscReceipt: async (id: number) => {
return await request.get({ url: '/mes/wm/misc-receipt/get?id=' + id })
},
// 新增杂项入库单
createMiscReceipt: async (data: WmMiscReceiptVO) => {
return await request.post({ url: '/mes/wm/misc-receipt/create', data })
},
// 修改杂项入库单
updateMiscReceipt: async (data: WmMiscReceiptVO) => {
return await request.put({ url: '/mes/wm/misc-receipt/update', data })
},
// 删除杂项入库单
deleteMiscReceipt: async (id: number) => {
return await request.delete({ url: '/mes/wm/misc-receipt/delete?id=' + id })
},
// 提交审批
submitMiscReceipt: async (id: number) => {
return await request.put({ url: '/mes/wm/misc-receipt/submit?id=' + id })
},
// 执行入库
finishMiscReceipt: async (id: number) => {
return await request.put({ url: '/mes/wm/misc-receipt/finish?id=' + id })
},
// 取消杂项入库单
cancelMiscReceipt: async (id: number) => {
return await request.put({ url: '/mes/wm/misc-receipt/cancel?id=' + id })
},
// 导出杂项入库单 Excel
exportMiscReceipt: async (params: any) => {
return await request.download({ url: '/mes/wm/misc-receipt/export-excel', params })
}
}

View File

@ -0,0 +1,45 @@
import request from '@/config/axios'
// MES 杂项入库单行 VO
export interface WmMiscReceiptLineVO {
id: number
receiptId: number
itemId: number
quantity: number
batchCode: string
warehouseId: number
locationId: number
areaId: number
remark: string
createTime: string
}
// MES 杂项入库单行 API
export const WmMiscReceiptLineApi = {
// 查询杂项入库单行详情
getMiscReceiptLine: async (id: number) => {
return await request.get({ url: '/mes/wm/misc-receipt-line/get?id=' + id })
},
// 查询杂项入库单行列表
getMiscReceiptLineListByReceiptId: async (receiptId: number) => {
return await request.get({
url: '/mes/wm/misc-receipt-line/list-by-receipt-id?receiptId=' + receiptId
})
},
// 新增杂项入库单行
createMiscReceiptLine: async (data: WmMiscReceiptLineVO) => {
return await request.post({ url: '/mes/wm/misc-receipt-line/create', data })
},
// 修改杂项入库单行
updateMiscReceiptLine: async (data: WmMiscReceiptLineVO) => {
return await request.put({ url: '/mes/wm/misc-receipt-line/update', data })
},
// 删除杂项入库单行
deleteMiscReceiptLine: async (id: number) => {
return await request.delete({ url: '/mes/wm/misc-receipt-line/delete?id=' + id })
}
}

View File

@ -0,0 +1,56 @@
import request from '@/config/axios'
// MES 外协发料单明细 VO
export interface WmOutsourceIssueDetailVO {
id: number
lineId: number
issueId: number
materialStockId: number
itemId: number
itemCode: string
itemName: string
specification: string
unitMeasureName: string
quantity: number
batchId: number
batchCode: string
warehouseId: number
warehouseName: string
locationId: number
locationName: string
areaId: number
areaName: string
remark: string
createTime: string
}
// MES 外协发料单明细 API
export const WmOutsourceIssueDetailApi = {
// 查询外协发料单明细列表(按行编号)
getOutsourceIssueDetailListByLineId: async (lineId: number) => {
return await request.get({
url: '/mes/wm/outsource-issue-detail/list-by-line',
params: { lineId }
})
},
// 查询外协发料单明细详情
getOutsourceIssueDetail: async (id: number) => {
return await request.get({ url: '/mes/wm/outsource-issue-detail/get?id=' + id })
},
// 新增外协发料单明细
createOutsourceIssueDetail: async (data: WmOutsourceIssueDetailVO) => {
return await request.post({ url: '/mes/wm/outsource-issue-detail/create', data })
},
// 修改外协发料单明细
updateOutsourceIssueDetail: async (data: WmOutsourceIssueDetailVO) => {
return await request.put({ url: '/mes/wm/outsource-issue-detail/update', data })
},
// 删除外协发料单明细
deleteOutsourceIssueDetail: async (id: number) => {
return await request.delete({ url: '/mes/wm/outsource-issue-detail/delete?id=' + id })
}
}

Some files were not shown because too many files have changed in this diff Show More