✨ feat(mes): 新增生产工单编码及状态管理功能
新增生产工单编码规则和状态管理逻辑,优化工单创建和更新流程。 同时,更新前端表单以支持新的工单状态和来源单据字段,提升用户体验。pull/871/MERGE
parent
469363c046
commit
b2d86b12d6
|
|
@ -79,7 +79,7 @@
|
||||||
<el-form-item label="工单数量" prop="quantity">
|
<el-form-item label="工单数量" prop="quantity">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="formData.quantity"
|
v-model="formData.quantity"
|
||||||
:min="0"
|
:min="1"
|
||||||
:precision="2"
|
:precision="2"
|
||||||
class="!w-1/1"
|
class="!w-1/1"
|
||||||
:disabled="isDetail"
|
:disabled="isDetail"
|
||||||
|
|
@ -169,13 +169,17 @@
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||||
import { ProWorkOrderApi, ProWorkOrderVO } from '@/api/mes/pro/workorder'
|
import { ProWorkOrderApi, ProWorkOrderVO } from '@/api/mes/pro/workorder'
|
||||||
import { generateRandomStr } from '@/utils'
|
import { AutoCodeRecordApi } from '@/api/mes/md/autocode/record'
|
||||||
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
|
import MdItemSelect from '@/views/mes/md/item/components/MdItemSelect.vue'
|
||||||
import MdClientSelect from '@/views/mes/md/client/components/MdClientSelect.vue'
|
import MdClientSelect from '@/views/mes/md/client/components/MdClientSelect.vue'
|
||||||
import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue'
|
import MdVendorSelect from '@/views/mes/md/vendor/components/MdVendorSelect.vue'
|
||||||
import WorkOrderBomList from './WorkOrderBomList.vue'
|
import WorkOrderBomList from './WorkOrderBomList.vue'
|
||||||
import WorkOrderItemList from './WorkOrderItemList.vue'
|
import WorkOrderItemList from './WorkOrderItemList.vue'
|
||||||
import { MesProWorkOrderSourceTypeEnum, MesProWorkOrderTypeEnum } from '@/views/mes/utils/constants'
|
import {
|
||||||
|
MesProWorkOrderSourceTypeEnum,
|
||||||
|
MesProWorkOrderTypeEnum,
|
||||||
|
MesAutoCodeRuleCode
|
||||||
|
} from '@/views/mes/utils/constants'
|
||||||
|
|
||||||
defineOptions({ name: 'WorkOrderForm' })
|
defineOptions({ name: 'WorkOrderForm' })
|
||||||
|
|
||||||
|
|
@ -219,13 +223,16 @@ const formRef = ref() // 表单 Ref
|
||||||
const isDetail = computed(() => formType.value === 'detail')
|
const isDetail = computed(() => formType.value === 'detail')
|
||||||
|
|
||||||
/** 生成工单编码 */
|
/** 生成工单编码 */
|
||||||
const generateCode = () => {
|
const generateCode = async () => {
|
||||||
formData.value.code = 'MO' + generateRandomStr(10)
|
formData.value.code = await AutoCodeRecordApi.generateAutoCode(
|
||||||
|
MesAutoCodeRuleCode.PRO_WORK_ORDER_CODE
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 打开弹窗 */
|
/** 打开弹窗 */
|
||||||
const open = async (type: string, id?: number, parentRow?: any) => {
|
const open = async (type: string, id?: number, parentRow?: any) => {
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
|
// todo @AI:有什么办法,计算 compute 计算么?结果 formData.parentid + type?
|
||||||
dialogTitle.value = parentRow
|
dialogTitle.value = parentRow
|
||||||
? '新增子工单'
|
? '新增子工单'
|
||||||
: type === 'detail'
|
: type === 'detail'
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,15 @@
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="来源单据" prop="orderSourceCode">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.orderSourceCode"
|
||||||
|
placeholder="请输入来源单据编号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter="handleQuery"
|
||||||
|
class="!w-240px"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="产品" prop="productId">
|
<el-form-item label="产品" prop="productId">
|
||||||
<MdItemSelect v-model="queryParams.productId" placeholder="请选择产品" class="!w-240px" />
|
<MdItemSelect v-model="queryParams.productId" placeholder="请选择产品" class="!w-240px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
@ -48,7 +57,22 @@
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- TODO @AI:前后端筛选,去掉 status 状态; -->
|
||||||
|
<el-form-item label="工单状态" prop="status">
|
||||||
|
<el-select
|
||||||
|
v-model="queryParams.status"
|
||||||
|
placeholder="请选择工单状态"
|
||||||
|
clearable
|
||||||
|
class="!w-240px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="dict in getIntDictOptions(DICT_TYPE.MES_PRO_WORK_ORDER_STATUS)"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="需求日期" prop="requestDate">
|
<el-form-item label="需求日期" prop="requestDate">
|
||||||
<el-date-picker
|
<el-date-picker
|
||||||
v-model="queryParams.requestDate"
|
v-model="queryParams.requestDate"
|
||||||
|
|
@ -125,8 +149,6 @@
|
||||||
<el-table-column label="已生产数量" align="center" prop="quantityProduced" width="100" />
|
<el-table-column label="已生产数量" align="center" prop="quantityProduced" width="100" />
|
||||||
<el-table-column label="客户编码" align="center" prop="clientCode" width="120" />
|
<el-table-column label="客户编码" align="center" prop="clientCode" width="120" />
|
||||||
<el-table-column label="客户名称" align="center" prop="clientName" width="120" />
|
<el-table-column label="客户名称" align="center" prop="clientName" width="120" />
|
||||||
<el-table-column label="供应商编码" align="center" prop="vendorCode" width="120" />
|
|
||||||
<el-table-column label="批次号" align="center" prop="batchCode" width="120" />
|
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="需求日期"
|
label="需求日期"
|
||||||
align="center"
|
align="center"
|
||||||
|
|
@ -267,6 +289,8 @@ const queryParams = reactive({
|
||||||
productId: undefined,
|
productId: undefined,
|
||||||
clientId: undefined,
|
clientId: undefined,
|
||||||
type: undefined,
|
type: undefined,
|
||||||
|
status: undefined,
|
||||||
|
orderSourceCode: undefined,
|
||||||
requestDate: undefined
|
requestDate: undefined
|
||||||
})
|
})
|
||||||
const queryFormRef = ref() // 搜索的表单
|
const queryFormRef = ref() // 搜索的表单
|
||||||
|
|
|
||||||
|
|
@ -453,7 +453,8 @@ export const MesAutoCodeRuleCode = {
|
||||||
DV_MACHINERY_TYPE_CODE: 'DV_MACHINERY_TYPE_CODE', // 设备类型编码
|
DV_MACHINERY_TYPE_CODE: 'DV_MACHINERY_TYPE_CODE', // 设备类型编码
|
||||||
DV_CHECK_PLAN_CODE: 'DV_CHECK_PLAN_CODE', // 点检保养方案编码
|
DV_CHECK_PLAN_CODE: 'DV_CHECK_PLAN_CODE', // 点检保养方案编码
|
||||||
DV_SUBJECT_CODE: 'DV_SUBJECT_CODE', // 点检保养项目编码
|
DV_SUBJECT_CODE: 'DV_SUBJECT_CODE', // 点检保养项目编码
|
||||||
DV_REPAIR_CODE: 'DV_REPAIR_CODE' // 维修单编码
|
DV_REPAIR_CODE: 'DV_REPAIR_CODE', // 维修单编码
|
||||||
|
PRO_WORK_ORDER_CODE: 'PRO_WORK_ORDER_CODE' // 生产工单编码
|
||||||
} as const
|
} as const
|
||||||
|
|
||||||
/** 获取物料/产品标识的标签 */
|
/** 获取物料/产品标识的标签 */
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue