快乐的昕的电脑
13 小时以前 45157062cf1ca1a84e343caada2e12795c59ab7a
components/mold.vue
@@ -867,6 +867,9 @@
                    // 刷新数据
                    await this.fetchFormData();
                    await this.fetchDefaultToolFromWorkOrder();
                    // 新增:自动处理调机送检界面的按钮逻辑
                    await this.autoHandleMachineInspection();
                } catch (err) {
                    console.error('调机报工错误:', err);
                    this.$showMessage('调机报工失败,请检查网络');
@@ -875,6 +878,93 @@
                }
            },
            
            // 新增:自动处理调机送检界面的按钮逻辑
            async autoHandleMachineInspection() {
                try {
                    // 1. 使用 FindByOrderNo 获取调机送检界面的三个时间
                    const statusRes = await this.$post({
                        url: '/MesOrderSta/FindByOrderNo',
                        data: {
                            orderId: this.orderId,
                            orderNo: this.workOrderNo
                        }
                    });
                    if (!statusRes || !statusRes.data || !statusRes.data.tbBillList) {
                        console.error('获取工单状态失败');
                        this.$showMessage('获取工单状态失败');
                        return;
                    }
                    const statusForm = statusRes.data.tbBillList;
                    const maStartTime = statusForm.maStartTime;
                    const maShoutTime = statusForm.maShoutTime;
                    const maEndTime = statusForm.maEndTime;
                    // 2. 准备需要更新的时间数据
                    let needSave = false;
                    let updateData = {
                        id: statusForm.id,
                        orderId: this.orderId,
                        machineNo: this.machineNo,
                        flag: -1
                    };
                    // 记录哪些操作被执行了
                    let actions = [];
                    // 3. 从上到下根据显示框里是否有时间依次设置
                    // 如果调机开始时间为空,设置调机开始时间
                    if (!maStartTime) {
                        updateData.maStartTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
                        updateData.flag = -1; // 调机开始的flag=-1
                        needSave = true;
                        actions.push('调机开始');
                    } else {
                        updateData.maStartTime = maStartTime;
                    }
                    // 如果送检呼叫时间为空,设置送检呼叫时间
                    if (!maShoutTime) {
                        updateData.maShoutTime = this.$getDate('yyyy-mm-dd hh24:mi:ss');
                        updateData.flag = 1; // 首次送检呼叫的flag=1
                        needSave = true;
                        actions.push('送检呼叫');
                    } else {
                        updateData.maShoutTime = maShoutTime;
                    }
                    // 调机完成时间保持不变
                    updateData.maEndTime = maEndTime || '';
                    // 4. 如果有需要更新的时间,调用保存接口
                    if (needSave) {
                        const saveRes = await this.$post({
                            url: '/MesOrderSta/ChangeMachineTime',
                            data: updateData
                        });
                        if (saveRes && saveRes.data && saveRes.data.tbBillList) {
                            const successMsg = actions.join('、') + '成功';
                            this.$showMessage(successMsg);
                            console.log('调机送检界面时间自动更新成功:', actions);
                        } else {
                            const failMsg = actions.join('、') + '失败';
                            this.$showMessage(failMsg);
                            console.error('调机送检界面时间自动更新失败');
                        }
                    } else {
                        // 所有时间都已存在,无需更新
                        this.$showMessage('调机开始和送检呼叫已完成');
                        console.log('调机开始和送检呼叫时间已存在,无需更新');
                    }
                } catch (err) {
                    console.error('自动处理调机送检界面失败:', err);
                    this.$showMessage('自动处理调机送检失败');
                    // 不中断主流程,只记录错误
                }
            },
            // 新增:获取调机师傅列表
            async fetchTiaojiStaff() {
                try {