loulijun2021
2022-11-26 37b9050ec94b02b4c197fd2bb508bb9857cc56a1
1.自动排程代码优化
已修改2个文件
115 ■■■■■ 文件已修改
src/components/Test/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scgl/zdpc.vue 111 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Test/index.vue
@@ -16,8 +16,8 @@
      <div
        :class="{'hw':true,'SCHEDULEING' : item.type == 'schedule','H_SCHEDULE':item.type=='h_schedule','BM_SCHEDULE':item.type=='bm_schedule'}"
      >
        <span v-show="item.type == &quot;schedule&quot;">{{ item.number }}</span>
        <span v-show="item.type == &quot;h_schedule&quot;">{{ item.number }}</span>
        <span v-show="item.type == 'schedule'">{{ item.number }}</span>
        <span v-show="item.type == 'h_schedule'">{{ item.number }}</span>
      </div>
      <!-- <div class="passenger"></div> -->
src/views/scgl/zdpc.vue
@@ -430,7 +430,7 @@
      titleHeight: 40,
      titleWidth: 250,
      datasNum: 100,
      // datasNum: 100,
      datasA: [],
      // datasB: mockDatas(100),
      dataKey: 'id',
@@ -460,10 +460,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 }
    }
@@ -652,24 +652,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 +671,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 +683,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 +849,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 +886,6 @@
          }
        }
      }
      // })
    },
    // 换型时间
    MinutesTest(time) {
@@ -964,7 +952,7 @@
      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 +972,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 +1009,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 +1027,7 @@
        this.formBottom.meter = 0
        this.formBottom.real_num = 0
        // await this.getOnclickAdvancedSchedulingDevice()
        await this.getOnclickAdvancedSchedulingDevice()
        await this.getAdvancedSchedulingSearch()
      }
    },
@@ -1055,20 +1035,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') { // 设备优先
      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 +1055,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 +1063,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 +1127,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 +1275,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 +1289,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 +1298,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 +1453,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: []
@@ -1622,18 +1598,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 +1618,6 @@
          }
        }
      }
      // })
    },
    // 排程方法
    formSeconds(s1, start, mod) {