| | |
| | | // 换型时间 |
| | | MinutesTest(time) { |
| | | const t = new Date(time) |
| | | // console.log(typeof parseFloat(this.formBottom.times), 'typeof') |
| | | |
| | | t.setMinutes(t.getMinutes() + this.formBottom.times * 1) |
| | | const now = |
| | | t.getFullYear() + |
| | |
| | | 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 |
| | | // } |
| | | for (const i in this.schedulingData) { |
| | | for (const j in this.schedulingData[i].gtArray) { |
| | | if ( |
| | |
| | | let all_num = this.formBottom.meter |
| | | 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 = [] // 待排程的数组 |
| | | |
| | | let capacity_arr = [] // 要排程的数组 |
| | | this.schedulingData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime()) |
| | | 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 = 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()) |
| | | |
| | | 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 => { |
| | |
| | | new Date(item.end).getTime() >= new Date(it.end).getTime() |
| | | }) |
| | | |
| | | console.log(schedule, '王老吉') |
| | | if (schedule && schedule.length > 0) { |
| | | console.log('有进来吗') |
| | | console.log(schedule[schedule.length - 1]['end']) |
| | | item.start = this.MinutesTest(schedule[schedule.length - 1]['end']) |
| | | } |
| | | |
| | |
| | | if (end_arr != '') { |
| | | (id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end) |
| | | } |
| | | console.log(capacity_arr, 997) |
| | | |
| | | // 这里要将容量和当前时间做对比 做时间处理 如果在当前时间之前的不能排程 |
| | | capacity_arr.forEach((item, index) => { |
| | | // 当前时间 大于等于开始时间 且小于等于结束时间 |
| | | if (new Date(item.start).getTime() <= new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() >= new Date(handleDatetime2(new Date())).getTime()) { |
| | | item.start = handleDatetime2(new Date()) |
| | | } |
| | | // 当前时间比开始时间大 比结束时间也大 |
| | | if (new Date(item.start).getTime() < new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() < new Date(handleDatetime2(new Date())).getTime()) { |
| | | item.capacity = false |
| | | } |
| | | }) |
| | | capacity_arr = capacity_arr.filter(item => item.capacity !== false) |
| | | capacity_arr = this.filterOutTime(capacity_arr) // 过滤掉当前时间之前的不能排程 |
| | | |
| | | for (const w in capacity_arr) { |
| | | let end_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 { |
| | |
| | | capacity_arr[w].mod |
| | | ) // 总共的结束时间-当前的结束时间 = 剩下多久时间 |
| | | if (mistiming >= 0) { |
| | | // console.log( |
| | | // new Date(data.end) - new Date(data.start), |
| | | // capacity_arr[w].mod, |
| | | // this.schedulingData[i].AdvaDevicRhythm, |
| | | // '阿斯顿发斯蒂芬' |
| | | // ) |
| | | data.number = |
| | | ((new Date(data.end) - new Date(data.start)) * |
| | | capacity_arr[w].mod) / |
| | |
| | | } else { |
| | | this.schedulingData[i].gtArray.push(data) |
| | | } |
| | | |
| | | return false |
| | | } else { |
| | | data.end = capacity_arr[w].end |
| | | |
| | | if (new Date(data.end).getTime() < new Date(data.start)) { |
| | | continue // 因为开始时间比结束时间大 需要跳过后面步骤 |
| | | } |
| | | |
| | | data.number = |
| | | ((new Date(data.end) - new Date(data.start)) * |
| | | capacity_arr[w].mod) / |
| | |
| | | |
| | | 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 = [] // 排程的数组 |
| | | |
| | |
| | | |
| | | this.timeTopTempData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime()) |
| | | |
| | | // console.log(JSON.stringify(this.timeTopTempData), 671) |
| | | |
| | | 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)) // 容量 |
| | | |
| | |
| | | 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, '大西瓜') |
| | | |
| | | // continue:表示跳出本次循环,也就是不执行本次循环continue之后的操作 |
| | | // break:表示跳出当前的循环,针对整个循环体终止后续的遍历; |
| | |
| | | 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 |
| | | }) |
| | | |
| | | // console.log(schedule_arr, 1002) |
| | | // console.log(nend_arr, 299) |
| | | |
| | | // debugger |
| | | |
| | | // 下面逻辑很重要 |
| | | if (schedule_arr && schedule_arr.length > 0) { |
| | | const scheduleCan = schedule_arr.map(item => { |
| | | const temp = nend_arr.filter(it => { |
| | | if (it.id === item.id) { |
| | | 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.end).getTime() < new Date(it.end).getTime()) |
| | | } |
| | | })[0] |
| | | // console.log('李白', temp) |
| | | // console.log('李白', item.end) |
| | | |
| | | temp.start = this.MinutesTest(item.end) |
| | | |
| | | return temp |
| | | }) |
| | | |
| | | const newSchedule = JSON.parse(JSON.stringify(scheduleCan)) |
| | | 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()) { |
| | |
| | | } |
| | | }) |
| | | }) |
| | | |
| | | // 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) |
| | | |
| | | 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) |
| | | |
| | | // 这里要将容量和当前时间做对比 做时间处理 如果在当前时间之前的不能排程 |
| | | capacity_arr.forEach((item, index) => { |
| | | // 当前时间 大于等于开始时间 且小于等于结束时间 |
| | | if (new Date(item.start).getTime() <= new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() >= new Date(handleDatetime2(new Date())).getTime()) { |
| | | item.start = handleDatetime2(new Date()) |
| | | } |
| | | // 当前时间比开始时间大 比结束时间也大 |
| | | if (new Date(item.start).getTime() < new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() < new Date(handleDatetime2(new Date())).getTime()) { |
| | | item.capacity = false |
| | | } |
| | | }) |
| | | capacity_arr = capacity_arr.filter(item => item.capacity !== false) |
| | | capacity_arr = this.filterOutTime(capacity_arr) // 过滤掉当前时间之前的不能排程 |
| | | |
| | | for (const w in capacity_arr) { |
| | | let end_time |
| | |
| | | number: 0, |
| | | real_number: 0 |
| | | } |
| | | // console.log(id_obj.start_time) |
| | | |
| | | if ( |
| | | id_obj && |
| | | new Date(id_obj.start_time).getTime() >= |
| | |
| | | // flag1 =1 |
| | | } else { |
| | | data.start = capacity_arr[w].start |
| | | // console.log(data.start, 1000) |
| | | // console.log(data.start) |
| | | |
| | | // flag1 =1 |
| | | } |
| | | } else { |
| | | data.start = capacity_arr[w].start |
| | | // 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 |
| | |
| | | } |
| | | } |
| | | }, |
| | | // 过滤掉当前时间之前的不能排程 |
| | | filterOutTime(capacity_arr) { |
| | | // 这里要将容量和当前时间做对比 做时间处理 如果在当前时间之前的不能排程 |
| | | capacity_arr.forEach((item, index) => { |
| | | // 当前时间 大于等于开始时间 且小于等于结束时间 |
| | | if (new Date(item.start).getTime() <= new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() >= new Date(handleDatetime2(new Date())).getTime()) { |
| | | item.start = handleDatetime2(new Date()) |
| | | } |
| | | // 当前时间比开始时间大 比结束时间也大 |
| | | if (new Date(item.start).getTime() < new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() < new Date(handleDatetime2(new Date())).getTime()) { |
| | | item.capacity = false |
| | | } |
| | | }) |
| | | |
| | | return capacity_arr.filter(item => item.capacity !== false) |
| | | }, |
| | | |
| | | // 时间优先 给设备转换格式 |
| | | dataTransition() { |
| | | this.schedulingData = [] |
| | |
| | | } |
| | | } |
| | | |
| | | // console.log(list) |
| | | this.schedulingData = list |
| | | }, |
| | | // 插入产能时间段 |