loulijun2021
2022-12-31 b012ab3a1e5495be068c543eb8f0482124db13b5
src/views/scgl/zdpc.vue
@@ -71,6 +71,7 @@
          />
          <el-table-column
            prop="AdvaSchePiroQue"
            show-tooltip-when-overflow
            label="优先级"
            width="90"
            sortable="custom"
@@ -112,6 +113,7 @@
            prop="AdvaSchePartSpec"
            label="产品规格"
            width="110"
            show-tooltip-when-overflow
            sortable="custom"
          >
            <template slot-scope="{row}">
@@ -122,6 +124,7 @@
          <el-table-column
            prop="AdvaScheQty"
            label="数量"
            show-tooltip-when-overflow
            width="110"
            sortable="custom"
          />
@@ -129,11 +132,13 @@
            prop="AdvaScheEndDate"
            label="要求交付时间"
            sortable="custom"
            show-tooltip-when-overflow
            width="160"
          />
          <el-table-column
            prop="AdvaScheStus"
            label="排程状态"
            show-tooltip-when-overflow
            width="110"
            sortable="custom"
          >
@@ -145,6 +150,7 @@
          <el-table-column
            prop="AdvaScheBotProcName"
            label="排程工序"
            show-tooltip-when-overflow
            width="110"
            sortable="custom"
          />
@@ -153,6 +159,7 @@
            label="计划排程时间"
            width="160"
            sortable="custom"
            show-tooltip-when-overflow
          >
            <template slot-scope="{row}">
              <div v-if="row.AdvaSchePCStartDate">{{ row.AdvaSchePCStartDate }}</div>
@@ -200,7 +207,7 @@
                />
              </el-form-item>
              <el-form-item label="排程方式" style=" display: flex;">
                <el-select v-model="formBottom.types" style="width:120px" @change="changeTypes">
                <el-select v-model="formBottom.types" :disabled="radioSelectedId===''" style="width:120px" @change="changeTypes">
                  <el-option value="N" label="设备优先" />
                  <el-option value="Y" label="时间优先" />
                </el-select>
@@ -430,7 +437,7 @@
      titleHeight: 40,
      titleWidth: 250,
      datasNum: 100,
      // datasNum: 100,
      datasA: [],
      // datasB: mockDatas(100),
      dataKey: 'id',
@@ -446,9 +453,7 @@
      scrollToY: 0,
      positionB: {},
      positionA: {},
      title_list: [],
      imp_id: '',
      submit_flag: false,
      search_from: {
        page: 1,
@@ -460,10 +465,10 @@
    }
  },
  watch: {
    datasNum(newV) {
      // this.datasA = mockDatas(newV)
      // this.datasB = mockDatas(newV)
    },
    // datasNum(newV) {
    //   // this.datasA = mockDatas(newV)
    //   // this.datasB = mockDatas(newV)
    // },
    scrollToY(val) {
      this.positionA = { x: val }
    }
@@ -581,6 +586,7 @@
      this.getOnclickAdvancedSchedulingDevice()
    },
    click_box(val) {
      console.log(val, 567)
      if (!val.status) {
        for (const i in this.facility_data) {
          const new_arr = []
@@ -627,7 +633,7 @@
        this.bm_data[i].gtArray = arr
      }
      this.formBottom.real_num = 0
      this.click_schedule()
      // this.click_schedule()
    },
    look(data) {
      this.showDialog = true
@@ -652,24 +658,15 @@
    // },
    // 点击带出数据
    async  getOnclickAdvancedSchedulingDevice() {
      await this.facility_top()
      await this.facility_top()// 设备优先
      const res = await OnclickAdvancedSchedulingDevice(this.forms)
      if (res.rus.Message) {
        this.$message({
          showClose: true,
          type: 'error',
          message: res.rus.Message
        })
      }
      if (res.rus.Message) { this.$message.error(res.rus.Message) }
      this.submit_flag = false
      const list = []
      this.time_all = res
      const cont = res.Cont
      this.formBottom.real_num = 0
      console.log(this.time_all.rows)
      console.log(this.time_all.rows[0].children)
      for (const i in this.time_all.rows[0].children) {
        const obj = {
          id: '',
@@ -680,7 +677,7 @@
            dark: 'rgb(83, 186, 241,0.8)',
            light: 'rgb(83, 186, 241,0.1)',
            light_capacity: 'rgb(209,239,237,0.8)',
            h_schedule: ' rgb(100,255,192,0.8)',
            h_schedule: 'rgb(100,255,192,0.8)',
            scheduleing: 'rgb(20,182,231,0.8)'
          },
          gtArray: []
@@ -692,7 +689,6 @@
        ].AdvaDevicRhythm
        list.push(obj)
      }
      for (const i in this.time_all.rows) {
        for (const j in this.time_all.rows[i].children) {
          if (this.time_all.rows[i].children[j].OneStartDate != '') {
@@ -859,30 +855,29 @@
          }
        }
      }
      // console.log(newList, 321)
      for (const i in list) {
        this.pushTiem(newList, list[i].id, list[i].gtArray)
      }
      this.bm_data = list
      console.log(this.bm_data, 678)
      const _this = this
      if (cont != '') {
        for (const i in cont) {
          for (const j in this.bm_data) {
            if (this.bm_data[j].id == cont[i].EQP_CODE) {
            if (this.bm_data[j].id == cont[i].eqp_code) {
              const data = {
                id: cont[i].EQP_CODE,
                number: cont[i].ALLOC_QTY,
                cl_name: cont[i].PART_NAME,
                id: cont[i].eqp_code,
                number: cont[i].alloc_qty,
                cl_name: cont[i].part_name,
                cl_code: this.cl_code,
                work_order: cont[i].WO_CODE,
                work_order: cont[i].wo_code,
                STATUS: _this.AdvaScheUom,
                start: cont[i].TIME_START,
                end: cont[i].TIME_END,
                type: cont[i].STATUS == 'S' ? 'h_schedule' : 'bm_schedule'
                // status: _this.AdvaScheUom,
                start: cont[i].time_start,
                end: cont[i].time_end,
                type: cont[i].status == 'S' ? 'h_schedule' : 'bm_schedule'
              }
              this.bm_data[j].flag = 'isCont'
              this.bm_data[j].gtArray.unshift(data)
            }
          }
@@ -897,7 +892,8 @@
          }
        }
      }
      // })
      // this.$forceUpdate()
    },
    // 换型时间
    MinutesTest(time) {
@@ -962,9 +958,10 @@
      this.cl_code = row.AdvaSchePartNumber
      this.AdvaScheUom = row.AdvaScheUom
      this.work_order = row.AdvaScheWorkCode
      this.formBottom.scheDate.push(this.getNowFormatDate())
      this.formBottom.scheDate.push(row.AdvaScheEndDate)
      if (this.formBottom.scheDate !== '') {
      if (this.formBottom.scheDate != '') {
        this.time_data[0] = this.formBottom.scheDate[0] + ' 00:00'
        this.time_data[1] = this.formBottom.scheDate[1] + ' 23:59'
      }
@@ -984,21 +981,17 @@
    // 提交排程
    async  click_yes() {
      if (this.submit_flag) {
        this.$message({
          showClose: true,
          type: 'error',
          message: '数量未排完,请设置产能时间'
        })
        this.$message.error('数量未排完,请设置产能时间')
      } else {
        const list = [] // 提交数组
        for (const i in this.bm_data) {
          const arr = []
          for (const j in this.bm_data[i].gtArray) {
            if (this.bm_data[i].gtArray[j].type === 'schedule') {
            if (this.bm_data[i].gtArray[j].type == 'schedule') {
              arr.push(this.bm_data[i].gtArray[j])
            }
          }
          if (arr !== '') {
          if (arr != '') {
            for (const i in arr) {
              const data = {
                AlreDevicNumber: '',
@@ -1025,12 +1018,8 @@
        updata = JSON.stringify(updata)
        this.formUpdata.json = updata
        if (list === '') {
          this.$message({
            showClose: true,
            message: '请先预排',
            type: 'error'
          })
        if (list == '') {
          this.$message.error('请先预排')
          return false
        }
@@ -1047,7 +1036,7 @@
        this.formBottom.meter = 0
        this.formBottom.real_num = 0
        // await this.getOnclickAdvancedSchedulingDevice()
        await this.getOnclickAdvancedSchedulingDevice()
        await this.getAdvancedSchedulingSearch()
      }
    },
@@ -1055,20 +1044,16 @@
    click_schedule() {
      const timestamp = new Date().toLocaleDateString()
      if (new Date(this.formBottom.scheDate[0]) < new Date(timestamp)) {
        this.$message({
          showClose: true,
          type: 'error',
          message: '排程时间不可以小于当前时间'
        })
        this.$message.error('排程时间不可以小于当前时间!')
        return false
      }
      this.nitialize()// 手动过滤所有设备已排程
      if (this.bm_data !== '' && this.formBottom.types === 'N') { // 设备优先
      console.log(this.facility_data, 67890)
      if (this.bm_data != '' && this.formBottom.types == 'N') { // 设备优先
        this.fun_time()
        this.change_num(this.bm_data)
      } else if (this.facility_data !== '' && this.formBottom.types === 'Y') { // 时间优先
      } else if (this.facility_data != '' && this.formBottom.types == 'Y') { // 时间优先
        this.time_nitalize()
        this.fun_facility()
        this.dataTransition()
@@ -1079,7 +1064,7 @@
    // 手动过滤所有时间已排程
    time_nitalize() {
      for (const i in this.facility_data) {
        this.facility_data[i].gtArray = this.facility_data[i].gtArray.filter(item => item.type !== 'schedule')
        this.facility_data[i].gtArray = this.facility_data[i].gtArray.filter(item => item.type != 'schedule')
      }
    },
    // 手动过滤所有设备已排程
@@ -1087,7 +1072,7 @@
      for (const i in this.bm_data) {
        const newArr = []
        for (const j in this.bm_data[i].gtArray) {
          if (this.bm_data[i].gtArray[j].type !== 'schedule') {
          if (this.bm_data[i].gtArray[j].type != 'schedule') {
            newArr.push(this.bm_data[i].gtArray[j])
          }
        }
@@ -1151,8 +1136,8 @@
        let capacity_arr = [] // 要排程的数组
        this.bm_data[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
        // let capacity_end = ''
        end_arr = this.bm_data[i].gtArray.filter(item => item.type === 'h_schedule')
        nend_arr = this.bm_data[i].gtArray.filter(item => item.type === 'capacity')
        end_arr = this.bm_data[i].gtArray.filter(item => item.type == 'h_schedule')
        nend_arr = this.bm_data[i].gtArray.filter(item => item.type == 'capacity')
        if (end_arr && end_arr.length > 0) {
          capacity_arr = nend_arr.map(item => {
            // 排除掉已经排程的存在hshedule,start,end都相等的情况
@@ -1299,7 +1284,7 @@
        capacity_arr = JSON.parse(JSON.stringify(nend_arr))
        end_arr.forEach(item => {
          for (let i = 0; i < capacity_arr.length; i++) {
            if (new Date(capacity_arr[i].start).getTime() === new Date(item.start).getTime()) {
            if (new Date(capacity_arr[i].start).getTime() == new Date(item.start).getTime()) {
              console.log(i, capacity_arr[i], '哇哈哈')
              capacity_arr.splice(i, 1)
              break
@@ -1313,7 +1298,7 @@
        const schedule_arr = end_arr.filter(item => {
          const remain = nend_arr.some(sitem => {
            return new Date(sitem.start).getTime() === new Date(item.start).getTime() &&
            return new Date(sitem.start).getTime() == new Date(item.start).getTime() &&
              new Date(item.end).getTime() < new Date(sitem.end).getTime()
          })
          return remain
@@ -1322,7 +1307,7 @@
        if (schedule_arr && schedule_arr.length > 0) {
          const scheduleCan = schedule_arr.map(item => {
            const capcity = nend_arr.filter(sitem => {
              return new Date(sitem.start).getTime() === new Date(item.start).getTime() &&
              return new Date(sitem.start).getTime() == new Date(item.start).getTime() &&
                new Date(item.end).getTime() < new Date(sitem.end).getTime()
            })[0]
            console.log('capacity', capcity)
@@ -1477,7 +1462,7 @@
            dark: 'rgb(83, 186, 241,0.8)',
            light: 'rgb(83, 186, 241,0.1)',
            light_capacity: 'rgb(209,239,237,0.8)',
            h_schedule: ' rgb(100,255,192,0.8)',
            h_schedule: 'rgb(100,255,192,0.8)',
            scheduleing: 'rgb(20,182,231,0.8)'
          },
          gtArray: []
@@ -1489,6 +1474,8 @@
        this.title_list.push(obj)
      }
      console.log(12321)
      console.log(data, 1)
      for (const i in data) {
        for (const j in data[i].children) {
          if (data[i].children[j].OneStartDate != '') {
@@ -1622,18 +1609,18 @@
      if (cont != '') {
        for (const i in cont) {
          const date_time = cont[i].TIME_START.split(' ')
          const date_time = cont[i].time_start.split(' ')
          const cont_date = date_time[0]
          for (const j in this.facility_data) {
            const data = {
              id: cont[i].EQP_CODE,
              id: cont[i].eqp_code,
              date: cont_date,
              number: cont[i].ALLOC_QTY,
              cl_name: cont[i].PART_NAME,
              number: cont[i].alloc_qty,
              cl_name: cont[i].part_name,
              cl_code: this.cl_code,
              work_order: cont[i].WO_CODE,
              start: cont[i].TIME_START,
              end: cont[i].TIME_END,
              work_order: cont[i].wo_code,
              start: cont[i].time_start,
              end: cont[i].time_end,
              type: 'h_schedule'
            }
            if (this.facility_data[j].date == data.date) {
@@ -1642,7 +1629,6 @@
          }
        }
      }
      // })
    },
    // 排程方法
    formSeconds(s1, start, mod) {