轧辊提交

This commit is contained in:
2026-04-29 14:04:12 +08:00
parent 01b6b810a6
commit 7e67bae35f
4 changed files with 34 additions and 34 deletions

View File

@@ -38,7 +38,8 @@ public class MillProcessRecipeController extends BaseController {
@PostMapping @PostMapping
public AjaxResult add(@RequestBody MillProcessRecipe recipe) { public AjaxResult add(@RequestBody MillProcessRecipe recipe) {
recipeService.save(recipe); recipeService.save(recipe);
return AjaxResult.success(recipe.getId()); return AjaxResult.success(recipe
.getRecipeId());
} }
@PutMapping @PutMapping

View File

@@ -1,23 +1,23 @@
import request from '@/utils/request' import request from '@/utils/request'
export function listPlan(query) { export function listPlan(query) {
return request({ url: '/mill/plan/list', method: 'get', params: query }) return request({ url: '/mill/production-plan/list', method: 'get', params: query })
} }
export function getPlan(id) { export function getPlan(id) {
return request({ url: `/mill/plan/${id}`, method: 'get' }) return request({ url: `/mill/production-plan/${id}`, method: 'get' })
} }
export function addPlan(data) { export function addPlan(data) {
return request({ url: '/mill/plan', method: 'post', data }) return request({ url: '/mill/production-plan', method: 'post', data })
} }
export function updatePlan(data) { export function updatePlan(data) {
return request({ url: '/mill/plan', method: 'put', data }) return request({ url: '/mill/production-plan', method: 'put', data })
} }
export function delPlan(id) { export function delPlan(id) {
return request({ url: `/mill/plan/${id}`, method: 'delete' }) return request({ url: `/mill/production-plan/${id}`, method: 'delete' })
} }
export function moveUpPlan(id) { export function moveUpPlan(id) {
return request({ url: `/mill/plan/moveUp/${id}`, method: 'put' }) return request({ url: `/mill/production-plan/moveUp/${id}`, method: 'put' })
} }
export function moveDownPlan(id) { export function moveDownPlan(id) {
return request({ url: `/mill/plan/moveDown/${id}`, method: 'put' }) return request({ url: `/mill/production-plan/moveDown/${id}`, method: 'put' })
} }

View File

@@ -73,8 +73,8 @@ export default {
title: process.env.VUE_APP_TITLE, title: process.env.VUE_APP_TITLE,
codeUrl: "", codeUrl: "",
loginForm: { loginForm: {
username: "tony", username: "admin",
password: "123456", password: "admin123",
rememberMe: false, rememberMe: false,
code: "", code: "",
uuid: "" uuid: ""

View File

@@ -219,8 +219,8 @@
<el-select v-model="form.recipeId" filterable clearable <el-select v-model="form.recipeId" filterable clearable
placeholder="可选,也可在新增后在下方绑定" placeholder="可选,也可在新增后在下方绑定"
style="width:100%" @change="onRecipeChange"> style="width:100%" @change="onRecipeChange">
<el-option v-for="r in recipeOptions" :key="r.id" <el-option v-for="r in recipeOptions" :key="r.recipeId"
:label="`${r.recipeNo}${r.alloyNo}`" :value="r.id" /> :label="`${r.recipeNo}${r.alloyNo}`" :value="r.recipeId" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
@@ -279,9 +279,9 @@
<el-form-item label="工艺方案"> <el-form-item label="工艺方案">
<el-select v-model="selectRecipeId" filterable clearable <el-select v-model="selectRecipeId" filterable clearable
placeholder="输入方案号或合金号搜索" style="width:100%"> placeholder="输入方案号或合金号搜索" style="width:100%">
<el-option v-for="r in recipeOptions" :key="r.id" <el-option v-for="r in recipeOptions" :key="r.recipeId"
:label="`${r.recipeNo}${r.alloyNo}${r.inThick}→${r.outThick}mm`" :label="`${r.recipeNo}${r.alloyNo}${r.inThick}→${r.outThick}mm`"
:value="r.id" /> :value="r.recipeId" />
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
@@ -322,7 +322,7 @@ import { listPlan, addPlan, updatePlan, delPlan, moveUpPlan, moveDownPlan } from
import { listAllRecipe, getRecipeDetail, addRecipe } from '@/api/mill/recipe' import { listAllRecipe, getRecipeDetail, addRecipe } from '@/api/mill/recipe'
const emptyForm = () => ({ const emptyForm = () => ({
id: null, inMatNo: '', alloyNo: '', recipeId: null, recipeNo: '', planId: null, planNo: '', inMatNo: '', alloyNo: '', recipeId: null, recipeNo: '',
outThick: '', inMatThick: '', inMatWidth: '', inMatLength: '', outThick: '', inMatThick: '', inMatWidth: '', inMatLength: '',
inMatWeight: '', inMatOd: '', inMatId: '', passCount: 0, remark: '' inMatWeight: '', inMatOd: '', inMatId: '', passCount: 0, remark: ''
}) })
@@ -375,11 +375,11 @@ export default {
}, },
computed: { computed: {
planDialogTitle() { return this.isNew ? '新增钢卷' : '修改钢卷' }, planDialogTitle() { return this.isNew ? '新增钢卷' : '修改钢卷' },
currentCoil() { return this.planList.find(p => p.prodStatus === '1') || {} }, currentCoil() { return this.planList.find(p => p.prodStatus === 'Rolling') || {} },
nextCoil() { nextCoil() {
const idx = this.planList.findIndex(p => p.prodStatus === '1') const idx = this.planList.findIndex(p => p.prodStatus === 'Rolling')
if (idx >= 0 && idx + 1 < this.planList.length) return this.planList[idx + 1] if (idx >= 0 && idx + 1 < this.planList.length) return this.planList[idx + 1]
return this.planList.find(p => p.prodStatus === '0') || {} return this.planList.find(p => p.prodStatus === 'Idle') || {}
} }
}, },
mounted() { mounted() {
@@ -392,10 +392,10 @@ export default {
}, },
loadList() { loadList() {
const params = { inMatNo: this.query.inMatNo } const params = { inMatNo: this.query.inMatNo }
if (this.query.hideFinished) params.hideProdStatus = '2' if (this.query.hideFinished) params.planStatus = '0'
if (this.query.dateRange && this.query.dateRange.length === 2) { if (this.query.dateRange && this.query.dateRange.length === 2) {
params.beginDate = this.query.dateRange[0] params.beginTime = this.query.dateRange[0]
params.endDate = this.query.dateRange[1] params.endTime = this.query.dateRange[1]
} }
listPlan(params).then(res => { this.planList = res.data || [] }) listPlan(params).then(res => { this.planList = res.data || [] })
}, },
@@ -455,7 +455,7 @@ export default {
return return
} }
// 创建隐藏方案recipeNo 以 __ 开头表示私有,不展示在下拉列表中) // 创建隐藏方案recipeNo 以 __ 开头表示私有,不展示在下拉列表中)
const autoNo = `__${this.selectedPlan.inMatNo || this.selectedPlan.id}` const autoNo = `__${this.selectedPlan.inMatNo || this.selectedPlan.planId}`
const payload = { const payload = {
recipeNo: autoNo, recipeNo: autoNo,
alloyNo: this.selectedPlan.alloyNo || '-', alloyNo: this.selectedPlan.alloyNo || '-',
@@ -502,7 +502,6 @@ export default {
_doSaveRecipeAndBindPlan(recipePayload) { _doSaveRecipeAndBindPlan(recipePayload) {
return addRecipe(recipePayload).then(res => { return addRecipe(recipePayload).then(res => {
const newId = res.data // controller 返回新 ID const newId = res.data // controller 返回新 ID
const recipeNo = recipePayload.recipeNo.startsWith('__') ? '' : recipePayload.recipeNo
return updatePlan({ return updatePlan({
...this.selectedPlan, ...this.selectedPlan,
recipeId: newId, recipeId: newId,
@@ -516,7 +515,7 @@ export default {
this.loadList() this.loadList()
// 刷新已选行数据 // 刷新已选行数据
return listPlan({ inMatNo: this.selectedPlan.inMatNo }).then(res => { return listPlan({ inMatNo: this.selectedPlan.inMatNo }).then(res => {
const updated = (res.data || []).find(p => p.id === this.selectedPlan.id) const updated = (res.data || []).find(p => p.planId === this.selectedPlan.planId)
if (updated) { if (updated) {
this.selectedPlan = updated this.selectedPlan = updated
getRecipeDetail(updated.recipeId).then(r => { getRecipeDetail(updated.recipeId).then(r => {
@@ -537,7 +536,7 @@ export default {
this.$message.warning('请选择一个方案') this.$message.warning('请选择一个方案')
return return
} }
const r = this.recipeOptions.find(x => x.id === this.selectRecipeId) const r = this.recipeOptions.find(x => x.recipeId === this.selectRecipeId)
updatePlan({ updatePlan({
...this.selectedPlan, ...this.selectedPlan,
recipeId: this.selectRecipeId, recipeId: this.selectRecipeId,
@@ -569,7 +568,7 @@ export default {
this.$refs.formRef.validate(valid => { this.$refs.formRef.validate(valid => {
if (!valid) return if (!valid) return
if (this.form.recipeId) { if (this.form.recipeId) {
const r = this.recipeOptions.find(x => x.id === this.form.recipeId) const r = this.recipeOptions.find(x => x.recipeId === this.form.recipeId)
if (r) { this.form.recipeNo = r.recipeNo; this.form.passCount = r.passCount } if (r) { this.form.recipeNo = r.recipeNo; this.form.passCount = r.passCount }
} }
const api = this.isNew ? addPlan : updatePlan const api = this.isNew ? addPlan : updatePlan
@@ -582,7 +581,7 @@ export default {
}, },
handleDelete() { handleDelete() {
this.$confirm(`确定删除钢卷「${this.selectedPlan.inMatNo}」?`, '提示', { type: 'warning' }).then(() => { this.$confirm(`确定删除钢卷「${this.selectedPlan.inMatNo}」?`, '提示', { type: 'warning' }).then(() => {
delPlan(this.selectedPlan.id).then(() => { delPlan(this.selectedPlan.planId).then(() => {
this.$message.success('删除成功') this.$message.success('删除成功')
this.selectedPlan = null this.selectedPlan = null
this.passList = [] this.passList = []
@@ -591,11 +590,11 @@ export default {
}) })
}) })
}, },
handleMoveUp() { moveUpPlan(this.selectedPlan.id).then(() => this.loadList()) }, handleMoveUp() { moveUpPlan(this.selectedPlan.planId).then(() => this.loadList()) },
handleMoveDown() { moveDownPlan(this.selectedPlan.id).then(() => this.loadList()) }, handleMoveDown() { moveDownPlan(this.selectedPlan.planId).then(() => this.loadList()) },
onRecipeChange(recipeId) { onRecipeChange(recipeId) {
if (!recipeId) return if (!recipeId) return
const r = this.recipeOptions.find(x => x.id === recipeId) const r = this.recipeOptions.find(x => x.recipeId === recipeId)
if (r) { if (r) {
if (!this.form.alloyNo) this.form.alloyNo = r.alloyNo if (!this.form.alloyNo) this.form.alloyNo = r.alloyNo
if (!this.form.inMatThick) this.form.inMatThick = r.inThick if (!this.form.inMatThick) this.form.inMatThick = r.inThick
@@ -605,13 +604,13 @@ export default {
}, },
queueRowClass({ row }) { queueRowClass({ row }) {
if (row.prodStatus === '1') return 'row-rolling' if (row.prodStatus === 'Rolling') return 'row-rolling'
if (row.prodStatus === '0' && this.currentCoil.sortNo && row.sortNo === this.currentCoil.sortNo + 1) return 'row-next' if (row.prodStatus === 'Idle' && this.currentCoil.sortNo && row.sortNo === this.currentCoil.sortNo + 1) return 'row-next'
return '' return ''
}, },
passRowClass({ rowIndex }) { return rowIndex % 2 === 0 ? '' : 'alt-row' }, passRowClass({ rowIndex }) { return rowIndex % 2 === 0 ? '' : 'alt-row' },
prodStatusLabel(s) { return { '0': '待轧', '1': '轧制中', '2': '已完成', '9': '异常' }[s] || s }, prodStatusLabel(s) { return { Idle: '待轧', Rolling: '轧制中', NextCoil: '下一卷', Done: '已完成', Error: '异常' }[s] || s },
prodStatusClass(s) { return { '0': 'status-wait', '1': 'status-rolling', '2': 'status-done', '9': 'status-err' }[s] || '' } prodStatusClass(s) { return { Idle: 'status-wait', Rolling: 'status-rolling', NextCoil: 'status-next', Done: 'status-done', Error: 'status-err' }[s] || '' }
} }
} }
</script> </script>