From 312d3360e5f67a16163b8640ee0b50471c843c29 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期三, 15 三月 2023 17:03:03 +0800
Subject: [PATCH] 1.自动排程 单选工单情况下的代码逻辑进行备份
---
src/views/scgl/zdpc_back.vue | 1899 ++++++++++++++++++++++++++---------------------------------
1 files changed, 836 insertions(+), 1,063 deletions(-)
diff --git a/src/views/scgl/zdpc_back.vue b/src/views/scgl/zdpc_back.vue
index 074362a..716955d 100644
--- a/src/views/scgl/zdpc_back.vue
+++ b/src/views/scgl/zdpc_back.vue
@@ -8,10 +8,10 @@
:model="formTop"
label-width="100px"
inline
- style="display: flex;justify-content: space-between"
+ style="display: flex;"
>
<div class="elForm">
- <el-form-item label-width="70px" label="杞﹂棿缂栫爜" style=" display: flex;">
+ <el-form-item label="杞﹂棿缂栫爜" style=" display: flex;">
<el-input v-model="formTop.workshop" placeholder="璇疯緭鍏�" style="width: 200px" />
</el-form-item>
<el-form-item label="鐢熶骇宸ュ崟鍙�" style=" display: flex;">
@@ -24,9 +24,12 @@
<el-input v-model="formTop.partname" placeholder="璇疯緭鍏�" style="width: 200px" />
</el-form-item>
</div>
- <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened?'5%':'10%'}">
- <el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
- <el-button type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
</div>
</el-form>
<div
@@ -71,6 +74,7 @@
/>
<el-table-column
prop="AdvaSchePiroQue"
+ show-tooltip-when-overflow
label="浼樺厛绾�"
width="90"
sortable="custom"
@@ -112,6 +116,7 @@
prop="AdvaSchePartSpec"
label="浜у搧瑙勬牸"
width="110"
+ show-tooltip-when-overflow
sortable="custom"
>
<template slot-scope="{row}">
@@ -122,6 +127,7 @@
<el-table-column
prop="AdvaScheQty"
label="鏁伴噺"
+ show-tooltip-when-overflow
width="110"
sortable="custom"
/>
@@ -129,11 +135,13 @@
prop="AdvaScheEndDate"
label="瑕佹眰浜や粯鏃堕棿"
sortable="custom"
+ show-tooltip-when-overflow
width="160"
/>
<el-table-column
prop="AdvaScheStus"
label="鎺掔▼鐘舵��"
+ show-tooltip-when-overflow
width="110"
sortable="custom"
>
@@ -145,17 +153,19 @@
<el-table-column
prop="AdvaScheBotProcName"
label="鎺掔▼宸ュ簭"
+ show-tooltip-when-overflow
width="110"
sortable="custom"
/>
<el-table-column
prop="AdvaSchePCStartDate"
label="璁″垝鎺掔▼鏃堕棿"
- width="160"
+ width="200"
sortable="custom"
+ show-tooltip-when-overflow
>
<template slot-scope="{row}">
- <div v-if="row.AdvaSchePCStartDate">{{ row.AdvaSchePCStartDate }}</div>
+ <div v-if="row.AdvaSchePCStartDate">{{ row.AdvaSchePCStartDate }} ~ {{ row.AdvaSchePCEndDate }}</div>
<div v-else>/</div>
</template>
</el-table-column>
@@ -181,12 +191,14 @@
ref="form"
:model="formBottom"
inline
- style="display: flex;justify-content: space-between"
+ label-width="100px"
+ style="display: flex;"
>
<div class="elForm">
- <el-form-item label-width="70px" label="鎺掔▼鏃ユ湡" style=" display: flex;">
+ <el-form-item label="鎺掔▼鏃ユ湡" style=" display: flex;">
<el-date-picker
v-model="formBottom.scheDate"
+ :disabled="radioSelectedId===''"
type="daterange"
range-separator="~"
format="yyyy-MM-dd"
@@ -196,25 +208,31 @@
size="small"
:picker-options="pickerOptions1"
:clearable="false"
- @change="change_time"
+ @change="dateChange"
/>
</el-form-item>
<el-form-item label="鎺掔▼鏂瑰紡" style=" display: flex;">
- <el-select v-model="formBottom.types" style="width:120px" @change="changeTypes">
+ <el-select
+ v-model="formBottom.types"
+ :disabled="radioSelectedId===''"
+ style="width:120px"
+ @change="typesChange"
+ >
<el-option value="N" label="璁惧浼樺厛" />
<el-option value="Y" label="鏃堕棿浼樺厛" />
</el-select>
</el-form-item>
- <el-form-item label="鏃堕棿鍒诲害锛堝垎閽燂級" style=" display: flex;">
- <el-select v-model.number="formBottom.scale" style="width: 120px;">
+ <el-form-item label="鏃堕棿鍒诲害(鍒嗛挓)" label-width="110" style=" display: flex;">
+ <el-select v-model.number="formBottom.scale" :disabled="radioSelectedId===''" style="width: 120px;">
<el-option v-for="item in scaleList" :key="item" :value="item" :label="item" />
</el-select>
</el-form-item>
- <el-form-item label="鎹㈠瀷鏃堕棿锛堝垎閽燂級" style=" display: flex;">
+ <el-form-item label="鎹㈠瀷鏃堕棿(鍒嗛挓)" label-width="110" style=" display: flex;">
<el-input
id="scale"
v-model="formBottom.times"
+ :disabled="radioSelectedId===''"
type="number"
style="display:inline-block;width:80px;"
@change="no_zero"
@@ -222,26 +240,39 @@
</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>
- <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened?'5%':'10%'}">
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
<el-button
+ v-waves
+ :disabled="radioSelectedId===''"
type="primary"
icon="el-icon-document-remove"
- @click="click_schedule"
+ @click="prepareArrange"
>棰勬帓
</el-button>
<el-button
+ v-waves
type="primary"
+ :disabled="radioSelectedId===''"
icon="el-icon-document-checked"
- @click="click_yes"
+ @click="prepareSubmit"
>鎻愪氦
</el-button>
</div>
</el-form>
+ <div class="colorDescription">
+ <div class="colorDescriptionItem"><i class="el-icon-s-opportunity" style="margin-right: 5px;color: rgba(5, 185, 100, 0.5)" />浜ц兘</div>
+ <div class="colorDescriptionItem"><i class="el-icon-s-opportunity" style="margin-right: 5px;color: rgba(5, 185, 100, 1)" />宸叉帓</div>
+ <div class="colorDescriptionItem"><i class="el-icon-s-opportunity" style="margin-right: 5px;color:rgba(128,0,128,0.7)" />棰勬帓</div>
+ <!-- <div class="colorDescriptionItem"><i class="el-icon-s-opportunity" style="margin-right: 5px;color: #a7a7a7" />澶辨晥浜ц兘</div>-->
+ </div>
<div
class="bodyTopFormExpand"
style="height: 5px"
@@ -254,7 +285,6 @@
:end-time="time_data[1]"
:cell-width="cellWidth"
:cell-height="cellHeight"
- :time-lines="timeLines"
:title-height="titleHeight"
:scale="formBottom.scale"
:title-width="titleWidth"
@@ -262,18 +292,22 @@
:hide-header="hideHeader"
:data-key="dataKey"
:array-keys="arrayKeys"
- :scroll-to-postion="positionA"
- :datas="bm_data"
- @scrollLeft="scrollLeftA"
+
+ :datas="schedulingData"
>
+ <!-- 鏆傛椂鐢ㄤ笉鍒�-->
+ <!-- :time-lines="timeLines"-->
+ <!-- @scrollLeft="scrollLeftA"-->
+ <!-- :scroll-to-postion="positionA"-->
<template slot="block" slot-scope="{data,item}">
<Test
:data="data"
- :update-time-lines="updateTimeLines"
:cell-height="cellHeight"
- :current-time="currentTime"
:item="item"
/>
+ <!-- 鏆傛椂鐢ㄤ笉鍒�-->
+ <!-- :update-time-lines="updateTimeLines"-->
+ <!-- :current-time="currentTime"-->
</template>
<template slot="left" slot-scope="{data}">
<div class="name">
@@ -281,13 +315,13 @@
<el-checkbox
v-model="data.status"
style="margin-right:5px;"
- @change="click_box(data)"
+ @change="checkboxSingle(data)"
/>
{{ data.id }} {{ data.name }}
</div>
<div class="speed">
<!-- <el-tooltip class="item" effect="dark" content="鏌ョ湅" placement="top">-->
- <!-- <el-button type="text" size="mini" @click="look(data)">-->
+ <!-- <el-button v-waves type="text" size="mini" @click="look(data)">-->
<!-- <i class="el-icon-document size i-color" />-->
<!-- </el-button>-->
<!-- </el-tooltip>-->
@@ -296,8 +330,20 @@
</template>
<template slot="title">
<span class="tc">宸ヤ綅鍒楄〃</span>
- <el-checkbox v-model="all_status" class="box_style" @change="changeLift()" />
- <input v-model.number="cellWidth" type="range" min="20" max="100" class="box_styles">
+ <el-checkbox
+ v-model="ganttCheckboxAll"
+ class="box_style"
+ :disabled="radioSelectedId===''"
+ @change="checkboxAll()"
+ />
+ <input
+ v-model.number="cellWidth"
+ type="range"
+ min="20"
+ max="100"
+ class="box_styles"
+ :disabled="radioSelectedId===''"
+ >
</template>
</v-gantt-chart>
</div>
@@ -313,16 +359,15 @@
import Test from '@/components/Test'
import dayjs from 'dayjs'
import { AdvancedSchedulingSearch, OnclickAdvancedSchedulingDevice, SubmitAlreadyScheduling } from '@/api/scgl'
-import { handleDatetime } from '@/utils/global'
-
-const scaleList = `30,60,240,360`.split(',').map(n => parseInt(n))
-const timeList = `0,30,60,120,240,480`.split(',').map(n => parseInt(n))
+import { handleDatetime, handleDatetime2 } from '@/utils/global'
+import waves from '@/directive/waves'
export default {
name: 'Zzjg',
components: {
Pagination, Test
},
+ directives: { waves },
data() {
return {
mouseHoverType: 'mouseout',
@@ -352,27 +397,14 @@
}
},
- keep_data: [],
- all_status: true,
- look_data: [],
- look_total: 0,
- cl_name: '',
- cl_code: '',
- work_order: '',
- false_arr: [],
- ckeckVal: true,
- AdvaScheUom: '',
- list: [],
- form: {
- WorkShop: '',
- PartNumber: '',
- PartName: '',
- rows: 10,
- page: 1
- },
- showDialog: false,
- time_data: [],
- forms: {
+ ganttCheckboxAll: true, // 鐢樼壒鍥惧乏渚у閫夋鏄惁閫変腑鎴栬�呭彇娑�
+ ganttLeftArrId: [], // 鐢樼壒鍥惧乏渚х殑鏁扮粍id
+ cl_name: '', // 浜у搧鍚嶇О
+ cl_code: '', // 浜у搧缂栫爜
+ work_order: '', // 宸ュ崟缂栧彿
+ AdvaScheUom: '', // 浜у搧鍗曚綅
+ time_data: [[handleDatetime(new Date()) + ' 00:00:00'], [handleDatetime(new Date()) + ' 00:00:00']], // 鐢樼壒鍥惧垵濮嬫覆鏌撶殑鏃堕棿鑼冨洿
+ forms: { // 鐐瑰嚮琛岃幏鍙栦俊鎭� 璇锋眰鎺ュ彛 鐨勬暟鎹璞�
wocode: '', // 宸ュ崟缂栧彿
wkshpcode: '', // 杞﹂棿缂栫爜
partcode: '', // 鐗╂枡缂栫爜
@@ -380,96 +412,52 @@
startdate: '', // 寮�濮嬫棩鏈�
enddate: ''// 缁撴潫鏃ユ湡
},
- click_one: 0,
- datasC: [],
- radio: '',
-
- formBottom: {
+ formBottom: { // 搴曢儴琛ㄥ崟鐨� 鏁版嵁瀵硅薄
scheDate: [handleDatetime(new Date()), handleDatetime(new Date())], // 鎺掔▼鏃ユ湡
types: 'N', // 鎺掔▼鏂瑰紡
scale: 60, // 鏃堕棿鍒诲害
times: 0, // 鎹㈠瀷鏃堕棿
- real_num: 0, // 棰勬帓杩涘害
- meter: 0// 鑺傛媿
+ canArrangeNumber: 0, // 鍙帓鏁伴噺
+ needArrangeNumber: 0// 闇�鎺掓暟閲�
},
+ schedulingData: [], // 鎺掔▼鐨勬渶缁堟暟鎹�
+ timeTopTempData: [], // 鏃堕棿浼樺厛鐨勪复鏃舵暟鎹�
+ eqpTopTempData: [], // 璁惧浼樺厛鐨勪复鏃舵暟鎹�
- no: false,
- total: 0,
- mn_data: [],
- bm_data: [],
- facility_data: [],
- end_start: '',
- timeLines: [
- {
- time: dayjs()
- .add(2, 'hour')
- .toString()
- },
- {
- time: dayjs()
- .add(5, 'hour')
- .toString(),
- color: '#747e80'
- }
- ],
- formUpdata: {
+ formUpdate: {
WorkCode: '',
BotProceCode: '',
json: []
},
- currentTime: dayjs(),
- startTime: dayjs()
- .subtract(5, 'hour')
- .toString(),
- endTime: dayjs()
- .add(2, 'day')
- .add(2, 'hour')
- .toString(),
+ // currentTime: dayjs(),
cellWidth: 50,
cellHeight: 30,
titleHeight: 40,
titleWidth: 250,
-
- // datasNum: 100,
- datasA: [],
- // datasB: mockDatas(100),
dataKey: 'id',
-
- timeList: timeList,
- scaleList: scaleList,
- scrollToTime: dayjs()
- .add(1, 'day')
- .toString(),
- scrollToPostion: { x: 10000, y: 10000 },
+ // 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'],
- scrollToY: 0,
- positionB: {},
- positionA: {},
-
- title_list: [],
- imp_id: '',
- submit_flag: false,
- search_from: {
- page: 1,
- rows: 10,
- WorkTime: '',
- BotProceName: ''
- }
+ arrayKeys: ['gtArray', 'error']
}
},
- watch: {
- // datasNum(newV) {
- // // this.datasA = mockDatas(newV)
- // // this.datasB = mockDatas(newV)
- // },
- scrollToY(val) {
- this.positionA = { x: val }
- }
- },
+
created() {
- this.getAdvancedSchedulingSearch()
+ const loading = this.$loading({
+ lock: true,
+ text: '姝e湪鍔犺浇鏁版嵁锛岃绋嶇瓑...',
+ spinner: 'el-icon-loading',
+ customClass: 'osloading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
+ setTimeout(() => {
+ if (this.getAdvancedSchedulingSearch()) {
+ loading.close()
+ }
+ }, 3000)
+
+ // this.getAdvancedSchedulingSearch()
},
mounted() {
window.addEventListener('resize', this.getHeight)
@@ -480,6 +468,8 @@
const res = await AdvancedSchedulingSearch(this.formTop)
this.tableData = res.data
this.totalTop = res.count
+
+ return true
},
// 鎺掑簭鏀瑰彉鏃�
sortChangeTop({ column, prop, order }) {
@@ -517,156 +507,144 @@
tableRowClassName({ row, rowIndex }) {
return 'custom-row'
},
- // 琛岀偣鍑讳簨浠�
- // async rowClick(row, event, column) {
- // this.radioSelectedId = row.AdvaScheId
- //
- // // this.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 //鍙互鍋氫釜鏁�
- //
- // const data = {
- // wocode: row.AdvaScheWorkCode,
- // wkshpcode: row.AdvaScheWorkShopid,
- // partcode: row.AdvaSchePartNumber,
- // botproccode: row.AdvaScheBotProcid,
- // startdate: handleDatetime(new Date()),
- // enddate: row.AdvaScheEndDate
- // }
- //
- // const res = await OnclickAdvancedSchedulingDevice(data)
- // console.log(res)
- // },
-
/*
鎺掔▼閮ㄥ垎鐨勬柟娉�
*/
- AdvancedSchedulingWorkShop() {
- // automaticScheduling.AdvancedSchedulingWorkShop().then(res => {
- // this.list = res
- // })
- },
- resetFormcx() {
- this.$nextTick(() => {
- this.$refs.form.resetFields()
- })
- },
+ // 纭繚鎹㈠瀷鏃堕棿涓洪潪璐熸暟
no_zero() {
if (this.formBottom.times < 0) {
this.formBottom.times = 0
}
},
- // 宸ヤ綅鍒楄〃澶嶉�夋鎿嶄綔
- changeLift() {
- if (this.all_status) {
- this.false_arr = []
- this.getOnclickAdvancedSchedulingDevice()
- } else {
- for (const i in this.bm_data) {
- this.bm_data[i].status = false
- this.bm_data[i].gtArray = []
- }
- for (const i in this.facility_data) {
- this.facility_data[i].gtArray = []
- }
- }
- // this.click_schedule()
- },
- changeTypes() {
+ // 鎺掔▼鏂瑰紡鏀瑰彉
+ typesChange() {
this.getOnclickAdvancedSchedulingDevice()
},
- change_time() {
+ // 鎺掔▼鏃ユ湡鍊兼敼鍙樻椂
+ 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()
},
- click_box(val) {
- console.log(val, 567)
+ // 宸ヤ綅鍒楄〃澶嶉�夋鎿嶄綔 (鍏ㄩ�夈�佸叏涓嶉��)
+ checkboxAll() {
+ if (this.ganttCheckboxAll) {
+ this.ganttLeftArrId = []
+ this.getOnclickAdvancedSchedulingDevice()
+ } else {
+ for (const i in this.schedulingData) {
+ this.schedulingData[i].status = false
+ this.schedulingData[i].gtArray = []
+ }
+ for (const i in this.timeTopTempData) {
+ this.timeTopTempData[i].gtArray = []
+ }
+ }
+ // this.prepareArrange()
+ },
+ // 鐢樼壒鍥惧乏渚heckbox鍊奸�変腑鎴栬�呭彇娑堟椂
+ checkboxSingle(val) {
if (!val.status) {
- for (const i in this.facility_data) {
+ for (const i in this.timeTopTempData) {
const new_arr = []
- for (const j in this.facility_data[i].gtArray) {
- if (this.facility_data[i].gtArray[j].id == val.id) {
+ for (const j in this.timeTopTempData[i].gtArray) {
+ if (this.timeTopTempData[i].gtArray[j].id === val.id) {
} else {
- new_arr.push(this.facility_data[i].gtArray[j])
+ new_arr.push(this.timeTopTempData[i].gtArray[j])
}
}
- this.facility_data[i].gtArray = new_arr
+ this.timeTopTempData[i].gtArray = new_arr
}
} else {
- this.false_arr = []
- for (const i in this.bm_data) {
- if (!this.bm_data[i].status) {
- this.false_arr.push(this.bm_data[i].id)
+ this.ganttLeftArrId = []
+ for (const i in this.schedulingData) {
+ if (!this.schedulingData[i].status) {
+ this.ganttLeftArrId.push(this.schedulingData[i].id)
}
}
this.getOnclickAdvancedSchedulingDevice()
}
if (!val.status) {
- for (const i in this.bm_data) {
- if (!this.bm_data[i].status) {
- this.bm_data[i].gtArray = []
+ for (const i in this.schedulingData) {
+ if (!this.schedulingData[i].status) {
+ this.schedulingData[i].gtArray = []
}
}
} else {
- this.false_arr = []
- for (const i in this.bm_data) {
- if (!this.bm_data[i].status) {
- this.false_arr.push(this.bm_data[i].id)
+ this.ganttLeftArrId = []
+ for (const i in this.schedulingData) {
+ if (!this.schedulingData[i].status) {
+ this.ganttLeftArrId.push(this.schedulingData[i].id)
}
}
this.getOnclickAdvancedSchedulingDevice()
}
- for (const i in this.bm_data) {
+ for (const i in this.schedulingData) {
const arr = []
- for (const j in this.bm_data[i].gtArray) {
- if (this.bm_data[i].gtArray[j].type != 'schedule') {
- arr.push(this.bm_data[i].gtArray[j])
+ for (const j in this.schedulingData[i].gtArray) {
+ if (this.schedulingData[i].gtArray[j].type !== 'schedule') {
+ arr.push(this.schedulingData[i].gtArray[j])
}
}
- this.bm_data[i].gtArray = arr
+ this.schedulingData[i].gtArray = arr
}
- this.formBottom.real_num = 0
- // this.click_schedule()
+ this.formBottom.canArrangeNumber = 0
+ // this.prepareArrange()
},
- look(data) {
- this.showDialog = true
- this.search_from.DeviceCode = data.id
- this.AdvancedSchedulingEquipmenTask()
- },
- AdvancedSchedulingEquipmenTask() {
- // automaticScheduling
- // .AdvancedSchedulingEquipmenTask(this.search_from)
- // .then(res => {
- // this.look_data = res.rows
- // this.look_total = res.total
- // })
- },
- // sizeChange_look(val) {
- // this.search_from.rows = val
- // this.AdvancedSchedulingEquipmenTask()
- // },
- // pageChange_look(val) {
- // this.search_from.page = val
- // this.AdvancedSchedulingEquipmenTask()
- // },
// 鐐瑰嚮甯﹀嚭鏁版嵁
- async getOnclickAdvancedSchedulingDevice() {
- await this.facility_top()// 璁惧浼樺厛
-
+ async getOnclickAdvancedSchedulingDevice() {
const res = await OnclickAdvancedSchedulingDevice(this.forms)
- 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
- for (const i in this.time_all.rows[0].children) {
+ if (res.rus.Message) {
+ this.$message.error(res.rus.Message)
+ }
+
+ const data = res.rows // 鎷垮埌寰呮帓鏁版嵁 瀵规暟鎹繘琛屾敼閫�
+ const cont = res.Cont // 鎷垮埌宸叉帓鏁版嵁 瀵规暟鎹繘琛屾敼閫�
+
+ this.formBottom.canArrangeNumber = 0
+
+ // 灏嗕簲涓椂闂存杩涜璧嬪��
+ 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 (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 鏆傚瓨
+ data[0].children.forEach(item => {
const obj = {
id: '',
name: '',
- AdvaDevicRhythm: '',
+ AdvaDevicRhythm: '', // 鑺傛媿澶氬皯绉掔敓浜т竴涓紙鐢熶骇鑺傛媿锛�
status: true,
colorPair: {
dark: 'rgb(83, 186, 241,0.8)',
@@ -677,775 +655,124 @@
},
gtArray: []
}
- obj.id = this.time_all.rows[0].children[i].AdvaDevicNumber
- obj.name = this.time_all.rows[0].children[i].AdvaDevicName
- obj.AdvaDevicRhythm = this.time_all.rows[0].children[
- i
- ].AdvaDevicRhythm
+ obj.id = item.AdvaDevicNumber
+ obj.name = item.AdvaDevicName
+ obj.AdvaDevicRhythm = item.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 != '') {
- this.time_all.rows[i].children[
- j
- ].OneStartDate = this.time_all.rows[i].children[
- j
- ].OneStartDate.split('~')
- this.time_all.rows[i].children[j].OneStartDate[0] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].OneStartDate[0]
- this.time_all.rows[i].children[j].OneStartDate[1] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].OneStartDate[1]
- }
- if (this.time_all.rows[i].children[j].TwoStartDate != '') {
- this.time_all.rows[i].children[
- j
- ].TwoStartDate = this.time_all.rows[i].children[
- j
- ].TwoStartDate.split('~')
- this.time_all.rows[i].children[j].TwoStartDate[0] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].TwoStartDate[0]
- this.time_all.rows[i].children[j].TwoStartDate[1] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].TwoStartDate[1]
- }
- if (this.time_all.rows[i].children[j].ThreeStartDate != '') {
- this.time_all.rows[i].children[
- j
- ].ThreeStartDate = this.time_all.rows[i].children[
- j
- ].ThreeStartDate.split('~')
- this.time_all.rows[i].children[j].ThreeStartDate[0] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].ThreeStartDate[0]
- this.time_all.rows[i].children[j].ThreeStartDate[1] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].ThreeStartDate[1]
- }
- if (this.time_all.rows[i].children[j].FourStartDate != '') {
- this.time_all.rows[i].children[
- j
- ].FourStartDate = this.time_all.rows[i].children[
- j
- ].FourStartDate.split('~')
- this.time_all.rows[i].children[j].FourStartDate[0] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].FourStartDate[0]
- this.time_all.rows[i].children[j].FourStartDate[1] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].FourStartDate[1]
- }
- if (this.time_all.rows[i].children[j].FiveStartDate != '') {
- this.time_all.rows[i].children[
- j
- ].FiveStartDate = this.time_all.rows[i].children[
- j
- ].FiveStartDate.split('~')
- this.time_all.rows[i].children[j].FiveStartDate[0] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].FiveStartDate[0]
- this.time_all.rows[i].children[j].FiveStartDate[1] =
- this.time_all.rows[i].YearDate +
- ' ' +
- this.time_all.rows[i].children[j].FiveStartDate[1]
- }
- }
- }
- // 缁勫悎鏂扮殑缁撴瀯
+ })
+
+ // 缁勫悎鏂扮殑缁撴瀯 娴呯豢鑹茶儗鏅潯
const newList = []
- 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 != '') {
+ for (const i in data) {
+ for (const j in data[i].children) {
+ if (data[i].children[j].OneStartDate !== '') {
const data1 = {
id: '',
start: '',
end: '',
mod: ''
}
- data1.id = this.time_all.rows[i].children[j].AdvaDevicNumber
- data1.start = this.time_all.rows[i].children[j].OneStartDate[0]
- data1.end = this.time_all.rows[i].children[j].OneStartDate[1]
- data1.mod =
- (this.time_all.rows[i].children[j].AdvaDevicCropMob * 1) /
- 100
+ data1.id = data[i].children[j].AdvaDevicNumber
+ data1.start = data[i].children[j].OneStartDate[0]
+ data1.end = data[i].children[j].OneStartDate[1]
+ // AdvaDevicCropMob 绋煎姩鐜� AdvaDevicRhythm 鐢熶骇鑺傛媿
+ data1.mod = (data[i].children[j].AdvaDevicCropMob * 1) / 100 // 绋煎姩鐜�
newList.push(data1)
}
- if (this.time_all.rows[i].children[j].TwoStartDate != '') {
+ if (data[i].children[j].TwoStartDate !== '') {
const data2 = {
id: '',
start: '',
end: '',
mod: ''
}
- data2.id = this.time_all.rows[i].children[j].AdvaDevicNumber
- data2.start = this.time_all.rows[i].children[j].TwoStartDate[0]
- data2.end = this.time_all.rows[i].children[j].TwoStartDate[1]
- data2.mod =
- (this.time_all.rows[i].children[j].AdvaDevicCropMob * 1) /
- 100
+ 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
newList.push(data2)
}
- if (this.time_all.rows[i].children[j].ThreeStartDate != '') {
+ if (data[i].children[j].ThreeStartDate !== '') {
const data3 = {
id: '',
start: '',
end: '',
mod: ''
}
- data3.id = this.time_all.rows[i].children[j].AdvaDevicNumber
- data3.start = this.time_all.rows[i].children[
- j
- ].ThreeStartDate[0]
- data3.end = this.time_all.rows[i].children[j].ThreeStartDate[1]
- data3.mod =
- (this.time_all.rows[i].children[j].AdvaDevicCropMob * 1) /
- 100
+ data3.id = data[i].children[j].AdvaDevicNumber
+ 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
newList.push(data3)
}
- if (this.time_all.rows[i].children[j].FourStartDate != '') {
+ if (data[i].children[j].FourStartDate !== '') {
const data4 = {
id: '',
start: '',
end: '',
mod: ''
}
- data4.id = this.time_all.rows[i].children[j].AdvaDevicNumber
- data4.start = this.time_all.rows[i].children[
- j
- ].FourStartDate[0]
- data4.end = this.time_all.rows[i].children[j].FourStartDate[1]
- data4.mod =
- (this.time_all.rows[i].children[j].AdvaDevicCropMob * 1) /
- 100
+ data4.id = data[i].children[j].AdvaDevicNumber
+ 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
newList.push(data4)
}
- if (this.time_all.rows[i].children[j].FiveStartDate != '') {
+ if (data[i].children[j].FiveStartDate !== '') {
const data5 = {
id: '',
start: '',
end: '',
mod: ''
}
- data5.id = this.time_all.rows[i].children[j].AdvaDevicNumber
- data5.start = this.time_all.rows[i].children[
- j
- ].FiveStartDate[0]
- data5.end = this.time_all.rows[i].children[j].FiveStartDate[1]
- data5.mod =
- (this.time_all.rows[i].children[j].AdvaDevicCropMob * 1) /
- 100
+ data5.id = data[i].children[j].AdvaDevicNumber
+ 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
newList.push(data5)
}
}
}
+
for (const i in list) {
- this.pushTiem(newList, list[i].id, list[i].gtArray)
+ this.pushItem(newList, list[i].id, list[i].gtArray)
}
- this.bm_data = list
- console.log(this.bm_data, 678)
- const _this = this
- if (cont != '') {
+
+ this.schedulingData = list
+
+ if (cont !== '') {
for (const i in cont) {
- for (const j in this.bm_data) {
- if (this.bm_data[j].id == cont[i].eqp_code) {
+ for (const j in this.schedulingData) {
+ if (this.schedulingData[j].id === cont[i].eqp_code) {
const data = {
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.bm_data[j].flag = 'isCont'
- this.bm_data[j].gtArray.unshift(data)
+ this.schedulingData[j].gtArray.unshift(data)
}
}
}
}
- if (this.false_arr != '') {
- for (const j in this.bm_data) {
- if (this.false_arr.indexOf(this.bm_data[j].id) >= 0) {
- this.bm_data[j].gtArray = []
- this.bm_data[j].status = false
+ if (this.ganttLeftArrId !== '') {
+ for (const j in this.schedulingData) {
+ if (this.ganttLeftArrId.indexOf(this.schedulingData[j].id) >= 0) {
+ this.schedulingData[j].gtArray = []
+ this.schedulingData[j].status = false
}
}
}
- // this.$forceUpdate()
- },
- // 鎹㈠瀷鏃堕棿
- MinutesTest(time) {
- var sdate1 = new Date(time)
- sdate1.setMinutes(sdate1.getMinutes() + this.formBottom.times * 1)
- var now =
- sdate1.getFullYear() +
- '-' +
- this.add_one(sdate1.getMonth()) +
- '-' +
- sdate1.getDate() +
- ' ' +
- sdate1.getHours() +
- ':' +
- sdate1.getMinutes() +
- ':' +
- sdate1.getSeconds()
- return now
- },
- // +1
- add_one(date) {
- return parseInt(date) + 1
- },
- // 鎻掑叆浜ц兘鏃堕棿娈�
- pushTiem(newList, id, arr) {
- for (const i in newList) {
- if (newList[i].id == id) {
- const data = {
- start: newList[i].start,
- end: newList[i].end,
- id: newList[i].id,
- mod: newList[i].mod,
- type: 'capacity'
- }
- arr.push(data)
- }
- }
- },
- getNowFormatDate() {
- var date = new Date()
- var seperator1 = '-'
- var year = date.getFullYear()
- var month = date.getMonth() + 1
- // var strDate = date.getDate()+1;
- var strDate = date.getDate()
- if (month >= 1 && month <= 9) {
- month = '0' + month
- }
- if (strDate >= 0 && strDate <= 9) {
- strDate = '0' + strDate
- }
- var currentdate = year + seperator1 + month + seperator1 + strDate
- return currentdate
- },
- // 琛岀偣鍑讳簨浠�
- getCurrentRow(row) {
- this.radioSelectedId = row.AdvaScheId
- // this.show =true
- this.formBottom.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 鍙互鍋氫釜鏁�
- this.formBottom.scheDate = []
- this.cl_name = row.AdvaSchePartName
- this.cl_code = row.AdvaSchePartNumber
- this.AdvaScheUom = row.AdvaScheUom
- this.work_order = row.AdvaScheWorkCode
-
- this.formBottom.scheDate.push(this.getNowFormatDate())
- this.formBottom.scheDate.push(row.AdvaScheEndDate)
- if (this.formBottom.scheDate != '') {
- this.time_data[0] = this.formBottom.scheDate[0] + ' 00:00'
- this.time_data[1] = this.formBottom.scheDate[1] + ' 23:59'
- }
- this.forms.wocode = row.AdvaScheWorkCode
- this.forms.wkshpcode = row.AdvaScheWorkShopid
- this.forms.partcode = row.AdvaSchePartNumber
- this.forms.botproccode = row.AdvaScheBotProcid
- this.forms.startdate = this.getNowFormatDate()
- this.forms.enddate = row.AdvaScheEndDate
- this.getOnclickAdvancedSchedulingDevice()
- this.formUpdata.WorkCode = row.AdvaScheWorkCode
- this.formUpdata.BotProceCode = row.AdvaScheBotProcid
- this.search_from.WorkTime =
- this.getNowFormatDate() + '~' + row.AdvaScheEndDate
- this.search_from.BotProceName = row.AdvaScheBotProcName
- },
- // 鎻愪氦鎺掔▼
- async click_yes() {
- if (this.submit_flag) {
- 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') {
- arr.push(this.bm_data[i].gtArray[j])
- }
- }
- if (arr != '') {
- for (const i in arr) {
- const data = {
- AlreDevicNumber: '',
- AlreStartDate: '',
- AlreEndDate: '',
- AlreQty: ''
- }
- data.AlreDevicNumber = arr[i].id
- data.AlreStartDate = arr[i].start
- data.AlreEndDate = arr[i].end
- data.AlreQty = arr[i].number
- list.push(data)
- }
- }
- }
- // 鎺掔▼鐩稿悓璁惧鑾峰彇寮�濮嬫椂闂� 缁撴潫鏃堕棿 鏁伴噺鐨勬�诲拰
- // 杩囨护
- let updata = []
- for (const i in list) {
- if (list[i].AlreStartDate != '') {
- updata.push(list[i])
- }
- }
-
- updata = JSON.stringify(updata)
- this.formUpdata.json = updata
- 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)
-
- const res = await SubmitAlreadyScheduling(formData)
-
- if (res.code === '200') {
- this.$message.success(res.Message)
- }
-
- this.formBottom.meter = 0
- this.formBottom.real_num = 0
- await this.getOnclickAdvancedSchedulingDevice()
- await this.getAdvancedSchedulingSearch()
- }
- },
- // 鏃堕棿/璁惧浼樺厛鎺掔▼
- click_schedule() {
- const timestamp = new Date().toLocaleDateString()
- if (new Date(this.formBottom.scheDate[0]) < new Date(timestamp)) {
- this.$message.error('鎺掔▼鏃堕棿涓嶅彲浠ュ皬浜庡綋鍓嶆椂闂�!')
- return false
- }
-
- this.nitialize()// 鎵嬪姩杩囨护鎵�鏈夎澶囧凡鎺掔▼
-
- 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') { // 鏃堕棿浼樺厛
- this.time_nitalize()
- this.fun_facility()
- this.dataTransition()
- this.change_num(this.bm_data)
- }
- this.$forceUpdate()
- },
- // 鎵嬪姩杩囨护鎵�鏈夋椂闂村凡鎺掔▼
- time_nitalize() {
- for (const i in this.facility_data) {
- this.facility_data[i].gtArray = this.facility_data[i].gtArray.filter(item => item.type != 'schedule')
- }
- },
- // 鎵嬪姩杩囨护鎵�鏈夎澶囧凡鎺掔▼
- nitialize() {
- 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') {
- newArr.push(this.bm_data[i].gtArray[j])
- }
- }
- this.bm_data[i].gtArray = newArr
- }
- },
- // 缁欐帓绋嬫渶鍚庝竴涓慨鏀规暟閲�
- change_num(arr) {
- this.formBottom.real_num = 0 // 鐪熷疄宸叉帓鏁伴噺
- let num = 0 // 鍙栨暣宸叉帓鏁伴噺
- const arr_num = [] // 宸叉帓鏁版嵁
- let mend_num = 0
- const len = 0
- for (const i in arr) {
- for (const j in arr[i].gtArray) {
- if (arr[i].gtArray[j].type == 'schedule') {
- arr_num.unshift(arr[i].gtArray[j])
- }
- }
- }
-
- for (const n in arr_num) {
- this.formBottom.real_num += 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
- if (y10 <= 10) {
- this.formBottom.real_num = this.formBottom.meter
- 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.bm_data) {
- for (const j in this.bm_data[i].gtArray) {
- if (
- this.bm_data[i].gtArray[j].type == 'schedule' &&
- this.bm_data[i].gtArray[j].end_num
- ) {
- this.bm_data[i].gtArray[j].number =
- this.bm_data[i].gtArray[j].number * 1 + mend_num
- }
- }
- }
- },
- fun_time() {
- let all_num = this.formBottom.meter
- const all_time = []
- let flag1 = 0
- const mod = this.bm_data[0].mod
- // let nowTime = this.bm_data[0].AdvaDevicRhythm*all_num
- for (const i in this.bm_data) {
- let end_arr = [] // 宸叉帓绋嬬殑鏁扮粍
- let nend_arr = [] // 寰呮帓绋嬬殑鏁扮粍
- const add_arr = [] // 宸叉帓绋嬬殑鏁扮粍
- 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')
- if (end_arr && end_arr.length > 0) {
- capacity_arr = nend_arr.map(item => {
- // 鎺掗櫎鎺夊凡缁忔帓绋嬬殑瀛樺湪hshedule锛宻tart锛宔nd閮界浉绛夌殑鎯呭喌
- 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()
- })
- if (schedule && schedule.length > 0) {
- item.start = this.MinutesTest(schedule[0]['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()
- })
- if (schedule1 && schedule1.length > 0) {
- item.capacity = false
- }
-
- return item
- }).filter(item => item.capacity != false)
- } else {
- capacity_arr = nend_arr
- }
-
- const id_obj = {
- id: '',
- start_time: ''
- }
- if (end_arr != '') {
- (id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
- }
- for (const w in capacity_arr) {
- let end_time = ''
- let mistiming = ''
- const data = {
- id: capacity_arr[w].id,
- start: '',
- end: '',
- type: 'schedule',
- cl_name: this.cl_name,
- cl_code: this.cl_code,
- work_order: this.work_order,
- number: 0,
- real_number: 0
- }
- if (
- id_obj.start_time != '' &&
- flag1 == 0 &&
- new Date(id_obj.start_time) >= new Date(capacity_arr[w].start)
- ) {
- data.start = this.MinutesTest(id_obj.start_time)
- flag1 = 1
- } else {
- data.start = capacity_arr[w].start
- }
- let nowTime =
- (this.bm_data[i].AdvaDevicRhythm * all_num) / capacity_arr[w].mod
- end_time = this.formSeconds(nowTime, data.start, capacity_arr[w].mod) // 鎬诲叡鐨勭粨鏉熸椂闂�
- data.end = end_time
- mistiming = this.formTime(
- end_time,
- capacity_arr[w].end,
- capacity_arr[w].mod
- ) // 鎬诲叡鐨勭粨鏉熸椂闂�-褰撳墠鐨勭粨鏉熸椂闂� = 鍓╀笅澶氫箙鏃堕棿
- if (mistiming >= 0) {
- console.log(
- new Date(data.end) - new Date(data.start),
- capacity_arr[w].mod,
- this.bm_data[i].AdvaDevicRhythm,
- '闃挎柉椤垮彂鏂拏鑺�'
- )
- data.number =
- ((new Date(data.end) - new Date(data.start)) *
- capacity_arr[w].mod) /
- this.bm_data[i].AdvaDevicRhythm /
- 1000
- data.real_number =
- ((new Date(data.end) - new Date(data.start)) *
- capacity_arr[w].mod) /
- this.bm_data[i].AdvaDevicRhythm /
- 1000
- data.number = data.number.toFixed(0)
- data.end_num = true
- if (new Date(data.start) >= new Date(data.end)) {
- } else {
- this.bm_data[i].gtArray.push(data)
- }
-
- return false
- } else {
- data.end = capacity_arr[w].end
- data.number =
- ((new Date(data.end) - new Date(data.start)) *
- capacity_arr[w].mod) /
- this.bm_data[i].AdvaDevicRhythm /
- 1000
- data.real_number =
- ((new Date(data.end) - new Date(data.start)) *
- capacity_arr[w].mod) /
- this.bm_data[i].AdvaDevicRhythm /
- 1000
- data.number = data.number.toFixed(0)
-
- nowTime =
- (all_num - data.real_number) * this.bm_data[i].AdvaDevicRhythm
- all_num = all_num - data.real_number
- if (new Date(data.start) >= new Date(data.end)) {
- } else {
- this.bm_data[i].gtArray.push(data)
- }
- }
- }
- }
- },
- // 璁惧鎺掔▼鏂规硶
- fun_facility() {
- // 鎺掗櫎鏈嬀閫夐」
- for (const i in this.facility_data) {
- const newArr = []
- for (const j in this.facility_data[i].gtArray) {
- if (this.false_arr.indexOf(this.facility_data[i].gtArray[j].id) < 0) {
- newArr.push(this.facility_data[i].gtArray[j])
- }
- }
- this.facility_data[i].gtArray = newArr
- }
- let all_num = this.formBottom.meter
- const all_time = []
- const flag1 = 0
- // let nowTime = this.facility_data[0].AdvaDevicRhythm*all_num //鏁伴噺OK
-
- for (const i in this.facility_data) {
- let end_arr = []
- let nend_arr = [] // 鎺掔▼鐨勬暟缁�
- const add_arr = [] // 宸叉帓绋嬬殑鏁扮粍
- let capacity_arr = [] // 瑕佹帓绋嬬殑鏁扮粍
-
- // this.facility_data[i].gtArray.sort((a,b) => new Date(a.end).getTime() - new Date(b.end).getTime())
- // let capacity_end = ''
- end_arr = this.facility_data[i].gtArray.filter(item => item.type == 'h_schedule')
- nend_arr = this.facility_data[i].gtArray.filter(item => item.type == 'capacity')
- console.log(nend_arr)
- 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(i, capacity_arr[i], '鍝囧搱鍝�')
- capacity_arr.splice(i, 1)
- break
- }
- }
- })
- console.log(capacity_arr, '澶цタ鐡�')
-
- if (!capacity_arr || capacity_arr.length == 0) break
- // const firstCapacity = capacity_arr[0]
-
- const schedule_arr = end_arr.filter(item => {
- const remain = nend_arr.some(sitem => {
- return new Date(sitem.start).getTime() == new Date(item.start).getTime() &&
- new Date(item.end).getTime() < new Date(sitem.end).getTime()
- })
- return remain
- })
- console.log(schedule_arr)
- 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() &&
- new Date(item.end).getTime() < new Date(sitem.end).getTime()
- })[0]
- console.log('capacity', capcity)
- capcity.start = this.MinutesTest(item.end)
- return capcity
- })
- const newSchedule = JSON.parse(JSON.stringify(scheduleCan))
- capacity_arr = newSchedule.concat(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)
- }
-
- for (const w in capacity_arr) {
- let end_time
- let mistiming
- const data = {
- id: capacity_arr[w].id,
- start: '',
- end: '',
- type: 'schedule',
- cl_name: this.cl_name,
- cl_code: this.cl_code,
- work_order: this.work_order,
- number: 0,
- real_number: 0
- }
- // console.log(id_obj.start_time)
- if (
- id_obj &&
- new Date(id_obj.start_time).getTime() >=
- new Date(capacity_arr[w].start).getTime()
- ) {
- if (data.id == id_obj.id) {
- data.start = this.MinutesTest(id_obj.start_time)
- // flag1 =1
- } else {
- data.start = capacity_arr[w].start
- // console.log(data.start)
- // flag1 =1
- }
- } else {
- data.start = capacity_arr[w].start
- }
- // let nowTime = this.facility_data[0].AdvaDevicRhythm*all_num
- 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.formTime(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 = data.number.toFixed(0)
- data.end_num = true
-
- if (new Date(data.start) >= new Date(data.end)) {
- } else {
- this.facility_data[i].gtArray.push(data)
- }
-
- 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 = data.number.toFixed(0)
- nowTime = (all_num - data.real_number) * capacity_arr[w].rhythm
- all_num = all_num - data.real_number
-
- // nowTime = mistiming * -1
- if (new Date(data.start) >= new Date(data.end)) {
- } else {
- this.facility_data[i].gtArray.push(data)
- }
- }
- }
- }
- },
- // 缁欒澶囪浆鎹㈡牸寮�
- dataTransition() {
- this.bm_data = []
- const data = this.facility_data
-
- const all = []
- const list = this.title_list
- for (const i in data) {
- for (const j in data[i].gtArray) {
- all.push(data[i].gtArray[j])
- }
- }
-
- for (const i in list) {
- list[i].gtArray = []
- this.pushTiemsss(all, list[i].id, list[i].gtArray)
- }
-
- for (const n in list) {
- if (list[n].gtArray.length == 0) {
- list[n].status = false
- }
- }
-
- // console.log(list)
- this.bm_data = list
- },
- // 鎻掑叆浜ц兘鏃堕棿娈�
- pushTiemsss(newList, id, arr) {
- for (const i in newList) {
- if (newList[i].id == id) {
- arr.push(newList[i])
- }
- }
- },
- // 璁惧浼樺厛
- async facility_top() {
- const res = await OnclickAdvancedSchedulingDevice(this.forms)
-
- this.show = true
- const data = res.rows
- const cont = res.Cont
- this.title_list = []
+ // 璁惧浼樺厛鐨勬暟鎹牸寮�
+ this.eqpTopTempData = []
for (const i in data[0].children) {
const obj = {
id: '',
@@ -1467,87 +794,36 @@
obj.AdvaDevicRhythm = data[0].children[i].AdvaDevicRhythm
// obj.mod =data[0].children[i].AdvaDevicCropMob *1
- this.title_list.push(obj)
+ this.eqpTopTempData.push(obj)
}
- 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]
- }
- 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]
- }
- }
- }
- // 鏇存敼鏍煎紡
- this.facility_data = []
+ // 鏇存敼鏍煎紡
+ this.timeTopTempData = []
+
+ // 鏋勫缓鎸夋椂闂翠紭鍏堢殑鎺掔▼鏁版嵁鏍煎紡 timeTopTempData
for (const i in data) {
const time = {
date: data[i].YearDate,
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,
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
}
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,
@@ -1559,7 +835,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,
@@ -1571,7 +847,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,
@@ -1583,7 +859,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,
@@ -1597,29 +873,566 @@
}
}
- this.facility_data.push(time)
+ this.timeTopTempData.push(time)
}
- if (cont != '') {
+ if (cont !== '') {
for (const i in cont) {
- const date_time = cont[i].time_start.split(' ')
- const cont_date = date_time[0]
- for (const j in this.facility_data) {
+ for (const j in this.timeTopTempData) {
const data = {
id: cont[i].eqp_code,
- date: cont_date,
+ 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,
type: 'h_schedule'
}
- if (this.facility_data[j].date == data.date) {
- this.facility_data[j].gtArray.unshift(data)
+ if (this.timeTopTempData[j].date === data.date) {
+ this.timeTopTempData[j].gtArray.unshift(data)
}
}
+ }
+ }
+ },
+ // 鎹㈠瀷鏃堕棿
+ MinutesTest(time) {
+ const t = new Date(time)
+ t.setMinutes(t.getMinutes() + this.formBottom.times * 1)
+ const now =
+ t.getFullYear() +
+ '-' +
+ (t.getMonth() + 1).toString().padStart(2, '0') +
+ '-' +
+ t.getDate().toString().padStart(2, '0') +
+ ' ' +
+ t.getHours().toString().padStart(2, '0') +
+ ':' +
+ t.getMinutes().toString().padStart(2, '0') +
+ ':' +
+ t.getSeconds().toString().padStart(2, '0')
+ return now
+ },
+ // 鎻掑叆浜ц兘鏃堕棿娈�
+ pushItem(newList, id, arr) {
+ for (const i in newList) {
+ if (newList[i].id === id) {
+ const data = {
+ start: newList[i].start,
+ end: newList[i].end,
+ id: newList[i].id,
+ mod: newList[i].mod,
+ type: 'capacity'
+ }
+ arr.push(data)
+ }
+ }
+ },
+ // 琛岀偣鍑讳簨浠�
+ getCurrentRow(row) {
+ this.radioSelectedId = row.AdvaScheId // 鎺掔▼id璧嬪�肩粰閫変腑琛宨d
+
+ this.formBottom.needArrangeNumber = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 闇�鎺掓暟閲� = 鏈帓绋嬫暟閲� - 宸叉帓绋嬫暟閲�
+ this.formBottom.scheDate = [] // 鎺掔▼鏃ユ湡缃┖
+ this.cl_name = row.AdvaSchePartName // 浜у搧鍚嶇О
+ this.cl_code = row.AdvaSchePartNumber // 浜у搧缂栫爜
+ this.AdvaScheUom = row.AdvaScheUom // 浜у搧鍗曚綅
+ this.work_order = row.AdvaScheWorkCode // 宸ュ崟缂栧彿
+
+ this.formBottom.scheDate.push(handleDatetime(new Date())) // 褰撳墠鏃ユ湡锛堜粖澶╋級
+ this.formBottom.scheDate.push(row.AdvaScheEndDate) // 瑕佹眰浜や粯鏃堕棿
+ if (this.formBottom.scheDate !== '') {
+ this.time_data[0] = this.formBottom.scheDate[0] + ' 00:00' // 鎺掔▼寮�濮嬫椂闂�
+ this.time_data[1] = this.formBottom.scheDate[1] + ' 23:59' // 鎺掔▼缁撴潫鏃堕棿
+ }
+ this.forms.wocode = row.AdvaScheWorkCode // 宸ュ崟缂栧彿
+ this.forms.wkshpcode = row.AdvaScheWorkShopid // 杞﹂棿缂栫爜
+ this.forms.partcode = row.AdvaSchePartNumber // 浜у搧缂栫爜
+ this.forms.botproccode = row.AdvaScheBotProcid // 宸ヨ壓璺嚎缂栫爜
+ this.forms.startdate = handleDatetime(new Date()) // 褰撳墠鏃ユ湡锛堜粖澶╋級
+ this.forms.enddate = row.AdvaScheEndDate // 瑕佹眰浜や粯鏃堕棿
+ this.getOnclickAdvancedSchedulingDevice()
+ this.formUpdate.WorkCode = row.AdvaScheWorkCode // 宸ュ崟缂栧彿
+ this.formUpdate.BotProceCode = row.AdvaScheBotProcid // 宸ヨ壓璺嚎缂栫爜
+ },
+ // 鎻愪氦鎺掔▼
+ async prepareSubmit() {
+ if (this.formBottom.canArrangeNumber !== this.formBottom.needArrangeNumber) {
+ this.$message.error('鏁伴噺鏈帓瀹岋紝璇疯缃骇鑳芥椂闂达紒')
+ } else {
+ const list = [] // 鎻愪氦鏁扮粍
+ for (const i in this.schedulingData) {
+ const arr = []
+ for (const j in this.schedulingData[i].gtArray) {
+ if (this.schedulingData[i].gtArray[j].type === 'schedule') {
+ arr.push(this.schedulingData[i].gtArray[j])
+ }
+ }
+ if (arr !== '') {
+ for (const i in arr) {
+ const data = {
+ AlreDevicNumber: '',
+ AlreStartDate: '',
+ AlreEndDate: '',
+ AlreQty: ''
+ }
+ data.AlreDevicNumber = arr[i].id
+ data.AlreStartDate = arr[i].start
+ data.AlreEndDate = arr[i].end
+ data.AlreQty = arr[i].number
+ list.push(data)
+ }
+ }
+ }
+ // 鎺掔▼鐩稿悓璁惧鑾峰彇寮�濮嬫椂闂� 缁撴潫鏃堕棿 鏁伴噺鐨勬�诲拰
+ // 杩囨护
+ let update = []
+ for (const i in list) {
+ if (list[i].AlreStartDate !== '') {
+ update.push(list[i])
+ }
+ }
+
+ update = JSON.stringify(update)
+ this.formUpdate.json = update
+ if (list === '') {
+ this.$message.error('璇峰厛棰勬帓')
+ return false
+ }
+
+ const formData = new FormData()
+ formData.append('wocode', this.formUpdate.WorkCode)
+ formData.append('botprocecode', this.formUpdate.BotProceCode)
+ formData.append('json', this.formUpdate.json)
+
+ const res = await SubmitAlreadyScheduling(formData)
+
+ if (res.code === '200') {
+ this.$message.success(res.Message)
+ }
+
+ this.formBottom.needArrangeNumber = 0
+ this.formBottom.canArrangeNumber = 0
+ await this.getOnclickAdvancedSchedulingDevice()
+ await this.getAdvancedSchedulingSearch()
+ }
+ },
+ // 鏃堕棿/璁惧浼樺厛鎺掔▼
+ prepareArrange() {
+ const timestamp = new Date().toLocaleDateString()
+
+ if (new Date(this.formBottom.scheDate[1]) < new Date(timestamp)) {
+ this.$message.error('鎺掔▼鏃ユ湡涓嶅彲浠ュ皬浜庡綋鍓嶆椂闂�!')
+ return false
+ }
+ this.filterAlreadyScheduleEqp()// 鎵嬪姩杩囨护鎵�鏈夎澶囧凡鎺掔▼
+
+ // 璁惧浼樺厛鎴栬�呮椂闂翠紭鍏� 瀵规暟鎹繘琛岀殑鏍煎紡杞崲
+ if (this.schedulingData !== '' && this.formBottom.types === 'N') { // 璁惧浼樺厛
+ this.eqpDataTransition()
+ this.editLastValue(this.schedulingData)
+ } else if (this.timeTopTempData !== '' && this.formBottom.types === 'Y') { // 鏃堕棿浼樺厛
+ this.filterAlreadyScheduleTime() // 鎵嬪姩杩囨护鎵�鏈夋椂闂村凡鎺掔▼
+ this.timeDataTransition()
+ this.dataTransition()
+ this.editLastValue(this.schedulingData)
+ }
+ },
+ // 鎵嬪姩杩囨护鎵�鏈夋椂闂村凡鎺掔▼
+ filterAlreadyScheduleTime() {
+ this.timeTopTempData.forEach(item => {
+ if (item.gtArray && item.gtArray.length > 0) {
+ item.gtArray = item.gtArray.filter(it => it.type !== 'schedule')
+ }
+ })
+ },
+ // 鎵嬪姩杩囨护鎵�鏈夎澶囧凡鎺掔▼
+ filterAlreadyScheduleEqp() {
+ this.schedulingData.forEach(item => {
+ if (item.gtArray && item.gtArray.length > 0) {
+ item.gtArray = item.gtArray.filter(it => it.type !== 'schedule')
+ }
+ })
+ },
+ // 缁欐帓绋嬫渶鍚庝竴涓慨鏀规暟閲�
+ editLastValue(arr) {
+ this.formBottom.canArrangeNumber = 0 // 鐪熷疄宸叉帓鏁伴噺
+ let num = 0 // 鍙栨暣宸叉帓鏁伴噺
+ const arr_num = [] // 宸叉帓鏁版嵁
+ let need_num = 0
+ for (const i in arr) {
+ for (const j in arr[i].gtArray) {
+ if (arr[i].gtArray[j].type === 'schedule') {
+ arr_num.unshift(arr[i].gtArray[j])
+ }
+ }
+ }
+
+ for (const n in arr_num) {
+ this.formBottom.canArrangeNumber += arr_num[n].real_number
+ num += arr_num[n].number * 1
+ }
+
+ this.formBottom.canArrangeNumber = Math.ceil(this.formBottom.canArrangeNumber)
+ const y10 = this.formBottom.needArrangeNumber - this.formBottom.canArrangeNumber
+ if (y10 <= 10) {
+ this.formBottom.canArrangeNumber = this.formBottom.needArrangeNumber
+ need_num = this.formBottom.needArrangeNumber - num
+ } else {
+ }
+ 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].end_num
+ ) {
+ this.schedulingData[i].gtArray[j].number =
+ this.schedulingData[i].gtArray[j].number * 1 + need_num
+ }
+ }
+ }
+ },
+ // 璁惧浼樺厛 鏁版嵁鏍煎紡杞崲
+ eqpDataTransition() {
+ let needNumber = this.formBottom.needArrangeNumber // 闇�鎺掓暟閲�
+ let flag1 = 0
+
+ for (const i in this.schedulingData) {
+ let end_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'))) // 宸叉帓绋嬫暟缁�
+ need_arr = JSON.parse(JSON.stringify(this.schedulingData[i].gtArray.filter(item => item.type === 'capacity'))) // 瀹归噺
+
+ if (end_arr && end_arr.length > 0) {
+ capacity_arr = need_arr.map(item => {
+ // 鎺掗櫎鎺夊凡缁忔帓绋嬬殑瀛樺湪hshedule锛宻tart锛宔nd閮界浉绛夌殑鎯呭喌
+ 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[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()
+ })
+ if (schedule1 && schedule1.length > 0) {
+ item.capacity = false
+ }
+
+ return item
+ }).filter(item => item.capacity !== false)
+ } else {
+ capacity_arr = need_arr
+ }
+
+ const id_obj = {
+ id: '',
+ start_time: ''
+ }
+ if (end_arr != '') {
+ (id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
+ }
+
+ 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: '',
+ end: '',
+ type: 'schedule',
+ cl_name: this.cl_name,
+ cl_code: this.cl_code,
+ work_order: this.work_order,
+ AdvaScheUom: this.AdvaScheUom,
+ number: 0,
+ real_number: 0
+ }
+ if (
+ id_obj.start_time !== '' &&
+ flag1 === 0 &&
+ new Date(id_obj.start_time).getTime() >= new Date(capacity_arr[w].start).getTime()
+ ) {
+ data.start = this.MinutesTest(id_obj.start_time)
+ flag1 = 1
+ } else {
+ data.start = capacity_arr[w].start
+ }
+ 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(
+ end_time,
+ capacity_arr[w].end,
+ capacity_arr[w].mod
+ ) // 鎬诲叡鐨勭粨鏉熸椂闂�-褰撳墠鐨勭粨鏉熸椂闂� = 鍓╀笅澶氫箙鏃堕棿
+ if (mistiming >= 0) {
+ 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)
+ data.end_num = true
+ if (new Date(data.start) >= new Date(data.end)) {
+ } 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 // 鍥犱负寮�濮嬫椂闂存瘮缁撴潫鏃堕棿澶� 闇�瑕佽烦杩囧悗闈㈡楠�
+ }
+
+ // 杩欓噷闄や互涓�鍗冩槸鍥犱负 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 = (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)
+ }
+ }
+ }
+ }
+ },
+ // 鏃堕棿浼樺厛 鏁版嵁鏍煎紡杞崲
+ timeDataTransition() {
+ // 鎺掗櫎鏈嬀閫夐」
+ for (const i in this.timeTopTempData) {
+ const newArr = []
+ for (const j in this.timeTopTempData[i].gtArray) {
+ if (this.ganttLeftArrId.indexOf(this.timeTopTempData[i].gtArray[j].id) < 0) {
+ newArr.push(this.timeTopTempData[i].gtArray[j])
+ }
+ }
+ this.timeTopTempData[i].gtArray = newArr
+ }
+ let needNumber = this.formBottom.needArrangeNumber // 闇�鎺掓暟閲�
+
+ // 閲岄潰閫昏緫瑕佹悶娓呮 寰堥噸瑕�
+ for (const i in this.timeTopTempData) {
+ let end_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'))) // 宸叉帓绋嬫暟鎹�
+ need_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'capacity'))) // 瀹归噺
+
+ capacity_arr = JSON.parse(JSON.stringify(need_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()
+ ) {
+ capacity_arr.splice(ind, 1)
+ }
+ })
+ })
+
+ // continue:琛ㄧず璺冲嚭鏈寰幆锛屼篃灏辨槸涓嶆墽琛屾湰娆″惊鐜痗ontinue涔嬪悗鐨勬搷浣�
+ // break:琛ㄧず璺冲嚭褰撳墠鐨勫惊鐜紝閽堝鏁翠釜寰幆浣撶粓姝㈠悗缁殑閬嶅巻锛�
+ if (!capacity_arr || capacity_arr.length === 0) {
+ continue
+ }
+
+ const schedule_arr = end_arr.filter(item => {
+ 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())
+ })
+
+ return remain
+ })
+
+ // 涓嬮潰閫昏緫寰堥噸瑕�
+ if (schedule_arr && schedule_arr.length > 0) {
+ const scheduleCan = schedule_arr.map(item => {
+ 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())
+ // ||
+ // (new Date(item.start).getTime() > new Date(it.start).getTime() &&
+ // new Date(item.end).getTime() < new Date(it.end).getTime())
+ }
+ })[0]
+
+ temp.start = this.MinutesTest(item.end)
+
+ return temp
+ })
+
+ const newSchedule = JSON.parse(JSON.stringify(scheduleCan))
+
+ 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
+ }
+ })
+ })
+ }
+
+ const id_obj = {}
+ if (end_arr != '') {
+ (id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
+ }
+
+ capacity_arr = this.filterOutTime(capacity_arr) // 杩囨护鎺夊綋鍓嶆椂闂翠箣鍓嶇殑涓嶈兘鎺掔▼
+
+ for (const w in capacity_arr) {
+ const data = {
+ id: capacity_arr[w].id,
+ start: '',
+ end: '',
+ type: 'schedule',
+ cl_name: this.cl_name,
+ cl_code: this.cl_code,
+ work_order: this.work_order,
+ AdvaScheUom: this.AdvaScheUom, // 鍗曚綅
+ number: 0,
+ real_number: 0
+ }
+
+ if (
+ id_obj &&
+ new Date(id_obj.start_time).getTime() >=
+ new Date(capacity_arr[w].start).getTime()
+ ) {
+ if (data.id === id_obj.id) {
+ data.start = this.MinutesTest(id_obj.start_time)
+ } else {
+ data.start = capacity_arr[w].start
+ }
+ } else {
+ data.start = capacity_arr[w].start
+ }
+
+ let nowTime = (capacity_arr[w].rhythm * needNumber) / capacity_arr[w].mod
+
+ const end_time = this.formSeconds(nowTime, data.start)
+
+ data.end = end_time
+ 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
+ data.number = data.number.toFixed(0)
+ data.end_num = true
+
+ if (new Date(data.start) >= new Date(data.end)) {
+
+ } else {
+ this.timeTopTempData[i].gtArray.push(data)
+ }
+
+ 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 = data.number.toFixed(0)
+ nowTime = (needNumber - data.real_number) * capacity_arr[w].rhythm
+ needNumber = needNumber - data.real_number
+
+ if (new Date(data.start) >= new Date(data.end)) {
+ } else {
+ this.timeTopTempData[i].gtArray.push(data)
+ }
+ }
+ }
+ }
+ },
+ // 杩囨护鎺夊綋鍓嶆椂闂翠箣鍓嶇殑涓嶈兘鎺掔▼
+ 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 = []
+ const data = this.timeTopTempData
+
+ const all = []
+ const list = this.eqpTopTempData
+ for (const i in data) {
+ for (const j in data[i].gtArray) {
+ all.push(data[i].gtArray[j])
+ }
+ }
+
+ for (const i in list) {
+ list[i].gtArray = []
+ this.pushTimes(all, list[i].id, list[i].gtArray)
+ }
+
+ for (const n in list) {
+ if (list[n].gtArray.length === 0) {
+ list[n].status = false
+ }
+ }
+
+ this.schedulingData = list
+ },
+ // 鎻掑叆浜ц兘鏃堕棿娈�
+ pushTimes(newList, id, arr) {
+ for (const i in newList) {
+ if (newList[i].id === id) {
+ arr.push(newList[i])
}
}
},
@@ -1637,74 +1450,24 @@
return (
d.getFullYear() +
'-' +
- (d.getMonth() + 1) +
+ (d.getMonth() + 1).toString().padStart(2, '0') +
'-' +
- d.getDate() +
+ d.getDate().toString().padStart(2, '0') +
' ' +
- d.getHours() +
+ d.getHours().toString().padStart(2, '0') +
':' +
- d.getMinutes() +
+ d.getMinutes().toString().padStart(2, '0') +
':' +
- d.getSeconds()
+ d.getSeconds().toString().padStart(2, '0')
)
},
// 鏃堕棿姣旇緝
- formTime(d1, d2, mod) {
+ compareTime(d1, d2, mod) {
// d1 鎺掗櫎缁撴潫鏃堕棿 d2 褰撳墠浜ц兘缁撴潫鏃堕棿
const time1 = new Date(d1)
const time2 = new Date(d2)
return parseInt(time2 - time1) / 1000
- },
- formatSeconds(value) {
- var secondTime = parseInt(value) // 绉�
- var minuteTime = 0 // 鍒�
- var hourTime = 0 // 灏忔椂
- if (secondTime > 60) {
- // 濡傛灉绉掓暟澶т簬60锛屽皢绉掓暟杞崲鎴愭暣鏁�
- // 鑾峰彇鍒嗛挓锛岄櫎浠�60鍙栨暣鏁帮紝寰楀埌鏁存暟鍒嗛挓
- minuteTime = parseInt(secondTime / 60)
- // 鑾峰彇绉掓暟锛岀鏁板彇浣橈紝寰楀埌鏁存暟绉掓暟
- secondTime = parseInt(secondTime % 60)
- // 濡傛灉鍒嗛挓澶т簬60锛屽皢鍒嗛挓杞崲鎴愬皬鏃�
- if (minuteTime > 60) {
- // 鑾峰彇灏忔椂锛岃幏鍙栧垎閽熼櫎浠�60锛屽緱鍒版暣鏁板皬鏃�
- hourTime = parseInt(minuteTime / 60)
- // 鑾峰彇灏忔椂鍚庡彇浣樼殑鍒嗭紝鑾峰彇鍒嗛挓闄や互60鍙栦綐鐨勫垎
- minuteTime = parseInt(minuteTime % 60)
- }
- }
- var result = '' + parseInt(secondTime) + ''
-
- if (minuteTime > 0) {
- result = '' + parseInt(minuteTime) + ':' + result
- }
- if (hourTime > 0) {
- result = '' + parseInt(hourTime) + ':' + result
- }
- return result
- },
- updateTimeLines(timeA, timeB) {
- this.timeLines = [
- {
- time: timeA
- },
- {
- time: timeB,
- color: '#747e80'
- }
- ]
- },
- scrollLeftA(val) {
- this.positionB = { x: val }
- },
- scrollLeftB(val) {
- this.positionA = { x: val }
- },
- // 璁剧疆鍒濆鍖栨暟鎹�
- oneClick() {
- // this.getCurrentRow(this.mn_data[0])
}
-
}
}
</script>
@@ -1721,7 +1484,7 @@
.box_style {
position: relative;
top: 40px;
- left: -75px;
+ left: -91px;
}
.box_styles {
@@ -1740,6 +1503,16 @@
background-color: #fff;
margin-top: 20px;
height: 490px;
+}
+
+.colorDescription {
+ display: flex;
+ padding: 5px 30px 0;
+}
+
+.colorDescriptionItem {
+ display: flex;
+ margin-right: 20px;
}
label {
@@ -1906,7 +1679,7 @@
}
-::v-deep .gantt-header-title{
+::v-deep .gantt-header-title {
background-color: #fff;
//border-left: 1px solid #eee !important;
//border-bottom: 1px solid #eee !important;
--
Gitblit v1.9.3