From b46bc2dba51a3885a68e4c58316b41a31ea16bb2 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 14 二月 2023 13:35:03 +0800
Subject: [PATCH] 1.存货档案修改
---
src/views/scgl/zdpc.vue | 1853 ++++++++++++++++++++++++-----------------------------------
1 files changed, 746 insertions(+), 1,107 deletions(-)
diff --git a/src/views/scgl/zdpc.vue b/src/views/scgl/zdpc.vue
index 8a912f7..716955d 100644
--- a/src/views/scgl/zdpc.vue
+++ b/src/views/scgl/zdpc.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
@@ -40,15 +43,17 @@
ref="tableDataRef"
class="tableFixed"
:data="tableData"
- :height="(tableHeight-300)+'px'"
+ :height="(tableHeight-400)+'px'"
border
:row-class-name="tableRowClassName"
- :style="{width: 100+'%',height:(tableHeight-300)+'px',}"
+ :style="{width: 100+'%',height:(tableHeight-400)+'px',}"
highlight-current-row
:header-cell-style="this.$headerCellStyle"
:cell-style="this.$cellStyle"
@sort-change="sortChangeTop"
+ @row-click="getCurrentRow"
>
+ <!-- @row-click="rowClick"-->
<el-table-column
width="50"
fixed
@@ -56,9 +61,9 @@
<template slot-scope="{row}">
<el-radio
v-model="radioSelectedId"
- :label="row.id"
- @change.native="getCurrentRowTop(row.id)"
+ :label="row.AdvaScheId"
/>
+
</template>
</el-table-column>
<el-table-column
@@ -68,60 +73,102 @@
label="搴忓彿"
/>
<el-table-column
- prop="org_code"
+ prop="AdvaSchePiroQue"
+ show-tooltip-when-overflow
label="浼樺厛绾�"
+ width="90"
sortable="custom"
/>
<el-table-column
- prop="org_name"
+ prop="AdvaScheWorkShop"
label="鐢熶骇杞﹂棿"
+ width="110"
+ show-tooltip-when-overflow
sortable="custom"
/>
<el-table-column
- prop="description"
+ prop="AdvaScheWorkCode"
label="宸ュ崟缂栧彿"
+ min-width="160"
+ show-tooltip-when-overflow
sortable="custom"
/>
<el-table-column
- prop="parentorg_name"
+ prop="AdvaSchePartNumber"
label="浜у搧缂栫爜"
+ min-width="110"
+ show-tooltip-when-overflow
sortable="custom"
- />
+ >
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.AdvaSchePartNumber">{{ row.AdvaSchePartNumber }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ </el-table-column>
<el-table-column
- prop="lm_user"
+ prop="AdvaSchePartName"
+ min-width="160"
+ show-tooltip-when-overflow
label="浜у搧鍚嶇О"
sortable="custom"
/>
<el-table-column
- prop="lm_user"
+ prop="AdvaSchePartSpec"
label="浜у搧瑙勬牸"
+ width="110"
+ show-tooltip-when-overflow
sortable="custom"
- />
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.AdvaSchePartSpec">{{ row.AdvaSchePartSpec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
<el-table-column
- prop="lm_user"
+ prop="AdvaScheQty"
label="鏁伴噺"
+ show-tooltip-when-overflow
+ width="110"
sortable="custom"
/>
<el-table-column
- prop="lm_user"
+ prop="AdvaScheEndDate"
label="瑕佹眰浜や粯鏃堕棿"
sortable="custom"
+ show-tooltip-when-overflow
+ width="160"
/>
<el-table-column
- prop="lm_user"
- label="浜や粯鐘舵��"
+ prop="AdvaScheStus"
+ label="鎺掔▼鐘舵��"
+ show-tooltip-when-overflow
+ width="110"
sortable="custom"
- />
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.AdvaScheStus==='NOSCHED'">寰呮帓绋�</div>
+ <div v-if="row.AdvaScheStus==='SCHED'">宸叉帓绋�</div>
+ </template>
+ </el-table-column>
<el-table-column
- prop="lm_user"
+ prop="AdvaScheBotProcName"
label="鎺掔▼宸ュ簭"
+ show-tooltip-when-overflow
+ width="110"
sortable="custom"
/>
<el-table-column
- prop="lm_user"
+ prop="AdvaSchePCStartDate"
label="璁″垝鎺掔▼鏃堕棿"
+ width="200"
sortable="custom"
- />
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.AdvaSchePCStartDate">{{ row.AdvaSchePCStartDate }} ~ {{ row.AdvaSchePCEndDate }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
</el-table>
</div>
@@ -144,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.value1"
+ v-model="formBottom.scheDate"
+ :disabled="radioSelectedId===''"
type="daterange"
range-separator="~"
format="yyyy-MM-dd"
@@ -158,25 +207,32 @@
end-placeholder="缁撴潫鏃ユ湡"
size="small"
:picker-options="pickerOptions1"
- @change="change_time"
+ :clearable="false"
+ @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"
@@ -184,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"
@@ -216,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"
@@ -224,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">
@@ -243,23 +315,35 @@
<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)">
- <i class="el-icon-document size i-color" />
- </el-button>
- </el-tooltip>
+ <!-- <el-tooltip class="item" effect="dark" content="鏌ョ湅" placement="top">-->
+ <!-- <el-button v-waves type="text" size="mini" @click="look(data)">-->
+ <!-- <i class="el-icon-document size i-color" />-->
+ <!-- </el-button>-->
+ <!-- </el-tooltip>-->
</div>
</div>
</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>
@@ -272,18 +356,18 @@
<script>
import Pagination from '@/components/Pagination'
-import { OrganizationSearch } from '@/api/jcsz'
import Test from '@/components/Test'
import dayjs from 'dayjs'
-
-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 { AdvancedSchedulingSearch, OnclickAdvancedSchedulingDevice, SubmitAlreadyScheduling } from '@/api/scgl'
+import { handleDatetime, handleDatetime2 } from '@/utils/global'
+import waves from '@/directive/waves'
export default {
name: 'Zzjg',
components: {
Pagination, Test
},
+ directives: { waves },
data() {
return {
mouseHoverType: 'mouseout',
@@ -296,7 +380,7 @@
wocode: '', // 鐢熶骇宸ュ崟鍙�
partcode: '', // 鐗╂枡缂栫爜
partname: '', // 鐗╂枡鍚嶇О
- prop: 'lm_date', // 鎺掑簭瀛楁
+ prop: 'AdvaScheWorkCode', // 鎺掑簭瀛楁
order: 'desc', // 鎺掑簭瀛楁
page: 1, // 绗嚑椤�
rows: 20 // 姣忛〉澶氬皯鏉�
@@ -313,258 +397,79 @@
}
},
- 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
+ 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: '', // 鐗╂枡缂栫爜
+ botproccode: '', // 鐡堕宸ュ簭缂栫爜(棣栭亾宸ュ簭)
+ startdate: '', // 寮�濮嬫棩鏈�
+ enddate: ''// 缁撴潫鏃ユ湡
},
- showDialog: false,
- time_data: [],
- forms: {
- WorkCode: '',
- WorkShop: '',
- PartNumber: '',
- BotProceCode: '',
- StartTime: '',
- EndTime: ''
- },
- click_one: 0,
- datasC: [],
- radio: '',
-
- formBottom: {
- value1: ['2022-11-07', '2022-11-12'], // 鎺掔▼鏃ユ湡
+ 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: {},
+ arrayKeys: ['gtArray', 'error']
- title_list: [],
- imp_id: '',
- submit_flag: false,
- search_from: {
- page: 1,
- rows: 10,
- WorkTime: '',
- BotProceName: ''
- },
- testValue: {
- 'rus': {
- 'statusCode': '',
- 'message': '',
- 'MOD_S': '',
- 'MAR_S': '',
- 'EQP_S': '',
- 'CUT_S': '',
- 'FIXT_S': '',
- 'HouseNumber': '',
- 'navTabId': '',
- 'dialogid': '',
- 'rel': '',
- 'dt': null,
- 'list': {},
- 'callbackType': '',
- 'forwardUrl': ''
- },
- 'rows': [
- {
- 'YearDate': '2022-11-07',
- 'children': [
- {
- 'AdvaDevicNumber': 'LKFDL_SC-PC029',
- 'AdvaDevicName': '閲戦紟鏁版帶杞﹀簥029',
- 'AdvaDevicCropMob': '78',
- 'AdvaDevicRhythm': '10',
- 'OneStartDate': '08:00~11:30',
- 'TwoStartDate': '12:30~17:00',
- 'ThreeStartDate': '',
- 'FourStartDate': '',
- 'FiveStartDate': ''
- }
- ]
- },
- {
- 'YearDate': '2022-11-08',
- 'children': [
- {
- 'AdvaDevicNumber': 'LKFDL_SC-PC029',
- 'AdvaDevicName': '閲戦紟鏁版帶杞﹀簥029',
- 'AdvaDevicCropMob': '78',
- 'AdvaDevicRhythm': '10',
- 'OneStartDate': '08:00~11:30',
- 'TwoStartDate': '12:30~17:00',
- 'ThreeStartDate': '',
- 'FourStartDate': '',
- 'FiveStartDate': ''
- }
- ]
- },
- {
- 'YearDate': '2022-11-09',
- 'children': [
- {
- 'AdvaDevicNumber': 'LKFDL_SC-PC029',
- 'AdvaDevicName': '閲戦紟鏁版帶杞﹀簥029',
- 'AdvaDevicCropMob': '78',
- 'AdvaDevicRhythm': '10',
- 'OneStartDate': '08:00~11:30',
- 'TwoStartDate': '12:30~17:00',
- 'ThreeStartDate': '',
- 'FourStartDate': '',
- 'FiveStartDate': ''
- }
- ]
- },
- {
- 'YearDate': '2022-11-10',
- 'children': [
- {
- 'AdvaDevicNumber': 'LKFDL_SC-PC029',
- 'AdvaDevicName': '閲戦紟鏁版帶杞﹀簥029',
- 'AdvaDevicCropMob': '78',
- 'AdvaDevicRhythm': '10',
- 'OneStartDate': '08:00~11:30',
- 'TwoStartDate': '12:30~17:00',
- 'ThreeStartDate': '',
- 'FourStartDate': '',
- 'FiveStartDate': ''
- }
- ]
- },
- {
- 'YearDate': '2022-11-11',
- 'children': [
- {
- 'AdvaDevicNumber': 'LKFDL_SC-PC029',
- 'AdvaDevicName': '閲戦紟鏁版帶杞﹀簥029',
- 'AdvaDevicCropMob': '78',
- 'AdvaDevicRhythm': '10',
- 'OneStartDate': '08:00~11:30',
- 'TwoStartDate': '12:30~17:00',
- 'ThreeStartDate': '',
- 'FourStartDate': '',
- 'FiveStartDate': ''
- }
- ]
- },
- {
- 'YearDate': '2022-11-12',
- 'children': [
- {
- 'AdvaDevicNumber': 'LKFDL_SC-PC029',
- 'AdvaDevicName': '閲戦紟鏁版帶杞﹀簥029',
- 'AdvaDevicCropMob': '30',
- 'AdvaDevicRhythm': '10',
- 'OneStartDate': '08:00~11:30',
- 'TwoStartDate': '12:30~17:00',
- 'ThreeStartDate': '',
- 'FourStartDate': '',
- 'FiveStartDate': ''
- }
- ]
- }
- ],
- 'Cont': null
- }
}
},
- 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.AdvancedSchedulingSearch()
- // this.AdvancedSchedulingWorkShop()
- this.OnclickAdvancedSchedulingDevice()
+ // this.getAdvancedSchedulingSearch()
},
mounted() {
window.addEventListener('resize', this.getHeight)
this.getHeight()
-
- this.change_time()
- this.click_schedule()
},
methods: {
async getAdvancedSchedulingSearch() {
- const res = await OrganizationSearch(this.formTop)
+ const res = await AdvancedSchedulingSearch(this.formTop)
this.tableData = res.data
this.totalTop = res.count
+
+ return true
},
// 鎺掑簭鏀瑰彉鏃�
sortChangeTop({ column, prop, order }) {
@@ -591,10 +496,6 @@
this.formTop.partname = ''
this.getAdvancedSchedulingSearch()
},
- // 鍗曢�夋鐐瑰嚮
- getCurrentRowTop(val) {
- console.log(val)
- },
// 鑾峰彇椤甸潰楂樺害
getHeight() {
this.$nextTick(() => {
@@ -609,427 +510,416 @@
/*
鎺掔▼閮ㄥ垎鐨勬柟娉�
*/
- AdvancedSchedulingWorkShop() {
- // automaticScheduling.AdvancedSchedulingWorkShop().then(res => {
- // this.list = res
- // })
- },
- Search() {
- this.form.page = 1
- this.show = false
- this.radio = ''
- this.AdvancedSchedulingSearch()
- },
- resetFormcx() {
- this.$nextTick(() => {
- this.$refs.form.resetFields()
- })
- },
+ // 纭繚鎹㈠瀷鏃堕棿涓洪潪璐熸暟
no_zero() {
if (this.formBottom.times < 0) {
this.formBottom.times = 0
}
},
- sortChange(column, prop, order) {
- this.radio = '';
- (this.form.prop = column.prop), (this.form.order = column.order)
- this.show = false
- this.AdvancedSchedulingSearch()
+ // 鎺掔▼鏂瑰紡鏀瑰彉
+ typesChange() {
+ this.getOnclickAdvancedSchedulingDevice()
},
- SeachKey() {
- this.form.page = 1
- this.AdvancedSchedulingSearch()
- this.show = false
- this.radio = ''
+ // 鎺掔▼鏃ユ湡鍊兼敼鍙樻椂
+ 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()
},
- changeLift() {
- if (this.all_status) {
- this.false_arr = []
- this.OnclickAdvancedSchedulingDevice()
+ // 宸ヤ綅鍒楄〃澶嶉�夋鎿嶄綔 (鍏ㄩ�夈�佸叏涓嶉��)
+ checkboxAll() {
+ if (this.ganttCheckboxAll) {
+ this.ganttLeftArrId = []
+ 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.schedulingData) {
+ this.schedulingData[i].status = false
+ this.schedulingData[i].gtArray = []
}
- for (const i in this.facility_data) {
- this.facility_data[i].gtArray = []
+ for (const i in this.timeTopTempData) {
+ this.timeTopTempData[i].gtArray = []
}
}
+ // this.prepareArrange()
},
- changeTypes() {
- this.OnclickAdvancedSchedulingDevice()
- },
- change_time() {
- this.time_data[0] = this.formBottom.value1[0] + ' 00:00'
- this.time_data[1] = this.formBottom.value1[1] + ' 23:59'
- this.forms.StartTime = this.formBottom.value1[0]
- this.forms.EndTime = this.formBottom.value1[1]
- this.OnclickAdvancedSchedulingDevice()
- },
- click_box(val) {
+ // 鐢樼壒鍥惧乏渚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.OnclickAdvancedSchedulingDevice()
+ 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.OnclickAdvancedSchedulingDevice()
+ 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
- },
- 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()
- },
- sizeChange(val) {
- this.form.rows = val
- this.show = false
- this.radio = ''
- this.AdvancedSchedulingSearch()
- },
- pageChange(val) {
- this.form.page = val
- this.show = false
- this.radio = ''
- this.AdvancedSchedulingSearch()
- },
- // 鏌ヨ
- AdvancedSchedulingSearch() {
- // automaticScheduling.AdvancedSchedulingSearch(this.form).then(res => {
- // this.mn_data = res.rows
- // this.total = res.total
- // this.oneClick()
- // })
+ this.formBottom.canArrangeNumber = 0
+ // this.prepareArrange()
},
// 鐐瑰嚮甯﹀嚭鏁版嵁
- OnclickAdvancedSchedulingDevice() {
- // this.facility_top()
-
- // automaticScheduling
- // .OnclickAdvancedSchedulingDevice(this.forms)
- // .then(res => {
- const res = this.testValue
- if (res.rus.message) {
- this.$message({
- showClose: true,
- type: 'error',
- message: res.rus.message
- })
+ 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) {
+
+ 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)',
light: 'rgb(83, 186, 241,0.1)',
light_capacity: 'rgb(209,239,237,0.8)',
- h_schedule: ' rgb(100,255,192,0.8)',
+ h_schedule: 'rgb(100,255,192,0.8)',
scheduleing: 'rgb(20,182,231,0.8)'
},
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)
}
}
}
- console.log(newList, 321)
+
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
- 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,
- work_order: cont[i].WO_CODE,
- STATUS: _this.AdvaScheUom,
- start: cont[i].TIME_START,
- end: cont[i].TIME_END,
- type: cont[i].STATUS == 'S' ? 'h_schedule' : 'bm_schedule'
+ id: cont[i].eqp_code,
+ number: cont[i].alloc_qty,
+ cl_name: cont[i].part_name,
+ 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: 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.eqpTopTempData = []
+ for (const i in data[0].children) {
+ const obj = {
+ id: '',
+ name: '',
+ status: true,
+ AdvaDevicRhythm: '',
+ // mod:'',
+ colorPair: {
+ dark: 'rgb(83, 186, 241,0.8)',
+ light: 'rgb(83, 186, 241,0.1)',
+ light_capacity: 'rgb(209,239,237,0.8)',
+ h_schedule: 'rgb(100,255,192,0.8)',
+ scheduleing: 'rgb(20,182,231,0.8)'
+ },
+ gtArray: []
+ }
+ obj.id = data[0].children[i].AdvaDevicNumber
+ obj.name = data[0].children[i].AdvaDevicName
+ obj.AdvaDevicRhythm = data[0].children[i].AdvaDevicRhythm
+ // obj.mod =data[0].children[i].AdvaDevicCropMob *1
+
+ this.eqpTopTempData.push(obj)
+ }
+
+ // 鏇存敼鏍煎紡
+ this.timeTopTempData = []
+
+ // 鏋勫缓鎸夋椂闂翠紭鍏堢殑鎺掔▼鏁版嵁鏍煎紡 timeTopTempData
+ for (const i in data) {
+ const time = {
+ date: data[i].YearDate,
+ AdvaDevicRhythm: '',
+ gtArray: []
+ }
+ if (data[i].children !== '') {
+ time.AdvaDevicRhythm = data[i].children[0].AdvaDevicRhythm
+ }
+ for (const j in data[i].children) {
+ 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, // 鐢熶骇鑺傛媿
+ 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 !== '') {
+ const icu2 = {
+ name: data[i].children[j].AdvaDevicName,
+ id: data[i].children[j].AdvaDevicNumber,
+ type: 'capacity',
+ rhythm: data[i].children[j].AdvaDevicRhythm,
+ start: data[i].children[j].TwoStartDate[0],
+ end: data[i].children[j].TwoStartDate[1],
+ mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
+ }
+ time.gtArray.push(icu2)
+ }
+ if (data[i].children[j].ThreeStartDate !== '') {
+ const icu3 = {
+ name: data[i].children[j].AdvaDevicName,
+ id: data[i].children[j].AdvaDevicNumber,
+ type: 'capacity',
+ rhythm: data[i].children[j].AdvaDevicRhythm,
+ start: data[i].children[j].ThreeStartDate[0],
+ end: data[i].children[j].ThreeStartDate[1],
+ mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
+ }
+ time.gtArray.push(icu3)
+ }
+ if (data[i].children[j].FourStartDate !== '') {
+ const icu4 = {
+ name: data[i].children[j].AdvaDevicName,
+ id: data[i].children[j].AdvaDevicNumber,
+ type: 'capacity',
+ rhythm: data[i].children[j].AdvaDevicRhythm,
+ start: data[i].children[j].FourStartDate[0],
+ end: data[i].children[j].FourStartDate[1],
+ mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
+ }
+ time.gtArray.push(icu4)
+ }
+ if (data[i].children[j].FiveStartDate !== '') {
+ const icu5 = {
+ name: data[i].children[j].AdvaDevicName,
+ id: data[i].children[j].AdvaDevicNumber,
+ type: 'capacity',
+ rhythm: data[i].children[j].AdvaDevicRhythm,
+ start: data[i].children[j].FiveStartDate[0],
+ end: data[i].children[j].FiveStartDate[1],
+ mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
+ }
+ time.gtArray.push(icu5)
+ }
+ }
+
+ this.timeTopTempData.push(time)
+ }
+
+ if (cont !== '') {
+ for (const i in cont) {
+ for (const j in this.timeTopTempData) {
+ const data = {
+ id: cont[i].eqp_code,
+ date: cont[i].time_start.split(' ')[0],
+ number: cont[i].alloc_qty,
+ cl_name: cont[i].part_name,
+ 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.timeTopTempData[j].date === data.date) {
+ this.timeTopTempData[j].gtArray.unshift(data)
+ }
+ }
+ }
+ }
},
// 鎹㈠瀷鏃堕棿
MinutesTest(time) {
- var sdate1 = new Date(time)
- sdate1.setMinutes(sdate1.getMinutes() + this.formBottom.times * 1)
- var now =
- sdate1.getFullYear() +
+ const t = new Date(time)
+ t.setMinutes(t.getMinutes() + this.formBottom.times * 1)
+ const now =
+ t.getFullYear() +
'-' +
- this.add_one(sdate1.getMonth()) +
+ (t.getMonth() + 1).toString().padStart(2, '0') +
'-' +
- sdate1.getDate() +
+ t.getDate().toString().padStart(2, '0') +
' ' +
- sdate1.getHours() +
+ t.getHours().toString().padStart(2, '0') +
':' +
- sdate1.getMinutes() +
+ t.getMinutes().toString().padStart(2, '0') +
':' +
- sdate1.getSeconds()
+ t.getSeconds().toString().padStart(2, '0')
return now
},
- // +1
- add_one(date) {
- return parseInt(date) + 1
- },
// 鎻掑叆浜ц兘鏃堕棿娈�
- pushTiem(newList, id, arr) {
+ pushItem(newList, id, arr) {
for (const i in newList) {
- if (newList[i].id == id) {
+ if (newList[i].id === id) {
const data = {
start: newList[i].start,
end: newList[i].end,
@@ -1041,67 +931,47 @@
}
}
},
- 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.show =true
- this.formBottom.meter = row.AdvaScheQty * 1 - row.AdvaScheYPQty * 1 // 鍙互鍋氫釜鏁�
- this.formBottom.value1 = []
- this.cl_name = row.AdvaSchePartName
- this.cl_code = row.AdvaSchePartNumber
- this.AdvaScheUom = row.AdvaScheUom
- this.work_order = row.AdvaScheWorkCode
- this.formBottom.value1.push(this.getNowFormatDate())
- this.formBottom.value1.push(row.AdvaScheEndDate)
- if (this.formBottom.value1 != '') {
- this.time_data[0] = this.formBottom.value1[0] + ' 00:00'
- this.time_data[1] = this.formBottom.value1[1] + ' 23:59'
+ 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.WorkCode = row.AdvaScheWorkCode
- this.forms.WorkShop = row.AdvaScheWorkShopid
- this.forms.PartNumber = row.AdvaSchePartNumber
- this.forms.BotProceCode = row.AdvaScheBotProcid
- this.forms.StartTime = this.getNowFormatDate()
- this.forms.EndTime = row.AdvaScheEndDate
- this.OnclickAdvancedSchedulingDevice()
- this.formUpdata.WorkCode = row.AdvaScheWorkCode
- this.formUpdata.BotProceCode = row.AdvaScheBotProcid
- this.search_from.WorkTime =
- this.getNowFormatDate() + '~' + row.AdvaScheEndDate
- this.search_from.BotProceName = row.AdvaScheBotProcName
+ 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 // 宸ヨ壓璺嚎缂栫爜
},
// 鎻愪氦鎺掔▼
- click_yes() {
- if (this.submit_flag) {
- this.$message({
- showClose: true,
- type: 'error',
- message: '鏁伴噺鏈帓瀹�,璇疯缃骇鑳芥椂闂�'
- })
+ async prepareSubmit() {
+ if (this.formBottom.canArrangeNumber !== this.formBottom.needArrangeNumber) {
+ this.$message.error('鏁伴噺鏈帓瀹岋紝璇疯缃骇鑳芥椂闂达紒')
} else {
const list = [] // 鎻愪氦鏁扮粍
- 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])
}
}
- if (arr != '') {
+ if (arr !== '') {
for (const i in arr) {
const data = {
AlreDevicNumber: '',
@@ -1119,174 +989,151 @@
}
// 鎺掔▼鐩稿悓璁惧鑾峰彇寮�濮嬫椂闂� 缁撴潫鏃堕棿 鏁伴噺鐨勬�诲拰
// 杩囨护
- let updata = []
+ let update = []
for (const i in list) {
- if (list[i].AlreStartDate != '') {
- updata.push(list[i])
+ if (list[i].AlreStartDate !== '') {
+ update.push(list[i])
}
}
- updata = JSON.stringify(updata)
- this.formUpdata.json = updata
- if (list == '') {
- this.$message({
- showClose: true,
- message: '璇峰厛棰勬帓',
- type: 'error'
- })
+ update = JSON.stringify(update)
+ this.formUpdate.json = update
+ if (list === '') {
+ this.$message.error('璇峰厛棰勬帓')
return false
}
- automaticScheduling
- .SubmitAlreadyScheduling(this.formUpdata)
- .then(res => {
- if (res.statusCode == 300) {
- this.$message({
- showClose: true,
- message: res.message,
- type: 'error'
- })
- } else {
- this.$message({
- showClose: true,
- message: res.message,
- type: 'success'
- })
- }
- this.formBottom.meter = 0
- this.formBottom.real_num = 0
- this.OnclickAdvancedSchedulingDevice()
- this.AdvancedSchedulingSearch()
- })
+
+ 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()
}
},
-
// 鏃堕棿/璁惧浼樺厛鎺掔▼
- click_schedule() {
+ prepareArrange() {
const timestamp = new Date().toLocaleDateString()
- if (new Date(this.formBottom.value1[0]) < new Date(timestamp)) {
- this.$message({
- showClose: true,
- type: 'error',
- message: '鎺掔▼鏃堕棿涓嶅彲浠ュ皬浜庡綋鍓嶆椂闂�'
- })
+
+ if (new Date(this.formBottom.scheDate[1]) < new Date(timestamp)) {
+ this.$message.error('鎺掔▼鏃ユ湡涓嶅彲浠ュ皬浜庡綋鍓嶆椂闂�!')
return false
}
+ this.filterAlreadyScheduleEqp()// 鎵嬪姩杩囨护鎵�鏈夎澶囧凡鎺掔▼
- 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()
+ // 璁惧浼樺厛鎴栬�呮椂闂翠紭鍏� 瀵规暟鎹繘琛岀殑鏍煎紡杞崲
+ 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.change_num(this.bm_data)
+ this.editLastValue(this.schedulingData)
}
- 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])
- }
+ filterAlreadyScheduleTime() {
+ this.timeTopTempData.forEach(item => {
+ if (item.gtArray && item.gtArray.length > 0) {
+ item.gtArray = item.gtArray.filter(it => it.type !== 'schedule')
}
- this.bm_data[i].gtArray = newArr
- }
+ })
},
-
+ // 鎵嬪姩杩囨护鎵�鏈夎澶囧凡鎺掔▼
+ filterAlreadyScheduleEqp() {
+ this.schedulingData.forEach(item => {
+ if (item.gtArray && item.gtArray.length > 0) {
+ item.gtArray = item.gtArray.filter(it => it.type !== 'schedule')
+ }
+ })
+ },
// 缁欐帓绋嬫渶鍚庝竴涓慨鏀规暟閲�
- change_num(arr) {
- this.formBottom.real_num = 0 // 鐪熷疄宸叉帓鏁伴噺
+ editLastValue(arr) {
+ 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') {
+ 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
+ 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 {
}
- 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) {
+ for (const i in this.schedulingData) {
+ for (const j in this.schedulingData[i].gtArray) {
if (
- this.bm_data[i].gtArray[j].type == 'schedule' &&
- this.bm_data[i].gtArray[j].end_num
+ this.schedulingData[i].gtArray[j].type === 'schedule' &&
+ this.schedulingData[i].gtArray[j].end_num
) {
- this.bm_data[i].gtArray[j].number =
- this.bm_data[i].gtArray[j].number * 1 + mend_num
+ this.schedulingData[i].gtArray[j].number =
+ this.schedulingData[i].gtArray[j].number * 1 + need_num
}
}
}
},
- fun_time() {
- let all_num = this.formBottom.meter
- const all_time = []
+ // 璁惧浼樺厛 鏁版嵁鏍煎紡杞崲
+ eqpDataTransition() {
+ let needNumber = this.formBottom.needArrangeNumber // 闇�鎺掓暟閲�
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) {
+
+ for (const i in this.schedulingData) {
let end_arr = [] // 宸叉帓绋嬬殑鏁扮粍
- let nend_arr = [] // 寰呮帓绋嬬殑鏁扮粍
- const add_arr = [] // 宸叉帓绋嬬殑鏁扮粍
+ let need_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')
+ 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 = nend_arr.map(item => {
+ capacity_arr = need_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()
+ 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'])
+ item.start = this.MinutesTest(schedule[schedule.length - 1]['end'])
}
const schedule1 = end_arr.filter(schedule => {
- return new Date(item.start).getTime() == new Date(schedule.start).getTime() &&
- new Date(item.end).getTime() == new Date(schedule.end).getTime()
+ return new Date(item.start).getTime() === new Date(schedule.start).getTime() &&
+ new Date(item.end).getTime() === new Date(schedule.end).getTime()
})
if (schedule1 && schedule1.length > 0) {
item.capacity = false
}
return item
- }).filter(item => item.capacity != false)
+ }).filter(item => item.capacity !== false)
} else {
- capacity_arr = nend_arr
+ capacity_arr = need_arr
}
const id_obj = {
@@ -1296,6 +1143,9 @@
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 = ''
@@ -1307,152 +1157,172 @@
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) >= new Date(capacity_arr[w].start)
+ id_obj.start_time !== '' &&
+ flag1 === 0 &&
+ new Date(id_obj.start_time).getTime() >= new Date(capacity_arr[w].start).getTime()
) {
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
+ 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.formTime(
+ mistiming = this.compareTime(
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 /
+ this.schedulingData[i].AdvaDevicRhythm /
1000
data.real_number =
((new Date(data.end) - new Date(data.start)) *
capacity_arr[w].mod) /
- this.bm_data[i].AdvaDevicRhythm /
+ 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.bm_data[i].gtArray.push(data)
+ 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.bm_data[i].AdvaDevicRhythm /
+ this.schedulingData[i].AdvaDevicRhythm /
1000
+
data.real_number =
((new Date(data.end) - new Date(data.start)) *
capacity_arr[w].mod) /
- this.bm_data[i].AdvaDevicRhythm /
+ this.schedulingData[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
+ 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.bm_data[i].gtArray.push(data)
+ this.schedulingData[i].gtArray.push(data)
}
}
}
}
},
- // 璁惧鎺掔▼鏂规硶
- fun_facility() {
+ // 鏃堕棿浼樺厛 鏁版嵁鏍煎紡杞崲
+ timeDataTransition() {
// 鎺掗櫎鏈嬀閫夐」
- for (const i in this.facility_data) {
+ for (const i in this.timeTopTempData) {
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])
+ 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.facility_data[i].gtArray = newArr
+ this.timeTopTempData[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
+ let needNumber = this.formBottom.needArrangeNumber // 闇�鎺掓暟閲�
- for (const i in this.facility_data) {
+ // 閲岄潰閫昏緫瑕佹悶娓呮 寰堥噸瑕�
+ for (const i in this.timeTopTempData) {
let end_arr = []
- let nend_arr = [] // 鎺掔▼鐨勬暟缁�
- const add_arr = [] // 宸叉帓绋嬬殑鏁扮粍
+ let need_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, '澶цタ鐡�')
+ this.timeTopTempData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
- if (!capacity_arr || capacity_arr.length == 0) break
- // const firstCapacity = capacity_arr[0]
+ 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 = 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()
+ 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
})
- 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()
+ 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]
- console.log('capacity', capcity)
- capcity.start = this.MinutesTest(item.end)
- return capcity
+
+ temp.start = this.MinutesTest(item.end)
+
+ return temp
})
+
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)
+
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) {
- let end_time
- let mistiming
const data = {
id: capacity_arr[w].id,
start: '',
@@ -1461,86 +1331,84 @@
cl_name: this.cl_name,
cl_code: this.cl_code,
work_order: this.work_order,
+ AdvaScheUom: this.AdvaScheUom, // 鍗曚綅
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) {
+ 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)
+ 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.formTime(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
+ 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)
+ 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 = ((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.facility_data[i].gtArray.push(data)
+ 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.bm_data = []
- const data = this.facility_data
+ this.schedulingData = []
+ 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])
@@ -1549,213 +1417,24 @@
for (const i in list) {
list[i].gtArray = []
- this.pushTiemsss(all, list[i].id, list[i].gtArray)
+ this.pushTimes(all, list[i].id, list[i].gtArray)
}
for (const n in list) {
- if (list[n].gtArray.length == 0) {
+ if (list[n].gtArray.length === 0) {
list[n].status = false
}
}
- // console.log(list)
- this.bm_data = list
+ this.schedulingData = list
},
// 鎻掑叆浜ц兘鏃堕棿娈�
- pushTiemsss(newList, id, arr) {
+ pushTimes(newList, id, arr) {
for (const i in newList) {
- if (newList[i].id == id) {
+ if (newList[i].id === id) {
arr.push(newList[i])
}
}
- },
- // 璁惧浼樺厛
- facility_top() {
- // automaticScheduling
- // .OnclickAdvancedSchedulingDevice(this.forms)
- // .then(res => {
- const res = this.testValue
- this.show = true
- const data = res.rows
- const cont = res.Cont
- this.title_list = []
- for (const i in data[0].children) {
- const obj = {
- id: '',
- name: '',
- status: true,
- AdvaDevicRhythm: '',
- // mod:'',
- colorPair: {
- dark: 'rgb(83, 186, 241,0.8)',
- light: 'rgb(83, 186, 241,0.1)',
- light_capacity: 'rgb(209,239,237,0.8)',
- h_schedule: ' rgb(100,255,192,0.8)',
- scheduleing: 'rgb(20,182,231,0.8)'
- },
- gtArray: []
- }
- obj.id = data[0].children[i].AdvaDevicNumber
- obj.name = data[0].children[i].AdvaDevicName
- obj.AdvaDevicRhythm = data[0].children[i].AdvaDevicRhythm
- // obj.mod =data[0].children[i].AdvaDevicCropMob *1
-
- this.title_list.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 = []
-
- for (const i in data) {
- const time = {
- date: data[i].YearDate,
- AdvaDevicRhythm: '',
- gtArray: []
- }
- if (data[i].children != '') {
- time.AdvaDevicRhythm = data[i].children[0].AdvaDevicRhythm
- }
- for (const j in data[i].children) {
- 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,
- 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 != '') {
- const icu2 = {
- name: data[i].children[j].AdvaDevicName,
- id: data[i].children[j].AdvaDevicNumber,
- type: 'capacity',
- rhythm: data[i].children[j].AdvaDevicRhythm,
- start: data[i].children[j].TwoStartDate[0],
- end: data[i].children[j].TwoStartDate[1],
- mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
- }
- time.gtArray.push(icu2)
- }
- if (data[i].children[j].ThreeStartDate != '') {
- const icu3 = {
- name: data[i].children[j].AdvaDevicName,
- id: data[i].children[j].AdvaDevicNumber,
- type: 'capacity',
- rhythm: data[i].children[j].AdvaDevicRhythm,
- start: data[i].children[j].ThreeStartDate[0],
- end: data[i].children[j].ThreeStartDate[1],
- mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
- }
- time.gtArray.push(icu3)
- }
- if (data[i].children[j].FourStartDate != '') {
- const icu4 = {
- name: data[i].children[j].AdvaDevicName,
- id: data[i].children[j].AdvaDevicNumber,
- type: 'capacity',
- rhythm: data[i].children[j].AdvaDevicRhythm,
- start: data[i].children[j].FourStartDate[0],
- end: data[i].children[j].FourStartDate[1],
- mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
- }
- time.gtArray.push(icu4)
- }
- if (data[i].children[j].FiveStartDate != '') {
- const icu5 = {
- name: data[i].children[j].AdvaDevicName,
- id: data[i].children[j].AdvaDevicNumber,
- type: 'capacity',
- rhythm: data[i].children[j].AdvaDevicRhythm,
- start: data[i].children[j].FiveStartDate[0],
- end: data[i].children[j].FiveStartDate[1],
- mod: (data[i].children[j].AdvaDevicCropMob * 1) / 100
- }
- time.gtArray.push(icu5)
- }
- }
-
- this.facility_data.push(time)
- }
-
- 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) {
- const data = {
- id: cont[i].EQP_CODE,
- date: cont_date,
- number: cont[i].ALLOC_QTY,
- cl_name: cont[i].PART_NAME,
- cl_code: this.cl_code,
- 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)
- }
- }
- }
- }
- // })
},
// 鎺掔▼鏂规硶
formSeconds(s1, start, mod) {
@@ -1771,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>
@@ -1855,7 +1484,7 @@
.box_style {
position: relative;
top: 40px;
- left: -75px;
+ left: -91px;
}
.box_styles {
@@ -1873,7 +1502,17 @@
/*background-color: #f8f8fa;*/
background-color: #fff;
margin-top: 20px;
- /*height: 390px;*/
+ height: 490px;
+}
+
+.colorDescription {
+ display: flex;
+ padding: 5px 30px 0;
+}
+
+.colorDescriptionItem {
+ display: flex;
+ margin-right: 20px;
}
label {
@@ -2040,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