| | |
| | | scaleList: `30,60,240,360`.split(',').map(n => parseInt(n)), |
| | | hideHeader: false, |
| | | arrayKeys: ['gtArray', 'error'], |
| | | title_list: [] |
| | | title_list: []// 不知道给你取什么英文名称好 暂时没变你的名字 |
| | | |
| | | } |
| | | }, |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 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(t.getMinutes(), 800) |
| | | t.setMinutes(t.getMinutes() + this.formBottom.times * 1) |
| | | const now = |
| | | t.getFullYear() + |
| | |
| | | t.getMinutes().toString().padStart(2, '0') + |
| | | ':' + |
| | | t.getSeconds().toString().padStart(2, '0') |
| | | console.log('now', now) |
| | | // console.log('now', now) |
| | | return now |
| | | }, |
| | | // 插入产能时间段 |
| | |
| | | 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() { |
| | |
| | | // 设备优先 数据格式转换 |
| | | eqpDataTransition() { |
| | | let all_num = this.formBottom.meter |
| | | const all_time = [] |
| | | let flag1 = 0 |
| | | const mod = this.schedulingData[0].mod |
| | | // let nowTime = this.schedulingData[0].AdvaDevicRhythm*all_num |
| | | console.log(this.schedulingData.length, 31) |
| | | // 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(end_arr, nend_arr, 770) |
| | | |
| | | 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() |
| | | }) |
| | | |
| | | if (schedule && schedule.length > 0) { |
| | | item.start = this.MinutesTest(schedule[0]['end']) |
| | | } |
| | |
| | | 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 = [] // 要排程的数组 |
| | | |
| | | this.timeTopTempData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime()) |
| | | |
| | | // 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)) // 要排程的数组 |
| | | |
| | | 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(capacity_arr[i].start, 671) |
| | | // console.log(capacity_arr[i].end, 671) |
| | | console.log(i, capacity_arr[i], '哇哈哈') |
| | | capacity_arr.splice(i, 1) |
| | | break |
| | | } |
| | | // end_arr = JSON.parse(JSON.stringify(end_arr.sort((a, b) => new Date(b.end) - new Date(a.end)))) |
| | | |
| | | 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() && item.id === capacity_arr[i].id) { |
| | | // console.log(i, capacity_arr[i], '哇哈哈') |
| | | // capacity_arr.splice(i, 1) |
| | | // break |
| | | // } |
| | | // } |
| | | // }) |
| | | |
| | | // 获取可排程的时间 以便接着往后排程 遍历结束要得到的是 当前日期可排容量 |
| | | 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 |
| | | |
| | | console.log(nend_arr, 'nend_arr') |
| | | console.log(JSON.stringify(nend_arr), 'nend_arr') |
| | | // 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 |
| | | // }) |
| | | // console.log(schedule_arr, 1002) |
| | | // console.log(nend_arr, 299) |
| | | |
| | | console.log(schedule_arr, 1002) |
| | | |
| | | // debugger |
| | | // 当某个容量存在三个不同的工单时 下面这个if逻辑存在问题 |
| | | if (schedule_arr && schedule_arr.length > 0) { |
| | | // 找到同一设备下的end最大值 |
| | | // const maxEnd = schedule_arr.sort((a, b) => new Date(b.end).getTime() - new Date(a.end).getTime())[0].end |
| | | |
| | | 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('capacity', item.end === '2023-02-09 13:30:00') |
| | | |
| | | temp.start = this.MinutesTest(item.end) |
| | | // temp.start = item.end |
| | | // temp.start = maxEnd |
| | | // temp.start = '2023-02-09 13:30:00' |
| | | return temp |
| | | }) |
| | | console.log(scheduleCan, 'scheduleCan') |
| | | |
| | | // scheduleCan.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime()) |
| | | // scheduleCan = scheduleCan.filter((currentValue, currentIndex, selfArr) => { |
| | | // return selfArr.findIndex(item => item.id === currentValue.id) === currentIndex |
| | | // }) |
| | | // console.log(scheduleCan, 'scheduleCan2') |
| | | const newSchedule = JSON.parse(JSON.stringify(scheduleCan)) |
| | | capacity_arr = newSchedule.concat(capacity_arr) |
| | | |
| | | 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 |
| | | } |
| | | console.log(schedule_arr) |
| | | console.log('可排程数组', capacity_arr) |
| | | }) |
| | | }) |
| | | |
| | | // 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) |
| | |
| | | ) { |
| | | if (data.id === id_obj.id) { |
| | | data.start = this.MinutesTest(id_obj.start_time) |
| | | console.log(data.start, 999) |
| | | // 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 |