初始代码

This commit is contained in:
hhh
2026-04-02 10:38:23 +08:00
parent d8b4140f50
commit aed67ce1fd
1937 changed files with 447678 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
# 告诉EditorConfig插件这是根文件不用继续往上查找
root = true
# 匹配全部文件
[*]
# 设置字符集
charset = utf-8
# 缩进风格可选space、tab
indent_style = space
# 缩进的空格数
indent_size = 2
# 结尾换行符可选lf、cr、crlf
end_of_line = lf
# 在文件结尾插入新行
insert_final_newline = true
# 删除一行中的前后空格
trim_trailing_whitespace = true
# 匹配md结尾的文件
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

View File

@@ -0,0 +1,11 @@
# 页面标题
VUE_APP_TITLE = P3九昭智造
# 开发环境配置
ENV = 'development'
# P3九昭智造/开发环境
VUE_APP_BASE_API = '/dev-api'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@@ -0,0 +1,8 @@
# 页面标题
VUE_APP_TITLE = P3九昭智造
# 生产环境配置
ENV = 'production'
# P3九昭智造/生产环境
VUE_APP_BASE_API = '/prod-api'

View File

@@ -0,0 +1,10 @@
# 页面标题
VUE_APP_TITLE = P3九昭智造
NODE_ENV = production
# 测试环境配置
ENV = 'staging'
# P3九昭智造/测试环境
VUE_APP_BASE_API = '/stage-api'

View File

@@ -0,0 +1,10 @@
# 忽略build目录下类型为js的文件的语法检查
build/*.js
# 忽略src/assets目录下文件的语法检查
src/assets
# 忽略public目录下文件的语法检查
public
# 忽略当前目录下为js的文件的语法检查
*.js
# 忽略当前目录下为vue的文件的语法检查
*.vue

View File

@@ -0,0 +1,200 @@
// ESlint 检查配置
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 1,
"allowFirstLine": false
}
}],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline":"off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {"null": "ignore"}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
'indent': [2, 2, {
'SwitchCase': 1
}],
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
// 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
"no-debugger": "off" ,// 允许使用 debugger
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never']
}
}

23
yawei-mes/mes-ui/.gitignore vendored Normal file
View File

@@ -0,0 +1,23 @@
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
**/*.log
tests/**/coverage/
tests/e2e/reports
selenium-debug.log
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.local
package-lock.json
yarn.lock

View File

@@ -0,0 +1,292 @@
# 移动端适配说明文档
## 概述
本项目已完成移动端适配的基础架构搭建支持PC端和移动端自动识别和路由跳转。
## 技术栈
- **UI组件库**: Vant 2.12.54 (移动端) + Element UI 2.15.12 (PC端)
- **框架**: Vue 2.6.12
- **路由**: Vue Router 3.4.9
- **状态管理**: Vuex 3.6.0
## 目录结构
```
mes-ui/src/
├── views/
│ ├── mobile/ # 移动端页面目录
│ │ ├── layout/ # 移动端布局
│ │ │ ├── MobileLayout.vue # 主布局
│ │ │ └── components/
│ │ │ ├── MobileNavBar.vue # 顶部导航栏
│ │ │ └── MobileTabBar.vue # 底部标签栏
│ │ ├── home/ # 首页
│ │ │ └── index.vue
│ │ ├── workOrder/ # 工单模块
│ │ │ ├── list.vue # 工单列表
│ │ │ ├── detail.vue # 工单详情
│ │ │ └── pickManage.vue # 领料管理
│ │ ├── report/ # 报工模块
│ │ │ ├── list.vue # 报工列表
│ │ │ └── form.vue # 报工表单
│ │ ├── profile/ # 个人中心
│ │ │ └── index.vue
│ │ └── components/ # 移动端公共组件
│ │ └── MobileWorkOrderCard.vue # 工单卡片
│ └── mes/ # PC端页面原有
├── router/
│ ├── index.js # 主路由
│ └── mobile.js # 移动端路由模块
├── utils/
│ └── device.js # 设备检测工具
└── api/ # API接口PC和移动端共用
```
## 核心功能
### 1. 设备自动检测
系统会自动检测用户设备类型PC或移动端并在登录后自动跳转到对应界面。
**检测规则**:
- User Agent 包含移动设备标识
- 或屏幕宽度 <= 768px
**实现文件**: `src/utils/device.js`
### 2. 路由自动保护
路由守卫会自动检查设备类型和访问路径是否匹配:
- 移动设备访问PC页面 → 自动重定向到移动端首页
- PC设备访问移动页面 → 自动重定向到PC端首页
**实现文件**: `src/permission.js`
### 3. 登录后自动跳转
用户登录成功后,系统会根据设备类型自动跳转:
- 移动设备 → `/mobile/home`
- PC设备 → `/index`
**实现文件**: `src/views/login.vue`
## 移动端路由
所有移动端路由以 `/mobile` 开头:
| 路径 | 页面 | 显示TabBar |
|------|------|-----------|
| `/mobile/home` | 首页 | 是 |
| `/mobile/workOrder` | 工单列表 | 是 |
| `/mobile/workOrder/detail/:id` | 工单详情 | 否 |
| `/mobile/workOrder/pickManage/:workOrderId` | 领料管理 | 否 |
| `/mobile/report` | 报工列表 | 是 |
| `/mobile/report/add/:workOrderEntryId` | 报工表单 | 否 |
| `/mobile/report/add/continuous/:workOrderId` | 连续制造报工 | 否 |
| `/mobile/profile` | 个人中心 | 是 |
## 已完成功能
### ✅ 第一阶段:基础架构
1. 添加 Vant UI 组件库依赖
2. 配置 Babel 支持 Vant 按需引入
3. 创建设备检测工具
4. 创建移动端路由模块
5. 创建移动端布局组件(顶部导航栏 + 底部标签栏)
6. 修改登录逻辑支持设备检测
7. 修改路由守卫支持设备类型保护
### ✅ 第二阶段:工单模块
1. 移动端首页(快捷入口、待办事项、数据统计)
2. 工单列表页面(搜索、筛选、下拉刷新、上拉加载)
3. 工单卡片组件
4. 工单详情页面(基本信息、报工排产、领料记录)
5. 占位页面(报工列表、报工表单、领料管理、个人中心)
## 待开发功能
### 🔲 第三阶段:完善工单模块
- 报工表单页面
- 领料管理页面
- 工单状态操作(开始、暂停、关闭)
### 🔲 第四阶段:其他模块
- 仓库模块
- 质检模块
- 设备模块
- 其他业务模块...
## 安装和运行
### 1. 安装依赖
```bash
cd mes-ui
npm install
```
### 2. 启动开发服务器
```bash
npm run dev
```
### 3. 访问地址
- PC端: http://localhost:80
- 移动端: 使用手机浏览器访问或使用浏览器开发者工具切换到移动设备模式
### 4. 测试移动端
**方法一:使用浏览器开发者工具**
1. 打开 Chrome 浏览器
2. 按 F12 打开开发者工具
3. 点击设备切换按钮(或按 Ctrl+Shift+M
4. 选择移动设备型号(如 iPhone 12
5. 刷新页面
**方法二:使用真机测试**
1. 确保手机和电脑在同一局域网
2. 获取电脑IP地址如 192.168.1.100
3. 在手机浏览器访问 http://192.168.1.100:80
## API接口复用
移动端和PC端共用相同的后端API接口无需修改后端代码。
**示例**:
```javascript
// PC端和移动端都使用相同的API
import { listWorkOrder, getWorkOrder } from '@/api/mes/production/workOrder'
// 获取工单列表
listWorkOrder({ pageNum: 1, pageSize: 10 })
// 获取工单详情
getWorkOrder(workOrderId)
```
## 开发指南
### 添加新的移动端页面
1.`src/views/mobile/` 下创建页面组件
2.`src/router/mobile.js` 中添加路由配置
3. 根据需要设置 `meta.showTabBar` 控制是否显示底部标签栏
**示例**:
```javascript
// src/router/mobile.js
{
path: 'newPage',
component: () => import('@/views/mobile/newModule/newPage'),
name: 'MobileNewPage',
meta: {
title: '新页面',
showTabBar: false, // 不显示底部标签栏
requiresAuth: true
}
}
```
### 使用 Vant 组件
Vant 组件已配置按需引入,直接在组件中导入使用即可:
```vue
<script>
import { Button, Cell, Toast } from 'vant'
export default {
components: {
[Button.name]: Button,
[Cell.name]: Cell
},
methods: {
showToast() {
Toast('提示信息')
}
}
}
</script>
```
### 调用API接口
移动端直接复用PC端的API接口
```javascript
import { listWorkOrder } from '@/api/mes/production/workOrder'
export default {
methods: {
async loadData() {
try {
const response = await listWorkOrder(this.queryParams)
this.list = response.rows
} catch (error) {
this.$toast.fail('加载失败')
}
}
}
}
```
## 注意事项
1. **样式隔离**: 移动端页面使用 Vant 组件PC端页面使用 Element UI两者样式互不影响
2. **路由命名**: 移动端路由名称建议以 `Mobile` 开头,便于区分
3. **响应式设计**: 移动端页面应适配 320px - 768px 宽度的设备
4. **触摸优化**: 确保可点击元素最小尺寸为 44px × 44px
5. **性能优化**: 使用虚拟滚动、图片懒加载等技术优化性能
## 常见问题
### Q: 如何手动切换PC/移动模式?
A: 可以使用设备检测工具手动设置:
```javascript
import { setDeviceType } from '@/utils/device'
// 切换到移动模式
setDeviceType('mobile')
location.reload()
// 切换到PC模式
setDeviceType('pc')
location.reload()
```
### Q: 移动端页面如何访问Vuex状态
A: 移动端和PC端共用同一个Vuex store直接访问即可
```javascript
computed: {
userName() {
return this.$store.state.user.name
}
}
```
### Q: 如何调试移动端页面?
A:
1. 使用Chrome开发者工具的设备模拟功能
2. 使用真机 + Chrome远程调试
3. 使用 vconsole 在移动端显示控制台
## 更新日志
### 2026-03-07
- ✅ 完成移动端基础架构搭建
- ✅ 完成设备自动检测和路由保护
- ✅ 完成移动端布局组件(导航栏 + 标签栏)
- ✅ 完成移动端首页
- ✅ 完成工单列表和详情页面
- ✅ 完成工单卡片组件
## 联系方式
如有问题,请联系开发团队。

View File

@@ -0,0 +1,164 @@
# 移动端适配 - 快速开始
## 🚀 快速安装
### 1. 安装依赖
```bash
cd mes-ui
npm install
```
这会自动安装新添加的 Vant UI 组件库和相关依赖。
### 2. 启动开发服务器
```bash
npm run dev
```
### 3. 访问测试
**PC端测试**:
- 直接在浏览器访问: http://localhost:80
**移动端测试**:
- 方法一Chrome开发者工具
1. 按 F12 打开开发者工具
2. 点击设备切换按钮(或按 Ctrl+Shift+M
3. 选择移动设备(如 iPhone 12
4. 刷新页面
- 方法二:真机测试
1. 确保手机和电脑在同一局域网
2. 在手机浏览器访问: http://你的电脑IP:80
## ✅ 已完成功能
### 基础架构
- ✅ 设备自动检测PC/移动端)
- ✅ 登录后自动跳转到对应界面
- ✅ 路由自动保护(防止设备类型不匹配)
- ✅ 移动端布局(顶部导航栏 + 底部标签栏)
### 工单模块
- ✅ 移动端首页(快捷入口、待办事项、数据统计)
- ✅ 工单列表(搜索、筛选、下拉刷新、上拉加载)
- ✅ 工单详情(基本信息、报工排产、领料记录)
- ✅ 工单卡片组件
### 占位页面
- ✅ 报工列表
- ✅ 报工表单
- ✅ 领料管理
- ✅ 个人中心
## 📱 移动端路由
| 路径 | 页面 | 状态 |
|------|------|------|
| `/mobile/home` | 首页 | ✅ 已完成 |
| `/mobile/workOrder` | 工单列表 | ✅ 已完成 |
| `/mobile/workOrder/detail/:id` | 工单详情 | ✅ 已完成 |
| `/mobile/workOrder/pickManage/:workOrderId` | 领料管理 | 🔲 待开发 |
| `/mobile/report` | 报工列表 | 🔲 待开发 |
| `/mobile/report/add/:workOrderEntryId` | 报工表单 | 🔲 待开发 |
| `/mobile/profile` | 个人中心 | ✅ 已完成 |
## 🎯 测试步骤
### 1. 测试设备检测
1. 使用PC浏览器登录系统
2. 应该自动跳转到PC端首页 `/index`
3. 切换到移动设备模式F12 → 设备切换)
4. 刷新页面并重新登录
5. 应该自动跳转到移动端首页 `/mobile/home`
### 2. 测试移动端首页
- 查看用户信息卡片
- 点击快捷入口(工单列表、生产报工等)
- 查看待办事项
- 查看今日数据统计
### 3. 测试工单列表
- 下拉刷新列表
- 上拉加载更多
- 搜索工单(输入工单编号或产品名称)
- 筛选工单(按状态、客户名称)
- 点击工单卡片进入详情
### 4. 测试工单详情
- 查看基本信息
- 切换标签页(报工排产、领料记录)
- 点击底部操作按钮(生产报工、工单领料)
### 5. 测试底部导航
- 点击底部标签栏切换页面
- 首页、工单、报工、我的
## 🔧 开发说明
### 文件结构
```
mes-ui/src/
├── views/mobile/ # 移动端页面
├── router/mobile.js # 移动端路由
├── utils/device.js # 设备检测工具
└── api/ # API接口PC和移动端共用
```
### 添加新页面
1.`src/views/mobile/` 创建页面组件
2.`src/router/mobile.js` 添加路由
3. 使用 Vant 组件开发UI
### API调用
移动端直接复用PC端API
```javascript
import { listWorkOrder } from '@/api/mes/production/workOrder'
// 调用API
const response = await listWorkOrder({ pageNum: 1, pageSize: 10 })
```
## ⚠️ 注意事项
1. **依赖安装**: 首次运行前必须执行 `npm install`
2. **端口冲突**: 如果80端口被占用修改 `vue.config.js` 中的端口
3. **后端API**: 确保后端服务已启动(默认 http://localhost:8080
4. **浏览器兼容**: 建议使用 Chrome 浏览器测试
## 📝 下一步开发
1. 完善报工表单页面
2. 完善领料管理页面
3. 添加工单状态操作功能
4. 添加其他业务模块
## 🐛 常见问题
### Q: npm install 失败?
A: 尝试清除缓存后重新安装:
```bash
npm cache clean --force
npm install
```
### Q: 移动端页面显示不正常?
A: 检查是否正确安装了 Vant 依赖,查看浏览器控制台是否有错误。
### Q: 登录后没有自动跳转?
A: 检查 `src/utils/device.js``src/permission.js` 是否正确创建。
## 📞 技术支持
如有问题,请查看详细文档:`MOBILE_ADAPTATION.md`

View File

@@ -0,0 +1,28 @@
## 开发
```bash
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npmmirror.com
-- 设置 OpenSSL 旧版提供程序
set NODE_OPTIONS=--openssl-legacy-provider
# 启动服务
npm run dev
```
浏览器访问 http://localhost:80
## 发布
```bash
# 构建测试环境
npm run build:stage
# 构建生产环境
npm run build:prod
```

View File

@@ -0,0 +1,21 @@
module.exports = {
presets: [
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
'@vue/cli-plugin-babel/preset'
],
plugins: [
// Vant 按需引入配置
['import', {
libraryName: 'vant',
libraryDirectory: 'es',
style: true
}, 'vant']
],
'env': {
'development': {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
'plugins': ['dynamic-import-node']
}
}
}

View File

@@ -0,0 +1,35 @@
const { run } = require('runjs')
const chalk = require('chalk')
const config = require('../vue.config.js')
const rawArgv = process.argv.slice(2)
const args = rawArgv.join(' ')
if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
const report = rawArgv.includes('--report')
run(`vue-cli-service build ${args}`)
const port = 9526
const publicPath = config.publicPath
var connect = require('connect')
var serveStatic = require('serve-static')
const app = connect()
app.use(
publicPath,
serveStatic('./dist', {
index: ['index.html', '/']
})
)
app.listen(port, function () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
if (report) {
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
}
})
} else {
run(`vue-cli-service build ${args}`)
}

View File

@@ -0,0 +1,98 @@
{
"name": "yjh-mes",
"version": "3.8.5",
"description": "P3九昭智造",
"author": "源计划",
"license": "GPL-3.0",
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:dev": "vue-cli-service build --mode development",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"lint": "eslint --ext .js,.vue src"
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,vue}": [
"eslint --fix",
"git add"
]
},
"keywords": [
"vue",
"admin",
"dashboard",
"element-ui",
"boilerplate",
"admin-template",
"management-system"
],
"repository": {
"type": "git",
"url": "https://gitee.com/y_project/RuoYi-Vue.git"
},
"dependencies": {
"@riophae/vue-treeselect": "0.4.0",
"axios": "0.24.0",
"clipboard": "2.0.8",
"core-js": "3.25.3",
"dhtmlx-gantt": "^7.1.11",
"echarts": "5.4.0",
"element-ui": "2.15.12",
"file-saver": "2.0.5",
"fuse.js": "6.4.3",
"highlight.js": "9.18.5",
"js-beautify": "1.13.0",
"js-cookie": "3.0.1",
"jsencrypt": "3.0.0-rc.1",
"jszip": "^3.10.1",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"nprogress": "0.2.0",
"qrcode": "^1.5.4",
"quill": "1.3.7",
"screenfull": "5.0.2",
"sortablejs": "1.10.2",
"vant": "^2.12.54",
"vue": "2.6.12",
"vue-count-to": "1.0.13",
"vue-cropper": "0.5.5",
"vue-meta": "2.4.0",
"vue-router": "3.4.9",
"vuedraggable": "2.24.3",
"vuex": "3.6.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.6",
"@vue/cli-plugin-eslint": "4.4.6",
"@vue/cli-service": "4.4.6",
"babel-eslint": "10.1.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-plugin-import": "^1.13.5",
"chalk": "4.1.0",
"compression-webpack-plugin": "5.0.2",
"connect": "3.6.6",
"eslint": "7.15.0",
"eslint-plugin-vue": "7.2.0",
"lint-staged": "10.5.3",
"runjs": "4.4.2",
"sass": "1.32.13",
"sass-loader": "10.1.1",
"script-ext-html-webpack-plugin": "2.1.5",
"svg-sprite-loader": "5.1.1",
"vue-template-compiler": "2.6.12"
},
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions"
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,209 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="webkit">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
<style>
html,
body,
#app {
height: 100%;
margin: 0px;
padding: 0px;
}
.chromeframe {
margin: 0.2em 0;
background: #ccc;
color: #000;
padding: 0.2em 0;
}
#loader-wrapper {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999999;
}
#loader {
display: block;
position: relative;
left: 50%;
top: 50%;
width: 150px;
height: 150px;
margin: -75px 0 0 -75px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 2s linear infinite;
-ms-animation: spin 2s linear infinite;
-moz-animation: spin 2s linear infinite;
-o-animation: spin 2s linear infinite;
animation: spin 2s linear infinite;
z-index: 1001;
}
#loader:before {
content: "";
position: absolute;
top: 5px;
left: 5px;
right: 5px;
bottom: 5px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-webkit-animation: spin 3s linear infinite;
-moz-animation: spin 3s linear infinite;
-o-animation: spin 3s linear infinite;
-ms-animation: spin 3s linear infinite;
animation: spin 3s linear infinite;
}
#loader:after {
content: "";
position: absolute;
top: 15px;
left: 15px;
right: 15px;
bottom: 15px;
border-radius: 50%;
border: 3px solid transparent;
border-top-color: #FFF;
-moz-animation: spin 1.5s linear infinite;
-o-animation: spin 1.5s linear infinite;
-ms-animation: spin 1.5s linear infinite;
-webkit-animation: spin 1.5s linear infinite;
animation: spin 1.5s linear infinite;
}
@-webkit-keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spin {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
transform: rotate(360deg);
}
}
#loader-wrapper .loader-section {
position: fixed;
top: 0;
width: 51%;
height: 100%;
background: #001529;
z-index: 1000;
-webkit-transform: translateX(0);
-ms-transform: translateX(0);
transform: translateX(0);
}
#loader-wrapper .loader-section.section-left {
left: 0;
}
#loader-wrapper .loader-section.section-right {
right: 0;
}
.loaded #loader-wrapper .loader-section.section-left {
-webkit-transform: translateX(-100%);
-ms-transform: translateX(-100%);
transform: translateX(-100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader-wrapper .loader-section.section-right {
-webkit-transform: translateX(100%);
-ms-transform: translateX(100%);
transform: translateX(100%);
-webkit-transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
transition: all 0.7s 0.3s cubic-bezier(0.645, 0.045, 0.355, 1.000);
}
.loaded #loader {
opacity: 0;
-webkit-transition: all 0.3s ease-out;
transition: all 0.3s ease-out;
}
.loaded #loader-wrapper {
visibility: hidden;
-webkit-transform: translateY(-100%);
-ms-transform: translateY(-100%);
transform: translateY(-100%);
-webkit-transition: all 0.3s 1s ease-out;
transition: all 0.3s 1s ease-out;
}
.no-js #loader-wrapper {
display: none;
}
.no-js h1 {
color: #222222;
}
#loader-wrapper .load_title {
font-family: 'Open Sans';
color: #FFF;
font-size: 19px;
width: 100%;
text-align: center;
z-index: 9999999999999;
position: absolute;
top: 60%;
opacity: 1;
line-height: 30px;
}
#loader-wrapper .load_title span {
font-weight: normal;
font-style: italic;
font-size: 13px;
color: #FFF;
opacity: 0.5;
}
</style>
</head>
<body>
<div id="app">
<div id="loader-wrapper">
<div id="loader" ></div>
<div class="loader-section section-left" ></div>
<div class="loader-section section-right" ></div>
<div class="load_title" style="margin-top: 40px">正在加载系统资源,请耐心等待</div>
</div>
</div>
</body>
</html>

View File

@@ -0,0 +1,2 @@
User-agent: *
Disallow: /

View File

@@ -0,0 +1,28 @@
<template>
<div id="app">
<router-view />
<theme-picker />
</div>
</template>
<script>
import ThemePicker from "@/components/ThemePicker";
export default {
name: "App",
components: { ThemePicker },
metaInfo() {
return {
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
titleTemplate: title => {
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
}
}
}
};
</script>
<style scoped>
#app .theme-picker {
display: none;
}
</style>

View File

@@ -0,0 +1,57 @@
import request from '@/utils/request'
// 查询煤炭监测列表
export const getCoalMonitoringPage = (params) => {
return request({
url: '/energy/coal-monitoring/page',
method: 'get',
params
}).then((res) => ({
list: res.rows || [],
total: res.total || 0
}))
}
// 查询煤炭监测详情
export const getCoalMonitoring = (id) => {
return request({
url: `/energy/coal-monitoring/get?id=${id}`,
method: 'get'
}).then((res) => res.data)
}
// 新增煤炭监测
export const createCoalMonitoring = (data) => {
return request({
url: '/energy/coal-monitoring/create',
method: 'post',
data
})
}
// 修改煤炭监测
export const updateCoalMonitoring = (data) => {
return request({
url: '/energy/coal-monitoring/update',
method: 'put',
data
})
}
// 删除煤炭监测
export const deleteCoalMonitoring = (id) => {
return request({
url: `/energy/coal-monitoring/delete?id=${id}`,
method: 'delete'
})
}
// 导出煤炭监测 Excel
export const exportCoalMonitoring = (params) => {
return request({
url: '/energy/coal-monitoring/export-excel',
method: 'get',
params,
responseType: 'blob'
})
}

View File

@@ -0,0 +1,48 @@
import request from '@/utils/request'
export const getCoalConsumptionChart = (params) => {
return request({
url: '/energy/coal-consumption/chart',
method: 'get',
params
}).then((res) => res.data)
}
export const getCoalConsumptionDeviceChart = (params) => {
return request({
url: '/energy/coal-consumption/device-chart',
method: 'get',
params
}).then((res) => res.data)
}
export const getCoalConsumptionDeviceTrend = (params) => {
return request({
url: '/energy/coal-consumption/device-trend',
method: 'get',
params
}).then((res) => res.data)
}
export const getCoalConsumptionAllDeviceTrend = (params) => {
return request({
url: '/energy/coal-consumption/device-trend-all',
method: 'get',
params
}).then((res) => res.data)
}
export const getCoalConsumptionDevices = () => {
return request({
url: '/energy/coal-consumption/devices',
method: 'get'
}).then((res) => res.data)
}
export const getCoalConsumptionHistory = (params) => {
return request({
url: '/energy/coal-consumption/history',
method: 'get',
params
}).then((res) => res.data)
}

View File

@@ -0,0 +1,13 @@
import request from '@/utils/request'
/**
* 按时间范围汇总电/水/煤消耗
* GET /energy/consumption/summary
*/
export const getEnergyConsumptionSummary = (params) => {
return request({
url: '/energy/consumption/summary',
method: 'get',
params
}).then((res) => res.data)
}

View File

@@ -0,0 +1,47 @@
import request from '@/utils/request'
// 分页查询
export const getElectricityMonitoringPage = (params) => {
return request({
url: '/energy/electricity-monitoring/page',
method: 'get',
params
}).then((res) => ({
list: res.rows || [],
total: res.total || 0
}))
}
// 新增电表监测
export const createElectricityMonitoring = (data) => {
return request({
url: '/energy/electricity-monitoring/create',
method: 'post',
data
})
}
// 更新电表监测
export const updateElectricityMonitoring = (data) => {
return request({
url: '/energy/electricity-monitoring/update',
method: 'put',
data
})
}
// 删除电表监测
export const deleteElectricityMonitoring = (id) => {
return request({
url: `/energy/electricity-monitoring/delete?id=${id}`,
method: 'delete'
})
}
// 获取电表监测详情
export const getElectricityMonitoring = (id) => {
return request({
url: `/energy/electricity-monitoring/get?id=${id}`,
method: 'get'
}).then((res) => res.data)
}

View File

@@ -0,0 +1,48 @@
import request from '@/utils/request'
export const getElectricityConsumptionChart = (params) => {
return request({
url: '/energy/electricity-consumption/chart',
method: 'get',
params
}).then((res) => res.data)
}
export const getElectricityConsumptionDeviceChart = (params) => {
return request({
url: '/energy/electricity-consumption/device-chart',
method: 'get',
params
}).then((res) => res.data)
}
export const getElectricityConsumptionDeviceTrend = (params) => {
return request({
url: '/energy/electricity-consumption/device-trend',
method: 'get',
params
}).then((res) => res.data)
}
export const getElectricityConsumptionAllDeviceTrend = (params) => {
return request({
url: '/energy/electricity-consumption/device-trend-all',
method: 'get',
params
}).then((res) => res.data)
}
export const getElectricityConsumptionDevices = () => {
return request({
url: '/energy/electricity-consumption/devices',
method: 'get'
}).then((res) => res.data)
}
export const getElectricityConsumptionHistory = (params) => {
return request({
url: '/energy/electricity-consumption/history',
method: 'get',
params
}).then((res) => res.data)
}

View File

@@ -0,0 +1,47 @@
import request from '@/utils/request'
// 分页查询
export const getWaterMonitoringPage = (params) => {
return request({
url: '/energy/water-monitoring/page',
method: 'get',
params
}).then((res) => ({
list: res.rows || [],
total: res.total || 0
}))
}
// 新增水表监测
export const createWaterMonitoring = (data) => {
return request({
url: '/energy/water-monitoring/create',
method: 'post',
data
})
}
// 更新水表监测
export const updateWaterMonitoring = (data) => {
return request({
url: '/energy/water-monitoring/update',
method: 'put',
data
})
}
// 删除水表监测
export const deleteWaterMonitoring = (id) => {
return request({
url: `/energy/water-monitoring/delete?id=${id}`,
method: 'delete'
})
}
// 获取水表监测详情
export const getWaterMonitoring = (id) => {
return request({
url: `/energy/water-monitoring/get?id=${id}`,
method: 'get'
}).then((res) => res.data)
}

View File

@@ -0,0 +1,48 @@
import request from '@/utils/request'
export const getWaterConsumptionChart = (params) => {
return request({
url: '/energy/water-consumption/chart',
method: 'get',
params
}).then((res) => res.data)
}
export const getWaterConsumptionDeviceChart = (params) => {
return request({
url: '/energy/water-consumption/device-chart',
method: 'get',
params
}).then((res) => res.data)
}
export const getWaterConsumptionDeviceTrend = (params) => {
return request({
url: '/energy/water-consumption/device-trend',
method: 'get',
params
}).then((res) => res.data)
}
export const getWaterConsumptionAllDeviceTrend = (params) => {
return request({
url: '/energy/water-consumption/device-trend-all',
method: 'get',
params
}).then((res) => res.data)
}
export const getWaterConsumptionDevices = () => {
return request({
url: '/energy/water-consumption/devices',
method: 'get'
}).then((res) => res.data)
}
export const getWaterConsumptionHistory = (params) => {
return request({
url: '/energy/water-consumption/history',
method: 'get',
params
}).then((res) => res.data)
}

View File

@@ -0,0 +1,59 @@
import request from '@/utils/request'
// 登录方法
export function login(username, password, code, uuid) {
const data = {
username,
password,
code,
uuid
}
return request({
url: '/login',
headers: {
isToken: false
},
method: 'post',
data: data
})
}
// 注册方法
export function register(data) {
return request({
url: '/register',
headers: {
isToken: false
},
method: 'post',
data: data
})
}
// 获取用户详细信息
export function getInfo() {
return request({
url: '/getInfo',
method: 'get'
})
}
// 退出方法
export function logout() {
return request({
url: '/logout',
method: 'post'
})
}
// 获取验证码
export function getCodeImg() {
return request({
url: '/captchaImage',
headers: {
isToken: false
},
method: 'get',
timeout: 20000
})
}

View File

@@ -0,0 +1,9 @@
import request from '@/utils/request'
// 获取路由
export const getRouters = () => {
return request({
url: '/getRouters',
method: 'get'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询条码生成记录列表
export function listBarcodeRecord(query) {
return request({
url: '/barcode/barcodeRecord/list',
method: 'get',
params: query
})
}
// 查询条码生成记录详细
export function getBarcodeRecord(id) {
return request({
url: '/barcode/barcodeRecord/' + id,
method: 'get'
})
}
// 新增条码生成记录
export function addBarcodeRecord(data) {
return request({
url: '/barcode/barcodeRecord',
method: 'post',
data: data
})
}
// 修改条码生成记录
export function updateBarcodeRecord(data) {
return request({
url: '/barcode/barcodeRecord',
method: 'put',
data: data
})
}
// 删除条码生成记录
export function delBarcodeRecord(id) {
return request({
url: '/barcode/barcodeRecord/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询物料SN码列表
export function listMaterialSn(query) {
return request({
url: '/barcode/materialSn/list',
method: 'get',
params: query
})
}
// 查询物料SN码详细
export function getMaterialSn(id) {
return request({
url: '/barcode/materialSn/' + id,
method: 'get'
})
}
// 新增物料SN码
export function addMaterialSn(data) {
return request({
url: '/barcode/materialSn',
method: 'post',
data: data
})
}
// 修改物料SN码
export function updateMaterialSn(data) {
return request({
url: '/barcode/materialSn',
method: 'put',
data: data
})
}
// 删除物料SN码
export function delMaterialSn(id) {
return request({
url: '/barcode/materialSn/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询采购订单列表
export function listBuyOrder(query) {
return request({
url: '/buy/buyOrder/list',
method: 'get',
params: query
})
}
// 查询采购订单详细
export function getBuyOrder(id) {
return request({
url: '/buy/buyOrder/' + id,
method: 'get'
})
}
// 新增采购订单
export function addBuyOrder(data) {
return request({
url: '/buy/buyOrder',
method: 'post',
data: data
})
}
// 修改采购订单
export function updateBuyOrder(data) {
return request({
url: '/buy/buyOrder',
method: 'put',
data: data
})
}
// 删除采购订单
export function delBuyOrder(id) {
return request({
url: '/buy/buyOrder/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,54 @@
import request from '@/utils/request'
// 查询收集数据列表
export function listCollectionData(query) {
return request({
url: '/collection/data/list',
method: 'get',
params: query
})
}
// 查询收集数据详细
export function getCollectionData(id) {
return request({
url: '/collection/data/' + id,
method: 'get'
})
}
// 新增收集数据
export function addCollectionData(data) {
return request({
url: '/collection/data',
method: 'post',
data: data
})
}
// 修改收集数据
export function updateCollectionData(data) {
return request({
url: '/collection/data',
method: 'put',
data: data
})
}
// 删除收集数据
export function delCollectionData(id) {
return request({
url: '/collection/data/' + id,
method: 'delete'
})
}
// 导出收集数据
export function exportCollectionData(query) {
return request({
url: '/collection/data/export',
method: 'get',
params: query,
responseType: 'blob'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询编码规则列表
export function listSysCodeRule(query) {
return request({
url: '/common/sysCodeRule/list',
method: 'get',
params: query
})
}
// 查询编码规则详细
export function getSysCodeRule(id) {
return request({
url: '/common/sysCodeRule/' + id,
method: 'get'
})
}
// 新增编码规则
export function addSysCodeRule(data) {
return request({
url: '/common/sysCodeRule',
method: 'post',
data: data
})
}
// 修改编码规则
export function updateSysCodeRule(data) {
return request({
url: '/common/sysCodeRule',
method: 'put',
data: data
})
}
// 删除编码规则
export function delSysCodeRule(id) {
return request({
url: '/common/sysCodeRule/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询用户工位绑定列表
export function listSysUserStation(query) {
return request({
url: '/common/sysUserStation/list',
method: 'get',
params: query
})
}
// 查询用户工位绑定详细
export function getSysUserStation(userId) {
return request({
url: '/common/sysUserStation/' + userId,
method: 'get'
})
}
// 新增用户工位绑定
export function addSysUserStation(data) {
return request({
url: '/common/sysUserStation',
method: 'post',
data: data
})
}
// 修改用户工位绑定
export function updateSysUserStation(data) {
return request({
url: '/common/sysUserStation',
method: 'put',
data: data
})
}
// 删除用户工位绑定
export function delSysUserStation(id) {
return request({
url: '/common/sysUserStation/' + id,
method: 'delete'
})
}
// 根据工位ID查询绑定的用户列表
export function listUsersByStationId(stationId) {
return request({
url: '/common/sysUserStation/listByStationId/' + stationId,
method: 'get'
})
}

View File

@@ -0,0 +1,54 @@
import request from '@/utils/request'
// 查询设备故障记录列表
export function listDeviceFault(query) {
return request({
url: '/device/faultRecord/list',
method: 'get',
params: query
})
}
// 查询设备故障记录详细
export function getDeviceFault(id) {
return request({
url: '/device/faultRecord/' + id,
method: 'get'
})
}
// 导出设备故障记录
export function exportDeviceFault(query) {
return request({
url: '/device/faultRecord/export',
method: 'post',
params: query,
responseType: 'blob'
})
}
// 获取设备名称列表(下拉用)
export function getDeviceList() {
return request({
url: '/device/faultRecord/deviceList',
method: 'get'
})
}
// 获取传感器列表(下拉用,按设备筛选)
export function getSensorList(deviceName) {
return request({
url: '/device/faultRecord/sensorList',
method: 'get',
params: { deviceName }
})
}
// 获取趋势数据
export function getTrendData(params) {
return request({
url: '/device/faultRecord/trend',
method: 'get',
params: params
})
}

View File

@@ -0,0 +1,100 @@
import request from '@/utils/request'
// 查询设备信息列表
export function listEquipment(query) {
return request({
url: '/equipment/equipment/list',
method: 'get',
params: query
})
}
//查询所有设备发Id和名称
export function getAllIdWithName() {
return request({
url: '/equipment/equipment/getAllIdWithName',
method: 'get'
})
}
// 查询设备信息详细
export function getEquipment(id) {
return request({
url: '/equipment/equipment/' + id,
method: 'get'
})
}
// 新增设备信息
export function addEquipment(data) {
return request({
url: '/equipment/equipment',
method: 'post',
data: data
})
}
// 修改设备信息
export function updateEquipment(data) {
return request({
url: '/equipment/equipment',
method: 'put',
data: data
})
}
// 删除设备信息
export function delEquipment(id) {
return request({
url: '/equipment/equipment/' + id,
method: 'delete'
})
}
// 查询设备OEE稼动率
export function oeeUtilizationList(query) {
return request({
url: '/equipment/equipment/oeeUtilizationList',
method: 'get',
params: query
})
}
// 获取设备列表8ADPRO/8MULTI设备
export function listAllDevices(query) {
return request({
url: '/equipment/equipment/allDevices',
method: 'get',
params: query
})
}
// 获取所有设备的手动OEE配置
export function listDevicesManualOee() {
return request({
url: '/equipment/equipment/manualOee/list',
method: 'get'
})
}
// 批量更新设备的手动OEE配置
export function batchUpdateManualOee(data) {
return request({
url: '/equipment/equipment/manualOee/batch',
method: 'put',
data: data
})
}
/**
* 查询设备能耗
*/
export function getEnergyConsumption(params) {
return request({
url: '/equipment/equipment/energyConsumption',
method: 'get',
params: params
})
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询故障树列表
export function listFaultTree(query) {
return request({
url: '/equipment/faultTree/list',
method: 'get',
params: query
})
}
// 查询故障树(树形结构)
export function treeFaultTree() {
return request({
url: '/equipment/faultTree/tree',
method: 'get'
})
}
// 查询故障树详细
export function getFaultTree(id) {
return request({
url: '/equipment/faultTree/' + id,
method: 'get'
})
}
// 新增故障树
export function addFaultTree(data) {
return request({
url: '/equipment/faultTree',
method: 'post',
data: data
})
}
// 修改故障树
export function updateFaultTree(data) {
return request({
url: '/equipment/faultTree',
method: 'put',
data: data
})
}
// 删除故障树
export function delFaultTree(id) {
return request({
url: '/equipment/faultTree/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,36 @@
import request from '@/utils/request'
// 查询温湿度列表
export function listHumidity(query) {
return request({
url: '/equipment/humidity/list',
method: 'get',
params: query
})
}
// 查询最新温湿度数据
export function getLatestHumidity(query) {
return request({
url: '/equipment/humidity/latest',
method: 'get',
params: query
})
}
// 获取点位列表
export function getPositions() {
return request({
url: '/equipment/humidity/positions',
method: 'get'
})
}
// 导出温湿度数据
export function exportHumidity(query) {
return request({
url: '/equipment/humidity/export',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,143 @@
import request from '@/utils/request'
// 获取设备字段表头配置
export function getDeviceFieldHeaders(deviceId) {
return request({
url: '/equipment/info/headers',
method: 'get',
params: { deviceId }
})
}
// 获取设备最新数据从device_data表
export function getDeviceLatest(query) {
console.log('调用getDeviceLatest API参数:', query);
return request({
url: '/equipment/info/data/latest',
method: 'get',
params: {
...query,
_t: new Date().getTime() // 添加时间戳防止缓存
}
}).then(response => {
console.log('getDeviceLatest API响应:', response);
return response;
}).catch(error => {
console.error('getDeviceLatest API错误:', error);
throw error;
});
}
// 获取指定设备的最新数据从device_data表
export function getLatestDeviceDataById(deviceId) {
console.log('调用getLatestDeviceDataById设备ID:', deviceId, '类型:', typeof deviceId);
return request({
url: `/equipment/info/data/latest/${deviceId}`,
method: 'get',
params: {
_t: new Date().getTime(), // 添加时间戳防止缓存
deviceId: deviceId // 确保deviceId参数被正确传递
}
})
}
// 获取设备历史数据
export function listDeviceData(query) {
console.log('调用listDeviceData API参数:', query);
return request({
url: '/equipment/info/data',
method: 'get',
params: {
...query,
_t: new Date().getTime() // 添加时间戳防止缓存
}
}).then(response => {
console.log('listDeviceData API响应:', response);
return response;
}).catch(error => {
console.error('listDeviceData API错误:', error);
throw error;
});
}
// 清零设备计数器
export function clearDeviceCounter(deviceId, counterIndex) {
return request({
url: '/equipment/info/counter/clear',
method: 'post',
data: { deviceId, counterIndex }
})
}
// 上报设备数据帧
export function ingestDeviceFrame(frame) {
return request({
url: '/equipment/info/ingest',
method: 'post',
data: { frame }
})
}
// 获取设备详情
export function getDevice(id) {
return request({
url: '/equipment/info/device/' + id,
method: 'get'
})
}
// 新增设备
export function addDevice(data) {
return request({
url: '/equipment/info/device',
method: 'post',
data
})
}
// 修改设备
export function updateDevice(data) {
return request({
url: '/equipment/info/device',
method: 'put',
data
})
}
// 删除设备
export function delDevices(ids) {
console.log('调用删除设备API, ids:', ids);
// 确保ids是数组格式
const idsArray = Array.isArray(ids) ? ids : [ids];
console.log('转换后的ids数组:', idsArray);
return request({
url: '/equipment/info/device/delete',
method: 'post',
data: { ids: idsArray }
}).then(response => {
console.log('删除设备API响应:', response);
return response;
}).catch(error => {
console.error('删除设备API错误:', error);
throw error;
});
}
// 获取设备列表
export function listDevices(query) {
return request({
url: '/equipment/info/device/list',
method: 'get',
params: query
})
}
// 获取设备OEE均值
export function getOeeAvg(deviceId, from, to) {
return request({
url: '/equipment/info/oee/avg',
method: 'get',
params: { deviceId, from, to }
})
}

View File

@@ -0,0 +1,73 @@
import request from '@/utils/request'
// 查询设备项目列表
export function listInspectionItem(query) {
return request({
url: '/equipment/inspectionItem/list',
method: 'get',
params: query
})
}
// 查询设备项目详细
export function getInspectionItem(id) {
return request({
url: '/equipment/inspectionItem/' + id,
method: 'get'
})
}
// 新增设备项目
export function addInspectionItem(data) {
return request({
url: '/equipment/inspectionItem',
method: 'post',
data: data
})
}
// 修改设备项目
export function updateInspectionItem(data) {
return request({
url: '/equipment/inspectionItem',
method: 'put',
data: data
})
}
// 删除设备项目
export function delInspectionItem(id) {
return request({
url: '/equipment/inspectionItem/' + id,
method: 'delete'
})
}
// 批量修改设备项目执行人
export function batchUpdateExecutor(ids, standard) {
return request({
url: '/equipment/inspectionItem/batchUpdateExecutor',
method: 'put',
data: {
ids: ids,
standard: standard
}
})
}
// 获取项目的点位列表
export function getItemPoints(itemId) {
return request({
url: '/equipment/inspectionItem/points/' + itemId,
method: 'get'
})
}
// 保存项目的点位列表
export function saveItemPoints(itemId, points) {
return request({
url: '/equipment/inspectionItem/points/' + itemId,
method: 'post',
data: points
})
}

View File

@@ -0,0 +1,69 @@
import request from '@/utils/request'
// 查询巡检计划列表
export function listInspectionPlan(query) {
return request({
url: '/equipment/inspectionPlan/list',
method: 'get',
params: query
})
}
// 查询巡检计划详细
export function getInspectionPlan(id) {
return request({
url: '/equipment/inspectionPlan/' + id,
method: 'get'
})
}
// 新增巡检计划
export function addInspectionPlan(data) {
return request({
url: '/equipment/inspectionPlan',
method: 'post',
data: data
})
}
// 修改巡检计划
export function updateInspectionPlan(data) {
return request({
url: '/equipment/inspectionPlan',
method: 'put',
data: data
})
}
// 删除巡检计划
export function delInspectionPlan(id) {
return request({
url: '/equipment/inspectionPlan/' + id,
method: 'delete'
})
}
// 执行巡检计划
export function executeInspectionPlan(id) {
return request({
url: '/equipment/inspectionPlan/execute/' + id,
method: 'post'
})
}
// 获取计划关联的标准项目
export function getPlanItems(planId) {
return request({
url: '/equipment/inspectionPlan/items/' + planId,
method: 'get'
})
}
// 保存计划关联的标准项目
export function savePlanItems(planId, itemIds) {
return request({
url: '/equipment/inspectionPlan/items/' + planId,
method: 'post',
data: itemIds
})
}

View File

@@ -0,0 +1,77 @@
import request from '@/utils/request'
// 查询巡检记录列表
export function listInspectionPlanRecord(query) {
return request({
url: '/equipment/inspectionPlanRecord/list',
method: 'get',
params: query
})
}
// 查询巡检记录详细
export function getInspectionPlanRecord(id) {
return request({
url: '/equipment/inspectionPlanRecord/' + id,
method: 'get'
})
}
// 新增巡检记录
export function addInspectionPlanRecord(data) {
return request({
url: '/equipment/inspectionPlanRecord',
method: 'post',
data: data
})
}
// 修改巡检记录
export function updateInspectionPlanRecord(data) {
return request({
url: '/equipment/inspectionPlanRecord',
method: 'put',
data: data
})
}
// 删除巡检记录
export function delInspectionPlanRecord(id) {
return request({
url: '/equipment/inspectionPlanRecord/' + id,
method: 'delete'
})
}
// 生成维修单
export function createRepairOrder(id) {
return request({
url: '/equipment/inspectionPlanRecord/createRepairOrder/' + id,
method: 'post'
})
}
// 获取执行记录的明细列表
export function getRecordItems(recordId) {
return request({
url: '/equipment/inspectionPlanRecord/items/' + recordId,
method: 'get'
})
}
// 保存执行记录的明细
export function saveRecordItems(recordId, items) {
return request({
url: '/equipment/inspectionPlanRecord/items/' + recordId,
method: 'post',
data: items
})
}
// 根据计划ID获取标准项目列表
export function getPlanItems(planId) {
return request({
url: '/equipment/inspectionPlanRecord/planItems/' + planId,
method: 'get'
})
}

View File

@@ -0,0 +1,60 @@
import request from '@/utils/request'
// 查询设备点位列表
export function listInspectionPoint(query) {
return request({
url: '/equipment/inspectionPoint/list',
method: 'get',
params: query
})
}
// 查询设备点位详细
export function getInspectionPoint(id) {
return request({
url: '/equipment/inspectionPoint/' + id,
method: 'get'
})
}
// 新增设备点位
export function addInspectionPoint(data) {
return request({
url: '/equipment/inspectionPoint',
method: 'post',
data: data
})
}
// 修改设备点位
export function updateInspectionPoint(data) {
return request({
url: '/equipment/inspectionPoint',
method: 'put',
data: data
})
}
// 删除设备点位
export function delInspectionPoint(id) {
return request({
url: '/equipment/inspectionPoint/' + id,
method: 'delete'
})
}
// 根据项目ID查询点位列表
export function listPointsByItemId(itemId) {
return request({
url: '/equipment/inspectionPoint/byItem/' + itemId,
method: 'get'
})
}
// 根据设备ID查询点位列表
export function listPointsByEquipmentId(equipmentId) {
return request({
url: '/equipment/inspectionPoint/byEquipment/' + equipmentId,
method: 'get'
})
}

View File

@@ -0,0 +1,98 @@
import request from '@/utils/request'
// 查询设备点检记录列表
export function listInspectionRecord(query) {
return request({
url: '/equipment/inspectionRecord/list',
method: 'get',
params: query
})
}
// 查询设备点检记录详细
export function getInspectionRecord(id) {
return request({
url: '/equipment/inspectionRecord/' + id,
method: 'get'
})
}
// 新增设备点检记录
export function addInspectionRecord(data) {
return request({
url: '/equipment/inspectionRecord',
method: 'post',
data: data
})
}
// 修改设备点检记录
export function updateInspectionRecord(data) {
return request({
url: '/equipment/inspectionRecord',
method: 'put',
data: data
})
}
// 删除设备点检记录
export function delInspectionRecord(id) {
return request({
url: '/equipment/inspectionRecord/' + id,
method: 'delete'
})
}
// 查询点检项目当前状态
export function getInspectionItemStatus(itemId, frequency) {
return request({
url: '/equipment/inspectionRecord/status/' + itemId + '/' + frequency,
method: 'get'
})
}
// 获取项目历史执行记录
export function getItemHistoryRecords(itemId) {
return request({
url: '/equipment/inspectionRecord/history/' + itemId,
method: 'get'
})
}
// 提交点检记录
export function submitInspectionRecord(data) {
return request({
url: '/equipment/inspectionRecord/submit',
method: 'post',
data: data
})
}
// 查询带项目信息的设备点检记录列表
export function listInspectionRecordWithItem(query) {
return request({
url: '/equipment/inspectionRecord/listWithItem',
method: 'get',
params: query
})
}
// 查询带项目信息的设备点检记录详细
export function getInspectionRecordWithItem(id) {
return request({
url: '/equipment/inspectionRecord/withItem/' + id,
method: 'get'
})
}
// 批量修改执行人
export function batchUpdateCheckedBy(ids, checkedBy) {
return request({
url: '/equipment/inspectionRecord/batchUpdateCheckedBy',
method: 'put',
data: {
ids: ids,
checkedBy: checkedBy
}
})
}

View File

@@ -0,0 +1,85 @@
import request from '@/utils/request'
// 查询设备维修单列表
export function listRepairOrder(query) {
return request({
url: '/equipment/repairOrder/list',
method: 'get',
params: query
})
}
// 查询设备维修单详细
export function getRepairOrder(id) {
return request({
url: '/equipment/repairOrder/' + id,
method: 'get'
})
}
// 新增设备维修单
export function addRepairOrder(data) {
return request({
url: '/equipment/repairOrder',
method: 'post',
data: data
})
}
// 修改设备维修单
export function updateRepairOrder(data) {
return request({
url: '/equipment/repairOrder',
method: 'put',
data: data
})
}
// 删除设备维修单
export function delRepairOrder(id) {
return request({
url: '/equipment/repairOrder/' + id,
method: 'delete'
})
}
// 批量修改设备维修单状态
export function batchUpdateRepairOrderStatus(ids, status) {
return request({
url: '/equipment/repairOrder/batchUpdateStatus',
method: 'put',
data: {
ids: ids,
status: status
}
})
}
// 批量修改设备维修单人员
export function batchUpdateRepairOrderPerson(ids, personType, userId) {
return request({
url: '/equipment/repairOrder/batchUpdatePerson',
method: 'put',
data: {
ids: ids,
personType: personType,
userId: userId
}
})
}
// 获取维修单附件列表
export function getAttachmentList(repairOrderId) {
return request({
url: '/equipment/repairOrder/attachment/list/' + repairOrderId,
method: 'get'
})
}
// 删除附件
export function deleteAttachment(ids) {
return request({
url: '/equipment/repairOrder/attachment/' + ids,
method: 'delete'
})
}

View File

@@ -0,0 +1,131 @@
import request from '@/utils/request'
// 查询车间设备列表
export function listWorkshopEquipment(query) {
return request({
url: '/equipment/workshop/list',
method: 'get',
params: query
})
}
// 查询车间设备详细
export function getWorkshopEquipment(id) {
return request({
url: '/equipment/workshop/' + id,
method: 'get'
})
}
// 新增车间设备
export function addWorkshopEquipment(data) {
return request({
url: '/equipment/workshop',
method: 'post',
data: data
})
}
// 修改车间设备
export function updateWorkshopEquipment(data) {
return request({
url: '/equipment/workshop',
method: 'put',
data: data
})
}
// 删除车间设备
export function delWorkshopEquipment(ids) {
return request({
url: '/equipment/workshop/' + ids,
method: 'delete'
})
}
// 导出车间设备
export function exportWorkshopEquipment(query) {
return request({
url: '/equipment/workshop/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 查询设备点位列表
export function listEquipmentPoints(query) {
return request({
url: '/equipment/workshop/points/list',
method: 'get',
params: query
})
}
// 查询设备点位详细
export function getEquipmentPoint(id) {
return request({
url: '/equipment/workshop/points/' + id,
method: 'get'
})
}
// 新增设备点位
export function addEquipmentPoint(data) {
return request({
url: '/equipment/workshop/points',
method: 'post',
data: data
})
}
// 修改设备点位
export function updateEquipmentPoint(data) {
return request({
url: '/equipment/workshop/points',
method: 'put',
data: data
})
}
// 删除设备点位
export function delEquipmentPoint(ids) {
return request({
url: '/equipment/workshop/points/' + ids,
method: 'delete'
})
}
// 查询设备状态记录列表
export function listEquipmentStatusRecords(query) {
return request({
url: '/equipment/workshop/records/list',
method: 'get',
params: query
})
}
// 查询设备状态记录详细
export function getEquipmentStatusRecord(id) {
return request({
url: '/equipment/workshop/records/' + id,
method: 'get'
})
}
// 新增设备状态记录
export function addEquipmentStatusRecord(data) {
return request({
url: '/equipment/workshop/records',
method: 'post',
data: data
})
}
// 删除设备状态记录
export function delEquipmentStatusRecord(ids) {
return request({
url: '/equipment/workshop/records/' + ids,
method: 'delete'
})
}

View File

@@ -0,0 +1,147 @@
import request from '@/utils/request'
// 查询FIIH质量管理配置列表
export function listFiihConfig(query) {
return request({
url: '/fiih/config/list',
method: 'get',
params: query
})
}
// 查询FIIH质量管理配置详细
export function getFiihConfig(id) {
return request({
url: '/fiih/config/' + id,
method: 'get'
})
}
// 新增FIIH质量管理配置
export function addFiihConfig(data) {
return request({
url: '/fiih/config',
method: 'post',
data: data
})
}
// 是否是管理员
export function isAdmin(){
return request({
url: '/fiih/config/isAdmin',
method: 'get'
})
}
// 修改FIIH质量管理配置
export function updateFiihConfig(data) {
return request({
url: '/fiih/config',
method: 'put',
data: data
})
}
// 删除FIIH质量管理配置
export function delFiihConfig(id) {
return request({
url: '/fiih/config/' + id,
method: 'delete'
})
}
// 新增FIIH质量管理配置(给外部使用)
export function insertFiihConfig(data) {
return request({
url: '/fiih/config/insert',
method: 'post',
data: data
})
}
// 获取所有对象名称及其菜单ID
export function getAllObjects() {
// 使用 list 接口作为临时方案,确保在后端 XML 未重载的情况下也能获取数据
return request({
url: '/fiih/config/list',
method: 'get',
params: { pageNum: 1, pageSize: 1000 }
}).then(res => {
// 客户端提取去重
let names = []
if (res && res.rows) {
names = [...new Set(res.rows.map(item => item.fiihObjectName).filter(n => n))]
}
return { data: names }
}).catch(e => {
console.error('Fetch objects failed', e)
return { data: [] }
})
}
// 获取所有已有的下拉选项数据(任务名称、环节名称、版本号、负责人姓名)
export function getAllSelectOptions() {
return request({
url: '/fiih/config/list',
method: 'get',
params: { pageNum: 1, pageSize: 1000 }
}).then(res => {
const result = {
taskNames: [],
linkNames: [],
versions: [],
leaderNames: [],
dataNames: [],
manufacturers: [],
units: []
}
if (res && res.rows) {
result.taskNames = [...new Set(res.rows.map(item => item.fiihTaskName).filter(n => n))]
result.linkNames = [...new Set(res.rows.map(item => item.fiihLinkName).filter(n => n))]
result.versions = [...new Set(res.rows.map(item => item.fiihVersion).filter(n => n))]
result.leaderNames = [...new Set(res.rows.map(item => item.fiihLeaderName).filter(n => n))]
// 从通道配置中提取数据名称、供应商、单位
const dataNameSet = new Set()
const manufacturerSet = new Set()
const unitSet = new Set()
res.rows.forEach(row => {
for (let i = 0; i < 24; i++) {
const configStr = row[`fiihConfigCh${i}`]
if (configStr) {
try {
const config = typeof configStr === 'string' ? JSON.parse(configStr) : configStr
if (config.data_name) dataNameSet.add(config.data_name)
if (config.manufacturer) manufacturerSet.add(config.manufacturer)
if (config.unit) unitSet.add(config.unit)
} catch (e) {
// 忽略解析错误
}
}
}
})
result.dataNames = [...dataNameSet]
result.manufacturers = [...manufacturerSet]
result.units = [...unitSet]
}
return { data: result }
}).catch(e => {
console.error('Fetch select options failed', e)
return { data: { taskNames: [], linkNames: [], versions: [], leaderNames: [], dataNames: [], manufacturers: [], units: [] } }
})
}
// 根据对象名称查询配置数据
export function listFiihConfigByObject(objectName, query) {
return request({
url: '/fiih/config/list',
method: 'get',
params: {
...query,
fiihObjectName: objectName
}
})
}

View File

@@ -0,0 +1,125 @@
import request from '@/utils/request'
// 查询FIIH质量管理数据列表
export function listFiihData(query) {
return request({
url: '/fiih/data/list',
method: 'get',
params: query
})
}
// 查询FIIH质量管理数据详细
export function getFiihData(id) {
return request({
url: '/fiih/data/' + id,
method: 'get'
})
}
// 新增FIIH质量管理数据
export function addFiihData(data) {
return request({
url: '/fiih/data',
method: 'post',
data: data
})
}
// 修改FIIH质量管理数据
export function updateFiihData(data) {
return request({
url: '/fiih/data',
method: 'put',
data: data
})
}
// 删除FIIH质量管理数据
export function delFiihData(id) {
return request({
url: '/fiih/data/' + id,
method: 'delete'
})
}
// 根据任务ID查询数据列表
export function getFiihDataByTaskId(fiihTaskId) {
return request({
url: '/fiih/data/task/' + fiihTaskId,
method: 'get'
})
}
// 根据环节ID查询数据列表
export function getFiihDataByLinkId(fiihLinkId) {
return request({
url: '/fiih/data/link/' + fiihLinkId,
method: 'get'
})
}
// 根据对象名称查询数据列表
export function getFiihDataByObjectName(fiihObjectName) {
return request({
url: '/fiih/data/object/' + fiihObjectName,
method: 'get'
})
}
// 获取质检项列表(根据对象体)
export function getInspectionItems(objectName) {
return request({
url: '/fiih/data/inspectionItems',
method: 'get',
params: { objectName }
})
}
// 获取趋势数据
export function getTrendData(query) {
return request({
url: '/fiih/data/trend',
method: 'get',
params: query
})
}
// 获取通道数据的历史值(用于下拉选项)
export function getChannelHistoryValues(objectName) {
return request({
url: '/fiih/data/list',
method: 'get',
params: { fiihObjectName: objectName, pageNum: 1, pageSize: 500 }
}).then(res => {
const result = {}
// 初始化24个通道的数组
for (let i = 0; i < 24; i++) {
result['ch' + i] = new Set()
}
// 从数据中提取每个通道的历史值
if (res && res.rows) {
res.rows.forEach(row => {
for (let i = 0; i < 24; i++) {
const value = row['fiihDataCh' + i]
if (value !== null && value !== undefined && value !== '') {
result['ch' + i].add(value)
}
}
})
}
// 转换Set为数组
const finalResult = {}
for (let i = 0; i < 24; i++) {
finalResult['ch' + i] = [...result['ch' + i]]
}
return { data: finalResult }
}).catch(e => {
console.error('获取通道历史值失败', e)
const emptyResult = {}
for (let i = 0; i < 24; i++) {
emptyResult['ch' + i] = []
}
return { data: emptyResult }
})
}

View File

@@ -0,0 +1,60 @@
import request from '@/utils/request'
// 查询FIIH通用质检配置列表
export function listFiihGeneralConfig(query) {
return request({
url: '/fiihgeneral/config/list',
method: 'get',
params: query
})
}
// 获取所有配置(用于下拉选择)
export function listAllConfigs() {
return request({
url: '/fiihgeneral/config/listAll',
method: 'get'
})
}
// 查询FIIH通用质检配置详细
export function getFiihGeneralConfig(id) {
return request({
url: '/fiihgeneral/config/' + id,
method: 'get'
})
}
// 获取配置的通道名称列表
export function getChannelNames(id) {
return request({
url: '/fiihgeneral/config/channels/' + id,
method: 'get'
})
}
// 新增FIIH通用质检配置
export function addFiihGeneralConfig(data) {
return request({
url: '/fiihgeneral/config',
method: 'post',
data: data
})
}
// 修改FIIH通用质检配置
export function updateFiihGeneralConfig(data) {
return request({
url: '/fiihgeneral/config',
method: 'put',
data: data
})
}
// 删除FIIH通用质检配置
export function delFiihGeneralConfig(id) {
return request({
url: '/fiihgeneral/config/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询FIIH通用质检数据列表
export function listFiihGeneralData(query) {
return request({
url: '/fiihgeneral/data/list',
method: 'get',
params: query
})
}
// 查询FIIH通用质检数据详细
export function getFiihGeneralData(id) {
return request({
url: '/fiihgeneral/data/' + id,
method: 'get'
})
}
// 新增FIIH通用质检数据
export function addFiihGeneralData(data) {
return request({
url: '/fiihgeneral/data',
method: 'post',
data: data
})
}
// 修改FIIH通用质检数据
export function updateFiihGeneralData(data) {
return request({
url: '/fiihgeneral/data',
method: 'put',
data: data
})
}
// 删除FIIH通用质检数据
export function delFiihGeneralData(id) {
return request({
url: '/fiihgeneral/data/' + id,
method: 'delete'
})
}
// 获取列头配置
export function getColumnHeaders() {
return request({
url: '/fiihgeneral/data/headers',
method: 'get'
})
}

View File

@@ -0,0 +1,208 @@
import request from '@/utils/request'
// 查询质检配置列表
export function listFiihQcConfig(query) {
return request({
url: '/fiihupgrade/config/list',
method: 'get',
params: query
})
}
// 查询质检配置详细
export function getFiihQcConfig(id) {
return request({
url: '/fiihupgrade/config/' + id,
method: 'get'
})
}
// 新增质检配置
export function addFiihQcConfig(data) {
return request({
url: '/fiihupgrade/config',
method: 'post',
data: data
})
}
// 是否是管理员
export function isAdmin(){
return request({
url: '/fiihupgrade/config/isAdmin',
method: 'get'
})
}
// 修改质检配置
export function updateFiihQcConfig(data) {
return request({
url: '/fiihupgrade/config',
method: 'put',
data: data
})
}
// 删除质检配置
export function delFiihQcConfig(id) {
return request({
url: '/fiihupgrade/config/' + id,
method: 'delete'
})
}
// 新增质检配置(给外部使用)
export function insertFiihQcConfig(data) {
return request({
url: '/fiihupgrade/config/insert',
method: 'post',
data: data
})
}
// 获取所有对象名称
export function getAllObjects() {
return request({
url: '/fiihupgrade/config/list',
method: 'get',
params: { pageNum: 1, pageSize: 1000 }
}).then(res => {
let names = []
if (res && res.rows) {
names = [...new Set(res.rows.map(item => item.fiihObjectName).filter(n => n))]
}
return { data: names }
}).catch(e => {
console.error('Fetch objects failed', e)
return { data: [] }
})
}
// 获取所有已有的下拉选项数据
export function getAllSelectOptions() {
return request({
url: '/fiihupgrade/config/list',
method: 'get',
params: { pageNum: 1, pageSize: 1000 }
}).then(res => {
const result = {
taskNames: [],
linkNames: [],
versions: [],
leaderNames: [],
dataNames: [],
manufacturers: [],
units: []
}
if (res && res.rows) {
result.taskNames = [...new Set(res.rows.map(item => item.fiihTaskName).filter(n => n))]
result.linkNames = [...new Set(res.rows.map(item => item.fiihLinkName).filter(n => n))]
result.versions = [...new Set(res.rows.map(item => item.fiihVersion).filter(n => n))]
result.leaderNames = [...new Set(res.rows.map(item => item.fiihLeaderName).filter(n => n))]
// 从通道配置中提取数据名称、供应商、单位
const dataNameSet = new Set()
const manufacturerSet = new Set()
const unitSet = new Set()
res.rows.forEach(row => {
for (let i = 0; i < 24; i++) {
const configStr = row[`fiihConfigCh${i}`]
if (configStr) {
try {
const config = typeof configStr === 'string' ? JSON.parse(configStr) : configStr
if (config.data_name) dataNameSet.add(config.data_name)
if (config.manufacturer) manufacturerSet.add(config.manufacturer)
if (config.unit) unitSet.add(config.unit)
} catch (e) {
// 忽略解析错误
}
}
}
})
result.dataNames = [...dataNameSet]
result.manufacturers = [...manufacturerSet]
result.units = [...unitSet]
}
return { data: result }
}).catch(e => {
console.error('Fetch select options failed', e)
return { data: { taskNames: [], linkNames: [], versions: [], leaderNames: [], dataNames: [], manufacturers: [], units: [] } }
})
}
// 根据对象名称查询配置数据
export function listFiihQcConfigByObject(objectName, query) {
return request({
url: '/fiihupgrade/config/list',
method: 'get',
params: {
...query,
fiihObjectName: objectName
}
})
}
// 获取所有环节名称
export function getAllLinks() {
return request({
url: '/fiihupgrade/config/list',
method: 'get',
params: { pageNum: 1, pageSize: 1000 }
}).then(res => {
let names = []
if (res && res.rows) {
names = [...new Set(res.rows.map(item => item.fiihLinkName).filter(n => n))]
}
return { data: names }
}).catch(e => {
console.error('Fetch links failed', e)
return { data: [] }
})
}
// 根据环节名称查询配置数据
export function listFiihQcConfigByLink(linkName, query) {
return request({
url: '/fiihupgrade/config/list',
method: 'get',
params: {
...query,
fiihLinkName: linkName
}
})
}
// 获取环节-对象分组数据(用于生成层级菜单)
export function getLinkObjectGroups() {
return request({
url: '/fiihupgrade/config/list',
method: 'get',
params: { pageNum: 1, pageSize: 1000 }
}).then(res => {
// 构建环节 -> 对象列表的映射
const linkObjectMap = {}
if (res && res.rows) {
res.rows.forEach(item => {
const linkName = item.fiihLinkName
const objectName = item.fiihObjectName
if (linkName && objectName) {
if (!linkObjectMap[linkName]) {
linkObjectMap[linkName] = new Set()
}
linkObjectMap[linkName].add(objectName)
}
})
}
// 转换为数组格式
const result = Object.keys(linkObjectMap).map(linkName => ({
linkName: linkName,
objects: [...linkObjectMap[linkName]]
}))
return { data: result }
}).catch(e => {
console.error('Fetch link-object groups failed', e)
return { data: [] }
})
}

View File

@@ -0,0 +1,158 @@
import request from '@/utils/request'
// 查询质检数据列表
export function listFiihQcData(query) {
return request({
url: '/fiihupgrade/data/list',
method: 'get',
params: query
})
}
// 查询质检数据详细
export function getFiihQcData(id) {
return request({
url: '/fiihupgrade/data/' + id,
method: 'get'
})
}
// 新增质检数据
export function addFiihQcData(data) {
return request({
url: '/fiihupgrade/data',
method: 'post',
data: data
})
}
// 修改质检数据
export function updateFiihQcData(data) {
return request({
url: '/fiihupgrade/data',
method: 'put',
data: data
})
}
// 提交处置审批
export function submitFiihQcApprove(id) {
return request({
url: '/fiihupgrade/data/submitApprove/' + id,
method: 'post'
})
}
// 审批处置
export function approveFiihQcData(data) {
return request({
url: '/fiihupgrade/data/approve',
method: 'post',
data: data
})
}
// 删除质检数据
export function delFiihQcData(id) {
return request({
url: '/fiihupgrade/data/' + id,
method: 'delete'
})
}
// 根据任务ID查询数据列表
export function getFiihQcDataByTaskId(fiihTaskId) {
return request({
url: '/fiihupgrade/data/task/' + fiihTaskId,
method: 'get'
})
}
// 根据环节ID查询数据列表
export function getFiihQcDataByLinkId(fiihLinkId) {
return request({
url: '/fiihupgrade/data/link/' + fiihLinkId,
method: 'get'
})
}
// 根据报告编号查询数据
export function getFiihQcDataByReportNo(fiihReportNo) {
return request({
url: '/fiihupgrade/data/report/' + fiihReportNo,
method: 'get'
})
}
// 获取通道数据的历史值(用于下拉选项)
export function getChannelHistoryValues(objectName) {
return request({
url: '/fiihupgrade/data/list',
method: 'get',
params: { fiihLeaderName: objectName, pageNum: 1, pageSize: 500 }
}).then(res => {
const result = {}
// 初始化24个通道的数组
for (let i = 0; i < 24; i++) {
result['ch' + i] = new Set()
}
// 从数据中提取每个通道的历史值
if (res && res.rows) {
res.rows.forEach(row => {
for (let i = 0; i < 24; i++) {
const value = row['fiihDataCh' + i]
if (value !== null && value !== undefined && value !== '') {
result['ch' + i].add(value)
}
}
})
}
// 转换Set为数组
const finalResult = {}
for (let i = 0; i < 24; i++) {
finalResult['ch' + i] = [...result['ch' + i]]
}
return { data: finalResult }
}).catch(e => {
console.error('获取通道历史值失败', e)
const emptyResult = {}
for (let i = 0; i < 24; i++) {
emptyResult['ch' + i] = []
}
return { data: emptyResult }
})
}
// 按任务导出质检数据
export function exportByTaskId(fiihTaskId) {
return request({
url: '/fiihupgrade/data/exportByTask',
method: 'post',
params: { fiihTaskId },
responseType: 'blob'
})
}
// 下载任务导入模板
export function downloadTaskTemplate(fiihTaskId) {
return request({
url: '/fiihupgrade/data/taskTemplate',
method: 'post',
params: { fiihTaskId },
responseType: 'blob'
})
}
// 获取按任务导入URL
export function getImportByTaskUrl() {
return process.env.VUE_APP_BASE_API + '/fiihupgrade/data/importByTask'
}
// 下载导入模板
export function downloadImportTemplate() {
return request({
url: '/fiihupgrade/data/importTemplate',
method: 'get',
responseType: 'blob'
})
}

View File

@@ -0,0 +1,132 @@
import request from '@/utils/request'
// 查询薄膜核算列表
export function listBomochengben(query) {
return request({
url: '/finance/bomochengben/list',
method: 'get',
params: query
})
}
// 查询薄膜核算详细
export function getBomochengben(id) {
return request({
url: '/finance/bomochengben/' + id,
method: 'get'
})
}
// 新增薄膜核算
export function addBomochengben(data) {
return request({
url: '/finance/bomochengben',
method: 'post',
data: data
})
}
// 修改薄膜核算
export function updateBomochengben(data) {
return request({
url: '/finance/bomochengben',
method: 'put',
data: data
})
}
// 删除薄膜核算
export function delBomochengben(id) {
return request({
url: '/finance/bomochengben/' + id,
method: 'delete'
})
}
/* 内贸------------------------------------*/
// 查询薄膜核算列表
export function listBomochengbenNeimao(query) {
return request({
url: '/finance/bomochengben/listNeimao',
method: 'get',
params: query
})
}
// 查询薄膜核算详细
export function getBomochengbenNeimao(id) {
return request({
url: '/finance/bomochengben/neimao/' + id,
method: 'get'
})
}
// 新增薄膜核算
export function addBomochengbenNeimao(data) {
return request({
url: '/finance/bomochengben/neimao',
method: 'post',
data: data
})
}
// 修改薄膜核算
export function updateBomochengbenNeimao(data) {
return request({
url: '/finance/bomochengben/neimao',
method: 'put',
data: data
})
}
// 删除薄膜核算
export function delBomochengbenNeimao(id) {
return request({
url: '/finance/bomochengben/neimao/' + id,
method: 'delete'
})
}
/* 外贸------------------------------------*/
// 查询薄膜核算列表
export function listBomochengbenWaimao(query) {
return request({
url: '/finance/bomochengben/listWaimao',
method: 'get',
params: query
})
}
// 查询薄膜核算详细
export function getBomochengbenWaimao(id) {
return request({
url: '/finance/bomochengben/waimao/' + id,
method: 'get'
})
}
// 新增薄膜核算
export function addBomochengbenWaimao(data) {
return request({
url: '/finance/bomochengben/waimao',
method: 'post',
data: data
})
}
// 修改薄膜核算
export function updateBomochengbenWaimao(data) {
return request({
url: '/finance/bomochengben/waimao',
method: 'put',
data: data
})
}
// 删除薄膜核算
export function delBomochengbenWaimao(id) {
return request({
url: '/finance/bomochengben/waimao/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询天润薄膜核算维护列表
export function listBomoweihu(query) {
return request({
url: '/finance/bomoweihu/list',
method: 'get',
params: query
})
}
// 查询天润薄膜核算维护详细
export function getBomoweihu(priceType) {
return request({
url: '/finance/bomoweihu/' + priceType,
method: 'get'
})
}
// 新增天润薄膜核算维护
export function addBomoweihu(data) {
return request({
url: '/finance/bomoweihu',
method: 'post',
data: data
})
}
// 修改天润薄膜核算维护
export function updateBomoweihu(data) {
return request({
url: '/finance/bomoweihu',
method: 'put',
data: data
})
}
// 删除天润薄膜核算维护
export function delBomoweihu(priceType) {
return request({
url: '/finance/bomoweihu/' + priceType,
method: 'delete'
})
}

View File

@@ -0,0 +1,61 @@
import request from '@/utils/request'
// 查询工资单列表
export function listPayroll(query) {
return request({
url: '/finance/payroll/list',
method: 'get',
params: query
})
}
// 查询工资单详细
export function getPayroll(id) {
return request({
url: '/finance/payroll/' + id,
method: 'get'
})
}
// 新增工资单
export function addPayroll(data) {
return request({
url: '/finance/payroll',
method: 'post',
data: data
})
}
// 修改工资单
export function updatePayroll(data) {
return request({
url: '/finance/payroll',
method: 'put',
data: data
})
}
// 删除工资单
export function delPayroll(id) {
return request({
url: '/finance/payroll/' + id,
method: 'delete'
})
}
// 工资单预览
export function payRollPreview(ids) {
return request({
url: '/finance/payroll/preview/' + ids,
method: 'get'
})
}
// 批量新增工资单
export function batchAdd(list) {
return request({
url: '/finance/payroll/batchAdd',
method: 'post',
data: list
})
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询计件工资方案列表
export function listPieceWagePlan(query) {
return request({
url: '/finance/pieceWagePlan/list',
method: 'get',
params: query
})
}
// 查询计件工资方案详细
export function getPieceWagePlan(id) {
return request({
url: '/finance/pieceWagePlan/' + id,
method: 'get'
})
}
// 新增计件工资方案
export function addPieceWagePlan(data) {
return request({
url: '/finance/pieceWagePlan',
method: 'post',
data: data
})
}
// 修改计件工资方案
export function updatePieceWagePlan(data) {
return request({
url: '/finance/pieceWagePlan',
method: 'put',
data: data
})
}
// 删除计件工资方案
export function delPieceWagePlan(id) {
return request({
url: '/finance/pieceWagePlan/' + id,
method: 'delete'
})
}
// 保存计件工资方案
export function savePieceWagePlan(data) {
return request({
url: '/finance/pieceWagePlan/save',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询销售出库对账单列表
export function listSaleOutAccountBill(query) {
return request({
url: '/finance/saleOutAccountBill/list',
method: 'get',
params: query
})
}
// 查询销售出库对账单详细
export function getSaleOutAccountBill(id) {
return request({
url: '/finance/saleOutAccountBill/' + id,
method: 'get'
})
}
// 新增销售出库对账单
export function addSaleOutAccountBill(data) {
return request({
url: '/finance/saleOutAccountBill',
method: 'post',
data: data
})
}
// 修改销售出库对账单
export function updateSaleOutAccountBill(data) {
return request({
url: '/finance/saleOutAccountBill',
method: 'put',
data: data
})
}
// 删除销售出库对账单
export function delSaleOutAccountBill(id) {
return request({
url: '/finance/saleOutAccountBill/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,46 @@
import request from "@/utils/request";
// 获取月度质检合格率折线图
export function monthlyQualityRate(query) {
return request({
url: "/statement/pcIndex/monthlyQualityRate",
method: "get",
params: query,
});
}
// 获取产能走势图
export function outputTrend(query) {
return request({
url: "/statement/pcIndex/outputTrend",
method: "get",
params: query,
});
}
// 工单延期率
export function defermentFactor(query) {
return request({
url: "/statement/pcIndex/defermentFactor",
method: "get",
params: query,
});
}
// 生产合格率
export function qualificationRate(query) {
return request({
url: "/statement/pcIndex/qualificationRate",
method: "get",
params: query,
});
}
// 不合格原因
export function unqualifiedReason(query) {
return request({
url: "/statement/pcIndex/unqualifiedReason",
method: "get",
params: query,
});
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询集成数据源列表
export function listIntegrateDataSource(query) {
return request({
url: '/integrateDataSource/list',
method: 'get',
params: query
})
}
// 查询集成数据源详细
export function getIntegrateDataSource(id) {
return request({
url: '/integrateDataSource/' + id,
method: 'get'
})
}
// 新增集成数据源
export function addIntegrateDataSource(data) {
return request({
url: '/integrateDataSource',
method: 'post',
data: data
})
}
// 修改集成数据源
export function updateIntegrateDataSource(data) {
return request({
url: '/integrateDataSource',
method: 'put',
data: data
})
}
// 删除集成数据源
export function delIntegrateDataSource(id) {
return request({
url: '/integrateDataSource/' + id,
method: 'delete'
})
}
// 测试连接
export function testConnection(data) {
return request({
url: '/integrateDataSource/test',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询集成方案列表
export function listIntegratePlan(query) {
return request({
url: '/integratePlan/list',
method: 'get',
params: query
})
}
// 查询集成方案详细
export function getIntegratePlan(id) {
return request({
url: '/integratePlan/' + id,
method: 'get'
})
}
// 新增集成方案
export function addIntegratePlan(data) {
return request({
url: '/integratePlan',
method: 'post',
data: data
})
}
// 修改集成方案
export function updateIntegratePlan(data) {
return request({
url: '/integratePlan',
method: 'put',
data: data
})
}
// 删除集成方案
export function delIntegratePlan(id) {
return request({
url: '/integratePlan/' + id,
method: 'delete'
})
}
// 查询mes系统中的所有属性
export function mesField(query) {
return request({
url: '/integratePlan/mesFieldList',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,62 @@
import request from '@/utils/request'
// 查询设备配置列表
export function listIotDeviceConfig(query) {
return request({
url: '/mes/iot/config/list',
method: 'get',
params: query
})
}
// 获取设备基础信息详情
export function getIotDeviceConfig(id) {
return request({
url: '/mes/iot/config/' + id,
method: 'get'
})
}
// 获取设备数据列表
export function listIotDeviceData(query) {
return request({
url: '/mes/iot/data/list',
method: 'get',
params: query
})
}
// 新增设备配置
export function addIotDeviceConfig(data) {
return request({
url: '/mes/iot/config',
method: 'post',
data: data
})
}
// 修改设备配置
export function updateIotDeviceConfig(data) {
return request({
url: '/mes/iot/config',
method: 'put',
data: data
})
}
// 删除设备配置
export function delIotDeviceConfig(id) {
return request({
url: '/mes/iot/config/' + id,
method: 'delete'
})
}
// 获取设备数据详情
export function getIotDeviceData(id) {
return request({
url: '/mes/iot/data/' + id,
method: 'get'
})
}

View File

@@ -0,0 +1,36 @@
import request from '@/utils/request'
// 获取设备列表(下拉选择用)
export function getDeviceList() {
return request({
url: '/mes/iot/trend/deviceList',
method: 'get'
})
}
// 获取设备参数列表(通道配置)
export function getParamList(iotDeviceId) {
return request({
url: '/mes/iot/trend/paramList',
method: 'get',
params: { iotDeviceId }
})
}
// 获取趋势数据
export function getTrendData(params) {
return request({
url: '/mes/iot/trend/data',
method: 'get',
params: params
})
}
// 查询IOT数据列表
export function listIotData(query) {
return request({
url: '/mes/iot/trend/list',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,80 @@
import request from '@/utils/request'
// 查询IOT Labview数据库配置列表
export function listLabview(query) {
return request({
url: '/iot/labview/list',
method: 'get',
params: query
})
}
// 查询IOT Labview数据库配置详细
export function getLabview(id) {
return request({
url: '/iot/labview/' + id,
method: 'get'
})
}
// 根据设备ID查询配置
export function getLabviewByDeviceId(iotDeviceId) {
return request({
url: '/iot/labview/device/' + iotDeviceId,
method: 'get'
})
}
// 获取目标表配置
export function getTargetTable(id) {
return request({
url: '/iot/labview/targetTable/' + id,
method: 'get'
})
}
// 新增IOT Labview数据库配置
export function addLabview(data) {
return request({
url: '/iot/labview',
method: 'post',
data: data
})
}
// 修改IOT Labview数据库配置
export function updateLabview(data) {
return request({
url: '/iot/labview',
method: 'put',
data: data
})
}
// 删除IOT Labview数据库配置
export function delLabview(ids) {
return request({
url: '/iot/labview/' + ids,
method: 'delete'
})
}
// 测试数据库连接
export function testConnection(data) {
return request({
url: '/iot/labview/testConnection',
method: 'post',
data: data
})
}
// 导出IOT Labview数据库配置
export function exportLabview(query) {
return request({
url: '/iot/labview/export',
method: 'post',
params: query,
responseType: 'blob'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询物料BOM列表
export function listBom(query) {
return request({
url: '/masterdata/bom/list',
method: 'get',
params: query
})
}
// 查询物料BOM详细
export function getBom(id) {
return request({
url: '/masterdata/bom/' + id,
method: 'get'
})
}
// 新增物料BOM
export function addBom(data) {
return request({
url: '/masterdata/bom',
method: 'post',
data: data
})
}
// 修改物料BOM
export function updateBom(data) {
return request({
url: '/masterdata/bom',
method: 'put',
data: data
})
}
// 删除物料BOM
export function delBom(id) {
return request({
url: '/masterdata/bom/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询客户列表
export function listCustomer(query) {
return request({
url: '/masterdata/customer/list',
method: 'get',
params: query
})
}
// 查询客户详细
export function getCustomer(id) {
return request({
url: '/masterdata/customer/' + id,
method: 'get'
})
}
// 新增客户
export function addCustomer(data) {
return request({
url: '/masterdata/customer',
method: 'post',
data: data
})
}
// 修改客户
export function updateCustomer(data) {
return request({
url: '/masterdata/customer',
method: 'put',
data: data
})
}
// 删除客户
export function delCustomer(id) {
return request({
url: '/masterdata/customer/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询物料列表
export function listMaterial(query) {
return request({
url: '/masterdata/material/list',
method: 'get',
params: query
})
}
// 查询物料详细
export function getMaterial(id) {
return request({
url: '/masterdata/material/' + id,
method: 'get'
})
}
// 新增物料
export function addMaterial(data) {
return request({
url: '/masterdata/material',
method: 'post',
data: data
})
}
// 修改物料
export function updateMaterial(data) {
return request({
url: '/masterdata/material',
method: 'put',
data: data
})
}
// 删除物料
export function delMaterial(id) {
return request({
url: '/masterdata/material/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询物料分类列表
export function listMaterialClass(query) {
return request({
url: '/masterdata/materialClass/list',
method: 'get',
params: query
})
}
// 查询物料分类详细
export function getMaterialClass(id) {
return request({
url: '/masterdata/materialClass/' + id,
method: 'get'
})
}
// 新增物料分类
export function addMaterialClass(data) {
return request({
url: '/masterdata/materialClass',
method: 'post',
data: data
})
}
// 修改物料分类
export function updateMaterialClass(data) {
return request({
url: '/masterdata/materialClass',
method: 'put',
data: data
})
}
// 删除物料分类
export function delMaterialClass(id) {
return request({
url: '/masterdata/materialClass/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,178 @@
import request from '@/utils/request'
// 查询新BOM列表
export function listNewBom(query) {
return request({
url: '/masterdata/newBom/list',
method: 'get',
params: query
})
}
// 查询新BOM详细信息
export function getNewBom(id) {
return request({
url: '/masterdata/newBom/' + id,
method: 'get'
})
}
// 新增新BOM
export function addNewBom(data) {
return request({
url: '/masterdata/newBom',
method: 'post',
data: data
})
}
// 修改新BOM
export function updateNewBom(data) {
return request({
url: '/masterdata/newBom',
method: 'put',
data: data
})
}
// 删除新BOM
export function delNewBom(id) {
return request({
url: '/masterdata/newBom/' + id,
method: 'delete'
})
}
// 复制BOM
export function copyNewBom(id) {
return request({
url: '/masterdata/newBom/copy/' + id,
method: 'post'
})
}
// 导出BOM
export function exportNewBom(query) {
return request({
url: '/masterdata/newBom/export',
method: 'get',
params: query
})
}
// 导入BOM
export function importNewBom(data) {
return request({
url: '/masterdata/newBom/import',
method: 'post',
data: data
})
}
// 获取BOM树结构
export function getBomTree(parentId) {
return request({
url: '/masterdata/newBom/tree/' + parentId,
method: 'get'
})
}
// 计算BOM成本
export function calculateBomCost(id) {
return request({
url: '/masterdata/newBom/cost/' + id,
method: 'get'
})
}
// 获取BOM版本历史
export function getBomVersions(bomId) {
return request({
url: '/masterdata/newBom/versions/' + bomId,
method: 'get'
})
}
// 发布BOM版本
export function publishBomVersion(data) {
return request({
url: '/masterdata/newBom/publish',
method: 'post',
data: data
})
}
// 获取替代料列表
export function getSubstituteMaterials(materialId) {
return request({
url: '/masterdata/newBom/substitutes/' + materialId,
method: 'get'
})
}
// 获取BOM用量分析
export function getBomUsageAnalysis(id) {
return request({
url: '/masterdata/newBom/analysis/' + id,
method: 'get'
})
}
// 验证BOM完整性
export function validateBom(id) {
return request({
url: '/masterdata/newBom/validate/' + id,
method: 'get'
})
}
// 废弃BOM版本
export function deprecateBomVersion(id) {
return request({
url: '/masterdata/newBom/deprecate/' + id,
method: 'put'
})
}
// 根据物料ID查询BOM版本列表
export function getBomVersionsByMaterial(materialId) {
return request({
url: '/masterdata/newBom/material/' + materialId + '/versions',
method: 'get'
})
}
// 根据物料ID和版本查询BOM详情
export function getBomByMaterialAndVersion(materialId, version) {
return request({
url: '/masterdata/newBom/material/' + materialId + '/version/' + version,
method: 'get'
})
}
// 多级BOM查询
export function getBomMultiLevel(id, maxLevel) {
return request({
url: '/masterdata/newBom/multiLevel/' + id,
method: 'get',
params: { maxLevel: maxLevel }
})
}
// 多级成本计算
export function getBomMultiLevelCost(id, quantity) {
return request({
url: '/masterdata/newBom/cost/multiLevel/' + id,
method: 'get',
params: { quantity: quantity }
})
}
// BOM展开清单
export function expandBom(id, quantity) {
return request({
url: '/masterdata/newBom/expand/' + id,
method: 'get',
params: { quantity: quantity }
})
}

View File

@@ -0,0 +1,104 @@
import request from '@/utils/request'
// 查询生产配方列表
export function listRecipe(query) {
return request({
url: '/masterdata/recipe/list',
method: 'get',
params: query
})
}
// 查询生产配方详细
export function getRecipe(id) {
return request({
url: '/masterdata/recipe/' + id,
method: 'get'
})
}
// 新增生产配方
export function addRecipe(data) {
return request({
url: '/masterdata/recipe',
method: 'post',
data: data
})
}
// 修改生产配方
export function updateRecipe(data) {
return request({
url: '/masterdata/recipe',
method: 'put',
data: data
})
}
// 删除生产配方
export function delRecipe(id) {
return request({
url: '/masterdata/recipe/' + id,
method: 'delete'
})
}
// 查询配方明细列表
export function listRecipeDetail(query) {
return request({
url: '/masterdata/recipe/detail/list',
method: 'get',
params: query
})
}
// 查询配方明细详细
export function getRecipeDetail(id) {
return request({
url: '/masterdata/recipe/detail/' + id,
method: 'get'
})
}
// 新增配方明细
export function addRecipeDetail(data) {
return request({
url: '/masterdata/recipe/detail',
method: 'post',
data: data
})
}
// 修改配方明细
export function updateRecipeDetail(data) {
return request({
url: '/masterdata/recipe/detail',
method: 'put',
data: data
})
}
// 删除配方明细
export function delRecipeDetail(id) {
return request({
url: '/masterdata/recipe/detail/' + id,
method: 'delete'
})
}
// 根据配方ID查询明细列表
export function getRecipeDetailsByRecipeId(recipeId) {
return request({
url: '/masterdata/recipe/detail/byRecipeId/' + recipeId,
method: 'get'
})
}
// 批量保存配方明细
export function batchSaveRecipeDetails(data) {
return request({
url: '/masterdata/recipe/detail/batch',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询工位列表
export function listStation(query) {
return request({
url: '/masterdata/station/list',
method: 'get',
params: query
})
}
// 查询工位详细
export function getStation(id) {
return request({
url: '/masterdata/station/' + id,
method: 'get'
})
}
// 新增工位
export function addStation(data) {
return request({
url: '/masterdata/station',
method: 'post',
data: data
})
}
// 修改工位
export function updateStation(data) {
return request({
url: '/masterdata/station',
method: 'put',
data: data
})
}
// 删除工位
export function delStation(id) {
return request({
url: '/masterdata/station/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询供应商列表
export function listSupplier(query) {
return request({
url: '/masterdata/supplier/list',
method: 'get',
params: query
})
}
// 查询供应商详细
export function getSupplier(id) {
return request({
url: '/masterdata/supplier/' + id,
method: 'get'
})
}
// 新增供应商
export function addSupplier(data) {
return request({
url: '/masterdata/supplier',
method: 'post',
data: data
})
}
// 修改供应商
export function updateSupplier(data) {
return request({
url: '/masterdata/supplier',
method: 'put',
data: data
})
}
// 删除供应商
export function delSupplier(id) {
return request({
url: '/masterdata/supplier/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询供应商信用评价列表
export function listSupplierCredit(query) {
return request({
url: '/masterdata/supplierCredit/list',
method: 'get',
params: query
})
}
// 根据供应商ID查询信用评价列表
export function listSupplierCreditBySupplierId(supplierId) {
return request({
url: '/masterdata/supplierCredit/listBySupplierId/' + supplierId,
method: 'get'
})
}
// 查询供应商信用评价详细
export function getSupplierCredit(id) {
return request({
url: '/masterdata/supplierCredit/' + id,
method: 'get'
})
}
// 新增供应商信用评价
export function addSupplierCredit(data) {
return request({
url: '/masterdata/supplierCredit',
method: 'post',
data: data
})
}
// 修改供应商信用评价
export function updateSupplierCredit(data) {
return request({
url: '/masterdata/supplierCredit',
method: 'put',
data: data
})
}
// 删除供应商信用评价
export function delSupplierCredit(id) {
return request({
url: '/masterdata/supplierCredit/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询计量单位列表
export function listUnit(query) {
return request({
url: '/masterdata/unit/list',
method: 'get',
params: query
})
}
// 查询计量单位详细
export function getUnit(id) {
return request({
url: '/masterdata/unit/' + id,
method: 'get'
})
}
// 新增计量单位
export function addUnit(data) {
return request({
url: '/masterdata/unit',
method: 'post',
data: data
})
}
// 修改计量单位
export function updateUnit(data) {
return request({
url: '/masterdata/unit',
method: 'put',
data: data
})
}
// 删除计量单位
export function delUnit(id) {
return request({
url: '/masterdata/unit/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询计量单位转换列表
export function listUnitChange(query) {
return request({
url: '/masterdata/unitChange/list',
method: 'get',
params: query
})
}
// 查询计量单位转换详细
export function getUnitChange(id) {
return request({
url: '/masterdata/unitChange/' + id,
method: 'get'
})
}
// 新增计量单位转换
export function addUnitChange(data) {
return request({
url: '/masterdata/unitChange',
method: 'post',
data: data
})
}
// 修改计量单位转换
export function updateUnitChange(data) {
return request({
url: '/masterdata/unitChange',
method: 'put',
data: data
})
}
// 删除计量单位转换
export function delUnitChange(id) {
return request({
url: '/masterdata/unitChange/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询车间列表
export function listWorkshop(query) {
return request({
url: '/masterdata/workshop/list',
method: 'get',
params: query
})
}
// 查询车间详细
export function getWorkshop(id) {
return request({
url: '/masterdata/workshop/' + id,
method: 'get'
})
}
// 新增车间
export function addWorkshop(data) {
return request({
url: '/masterdata/workshop',
method: 'post',
data: data
})
}
// 修改车间
export function updateWorkshop(data) {
return request({
url: '/masterdata/workshop',
method: 'put',
data: data
})
}
// 删除车间
export function delWorkshop(id) {
return request({
url: '/masterdata/workshop/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,19 @@
import request from '@/utils/request'
/**
* 一键完成销售订单
* @param {Object} data - 一键完成配置参数
* @param {Number} data.saleOrderId - 销售订单ID
* @param {Number} data.saleOrderEntryId - 销售订单明细ID
* @param {Number} data.routeId - 工序路线ID
* @param {Array} data.processConfigs - 工序配置列表
*/
export function autoCompleteSaleOrder(data) {
return request({
url: '/production/autoComplete/execute',
method: 'post',
data: data,
timeout: 300000 // 5分钟超时300秒
})
}

View File

@@ -0,0 +1,26 @@
import request from '@/utils/request'
// 获取当前产线模拟图
export function getCurrentDiagram() {
return request({
url: '/production/diagram/current',
method: 'get'
})
}
// 上传产线模拟图
export function uploadDiagram(data) {
return request({
url: '/production/diagram/upload',
method: 'post',
data: data
})
}
// 删除产线模拟图
export function deleteDiagram() {
return request({
url: '/production/diagram',
method: 'delete'
})
}

View File

@@ -0,0 +1,257 @@
import request from '@/utils/request'
// 查询计划表列表
export function listPlan(query) {
return request({
url: '/production/plan/list',
method: 'get',
params: query
})
}
// 查询计划表详细
export function getPlan(id) {
return request({
url: '/production/plan/' + id,
method: 'get'
})
}
// 新增计划表
export function addPlan(data) {
return request({
url: '/production/plan',
method: 'post',
data: data
})
}
// 修改计划表
export function updatePlan(data) {
return request({
url: '/production/plan',
method: 'put',
data: data
})
}
// 删除计划表
export function delPlan(id) {
return request({
url: '/production/plan/' + id,
method: 'delete'
})
}
// 根据计划类型获取最新的计划数据
export function getLatestPlanByType(planType) {
return request({
url: '/production/plan/getLatestByType/' + planType,
method: 'get'
})
}
// ==================== 周/月计划相关接口 ====================
// 按周查询生产计划列表
export function listPlanByWeek(query) {
return request({
url: '/production/plan/week/list',
method: 'get',
params: query
})
}
// 按月查询生产计划列表
export function listPlanByMonth(query) {
return request({
url: '/production/plan/month/list',
method: 'get',
params: query
})
}
// 按日期范围查询生产计划列表(用于日历视图)
export function listPlanByDateRange(query) {
return request({
url: '/production/plan/dateRange/list',
method: 'get',
params: query
})
}
// 新增周计划
export function addWeekPlan(data) {
return request({
url: '/production/plan/week',
method: 'post',
data: data
})
}
// 新增月计划
export function addMonthPlan(data) {
return request({
url: '/production/plan/month',
method: 'post',
data: data
})
}
// 检查周计划是否存在
export function checkWeekPlanExists(planYear, weekNumber) {
return request({
url: '/production/plan/week/check',
method: 'get',
params: { planYear, weekNumber }
})
}
// 检查月计划是否存在
export function checkMonthPlanExists(planYear, monthNumber) {
return request({
url: '/production/plan/month/check',
method: 'get',
params: { planYear, monthNumber }
})
}
// 校准计划的完成产量
export function calibrateCompletedQuantity(id) {
return request({
url: '/production/plan/calibrate/' + id,
method: 'post'
})
}
// 获取产品信息包含库存和BOM信息
export function getProductInfo(materialId) {
return request({
url: '/production/plan/productInfo/' + materialId,
method: 'get'
})
}
// 获取计划关联的工单列表
export function getPlanWorkOrders(planId) {
console.log('========== API: getPlanWorkOrders ==========');
console.log('planId:', planId);
console.log('URL:', '/production/plan/workOrders/' + planId);
console.log('==========================================');
return request({
url: '/production/plan/workOrders/' + planId,
method: 'get'
})
}
// 计划分析
export function analyzePlan(data) {
return request({
url: '/production/plan/analyze',
method: 'post',
data: data
})
}
// 为库存生产计划自动创建销售订单
export function autoCreateSaleOrderForMTS(data) {
return request({
url: '/production/plan/autoCreateOrder',
method: 'post',
data: data
})
}
// 执行生产计划排产(支持传递工单时间数据)
export function schedulePlan(planId, scheduleData) {
return request({
url: '/production/plan/' + planId + '/schedule',
method: 'post',
data: scheduleData || {} // 如果有排产数据则传递,否则传空对象
})
}
// ==================== 计划分析相关接口 ====================
// 查询同产品的订单列表
export function getSameProductOrders(materialId, status = 'pending,producing') {
return request({
url: '/production/plan/analysis/orders/' + materialId,
method: 'get',
params: { status }
})
}
// 计算工序路线的生产时间
export function getRouteDuration(routeId, quantity) {
return request({
url: '/production/plan/analysis/route-duration/' + routeId,
method: 'get',
params: { quantity }
})
}
// 获取工序路线的设备信息materialUnit产品单位materialId物料ID单位为空时后端按物料查单位
export function getRouteEquipment(routeId, materialUnit, materialId) {
return request({
url: '/production/plan/analysis/route-equipment/' + routeId,
method: 'get',
params: { materialUnit, materialId }
})
}
// 获取产线的所有待生产订单(按优先级和交期排序)
export function getProductionLineOrders(routeId) {
return request({
url: '/production/plan/analysis/production-line-orders/' + routeId,
method: 'get'
})
}
// ==================== AI智能分析相关接口 ====================
// 获取计划分析数据
export function getPlanAnalysis(orderId) {
return request({
url: '/production/plan/analysis/' + orderId,
method: 'get'
})
}
// 请求AI智能分析
export function requestAIAnalysis(data) {
return request({
url: '/production/plan/ai-analysis',
method: 'post',
data: data
})
}
// ==================== 班次时间配置接口 ====================
// 获取班次时间配置列表
export function listShiftConfig() {
return request({
url: '/production/shift/config/list',
method: 'get'
})
}
// 保存/更新班次时间配置
export function updateShiftConfig(data) {
return request({
url: '/production/shift/config',
method: 'put',
data: data
})
}
// 重置为默认值
export function resetShiftConfig() {
return request({
url: '/production/shift/config/reset',
method: 'post'
})
}

View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询工序列表
export function listProcess(query) {
return request({
url: '/production/process/list',
method: 'get',
params: query
})
}
// 查询工序详细
export function getProcess(id) {
return request({
url: '/production/process/' + id,
method: 'get'
})
}
// 新增工序
export function addProcess(data) {
return request({
url: '/production/process',
method: 'post',
data: data
})
}
// 修改工序
export function updateProcess(data) {
return request({
url: '/production/process',
method: 'put',
data: data
})
}
// 删除工序
export function delProcess(id) {
return request({
url: '/production/process/' + id,
method: 'delete'
})
}
// 强制删除工序(二次确认后)
export function forceDelProcess(id) {
return request({
url: '/production/process/force/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,53 @@
import request from '@/utils/request'
// 查询单一质检配置列表
export function listQualityConfig(query) {
return request({
url: '/production/qualityConfig/list',
method: 'get',
params: query
})
}
// 新增单一质检配置
export function addQualityConfig(data) {
return request({
url: '/production/qualityConfig',
method: 'post',
data: data
})
}
// 修改单一质检配置
export function updateQualityConfig(data) {
return request({
url: '/production/qualityConfig',
method: 'put',
data: data
})
}
// 删除单一质检配置
export function delQualityConfig(ids) {
return request({
url: '/production/qualityConfig/' + ids,
method: 'delete'
})
}
// 根据工单ID查询质检数据
export function getQualityData(workOrderId) {
return request({
url: '/production/qualityData/' + workOrderId,
method: 'get'
})
}
// 保存质检数据
export function saveQualityData(workOrderId, data) {
return request({
url: '/production/qualityData/' + workOrderId,
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,63 @@
import request from '@/utils/request'
// 查询报工单列表
export function listReport(query) {
return request({
url: '/production/report/list',
method: 'get',
params: query
})
}
// 查询报工单详细
export function getReport(id) {
return request({
url: '/production/report/' + id,
method: 'get'
})
}
// 新增报工单
export function addReport(data) {
// 确保data是数组格式如果不是则包装成数组
const requestData = Array.isArray(data) ? data : [data];
return request({
url: '/production/report',
method: 'post',
data: requestData
})
}
// 修改报工单
export function updateReport(data) {
return request({
url: '/production/report',
method: 'put',
data: data
})
}
// 删除报工单
export function delReport(id) {
return request({
url: '/production/report/' + id,
method: 'delete'
})
}
// 批量新增/修改报工单
export function batchSave(data) {
return request({
url: '/production/report/batchSave',
method: 'post',
data: data
})
}
// 修复工单报工统计
export function fixWorkOrderStats(workOrderId) {
return request({
url: '/production/report/fixWorkOrderStats/' + workOrderId,
method: 'post'
})
}

View File

@@ -0,0 +1,52 @@
import request from '@/utils/request'
// 查询报工单类别配置列表
export function listCategoryConfig(query) {
return request({
url: '/production/report/categoryConfig/list',
method: 'get',
params: query
})
}
// 查询报工单类别配置详细
export function getCategoryConfig(id) {
return request({
url: '/production/report/categoryConfig/' + id,
method: 'get'
})
}
// 新增报工单类别配置
export function addCategoryConfig(data) {
return request({
url: '/production/report/categoryConfig',
method: 'post',
data: data
})
}
// 修改报工单类别配置
export function updateCategoryConfig(data) {
return request({
url: '/production/report/categoryConfig',
method: 'put',
data: data
})
}
// 删除报工单类别配置
export function delCategoryConfig(ids) {
return request({
url: '/production/report/categoryConfig/' + ids,
method: 'delete'
})
}
// 重置类别名称
export function resetCategoryName(id) {
return request({
url: '/production/report/categoryConfig/' + id + '/resetName',
method: 'put'
})
}

View File

@@ -0,0 +1,61 @@
import request from '@/utils/request'
// 查询报工单字段配置列表
export function listFieldConfig(query) {
return request({
url: '/production/report/fieldConfig/list',
method: 'get',
params: query
})
}
// 查询报工单字段配置详细
export function getFieldConfig(id) {
return request({
url: '/production/report/fieldConfig/' + id,
method: 'get'
})
}
// 新增报工单字段配置
export function addFieldConfig(data) {
return request({
url: '/production/report/fieldConfig',
method: 'post',
data: data
})
}
// 修改报工单字段配置
export function updateFieldConfig(data) {
return request({
url: '/production/report/fieldConfig',
method: 'put',
data: data
})
}
// 删除报工单字段配置
export function delFieldConfig(ids) {
return request({
url: '/production/report/fieldConfig/' + ids,
method: 'delete'
})
}
// 重置字段名称
export function resetFieldName(id) {
return request({
url: '/production/report/fieldConfig/' + id + '/resetName',
method: 'put'
})
}
// 批量更新字段配置
export function batchUpdateFieldConfig(data) {
return request({
url: '/production/report/fieldConfig/batch',
method: 'put',
data: data
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询工序路线列表
export function listRoute(query) {
return request({
url: '/production/route/list',
method: 'get',
params: query
})
}
// 查询工序路线详细
export function getRoute(id) {
return request({
url: '/production/route/' + id,
method: 'get'
})
}
// 新增工序路线
export function addRoute(data) {
return request({
url: '/production/route',
method: 'post',
data: data
})
}
// 修改工序路线
export function updateRoute(data) {
return request({
url: '/production/route',
method: 'put',
data: data
})
}
// 删除工序路线
export function delRoute(id) {
return request({
url: '/production/route/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,57 @@
import request from '@/utils/request'
/**
* 定时自动完成API
*/
// 获取配置
export function getConfig(moduleName) {
return request({
url: '/production/timedComplete/getConfig',
method: 'get',
params: { moduleName }
})
}
// 保存配置
export function saveConfig(data) {
return request({
url: '/production/timedComplete/saveConfig',
method: 'post',
data: data
})
}
// 查询超期订单列表
export function getOverdueOrders(moduleName, dayThreshold) {
return request({
url: '/production/timedComplete/getOverdueOrders',
method: 'get',
params: {
moduleName,
dayThreshold
}
})
}
// 查询超期订单数量
export function getOverdueOrdersCount(moduleName, dayThreshold) {
return request({
url: '/production/timedComplete/getOverdueOrdersCount',
method: 'get',
params: {
moduleName,
dayThreshold
}
})
}
// 批量执行自动完成
export function batchExecute(data) {
return request({
url: '/production/timedComplete/batchExecute',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,116 @@
import request from '@/utils/request'
// 查询工单列表
export function listWorkOrder(query) {
return request({
url: '/production/workOrder/list',
method: 'get',
params: query
})
}
// 查询工单详细
export function getWorkOrder(id) {
return request({
url: '/production/workOrder/' + id,
method: 'get'
})
}
// 查询工单详细
export function getWorkOrderByEntryId(id) {
return request({
url: '/production/workOrder/getInfoByEntryId/' + id,
method: 'get'
})
}
// 获取工序在工单中的实际顺序
export function getEntryRealSort(entryId) {
return request({
url: '/production/workOrder/getEntryRealSort/' + entryId,
method: 'get'
})
}
// 新增工单
export function addWorkOrder(data) {
return request({
url: '/production/workOrder',
method: 'post',
data: data
})
}
// 批量新增工单
export function batchAddWorkOrder(data) {
return request({
url: '/production/workOrder/batchAdd',
method: 'post',
data: data
})
}
// 批量新增工单,传递json
export function batchAddWorkOrderByJson(data) {
return request({
url: '/production/workOrder/batchAddByJson',
method: 'post',
data: data
})
}
// 修改工单
export function updateWorkOrder(data) {
return request({
url: '/production/workOrder',
method: 'put',
data: data
})
}
// 删除工单
export function delWorkOrder(id) {
return request({
url: '/production/workOrder/' + id,
method: 'delete'
})
}
// 修改工单生产状态
export function editProStatus(params) {
return request({
url: '/production/workOrder/editProStatus',
method: 'put',
params: params
})
}
//预览计划排产的生产工单
export function listWorkOrderPreview(params) {
return request({
url: '/production/workOrder/preview',
method: 'get',
params: params
})
}
//查询前一道工序
export function getFrontProcessReport(params) {
return request({
url: '/production/workOrder/getFrontProcessReport',
method: 'get',
params: params
})
}
// 工单自定义排序
export function updateCustomSort(data) {
return request({
url: '/production/workOrder/updateCustomSort',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,138 @@
import request from '@/utils/request'
// 查询定氮仪信息列表
export function listKNAInfo(query) {
return request({
url: '/quality/KNAInfo/list',
method: 'get',
params: query
})
}
// 查询定氮仪信息详细
export function getKNAInfo(id) {
return request({
url: '/quality/KNAInfo/' + id,
method: 'get'
})
}
// 新增定氮仪信息
export function addKNAInfo(data) {
return request({
url: '/quality/KNAInfo',
method: 'post',
data: data
})
}
// 修改定氮仪信息
export function updateKNAInfo(data) {
return request({
url: '/quality/KNAInfo',
method: 'put',
data: data
})
}
// 删除定氮仪信息
export function delKNAInfo(id) {
return request({
url: '/quality/KNAInfo/' + id,
method: 'delete'
})
}
// 导出定氮仪信息
export function exportKNAInfo(query) {
return request({
url: '/quality/KNAInfo/export',
method: 'post',
data: query,
responseType: 'blob'
})
}
// 查询未绑定的质检单列表
export function getUnboundInspections(inspectionType) {
return request({
url: '/quality/KNAInfo/unbound/' + inspectionType,
method: 'get'
})
}
// 绑定质检单
export function bindInspection(knaInfoId, data) {
return request({
url: '/quality/KNAInfo/bind/' + knaInfoId,
method: 'put',
data: data
})
}
// 解除绑定
export function unbindInspection(knaInfoId) {
return request({
url: '/quality/KNAInfo/unbind/' + knaInfoId,
method: 'put'
})
}
// 查询定氮仪配置列表
export function listKNAInfoConfig(query) {
return request({
url: '/quality/KNAInfo/config/list',
method: 'get',
params: query
})
}
// 查询定氮仪配置详细
export function getKNAInfoConfig(id) {
return request({
url: '/quality/KNAInfo/config/' + id,
method: 'get'
})
}
// 新增定氮仪配置
export function addKNAInfoConfig(data) {
return request({
url: '/quality/KNAInfo/config',
method: 'post',
data: data
})
}
// 修改定氮仪配置
export function updateKNAInfoConfig(data) {
return request({
url: '/quality/KNAInfo/config',
method: 'put',
data: data
})
}
// 删除定氮仪配置
export function delKNAInfoConfig(id) {
return request({
url: '/quality/KNAInfo/config/' + id,
method: 'delete'
})
}
// 根据配置类型查询配置列表
export function getKNAInfoConfigByType(configType) {
return request({
url: '/quality/KNAInfo/config/type/' + configType,
method: 'get'
})
}
// 查询启用的配置列表
export function getActiveKNAInfoConfigList() {
return request({
url: '/quality/KNAInfo/config/active',
method: 'get'
})
}

View File

@@ -0,0 +1,54 @@
import request from '@/utils/request'
// 查询质检分析列表
export function listQualityAnalysis(query) {
return request({
url: '/quality/analysis/list',
method: 'get',
params: query
})
}
// 获取产品列表(下拉用)
export function getMaterialList() {
return request({
url: '/quality/analysis/materialList',
method: 'get'
})
}
// 获取趋势数据
export function getTrendData(materialName, startDate, endDate) {
return request({
url: '/quality/analysis/trend',
method: 'get',
params: {
materialName: materialName,
startDate: startDate,
endDate: endDate
}
})
}
// AI分析
export function aiAnalysis(materialName, startDate, endDate) {
return request({
url: '/quality/analysis/aiAnalysis',
method: 'post',
data: {
materialName: materialName,
startDate: startDate,
endDate: endDate
}
})
}
// 导出质检分析
export function exportAnalysis(query) {
return request({
url: '/quality/analysis/export',
method: 'post',
params: query,
responseType: 'blob'
})
}

View File

@@ -0,0 +1,81 @@
import request from '@/utils/request'
// 查询最终产品质检单列表
export function listFinalQuality(query) {
return request({
url: '/quality/finalQuality/list',
method: 'get',
params: query
})
}
// 查询最终产品质检单详细
export function getFinalQuality(id) {
return request({
url: '/quality/finalQuality/' + id,
method: 'get'
})
}
// 新增最终产品质检单
export function addFinalQuality(data) {
return request({
url: '/quality/finalQuality',
method: 'post',
data: data
})
}
// 修改最终产品质检单
export function updateFinalQuality(data) {
return request({
url: '/quality/finalQuality',
method: 'put',
data: data
})
}
// 删除最终产品质检单
export function delFinalQuality(id) {
return request({
url: '/quality/finalQuality/' + id,
method: 'delete'
})
}
// 导出最终产品质检单
export function exportFinalQuality(query) {
return request({
url: '/quality/finalQuality/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 导出单条最终产品质检单
export function exportFinalQualityById(id) {
return request({
url: '/quality/finalQuality/export/' + id,
method: 'get',
responseType: 'blob'
})
}
// 获取表单配置
export function getFinalQualityConfig(productType) {
return request({
url: '/quality/finalQuality/config/' + productType,
method: 'get',
timeout: 20000
})
}
// 保存表单配置
export function saveFinalQualityConfig(data) {
return request({
url: '/quality/finalQuality/config',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,81 @@
import request from '@/utils/request'
// 查询外来品质检列表
export function listForeignQuality(query) {
return request({
url: '/quality/foreignQuality/list',
method: 'get',
params: query
})
}
// 查询外来品质检详细
export function getForeignQuality(id) {
return request({
url: '/quality/foreignQuality/' + id,
method: 'get'
})
}
// 新增外来品质检
export function addForeignQuality(data) {
return request({
url: '/quality/foreignQuality',
method: 'post',
data: data
})
}
// 修改外来品质检
export function updateForeignQuality(data) {
return request({
url: '/quality/foreignQuality',
method: 'put',
data: data
})
}
// 删除外来品质检
export function delForeignQuality(ids) {
return request({
url: '/quality/foreignQuality/' + ids,
method: 'delete'
})
}
// 导出外来品质检
export function exportForeignQuality(query) {
return request({
url: '/quality/foreignQuality/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 导出外来品质检详细信息
export function exportForeignQualityById(id) {
return request({
url: '/quality/foreignQuality/export/' + id,
method: 'get',
responseType: 'blob'
})
}
// 获取外来品质检表单配置
export function getForeignQualityConfig(id) {
return request({
url: '/quality/foreignQuality/config/' + (id || 'default'),
method: 'get',
timeout: 10000 // 增加超时时间
})
}
// 保存外来品质检表单配置
export function saveForeignQualityConfig(data) {
return request({
url: '/quality/foreignQuality/config',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,81 @@
import request from '@/utils/request'
// 查询中间产品质检单列表
export function listIntermediateQuality(query) {
return request({
url: '/quality/intermediateQuality/list',
method: 'get',
params: query
})
}
// 查询中间产品质检单详细
export function getIntermediateQuality(id) {
return request({
url: '/quality/intermediateQuality/' + id,
method: 'get'
})
}
// 新增中间产品质检单
export function addIntermediateQuality(data) {
return request({
url: '/quality/intermediateQuality',
method: 'post',
data: data
})
}
// 修改中间产品质检单
export function updateIntermediateQuality(data) {
return request({
url: '/quality/intermediateQuality',
method: 'put',
data: data
})
}
// 删除中间产品质检单
export function delIntermediateQuality(id) {
return request({
url: '/quality/intermediateQuality/' + id,
method: 'delete'
})
}
// 导出中间产品质检单
export function exportIntermediateQuality(query) {
return request({
url: '/quality/intermediateQuality/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 导出中间产品质检单详细信息
export function exportIntermediateQualityById(id) {
return request({
url: '/quality/intermediateQuality/export/' + id,
method: 'get',
responseType: 'blob'
})
}
// 获取表单配置
export function getConfig(productType) {
return request({
url: '/quality/intermediateQuality/config/' + productType,
method: 'get',
timeout: 20000
})
}
// 保存表单配置
export function saveConfig(data) {
return request({
url: '/quality/intermediateQuality/config',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,80 @@
import request from '@/utils/request'
// 查询原料质检列表
export function listMaterialQuality(query) {
return request({
url: '/quality/materialQuality/list',
method: 'get',
params: query
})
}
// 查询原料质检详细
export function getMaterialQuality(id) {
return request({
url: '/quality/materialQuality/' + id,
method: 'get'
})
}
// 新增原料质检
export function addMaterialQuality(data) {
return request({
url: '/quality/materialQuality/',
method: 'post',
data: data
})
}
// 修改原料质检
export function updateMaterialQuality(data) {
return request({
url: '/quality/materialQuality/',
method: 'put',
data: data
})
}
// 删除原料质检
export function delMaterialQuality(id) {
return request({
url: '/quality/materialQuality/' + id,
method: 'delete'
})
}
// 导出原料质检
export function exportMaterialQuality(query) {
return request({
url: '/quality/materialQuality/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 导出单个原料质检
export function exportMaterialQualityById(id) {
return request({
url: '/quality/materialQuality/export/' + id,
method: 'get',
responseType: 'blob'
})
}
// 获取表单配置
export function getMaterialQualityConfig(configId) {
return request({
url: '/quality/materialQuality/config/' + (configId || 'default'),
method: 'get'
})
}
// 保存表单配置
export function saveMaterialQualityConfig(data) {
return request({
url: '/quality/materialQuality/config',
method: 'post',
data: data
})
}

View File

@@ -0,0 +1,27 @@
import request from '@/utils/request'
// 查询质检事故列表
export function listQualityAccident(query) {
return request({
url: '/quality/accident/list',
method: 'get',
params: query
})
}
// 修改质检事故
export function updateQualityAccident(data) {
return request({
url: '/quality/accident',
method: 'put',
data: data
})
}
// 删除质检事故
export function delQualityAccident(id) {
return request({
url: '/quality/accident/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询质检等级列表
export function listQualityLevel(query) {
return request({
url: '/quality/qualityLevel/list',
method: 'get',
params: query
})
}
// 查询质检等级详细
export function getQualityLevel(id) {
return request({
url: '/quality/qualityLevel/' + id,
method: 'get'
})
}
// 新增质检等级
export function addQualityLevel(data) {
return request({
url: '/quality/qualityLevel',
method: 'post',
data: data
})
}
// 修改质检等级
export function updateQualityLevel(data) {
return request({
url: '/quality/qualityLevel',
method: 'put',
data: data
})
}
// 删除质检等级
export function delQualityLevel(id) {
return request({
url: '/quality/qualityLevel/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询质检标准列表
export function listReason(query) {
return request({
url: '/quality/reason/list',
method: 'get',
params: query
})
}
// 查询质检标准详细
export function getReason(id) {
return request({
url: '/quality/reason/' + id,
method: 'get'
})
}
// 新增质检标准
export function addReason(data) {
return request({
url: '/quality/reason',
method: 'post',
data: data
})
}
// 修改质检标准
export function updateReason(data) {
return request({
url: '/quality/reason',
method: 'put',
data: data
})
}
// 删除质检标准
export function delReason(id) {
return request({
url: '/quality/reason/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询报工质检单列表
export function listReportQuality(query) {
return request({
url: '/quality/reportQuality/list',
method: 'get',
params: query
})
}
// 查询报工质检单详细
export function getReportQuality(id) {
return request({
url: '/quality/reportQuality/' + id,
method: 'get'
})
}
// 新增报工质检单
export function addReportQuality(data) {
return request({
url: '/quality/reportQuality',
method: 'post',
data: data
})
}
// 修改报工质检单
export function updateReportQuality(data) {
return request({
url: '/quality/reportQuality',
method: 'put',
data: data
})
}
// 删除报工质检单
export function delReportQuality(id) {
return request({
url: '/quality/reportQuality/' + id,
method: 'delete'
})
}

View File

@@ -0,0 +1,62 @@
import request from '@/utils/request'
// 查询入库工序质检列表
export function listReportWarehousing(query) {
return request({
url: '/quality/reportWarehousing/list',
method: 'get',
params: query
})
}
// 查询入库工序质检详细
export function getReportWarehousing(id) {
return request({
url: '/quality/reportWarehousing/' + id,
method: 'get'
})
}
// 新增入库工序质检
export function addReportWarehousing(data) {
return request({
url: '/quality/reportWarehousing',
method: 'post',
data: data
})
}
// 修改入库工序质检
export function updateReportWarehousing(data) {
return request({
url: '/quality/reportWarehousing',
method: 'put',
data: data
})
}
// 删除入库工序质检
export function delReportWarehousing(id) {
return request({
url: '/quality/reportWarehousing/' + id,
method: 'delete'
})
}
// 导出入库工序质检
export function exportReportWarehousing(query) {
return request({
url: '/quality/reportWarehousing/export',
method: 'get',
params: query,
responseType: 'blob'
})
}
// 获取新的质检单号
export function getNewQcNo() {
return request({
url: '/quality/reportWarehousing/newQcNo',
method: 'get'
})
}

View File

@@ -0,0 +1,91 @@
import request from '@/utils/request'
// 查询销售订单列表
export function listSaleOrder(query) {
return request({
url: '/sale/saleOrder/list',
method: 'get',
params: query
})
}
// 查询销售订单子表列表
export function listEntryByIds(query) {
return request({
url: '/sale/saleOrder/listEntryByIds',
method: 'get',
params: query
})
}
// 查询销售订单详细
export function getSaleOrder(id) {
return request({
url: '/sale/saleOrder/' + id,
method: 'get'
})
}
// 新增销售订单
export function addSaleOrder(data) {
return request({
url: '/sale/saleOrder',
method: 'post',
data: data
})
}
// 修改销售订单
export function updateSaleOrder(data) {
return request({
url: '/sale/saleOrder',
method: 'put',
data: data
})
}
// 删除销售订单
export function delSaleOrder(id) {
return request({
url: '/sale/saleOrder/' + id,
method: 'delete'
})
}
// 修改订单明细状态
export function batchUpdateEntryStatus(params) {
return request({
url: '/sale/saleOrder/batchUpdateEntryStatus',
method: 'put',
params: params
})
}
// 下载销售订单导入模板
// cl在此一改
export function importTemplate() {
return request({
url: '/sale/saleOrder/importTemplate',
method: 'post',
responseType: 'blob'
})
}
// 导入销售订单数据
// cl在此一改
export function importData(data) {
return request({
url: '/sale/saleOrder/importData',
method: 'post',
data: data
})
}
// 检查并更新订单状态
export function checkAndUpdateStatus(entryIds) {
return request({
url: '/sale/saleOrder/checkAndUpdateStatus',
method: 'put',
data: entryIds
})
}

View File

@@ -0,0 +1,30 @@
import request from "@/utils/request";
// 根据生产订单id查询各道工序生产清空
export function queryProcessBySaleOrderEntryId(id) {
return request({
url: "/reports/production/queryProcessBySaleOrderEntryId",
method: "get",
params: id,
});
}
// 根据工序查询生产情况
export function queryProductionExecutionByProcess(processName) {
return request({
url: "/reports/production/queryProductionExecutionByProcess",
method: "get",
params: processName,
});
}
// 根据工序路线查询生产情况
export function queryProductionExecutionByRoute(routeId) {
return request({
url: "/reports/production/queryProductionExecutionByRoute",
method: "get",
params: { routeId },
});
}

View File

@@ -0,0 +1,46 @@
import request from '@/utils/request'
// 查询日报表
export function getDailyReport(query) {
return request({
url: '/statement/productionStatement/dailyReport',
method: 'get',
params: query
})
}
// 查询月报表
export function getMonthlyReport(query) {
return request({
url: '/statement/productionStatement/monthlyReport',
method: 'get',
params: query
})
}
// 查询产量统计
export function getOutputStatistics(query) {
return request({
url: '/statement/productionStatement/outputStatistics',
method: 'get',
params: query
})
}
// 查询合格率分析
export function getQualifiedRateAnalysis(query) {
return request({
url: '/statement/productionStatement/qualifiedRateAnalysis',
method: 'get',
params: query
})
}
// 查询工时统计
export function getWorkHourStatistics(query) {
return request({
url: '/statement/productionStatement/workHourStatistics',
method: 'get',
params: query
})
}

View File

@@ -0,0 +1,33 @@
import request from '@/utils/request'
/**
* 查询销售订单执行情况列表
*/
export function listSaleOrderExecution(query) {
return request({
url: '/reports/production/saleOrderExecution',
method: 'get',
params: query
})
}
/**
* 根据销售订单ID查询工单列表含工序
*/
export function listWorkOrdersBySaleOrder(saleOrderId) {
return request({
url: `/reports/production/saleOrderWorkOrders/${saleOrderId}`,
method: 'get'
})
}
/**
* 根据工单ID查询报工单列表
*/
export function listReportsByWorkOrder(workOrderId) {
return request({
url: `/reports/production/workOrderReports/${workOrderId}`,
method: 'get'
})
}

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