loulijun2021
2023-02-13 8ccc85d309d5d6f3f3f02852061425a20ec45e74
1.排程部分  工单单选功能实现
已修改2个文件
323 ■■■■■ 文件已修改
src/components/Test/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/scgl/zdpc.vue 321 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Test/index.vue
@@ -36,7 +36,7 @@
          <span>产品编码:</span><span>{{ item.cl_code }}</span>
        </li>
        <li>
          <span>生产数量:</span><span>{{ item.number }}{{ item.AdvaScheUom }}</span>
          <span>生产数量:</span><span>{{ item.number }} {{ item.AdvaScheUom }}</span>
        </li>
        <li>
          <span>生产设备:</span><span>{{ item.id }}</span>
src/views/scgl/zdpc.vue
@@ -240,8 +240,8 @@
              </el-form-item>
              <el-form-item label="预排进度" style=" display: flex;">
                <span>
                  <span style="text-decoration:underline;">{{ formBottom.real_num }}</span> /
                  <span style="text-decoration:underline">{{ formBottom.meter }}</span>
                  <span style="text-decoration:underline;">{{ formBottom.canArrangeNumber }}</span> /
                  <span style="text-decoration:underline">{{ formBottom.needArrangeNumber }}</span>
                </span>
              </el-form-item>
            </div>
@@ -411,28 +411,28 @@
        types: 'N', // 排程方式
        scale: 60, // 时间刻度
        times: 0, // 换型时间
        real_num: 0, // 可排数量
        meter: 0// 需排数量
        canArrangeNumber: 0, // 可排数量
        needArrangeNumber: 0// 需排数量
      },
      schedulingData: [], // 排程的最终数据
      timeTopTempData: [], // 时间优先的临时数据
      eqpTopTempData: [], //  设备优先的临时数据
      formUpdata: {
      formUpdate: {
        WorkCode: '',
        BotProceCode: '',
        json: []
      },
      currentTime: dayjs(),
      // currentTime: dayjs(),
      cellWidth: 50,
      cellHeight: 30,
      titleHeight: 40,
      titleWidth: 250,
      dataKey: 'id',
      timeList: `0,30,60,120,240,480`.split(',').map(n => parseInt(n)),
      // timeList: `0,30,60,120,240,480`.split(',').map(n => parseInt(n)),
      scaleList: `30,60,240,360`.split(',').map(n => parseInt(n)),
      hideHeader: false,
      arrayKeys: ['gtArray', 'error'],
      title_list: []// 不知道给你取什么英文名称好  暂时没变你的名字
      arrayKeys: ['gtArray', 'error']
    }
  },
@@ -585,7 +585,7 @@
        }
        this.schedulingData[i].gtArray = arr
      }
      this.formBottom.real_num = 0
      this.formBottom.canArrangeNumber = 0
      // this.prepareArrange()
    },
    // 点击带出数据
@@ -598,95 +598,47 @@
      const data = res.rows // 拿到待排数据  对数据进行改造
      const cont = res.Cont // 拿到已排数据  对数据进行改造
      this.formBottom.real_num = 0
      this.formBottom.canArrangeNumber = 0
      // 将五个时间段进行赋值
      for (const i in data) {
        for (const j in data[i].children) {
          if (data[i].children[j].OneStartDate !== '') {
            data[i].children[
              j
            ].OneStartDate = data[i].children[
              j
            ].OneStartDate.split('~')
            data[i].children[j].OneStartDate[0] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].OneStartDate[0]
            data[i].children[j].OneStartDate[1] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].OneStartDate[1]
      data.forEach(item => {
        item.children.forEach(it => {
          if (it.OneStartDate !== '') {
            it.OneStartDate = it.OneStartDate.split('~')
            it.OneStartDate[0] = item.YearDate + ' ' + it.OneStartDate[0] + ':00'
            it.OneStartDate[1] = item.YearDate + ' ' + it.OneStartDate[1] + ':00'
          }
          if (data[i].children[j].TwoStartDate !== '') {
            data[i].children[
              j
            ].TwoStartDate = data[i].children[
              j
            ].TwoStartDate.split('~')
            data[i].children[j].TwoStartDate[0] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].TwoStartDate[0]
            data[i].children[j].TwoStartDate[1] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].TwoStartDate[1]
          }
          if (data[i].children[j].ThreeStartDate !== '') {
            data[i].children[
              j
            ].ThreeStartDate = data[i].children[
              j
            ].ThreeStartDate.split('~')
            data[i].children[j].ThreeStartDate[0] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].ThreeStartDate[0]
            data[i].children[j].ThreeStartDate[1] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].ThreeStartDate[1]
          }
          if (data[i].children[j].FourStartDate !== '') {
            data[i].children[
              j
            ].FourStartDate = data[i].children[
              j
            ].FourStartDate.split('~')
            data[i].children[j].FourStartDate[0] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].FourStartDate[0]
            data[i].children[j].FourStartDate[1] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].FourStartDate[1]
          }
          if (data[i].children[j].FiveStartDate !== '') {
            data[i].children[
              j
            ].FiveStartDate = data[i].children[
              j
            ].FiveStartDate.split('~')
            data[i].children[j].FiveStartDate[0] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].FiveStartDate[0]
            data[i].children[j].FiveStartDate[1] =
              data[i].YearDate +
              ' ' +
              data[i].children[j].FiveStartDate[1]
          }
        }
      }
          if (it.TwoStartDate !== '') {
            it.TwoStartDate = it.TwoStartDate.split('~')
            it.TwoStartDate[0] = item.YearDate + ' ' + it.TwoStartDate[0] + ':00'
            it.TwoStartDate[1] = item.YearDate + ' ' + it.TwoStartDate[1] + ':00'
          }
          if (it.ThreeStartDate !== '') {
            it.ThreeStartDate = it.ThreeStartDate.split('~')
            it.ThreeStartDate[0] = item.YearDate + ' ' + it.ThreeStartDate[0] + ':00'
            it.ThreeStartDate[1] = item.YearDate + ' ' + it.ThreeStartDate[1] + ':00'
          }
          if (it.FourStartDate !== '') {
            it.FourStartDate = it.FourStartDate.split('~')
            it.FourStartDate[0] = item.YearDate + ' ' + it.FourStartDate[0] + ':00'
            it.FourStartDate[1] = item.YearDate + ' ' + it.FourStartDate[1] + ':00'
          }
          if (it.FiveStartDate !== '') {
            it.FiveStartDate = it.FiveStartDate.split('~')
            it.FiveStartDate[0] = item.YearDate + ' ' + it.FiveStartDate[0] + ':00'
            it.FiveStartDate[1] = item.YearDate + ' ' + it.FiveStartDate[1] + ':00'
          }
        })
      })
      // 构建 按设备优先排程的 数据格式 schedulingData
      const list = [] // 临时list  暂存
      for (const i in data[0].children) {
      data[0].children.forEach(item => {
        const obj = {
          id: '',
          name: '',
          AdvaDevicRhythm: '',
          AdvaDevicRhythm: '', // 节拍多少秒生产一个(生产节拍)
          status: true,
          colorPair: {
            dark: 'rgb(83, 186, 241,0.8)',
@@ -697,15 +649,13 @@
          },
          gtArray: []
        }
        obj.id = data[0].children[i].AdvaDevicNumber
        obj.name = data[0].children[i].AdvaDevicName
        obj.AdvaDevicRhythm = data[0].children[
          i
        ].AdvaDevicRhythm
        obj.id = item.AdvaDevicNumber
        obj.name = item.AdvaDevicName
        obj.AdvaDevicRhythm = item.AdvaDevicRhythm
        list.push(obj)
      }
      })
      // 组合新的结构
      // 组合新的结构     浅绿色背景条
      const newList = []
      for (const i in data) {
        for (const j in data[i].children) {
@@ -719,9 +669,8 @@
            data1.id = data[i].children[j].AdvaDevicNumber
            data1.start = data[i].children[j].OneStartDate[0]
            data1.end = data[i].children[j].OneStartDate[1]
            data1.mod =
              (data[i].children[j].AdvaDevicCropMob * 1) /
              100
            // AdvaDevicCropMob 稼动率     AdvaDevicRhythm  生产节拍
            data1.mod = (data[i].children[j].AdvaDevicCropMob * 1) / 100 // 稼动率
            newList.push(data1)
          }
          if (data[i].children[j].TwoStartDate !== '') {
@@ -734,9 +683,7 @@
            data2.id = data[i].children[j].AdvaDevicNumber
            data2.start = data[i].children[j].TwoStartDate[0]
            data2.end = data[i].children[j].TwoStartDate[1]
            data2.mod =
              (data[i].children[j].AdvaDevicCropMob * 1) /
              100
            data2.mod = (data[i].children[j].AdvaDevicCropMob * 1) / 100
            newList.push(data2)
          }
          if (data[i].children[j].ThreeStartDate !== '') {
@@ -747,13 +694,9 @@
              mod: ''
            }
            data3.id = data[i].children[j].AdvaDevicNumber
            data3.start = data[i].children[
              j
            ].ThreeStartDate[0]
            data3.start = data[i].children[j].ThreeStartDate[0]
            data3.end = data[i].children[j].ThreeStartDate[1]
            data3.mod =
              (data[i].children[j].AdvaDevicCropMob * 1) /
              100
            data3.mod = (data[i].children[j].AdvaDevicCropMob * 1) / 100
            newList.push(data3)
          }
          if (data[i].children[j].FourStartDate !== '') {
@@ -764,13 +707,9 @@
              mod: ''
            }
            data4.id = data[i].children[j].AdvaDevicNumber
            data4.start = data[i].children[
              j
            ].FourStartDate[0]
            data4.start = data[i].children[j].FourStartDate[0]
            data4.end = data[i].children[j].FourStartDate[1]
            data4.mod =
              (data[i].children[j].AdvaDevicCropMob * 1) /
              100
            data4.mod = (data[i].children[j].AdvaDevicCropMob * 1) / 100
            newList.push(data4)
          }
          if (data[i].children[j].FiveStartDate !== '') {
@@ -781,13 +720,9 @@
              mod: ''
            }
            data5.id = data[i].children[j].AdvaDevicNumber
            data5.start = data[i].children[
              j
            ].FiveStartDate[0]
            data5.start = data[i].children[j].FiveStartDate[0]
            data5.end = data[i].children[j].FiveStartDate[1]
            data5.mod =
              (data[i].children[j].AdvaDevicCropMob * 1) /
              100
            data5.mod = (data[i].children[j].AdvaDevicCropMob * 1) / 100
            newList.push(data5)
          }
        }
@@ -807,15 +742,14 @@
                id: cont[i].eqp_code,
                number: cont[i].alloc_qty,
                cl_name: cont[i].part_name,
                cl_code: this.cl_code,
                cl_code: cont[i].part_code,
                AdvaScheUom: cont[i].uom_name, // 单位
                work_order: cont[i].wo_code,
                STATUS: this.AdvaScheUom,
                // 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'
                type: 'h_schedule'
              }
              this.schedulingData[j].flag = 'isCont'
              this.schedulingData[j].gtArray.unshift(data)
            }
          }
@@ -832,7 +766,7 @@
      }
      // 设备优先的数据格式
      this.title_list = []
      this.eqpTopTempData = []
      for (const i in data[0].children) {
        const obj = {
          id: '',
@@ -854,12 +788,13 @@
        obj.AdvaDevicRhythm = data[0].children[i].AdvaDevicRhythm
        // obj.mod =data[0].children[i].AdvaDevicCropMob *1
        this.title_list.push(obj)
        this.eqpTopTempData.push(obj)
      }
      // 更改格式
      this.timeTopTempData = []
      // 构建按时间优先的排程数据格式 timeTopTempData
      for (const i in data) {
        const time = {
          date: data[i].YearDate,
@@ -875,7 +810,7 @@
              name: data[i].children[j].AdvaDevicName,
              id: data[i].children[j].AdvaDevicNumber,
              type: 'capacity',
              rhythm: data[i].children[j].AdvaDevicRhythm,
              rhythm: data[i].children[j].AdvaDevicRhythm, // 生产节拍
              start: data[i].children[j].OneStartDate[0],
              end: data[i].children[j].OneStartDate[1],
              mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
@@ -943,7 +878,8 @@
              date: cont[i].time_start.split(' ')[0],
              number: cont[i].alloc_qty,
              cl_name: cont[i].part_name,
              cl_code: this.cl_code,
              cl_code: cont[i].part_code,
              AdvaScheUom: cont[i].uom_name, // 单位
              work_order: cont[i].wo_code,
              start: cont[i].time_start,
              end: cont[i].time_end,
@@ -959,7 +895,6 @@
    // 换型时间
    MinutesTest(time) {
      const t = new Date(time)
      t.setMinutes(t.getMinutes() + this.formBottom.times * 1)
      const now =
        t.getFullYear() +
@@ -994,7 +929,7 @@
    getCurrentRow(row) {
      this.radioSelectedId = row.AdvaScheId // 排程id赋值给选中行id
      this.formBottom.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 需排数量 = 未排程数量 - 已排程数量
      this.formBottom.needArrangeNumber = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 需排数量 = 未排程数量 - 已排程数量
      this.formBottom.scheDate = [] // 排程日期置空
      this.cl_name = row.AdvaSchePartName // 产品名称
      this.cl_code = row.AdvaSchePartNumber // 产品编码
@@ -1014,12 +949,12 @@
      this.forms.startdate = handleDatetime(new Date()) // 当前日期(今天)
      this.forms.enddate = row.AdvaScheEndDate //  要求交付时间
      this.getOnclickAdvancedSchedulingDevice()
      this.formUpdata.WorkCode = row.AdvaScheWorkCode // 工单编号
      this.formUpdata.BotProceCode = row.AdvaScheBotProcid // 工艺路线编码
      this.formUpdate.WorkCode = row.AdvaScheWorkCode // 工单编号
      this.formUpdate.BotProceCode = row.AdvaScheBotProcid // 工艺路线编码
    },
    // 提交排程
    async prepareSubmit() {
      if (this.formBottom.real_num !== this.formBottom.meter) {
      if (this.formBottom.canArrangeNumber !== this.formBottom.needArrangeNumber) {
        this.$message.error('数量未排完,请设置产能时间!')
      } else {
        const list = [] // 提交数组
@@ -1048,24 +983,24 @@
        }
        // 排程相同设备获取开始时间 结束时间 数量的总和
        // 过滤
        let updata = []
        let update = []
        for (const i in list) {
          if (list[i].AlreStartDate !== '') {
            updata.push(list[i])
            update.push(list[i])
          }
        }
        updata = JSON.stringify(updata)
        this.formUpdata.json = updata
        update = JSON.stringify(update)
        this.formUpdate.json = update
        if (list === '') {
          this.$message.error('请先预排')
          return false
        }
        const formData = new FormData()
        formData.append('wocode', this.formUpdata.WorkCode)
        formData.append('botprocecode', this.formUpdata.BotProceCode)
        formData.append('json', this.formUpdata.json)
        formData.append('wocode', this.formUpdate.WorkCode)
        formData.append('botprocecode', this.formUpdate.BotProceCode)
        formData.append('json', this.formUpdate.json)
        const res = await SubmitAlreadyScheduling(formData)
@@ -1073,8 +1008,8 @@
          this.$message.success(res.Message)
        }
        this.formBottom.meter = 0
        this.formBottom.real_num = 0
        this.formBottom.needArrangeNumber = 0
        this.formBottom.canArrangeNumber = 0
        await this.getOnclickAdvancedSchedulingDevice()
        await this.getAdvancedSchedulingSearch()
      }
@@ -1118,11 +1053,10 @@
    },
    // 给排程最后一个修改数量
    editLastValue(arr) {
      this.formBottom.real_num = 0 // 真实已排数量
      this.formBottom.canArrangeNumber = 0 // 真实已排数量
      let num = 0 // 取整已排数量
      const arr_num = [] // 已排数据
      let mend_num = 0
      const len = 0
      let need_num = 0
      for (const i in arr) {
        for (const j in arr[i].gtArray) {
          if (arr[i].gtArray[j].type === 'schedule') {
@@ -1132,15 +1066,15 @@
      }
      for (const n in arr_num) {
        this.formBottom.real_num += arr_num[n].real_number
        this.formBottom.canArrangeNumber += arr_num[n].real_number
        num += arr_num[n].number * 1
      }
      this.formBottom.real_num = Math.ceil(this.formBottom.real_num)
      const y10 = this.formBottom.meter - this.formBottom.real_num
      this.formBottom.canArrangeNumber = Math.ceil(this.formBottom.canArrangeNumber)
      const y10 = this.formBottom.needArrangeNumber - this.formBottom.canArrangeNumber
      if (y10 <= 10) {
        this.formBottom.real_num = this.formBottom.meter
        mend_num = this.formBottom.meter - num
        this.formBottom.canArrangeNumber = this.formBottom.needArrangeNumber
        need_num = this.formBottom.needArrangeNumber - num
      } else {
      }
      for (const i in this.schedulingData) {
@@ -1150,33 +1084,28 @@
            this.schedulingData[i].gtArray[j].end_num
          ) {
            this.schedulingData[i].gtArray[j].number =
              this.schedulingData[i].gtArray[j].number * 1 + mend_num
              this.schedulingData[i].gtArray[j].number * 1 + need_num
          }
        }
      }
    },
    // 设备优先   数据格式转换
    eqpDataTransition() {
      let all_num = this.formBottom.meter
      let needNumber = this.formBottom.needArrangeNumber // 需排数量
      let flag1 = 0
      const mod = this.schedulingData[0].mod
      //  let nowTime = this.schedulingData[0].AdvaDevicRhythm*all_num
      for (const i in this.schedulingData) {
        let end_arr = [] // 已排程的数组
        let nend_arr = [] // 待排程的数组
        let need_arr = [] // 待排程的数组
        let capacity_arr = [] // 要排程的数组
        this.schedulingData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
        end_arr = JSON.parse(JSON.stringify(this.schedulingData[i].gtArray.filter(item => item.type === 'h_schedule'))) // 已排程数组
        nend_arr = JSON.parse(JSON.stringify(this.schedulingData[i].gtArray.filter(item => item.type === 'capacity'))) // 容量
        // end_arr.sort((a, b) => new Date(b.end).getTime() - new Date(a.end).getTime())
        need_arr = JSON.parse(JSON.stringify(this.schedulingData[i].gtArray.filter(item => item.type === 'capacity'))) // 容量
        if (end_arr && end_arr.length > 0) {
          capacity_arr = nend_arr.map(item => {
          capacity_arr = need_arr.map(item => {
            // 排除掉已经排程的存在hshedule,start,end都相等的情况
            const schedule = end_arr.filter(it => {
              return new Date(item.start).getTime() <= new Date(it.start).getTime() &&
@@ -1198,7 +1127,7 @@
            return item
          }).filter(item => item.capacity !== false)
        } else {
          capacity_arr = nend_arr
          capacity_arr = need_arr
        }
        const id_obj = {
@@ -1222,6 +1151,7 @@
            cl_name: this.cl_name,
            cl_code: this.cl_code,
            work_order: this.work_order,
            AdvaScheUom: this.AdvaScheUom,
            number: 0,
            real_number: 0
          }
@@ -1235,8 +1165,7 @@
          } else {
            data.start = capacity_arr[w].start
          }
          let nowTime =
            (this.schedulingData[i].AdvaDevicRhythm * all_num) / capacity_arr[w].mod
          let nowTime = (this.schedulingData[i].AdvaDevicRhythm * needNumber) / capacity_arr[w].mod
          end_time = this.formSeconds(nowTime, data.start, capacity_arr[w].mod) // 总共的结束时间
          data.end = end_time
          mistiming = this.compareTime(
@@ -1269,22 +1198,26 @@
              continue // 因为开始时间比结束时间大 需要跳过后面步骤
            }
            // 这里除以一千是因为 new Date() 得到的是毫秒  毫秒转化为秒是千进制
            // 一段时间段内的生产量=两者时间差(毫秒)/1000  / 生产节拍 * 稼动率
            data.number =
              ((new Date(data.end) - new Date(data.start)) *
                capacity_arr[w].mod) /
              this.schedulingData[i].AdvaDevicRhythm /
              1000
            data.real_number =
              ((new Date(data.end) - new Date(data.start)) *
                capacity_arr[w].mod) /
              this.schedulingData[i].AdvaDevicRhythm /
              1000
            data.number = data.number.toFixed(0)
            nowTime =
              (all_num - data.real_number) * this.schedulingData[i].AdvaDevicRhythm
            all_num = all_num - data.real_number
            nowTime = (needNumber - data.real_number) * this.schedulingData[i].AdvaDevicRhythm
            needNumber = needNumber - data.real_number
            if (new Date(data.start) >= new Date(data.end)) {
            } else {
              this.schedulingData[i].gtArray.push(data)
            }
@@ -1304,24 +1237,21 @@
        }
        this.timeTopTempData[i].gtArray = newArr
      }
      let all_num = this.formBottom.meter
      const flag1 = 0
      // let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num  //数量OK
      let needNumber = this.formBottom.needArrangeNumber // 需排数量
      //  里面逻辑要搞清楚 很重要
      for (const i in this.timeTopTempData) {
        let end_arr = []
        let nend_arr = [] // 排程的数组
        let need_arr = [] // 排程的数组
        let capacity_arr = [] // 要排程的数组
        this.timeTopTempData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
        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'))) // 容量
        need_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'capacity'))) // 容量
        capacity_arr = JSON.parse(JSON.stringify(nend_arr)) // 容量
        capacity_arr = JSON.parse(JSON.stringify(need_arr)) // 容量
        // 获取可排程的时间   以便接着往后排程    遍历结束要得到的是 当前日期可排容量
        end_arr.forEach((item, index) => { // 已排程的数组
@@ -1342,7 +1272,7 @@
        }
        const schedule_arr = end_arr.filter(item => {
          const remain = nend_arr.some(it => {
          const remain = need_arr.some(it => {
            return (new Date(item.start).getTime() >= new Date(it.start).getTime() &&
              new Date(item.end).getTime() < new Date(it.end).getTime())
          })
@@ -1353,7 +1283,7 @@
        // 下面逻辑很重要
        if (schedule_arr && schedule_arr.length > 0) {
          const scheduleCan = schedule_arr.map(item => {
            const temp = nend_arr.filter(it => {
            const temp = need_arr.filter(it => {
              if (it.id === item.id) {
                return (new Date(item.start).getTime() >= new Date(it.start).getTime() &&
                  new Date(item.end).getTime() < new Date(it.end).getTime())
@@ -1387,8 +1317,6 @@
        capacity_arr = this.filterOutTime(capacity_arr) // 过滤掉当前时间之前的不能排程
        for (const w in capacity_arr) {
          let end_time
          let mistiming
          const data = {
            id: capacity_arr[w].id,
            start: '',
@@ -1397,6 +1325,7 @@
            cl_name: this.cl_name,
            cl_code: this.cl_code,
            work_order: this.work_order,
            AdvaScheUom: this.AdvaScheUom, // 单位
            number: 0,
            real_number: 0
          }
@@ -1408,23 +1337,19 @@
          ) {
            if (data.id === id_obj.id) {
              data.start = this.MinutesTest(id_obj.start_time)
              //  flag1 =1
            } else {
              data.start = capacity_arr[w].start
              //  flag1 =1
            }
          } else {
            data.start = capacity_arr[w].start
          }
          // let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num
          let nowTime = (capacity_arr[w].rhythm * all_num) / capacity_arr[w].mod
          end_time = this.formSeconds(nowTime, data.start)
          let nowTime = (capacity_arr[w].rhythm * needNumber) / capacity_arr[w].mod
          const end_time = this.formSeconds(nowTime, data.start)
          data.end = end_time
          mistiming = this.compareTime(end_time, capacity_arr[w].end)
          const 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
@@ -1432,6 +1357,7 @@
            data.end_num = true
            if (new Date(data.start) >= new Date(data.end)) {
            } else {
              this.timeTopTempData[i].gtArray.push(data)
            }
@@ -1439,21 +1365,12 @@
            return false
          } else {
            data.end = capacity_arr[w].end
            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)
            nowTime = (all_num - data.real_number) * capacity_arr[w].rhythm
            all_num = all_num - data.real_number
            nowTime = (needNumber - data.real_number) * capacity_arr[w].rhythm
            needNumber = needNumber - data.real_number
            //  nowTime = mistiming * -1
            if (new Date(data.start) >= new Date(data.end)) {
            } else {
              this.timeTopTempData[i].gtArray.push(data)
@@ -1485,7 +1402,7 @@
      const data = this.timeTopTempData
      const all = []
      const list = this.title_list
      const list = this.eqpTopTempData
      for (const i in data) {
        for (const j in data[i].gtArray) {
          all.push(data[i].gtArray[j])