|
|
@@ -200,7 +200,7 @@
|
|
|
type="primary"
|
|
|
link
|
|
|
@click="handleReset(scope.row)"
|
|
|
- v-hasPermi="['gxt:repairOrder:finalize']"
|
|
|
+ v-hasPermi="['gxt:repairOrder:resetStart']"
|
|
|
><i class="fa fa-refresh"></i>复启</el-button>
|
|
|
<el-button
|
|
|
v-if="scope.row.workOrderStatus === 'to_approve'"
|
|
|
@@ -1370,7 +1370,7 @@ import {
|
|
|
completeWorkOrder,
|
|
|
getGxtOrder,
|
|
|
suspendWorkOrder,
|
|
|
- approveWorkOrder, shutdownOrder
|
|
|
+ approveWorkOrder, shutdownOrder, getOrderList
|
|
|
} from "@/api/gxt/gxtOrder"
|
|
|
import EquipmentSelectSingle from "@/components/equipmentSelect/single.vue"
|
|
|
import FinalizeDialog from "@/components/repairOrder/finalize.vue";
|
|
|
@@ -2756,14 +2756,143 @@ const finalizeFormData = ref({})
|
|
|
|
|
|
/** 结单操作 */
|
|
|
function handleRepairOrderFinalize(row) {
|
|
|
- getRepairOrder(row.id).then(response => {
|
|
|
- finalizeFormData.value = { ...response.data, selectedMembers: [] }
|
|
|
- debugger
|
|
|
- finalizeFormData.value.repairMethod = '1';
|
|
|
- finalizeFormData.value.infoEntry = '1'
|
|
|
- finalizeDialogVisible.value = true
|
|
|
- commonKey++
|
|
|
- })
|
|
|
+ // getRepairOrder(row.id).then(response => {
|
|
|
+ // finalizeFormData.value = { ...response.data, selectedMembers: [] }
|
|
|
+ // debugger
|
|
|
+ // finalizeFormData.value.repairMethod = '1';
|
|
|
+ // finalizeFormData.value.infoEntry = '1'
|
|
|
+ // finalizeDialogVisible.value = true
|
|
|
+ // commonKey++
|
|
|
+ // })
|
|
|
+ finalizeFormData.value = row
|
|
|
+ finalizeFormData.value.orderId = row.id
|
|
|
+ finalizeFormData.value.infoEntry = '1'
|
|
|
+ debugger
|
|
|
+ if (row.occurTime && row.restartTime) {
|
|
|
+ listAutoMisInfo({
|
|
|
+ pauseTime: row.occurTime,
|
|
|
+ restartTime: row.restartTime,
|
|
|
+ pcsDeviceName: row.pcsDeviceName,
|
|
|
+ pcsStationName: row.pcsStationName,
|
|
|
+ workOrderStatus: '结束'
|
|
|
+ }).then(response => {
|
|
|
+ const misInfo = response.rows
|
|
|
+ if (misInfo.length > 0 && misInfo.length == 1) {
|
|
|
+ // 有工作票号提示
|
|
|
+ if (misInfo[0].workPermitNum) {
|
|
|
+ // 查询MIS工单是否已存在
|
|
|
+ getOrderList(misInfo[0].misNo ).then(response => {
|
|
|
+ const gxtOrders = response.rows
|
|
|
+ if (gxtOrders.length == 0) {
|
|
|
+ finalizeFormData.value.misOrderNo = misInfo[0].misNo
|
|
|
+ finalizeFormData.value.realStartTime = misInfo[0].realStartTime
|
|
|
+ finalizeFormData.value.realEndTime = misInfo[0].realEndTime
|
|
|
+ finalizeFormData.value.workPermitNum = misInfo[0].workPermitNum
|
|
|
+ listWorkPerson({misNo: misInfo[0].misNo}).then(response => {
|
|
|
+ finalizeFormData.value.repairOrderPersonList = response.rows;
|
|
|
+ if (finalizeFormData.value.repairOrderPersonList) {
|
|
|
+ // 查询负责人信息并回填
|
|
|
+ for (const person of finalizeFormData.value.repairOrderPersonList) {
|
|
|
+ // 严格判断isLeader为1(兼容数字/字符串类型)
|
|
|
+ if (person.isLeader === 1 || person.isLeader === '1') {
|
|
|
+ finalizeFormData.value.teamLeaderName = person.nickName;
|
|
|
+ break; // 找到后立即停止循环
|
|
|
+ }
|
|
|
+ }
|
|
|
+ const nickNames = finalizeFormData.value.repairOrderPersonList
|
|
|
+ .filter(person => person.isLeader != 1)
|
|
|
+ .map(person => person.nickName)
|
|
|
+ .join(',');
|
|
|
+ finalizeFormData.value.workGroupMemberName = nickNames
|
|
|
+ finalizeFormData.value.repairOrderPersonList.map(person => {
|
|
|
+ // 构造查询参数:username 和 nickName
|
|
|
+ const queryParams = {
|
|
|
+ userName: person.userName, // 假设person对象有username字段
|
|
|
+ nickName: person.nickName // 假设person对象有nickName字段
|
|
|
+ };
|
|
|
+ listUserData(queryParams).then(response => {
|
|
|
+ debugger
|
|
|
+ if (!response.total) {
|
|
|
+ let msg = "已匹配到MIS工单,但工作班成员'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
|
|
|
+ if (person.isLeader == 1) {
|
|
|
+ msg = "已匹配到MIS工单,但工作负责人'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
|
|
|
+ }
|
|
|
+ ElMessageBox.confirm(msg, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ infoEntryDisabled.value = true
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ ElMessageBox.confirm('该MIS工单已被其他工单关联,请检查是否重复操作。', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ // finalizeFormData.value.infoEntry = '2'
|
|
|
+ infoEntryDisabled.value = true
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else { // 无工作票号提示
|
|
|
+ ElMessageBox.confirm('已匹配到MIS工单,但未关联工作票号,系统无法自动结单,请进入工作票录入方式。', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ // finalizeFormData.value.infoEntry = '2'
|
|
|
+ infoEntryDisabled.value = true
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (misInfo.length == 0) {
|
|
|
+ ElMessageBox.confirm('未找到匹配的MIS工单,请确认风机停复机时间是否已录入工效通系统或请进入工作票录入方式。', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ // finalizeFormData.value.infoEntry = '2'
|
|
|
+ infoEntryDisabled.value = true
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ } else if (misInfo.length > 1) {
|
|
|
+ ElMessageBox.confirm('已匹配到多个MIS工单,请手动结单,信息录入选择关联MIS。', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ // finalizeFormData.value.infoEntry = '2'
|
|
|
+ infoEntryDisabled.value = false
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } else {
|
|
|
+ // finishDialogVisible.value = true
|
|
|
+ ElMessageBox.confirm('未找到匹配的MIS工单,请确认风机停复机时间是否已录入工效通系统或请进入工作票录入方式。', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ debugger
|
|
|
+ // finalizeFormData.value.infoEntry = '2'
|
|
|
+ infoEntryDisabled.value = true
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ finalizeFormData.value.workPermitNum = null
|
|
|
+ finalizeFormData.value.misNo = null
|
|
|
+ }
|
|
|
+ finalizeDialogVisible.value = true
|
|
|
+ commonKey++
|
|
|
}
|
|
|
|
|
|
// 在提交结单成功后的回调函数
|
|
|
@@ -2805,40 +2934,6 @@ function handleReturnSuccess() {
|
|
|
|
|
|
/** 待结单状态:结单按钮 */
|
|
|
function handleFinish(row) {
|
|
|
- // getGxtOrder(row.id).then(response => {
|
|
|
- // finishForm.value = response.data
|
|
|
- // finishForm.value.orderId = row.id
|
|
|
- // if (finishForm.value.infoEntry != null && finishForm.value.infoEntry == '1') {
|
|
|
- // if (row.misNo != null) {
|
|
|
- // listMisInfo({misNo: row.misNo}).then(response => {
|
|
|
- // const misInfo = response.rows
|
|
|
- // debugger
|
|
|
- // if (misInfo.length > 0) {
|
|
|
- // finishForm.value.realStartTime = misInfo[0].realStartTime
|
|
|
- // finishForm.value.realEndTime = misInfo[0].realEndTime
|
|
|
- // }
|
|
|
- // })
|
|
|
- // }
|
|
|
- // listWorkPerson({misNo: row.misNo}).then(response => {
|
|
|
- // finishForm.value.workOrderPersonList = response.rows;
|
|
|
- // if (finishForm.value.workOrderPersonList) {
|
|
|
- // const nickNames = finishForm.value.workOrderPersonList
|
|
|
- // .map(person => person.nickName)
|
|
|
- // .join(',');
|
|
|
- // finishForm.value.workGroupMemberName = nickNames
|
|
|
- // finishDialogVisible.value = true
|
|
|
- // }
|
|
|
- // })
|
|
|
- // } else {
|
|
|
- // finishForm.value.realStartTime = null
|
|
|
- // finishForm.value.realEndTime = null
|
|
|
- // finishDialogVisible.value = true
|
|
|
- // }
|
|
|
- // // 打开对话框后重置表单验证错误
|
|
|
- // proxy.$nextTick(() => {
|
|
|
- // proxy.$refs["finishRef"]?.clearValidate()
|
|
|
- // })
|
|
|
- // })
|
|
|
finishForm.value = row
|
|
|
finishForm.value.orderId = row.id
|
|
|
finishForm.value.infoEntry = '1'
|
|
|
@@ -2852,7 +2947,6 @@ function handleFinish(row) {
|
|
|
}).then(response => {
|
|
|
const misInfo = response.rows
|
|
|
debugger
|
|
|
- // finishDialogVisible.value = true
|
|
|
if (misInfo.length > 0 && misInfo.length == 1) {
|
|
|
// 有工作票号提示
|
|
|
if (misInfo[0].workPermitNum) {
|
|
|
@@ -2875,14 +2969,38 @@ function handleFinish(row) {
|
|
|
}
|
|
|
}
|
|
|
const nickNames = finishForm.value.workOrderPersonList
|
|
|
+ .filter(person => person.isLeader != 1)
|
|
|
.map(person => person.nickName)
|
|
|
.join(',');
|
|
|
finishForm.value.workGroupMemberName = nickNames
|
|
|
- // finishDialogVisible.value = true
|
|
|
+ finishForm.value.workOrderPersonList.map(person => {
|
|
|
+ // 构造查询参数:username 和 nickName
|
|
|
+ const queryParams = {
|
|
|
+ userName: person.userName, // 假设person对象有username字段
|
|
|
+ nickName: person.nickName // 假设person对象有nickName字段
|
|
|
+ };
|
|
|
+ listUserData(queryParams).then(response => {
|
|
|
+ if (!response.total) {
|
|
|
+ let msg = "已匹配到MIS工单,但工作班成员'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
|
|
|
+ if (person.isLeader == 1) {
|
|
|
+ msg = "已匹配到MIS工单,但工作负责人'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
|
|
|
+ }
|
|
|
+ ElMessageBox.confirm(msg, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ // finishForm.value.infoEntry = '2'
|
|
|
+ infoEntryDisabled.value = true
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
- ElMessageBox.confirm('未找到匹配的MIS工单,请确认风机停复机时间是否已录入工效通系统或请进入工作票录入方式。', '提示', {
|
|
|
+ ElMessageBox.confirm('该MIS工单已被其他工单关联,请检查是否重复操作。', '提示', {
|
|
|
confirmButtonText: '确定',
|
|
|
showCancelButton: false,
|
|
|
type: 'warning'
|
|
|
@@ -2916,7 +3034,14 @@ function handleFinish(row) {
|
|
|
}).then(() => {
|
|
|
}).catch(() => {})
|
|
|
} else if (misInfo.length > 1) {
|
|
|
- infoEntryDisabled.value = false
|
|
|
+ ElMessageBox.confirm('已匹配到多个MIS工单,请手动结单,信息录入选择关联MIS。', '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ infoEntryDisabled.value = false
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
}
|
|
|
})
|
|
|
} else {
|
|
|
@@ -2958,12 +3083,45 @@ function handleBackfillingFinish(row) {
|
|
|
listWorkPerson({misNo: row.misNo}).then(response => {
|
|
|
finishForm.value.workOrderPersonList = response.rows;
|
|
|
if (finishForm.value.workOrderPersonList) {
|
|
|
+ // 查询负责人信息并回填
|
|
|
+ for (const person of finishForm.value.workOrderPersonList) {
|
|
|
+ // 严格判断isLeader为1(兼容数字/字符串类型)
|
|
|
+ if (person.isLeader === 1 || person.isLeader === '1') {
|
|
|
+ finishForm.value.teamLeaderName = person.nickName;
|
|
|
+ break; // 找到后立即停止循环
|
|
|
+ }
|
|
|
+ }
|
|
|
const nickNames = finishForm.value.workOrderPersonList
|
|
|
+ .filter(person => person.isLeader != 1)
|
|
|
.map(person => person.nickName)
|
|
|
.join(',');
|
|
|
finishForm.value.workGroupMemberName = nickNames
|
|
|
- backfillFinishDialogVisible.value = true
|
|
|
+ finishForm.value.workOrderPersonList.map(person => {
|
|
|
+ // 构造查询参数:username 和 nickName
|
|
|
+ const queryParams = {
|
|
|
+ userName: person.userName, // 假设person对象有username字段
|
|
|
+ nickName: person.nickName // 假设person对象有nickName字段
|
|
|
+ };
|
|
|
+ listUserData(queryParams).then(response => {
|
|
|
+ if (!response.total) {
|
|
|
+ let msg = "已匹配到MIS工单,但工作班成员'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
|
|
|
+ if (person.isLeader == 1) {
|
|
|
+ msg = "已匹配到MIS工单,但工作负责人'" + person.nickName + "'在系统中不存在,系统无法自动结单,请检查"
|
|
|
+ }
|
|
|
+ ElMessageBox.confirm(msg, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(function() {
|
|
|
+ // finishForm.value.infoEntry = '2'
|
|
|
+ infoEntryDisabled.value = true
|
|
|
+ }).then(() => {
|
|
|
+ }).catch(() => {})
|
|
|
+ }
|
|
|
+ });
|
|
|
+ })
|
|
|
}
|
|
|
+ backfillFinishDialogVisible.value = true
|
|
|
})
|
|
|
} else {
|
|
|
finishForm.value.realStartTime = null
|
|
|
@@ -2996,9 +3154,10 @@ function saveFinishWorkOrder() {
|
|
|
}
|
|
|
|
|
|
// 用于传递给结单组件的提交方法
|
|
|
-async function submitFinishFromParent(data) {
|
|
|
- finishForm.value = data
|
|
|
- await saveFinishWorkOrder()
|
|
|
+async function submitFinishFromParent(id, data) {
|
|
|
+ // finishForm.value = data
|
|
|
+ // await saveFinishWorkOrder()
|
|
|
+ await completeWorkOrder(id, data)
|
|
|
}
|
|
|
|
|
|
// 在提交结单成功后的回调函数
|