feat(mes): 添加定时同步可生产数量到WMS及BOM项相关标准字段

- 在main.go中添加定时任务每10分钟同步可生产数量到WMS系统
- 为BomItem实体添加relatedStandard字段及相关CRUD方法
- 为InspectionRecord实体添加reportNo、materialCode、materialName等字段
- 更新ent schema确保新字段的验证和默认值设置
- 添加必要的数据库迁移和字段映射逻辑
This commit is contained in:
SunYF
2026-09-17 12:49:07 +08:00
parent b4b274301d
commit 1cc93795ce
191 changed files with 24504 additions and 1250 deletions
@@ -33,16 +33,22 @@
</transition>
<el-tabs v-model="tab" type="border-card" class="main-tabs">
<el-tab-pane label="作业" name="work">
<el-tab-pane v-if="isOnline" label="上线建档" name="online">
<OnlinePanel />
</el-tab-pane>
<el-tab-pane v-if="isOffline" label="下线完工" name="offline">
<OfflinePanel />
</el-tab-pane>
<el-tab-pane v-if="!isVirtual" label="作业" name="work">
<WorkPanel ref="workRef" />
</el-tab-pane>
<el-tab-pane label="物料 / 叫料" name="material">
<MaterialPanel />
</el-tab-pane>
<el-tab-pane label="移料" name="move">
<el-tab-pane v-if="!isVirtual" label="移料" name="move">
<MovePanel />
</el-tab-pane>
<el-tab-pane label="工艺文件" name="pdf">
<el-tab-pane v-if="!isVirtual" label="工艺文件" name="pdf">
<PdfPanel />
</el-tab-pane>
<el-tab-pane label="巡检 / 异常" name="inspect">
@@ -51,6 +57,9 @@
</el-tabs>
<WorkloadDialog ref="wlRef" />
<!-- 全局帮助:右下角悬浮「?」,内容随当前页签切换 -->
<PageHelp :data="helpData" />
</div>
</template>
@@ -63,7 +72,19 @@ import MaterialPanel from './panels/MaterialPanel.vue'
import MovePanel from './panels/MovePanel.vue'
import PdfPanel from './panels/PdfPanel.vue'
import InspectPanel from './panels/InspectPanel.vue'
import OnlinePanel from './panels/OnlinePanel.vue'
import OfflinePanel from './panels/OfflinePanel.vue'
import WorkloadDialog from './panels/WorkloadDialog.vue'
import PageHelp from '../components/PageHelp.vue'
import {
helpInspect,
helpMaterial,
helpMove,
helpOffline,
helpOnline,
helpPdf,
helpWorkstation
} from '../help'
import { stationLogout, syncFlush } from '../api'
import { clearAuth } from '../utils/request'
import {
@@ -74,6 +95,7 @@ import {
loadStats,
loadTight,
loadTask,
loadWip,
orderNo,
pendingTotal,
refreshAll,
@@ -89,6 +111,22 @@ const workRef = ref()
const wlRef = ref()
const clock = ref('')
const stationName = computed(() => state.task?.stationName || '')
// 0=上线位、13=下线位为虚拟工位,分别展示上线建档 / 下线完工面板
const isOnline = computed(() => Number(stationNo.value) === 0)
const isOffline = computed(() => Number(stationNo.value) === 13)
const isVirtual = computed(() => isOnline.value || isOffline.value)
// 帮助内容随当前页签切换(全局唯一一个 PageHelp 悬浮按钮)
const HELP_MAP = {
online: helpOnline,
offline: helpOffline,
work: helpWorkstation,
material: helpMaterial,
move: helpMove,
pdf: helpPdf,
inspect: helpInspect
}
const helpData = computed(() => HELP_MAP[tab.value] || helpWorkstation)
let timerTask = null
let timerTight = null
@@ -118,6 +156,10 @@ function logout() {
onMounted(async () => {
tickClock()
await loadConfig()
// 虚拟工位默认落到对应面板;物理工位默认作业页
if (isOnline.value) tab.value = 'online'
else if (isOffline.value) tab.value = 'offline'
else tab.value = 'work'
refreshAll()
loadMoves()
workRef.value?.focusScan?.()
@@ -129,6 +171,7 @@ onMounted(async () => {
tickClock()
loadPoints() // 点位台账 10 秒
loadMoves()
loadWip() // 在制品 10 秒
}, 10000)
})