loulijun2021
2023-02-12 adb74c51618faf025fe1d46bf6b22db895c2608f
src/views/scgl/zdpc.vue
@@ -208,7 +208,7 @@
                  size="small"
                  :picker-options="pickerOptions1"
                  :clearable="false"
                  @change="change_time"
                  @change="dateChange"
                />
              </el-form-item>
              <el-form-item label="排程方式" style=" display: flex;">
@@ -216,7 +216,7 @@
                  v-model="formBottom.types"
                  :disabled="radioSelectedId===''"
                  style="width:120px"
                  @change="changeTypes"
                  @change="typesChange"
                >
                  <el-option value="N" label="设备优先" />
                  <el-option value="Y" label="时间优先" />
@@ -254,7 +254,7 @@
                :disabled="radioSelectedId===''"
                type="primary"
                icon="el-icon-document-remove"
                @click="click_schedule"
                @click="prepareArrange"
              >预排
              </el-button>
              <el-button
@@ -262,7 +262,7 @@
                type="primary"
                :disabled="radioSelectedId===''"
                icon="el-icon-document-checked"
                @click="click_yes"
                @click="prepareSubmit"
              >提交
              </el-button>
            </div>
@@ -309,7 +309,7 @@
                  <el-checkbox
                    v-model="data.status"
                    style="margin-right:5px;"
                    @change="click_box(data)"
                    @change="checkboxSingle(data)"
                  />
                  {{ data.id }} {{ data.name }}
                </div>
@@ -328,7 +328,7 @@
                v-model="ganttCheckboxAll"
                class="box_style"
                :disabled="radioSelectedId===''"
                @change="changeLift()"
                @change="checkboxAll()"
              />
              <input
                v-model.number="cellWidth"
@@ -432,7 +432,7 @@
      scaleList: `30,60,240,360`.split(',').map(n => parseInt(n)),
      hideHeader: false,
      arrayKeys: ['gtArray', 'error'],
      title_list: []
      title_list: []// 不知道给你取什么英文名称好  暂时没变你的名字
    }
  },
@@ -504,18 +504,26 @@
    /*
     排程部分的方法
     */
    resetFormcx() {
      this.$nextTick(() => {
        this.$refs.form.resetFields()
      })
    },
    // 确保换型时间为非负数
    no_zero() {
      if (this.formBottom.times < 0) {
        this.formBottom.times = 0
      }
    },
    // 工位列表复选框操作
    changeLift() {
    // 排程方式改变
    typesChange() {
      this.getOnclickAdvancedSchedulingDevice()
    },
    // 排程日期值改变时
    dateChange() {
      this.time_data[0] = this.formBottom.scheDate[0] + ' 00:00'
      this.time_data[1] = this.formBottom.scheDate[1] + ' 23:59'
      this.forms.startdate = this.formBottom.scheDate[0]
      this.forms.enddate = this.formBottom.scheDate[1]
      this.getOnclickAdvancedSchedulingDevice()
    },
    // 工位列表复选框操作  (全选、全不选)
    checkboxAll() {
      if (this.ganttCheckboxAll) {
        this.ganttLeftArrId = []
        this.getOnclickAdvancedSchedulingDevice()
@@ -528,26 +536,15 @@
          this.timeTopTempData[i].gtArray = []
        }
      }
      // this.click_schedule()
    },
    changeTypes() {
      this.getOnclickAdvancedSchedulingDevice()
    },
    // 排程日期值改变时
    change_time() {
      this.time_data[0] = this.formBottom.scheDate[0] + ' 00:00'
      this.time_data[1] = this.formBottom.scheDate[1] + ' 23:59'
      this.forms.startdate = this.formBottom.scheDate[0]
      this.forms.enddate = this.formBottom.scheDate[1]
      this.getOnclickAdvancedSchedulingDevice()
      // this.prepareArrange()
    },
    // 甘特图左侧checkbox值选中或者取消时
    click_box(val) {
    checkboxSingle(val) {
      if (!val.status) {
        for (const i in this.timeTopTempData) {
          const new_arr = []
          for (const j in this.timeTopTempData[i].gtArray) {
            if (this.timeTopTempData[i].gtArray[j].id == val.id) {
            if (this.timeTopTempData[i].gtArray[j].id === val.id) {
            } else {
              new_arr.push(this.timeTopTempData[i].gtArray[j])
            }
@@ -582,16 +579,15 @@
      for (const i in this.schedulingData) {
        const arr = []
        for (const j in this.schedulingData[i].gtArray) {
          if (this.schedulingData[i].gtArray[j].type != 'schedule') {
          if (this.schedulingData[i].gtArray[j].type !== 'schedule') {
            arr.push(this.schedulingData[i].gtArray[j])
          }
        }
        this.schedulingData[i].gtArray = arr
      }
      this.formBottom.real_num = 0
      // this.click_schedule()
      // this.prepareArrange()
    },
    // 点击带出数据
    async getOnclickAdvancedSchedulingDevice() {
      const res = await OnclickAdvancedSchedulingDevice(this.forms)
@@ -607,7 +603,7 @@
      // 将五个时间段进行赋值
      for (const i in data) {
        for (const j in data[i].children) {
          if (data[i].children[j].OneStartDate != '') {
          if (data[i].children[j].OneStartDate !== '') {
            data[i].children[
              j
            ].OneStartDate = data[i].children[
@@ -622,7 +618,7 @@
              ' ' +
              data[i].children[j].OneStartDate[1]
          }
          if (data[i].children[j].TwoStartDate != '') {
          if (data[i].children[j].TwoStartDate !== '') {
            data[i].children[
              j
            ].TwoStartDate = data[i].children[
@@ -637,7 +633,7 @@
              ' ' +
              data[i].children[j].TwoStartDate[1]
          }
          if (data[i].children[j].ThreeStartDate != '') {
          if (data[i].children[j].ThreeStartDate !== '') {
            data[i].children[
              j
            ].ThreeStartDate = data[i].children[
@@ -652,7 +648,7 @@
              ' ' +
              data[i].children[j].ThreeStartDate[1]
          }
          if (data[i].children[j].FourStartDate != '') {
          if (data[i].children[j].FourStartDate !== '') {
            data[i].children[
              j
            ].FourStartDate = data[i].children[
@@ -667,7 +663,7 @@
              ' ' +
              data[i].children[j].FourStartDate[1]
          }
          if (data[i].children[j].FiveStartDate != '') {
          if (data[i].children[j].FiveStartDate !== '') {
            data[i].children[
              j
            ].FiveStartDate = data[i].children[
@@ -713,7 +709,7 @@
      const newList = []
      for (const i in data) {
        for (const j in data[i].children) {
          if (data[i].children[j].OneStartDate != '') {
          if (data[i].children[j].OneStartDate !== '') {
            const data1 = {
              id: '',
              start: '',
@@ -728,7 +724,7 @@
              100
            newList.push(data1)
          }
          if (data[i].children[j].TwoStartDate != '') {
          if (data[i].children[j].TwoStartDate !== '') {
            const data2 = {
              id: '',
              start: '',
@@ -743,7 +739,7 @@
              100
            newList.push(data2)
          }
          if (data[i].children[j].ThreeStartDate != '') {
          if (data[i].children[j].ThreeStartDate !== '') {
            const data3 = {
              id: '',
              start: '',
@@ -760,7 +756,7 @@
              100
            newList.push(data3)
          }
          if (data[i].children[j].FourStartDate != '') {
          if (data[i].children[j].FourStartDate !== '') {
            const data4 = {
              id: '',
              start: '',
@@ -777,7 +773,7 @@
              100
            newList.push(data4)
          }
          if (data[i].children[j].FiveStartDate != '') {
          if (data[i].children[j].FiveStartDate !== '') {
            const data5 = {
              id: '',
              start: '',
@@ -803,10 +799,10 @@
      this.schedulingData = list
      if (cont != '') {
      if (cont !== '') {
        for (const i in cont) {
          for (const j in this.schedulingData) {
            if (this.schedulingData[j].id == cont[i].eqp_code) {
            if (this.schedulingData[j].id === cont[i].eqp_code) {
              const data = {
                id: cont[i].eqp_code,
                number: cont[i].alloc_qty,
@@ -817,7 +813,7 @@
                // status: this.AdvaScheUom,
                start: cont[i].time_start,
                end: cont[i].time_end,
                type: cont[i].status == 'S' ? 'h_schedule' : 'bm_schedule'
                type: cont[i].status === 'S' ? 'h_schedule' : 'bm_schedule'
              }
              this.schedulingData[j].flag = 'isCont'
              this.schedulingData[j].gtArray.unshift(data)
@@ -826,7 +822,7 @@
        }
      }
      if (this.ganttLeftArrId != '') {
      if (this.ganttLeftArrId !== '') {
        for (const j in this.schedulingData) {
          if (this.ganttLeftArrId.indexOf(this.schedulingData[j].id) >= 0) {
            this.schedulingData[j].gtArray = []
@@ -870,11 +866,11 @@
          AdvaDevicRhythm: '',
          gtArray: []
        }
        if (data[i].children != '') {
        if (data[i].children !== '') {
          time.AdvaDevicRhythm = data[i].children[0].AdvaDevicRhythm
        }
        for (const j in data[i].children) {
          if (data[i].children[j].OneStartDate != '') {
          if (data[i].children[j].OneStartDate !== '') {
            const icu1 = {
              name: data[i].children[j].AdvaDevicName,
              id: data[i].children[j].AdvaDevicNumber,
@@ -886,7 +882,7 @@
            }
            time.gtArray.push(icu1)
          }
          if (data[i].children[j].TwoStartDate != '') {
          if (data[i].children[j].TwoStartDate !== '') {
            const icu2 = {
              name: data[i].children[j].AdvaDevicName,
              id: data[i].children[j].AdvaDevicNumber,
@@ -898,7 +894,7 @@
            }
            time.gtArray.push(icu2)
          }
          if (data[i].children[j].ThreeStartDate != '') {
          if (data[i].children[j].ThreeStartDate !== '') {
            const icu3 = {
              name: data[i].children[j].AdvaDevicName,
              id: data[i].children[j].AdvaDevicNumber,
@@ -910,7 +906,7 @@
            }
            time.gtArray.push(icu3)
          }
          if (data[i].children[j].FourStartDate != '') {
          if (data[i].children[j].FourStartDate !== '') {
            const icu4 = {
              name: data[i].children[j].AdvaDevicName,
              id: data[i].children[j].AdvaDevicNumber,
@@ -922,7 +918,7 @@
            }
            time.gtArray.push(icu4)
          }
          if (data[i].children[j].FiveStartDate != '') {
          if (data[i].children[j].FiveStartDate !== '') {
            const icu5 = {
              name: data[i].children[j].AdvaDevicName,
              id: data[i].children[j].AdvaDevicNumber,
@@ -939,7 +935,7 @@
        this.timeTopTempData.push(time)
      }
      if (cont != '') {
      if (cont !== '') {
        for (const i in cont) {
          for (const j in this.timeTopTempData) {
            const data = {
@@ -953,28 +949,22 @@
              end: cont[i].time_end,
              type: 'h_schedule'
            }
            if (this.timeTopTempData[j].date == data.date) {
            if (this.timeTopTempData[j].date === data.date) {
              this.timeTopTempData[j].gtArray.unshift(data)
            }
          }
        }
      }
      // console.log('执行了!')
      // console.log(this.schedulingData, '  this.schedulingData')
      // console.log(this.timeTopTempData, 'this.timeTopTempData')
      // this.$forceUpdate()
    },
    // 换型时间
    MinutesTest(time) {
      const t = new Date(time)
      console.log(t.getMinutes(), 800)
      // console.log(typeof parseFloat(this.formBottom.times), 'typeof')
      t.setMinutes(t.getMinutes() + this.formBottom.times * 1)
      var now =
      const now =
        t.getFullYear() +
        '-' +
        this.add_one(t.getMonth()).toString().padStart(2, '0') +
        (t.getMonth() + 1).toString().padStart(2, '0') +
        '-' +
        t.getDate().toString().padStart(2, '0') +
        ' ' +
@@ -983,17 +973,12 @@
        t.getMinutes().toString().padStart(2, '0') +
        ':' +
        t.getSeconds().toString().padStart(2, '0')
      console.log('now', now)
      return now
    },
    // +1
    add_one(date) {
      return parseInt(date) + 1
    },
    // 插入产能时间段
    pushItem(newList, id, arr) {
      for (const i in newList) {
        if (newList[i].id == id) {
        if (newList[i].id === id) {
          const data = {
            start: newList[i].start,
            end: newList[i].end,
@@ -1018,7 +1003,7 @@
      this.formBottom.scheDate.push(handleDatetime(new Date())) //  当前日期(今天)
      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' // 排程结束时间
      }
@@ -1033,7 +1018,7 @@
      this.formUpdata.BotProceCode = row.AdvaScheBotProcid // 工艺路线编码
    },
    // 提交排程
    async click_yes() {
    async prepareSubmit() {
      if (this.formBottom.real_num !== this.formBottom.meter) {
        this.$message.error('数量未排完,请设置产能时间!')
      } else {
@@ -1041,11 +1026,11 @@
        for (const i in this.schedulingData) {
          const arr = []
          for (const j in this.schedulingData[i].gtArray) {
            if (this.schedulingData[i].gtArray[j].type == 'schedule') {
            if (this.schedulingData[i].gtArray[j].type === 'schedule') {
              arr.push(this.schedulingData[i].gtArray[j])
            }
          }
          if (arr != '') {
          if (arr !== '') {
            for (const i in arr) {
              const data = {
                AlreDevicNumber: '',
@@ -1065,14 +1050,14 @@
        // 过滤
        let updata = []
        for (const i in list) {
          if (list[i].AlreStartDate != '') {
          if (list[i].AlreStartDate !== '') {
            updata.push(list[i])
          }
        }
        updata = JSON.stringify(updata)
        this.formUpdata.json = updata
        if (list == '') {
        if (list === '') {
          this.$message.error('请先预排')
          return false
        }
@@ -1095,7 +1080,7 @@
      }
    },
    // 时间/设备优先排程
    click_schedule() {
    prepareArrange() {
      const timestamp = new Date().toLocaleDateString()
      if (new Date(this.formBottom.scheDate[1]) < new Date(timestamp)) {
@@ -1106,22 +1091,14 @@
      // 设备优先或者时间优先 对数据进行的格式转换
      if (this.schedulingData !== '' && this.formBottom.types === 'N') { // 设备优先
        this.fun_time()
        this.eqpDataTransition()
        this.editLastValue(this.schedulingData)
      } else if (this.timeTopTempData !== '' && this.formBottom.types === 'Y') { // 时间优先
        this.filterAlreadyScheduleTime() // 手动过滤所有时间已排程
        this.fun_facility()
        this.timeDataTransition()
        this.dataTransition()
        this.editLastValue(this.schedulingData)
      }
      // console.log('执行了!')
      // console.log(this.schedulingData, '  this.schedulingData')
      // console.log(JSON.stringify(this.schedulingData), '  this.schedulingData')
      // console.log(this.timeTopTempData, 'this.timeTopTempData')
      // console.log(JSON.stringify(this.timeTopTempData), 'this.timeTopTempData')
      // this.$forceUpdate()
    },
    // 手动过滤所有时间已排程
    filterAlreadyScheduleTime() {
@@ -1148,7 +1125,7 @@
      const len = 0
      for (const i in arr) {
        for (const j in arr[i].gtArray) {
          if (arr[i].gtArray[j].type == 'schedule') {
          if (arr[i].gtArray[j].type === 'schedule') {
            arr_num.unshift(arr[i].gtArray[j])
          }
        }
@@ -1166,15 +1143,15 @@
        mend_num = this.formBottom.meter - num
      } else {
      }
      if (this.formBottom.real_num * 1 == this.formBottom.meter * 1) {
        // mend_num =  this.formBottom.meter - num
      } else {
        // this.submit_flag = true
      }
      // if (this.formBottom.real_num * 1 === this.formBottom.meter * 1) {
      //   // mend_num =  this.formBottom.meter - num
      // } else {
      //   // this.submit_flag = true
      // }
      for (const i in this.schedulingData) {
        for (const j in this.schedulingData[i].gtArray) {
          if (
            this.schedulingData[i].gtArray[j].type == 'schedule' &&
            this.schedulingData[i].gtArray[j].type === 'schedule' &&
            this.schedulingData[i].gtArray[j].end_num
          ) {
            this.schedulingData[i].gtArray[j].number =
@@ -1183,42 +1160,58 @@
        }
      }
    },
    fun_time() {
    // 设备优先   数据格式转换
    eqpDataTransition() {
      let all_num = this.formBottom.meter
      const all_time = []
      let flag1 = 0
      const mod = this.schedulingData[0].mod
      console.log(this.schedulingData, 998)
      //  let nowTime = this.schedulingData[0].AdvaDevicRhythm*all_num
      // console.log(this.schedulingData, 31)
      // console.log(JSON.stringify(this.schedulingData), 31)
      for (const i in this.schedulingData) {
        console.log(i, 32)
        let end_arr = [] // 已排程的数组
        let nend_arr = [] // 待排程的数组
        const add_arr = [] // 已排程的数组
        let capacity_arr = [] // 要排程的数组
        this.schedulingData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
        // let capacity_end = ''
        end_arr = this.schedulingData[i].gtArray.filter(item => item.type == 'h_schedule')
        nend_arr = this.schedulingData[i].gtArray.filter(item => item.type == 'capacity')
        console.log(this.schedulingData)
        end_arr = this.schedulingData[i].gtArray.filter(item => item.type === 'h_schedule') // 已排程数组
        nend_arr = this.schedulingData[i].gtArray.filter(item => item.type === 'capacity') // 容量
        // end_arr.sort((a, b) => new Date(b.end).getTime() - new Date(a.end).getTime())
        console.log(end_arr, nend_arr, 770)
        console.log(JSON.stringify(end_arr), 771)
        console.log(JSON.stringify(nend_arr), 772)
        if (end_arr && end_arr.length > 0) {
          capacity_arr = nend_arr.map(item => {
            // 排除掉已经排程的存在hshedule,start,end都相等的情况
            const schedule = end_arr.filter(schedule => {
              return new Date(item.start).getTime() <= new Date(schedule.start).getTime() &&
                new Date(item.end).getTime() > new Date(schedule.end).getTime()
            const schedule = end_arr.filter(it => {
              return new Date(item.start).getTime() <= new Date(it.start).getTime() &&
                new Date(item.end).getTime() >= new Date(it.end).getTime()
            })
            console.log(schedule, '王老吉')
            if (schedule && schedule.length > 0) {
              item.start = this.MinutesTest(schedule[0]['end'])
              console.log('有进来吗')
              console.log(schedule[schedule.length - 1]['end'])
              item.start = this.MinutesTest(schedule[schedule.length - 1]['end'])
            }
            const schedule1 = end_arr.filter(schedule => {
              return new Date(item.start).getTime() == new Date(schedule.start).getTime() &&
                new Date(item.end).getTime() == new Date(schedule.end).getTime()
              return new Date(item.start).getTime() === new Date(schedule.start).getTime() &&
                new Date(item.end).getTime() === new Date(schedule.end).getTime()
            })
            if (schedule1 && schedule1.length > 0) {
              item.capacity = false
            }
            return item
          }).filter(item => item.capacity != false)
          }).filter(item => item.capacity !== false)
        } else {
          capacity_arr = nend_arr
        }
@@ -1230,6 +1223,7 @@
        if (end_arr != '') {
          (id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
        }
        console.log(capacity_arr, 997)
        for (const w in capacity_arr) {
          let end_time = ''
          let mistiming = ''
@@ -1245,10 +1239,12 @@
            real_number: 0
          }
          if (
            id_obj.start_time != '' &&
            flag1 == 0 &&
            new Date(id_obj.start_time) >= new Date(capacity_arr[w].start)
            id_obj.start_time !== '' &&
            flag1 === 0 &&
            new Date(id_obj.start_time).getTime() >= new Date(capacity_arr[w].start).getTime()
          ) {
            console.log('加多宝', id_obj.start_time)
            data.start = this.MinutesTest(id_obj.start_time)
            flag1 = 1
          } else {
@@ -1313,8 +1309,8 @@
        }
      }
    },
    // 设备排程方法
    fun_facility() {
    // 时间优先  数据格式转换
    timeDataTransition() {
      // 排除未勾选项
      for (const i in this.timeTopTempData) {
        const newArr = []
@@ -1326,101 +1322,113 @@
        this.timeTopTempData[i].gtArray = newArr
      }
      let all_num = this.formBottom.meter
      const all_time = []
      const flag1 = 0
      // let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num  //数量OK
      console.log(this.timeTopTempData, 889)
      console.log(JSON.stringify(this.timeTopTempData), 889)
      //  里面逻辑要搞清楚 很重要
      for (const i in this.timeTopTempData) {
        console.log(i, 90)
        let end_arr = []
        let nend_arr = [] // 排程的数组
        const add_arr = [] // 已排程的数组
        let capacity_arr = [] // 要排程的数组
        // console.log(parseFloat('SV002'.substring(4, 5)))
        this.timeTopTempData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
        // this.timeTopTempData[i].gtArray.sort((a, b) => parseFloat(a.id.substring(4, 5)) - parseFloat(b.id.substring(4, 5)))
        // let capacity_end = ''
        // console.log(JSON.stringify(this.timeTopTempData), 671)
        end_arr = this.timeTopTempData[i].gtArray.filter(item => item.type === 'h_schedule') // 已排程数据
        nend_arr = this.timeTopTempData[i].gtArray.filter(item => item.type === 'capacity') // 要排程数据
        end_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'h_schedule'))) // 已排程数据
        nend_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'capacity'))) // 容量
        console.log(end_arr, nend_arr, 670)
        // console.log(end_arr, 672)
        // console.log(JSON.stringify(end_arr), 672)
        // console.log(nend_arr, 673)
        // console.log(JSON.stringify(nend_arr), 673)
        capacity_arr = JSON.parse(JSON.stringify(nend_arr))
        console.log(capacity_arr, 902)
        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()) {
              console.log(i, capacity_arr[i], '哇哈哈')
              console.log(capacity_arr.splice(i, 1))
              break
        capacity_arr = JSON.parse(JSON.stringify(nend_arr)) // 容量
        // 获取可排程的时间   以便接着往后排程    遍历结束要得到的是 当前日期可排容量
        end_arr.forEach((item, index) => { // 已排程的数组
          capacity_arr.forEach((it, ind) => { // 容量(日产能)
            if (item.id === it.id &&
              new Date(item.start).getTime() >= new Date(it.start).getTime() &&
              new Date(item.end).getTime() === new Date(it.end).getTime() // new Date(item.end).getTime() <= new Date(it.end).getTime()
            ) {
              console.log(ind, it, '哇哈哈')
              capacity_arr.splice(ind, 1)
            }
          }
          })
        })
        console.log(capacity_arr, '大西瓜')
        if (!capacity_arr || capacity_arr.length === 0) break
        // const firstCapacity = capacity_arr[0]
        // continue:表示跳出本次循环,也就是不执行本次循环continue之后的操作
        // break:表示跳出当前的循环,针对整个循环体终止后续的遍历;
        if (!capacity_arr || capacity_arr.length === 0) {
          continue
        }
        const schedule_arr = end_arr.filter(item => {
          const remain = nend_arr.some(it => {
            // return (new Date(it.start).getTime() === new Date(item.start).getTime() &&
            //     new Date(item.end).getTime() < new Date(it.end).getTime()) || (
            //   new Date(it.end).getTime() === new Date(item.end).getTime() &&
            //   new Date(item.start).getTime() > new Date(it.start).getTime())
            return (new Date(it.start).getTime() === new Date(item.start).getTime() &&
            return (new Date(item.start).getTime() >= new Date(it.start).getTime() &&
              new Date(item.end).getTime() < new Date(it.end).getTime())
          })
          // console.log(remain, 'remain')
          return remain
        })
        // schedule_arr.sort((a, b) => new Date(b.end).getTime() - new Date(a.end).getTime())
        // schedule_arr = schedule_arr.filter((currentValue, currentIndex, selfArr) => {
        //   return selfArr.findIndex(item => item.id === currentValue.id) === currentIndex
        // })
        // schedule_arr = [{ cl_code: '302',
        //   cl_name: '8504光机',
        //   date: '2023-02-09',
        //   end: '2023-02-09 14:53:20',
        //   id: 'SB004',
        //   number: 100,
        //   start: '2023-02-09 13:30:00',
        //   type: 'h_schedule',
        //   work_order: 'MO-2022-11-0035_1' }]
        // console.log(schedule_arr, 1002)
        // console.log(nend_arr, 299)
        console.log(schedule_arr, 1002)
        // debugger
        // schedule_arr = [schedule_arr[0]]
        // 下面逻辑很重要
        if (schedule_arr && schedule_arr.length > 0) {
          const scheduleCan = schedule_arr.map(item => {
            const temp = nend_arr.filter(it => {
              if (it.id === item.id) {
                return (new Date(it.start).getTime() === new Date(item.start).getTime() &&
                console.log('执行了!', item.id, item.end)
                return (new Date(item.start).getTime() >= new Date(it.start).getTime() &&
                  new Date(item.end).getTime() < new Date(it.end).getTime())
                //   ||
                // (new Date(item.start).getTime() > new Date(it.start).getTime() &&
                // new Date(item.end).getTime() < new Date(it.end).getTime())
              }
            })[0]
            console.log('capacity', temp)
            console.log('capacity', item.end)
            // console.log('李白', temp)
            // console.log('李白', item.end)
            temp.start = this.MinutesTest(item.end)
            // temp.start = item.end
            return temp
          })
          const newSchedule = JSON.parse(JSON.stringify(scheduleCan))
          capacity_arr = newSchedule.concat(capacity_arr)
          console.log(newSchedule, 'newSchedule')
          capacity_arr.forEach(item => {
            newSchedule.forEach(it => {
              if (item.id === it.id && new Date(item.start).getTime() < new Date(it.start).getTime()) {
                item.start = it.start
              }
            })
          })
          // capacity_arr = newSchedule.concat(capacity_arr)  //这行代码是不对的
          // console.log(scheduleCan, 'scheduleCan')
          // console.log(capacity_arr, 'capacity_arr')
          // capacity_arr.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime()) // start时间早的在前面
        }
        console.log(schedule_arr)
        console.log('可排程数组', capacity_arr)
        // console.log(schedule_arr)
        // console.log('可排程数组', capacity_arr)
        const id_obj = {}
        if (end_arr != '') {
          (id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
        }
        // console.log(capacity_arr, 999)
        // console.log(JSON.stringify(capacity_arr), 999)
        for (const w in capacity_arr) {
          let end_time
          let mistiming
@@ -1441,39 +1449,30 @@
            new Date(id_obj.start_time).getTime() >=
            new Date(capacity_arr[w].start).getTime()
          ) {
            if (data.id == id_obj.id) {
            if (data.id === id_obj.id) {
              data.start = this.MinutesTest(id_obj.start_time)
              console.log(data.start, 999)
              //  flag1 =1
            } else {
              data.start = capacity_arr[w].start
              console.log(data.start, 1000)
              // console.log(data.start, 1000)
              //  console.log(data.start)
              //  flag1 =1
            }
          } else {
            data.start = capacity_arr[w].start
            console.log(data.start, 1001)
            // console.log(data.start, 1001)
          }
          // let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num
          let nowTime =
            (capacity_arr[w].rhythm * all_num) / capacity_arr[w].mod
          let nowTime = (capacity_arr[w].rhythm * all_num) / capacity_arr[w].mod
          end_time = this.formSeconds(nowTime, data.start)
          data.end = end_time
          mistiming = this.compareTime(end_time, capacity_arr[w].end)
          if (mistiming >= 0) {
            data.number =
              ((new Date(data.end) - new Date(data.start)) *
                capacity_arr[w].mod) /
              capacity_arr[w].rhythm /
              1000
            data.real_number =
              ((new Date(data.end) - new Date(data.start)) *
                capacity_arr[w].mod) /
              capacity_arr[w].rhythm /
              1000
            data.number = ((new Date(data.end) - new Date(data.start)) * capacity_arr[w].mod) / capacity_arr[w].rhythm / 1000
            data.real_number = ((new Date(data.end) - new Date(data.start)) * capacity_arr[w].mod) / capacity_arr[w].rhythm / 1000
            data.number = data.number.toFixed(0)
            data.end_num = true
@@ -1508,7 +1507,7 @@
        }
      }
    },
    // 给设备转换格式
    // 时间优先 给设备转换格式
    dataTransition() {
      this.schedulingData = []
      const data = this.timeTopTempData
@@ -1538,7 +1537,7 @@
    // 插入产能时间段
    pushTimes(newList, id, arr) {
      for (const i in newList) {
        if (newList[i].id == id) {
        if (newList[i].id === id) {
          arr.push(newList[i])
        }
      }