yangfeng
2024-02-06 7edf66cafb871c5fb28911dfb02611ef5c9910b2
src/views/dashboard/components/TaskControl.vue
@@ -59,7 +59,7 @@
import { useDateFormat } from '@vueuse/core'
import TaskControlModal from '@/views/dashboard/components/TaskControlModal.vue'
import { CircleCloseFilled } from '@element-plus/icons-vue'
import { apiReportWork, finishTask } from '@/api'
import { apiReportWork, procedureUpdate } from '@/api'
import { ElMessage } from 'element-plus'
import ReportProductionModal from '@/views/dashboard/components/ReportProductionModal.vue'
import { usePLCStore } from '@/stores/plc'
@@ -89,7 +89,25 @@
 */
function finishTaskProduce() {
  if (task?.value && task.value?.Procedure?.ID) {
    finishTask({ id: task!.value.Procedure.ID }).then(
    //点击的时候不能比实际开始时间大于1分钟
    let realStartTime = task.value?.Procedure?.realStartTime
    if (realStartTime) {
      realStartTime = realStartTime * 1000
      let time = Date.now()
      let differ = Math.abs(time - realStartTime) / 1000
      if (differ < 60) {
        ElMessage({
          message: '工序制造时间太短,请检查!',
          type: 'warning'
        })
        return true
      }
    }
    procedureUpdate({
      isFinish: true,
      isProcessing: false,
      workOrderProcedureID: Number(task!.value.Procedure.ID)
    }).then(
      (res) => {
        ElMessage({
          message: '操作成功!',
@@ -134,7 +152,35 @@
// 报工
const showReportModal = ref(false)
function openReportModal() {
  showReportModal.value = true
  // 有人员才可以报工
  if (!workers.value || workers.value.length == 0) {
    ElMessage({
      message: '没有人员信息不允许手动报工!',
      type: 'error',
      duration: 3000
    })
    return true
  }
  // 从开始生产到报工的点击时间不能小于1分钟
  if (task?.value && task.value?.Procedure?.realStartTime) {
    let realStartTime = task.value?.Procedure?.realStartTime
    if (realStartTime) {
      realStartTime = realStartTime * 1000
      let time = Date.now()
      let differ = Math.abs(time - realStartTime) / 1000
      if (differ < 60) {
        ElMessage({
          message: '工序制造时间太短,请检查!',
          type: 'warning'
        })
        return true
      }
    }
  }
  if (workers.value[0].workerId) {
    showReportModal.value = true
  }
}
/**
@@ -145,30 +191,34 @@
  if (!task?.value) {
    return
  }
  apiReportWork({
    procedureId: task.value?.Procedure.ID,
    reportAmount: amount,
    workerID: workers.value[0].workerId
  })
    .then((res) => {
      if (res.code === 200) {
        ElMessage({
          message: '报工成功',
          type: 'success',
          duration: 2000
        })
        showReportModal.value = false
      } else {
        ElMessage({
          message: '报工失败',
          type: 'error',
          duration: 3000
        })
      }
  // 有人员才可以报工
  if (workers.value[0].workerId) {
    apiReportWork({
      workOrderProcedureID: Number(task.value?.Procedure.ID),
      reportAmount: amount,
      workerID: workers.value[0].workerId,
      workerName: workers.value[0].workerName
    })
    .catch((err) => {
      console.error(err)
    })
      .then((res) => {
        if (res.code === 200) {
          ElMessage({
            message: '报工成功',
            type: 'success',
            duration: 2000
          })
          showReportModal.value = false
        } else {
          ElMessage({
            message: '报工失败',
            type: 'error',
            duration: 3000
          })
        }
      })
      .catch((err) => {
        console.error(err)
      })
  }
}
</script>
<style scoped lang="scss">